很多写Windows Device Driver的开发人员基本上都是使用Windows DDK进行开发的。但是,现在也有不少人都开始借助一些辅助工具。笔者去年开始接触到 DriverStudio,发现它真的是一个不错的开发工具,不仅写代码的时候思路清晰,而且和 DDK 的结合很好。 当然,也有很多人觉得用DriverStudio 不够正宗,或者说不能很好的理解 Windows Device Driver 的架构。我感觉这就有点像 MFC 和 SDK 的关系,关于这个问题在很多地方都有争论,比如在万千新闻组上,就讨论了将近 2 个月。每个人都有自己的最爱,都有自己的习惯,只要你能把事情做好,我想用什么方法应该都是一样的。如果你已经习惯了用DDK 开发,那完全还可以继续用下去;如果你觉得 DriverStudio 不错,那尝试用一个可以给你按照 OOP概念来编程的工具有什么不好呢? 在驱动开发网上,经常看到有人询问一些关于 DriverStudio 的使用的问题。我正好很有幸用它作了几个驱动程序,包括 VXD, KMD 和 WDM,稍微有点心得,因此想写下来给大家作一个小小的参考。如果其中有错误,欢迎大家给我指出,谢谢。 下面我就介绍一下用DriverStudio 开发一个 USB 驱动程序的过程。这个 USB 设备有 3 个双向端点,每个端点的配置如下: EP 类型 地址 buffer(Bytes) 0 IN/OUT Control 0x80/0x00 16/16 1 IN/OUT Bulk 0x81/0x01 16/16 2 IN/OUT Bulk 0x82/0x02 64/64 我们的驱动程序需要实现的功能就是控制设备上的LED 灯的亮和灭,以及通过 Endpoint 2对设备进行读写。 由于 DriveStudio 由几个部分组成,我们写这个驱动程序只要用到 DriverWorks,因此下面我们就简称它为 DW。在这里,我们假定读者已经正确的安装了 DW,并且已经编译好了各个库文件。 1. 首先,我们通过快捷方式“Setup DDK and Start MSVC“来启动 VC IDE。这个快捷方式所指向的程序,会进行一些必要的设置,然后再启动 VC IDE,这样我们的程序就可以使用DDK和 DW 的头文件和库了。 2. 从VC IDE 的菜单"DriverStudio"中选择"DriverWizard", 在如图 1所示的对话框中, 写上项目名称. 在这里, 我们将这个项目称为: TEST, 所在的目录为 D:\TEST. 然后点按钮"Next >". 图1 3. 在接下来的这个对话框中(如图2), 我们需要选择驱动程序的类型. 由于 USB 设备驱动程序是 WDM 类型的, 所以我们选择第二项并且点按钮"Nex t >". 图2 4. 在第3 个...