rayman1983
驱动牛犊
驱动牛犊
  • 注册日期2006-02-08
  • 最后登录2007-05-15
  • 粉丝0
  • 关注0
  • 积分200分
  • 威望21点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
阅读:15915回复:20

WDF和WDM有什么区别,如果要移值应该注意什么呢

楼主#
更多 发布于:2007-04-24 09:20
  WDF和WDM有什么区别,如果要从WDM改成WDF应该注意什么呢?因为没有WDF的完整中文文档,所以想请大家说说自己的看法,谢谢了!
除了MS网站外(英文学习效率太低了),另外哪有WDF的相关资料呢,或书呢?

最新喜欢:

chonychony
rayman1983
驱动牛犊
驱动牛犊
  • 注册日期2006-02-08
  • 最后登录2007-05-15
  • 粉丝0
  • 关注0
  • 积分200分
  • 威望21点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-04-24 11:28
现在VISTA大行其道,必须得用WDF啊,国内好像又没有相关的书,大家说说你们是怎么学的啊!tks
softbiao
驱动牛犊
驱动牛犊
  • 注册日期2007-04-09
  • 最后登录2008-08-26
  • 粉丝0
  • 关注0
  • 积分240分
  • 威望26点
  • 贡献值0点
  • 好评度25点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-04-24 14:55
同问,帮你顶一下呵呵,不过好象这个版有点空旷
zuoyue
驱动牛犊
驱动牛犊
  • 注册日期2007-03-13
  • 最后登录2008-03-15
  • 粉丝0
  • 关注0
  • 积分90分
  • 威望10点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
地板#
发布于:2007-04-25 16:34
WDF和WDM的关系有点类似于MFC和Windows SDK的关系。WDF只是在WDM上面加了一层,来简化driver的开发,特别是PNP,power和IO cancellation 等几个方面有很大改进。

现在学习WDF最好的资料还是DDK带的sample code。WHDC有一些资料:
http://www.microsoft.com/whdc/driver/wdf/default.mspx

其中Windows Driver Foundation: A Syllabus [175 KB Word document] 列出了很多有用资料。至于移植,请参看 How to Port WDM Drivers to KMDF [749 KB]

关于WDF的书目前只有两本:一本是微软的,一本是OSR的。内容差不多,MS的这个月才发布,OSR还只能pre-order. 中文资料目前还没有

http://www.microsoft.com/MSPress/books/10512.aspx
http://www.osr.com/wdfbook.shtml


引用第0楼rayman19832007-04-24 09:20发表的“WDF和WDM有什么区别,如果要移值应该注意什么呢”:
  WDF和WDM有什么区别,如果要从WDM改成WDF应该注意什么呢?因为没有WDF的完整中文文档,所以想请大家说说自己的看法,谢谢了!
除了MS网站外(英文学习效率太低了),另外哪有WDF的相关资料呢,或书呢?
silasoni
驱动牛犊
驱动牛犊
  • 注册日期2007-04-26
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分50分
  • 威望7点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2007-04-26 13:14
我讨厌mfc的风格
人的梦想是无法阻止di
rayman1983
驱动牛犊
驱动牛犊
  • 注册日期2006-02-08
  • 最后登录2007-05-15
  • 粉丝0
  • 关注0
  • 积分200分
  • 威望21点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2007-04-29 09:45
谢谢zuoyue,知道的真多啊,连目前只有两本关于WDF的书都知道,偑服
alphapiao
驱动小牛
驱动小牛
  • 注册日期2002-06-21
  • 最后登录2011-05-04
  • 粉丝0
  • 关注0
  • 积分1004分
  • 威望155点
  • 贡献值0点
  • 好评度109点
  • 原创分1分
  • 专家分0分
