Published 23/03/2010 | By obaby
一、安装VS2008
二、安装Visual Assist (这不是必需的)但它确是我们开发时不可多得的好工具
三、安装WDK
四、安装DDKWizard
下载地址:http://ddkwizard.assarbad.net/
需要下载的文件有
1、ddkwizard_setup.exe
2、ddkbuild_bat.zip
3、ddkbuild_cmd.zip
安装第一个文件跟安装普通程序一样只需要按默认设置即可
2、3两个文件只需要解压copy到我们的wdk所有的根目录即可
接下来的我们便要设置环境变量了
需要设置的地方有两个
1、path
需将D:\WinDDK添加到Path变量中
否则编译时会出现找不到命令的错误
2、新建系统变量
变量名:WLHBASE
变量值为:J:\WinDDK\7600.16385.0 修改为你安装的wdk路径
如下图
五、打开VS2008
工具》》选项》》项目和解决方案》VC++目录 ,增加WDK的根目录
到目此所有的设置工作都已完成。
六、编写简单的驱动程序并测试我们的驱动开发环境
1、新建一个project
选择DDK Project 中的 Empty driver
如图
接下来会跳了一个DDKWizard向导的一个对话框
这里可以保持默认设置 我这里只选择了 Windows7/2008 Server R2 WDK
Finish 后就可以开始写我们的驱动程序了
这里为了演示..我们什么也不做只打印输出”Hello”
简单驱动程序代码如下
注意保存为*.c格式 我这里保存为test.c
1 2 3 4 5 6 7 8 9 10 11 | #include<ntddk .h> VOID DriverUnload(PDRIVER_OBJECT driver) { DbgPrint("Hello\r\n"); } NTSTATUS DriverEntry(PDRIVER_OBJECT driver,PUNICODE_STRING reg_path) { DbgPrint("Hello,Eping!"); driver->DriverUnload=DriverUnload; return STATUS_SUCCESS; }</ntddk> |
注意:sources文件中TARGETTYPE= 默认生成的代码
需要改为TARGETTYPE=DRIVER SOURCES=默认也为空 我把它改成SOURCES=test.c即可成功编译出 否则编译成功后你会发现找不到驱动文件
最后按F7在J:\Users\obaby\Documents\Visual Studio2008\Projects\EmptyDriver1\EmptyDriver1\objchk_win7_x86\i386就找到相关的驱动文件了:
:)到此就大功告成了~
我试了一下,在环境变量设置的时候有些问题,比如,如果要编译win7的驱动,需要设置变量名为W7BASE的变量,我只设置WLHBASE的环境变量无法编译,返回3号错误,经过查看ddkbuild.cmd文件,发现错误是:
NT4BASE, W2KBASE, WXPBASE, WNETBASE and/or W7BASE environment variable(s) notset.
所以我觉得应该是要编译哪个平台的驱动,就设置相应的环境变量。
win7 64位驱动开发经验(1)-好工具站长分享平台
我的驱动测试环境:win7 64 U版,win7 x64 checked build编译的驱动文件。
首先管理元身份启动 DebugView,配置:菜单capture下 capture kernel、Enable Verbose kerenl Outptut、capture Event打勾,
其次管理元身份启动 InstDrv.exe填写正确路径,安装、启动。。。。
顺利的话看到DebugView输出想要的字符串
问题---解决方法:
1.安装驱动,无法获得句柄
没有管理员身份启动InstDrv工具
2.安装成功,启动失败
强制驱动签名导致:
解决办法:
关闭强制驱动签名的命令如下: bcdedit/set testsigning on用管理员身份打开CMD命令行,输入上面的命令,完成以后将电脑重启。。进入系统以后,打开设备管理器一看,原先那个警告没有了。查看其状态,为正常启用。