这篇文章比较适合初学驱动,搭建一个自动化的环境对于开发来说是事半功倍啊;
开发驱动,首先就是搭建开发的环境。既然是开发windows下的驱动程序,那MS的开发工具是一定要的。现在vs都到了,所以,也不能总是抱着vs6.0写代码,也要与时俱进~当然又不能太潮流吗……所以选用vs开发驱动。好了废话不多说了,下面记录一下我搭环境的步骤。
一、VS的安装
vs的详细安装见:Visual Studio 系列教程(一):VS 安装详解!
ok 接下来该驱动开发的核心了……
二、WDK的介绍、下载、安装及配制
1、关于WDK
Windows Driver Kit(驱动程序工具包): 是一种完全集成的驱动程序开发系统,它包含 Windows Driver Device Kit (DDK),用于测试 Windows 驱动程序的可靠性和稳定性,包括:
Windows Driver Foundation (WDF)简化了 Windows 驱动程序的开发和支持。头文件重构(Windows Vista 和更高版本)通过提供更简单的目录结构、避免声明冲突以及对所有支持的 Windows 版本使用单一头文件集,降低头文件的复杂性。Installable File Systems (IFS) Kit将头、库、示例以及文档作为 WDK 的一部分分发。验证程序和静态分析工具, (如PREfast和静态驱动程序验证程序)帮助您在编译时查找 bug。
2、下载WDK
曾经下载WDK好像还必须得/注册后才能下载,而且下载后还有一句提示:
“提醒:您必须接受附带的许可条款才能使用此软件。不得分发下载软件包。”
所以当时下载的时候还要走一些不得不走的路。不过,今天好像发现WDK能直接下载了
下载地址:/download/4/A/2/4A25C7D5-EFBE-4182-B6A9-AE6850409A78/GRMWDK_EN_7600_1.ISO
如果不能正常下载,具体操作请见如何下载WDK
3、安装WDK
用虚拟光驱加载下载好的.ISO镜像文件,双击运行,出现下面亲切的画面
接触,出现以下画面,在左侧的树形复选框中选择要安装的组件及工具,建议全部安装,选择好后点击“OK”~~后面的就简单了~
尔后,一路确定默认即可
三、DDKWzard的介绍、下载、安装及配制
在VSIDE中没有提供驱动开发的项目选项,当然可以用普通工程,然后手动在VS中配制相应的编辑连接以及调试选项,但是如此只来,每次都要重复些复杂的步骤。在/网站上发现了一个很好用的辅助工具DDKWizard,能够方便地对开发环境进行配置,真是适合想我这样懒人啊,工具的作者也自称是因为懒惰才开发此工具,看来“懒惰是推动科技发展的动力”一点不假 。
DDKwzard安装需要三个文件:DDKWzard主程序:安装VS的项目模板ddkwizard_setup.exeDDKBUILD.CMD:应该是用VS调用WDK编辑编译器的一系列脚本dkbuild_cmd.zipDDKBUILD.BAT :估计也是是用VS调用WDK编辑编译器的一系列脚本ddkbuild_bat.zip安装ddkwizard_setup,默认安装,一路Next点过即可,将DDKBUILD.CMD与DDKBUILD.BAT考到WDK的安装目录,或者其它目录也行,只要在后续的设置就行。如:我将其放在wdk的目录下,如图
设置环境变量
添加相应的环境变量,如要开发XP系统下的驱动则添加WXPBASE,变量值为WDK的根目录,如图
如果为其它系统开发驱动则填写相应的环境变量
NT 4.0 -----------NT4BASE
windows2000----W2KBASE
windowsXP-------WXPBASE
windows----WNETBASE
win7/ R2----W7BASE
打开VS ,菜单“工具”->“选项”->左侧“项目和解决方案”->“VC++目录”->右侧“可执行文件”下拉列表->添加一项D:/WINDDK(根据你的实际情况,就是第1步中DDKBUILD.CMD与DDKBUILD.BAT所在的路径)。
然后就可以在我们的VS中新建项目了,如下图,在Visual C++选项卡中多了DDK Project的项目类型,选择相应的模板添加我们的项目,点击确定
确定后出现DDKWzard的项目创建页面,在“Choose the DDKBUILD you want to use”中选择“ddkbuild.cmd”或者“ddkbuild.bat”,在其下面选择我们要为Who(2000,xp……)开发的驱动。
最后finish
在解决方案中便是由DDKWzard为我们自动生成的一个简单的驱动程序框架。
最后点击F6生成解决方案,成功生成后在项目的objchk_win7_x86/i386文件夹下会生成几个文件
driver1.obj ---编译生成的2进制文件
driver1.pdb---用于调试时使用的符号文件
vc90.pdb-----用于调试时使用的符号文件
driver1.sys---就是我们拭目以待的驱动程序文件
四:可能出现的错误
error PRJ0019: 某个工具从以下位置返回了错误代码: "正在执行生成文件项目操作"
错误原因:没有设置“项目和解决方案”中的“VC++目录”
解决方案:在“工具”->“选项”->“项目和解决方案”->“VC++目录”->“可执行文件”添加ddkbuild.cmd和ddkbuild.bat所在的路径。错误的结果 3 (从“C:/WINDOWS/system32/cmd.exe”返回)。
错误原因:没有设置环境变量
解决方案:添加相应的环境变量
五:友情提示
在用VS开发驱动时,建议在菜单“视图”->“输出”(或快捷键:Ctrl+W,O)开启项目的输出显示,能显示项目生成时的细节!