原创 WDF驱动中KMDF与UMDF区别

2010-11-8 13:42 3423 19 20 分类: 消费电子

众所周知, 早期的Windows 95/98的设备驱动是VxD(Virtual Device Driver),其中x表示某一类设备。从Windows 2000开始,开发驱动程序必以WDM(Windows Driver Model)为基础的,但是,如果使用DDK来开发WDM,其开发难度之大,根本不能奢望像用户模式应用程序开发那样容易,因此,一般用户都是使用 WinDriver、DriverStudio之类的第三方工具。为改善这种局面,从Vista开始,微软推出了新的驱动程序开发环境 WDF(Windows Driver Foundation )。WDF和WDM的关系有点类似于MFC和Windows SDK的关系,有编程经验的人一看就知道为何WDF开发比WDM容易了。WDF有KMDF(内核模式的驱动程序)和UMDF(用户模式的驱动程序)两种模式:

1、内核模式驱动程序 KMDF(Kernel-Mode Driver Framework):

这类驱动程序作为内核模式操作系统组件的一部分执行,它们管理I/O、即插即用、内存、进程和线程、安全等。内核模式驱动程序通常为分层结构。 关于KMDF更多的内容,可参阅 MSDN中“Getting Started with Kernel-Mode Driver Framework ”。

2、用户模式驱动程序 UMDF(User-Mode Driver Framework):

这类驱动程序通常提供 Win32 应用程序与内核模式驱动程序或其他操作系统组件之间的接口。用户模式驱动程序支持基于协议或基于串行总线(如摄像机和便携音乐播放器)的设备。关于 KMDF更多的内容,可参阅 MSDN中“ Introduction to UMDF”。

3、无论内核模式的驱动程序或者用户模式的驱动程序,都使用同一环境进行构建,这一环境称为WDK;都采用同一套对象模型构建,采用同一个基础承载,这个基础就是WDF。由于WDF驱动模型提供了面向对象和事件驱动的驱动程序开发框架,大大降低了开发难度。从现在开始,掌握Windows设备驱动程序的开发人员,由过去的“专业”人士,将变为“普通”大众。因此,像WinDriver、DriverStudio之类的第三方工具也随之退出历史舞台。

4、KMDF是Windows系统底层驱动,文件名为:*.SYS,Vista为2万多外设提供了KMDF,其中也包括USB2.0,因此对于具有USB2.0协议的FX2,只需编写与FX2相关的UMDF即可;UMDF是用户层驱动,文件名为:*.DLL。

文章评论1条评论)

登录后参与讨论

用户1277994 2010-11-8 13:42

多谢博主的总结与分享。
相关推荐阅读
用户1037795 2014-09-29 14:57
高速LVDS接口信号完整性处理实例
  一、系统介绍 EMCCD相机由图像传感器、驱动电路、FPGA(Spartan-3)、LVDS接口和电源等组成。LVDS输出接口使用2片DS92LV1021,每片实现10bit并行数据到...
用户1037795 2014-08-20 14:15
关于Xilinx FPGA JTAG下载时菊花链路中的芯片数量
  当一个系统中含有多片(2片以上)Xilinx FPGA、CPLD或PROM(FLASH)时,可采用单一JTAG口以菊花链(Daisy Chain)形式将所有芯片串联起来实现下载编程,如下图...
用户1037795 2014-08-12 07:50
NiosII程序编译时出现onchip_mem不够问题及解决方法
开发Altera Nios II软件可使用Nios II IDE或 Nios II Software Build Tools for Eclipse(即:Nios II SBT for Eclip...
用户1037795 2014-08-11 15:08
Altera QuartusII及Cyclone IV E使用经验
  1、仅C8L、IC8L、C9L使用1.0V核电压(VCCINT),其它速度的均使用1.2V核电压。 2、对于作为LVDS传输的Bank必须接2.5V的VCCIO,参考数据手册表1-20...
用户1037795 2014-08-07 14:39
Altera FPGA带NiosII内核程序的JTAG下载方法总结
  1、对于Altera FPGA,含Nios II时需要下载的文件有4种:.sof 文件,.pof 文件,.jic 文件,.elf 文件。 下载文件 ...
用户1037795 2014-08-06 10:18
Quratus II中 Nios II 硬件设计工具SOPC Builder与Qsys的区别
  1、 SOPC(System On a Programmable Chip.)即可编程片上系统,SOPC Builder是Quartus II中传统的Nios II 硬件设计工具,可以灵活...
我要评论
1
19
关闭 站长推荐上一条 /2 下一条