WDM驱动程序设计
WDM 驱动程序设计
一.WDM 简介
微软不断推出新的操作系统,现在Windows98 和Windows2000 已经成了主流,原先用来
实现驱动程序的 VxD 技术随着 Win95 的淡出也慢慢地将退出历史舞台,在 Windows98 和
Windows2000 中设备驱动程序将根据Windows 驱动程序模型(WDM)来设计。WDM 通过提供一
种灵活的方式来简化驱动程序的开发,在实现对新硬件支持的基础上减少并降低所必须开发
的驱动程序的数量和复杂性。
Windows 驱动程序模型分两个方面,除了核心模型描述设备驱动程序的标准结构外,WDM
还为常见类型的设备实现了一个模块化的、分层次类型的总线驱动程序和类驱动程序。总线
驱动程序实现了支持通用串行总线(USB)、IEEE1394(FireWire)协议等。类驱动程序是为
实现标准Windows 功能提供条件。WDM 对标准类接口的支持减少了Windows 95 和Windows
NT 所需的设备驱动程序的数量和复杂性。在Windows 平台上,WDM 将成为21 世纪主流的驱动
模式。
WDM 支持USB、IEEE 1394、ACPI 等全新的硬件标准。而且以往在两个平台上同时运行
时需要编写两个截然不同的驱动程序,现在只需要编写一个 WDM 驱动程序就可以了。WDM 驱
动程序也是分层的,即不同层上的驱动程序有着不同的优先级,而 Windows 9x 下的 VxD
则没有此结构。
WDM 还引入了功能设备对象FDO(Functional Device Object)与物理设备对象PDO
(Physical Device Object)两个新类来描述硬件,一个PDO 对应一个真实硬件。一个
硬件只允许有一个PDO,却可以拥有多个FDO,在驱动程序中直接操作的不是硬件而是相应的
PDO 与FDO。在用户态和内核态通讯方面,系统为每一个用户请求打包形成一个IRP 结构,将
其发送至驱动程序,并通过识别IRP 中的PDO 来区别是发送给哪一个设备的。另外,在驱动
程序的加载方面,WDM 不通过驱动程序名称识别,而是通过一个128 位的全局唯一标识符GUID
来实现驱动程序的识别。我们用上图来说明设备驱动程序的分层及调用。
写WDM 和其它模式驱动程序基本上是相同的,代码中的主要区别在于如何创建设备。
在WDM 驱动程序中,即插即用(PnP)管理器告知何时向系统添加一个设备,或者从系统
删除设备。PnP 管理器使用安装的 INF 文件查找新设备的正确驱动程序;而其它模式驱动程
序必须发现它自己的设备,使用专门的安装程序安装。
另外在细节上也存在很多区别,其它模式驱动程序参数一般由注册表提供,在 DriverEntry
里调用读注册表的函数,然后根据注册表再调用CreateDevice,但是WDM 一般不是这样,这
是由于Windows 2000 下支持PnP,在加载的时候PnP 管理器调用AddDevice 入口点创建设
备。一般在DriverEntry 里创建的是一个与设备或者对象毫无关系的虚拟设备,用于管理与
Win32 的通讯。如果不想对该设备做什么特别的处理,或者设备不复杂,AddDevice 可以简单
返回Nt_Success,不用调用CreateDevice。
另外整个设备驱动树也发生了改变,从而使安装程序发生了很大的改变。WDM 本身的PNP
管理器被抽象地提升到了ROOT 的地位。PNP 管理器负责所有的总线驱动程序的加载。总线驱
动程序则负责遍历所有位于总线上的设备,并且为每个设备创建相应的设备对象。当PNP 管
下载文档
热门试卷
- 2016年四川省内江市中考化学试卷
- 广西钦州市高新区2017届高三11月月考政治试卷
- 浙江省湖州市2016-2017学年高一上学期期中考试政治试卷
- 浙江省湖州市2016-2017学年高二上学期期中考试政治试卷
- 辽宁省铁岭市协作体2017届高三上学期第三次联考政治试卷
- 广西钦州市钦州港区2016-2017学年高二11月月考政治试卷
- 广西钦州市钦州港区2017届高三11月月考政治试卷
- 广西钦州市钦州港区2016-2017学年高一11月月考政治试卷
- 广西钦州市高新区2016-2017学年高二11月月考政治试卷
- 广西钦州市高新区2016-2017学年高一11月月考政治试卷
- 山东省滨州市三校2017届第一学期阶段测试初三英语试题
- 四川省成都七中2017届高三一诊模拟考试文科综合试卷
- 2017届普通高等学校招生全国统一考试模拟试题(附答案)
- 重庆市永川中学高2017级上期12月月考语文试题
- 江西宜春三中2017届高三第一学期第二次月考文科综合试题
- 内蒙古赤峰二中2017届高三上学期第三次月考英语试题
- 2017年六年级(上)数学期末考试卷
- 2017人教版小学英语三年级上期末笔试题
- 江苏省常州西藏民族中学2016-2017学年九年级思想品德第一学期第二次阶段测试试卷
- 重庆市九龙坡区七校2016-2017学年上期八年级素质测查(二)语文学科试题卷
- 江苏省无锡市钱桥中学2016年12月八年级语文阶段性测试卷
- 江苏省无锡市钱桥中学2016-2017学年七年级英语12月阶段检测试卷
- 山东省邹城市第八中学2016-2017学年八年级12月物理第4章试题(无答案)
- 【人教版】河北省2015-2016学年度九年级上期末语文试题卷(附答案)
- 四川省简阳市阳安中学2016年12月高二月考英语试卷
- 四川省成都龙泉中学高三上学期2016年12月月考试题文科综合能力测试
- 安徽省滁州中学2016—2017学年度第一学期12月月考高三英语试卷
- 山东省武城县第二中学2016.12高一年级上学期第二次月考历史试题(必修一第四、五单元)
- 福建省四地六校联考2016-2017学年上学期第三次月考高三化学试卷
- 甘肃省武威第二十三中学2016—2017学年度八年级第一学期12月月考生物试卷
网友关注
- 物业公司年终总结
- 音乐教学计划第2部分
- 信息管理求职简历模板
- 景区7月份工作计划
- 酒店餐饮部门目前面对的困境及应对之策_成本管理论文
- 装饰工程施工组织设计投标书模板
- 月工作计划
- 医院人事档案管理的探讨
- 第一章 投标邀请函
- 市场代表人员的求职简历范文
- 关于公布2009年度中国广播电视协会媒介素养研究专项
- 上半年外经贸局机关党支部工作总结
- 大学生个人总结范文及其要求
- 机关党委工作总结
- 舞蹈教师求职简历模板-个人简历模板
- 福建交通学院沙盘社团书面申请
- 安全质量进度汇报材料
- 中国石油和化工企业两化深度融合工作研讨会
- 酒店餐饮人力资源现况分析
- 2011-2012年度工作计划
- 技术概要
- 建筑工程施工招标投标标书编制实用手册
- 上半年外经贸局机关党支部工作总结
- [精彩]江西农业工程学院
- 安全卫生教育工作计划
- [教学]求职简历
- 选修5第三章烃的含氧衍生物 第四节有机合成
- 申请人指导手册草案 精品文档
- 银行投标技术书
- 2014年煤矿防灭火管理规定
网友关注视频
- 人教版二年级下册数学
- 冀教版英语五年级下册第二课课程解读
- 外研版英语七年级下册module3 unit2第一课时
- 第五单元 民族艺术的瑰宝_15. 多姿多彩的民族服饰_第二课时(市一等奖)(岭南版六年级上册)_T129830
- 冀教版小学英语五年级下册lesson2教学视频(2)
- 七年级英语下册 上海牛津版 Unit5
- 《空中课堂》二年级下册 数学第一单元第1课时
- 【部编】人教版语文七年级下册《泊秦淮》优质课教学视频+PPT课件+教案,天津市
- 沪教版牛津小学英语(深圳用) 六年级下册 Unit 7
- 二年级下册数学第一课
- 【部编】人教版语文七年级下册《过松源晨炊漆公店(其五)》优质课教学视频+PPT课件+教案,江苏省
- 北师大版小学数学四年级下册第15课小数乘小数一
- 苏教版二年级下册数学《认识东、南、西、北》
- 外研版英语三起5年级下册(14版)Module3 Unit1
- 北师大版八年级物理下册 第六章 常见的光学仪器(二)探究凸透镜成像的规律
- 冀教版小学数学二年级下册第二单元《有余数除法的整理与复习》
- 外研版英语三起5年级下册(14版)Module3 Unit2
- 【部编】人教版语文七年级下册《泊秦淮》优质课教学视频+PPT课件+教案,辽宁省
- 外研版八年级英语下学期 Module3
- 【部编】人教版语文七年级下册《过松源晨炊漆公店(其五)》优质课教学视频+PPT课件+教案,辽宁省
- 8 随形想象_第一课时(二等奖)(沪教版二年级上册)_T3786594
- 冀教版小学数学二年级下册第二单元《有余数除法的简单应用》
- 第五单元 民族艺术的瑰宝_16. 形形色色的民族乐器_第一课时(岭南版六年级上册)_T1406126
- 沪教版牛津小学英语(深圳用) 四年级下册 Unit 8
- 第12章 圆锥曲线_12.7 抛物线的标准方程_第一课时(特等奖)(沪教版高二下册)_T274713
- 外研版英语七年级下册module1unit3名词性物主代词讲解
- 苏科版数学 八年级下册 第八章第二节 可能性的大小
- 沪教版八年级下册数学练习册21.4(1)无理方程P18
- 沪教版牛津小学英语(深圳用) 五年级下册 Unit 7
- 19 爱护鸟类_第一课时(二等奖)(桂美版二年级下册)_T3763925
精品推荐
- 2016-2017学年高一语文人教版必修一+模块学业水平检测试题(含答案)
- 广西钦州市高新区2017届高三11月月考政治试卷
- 浙江省湖州市2016-2017学年高一上学期期中考试政治试卷
- 浙江省湖州市2016-2017学年高二上学期期中考试政治试卷
- 辽宁省铁岭市协作体2017届高三上学期第三次联考政治试卷
- 广西钦州市钦州港区2016-2017学年高二11月月考政治试卷
- 广西钦州市钦州港区2017届高三11月月考政治试卷
- 广西钦州市钦州港区2016-2017学年高一11月月考政治试卷
- 广西钦州市高新区2016-2017学年高二11月月考政治试卷
- 广西钦州市高新区2016-2017学年高一11月月考政治试卷
分类导航
- 互联网
- 电脑基础知识
- 计算机软件及应用
- 计算机硬件及网络
- 计算机应用/办公自动化
- .NET
- 数据结构与算法
- Java
- SEO
- C/C++资料
- linux/Unix相关
- 手机开发
- UML理论/建模
- 并行计算/云计算
- 嵌入式开发
- windows相关
- 软件工程
- 管理信息系统
- 开发文档
- 图形图像
- 网络与通信
- 网络信息安全
- 电子支付
- Labview
- matlab
- 网络资源
- Python
- Delphi/Perl
- 评测
- Flash/Flex
- CSS/Script
- 计算机原理
- PHP资料
- 数据挖掘与模式识别
- Web服务
- 数据库
- Visual Basic
- 电子商务
- 服务器
- 搜索引擎优化
- 存储
- 架构
- 行业软件
- 人工智能
- 计算机辅助设计
- 多媒体
- 软件测试
- 计算机硬件与维护
- 网站策划/UE
- 网页设计/UI
- 网吧管理