图书介绍

Windows WDM设备驱动程序开发指南PDF|Epub|txt|kindle电子书版本下载

Windows WDM设备驱动程序开发指南
  • (美)(C.坎特)Chris Cant著;孙义等译 著
  • 出版社: 北京:机械工业出版社
  • ISBN:7111077091
  • 出版时间:2000
  • 标注页数:404页
  • 文件大小:23MB
  • 文件页数:416页
  • 主题词:Windows

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

Windows WDM设备驱动程序开发指南PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章 引言1

1.1 Windows驱动程序模型1

1.1.1 WDM与NT式驱动程序2

1.1.2 可用的驱动程序3

1.1.3 本书配套光盘3

1.1.4 设备驱动程序软件工具3

1.1.5 未讨论的驱动程序类型4

1.2 新的思维方式4

1.2.1 设备驱动程序环境4

1.2.2 术语与资源5

1.3 Win32程序接口5

1.3.1 基本I/O5

1.3.3 环境6

1.3.2 重叠的异步请求6

1.3.4 设备特定的限制7

1.3.5 驱动程序的其他Win32访问7

1.4 小结7

第2章 概述8

2.1 设备驱动程序的组成部分8

2.1.1 驱动程序入口点和回调例程9

2.1.2 分发例程10

2.1.3 创建设备11

2.1.4 硬件资源分配11

2.1.5 调用其他驱动程序11

2.1.6 串行硬件的访问12

2.1.7 访问硬件12

2.1.8 硬件问题12

2.1.12 系统线程13

2.1.11 NT事件报告13

2.1.9 电源管理13

2.1.10 WMI13

2.2 设备驱动程序的类型14

2.2.1 Windows概述14

2.2.2 I/O请求处理14

2.2.3 即插即用设备栈15

2.2.4 标准总线驱动程序和类驱动程序16

2.2.5 驱动程序栈举例17

2.3 驱动程序选择18

2.3.1 现成的驱动程序18

2.3.2 使用标准驱动程序18

2.3.5 单一驱动程序19

2.3.6 建议的和可选的功能19

2.4 WDM的合理性19

2.3.3 操作系统19

2.3.4 分层的设备驱动程序19

2.4.1 一个核心模型20

2.4.2 复杂性20

2.4.3 即插即用与分层20

2.4.6 开发者支持21

2.5 小结21

2.4.5 开发环境21

2.4.4 功能范围21

第3章 设备驱动程序设计22

3.1 引言22

3.2 驱动程序设计指南22

3.2.1 文档22

3.2.2 好的设计22

3.3 内核调用23

3.3.1 内核宏24

3.4.1 处理器模式25

3.4 处理器模型25

3.3.2 内核对象25

3.3.3 驱动程序例程名称25

3.4.2 中断级26

3.5 使用内存27

3.5.1 内存池27

3.5.2 旁视列表28

3.5.3 其他的内存考虑28

3.5.4 访问用户应用程序内存29

3.5.5 DMA29

3.6 IRP处理29

3.6.1 IRP参数30

3.6.2 在驱动程序栈中处理IRP30

3.7 小结31

4.1 系统设置33

4.1.1 DDK33

第4章 WDM驱动程序环境33

4.1.2 本书配套光盘软件的安装34

4.1.3 快捷方式35

4.2 实用程序35

4.2.4 硬件向导36

4.2.7 WBEM36

4.2.6 INF编辑器36

4.2.5 注册表编辑器36

4.2.3 NT Devices小程序36

4.2.2 计算机管理控制台36

4.2.1 DOS框36

4.2.8 调试程序37

4.2.9 NT和Windows 2000实用程序37

4.2.10 本书配套光盘上的工具37

4.3 驱动程序目标37

4.4 驱动程序语言和库38

4.6.1 makefile39

4.5 好的代码39

4.6 build实用程序39

4.6.2 SOURCES40

4.6.3 makefile文件40

4.6.4 build目录41

4.6.5 其他build步骤41

4.6.6 DIRS文件42

4.7 VC++项目42

4.7.1 Makefile构造环境42

4.7.2 MarkDrvr43

4.7.3 目录44

4.7.4 常见任务44

4.8 Wdm1驱动程序代码44

4.8.2 头文件45

4.8.3 驱动程序进入模块45

4.8.1 编译器选项45

4.8.4 版本资源46

4.8.5 访问注册表46

4.8.6 UNICODE_STRING结构48

4.9 安装Wdm150

4.10 安装详细信息50

4.10.1 INF文件50

4.10.2 注册表51

4.10.3 Windows 2000对象51

4.11 设备和驱动程序的管理51

