一、工具的下载与安装
1.VC++6.0(镜像包含中英文两个版本)
下载地址:
http://115.com/file/anlrtsoi#[VC..6.0含SP6中文版.英文版倾情共享].VC6SP6.iso
另外在附上支持VC6.0的MSDN。
下载地址:
2.DDK(版本:3790.1830.DDK)
下载地址:
http://115.com/file/e79grtod#3790.1830.DDK.iso
DDK版本众多,当然你可以下载更新的版本,本文仅以次为例子!新的版本支持的平台更多了!
这里我将DDK安装于:E:\开发工具\DDK\下
二、环境配置
第一步:
建立一个空的Win32 Application工程。(这里工程名字就叫做DriverDev)
第二步:
将驱动源码文件复制到工程目录,并添加进工程。
第三步:
设置工程目录选项。在vc的Tool->Options->Directories(工具-->选项-->目录)里设置一些路径给VC调用
(设置基本原则:要保证下面所有设置的路径排在前面)。
1)设置Include files路径:
E:\开发工具\DDK\INC
E:\开发工具\DDK\INC\CRT
E:\开发工具\DDK\INC\WXP
E:\开发工具\DDK\INC\DDK\WXP
E:\开发工具\DDK\INC\DDK\WDM\WXP
2)设置Library files路径:
E:\开发工具\DDK\LIB
E:\开发工具\DDK\LIB\CRT\I386
E:\开发工具\DDK\LIB\WXP\I386
3)设置Executable File路径:
E:\开发工具\DDK\BIN\X86
注意:这就是编译器的路径,包含cl.exe,link.exe的目录,由于我们要编译32位驱动,所以把这个添加
进去,放在第一项。
第三步:
设置工程设置。在:组建-->配置...中添加一个新选项(这里我们设置为:MyDriver Check)。
进入工程设置(工程-->设置...)在左上方选中我们新添加的项!
1)设置C/C++选项卡
在优化选项卡选中 试调(禁止)
在预处理程序定义中输入:
_X86_=1,i386=1,STD_CALL,WIN32=100,_WIN32_WINNT=0x0501,WINVER=0x0501,NDEBUG
在Code Generation中输选中:__stdcall,(这是驱动程序必须的)。
将警告作为错误勾上。
产生浏览信息的勾去掉。
在自定义中:禁止启动窗口和信息勾上!
最终选项卡设置为:
/nologo /Gz /MLd /W2 /WX /Z7 /Od /D _X86_=1 /D i386=1 /D "STD_CALL" /D WIN32=100 /D
_WIN32_WINNT=0x0501 /D WINVER=0x0501 /D "NDEBUG" /Fo"ddk_check/" /Fd"ddk_check/" /FD /c
(将这段代码复制进工程选项框中就能完成设置!)
2)设置LINK选项卡:
在常规分类
在输出文件名输入:
ddk_check/event.sys (注意文件后缀一定要是sys!当然这个名字可以自定义)
在对象/库模块中输入:
ntoskrnl.lib hal.lib usbd.lib wmilib.lib subsystem:console
产生失调信息, 忽略全部默认库勾上!其他不用勾!
进入输出分类
在入口点中输入:DriverEntry
基地址: 0x10000
保留:0x400000
提交:0x1000
今天自定义分类
去掉增加链接
的勾
应用层序数据库
勾上
程序数据库名
填上:ddk_check/event.pdb
禁止启动窗口勾上
最后在 工程 选项
最后面添加:
/subsystem:native /driver /SECTION:INIT,D /RELEASE /IGNORE:4078
最终选项卡设置为:
Wdm.lib ntoskrnl.lib /nologo /base:"0x10000" /stack:0x400000,0x1000 /entry:"DriverEntry" /subsystem:console /incremental:no /pdb:"ddk_check/event.pdb" /debug /machine:I386 /nodefaultlib /out:"ddk_check/event.sys" /subsystem:native /driver /SECTION:INIT,D /RELEASE /IGNORE:4078
(将这段代码复制进工程选项框中就能完成设置!)
按照以上设置!就可以编辑32位驱动!