《Windows驱动程序开发 概念剖析》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:郑玉彤,王志娟编著
  • 出 版 社:北京:中央民族大学出版社
  • 出版年份:2006
  • ISBN:7811082349
  • 页数:275 页
图书介绍:本书介绍了Windows驱动程序的基本概念、结构、原理和实现技术等,尤其从编程角度对概念原理进行深入浅出的剖析。

第1章 Windows 2000内核模式驱动程序编程基础 1

1.1 内核模式驱动程序与应用程序的对比 1

1.1.1 内核模式(kernel mode)与用户模式(user mode) 1

1.1.2 Windows的体系结构 2

1.1.3 编程方式 7

1.1.4 内核模式驱动程序的安全问题 8

1.2 内核模式驱动程序的I/O处理过程 9

1.2.1 驱动程序的设计要求 9

1.2.2 内核驱动程序执行时的上下文 11

1.2.3 Windows 2000的中断优先级扩展 12

1.2.4 DPCs延迟过程调用 14

1.2.5 用户缓冲区的访问机制 15

1.2.6 内核模式驱动程序的I/O处理过程 16

1.3 内核对象 20

1.3.1 IRP 21

1.3.2 驱动对象 25

1.3.3 设备对象和设备扩展 27

1.3.4 控制器对象和控制器扩展 31

1.3.5 适配器对象 34

1.3.6 中断对象 36

1.4 内核模式驱动程序的基本结构 37

1.4.1 驱动程序的分类 37

1.4.2 单一结构与分层结构 40

1.5 内核模式驱动程序的开发 44

1.5.1 设计方法 44

1.5.2 开发方法 45

1.5.3 编程惯例 45

1.5.4 Unicode字符串 47

1.5.5 驱动程序的内存分配 49

1.5.6 中断的同步 52

1.5.7 多CPU的同步 53

第2章 编写一个最小化的驱动程序 56

2.1 DriverEntry例程 56

2.2 Reintialize例程 63

2.3 Shutdown例程 64

第3章 Dispatch例程 66

3.1 注册Dispatch例程 67

3.2 编写Dispatch例程 70

3.3 处理read和write I/O请求 73

3.4 可扩展的dispatch例程 76

第4章 中断驱动的I/O 83

4.1 中断驱动的I/O的处理过程 83

4.1.1 I/O请求的处理过程 83

4.1.2 中断服务的第1阶段 84

4.1.3 中断服务的第2阶段 86

4.1.4 同步问题 87

4.2.1 加入Start I/O的入口点 88

4.2 中断对象的连接 88

4.2.2 中断对象的连接 89

4.3 编写Start I/O例程 91

4.4 编写ISR 92

4.5 编写DpcForlsr例程 93

第5章 PnP驱动程序 96

5.1 PnP简介 96

5.2 设备树 99

5.3 各种驱动及其层次关系 100

5.4 各种设备对象及设备堆栈、驱动链 105

5.5 PnP IRPs及其处理 113

5.5.1 PnP IRPs 113

5.5.2 设备状态变迁图 115

5.5.3 PnP IRPs在驱动链中的运动 115

5.5.4 I/O Completion例程 118

5.5.5 延迟PnP IRP的处理 121

5.6 硬件配置信息 126

6.1.1 加入新的驱动程序分层 132

6.1 分层的体系结构 132

第6章 分层的驱动程序 132

6.1.2 分层结构的优缺点 135

6.1.3 分层结构中IRP的运动轨迹 136

6.2 编写中间层驱动程序 142

6.2.1 中间层驱动程序的工作过程 142

6.2.2 中间层驱动程序的初始化和清除 143

6.2.3 与其它的驱动程序分层的联接 144

6.2.4 初始化的其它问题 146

6.2.5 IRP在中间层驱动程序中处理 147

6.2.6 调用低层驱动 149

6.3 编写I/O Completion例程 150

第7章 电源管理 155

7.1 在驱动程序中支持电源管理 156

7.1.1 OnNow Initiative 156

7.1.2 支持电源管理的内核组件 157

7.1.3 驱动程序进行电源管理的任务 159

7.2 处理电源IRP 162

7.3 唤醒的处理 168

8.1 处理设备超时 170

第8章 定时器 170

8.2 捕获设备超时的代码片段 173

8.3 利用定时器轮询设备 176

8.4 内核定时器与CustomTimerDpc 178

8.5 基于内核定时器的代码片段 183

第9章 DMA驱动程序 186

9.1 Windows 2000下的DMA模型 186

9.1.1 直接I/O 186

9.1.2 适配器对象与DMA传送 188

9.1.3 使用适配器对象 196

9.2 编写系统DMA驱动程序 200

9.2.1 基于包的系统DMA驱动程序 200

9.2.2 基于包的系统DMA驱动程序片段 206

9.2.3 基于公共缓冲区的系统DMA驱动程序 214

9.3 总线DMA驱动程序 215

9.3.1 基于包的总线DMA驱动程序 215

9.3.2 基于公共缓冲区的总线DMA驱动程序 219

1.1 INF概述 221

附录1 INF文件 221

1.2 INF结构 222

1.2.1 INF文件的基本语法 222

1.2.2 常用节 223

1.3 INF举例 230

1.4 INF文件安装 232

1.4.1 手工安装 232

1.4.2 自动安装 233

1.5 INF的其它应用 234

2.1 驱动程序分类 236

附录2 驱动程序开发工具 236

2.2 驱动程序开发工具种类 237

2.3 DriverStudio 238

2.4 Windriver 239

2.5 DDK 240

附录3 驱动程序测试与调试 242

3.1 驱动程序测试指导方针 242

3.2 测试方法分类 242

3.3 驱动程序的故障原因 243

3.4 跟踪驱动程序故障 245

3.5 解读故障屏 246

3.5.1 系统停止时的内部状态 246

3.5.2 死亡蓝屏 247

3.6 WinDbg 248

3.6.1 源代码调试的关键 248

3.6.2 符号目录 248

3.6.3 源代码目录 249

3.6.4 一些命令 249

3.7.2 开始分析 251

3.7.1 分析故障 251

3.7 故障堆分析 251

3.7.3 跟踪堆栈 253

3.7.4 高级中断请求故障 253

3.7.5 DISPATCH_LEVEL下的故障 254

3.8 交互式调试 256

3.8.1 开始和停止调试 256

3.8.2 设置断点 258

3.8.3 设置硬断点 258

3.9.2 拦截不准确的假定 259

3.9.1 将调试代码留在驱动程序中 259

3.9 混合调试技术 259

3.9.3 使用故障回调函数 260

3.9.4 拦截内存泄漏 261

3.9.5 间歇故障的调试 262

附录4 GUID和WMI 265

4.1 GUID 265

4.2 WMI体系结构 267

4.3 在WDM驱动程序中加入对WMI的支持 273

参考文献 274