4.11.1 添加另一个设备51

4.11.2 删除设备51

4.11.3 更新驱动程序52

4.11.4 NT式驱动程序52

4.12 小结52

5.1.1 设备访问74

第5章 设备接口74

5.1 设备74

5.1.2 后续的I/O75

5.2 设备对象和设备扩展75

5.3 设备对象的创建和删除76

5.3.1 创建设备77

5.3.2 删除设备78

5.4 设备名78

5.5 设备接口80

5.6 Win32设备接口访问82

5.6.1 得到设备的接口名83

5.6.2 运行Wdm1Test84

5.7 小结86

6.2 驱动程序测试92

6.2.1 测试所有的函数是否都工作92

第6章 测试与调试92

6.1 测试、测试、再测试92

6.2.2 Windows 2000和Windows 9893

6.2.3 多处理器93

6.2.4 取消I/O93

6.3 调试94

6.4 调试技术95

6.4.1 递增式的开发95

6.5 调试工具96

6.5.1 Windows 2000事件96

6.4.2 检查版本96

6.4.3 Windows 2000还是Windows 9896

6.5.2 跟踪工具97

6.5.3 驱动程序验证程序97

6.5.4 调试程序97

6.6 DebugPrint97

6.6.2 使用DebugPrint Monitor98

6.6.1 使用DebugPrint98

6.6.3 在驱动程序中使用DebugPrint99

6.7 关于调试的说明101

6.7.1 更新驱动程序101

6.7.2 驱动程序在引导时失败101

6.7.3 驱动程序依赖性101

6.7.4 未取消的IRP101

6.8 错误检查代码102

6.9 小结104

第7章 分发例程105

7.1 分发例程IRP105

7.2 I/O请求包105

7.2.1 分发例程处理105

7.2.2 可重入性106

7.2.3 IRP处理106

7.3 IRP结构107

7.2.4 IRP完成107

7.4 常用的IRP参数109

7.4.1 “创建”IRP,IRO_MJ_CREATE109

7.4.2 “关闭”IRP,IRP_MJ_CLOSE109

7.4.3 “读”IRP,IRP_MJ_READ110

7.4.4 “写”IRP,IRP_MJ_WRITE110

7.4.5 IOCTL IRP,IRP_MJ_IOCTL110

7.5 用户缓冲区110

7.5.1 缓冲I/O110

7.5.2 直接I/O110

7.5.3 其他I/O方式111

7.5.4 DeviceIoControl缓冲区111

7.6 Wdm1分发例程111

7.6.1 创建和关闭112

7.6.2 写113

7.6.3 读115

7.6.4 IOCTL115

7.6.5 系统控制116

7.7 小结116

第8章 即插即用与设备栈117

8.1 设计概述117

8.1.1 设计目标117

8.1.2 即插即用系统118

8.2 即插即用消息121

8.3 设备枚举123

8.3.1 固定的和可配置的设备123

8.3.2 枚举123

8.3.3 设备树124

8.4.2 设备对象125

8.4.1 PnP支持与设备栈125

8.4 设备栈125

8.5 上沿126

8.5.1 USB键盘例子126

8.5.2 功能设备对象和物理设备对象128

8.5.3 上沿定义128

8.6 小结129

第9章 即插即用的实现130

9.1 实现即插即用130

9.1.1 添加和删除设备131

9.1.2 基本的PnP处理程序131

9.1.3 沿设备栈向下传递不支持的IRP135

9.1.4 PnP状态和消息135

9.1.5 状态标志136

9.1.6 保持IRP137

9.1.7 打开的句柄138

9.1.8 处理PnP IRP的时间139

9.1.9 实现资源分配145

9.2 测试Wdm2150

9.3 其他PnP IRP151

9.3.1 IRP_MN_DEVICE_USAGE_NOTIFICATION151

9.3.2 IRP_MN_FILTER_RESOURCE_REQUIREMENTS151

9.3.3 IRP_MN_QUERY_BUS_INFORMATION151

9.3.4 IRP_MN_QUERY_CAPABILITIES151

9.3.5 IRP_MN_QUERY_DEVICE_RELATIONS152

9.3.6 IRP_MN_QUERY_DEVICE_TEXT152

9.3.7 IRP_MN_QUERY_ID152

9.3.8 IRP_MN_QUERY_INTERFACE152

9.3.9 IRP_MN_QUERY_PNP_DEVICE_STATE152

9.3.14 IRP_MN_WRITE_CONFIG153

9.4.1 Win32 PnP通知153

9.4 PnP通知153

9.3.12 IRP_MN_READ_CONFIG153

