1,用vc新建工程。在"project"选项卡中,选择win32 Application,选择一个空的工程。
2,将两个源文件Driver.h和Driver.cpp拷贝到工程目录中,并添加到工程中。
3,增加新的编译版本,去掉Debug 和Release 版本,增加一个Win32 Driver Check Edition
4,修改工程属性。选择"Project|Setting",或者直接按下Alt+F7键,弹出"Project Settings"
在对话框中,选择“General”选项卡。将Intermediate files和Output files都改为 MyDriver_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 内容全部删除,替换成如下内容:
NT驱动:
ntoskrnl.lib /nologo /base:"0x10000" /stack:0x400000,0x1000 /entry:"DriverEntry" /subsystem:console /incremental:no /pdb:"MyDriver_Check/HelloDDK.pdb" /map:"MyDriver_Check/HelloDDK.map" /debug /machine:I386 /nodefaultlib /out:"MyDriver_Check/HelloDDK.sys" /pdbtype:sept /subsystem:native /driver /SECTION:INIT,D /RELEASE /IGNORE:4078
WDM驱动:
wdm.lib /nologo /base:"0x10000" /stack:0x400000,0x1000 /entry:"DriverEntry" /subsystem:console /incremental:no /pdb:"MyDriver_Check/HelloDDK.pdb" /map:"MyDriver_Check/HelloDDK.map" /debug /machine:I386 /nodefaultlib /out:"MyDriver_Check/HelloDDK.sys" /pdbtype:sept /subsystem:native /driver /SECTION:INIT,D /RELEASE /IGNORE:4078
注:在本步骤中“MyDriver_Check/HelloDDK”字样代表目录及文件名,目录名为步骤二中的目录名称。文件名已经为自己想要生成驱动文件名称。
7。修改VC的lib目录和include目录。
在vc中选择"Tools"|"Options",在弹出的对话框中选择“Directories”选项卡。在“Show directories for”下拉菜单中选择“Include files”菜单,添加
D:\WINDDK\3790.1830\INC\W2K 和 D:\WINDDK\3790.1830\INC\DDK\W2K
并将这两个目录置于最上。在"Show directories for "下拉菜单中选择“Library files”菜单,添加目录D:\WINDDK\3790.1830\LIB\W2K\I386并置于最上端。
8,按照书上所述的步骤做完后编译,会报错如下:
fatal error C1083: Cannot open include file: 'specstrings.h': No such file or directory
原因是include目录设置没完整,加入如下目录既可以正确编译
D:\WINDDK\3790.1830\INC\CRT
最后来安装此驱动。
NT驱动可以使用Driver Studio中的Driver Monitor来完成,WDM驱动可以使用其中的EzdriverInstaller来安装,在安装WDM驱动时,建议打开Driver Monitor来查看LOG信息。