《Windows设备驱动程序 VxD与WDM 开发实务》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:武安河,周利莉编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2001
  • ISBN:7505369245
  • 页数:300 页
图书介绍:本书主要介绍了用VtoolsD开发Windows 95/98/Me下的非标准设备(指自己开发的,如数据采集卡等设备)驱动程序VxD的原理及编程方法。本书详细介绍了VxD的基本概念、VxD程序、VxD和Win32应用程序之间的通信,及VxD访问硬件设备,处理硬件中断,实现DMA操作,完成即插即用(PnP)功能的函数和类库,并详细介绍了VtoolsD开发工具的使用和如何用VtoolsD开发Windows下的PCI设备驱动程序VxD。本书还介绍了用DriverWorks开发Windows 98/NT/2000下的驱动程序WDM的原理及编程方法。本书附有大量的编程实例,并附赠一张光盘,内含全部实例源代码便于读者学习和掌握。本书是一本技术性较强的工具书和实用参考书。本书的适用对象是具有一定计算机硬件及C++语言基础的计算机应用开发人员和高等院校学生。

第1章 基础知识 1

1.1Windows 的虚拟世界 1

1.1.1什么是虚拟机 1

1.1.2处理器模式 2

1.1.3Windows 的执行环境 3

1.1.4如何实现虚拟环境 3

1.2 VxD简介 5

1.2.1 VxD的安装 6

1.2.2 VxD的基本结构 6

1.2.3设备描述器部件 7

1.2.4事件通知 8

1.2.5 VxD数据结构 11

1.2.6 VxD开发工具 13

第2章 QuickVxD的使用介绍 15

2.1 VxD设备参数 15

2.2应用程序调用接口 17

2.3 VxD的控制消息 18

2.4 VxD服务函数 19

2.6输出文件 20

2.5 VxD 的类 20

第3章VxD程序介绍 22

3.1 VxD程序结构 22

3.1.1 VDevice类 22

3.1.2 VVirtualMachine类 25

3.1.3 VThread类 27

3.1.4 一个简单的“Hello” VxD程序 28

3.1.5 VVirtualMachine类的VxD实例 32

3.2.1使用QuickVxD创建Vmbeep的工程文件 34

3.2 VxD的创建 34

3.2.2修改Vmbeep的工程文件Vmbeep.h和Vmbeep.cpp 35

3.3 VxD的生成 36

第4章VxD和Win32应用程序之间的通信 40

4.1Win32应用程序对VxD的通信 40

4.1.1Win32应用程序的编程 40

4.1.2 VxD的编程 41

4.1.3Win32应用程序对VxD通信的实例 42

4.1.4 OnW32DeviceloControl与OnSysDynamicDeviceInit、OnSysDynamicDeviceExit 46

4.2 VxD对Win32应用程序的通信 47

4.2.1导步过程调用 48

4.2.2Win32事件 51

4.2.3发送消息 57

第5章VxD访问硬件设备 72

5.1访问I/O端口映射硬件 72

5.2访问内存映射硬件 72

5.2.1访问静态配置内存映射设备 73

5.2.2访问动态配置内存映射设备 73

5.2.3访问内存映射硬件的实例 75

6.1中断和VMM 81

第6章VxD处理硬件中断 81

6.2 VPICD简介 82

6.3硬件中断编程 83

6.3.1 VHardwareInt类 83

6.3.2 VSharedHardwareInt类 89

第7章VxD实现DMA操作 91

7.1系统DMA 91

7.1.1系统DMA对数据缓冲区的要求 91

7.1.2虚拟DMA设备驱动程序简介 93

7.2 VtoolsD对系统DAM操作的编程支持类 93

7.2.1 VDMABuffer类 94

7.2.2 DMAChannel类 96

7.2.3利用VxD实现系统DMA操作实例 99

7.3总线主控DMA 104

第8章VxD完成即插即用功能 105

8.1即插即用体系简介 105

8.1.1即插即用体系结构元件 106

8.1.2即插即用元件的相互作用 106

8.1.3配置管理器 107

8.2 INF文件及其格式 108

