《VC++.NET开发驱动程序详解 Windows 2000/XP》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:郭益昆编写
  • 出 版 社:北京:北京希望电子出版社
  • 出版年份:2002
  • ISBN:7900088768
  • 页数:360 页
图书介绍:本书是一本介绍Windows 2000 Professional和Windows XP的核心驱动程序的专著。提供了多种核心程序模型,极大地方便了读者的学习和应用。本书内容由6部分组成,第1部分为核心模式基础,主要内容有系统与驱动,对I/O、I/O对象和IRPs进行分层、调度方法和优先级、系统定义的对象与驱动的关系、基本驱动结构。第2部分为核心流驱动,主要讲述了核心流驱动的概念、流小驱动、音频驱动、音频小端口驱动、视频捕获驱动以及DVD驱动模型设计。第3部分为即插即用,主要内容有PnP需要的驱动支持,增加新PnP设备的步骤。第4部分为电源管理,包括电源管理的含义及其实现步骤。第5部分为Windows 2000的管理机制。第6部分为调试与开发驱动程序,介绍了10个调试工具以及如何使用VC++.NET开发驱动程序。本书结构清晰,逻辑严密,内容环环相扣,不但是从事用VC++.NET进行开发与应用的广大编程人员的技术指导书,同时也可作为大专院校计算机专业、非专业师生重要的参考读物。本版CD为驱动程序源代码。

第1部分 核心模式驱动基础 1

第1章 系统与驱动 1

1.1 Win2000中的驱动结构 1

1.2 Win2000驱动分类 3

第2章 对I/O、I/O对象和IRPs进行分层 7

2.1 IRPs和指定驱动I/O栈位置 12

2.1.1 IRP的内容 15

2.2 驱动对象与标准驱动例程 16

2.2.1 驱动对象所针对的设备对象 18

2.2.2 核心模式驱动必备的入口点 19

2.2.3 常用标准驱动例程 21

2.3 I/O分层处理和I/O管理器 23

2.3.1 I/O分层处理 23

2.3.2 I/O管理器 24

第3章 调度方法和优先级 26

3.1 处理器调度基础知识 26

3.1.1 处理器调度的类型 26

3.1.2 调度的性能准则 27

3.2 调度方法 28

3.2.1 先来先服务调度法 28

3.2.2 最短作业优先调度法 28

3.2.3 轮转法调度方法 29

3.2.4 多级队列调度法 29

3.2.5 优先级调度法 29

3.2.6 轮转多级反馈队列调度法 30

3.3 Win2000的线程调度 30

3.3.1 Windows2000的线程调度介绍 30

3.3.2 Windows2000中的优先级划分 31

3.3.3 Windows2000的调度实现 33

3.3.4 线程优先级提升 35

第4章 系统定义的对象与驱动的关系 37

4.1 系统定义的对象与核心驱动关系的概述 37

4.1.1 I/O管理器 37

4.1.2 注册表与配置管理器 39

4.1.3 即插即用 41

4.1.4 电源管理器 41

4.1.5 内存管理器 42

4.1.6 执行支持 47

4.2 进程结构 48

4.2.1 进程 48

4.2.2 对象管理器 53

4.2.3 安全引用原则监视 53

4.3 核心对象 53

4.3.1 互斥对象 54

4.3.2 信号量对象 56

4.3.3 计时器对象 59

4.3.4 事件对象 61

4.3.5 螺旋锁 62

4.3.6 DPC对象 64

4.3.7 中断对象 67

4.4 操作系统定义对象的例程总论 72

4.4.1 系统的存储与系统定义的对象 75

4.4.2 系统定义对象的存储 87

第5章 基本驱动结构 95

5.1 标准驱动例程 95

5.1.1 最低层设备驱动的IRP分级处理 96

5.1.2 中间层驱动的IRP运行的不同阶段 100

5.1.3 设计一个驱动的步骤 102

5.1.4 设计原则 103

5.2 开发步骤 105

第2部分 核心流驱动 107

第1章 核心流驱动的概念 107

1.1 核心流驱动模型 107

1.1.1 核心流基础概念 107

1.1.2 核心流设计概念 108

1.1.3 核心流应用接口概念 109

1.2 核心流的状态与方法 111

1.2.1 方法 111

1.2.2 “核心流"各部件之间的联系 116

1.2.3 结构 118

1.2.4 数据格式与范围 123

1.2.5 “核心流”的时钟 125

1.2.6 核心流配置器分配符 126

1.2.7 需要注意的地方 127

第2章 流小驱动 130

2.1 小驱动的基本概念与思路 130

2.1.1 小驱动与类驱动 130

2.1.2 五个例程 130

2.1.3 四个函数 132

2.1.4 相关名词 133

2.1.5 综述 133

2.1.6 另外 133

2.2 请求段的处理 134

2.2.1 小驱动的初始化 137

2.2.2 多流处理与数据范围 138

2.2.3 属性组的处理 140

2.2.4 事件的处理 141

2.2.5 小驱动的同步处理 142

2.2.6 带有中断服务功能例程的小驱动 144

2.2.7 没有ISR的小驱动 146

2.2.8 什么时候不能用流类同步处理 146

2.2.9 名词解释 147

2.2.10 本章要点 147

第3章 音频驱动 149

3.1 总论音频驱动 149

3.1.1 当作过滤器 149

3.1.2 音频驱动提供的功能 149

3.1.3 句柄 149

3.1.4 自定义音频属性组介绍 150

3.2 数据范围与数据格式 150

3.2.1 数据范围 150

3.2.2 常用的结构 151

3.2.3 在音频WDM中支持2D,3DdirectSound加速 156

第4章 音频小端口驱动 158

4.1 端口类介绍 158

4.1.1 几个常用接口 159

4.1.2 支持特定设备所需的端口 159

4.1.3 核心中的COM 162

4.1.4 在Audio Mixer(混频)API中的核心流拓扑 163

4.2 DirectMusic合成与合成槽 167

4.2.1 基础知识 167

4.2.2 例示 169

4.2.3 核心模式硬件加速DDI 170

4.2.4 合成器小端口 172

4.2.5 IHV适配器驱动和DirectMusic系统中其他部分的关系 172

第5章 视频捕获驱动 174

5.1 视频捕获介绍 174

5.1.1 视频捕获的相关概念 174

5.1.2 来自视频捕获小驱动的流数据 176

5.1.3 使用视频捕获属性组 177

5.1.4 用于视频捕获的流向控制 183

5.2 其他控制 186

5.2.1 时间标记 186

5.2.2 视频流格式 187

5.2.3 视频流扩展标头 188

5.2.4 视频流分类和中间件 189

5.2.5 USB相机小驱动库设计 189

第6章 DVD驱动模型设计 195

6.1 DVD驱动编写基础 195

6.2 复制保护要点 197

6.2.1 在同一硬件上的多流处理 197

6.2.2 关键字转换与数据流动的同步处理 197

6.2.3 区域化 198

6.2.4 大图像(Macrovision) 198

6.2.5 音/视的同步处理的注意事项 198

第3部分 即插即用 199

第1章 简介 199

1.1 有关即插即用 199

1.1.1 定义 199

1.1.2 组成和要求 200

1.1.3 PnP软件与硬件的结合能力 201

1.2 驱动的种类 201

1.2.1 驱动的种类 201

1.2.2 各种驱动的关系 203

1.3 设备的树型结构 205

1.3.1 定义 205

1.3.2 示范图例 206

1.3.3 设备对象的类型 207

第2章 PnP需要的驱动支持 209

2.1 概述PnP驱动的组成 209

2.1.1 INF文件 209

2.1.2 程序 213

2.2 驱动中的GUID 214

2.2.1 相关定义 214

2.2.2 定义及输出新GUIDs 215

2.2.3 在驱动编码中包含GUIDs 216

2.3 处理PnP IRPs的规则 217

2.3.1 PnP IRP的要求 217

2.3.2 把PnP IRP向下传送通过设备堆栈 219

2.3.3 延迟PnP IRP处理 221

2.4 PnP的DriverEntry例行程序 224

2.4.1 DriverEntry程序描述如下 224

2.4.2 功能与作用 225

2.5 PnP的AddDevice程序 228

2.5.1 AddDevice 228

2.5.2 步骤 228

2.6 DispatchPnP,DispatchPower和Unload程序 240

2.6.1 先来简述一下DispatchPnP程序 240

2.6.2 接着是DispatchPower例行程序 242

2.6.3 卸载(Unload)程序 244

第3章 增加新PnP设备的全步骤 245

3.1 从用户把硬件插到机器上时开始 245

3.1.1 枚举和判定 245

3.1.2 报告 245

3.1.3 处理 246

3.1.4 配置 246

3.1.5 信息 247

3.1.6 功能驱动和过滤器驱动 248

3.1.7 分配资源 248

3.1.8 启动设备 252

3.2 停止和删除设备 256

3.2.1 停止设备 257

3.2.2 删除设备 265

第4部分 电源管理 276

第1章 电源管理介绍 276

1.1 电源管理概述 276

1.2 电源管理的设置过程 276

第2章 实现电源管理的步骤 278

2.1 电源管理与驱动程序的实现目标 278

2.2 了解设备的支持能力 278

2.3 认清设备电源管理状态 281

2.4 电源状态和系统电源策略实现 283

第5部分 Windows2000的管理机制 295

第1章 管理机制总述 295

1.1 Windows2000的管理机制中的WMI 295

1.2 WMI的组成 296

第2章 实现WMI支持 297

2.1 描述数据、方法和事件与提供对象接口 297

2.2 注册WMI数据提供者并处理IRP请求 300

第6部分 调试与开发驱动程序 318

第1章 调试驱动程序 318

1.1 驱动开发环境介绍 318

1.2 ChkINF工具 318

1.3 Devctl.exe工具 320

1.4 Disabler工具 328

1.5 Edidw2k工具 329

1.6 Ntttcp工具 331

1.7 PCI Tools工具 332

1.8 WdmAudioGrapher工具 333

1.9 Geninf工具 335

1.10 Verifier工具 342

1.11 WinDebuger工具 344

第2章 用Visual Studio.net开发驱动程序 349