WDF
来源:互联网 发布:sketch 46 破解版 mac 编辑:程序博客网 时间:2024/04/30 03:43
WDF是Vista及其以后OS的驱动模型,意为Windows Driver Foundation,此模型比WDM更先进、合理(微软是这样说的),将WDF中关于电源、PnP等一些复杂的细节由微软实现,所以在此模型上开发驱动会 比以前要简单。
发展历史
1.最先开始使用的是VXD(早废弃了)。
2.自Windows 2000开始,开发驱动程序必以WDM为基础的,意为Windows Driver Model,是一个标准的驱动模型,意思是说你可以在这个模型上有所改动,WDM是Vista以前平台的驱动模型(vista支持大部分的WDM驱动)。
3.WDF是Vista及其以后OS的驱动模型,意为Windows Driver Foundation,此模型比WDM更先进、合理(微软是这样说的),将WDF中关于电源、PnP等一些复杂的细节由微软实现,所以在此模型上开发驱动会 比以前要简单。3
要预先指出的是,这不是另起炉灶改弦更张,而是以WDM为基础进行了建模和封装,显著特点是降低了开发难度。因为:
1、将原来普通程序设计中基于对象的技术应用到了驱动开发中。WDM中虽也有对象模型,但与真正的基于对象技术根本就不是一回事。为了实现基于对象的技术,微软精心设计了对象模型并进行了封装。属性、方法、事件等等“一个都不能少”。
2、无论内核模式的驱动程序或者用户模式的驱动程序,都采用同一套对象模型构建,采用同一个基础承载。这个基础就是WDF。WDF虽然已经是经过封装和定义的对象模型,但对内核模式和用户模式对象来说,WDF又是两者的父对象。换言之两者都是继承了WDF才得到的,或者都是从WDF派生而来的。相对于内核模式,派生出的对象称为“KMD框架”即KMDF;相对于用户模式,派生出的模型称为“UMD框架”即UMDF。无论何种模式的框架,其内部封装的方法、执行的行为其实还是用WDM完成的。
3、更重要的,也是微软反复炫耀的是封装了驱动程序中的某些共同行为:例如即插即用和电源管理就属于这种共同行为。因为大多数驱动程序中都需要处理即插即用和电源管理问题,据说这大概要上千行的代码,况且,没有相当水平还不一定能处理好。为了一劳永逸,WDF干脆将即插即用和电源管理封装了进了对象之内,一举成了对象的缺省(默认)行为。
4、改变了操作系统内核与驱动程序之间的关系,WDM驱动程序中,一方面要处理硬件,另一方面要处理驱动程序与操作系统内核的交互。现在WDF则将驱动程序与操作系统内核之间进行了分离,驱动程序与操作系统交互工作交给框架内封装的方法(函数)完成,这样驱动开发者只需专注处理硬件的行为即可。这不仅避免了顾此失彼两面不周的弊端,也由于双方的分离,对操作系统内的某些改动,硬件制造商配套驱动程序的开发都有莫大的好处。
5、两种模式的驱动程序(KMDF、UMDF)都使用同一环境进行构建,这一环境称为WDK。
6、虽然经过封装并引入基于对象的技术,所开发的驱动程序在执行效率上并不比原来逊色。
0 0
- WDF
- wdf
- WDF
- 认识一下WDF
- WDF USB
- 《WDF USB驱动开发指南》-- WDF简介
- WDF驱动模型
- WDF虚拟磁盘驱动程序
- WDF驱动学习1
- windows WDF驱动程序设计
- WDF驱动安装方法
- WDF驱动模型
- WDF驱动模型
- ddk\wdm wdk\wdf
- WDF----PCI设备初始化
- WDF 驱动 pending 操作
- WDF设备驱动框架
- WDF 显卡驱动模型
- stramcp函数的应用
- 学习C#的党的学习路线,请教高手
- 十七周项目1-1函数参数传递
- 第17周项目27-软件比拼
- 【GUI组件】按钮Button
- WDF
- centos-6.5 修改系统日志时间戳格式
- Direct3D学习手记一:实现Direct3D程序框架
- (LeetCode)Two Sum
- 植物 動物 사람의 發生 (韓長庚 易學原理總論)
- C# 获取文件名及扩展名
- 64位系统下的"fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏“解决方案
- 英雄会第二届在线编程大赛·线上初赛:AB 题解
- 旅游定机票