尽管Windows平台的SDK、DDK与WDK都包含了WinDBG工具包,但是用户获取WinDBG工具包的最主要方式还是从微软网站自由下载,因为这样获得的版本最新。
最近因为工作需要,尝试去了解WINDOWS下的驱动开发,现在总结一下最近看到的资料。
DDK——Device Driver Kit,设备驱动程序开发包。
WDK——Windows Driver Kit,Windows驱动程序开发包,就是DDK升级改名了。
VxD——Virtual Device Driver,虚拟设备驱动程序,9X中的一种驱动程序。
WDM——Windows Driver Model,Windows驱动程序模型,98以上版本的一种驱动程序。
驱动程序的文件格式都是PE格式。
一般用VC和MASM编写驱动程序。
开发工具是WDK(DDK)。
驱动程序与操作系统有关,有些相近的系统有可能可以运行同一驱动程序,与驱动程序中使用的系统功能有关。
驱动程序可以是针对某一特定硬件的,为系统提供管理硬件的各种功能;也可以是针对系统设备的,对系统的输入输出做一些处理,实现特定的功能。
1、首先,先从基础的东西说起,开发WINDOWS下的驱动程序,需要一个专门的开发包,如:开发JAVA程序,我们可能需要一个JDK,开发WINDOWS应用程序,我们需要WINDOWS的SDK,现在开发WINDOWS下的驱动程序,我们需要一个DDK/WDK。(DDK是WDK的前身,后来改名叫WDK。)
简单说明:
SDK 软件开发工具
DDK 驱动开发工具
WDK windows驱动开发工具
2、DDK(Driver Developer Kit)和WDK(Windows Driver Kit)的区别:
这个要说说驱动相关的一些历史:
1).95/98/ME下,驱动模型为:Vxd,相关资料可以看《编程高手箴言》的前几个章节,里面有很详细的介绍,虽然这个东西已经过时,但大概看看还是会增长见识的。
2).2000/XP/2003下,Windows采用WDM驱动模型(Windows Driver Model),开发2000/XP/2003的驱动开发包为:DDK。
3).Vista及以后版本,采用了WDF驱动模型(Windows Driver Foudation),对应的开发包:WDK。
其实WDK可以看做是DDK的升级版本,现在一般的WDK是包含以前DDK相关的功能,现在XP下也可以用WDK开发驱动,WDK能编译出2000-2008的各种驱动。
3、Vxd驱动文件扩展名为:.vxd
WDM和WDF驱动文件扩展名为:.sys。
参考资料:
1.http://topic.csdn.net/u/20071225/13/bbb7eeba-7abf-483d-8724-abb76aa4e22c.html
2.http://topic.csdn.net/u/20090104/16/9d09f896-fd4b-4b6b-807c-990ddc63c35b.html
3.http://topic.csdn.net/u/20080204/19/2ca8d266-f384-4d8f-865c-c16a33aa97b0.html