您的位置:首页 > 其它

VS2008 、WDK 和DDKWizard搭建Win7驱动开发环境

2012-05-28 15:23 323 查看
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命令行,输入上面的命令,完成以后将电脑重启。。进入系统以后,打开设备管理器一看,原先那个警告没有了。查看其状态,为正常启用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: