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月月考生物试卷
网友关注
- 给妈妈的一封信
- 端午节安全教育
- 幼儿带量食谱安排原则
- 教师专业成长计划
- 养成教育主题班会设计
- 留守儿童材料目录
- 适合小孩子的运动
- 广东省连州市星子镇中心幼儿园工程可行性研究报告-广州中撰咨询
- 登鲁的故事
- 关于幼儿园转让协议
- 东华试题分类--阅读答案
- 幼儿园班级消毒记录表
- 2016----2017年度小班名画欣赏
- 母亲节所思
- 2010-2011学年北京市海淀区高三第二学期期末练习(语文)答案
- 对“留守学生”教育问题思考
- 小学总务考核标准11
- 2010年浙江省金华一中高一上学期期中考试语文卷答案
- 中班美术教学计划
- 洋县理光复印土管局大门北:幼儿园校安全工作日志
- 广东省佛山市均安镇星槎幼儿园工程可行性研究报告-广州中撰咨询
- 《教育的力量》读后感
- 2015---2016年度小班名画欣赏
- 小学古诗词归类整理
- 幼儿教育心得
- 幼儿不慎溺水应遵循的急救办法
- 一年级下册语文测试八
- 留守儿童家访记录6
- 留守儿童之家读书活动安排意见
- 2010年海南省嘉积中学高二上学期第二次月考语文卷
网友关注视频
- 沪教版八年级下册数学练习册20.4(2)一次函数的应用2P8
- 沪教版牛津小学英语(深圳用) 五年级下册 Unit 10
- 外研版英语三起5年级下册(14版)Module3 Unit1
- 冀教版小学数学二年级下册第二周第2课时《我们的测量》宝丰街小学庞志荣
- 七年级英语下册 上海牛津版 Unit3
- 精品·同步课程 历史 八年级 上册 第15集 近代科学技术与思想文化
- 冀教版小学数学二年级下册第二单元《租船问题》
- 苏科版八年级数学下册7.2《统计图的选用》
- 人教版二年级下册数学
- 外研版英语七年级下册module3 unit2第二课时
- 沪教版牛津小学英语(深圳用) 五年级下册 Unit 12
- 【部编】人教版语文七年级下册《逢入京使》优质课教学视频+PPT课件+教案,安徽省
- 二年级下册数学第一课
- 沪教版八年级下册数学练习册21.4(1)无理方程P18
- 六年级英语下册上海牛津版教材讲解 U1单词
- 第19课 我喜欢的鸟_第一课时(二等奖)(人美杨永善版二年级下册)_T644386
- 七年级下册外研版英语M8U2reading
- 《空中课堂》二年级下册 数学第一单元第1课时
- 沪教版牛津小学英语(深圳用) 六年级下册 Unit 7
- 19 爱护鸟类_第一课时(二等奖)(桂美版二年级下册)_T3763925
- 七年级英语下册 上海牛津版 Unit5
- 【部编】人教版语文七年级下册《过松源晨炊漆公店(其五)》优质课教学视频+PPT课件+教案,江苏省
- 冀教版小学数学二年级下册第二单元《有余数除法的整理与复习》
- 冀教版小学数学二年级下册第二周第2课时《我们的测量》宝丰街小学庞志荣.mp4
- 冀教版英语五年级下册第二课课程解读
- 【部编】人教版语文七年级下册《老山界》优质课教学视频+PPT课件+教案,安徽省
- 二次函数求实际问题中的最值_第一课时(特等奖)(冀教版九年级下册)_T144339
- 外研版英语七年级下册module3 unit1第二课时
- 【获奖】科粤版初三九年级化学下册第七章7.3浓稀的表示
- 七年级英语下册 上海牛津版 Unit9
精品推荐
- 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
- 网吧管理