WDF驱动中KMDF与UMDF区别

转载 2013年12月04日 20:52:26

转载自:http://emesjx.spaces.eepw.com.cn/articles/article/item/84585


众所周知, 早期的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。


WDF驱动中KMDF与UMDF区别

众所周知, 早期的Windows 95/98的设备驱动是VxD(Virtual Device Driver),其中x表示某一类设备。从Windows 2000开始,开发驱动程序必以WDM(Window...

菜鸟WDF驱动开发系列(3):安装与调试第一个UMDF驱动程序

写了篇2时,我绞尽脑汁想在虚拟机上实现UMDF的远程调试,但没办法,据我能找到的书来看,只有一个方法就是,在WinDBG--File--Attach to a process,哦嘀神啊,在本机怎么At...

windows驱动程序wdf--KMDF大致框架

继WDM后微软出了WDF,封装了WDM中的一些基本代码逻辑。本人菜鸟,也不知道本质上有何区别,只觉得是多了Wdf开头的函数,基本的编程框架上有点出入。KMDF是WDF的内核级部分,为了理清KMDF的结...
  • mao0514
  • mao0514
  • 2015年01月04日 16:18
  • 2007

菜鸟WDF驱动开发系列(2):调试第一个KMDF驱动程序

根据系列上一篇的内容,已经基本作好了驱动调试环境的配置,现在着手开始试一下怎么用WinDBG调试。每一位新手在开始学习驱动开发的时候相信总会看大量的资料,如我第一篇提到的几本书的确是不错的,但名著总有...

WDF KMDF 内核模式驱动框架结构

  • 2010年11月08日 09:47
  • 437KB
  • 下载

kmdf驱动教程1——从Hello World开始

kmdf 驱动开发入门
  • hustd10
  • hustd10
  • 2016年01月17日 15:47
  • 2173

Windows Driver Foundation - KMDF 内核模式驱动框架结构 第五部分

同步问题 因为Windows是抢占的多任务操作系统,多个线程可以并发地访问共享数据结构或资源,而多个驱动例程会并发运行。为了保证数据完整,所有驱动必须同步共享数据结构的访问。正确实现这样的同...

如何用KMDF开发驱动

  • 2009年02月13日 19:38
  • 295KB
  • 下载

Windows Driver Foundation - KMDF 内核模式驱动框架结构 第三部分

KMDF I/O 模型 KMDF建立了自己的派遣例程,其截取了所有发送给驱动的IRP。 图表2说明整个KMDF库和驱动的I/O流程。详细解释见“I/O Request Flow i...

Windows Driver Foundation - KMDF 内核模式驱动框架结构 第一部分

简介 内核模式驱动框架(KMDF)是开发内核模式驱动的基础框架。它提供C语言设备驱动接口(DDI),能用来创建Microsoft® Windows® 2000及以后版本的驱动。本质上,框架就是一...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:WDF驱动中KMDF与UMDF区别
举报原因:
原因补充:

(最多只允许输入30个字)