6楼#
发布于:2007-04-30 14:27
WDF驱动模型
如所周知,自Windows 2000开始,开发驱动程序必以WDM为基础的,但其开发难度之大,根本不能奢望像用户模式应用程序开发那样容易。为改善这种局面,微软推出了新的驱动程序开发环境。要预先指出的是,这不是另起炉灶改弦更张,而是以WDM为基础进行了建模和封装,显著特点是降低了开发难度。因为:
1、   将原来普通程序设计中基于对象的技术应用到了驱动开发中。WDM中虽也有对象模型,但与真正的基于对象技术根本就不是一回事。为了实现基于对象的技术,微软精心设计了对象模型并进行了封装。属性、方法、事件等等“一个都不能少”。
2、   无论内核模式的驱动程序或者用户模式的驱动程序,都采用同一套对象模型构建,采用同一个基础承载。这个基础就是WDF。WDF虽然已经是经过封装和定义的对象模型,但对内核模式和用户模式对象来说,WDF又是两者的父对象。换言之两者都是继承了WDF才得到的,或者都是从WDF派生而来的。相对于内核模式,派生出的对象称为“KMD框架”即KMDF;相对于用户模式,派生出的模型称为“UMD框架”即UMDF。无论何种模式的框架,其内部封装的方法、执行的行为其实还是用WDM完成的。
3、   更重要的,也是微软反复炫耀的是封装了驱动程序中的某些共同行为:例如即插即用和电源管理就属于这种共同行为。因为大多数驱动程序中都需要处理即插即用和电源管理问题,据说这大概要上千行的代码,况且,没有相当水平还不一定能处理好。为了一劳永逸,WDF干脆将即插即用和电源管理封装了进了对象之内,一举成了对象的缺省(默认)行为。
4、   改变了操作系统内核与驱动程序之间的关系,WDM驱动程序中,一方面要处理硬件,另一方面要处理驱动程序与操作系统内核的交互。现在WDF则将驱动程序与操作系统内核之间进行了分离,驱动程序与操作系统交互工作交给框架内封装的方法(函数)完成,这样驱动开发者只需专注处理硬件的行为即可。这不仅避免了顾此失彼两面不周的弊端,也由于双方的分离,对操作系统内的某些改动,硬件制造商配套驱动程序的开发都有莫大的好处。
5、   两种模式的驱动程序(KMDF、UMDF)都使用同一环境进行构建,这一环境称为WDK。
      即KMDF,UMDF的开发环境为WDK。
Windows Device Kit (WDK): 把测试套件(test suites)集成进来,DDK 就成了WDK。WDK是针对微软操作系统系列的驱动器集成开发系统。它组合了Windows DDK和Hardware Compatibility Test (HCT) kits(硬件兼容性测试工具),同时提供了微软内部用来测试Windows操作系统稳定性和可靠性的测试套件。

 
6、   虽然经过封装并引入基于对象的技术,所开发的驱动程序在执行效率上并不比原来逊色。
我的博客:xpddk.bokee.com
zhouhongyun
驱动牛犊
驱动牛犊
  • 注册日期2004-01-12
  • 最后登录2015-08-22
  • 粉丝0
  • 关注0
  • 积分210分
  • 威望23点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2007-05-07 22:03
开发驱动程序的人本身是为了追求更透彻了解系统内部在干什么,封装的初衷和 驱动程序员本身的想法背道而驰。
这一套 还是留给 应用程序开发人员吧
勇敢的心
zuoyue
驱动牛犊
驱动牛犊
  • 注册日期2007-03-13
  • 最后登录2008-03-15
  • 粉丝0
  • 关注0
  • 积分90分
  • 威望10点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2007-05-10 08:39
开发驱动程序的人本身是想更方便快捷的让自己的硬件在windows下工作起来。封装是上层系统的封装,并不影响驱动与设备之间的联系。况且在windows驱动中已经有很多封装了,比如storage port/mini port,显卡的port/miniport, 网卡的NIDS。WDF只是提供一个更general的封装。

引用第7楼zhouhongyun2007-05-07 22:03发表的“”:
开发驱动程序的人本身是为了追求更透彻了解系统内部在干什么,封装的初衷和 驱动程序员本身的想法背道而驰。
这一套 还是留给 应用程序开发人员吧
qiweixue
驱动小牛
驱动小牛
  • 注册日期2004-07-21
  • 最后登录2011-12-19
  • 粉丝0
  • 关注0
  • 积分1006分
  • 威望274点
  • 贡献值0点
  • 好评度268点
  • 原创分1分
  • 专家分0分
9楼#
发布于:2007-05-18 11:45
New for Windows Driver Foundation
The Windows Driver Foundation (WDF) is the next-generation driver model for the Windows family of operating systems. WDF defines two frameworks that you can use to write Windows drivers:

