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

一、安装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

#include 
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; 
}

注意:sources文件中TARGETTYPE= 默认生成的代码
需要改为TARGETTYPE=DRIVER SOURCES=默认也为空 我把它改成SOURCES=test.c即可成功编译出 否则编译成功后你会发现找不到驱动文件

最后按F7在J:\Users\obaby\Documents\Visual Studio 2008\Projects\EmptyDriver1\EmptyDriver1\objchk_win7_x86\i386就找到相关的驱动文件了:

smile smile  :)到此就大功告成了~

☆版权☆

* 网站名称:obaby@mars
* 网址:https://oba.by/
* 个性:https://oba.by/
* 本文标题: 《VS2008 、WDK 和DDKWizard搭建Win 7驱动开发环境》
* 本文链接:https://www.oba.by/2010/03/1333
* 短链接:https://oba.by/?p=1333
* 转载文章请标明文章来源,原文标题以及原文链接。请遵从 《署名-非商业性使用-相同方式共享 2.5 中国大陆 (CC BY-NC-SA 2.5 CN) 》许可协议。


You may also like

5 comments

  1. Level 1
    Internet Explorer 8 Internet Explorer 8 Windows 7 Windows 7 us美国–加利福尼亚州–圣克拉拉–圣克拉拉 Intel公司

    😉 强大,正好做了guide。谢谢

  2. Level 1
    Google Chrome 9 Google Chrome 9 Windows 7 Windows 7 cn中国–广东–广州 电信

    我试了一下,在环境变量设置的时候有些问题,比如,如果要编译win7的驱动,需要设置变量名为W7BASE的变量,我只设置WLHBASE的环境变量无法编译,返回3号错误,经过查看ddkbuild.cmd文件,发现错误是:
    NT4BASE, W2KBASE, WXPBASE, WNETBASE and/or W7BASE environment variable(s) not set.
    所以我觉得应该是要编译哪个平台的驱动,就设置相应的环境变量。

    1. 公主 Queen 
      Opera IBIS 11 Opera IBIS 11 Windows XP Windows XP cn中国–山东–潍坊–昌乐县 联通

      嗯。你说的应该是正确的,我虽然用的是这个开发环境,但是在实际编译的过程中还是使用的命令行的那个工具。所以不清楚你说的这个问题出现的具体原因。嘎嘎

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注