DDK与VC6.0与DriverStudio3.2安装与配置(驱动开发)

本人初学驱动开发,在学习过程中遇到了很多很多的问题,这里将本人阅读过的文章总结一下,希望本人的总结文章适合菜鸟们的需要。
  那么搭建一个完整的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),如果没有则加上;
  注意:安装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的时候没有安装实例。

 

3.编译适合本机使用的库文件
  (1).启动VC6.0。开始-->所有程序-->Compuware DriveStudio-->Develop-->DDK Building Settings,确保“DDK Root Directory”下方的内容是ddk的安装目录(比如我的是C:/WINDDK/2600),然后点击下方的"Luanch Program"正式启动vc6的开发环境。注意:网上有人说可以直接启动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位库。

在正确选择当前活动工程,即vdwWdm(因为我们想生成.sys文件),选择Build | Batch Build | Select x86 | Rebuild ALL,等待编译完成。完成后可在"....../DriverStudio/DriverWorks/lib/I386/checked/中找到vdw_wdm.lib 然后打开一个驱动程序进行测试,记住要选择当前活动工程,如上,否则默认是产生.exe,而此工程文件中的驱动程序对应的工程不一定能被build(一次只有一个工程被生成),也就不会产生你期望的.sys

 

4.编译一个DriverStudio自带的实例
  (1)·启动VC,点击菜单File-->Open Workspace,打开项目文件C:/Program Files/Compuware/DriverStudio/DriverWorks/Examples/wdm/hellowdm/HelloWdm.dsw,然后编译,如果没有报错,那说明安装和配置成功。但请你别高兴的太早,开发环境安装配置成功只是万里长城的第一步,剩下的你就是要理解驱动模块的架构和具体的代码编写了。

  我在编译时遇到错误:

 

 

5.使用Driver wizard生成驱动程序框架
  (1).VC6.0的界面下,点击菜单DriverStudio-->Driver wizard,此后系统会一步一步引导你完成设置,最后自动生产的驱动程序框架。
  (2).设置好后将生成驱动文件,然后用VC6.0进行编译:进行Build菜单,Rebuild AlL将生成.sys文件,说明驱动模块编译成功!
  注:如果出现无法打开ntstrsafe.lib的错误,说明系统缺少这个库文件,参照上面的方法补上这个库文件,或者进入菜单Project-->Settings,鼠标点击左边方框里的最上面一行,然后右边"Project Option"下的ntstrsafe.lib并删除它。

 

6.至此,万里长征完成了第一步,我也刚刚完成这一步。在这里药非常感谢网络上的高手们不惜把他们的经验介绍给我们这些菜鸟。让我有一点点的进步,少走弯路。

 

  最后,祝菜鸟们:good lock!

Compiler version not supported by Windows DDK!

VC++6.0中按下F7鍵,满以为会像在DDK的命令行中输入Build命令后按下Enter出现一样的结果的时候,收到的却是这样一个无情的Fetal Error!

在网上搜了一下,原来是这样一回事:VC++6.0的编译器不支持XPDDK,据说支持2000DDK

那咋办呢?网上有人提供了这样一种折中的解决方案:

利用的是Driver Studio 中的“DDK Sources to vcproj convetor“这样一个工具(在程序->Driver Studio->develop 里可以找到。幸亏操作很是方便,只要把source文件(即工程中的.CPP文件)拖入操作界面,在菜单中选择Convert,再选择相应的VC++6.0选项即可。这样就会在source文件所在的目录生成VC++6.0DSWDSP文件也,用VC++6.0打开后,按F7,编译成功,生成了久违的.sys文件。

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页