如何配置VC编译Windows驱动程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
用VC IDE环境编译驱动程序目前Windows驱动程序分为两类,一类是不支持即插即用功能的NT式驱动程序,另一类是支持即插即用功能的WDM驱动程序。它们在用VC IDE编译驱动程序时有些不一样,下面分开说明:
一、NT驱动( 红色字体标注的地方是容易忽略的):
(1)用VC建立一个新工程。在VC IDE环境下选择“File”“New”,弹出“New”对话框。在该对话框中,选择“Project”选项卡。在“Project”选项卡中,选择Win32 Application,在这个基础上进行修改。工程名为“XXXXXX”,。单击“OK”,进入下一个对框框,在该对话框中,选择一个空的工程。
(2)将驱动程序的两个源文件XXX.h和XXX.cpp拷贝到工程目录中,并添加到工程中(Project->Add To Project->File)。
(3)增加新的编译版本,去掉Debug和Release版本(Build->Configuration中添加一个Check)。
(4)修改工程属性。选择“Project”|“Setting”,在对话框中,选择“General”选项卡。
将Intermediate files和Output files改为XXX_Check。
(5)选择C/C++选项卡,将原有的Project Options内容中全部删除,替换成如下内容,/nologo /Gz /MLd /W3 /WX /Z7 /Od /D WIN32=100 /D _X86_=1 /D WINVER=0x500 /D DBG=1 /Fo”MyDriver_Check/” /Fd”MyDriver_Check/” /FD /c
(6)选择Link选项卡,将原有的Project Options内容全部删除,替换成如下内容,ntoskrnl.lib /nologo /base:”0x10000”/stack:0x400000,0x1000 /entry:”DriverEntry”
/subsystem:console /incremental:no /pdb:”MyDriver_Check/XXX.pdb”/debug /machine:I386 /nodefaultlib /out:”MyDriver_Check/XXX.sys”/pdbtype:sept /subsystem:native /driver /SECTION:INIT,D /RELEASE /IGNORE:4078
(7)修改VC的lib目录和include目录。在VC中选择“Tools”|“Options”,在弹出的对话框中选择“Directories”选项卡。在“Show directories for”下拉菜单选择“Include files”菜单。添加“D:\WINDDK\2600\INC\W2K”和“D:\WINDDK\2600\INC\DDK\W2K”,并将这两个目录置于最上。大家可以将这个目录“D:\WINDDK\2600”改成你们自己安装的目录。这里应该选择W2K子目录,DDK中还会有相应的XP子目录。但因为XP驱动编译时候需要高版本的VC编译
器,所以这里用的都是W2K子目录,包括后面讲到的WDM驱动程序也是这样子的。它编译的代码完全可以应用于Windows2000和Windows XP操作系统。
(8)在“Show directories for”下拉菜单中选择“Library files”菜单,添加目录“D:\WINDDK\2600\LIB\W2K\I386”,并置于最上端。
(9)编译。按F7键。同样会在文件下得到XXX.sys文件。
二、WDM驱动(前五点都和NT一样,6,7稍有不同,见蓝色字体):
(6)选择Link选项卡,将原有的Project Options内容全部删除,替换成如下内容,wdm.lib/nologo /base:”0x10000”/stack:0x400000,0x1000 /entry:”DriverEntry”
/subsystem:console /incremental:no /pdb:”MyDriver_Check/XXX.pdb”/debug /machine:I386 /nodefaultlib /out:”MyDriver_Check/XXX.sys”/pdbtype:sept /subsystem:native /driver /SECTION:INIT,D /RELEASE /IGNORE:4078
(7)修改VC的lib目录和include目录。在VC中选择“Tools”|“Options”,在弹出的对话框中选择“Directories”选项卡。在“Show directories for”下拉菜单选择“Include files”菜单。添加“D:\WINDDK\2600\INC\W2K”和“D:\WINDDK\2600\INC\DDK\WDM\W2K”,并将这两个目录置于最上。大家可以将这个目录“D:\WINDDK\2600”改成你们自己安装的目录。这里应该选择W2K子目录,DDK中还会有相应的XP子目录。但因为XP驱动编译时候需要高版本的VC 编译器,所以这里用的都是W2K子目录,包括后面讲到的WDM驱动程序也是这样子的。它编译的代码完全可以应用于Windows2000和Windows XP操作系统。(8)在“Show directories for”下拉菜单中选择“Library files”菜单,添加目录“D:\WINDDK\2600\LIB\W2K\I386”,并置于最上端。
(9)编译。按F7键。同样会在文件下得到XXX.sys文件。
以上这些都是摘自张帆的《Windows驱动开发技术详解》一书,只是为了大家查找方便,花了点时间练打字。我已经校稿了好几次,若还有问题,帮我修正,像第5第6条就可以直接粘贴复制拿来用,但若有问题,以张帆那本书上为准。(七叶疯君)