9.3.13 IRP_MN_SET_LOCK153

9.3.11 IRP_MN_QUERY_RESOURCES153

9.3.10 IRP_MN_QUERY_RESOURCE_REQUIREMENTS153

9.4.2 设备驱动程序PnP通知157

9.4.3 通知请求驱动程序交互158

9.5 高级的即插即用158

9.5.1 总线驱动程序158

9.5.2 发送PnP IRP159

9.5.3 设备属性160

9.6 小结160

第10章 电源管理161

10.1 电源概述161

10.1.1 ACPI*161

10.1.3 Wdm2Power应用程序162

10.1.2 Win32电源管理162

10.1.4 电池小类驱动程序163

10.2 系统电源策略163

10.3 电源IRP164

10.4 处理电源IRP165

10.4.1 处理设备电源IRP165

10.4.2 处理系统电源IRP165

10.4.3 不处理电源IRP167

10.5 设备电源策略主167

10.6 处理“设置电源”IRP169

10.6.1 设置系统电源状态171

10.6.2 设置设备电源状态174

10.6.3 SetPowerState174

10.7 分发例程的电源处理175

10.8 测试Wdm2电源功能175

10.9 设备功能176

10.10 高级电源管理177

10.10.1 唤醒177

10.10.2 电源顺序178

10.10.3 停止系统关闭事件178

10.10.4 电源通知178

10.10.5 检测系统电源状态变化178

10.10.6 WMI支持178

10.11 小结179

第11章 安装180

11.1 WDM驱动程序的安装过程180

11.2 INF文件180

11.3 标准节181

11.4 INF文件的节层次结构182

11.4.1 Wdm1Free.INF183

11.4.2 InfEdit186

11.5 跨平台和WDM INF文件187

11.5.1 在Windows 2000中安装Wdm1188

11.5.2 Windows 2000服务注册表项188

11.6 查找驱动程序189

11.6.1 硬件ID190

11.6.2 兼容ID190

11.6.3 重复枚举191

11.7 NT式驱动程序的安装191

11.7.1 安装过程192

11.7.2 驱动程序的装入顺序193

11.7.3 NT 4控制面板Devices小程序193

11.7.4 Windows 2000设备管理194

11.7.6 REG文件195

11.8 在Windows 98中安装NT式驱动程序195

11.7.5 Windows 98设备管理195

11.9 小结196

第12章 WMI204

12.1 概述204

12.1.1 WBEM模型205

12.1.2 WDM提供者205

12.2 一个WMI驱动程序207

12.2.1 WMI构造环境209

12.2.2 注册为WMI数据提供者210

12.2.3 处理系统控制IRP211

12.2.4 QueryWmiRegInfo处理程序213

12.2.5 QueryWmiDataBlock处理程序213

12.2.6 SetWmiDataBlock处理程序215

12.2.7 SetWmiDataItem处理程序216

12.2.8 ExecuteWmiMethod处理程序217

12.2.9 触发WMI事件218

12.3 WMI运行219

12.4 小结220

第13章 事件的报告221

13.1 概述221

13.2 消息文件222

13.3 注册为事件源224

13.4 事件的产生225

13.5 Wdm3事件的测试228

13.6 小结228

第14章 DebugPrint229

14.1 设计规范229

14.2 设计实现229

14.3 测试驱动程序代码230

14.3.1 系统线程230

14.3.3 同步233

14.3.2 事件233

14.3.4 产生跟踪事件235

14.3.5 链表236

14.3.5 最后的代码238

14.4 DebugPrint驱动程序239

14.4.1 设计240

14.4.2 DebugPrint设备240

14.4.3 读队列241

14.4.4 取消IRP242

14.4.5 写算法244

14.4.6 读算法245

14.5 DebugPrint Monitor246

14.5.1 设计247

14.5.2 Win32工作者线程247

14.5.3 DebugPrint_Event类247

14.5.4 Win32重叠I/O248

14.6 小结251

第15章 WdmIo和PHDIo驱动程序252

15.1 Win32接口252

15.1.1 IOCTL253

15.1.2 命令253

15.2 LPT打印机驱动程序的应用程序254

15.2.1 并行端口254

15.2.2 WdmoIoTest255

15.2.3 PHDIoTest255

15.2.4 发出命令256

15.2.5 使用中断驱动的I/O写数据258

15.2.6 使用中断驱动的I/O读数据260

15.3.1 安装WdmIo261

15.3.2 LogConfig节261

15.3 测试WdmIo261

15.3.3 运行WdmIoTest262

15.4 测试PHDIo263

15.4.1 安装PHDIo263

