Windows 7设备驱动程序开发PDF电子书下载
- 电子书积分:10 积分如何计算积分?
- 作 者:(美)里夫斯著
- 出 版 社:北京:人民邮电出版社
- 出版年份:2012
- ISBN:9787115265791
- 页数:221 页
第一部分 设备驱动程序体系结构概述 2
第1章 对象 2
1.1对象的本质 2
1.2软件对象是什么 2
1.3预备知识 4
1.4软件组件 4
第2章 WDF体系结构 6
2.1 WDF组件的功能 6
2.2 WDF的设计目标 7
2.3 WDF中的设备和驱动程序支持 7
2.4 WDF驱动程序模型 8
2.5 WDF对象模型 9
2.5.1内核模式对象 10
2.5.2用户模式对象 10
2.6即插即用和电源管理支持 11
2.7集成的I/O排队和取消 12
2.7.1并发 12
2.7.2 I/O模型 13
2.7.3 I/O请求流程 13
2.7.4设备I/O请求 14
2.7.5即插即用和电源管理请求 15
2.8 WMI请求(仅限内核模式驱动程序) 15
2.9驱动程序框架 15
2.9.1内核模式框架 16
2.9.2用户模式框架 18
2.10 Windows内核 18
2.10.1反射器 19
2.10.2驱动程序宿主进程 19
2.10.3驱动程序管理器 19
2.11开发和测试工具 19
2.11.1 PFD 20
2.11.2 SDV 21
2.11.3框架验证器 21
2.11.4跟踪日志 21
2.11.5调试器扩展 22
2.11.6适用性和版本控制 22
第二部分 用户模式驱动程序 24
第3章 Windows 7用户模式驱动程序概述和操作 24
3.1在用户模式中支持的设备 24
3.2 UMDF模型概述 25
3.2.1 UMDF对象模型 27
3.2.2 UMDF对象 27
3.3驱动程序回调接口 28
3.4 UMDF驱动程序功能 29
3.4.1身份模拟 30
3.4.2设备属性存储 30
3.5 I/O请求流 30
3.5.1 I/O请求调度 32
3.5.2创建、清理和关闭请求 32
3.5.3创建、读、写和设备I/O控制请求 34
3.6 I/O队列 35
3.6.1调度类型 36
3.6.2队列和电源管理 36
3.7 I/O请求对象 37
3.7.1根据I/O请求获取缓冲区 37
3.7.2向I/O目标发送I/O请求 38
3.7.3为I/O请求创建缓冲区 39
3.7.4取消和挂起的请求 40
3.7.5完成I/O请求 41
3.7.6自适应超时 41
3.8自管理I/O 42
3.9同步问题 42
3.10锁 43
3.11即插即用和电源管理通知 43
3.12设备枚举和启动 44
3.13关闭设备电源和移除设备 45
3.14构建、测试和调试 47
3.14.1安装和配置 47
3.14.2版本控制和更新 48
第4章 针对UMDF进行驱动程序编程 49
4.1 Windows 1/O概述 49
4.2 COM简介 51
4.3 UMDF体系结构 51
4.4必需的驱动程序功能 53
4.5 UMDF示例驱动程序 55
4.5.1最小UMDF驱动程序:Skeleton驱动程序 56
4.5.2 Skeleton驱动程序的类、对象和接口 56
4.6驱动程序动态链接库和导出 57
4.6.1驱动程序入口点:DllMain 57
4.6.2获得类对象:DllGetClassObject 59
4.7 COM支持函数 60
4.7.1IUnknown方法 60
4.7.2IC1assFactory接口 61
4.7.3驱动程序回调对象 61
4.7.4设备回调对象 64
4.8以Skeleton驱动程序为基础进行开发 69
4.8.1自定义导出文件 69
4.8.2自定义源文件 69
4.8.3自定义INX文件 70
4.8.4自定义Comsup.cpp文件 70
4.8.5将特定于设备的代码加入Driver.cpp 70
4.8.6将特定于设备的代码加入Device.cpp 71
第5章 使用COM开发UMDF驱动程序 72
5.1入门指南 72
5.1.1 COM基础知识 72
5.1.2 HRESULT 74
5.2使用UMDF COM对象 75
5.2.1获得UMDF对象的接口 76
5.2.2引用计数 77
5.3基本的基础设施实现 78
5.3.1 DllMain 78
5.3.2 DllGetClassobject 78
5.3.3驱动程序对象的类工厂 79
5.3.4实现UMDF回调对象 79
5.3.5实现QueryInterface 81
第三部分 内核模式驱动程序 84
第6章Windows 7内核模式驱动程序概述与操作 84
6.1 KMDF支持的设备 84
6.2 KMDF组件 85
6.3 KMDF驱动程序结构 85
6.4 KMDF和WDM驱动程序比较 86
6.5设备对象和驱动程序角色 87
6.5.1过滤器驱动程序和过滤器设备对象 88
6.5.2功能驱动程序和功能设备对象 88
6.5.3总线驱动程序和物理设备对象 89
6.5.4旧版设备驱动程序和控制设备对象 89
6.6 KMDF对象模型 90
6.6.1方法、属性和事件 90
6.6.2对象层次结构 91
6.6.3对象特性 93
6.6.4对象上下文 93
6.6.5对象创建和删除 94
6.7 KMDFI/O模型 95
6.7.1 I/O请求处理程序 96
6.7.2 I/O队列 97
6.7.3 I/O请求对象 100
6.7.4从I/O请求检索缓冲区 100
6.7.5 I/O目标 101
6.7.6创建I/O请求缓冲区 102
6.7.7取消和挂起请求 102
6.7.8完成I/O请求 104
6.7.9自托管I/O 104
6.7.10访问IRP和WDM结构 104
第7章 即插即用和电源管理 105
7.1即插即用和电源管理概述 105
7.2设备枚举和启动 106
7.2.1功能或过滤器设备对象的启动顺序 106
7.2.2物理设备对象的启动顺序 107
7.2.3设备电源关闭和移除 108
7.3 WMI请求处理程序 111
7.4同步问题 112
7.4.1同步范围 112
7.4.2执行级别 114
7.4.3锁 115
7.4.4同步机制的交互作用 115
7.5安全 116
7.5.1安全默认值 116
7.5.2参数验证 116
7.5.3 Unicode计数字符串 116
7.5.4安全设备命名技术 117
第8章 内核模式的安装和生成 118
8.1 WDK生成工具 118
8.2生成环境 119
8.3生成项目 120
8.4生成Featured Toaster 120
8.4.1 Makefile和Makefile.inc 121
8.4.2源文件 121
8.4.3生成过程 122
8.5安装KMDF驱动程序 123
8.5.1 WDF辅助安装程序 123
8.5.2 INF 123
8.5.3 KMDF驱动程序的INF 124
8.5.4 wdffeatured.inf 124
8.6目录文件和数字签名 125
8.7安装Featured Toaster 126
8.8测试KMDF驱动程序 127
8.8.1 PREfast 127
8.8.2 SDV 127
8.8.3 KMDF日志 128
8.8.4 KMDF验证程序 128
8.8.5调试KMDF驱动程序 129
8.8.6内核调试 130
8.8.7 KMDF驱动程序功能 130
8.9调试宏和例程 131
8.10 WDF调试程序扩展命令 132
8.11使用WPP跟踪与KMDF驱动程序 132
8.12使用WinDbg与FeaturedToaster 133
8.13版本控制和动态绑定 135
第9章 为KMDF编写驱动程序 136
9.1 KMDF与WDM示例之间的差别 139
9.2 KMDF示例中使用的宏 140
9.3 KMDF驱动程序结构和概念 140
9.3.1对象创建 141
9.3.2对象上下文区 141
9.3.3 I/O队列 142
9.3.4 1/O请求 143
9.4最小的KMDF驱动程序:SimpleToaster 143
9.4.1创建WDF驱动程序对象:DriverEntry 144
9.4.2创建设备对象、设备接口和I/O队列:EvtDriver-DeviceAdd 145
9.4.3设备对象和设备上下文区 147
9.4.4设备接口 148
9.4.5默认I/O队列 149
9.4.6处理I/O请求:EvtIoRead、EvtIoWrite、 EvtIoDevice-Control 150
9.5纯软件驱动程序示例 151
9.5.1文件创建和关闭请求 151
9.5.2其他的设备对象特性 153
9.5.3设置其他设备对象属性 154
第10章 为即插即用和电源管理编写程序 156
10.1注册回调函数 156
10.2管理电源策略 159
10.3通电和断电时的回调函数 161
10.4支持唤醒信号的回调函数 162
第11章为WMl支持编写程序 163
11.1 WMI体系结构 163
11.2注册为WMI数据提供程序 163
11.3处理WMI请求 164
11.4 WDM驱动程序的WMI要求 165
11.5 WMI类名和基类 166
11.6触发WMI事件 168
11.7解决具体的WMI问题 172
11.7.1驱动程序的WMI类并不出现在rootwmi命名空间中 172
11.7.2不能访问驱动程序的WMI属性或方法 172
11.7.3未接收驱动程序的WMI事件 173
11.7.4改变WMI请求的安全设置并不生效 173
11.8测试WMI驱动程序支持的技术 174
11.8.1 WMI IRP和系统事件日志 174
11.8.2 WMI WDM提供程序日志 174
11.9 WMI事件跟踪 175
第12章 编写KMDF硬件驱动程序 177
12.1支持设备中断 177
12.1.1创建中断对象 178
12.1.2创建中断对象的代码 178
12.1.3启用和禁用中断 179
12.1.4启用中断的代码 179
12.1.5禁用中断的代码 180
12.1.6启用中断后和禁用中断前的处理 180
12.2处理中断 181
12.2.1 EvtInterruptIsr回调函数的代码 182
12.2.2中断的延迟处理 183
12.3映射资源 184
12.3.1映射资源的代码 185
12.3.2取消映射资源的代码 189
第13章 编写多个l/O队列程序并编写l/O程序 190
13.1编写1/O队列简介 190
13.2创建和配置队列 191
13.2.1为写请求创建队列的代码 192
13.2.2为读请求创建队列的代码 193
13.2.3为设备I/O控制请求创建队列的代码 194
13.3处理并行队列的请求 195
13.3.1处理I/O请求的代码 195
13.3.2执行缓冲1/O 197
13.4将请求转发给队列 198
13.5从手动队列获取请求 199
13.6读取和写入注册表 202
13.7监视器计时器:自管理I/O 205
13.7.1启动和重启自管理I/O设备 206
13.7.2设备断电和移除期间的自管理I/O 206
13.7.3实现监视器计时器 207
附录 驱动程序信息网站 212
参考文献 221
- 《区块链DAPP开发入门、代码实现、场景应用》李万胜著 2019
- 《程序逻辑及C语言编程》卢卫中,杨丽芳主编 2019
- 《高含硫气藏开发腐蚀控制技术与实践》唐永帆,张强 2018
- 《高等学校“十三五”规划教材 C语言程序设计》翟玉峰责任编辑;(中国)李聪,曾志华,江伟 2019
- 《改革进程中的刑事诉讼程序与证据问题研究 基于警察的视角》谢波 2019
- 《主题公园开发与管理》梁增贤编著 2019
- 《Java程序设计基础》罗刚 2018
- 《C++程序设计实验指导 第2版》张潇责任编辑;孟桂娥 2019
- 《通用安装工程消耗量定额 TY02-31-2015 第4册 电气设备安装工程》中华人民共和国住房和城乡建设部 2015
- 《中南高校档案文化资源开发综合研究》涂上飙 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《办好人民满意的教育 全国教育满意度调查报告》(中国)中国教育科学研究院 2019
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《人民院士》吴娜著 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019
- 《中国人民的心》杨朔著;夕琳编 2019
- 《高等院校旅游专业系列教材 旅游企业岗位培训系列教材 新编北京导游英语》杨昆,鄢莉,谭明华 2019
- 《中华人民共和国成立70周年优秀文学作品精选 短篇小说卷 上 全2册》贺邵俊主编 2019
- 《指向核心素养 北京十一学校名师教学设计 数学 九年级 上 配人教版》周志英总主编 2019
- 《中华人民共和国成立70周年优秀文学作品精选 中篇小说卷 下 全3册》洪治纲主编 2019