Windows 7设备驱动程序开发txt,chm,pdf,epub,mobi下载 作者:里夫斯 出版社: 人民邮电 原作名: Windows 7 Device Driver 译者:张猛/纪小玲/周姝嫣 出版年: 2012-1 页数: 220 定价: 45.00元 装帧: 平装 ISBN: 9787115265791 内容简介 · · · · · ·《Windows 7设备驱动程序开发》介绍了编写全新Windows 7操作系统的设备驱动程序所需的全部技术。《Windows 7设备驱动程序开发》共包括3个部分:设备驱动程序体系结构概述、用户模式驱动程序和内核模式驱动程序。第一部分介绍设备处理程序软硬件开发所涉及的体系结构、UMDF和KMDF,以及开发UMDF和KMDF驱动程序所需的环境。第二部分介绍用户模式驱动程序的方法、设计、开发和调试。主要介绍使用UMDF以及C++进行用户模式驱动程序开发。第三部分介绍内核模式驱动程序的方法、设计、开发和调试。主要介绍使用KMDF以及C语言开发内核模式驱动程序。 《Windows 7设备驱动程序开发》适合Windows 7驱动程序开发人员阅读。 作者简介 · · · · · ·Ronald D. Reeves 工程学和计算机科学专业双料博士。他具有40多年的计算机硬件、软件和驱动程序的设计和开发经验,是软件开发和咨询公司Software Genesis的创始人兼董事长。他是美国知名的技术作家、咨询顾问和教师,是Win32 System Services(Prentice Hall, 2001)的作者之一,曾为两本介绍设备驱动程序的图书做过技术审稿人。目前他在劳伦斯理工大学和克利里大学教授研究生课程。 目录 · · · · · ·目 录第一部分 设备驱动程序体系结构概述 第1 章 对象 2 1.1 对象的本质 2 1.2 软件对象是什么 2 1.3 预备知识 4 · · · · · ·() 目 录 第一部分 设备驱动程序体系结构概述 第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 第二部分 用户模式驱动程序 第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 I/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.1 IUnknown 方法 60 4.7.2 IClassFactory 接口 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 第三部分 内核模式驱动程序 第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 KMDF I/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 与Featured Toaster 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 I/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 章 为WMI 支持编写程序 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 类并不出现在\root\wmi 命名空间中 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 章 编写多个I/O 队列程序并编写I/O 程序 190 13.1 编写I/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 执行缓冲I/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 · · · · · · () |
这本书真的还是很有参考价值的。
不一样的观点
同时细微处又有真知灼见
实在太喜欢了