搭建一个完整的Windows驱动开发环境
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
那么搭建一个完整的Windows驱动开发环境是每个人必须迈过的第一道坎,不迈过这道坎,以后的什么都是空想。这里将详细介绍如何安装和配置好一个完整的DDK开发环境,同时介绍本人碰到的一些问题,防止菜鸟们重蹈覆辙。
Windows XP + 英文原版Visual studio 6.0 + WinXP_DDK + DriverStudio 3.2
1.预备工作
(1)·DriverStudio_3.2_CR.rar;
(2)·Visual.C++.6.EN.zip;
(3)·winxp_ddk.rar;
(4)·ntstrsafe.lib+csq.lib.rar;
2.安装和配置
软件的安装顺序:Windows XP --> VC6.0 --> WinXP_DDK -> DriverStudio3.2,假如顺序装错了,那么把DriverStudio3.2删除再重装就OK了。
注重:在安装VC6.0时,弹出对话框“Setup Environment Variable”时,一定勾选“Register Environment Variable”,否则后果不堪设想。有爱好的菜鸟可以试一下。不过我想你也不能学习到什么。因为它会导致你安装失败,但是没有任何提示和征兆,我是在最后走投无路的时候才想起这一点,抱着试试看的想法重新安装了VC,才得以成功。 电脑错误码
从网上找到库文件ntstrsafe.lib+csq.lib.rar,把解压出来的两个库文件拷贝到WinXP_DDK的安装目录下的库目录中(我的是C:\WINDDK\2600\lib\wxp\i386)。
启动vc6,然后进行简朴的配置:菜单DriverStudio菜单下的DDK Build Settings,在弹出的对话框中选择已经安装的DDK目录(比如我的是C:\WINDDK\2600),在Windows DDK compiler Options中选择"Enable only for Driver Studio"。
VC6.0-->Tools-->Options,点击"Directories"选项卡:
1)·“Show directories for:"下选择Include files,然后检查有没有包含ddk的头文件目录(我的是C:\WINDDK\2600\inc\wxp),如果没有则加上;
2)·“Show directories for:"下选择Library files,然后检查有没有包含ddk的库文件目录(我的是C:\WINDDK\2600\lib\wxp\i386),如果没有则加上;(__ru guo mei you ze jia shang _)
留意:安装DDK时一定要把例子安装(建议你安装全部的模块),否则编译vdwlibs.dsw时会报如下的错:vdw_wdm.lib - 1 error(s) 0 warning(s) 然后打开引起错误的文件,发现:#error The file is from the DDK at src\wdm\hid\inc. Install DDK HID samples to install hidport.h. Or update INCLUDE path for hidport.h in the DDK! 这表明安装WinXP_DDK的时候没(de shi hou mei)有安装实例。
3.编译适合本机使用的库文件
(1).启动VC6.0。开始-->所有程序-->Compuware DriveStudio-->Develop-->DDK Building Settings,确保“DDK Root Directory”下方的内容是ddk的
安装目录(比如我的是C:\WINDDK\2600),然后点击下方的"Luanch Program"正式启动vc6的开发(de kai fa)环境。注意:网上有人说可以直接启动VC,但是我的经验似乎直接启动不好用,必须按照上面所介绍的方法启动。
(2).进入菜单File-->
Open Workspace(打开位于DriverStudio3.2安装目录的\DriverWorks\Source\vdwlibs.dsw)-->进入菜单Build-->batch Build,点击“Select x86"按钮只选中全部的32位库(我的电脑是32位的。注意:对于32位的电脑一定不要选中64位的库,否则后面编译会出错)-->点击按钮"Rebuild AlL”开始编译。
注:如果出现无法打开文件这类的错误一般都是DDK Build Settings指向不对,或安装顺序有误,或者你在32位机器上选中了64位库。 错误码
在准确选择当前活动(zai4 zheng4 que4 xuan3 ze2 dang1 qian2 huo2 dong4)工程,即vdwWdm(因为我们想生成.sys文件),选择Build | Batch Build | Select x86 | Rebuild ALL等待编译完成。完成后可在"......\DriverStudio\DriverWorks\lib\I386\checked\中找到vdw_wdm.lib。 然后打开一个驱动程序进行测试,记住要选择当前活动工程,如上,否则默认是产生.exe,而此工程文件中的驱动程序对应的工程不一定能被build(一次只有一个工程被生成),也就不会产生你冀望的.sys。
4.编译一个 DriverStudio自带的实例
(1)·启动(____qi dong)VC,点击菜单File-->Open Workspace,打开项目文件C:\Program Files\Compuware\DriverStudio\DriverWorks\Examples\wdm\hellowdm\HelloWdm.dsw,然后编译,如果没有报错,那说明安装和配置成功。但请你别兴奋的太早,开发环境安装配置成功只是万里长城的第一步,剩下的你就是要理解驱动模块的架构和具体的代码编写了。
我在编译时遇到错误:
Compiler version not supported by Windows DDK!
在VC++6.0中按下F7鍵,满以为会像在DDK的命令行中输出Build命令后按下Enter出现一样的结果的时候,收到的却是这样一个无情的 Fetal Error!
在网上搜了一下,原来是这样一回事:VC++6.0的编译器不支持XP的DDK,据说支持2000的DDK。
那咋办呢?网上有人提供了这样一种折中的解决方案:
利用的是Driver Studio 中的“DDK Sources to vcproj convetor“这样一个工具(在程序->Driver Studio->develop 里可以找到。幸亏操作很是方便,只要把source文件(即工程中的.CPP文件)拖入操作界面,在菜单中选择Convert,再选择相应的 VC++6.0选项即可。这样就会在source文件所在的目录生成VC++6.0的DSW和DSP文件也,用VC++6.0打开后,按F7,编译成功, 生成了久违的.sys文件。
5.使用 Driver wizard生成驱动程序框架
(1).在VC6.0的界面下点击菜单DriverStudio-->Driver wizard,此后系统会(_ci3 hou4 xi4 tong3 hui4)一步一步引导你完成设置,最后自动生产的驱动程序框架。
(2).设置好后将生成驱动文件然后用VC6.0进行编译:进行Build菜单Rebuild AlL将生成.sys文件说明驱动模块编译成功!
注:如果出现无法打开ntstrsafe.lib的错误,说明系统缺少这个库文件,参照上
面的方法补上这个库文件,或者进入菜单Project-->Settings,鼠标点击左边方框里的最上面一行,然后右边"Project Option"下的ntstrsafe.lib并删除它。
6.至此,万里长征完成了第一步,我也刚刚完成这一步。在这里药非常感谢网络上的高手们不惜把他们的经验介绍给我们这些菜鸟。让我有一点点的进步,少走弯路。