Kernel-Mode Driver Framework (KMDF)
You can use KMDF to write kernel-mode drivers. KMDF interfaces are easier to use than Windows Driver Model (WDM) interfaces. You should use KMDF interfaces instead of WDM interfaces to write new kernel-mode drivers, unless your driver must directly communicate with an existing class driver or port driver. For more information about KMDF, see Getting Started with Kernel-Mode Driver Framework.
User-Mode Driver Framework (UMDF)
You can use UMDF to write a user-mode driver, instead of a kernel-mode driver, for some types of devices. If UMDF supports your device type, you should write a user-mode driver instead of a kernel-mode driver. For more information about UMDF and the types of devices that UMDF supports, see Introduction to UMDF.
hillzzz
驱动牛犊
驱动牛犊
  • 注册日期2007-05-25
  • 最后登录2007-07-04
  • 粉丝0
  • 关注0
  • 积分30分
  • 威望4点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2007-06-11 18:00
看到上面几位的介绍,WDF 感觉就像是用Windriver or DriverStudio 之类的DDK Tools来开发Driver, 只是这次 WDM 外壳是由Mft 封装的
AaronZ
驱动牛犊
驱动牛犊
  • 注册日期2007-03-14
  • 最后登录2007-07-18
  • 粉丝0
  • 关注0
  • 积分150分
  • 威望16点
  • 贡献值0点
  • 好评度15点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2007-07-03 10:10
关于WDF和WDM的区别alphapiao说得还是挺清楚的。
个人感觉这年头最重要的是掌握所有变化中那一小块不变的根基,变化的总是在变化而且变得很快,让人费心费力还不讨好,可行的办法就是以不变应万变。就拿驱动这行来说,最重要的就是操作系统和驱动模型,虽然说它们不断地在改变,但是其中很多的根基是无法改变的(事务发展的必然,一个事物怎么开始在很大程度上决定了它以后怎么以及朝哪个方向发展),掌握了这个不变的根基,在应对变化之时就会好很多,不会太忙乱。
bmd911
驱动牛犊
驱动牛犊
  • 注册日期2007-07-25
  • 最后登录2011-10-04
  • 粉丝0
  • 关注0
  • 积分105分
  • 威望51点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2007-08-09 23:16
看来不当二鬼子,学english不行啊
bmd911
驱动牛犊
驱动牛犊
  • 注册日期2007-07-25
  • 最后登录2011-10-04
  • 粉丝0
  • 关注0
  • 积分105分
  • 威望51点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2007-08-09 23:17
幸亏又词霸啊~以后有钱一定要买张碟支持他~
ProPlayboy
驱动大牛
驱动大牛
  • 注册日期2005-07-07
  • 最后登录2022-02-15
  • 粉丝0
  • 关注0
  • 积分1016分
  • 威望811点
  • 贡献值0点
  • 好评度719点
  • 原创分0分
  • 专家分0分
  • 社区居民
14楼#
发布于:2007-08-10 00:24
学习
人不靓仔心灵美,版头不正红花仔!
ProPlayboy
驱动大牛
驱动大牛
  • 注册日期2005-07-07
  • 最后登录2022-02-15
  • 粉丝0
  • 关注0
  • 积分1016分
  • 威望811点
  • 贡献值0点
  • 好评度719点
  • 原创分0分
  • 专家分0分
  • 社区居民
15楼#
发布于:2007-08-10 00:24
人不靓仔心灵美,版头不正红花仔!
ProPlayboy
驱动大牛
驱动大牛
  • 注册日期2005-07-07
  • 最后登录2022-02-15
  • 粉丝0
  • 关注0
  • 积分1016分
  • 威望811点
  • 贡献值0点
  • 好评度719点
  • 原创分0分
  • 专家分0分
  • 社区居民
16楼#
发布于:2007-08-10 00:27
人不靓仔心灵美,版头不正红花仔!
kuoroy88
驱动牛犊
驱动牛犊
  • 注册日期2006-04-28
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望30点
  • 贡献值0点
  • 好评度22点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2007-08-20 11:53
谢谢,alphapiao 讲的真清楚
lijinxi
驱动牛犊
驱动牛犊
  • 注册日期2007-07-29
  • 最后登录2009-04-07
  • 粉丝1
  • 关注0
  • 积分42分
  • 威望67点
  • 贡献值21点
  • 好评度51点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2007-08-29 09:19
顶顶顶
技术人,用真名,李金喜向你问好.
KungFu
驱动大牛
驱动大牛
  • 注册日期2001-09-27
  • 最后登录2008-04-08
  • 粉丝0
  • 关注0
  • 积分221分
  • 威望24点
  • 贡献值0点
  • 好评度19点
  • 原创分0分
  • 专家分0分
19楼#
发布于:2008-03-04 13:17
顶一下
看到几位的讨论,忍不住让更多的人了解一下,让更多的人参加讨论
我不写驱动好多年
上一页
游客

返回顶部