15.4.2 运行PHDIoTest263

15.5 WdmIo和PHDIo的分析264

15.5.1 使用哪一个264

15.5.2 缺陷264

15.6 小结265

第16章 硬件I/O IRP的排队266

16.1 硬件访问266

16.2 IRP队列267

16.2.1 设备队列267

16.2.2 StartIo例程268

16.3 命令的处理271

16.4 取消排队的IRP272

16.4.2 WdmIo IRP取消策略273

16.4.1 排队IRP的取消273

16.4.3 另一种取消策略274

16.5 “清理”IRP的处理275

16.6 测试、取消和清理277

16.7 补充设备队列278

16.8 小结282

第17章 中断驱动的I/O283

17.1 中断处理283

17.1.1 中断的性质283

17.1.2 连接到中断284

17.2 WdmIo读与写285

17.3 中断处理程序288

17.4 延迟过程调用289

17.4.1 使用基本的DPC290

17.4.2 自定义DPC291

17.5 定时器292

17.5.1 1秒间隔定时器292

17.5.2 WdmIo超时292

17.5.3 自定义定时器293

17.6 小结294

第18章 NT硬件295

18.1 NT式驱动程序的构造295

18.1.1 DDK问题295

18.1.2 编译环境296

18.1.3 NT式驱动程序结构296

18.2 设备的创建与删除296

18.3 资源分配298

18.4 资源转换304

18.5 资源的查找305

18.5.1 自动检测的硬件306

18.5.2 查询可配置总线308

18.5.3 最后的资源查找技术309

18.6 小结309

第19章 WDM系统驱动程序310

19.1 客户驱动程序的编写310

19.2 过滤驱动程序311

19.3 NT层次311

19.4 小结312

第20章 通用串行总线313

20.1 设备类313

20.2 概述314

20.2.1 Windows USB驱动程序接口314

20.2.2 传输类型315

20.3 USB低级结构315

20.3.1 USB设备315

20.3.3 总线信号316

20.3.2 USB信号316

20.3.4 低层协议317

20.3.5 电源318

20.4 USB设备框架318

20.4.1 总线枚举318

20.4.2 标准控制事务319

20.4.3 描述符320

20.4.4 驱动程序安装321

20.4.5 USB类321

20.4.6 新增功能322

20.5 客户驱动程序设计323

20.5.1 端点类型选择323

20.5.2 等时设备323

20.6 小结324

第21章 USB驱动程序接口325

21.1.1 UsbKbd的使用326

21.1 USB客户驱动程序设计326

21.1.2 UsbKbd安装327

21.1.3 头文件和库328

21.2 USBDI的IOCTL328

21.2.1 URB329

21.2.2 USBDI的调用330

21.2.3 多个USBDI调用332

21.3 访问USB332

21.3.1 初始化USB设备332

21.3.2 发出URB334

21.3.3 选择接口335

21.3.4 其他初始化338

21.3.5 取消配置的选择338

21.3.6 中断传输338

21.3.7 控制传输341

21.4 UsbKbd的测试342

21.3.8 其他问题342

21.5 USBDI结构参考346

21.6 USBDI URB参考348

21.6.1 URB设置功能348

21.6.2 URB传输功能350

21.6.3 URB缺省管道功能351

21.6.4 URB等时帧功能352

21.7 小结352

第22章 人工输入设备模型353

22.1 HID概述353

22.2 HID模型354

22.2.1 报告354

22.2.2 用法355

22.2.3 获取HID功能356

22.3.2 设备属性357

22.3.1 HID描述符357

22.3 HID模型表示357

22.3.3 报告描述符358

22.6 小结363

第23章 HID客户364

23.1 HID类驱动程序364

23.1.1 HID类驱动程序特征364

23.1.2 Windows HID客户程序365

23.1.3 头文件366

23.1.4 HID USB小驱动程序366

23.1.5 USB启动设备367

23.2 用户态HID客户程序367

23.2.1 查找HID设备368

23.2.2 读取HID功能368

23.2.3 读取输入报告372

23.2.4 发送输出报告374

23.2.5 其他用户态HID客户函数376

23.2.6 运行HidKbdUser376

23.3 内核态HID客户程序379

23.3.1 客户程序类型379

23.3.2 PnP通知380

23.3.3 HidKbd设备381

23.3.4 读取HID功能386

23.3.5 HidKbd设备的打开和关闭387

23.3.6 数据的读写387

23.3.7 其他HID类IOCTL392

23.4 小结392

附录A 信息资源393

附录B PC99396

附录C 直接存储器访问400

附录D 词汇表401

热门推荐