《Windows 2000/XP WDM设备驱动程序开发》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:武安河等编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2003
  • ISBN:7505386476
  • 页数:421 页
图书介绍:本书主要介绍用DriverStudio开发工具开发Windows 2000/XP下的WDM设备驱动程序的原理及编程方法。本书详细介绍了WDM基本程序框架和编程,IRP的基本概念及编程,WDM和应用程序之间的通信、即插即用、电源管理、WMI的编程技术,IRP串行处理、过滤器驱动程序,WDM访问硬件设备、处理硬件中断、实现DMA操作的编程技术,以及大量的基本编程技术,还有USB接口和PCI接口设备驱动程序WDM的开发。

目录 1

第1章Windows 2000和WDM驱动程序 1

1.1 Windows 2000组件概述 1

1.2 Windows 2000中的驱动程序种类 2

1.3 WDM驱动程序特点 3

1.3.1内核模式驱动程序的设计目标 3

1.3.2 WDM驱动程序模型 5

1.3.3设备和驱动程序的层次结构 6

1.3.4中断级别IRQL 6

1.3.5设备接口 7

第2章WDM驱动程序的基本结构 9

2.1 KDriver类 9

2.1.1基本函数 9

2.1.2基本例程 10

2.2 KPnpDevice类 13

2.2.1基本函数 13

2.2.2基本例程 17

2.2.3扩展例程 18

2.3 KPnpLowerDevice类 20

2.4 CharSample实例 20

3.1 IRP数据结构 22

第3章IRP操作 22

3.1.1 IRP重要域 27

3.1.2 IO堆栈单元 28

3.2 KIrp类 35

3.3 IRP基本操作 40

3.3.1完成IRP 40

3.3.2向下传递IRP 40

3.3.3取消IRP 43

3.3.4分配和释放IRP 44

4.1建立WDM编程环境 46

第4章WDM驱动程序编程入门 46

4.2创建WDM驱动程序 47

4.2.1使用DriveWizard创建RegSample的工程文件 47

4.2.2修改RegSample的工程文件 53

4.2.3 RegSample实例 53

4.3 生成WDM驱动程序 59

4.4安装WDM驱动程序 60

4.5 Win32 Console和MFC应用程序 64

4.5.1 Win32 Console应用程序 64

4.5.2 MFC应用程序 67

4.6调试说明 73

5.1.1打开设备 75

5.1应用程序与驱动程序的通信 75

第5章WDM驱动程序和应用程序之间的通信 75

5.1.2关闭设备 77

5.1.3 DeviceloControl函数调用 77

5.1.4 ReadFile和WriteFile函数调用 80

5.2驱动程序与应用程序的通信 81

5.2.1 DeviceloControl异步完成 82

5.2 2 WIN32事件通知 84

5.2.3 WIN32事件共享(NT) 85

5.3驱动程序与应用程序通信实例 86

5.3.1异步完成实例 86

5.3.2事件通知实例 98

5.3.3事件共享实例 103

第6章基本编程技术 109

6.1字符串操作 109

6.1.1字符串格式 109

6.1.2串处理函数 109

6.1.3 KUnitizedName类 110

6.1.4 KUstring类 111

6.2 内存管理 112

6.2.1 内存类型 112

6.2.2 KMemory类 113

6.2.3KHeap类 115

6.3数据操作 116

6.3.1 Klist,KInterlockedList和KInterruptSafeList类 116

6.3.2 Kfifo,KInterlockedFifo和KInterruptSafeFifo类 120

6.3.3 KArray 122

6.3.4 KInterlockedCounter类 124

6.3.5其他数据处理函数 125

6.4 KRegistryKey类 126

6.5 KFile类 131

6.6 KDeferredCall类 134

6.7.2 KTimedCallback类 136

6.7.1 1Hz定时器 136

6.7定时器 136

6.8 KIoWorkItem类 137

6.9 CancelSpinLock类 138

6.10 KSpinLock类 139

