2013年4月4日星期四

驱动模型 Vxd WDM(DDK) WDF(WDK)

驱动模型

Vxd
95/98/ME下  这个东西已经过时
Vxd驱动文件扩展名为:.vxd

WDM(开发包DDK)    Windows Driver Model
2000/XP/2003下
开发2000/XP/2003的驱动开发包为:DDK
WDM和WDF驱动文件扩展名为:.sys

WDF(开发包WDK)    Windows Driver Foudation
Vista及以后版本
对应的开发包:WDK
WDM和WDF驱动文件扩展名为:.sys


WDK可以看做是DDK的升级版本,现在一般的WDK是包含以前DDK相关的功能,现在XP下也可以用WDK开发驱动,WDK能编译出2000-2008的各种驱动

WDF驱动程序包括两个类型,
一个是内核级的,称为KMDF(Kernel-Mode Driver Framework),为SYS文件
一个是用户级的,称为UMDF(User-Mode Driver Framework),为DLL文件

WDM驱动模型和WDF驱动模型的最大的区别是
WDF驱动框架对WDM进行了一次封装
WDF 驱动采用队列进行IO处理,而WDM中将所有的IO操作都用默认的队列进行处理,如果要进行IRp同步,必须使用StartIO
WDF是面向对象的,而WDM是面向过程的,WDF提供对象的封装,如将IRP封装成WDFREQUEST,对象提供方法和Event

The IRP structure is a partial opaque structure that represents an I/O request packet

没有评论:

发表评论