8.1.4硬件树、设备节点和设备标识符 108

8.2.1标准节 109

8.2.2 INF文件的节层次结构 111

8.3即插即用的启动和配置过程 112

8.3.1驱动程序VxD的安装顺序 112

8.3.2设备节点创建过程 112

8.3.3设备配置资源服务过程 113

8.3.4其他的即插即用配置方案 115

8.4即插即用演示实例 116

9.1.1 VisualC++线程的创建和运行 121

9.1 VxD与VisualC++开发的Windows 多线程MFC应用程序的通信 121

第9章VxD与Windows 多线程应用程序通信编程 121

9.1.2 VisualC++线程之间的通信 122

9.1.3 VisualC++多线程MFC应用程序与VxD通信实例 122

9.2 VxD与C++Builder开发的Windows 多线程应用程序的通信 128

9.2.1 C++Builder线程的创建与运行 128

9.2.2 C++Builder线程之间的通信 130

9.2.3 C++Builder多线程应用程序与VxD通信实例 131

10.1.1类VIOPort的成员函数 136

10.1 VIOPort类 136

第10章 其他类的编程 136

10.1.2使用类VIOPort 137

10.1.3使用类VIOPort的实例 137

10.2 Event类 141

10.2.1类VEvent 142

10.2.2类VGlobalEvent 142

10.2.3使用类VGlobalEvent 143

10.2.4使用类VGlobalEvent的实例 143

10.3.1类VTimeOut 149

10.3 TimeOut类 149

10.3.2类VGlobalTimeOut 150

10.3.3类VAsyncTimeOut 150

10.3.4类VThreadTimeOut 151

10.3.5类VVMTimeOut 151

10.3.6使用类TimeOut 151

10.3.7使用类VGlobalTimeOut的实例 152

10.4 VAppyTimeEvent类 153

10.4.1类VAppyTimeEvent的成员函数 153

10.4.3使用类VAppyTimeEvent的VxD实例 156

10.4.2使用类VAppyTimeEvent 156

10.5内存管理类 157

10.5.1类VpageObject 159

10.5.2类VLockedPageObject 160

10.5.3类VGlobalV86Area 160

第11章 基于PCI接口的设备驱动程序开发 161

11.1 S5933控制芯片的功能 161

11.1.1 S5933的内部结构 161

11.1.2 S5933引脚图 162

11.1.3三种数据传输方式的特点 162

11.2 S5933的配置和初始化 163

11.2.1 S5933的配置空间 164

11.2.2 S5933的初始化 165

11.3 S5933的操作寄存器 166

11.4 S5933的邮箱操作 167

11.4.1邮箱空/满状态 167

11.4.2邮箱中断 168

11.5 S5933的DMA操作 169

11.5.1 S5933的DMA传输配置 170

11.6 PCI设备的INF文件 173

11.5.2 PCI发起的DMA传输控制 173

11.7 PCI设备驱动程序VxD的设计 175

第12章 WDM程序介绍 183

12.1 WDM设备驱动程序结构 183

12.1.1驱动程序入口点和回调例程 184

12.1.2创建设备 184

12.1.3中断级 186

12.1.4 IRP处理 188

12.1.5即插即用 197

12.2 WDM程序范例HelloWdm 199

12.1.8 WMI 199

12.1.7电源管理 199

12.1.6调用其他驱动程序 199

第13章 WDM程序入门 220

13.1 WDM的创建 220

13.2 WDM的生成 231

13.3 WDM的安装 231

13.4应用程序的运行 234

第14章WDM编程 238

14.1应用程序对WDM的通信 238

14.2 WDM对Win 32应用程序的通信 241

14.3如何访问寄存器 242

14.3.1如何访问I/O地址寄存器 242

14.3.2如何访问内存映射地址寄存器 243

14.4硬件中断处理 243

14.5内存的管理 245

附录A Debug Monitor的使用介绍 247

附录B INF Editor的使用介绍 250

附录C Soft ICE的使用介绍 259

附录D Soft ICE for Windows 9x(4.0)命令详解 271