6.11内核同步对象 140

6.11.1 KDispatcherObject类 140

6.11.2 KDispatcherObject派生类 142

6.12 TimerSample实例 147

6.13 FileThread实例 150

6.14 ReadWrite实例 161

7.1.2即插即用IRP 171

7.1.1 PnP组件 171

第7章即插即用例程 171

7.1即插即用简介 171

7.1.3即插即用状态 172

7.2即插即用编程 173

7.2.1即插即用例程 173

7.2.2即插即用策略 174

7.2.3 PnP例程编程 176

7.2.4 PnP资源 179

7.3即插即用通知 179

7.3.1 Win32 PnP通知 179

7.3.2内核模式通知 182

7.3.3定制通知 184

7.3.4 PnPEvent实例 185

第8章电源管理 195

8.1电源管理概述 195

8.1.1系统电源状态与设备电源状态 196

8.1.2设备的电源能力 197

8.1.3 IRP_MJ_POWER请求 198

8.1.4电源管理控制标志位 199

8.1.5设备的唤醒特征和空闲检测 199

8.2电源管理编程 199

8.2.1电源管理例程 199

8.2.2电源管理策略 200

8.2.3电源管理编程 204

8.2.4设备唤醒 204

8.2.5空闲检测 204

8.3电源管理实例 205

8.3.1 PowerIdle实例 205

8.3.2 PowerSleep实例 209

第9章WMI 212

9.1 WMI概述 212

9.2 WMI编程类函数 214

9.2.1 KWmiContext类 214

9.2.2 KWmiDataBlock类 217

9.2.3 KWmiString类 218

9.3 WMISample实例 219

第10章IRP的串行处理 253

10.1 由系统管理的IRP设备队列的串行处理 253

10.1.1 实现由系统管理的IRP设备队列串行处理的函数 253

10.1.2系统管理的1RP设备队列串行处理程序分析 255

10.2 由驱动程序管理的IRP队列的串行处理 259

10.2.1 KDriverManagedQueueEx类 259

10.2.2驱动系统管理的IRP队列串行处理程序分析 261

10.3.1 StartIoChar_Device实例 265

10.3 IRP串行处理实例 265

10.3.2 StartIoChar_Driver实例 268

第11章WDM过滤器驱动程序 272

11.1 KWdmFilterDevice类 272

11.2 WDM过滤器驱动程序编程 274

11.3 WDM过滤器驱动程序安装文件 274

11.4 CharFilter实例 275

11.5 CharFilter_Class实例 281

第12章USB设备开发 284

12.1 USB接口概述 284

12.1.1 USB设备的配置、接口 和端点 285

12.1.2 USB数据的传输方式 287

12.1.3 USB描述符 292

12.1.4标准设备请求 298

12.2 USB编程类函数 299

12.2.1 KUsbLowerDevice类 300

12.2.2 KUsbInterface类 304

12.2.3 KUsbPipe类 305

12.3 USBCounter实例 308

12.3.1驱动程序 310

12.3.2应用程序 322

12.3.3 CY7C63001程序 325

第13章PCI设备驱动程序开发 351

13.1硬件访问 351

13.1.1 KIoRange和KMemoryRange类 351

13.1.2 KIoRegister和KMemoryRegister类 353

13.1.3 KIoRegisterSafe和KMemoryRegisterSafe类 353

13.1.4硬件访问编程 353

13.2中断处理 355

13.2.1 KInterrupt类 355

13.2.2中断处理编程 357

13.3.1 DMA编程类函数 358

13.3 DMA传输 358

13.3.2 DMA传输编程 362

13.4 PCI9054实例 365

13.5 DMASample实例 376

第14章WindowsXP WDM驱动程序开发 384

14.1 Windows XP下的问题 384

14.2 WDM驱动程序的安装 386

附录1 DriverMonitor的使用介绍 388

附录2 SoftICE的使用介绍 390

附录3 SoftICE命令详解 395

参考文献 421