图书介绍
竹林蹊径 深入浅出windows驱动开发pdf电子书版本下载
- 张佩,马勇,董鉴源编著 著
- 出版社: 北京:电子工业出版社
- ISBN:9787121125553
- 出版时间:2011
- 标注页数:506页
- 文件大小:41MB
- 文件页数:530页
- 主题词:窗口软件,Windows-驱动程序-程序设计
PDF下载
下载说明
竹林蹊径 深入浅出windows驱动开发PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如 BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1章 Hello World驱动 1
1.1从Hello World开始 2
1.1.1 HelloDRIVER 4
1.1.2代码解释 8
1.1.3驱动程序的编译和安装 11
1.1.4查看我们的驱动 14
1.2虚拟环境 15
1.2.1使用虚拟环境进行驱动开发 15
1.2.2使用VMware虚拟机 15
1.2.3目标机设置 16
1.2.4Virtual PC虚拟机 18
1.3小结 19
第2章 商业驱动开发技术 20
2.1建立开发调试环境 21
2.1.1SVN环境 21
2.1.2创建工程,导入SVN 23
2.1.3建立符号服务器 25
2.1.4用符号调试 27
2.2 64位驱动开发技术 34
2.2.1 64位驱动编写技术 35
2.2.2 32位应用程序与64位驱动混合模式 36
2.3驱动程序的发布与测试 42
2.3.1驱动程序签名 42
2.3.2驱动程序测试 46
2.3.3WHQL 49
2.4小结 50
第3章 WDF概述 51
3.1主要特点 52
3.2框架视图 53
3.3兼容性 55
3.4对象模型 56
3.4.1对象和句柄 59
3.4.2引用计数 60
3.4.3上下文空间 61
3.4.4PME接口 67
3.4.5DDI接口 69
3.4.6父子关系 76
3.4.7对象同步 77
3.5驱动对象和设备对象 78
3.5.1驱动对象 78
3.5.2驱动入口DriverEntry 81
3.5.3设备对象 84
3.5.4创建设备对象 85
3.5.5设备栈 86
3.6 IO模型 88
3.6.1IO目标对象 88
3.6.2IO目标对象的细节 90
3.6.3安全的缓冲区 93
3.6.4内存对象(一) 96
3.6.5内存对象(二) 98
3.6.6框架和I0请求 102
3.6.7更详细的处理流程 103
3.6.8IO请求参数 105
3.6.9队列 107
3.6.10创建IO请求 110
3.7PNP和电源模型 112
3.8小结 115
第4章 WDF USB设备驱动开发 116
4.1 USB设备硬件结构 117
4.1.1主从结构 117
4.1.2硬件拓扑 118
4.1.3USB中断 119
4.2 USB软件结构 120
4.2.1总线驱动 120
4.2.2系统类驱动 121
4.2.3功能驱动 122
4.2.4父驱动与混合设备 122
4.2.5过滤驱动 125
4.2.6USB驱动栈、设备栈 125
4.3内核开发 127
4.3.1设备驱动 127
4.3.2入口函数 128
4.3.3USB描述符 129
4.3.4描述符介绍 130
4.3.5汇总举例 133
4.3.6读取描述符 135
4.3.7初始化 137
4.3.8设备初始化函数 138
4.3.9创建设备对象 141
4.3.10设备命名、符号链接 143
4.3.11启动设备 147
4.3.12创建队列 156
4.3.13停止设备/反初始化 158
4.4数据I/O操作 160
4.4.1 USB控制命令 160
4.4.2构造并发送控制命令 162
4.4.3读USB中断端口 163
4.4.4连续读操作 165
4.4.5数据处理函数 166
4.4.6中断端口的效率 167
4.4.7读/写批量端口 168
4.5设备控制 171
4.5.1关于I/O Target对象 171
4.5.2获取USB版本 172
4.5.3管道重置 174
4.5.4设备重置 176
4.5.5管道中止与终止 177
4.6用户程序 179
4.6.1内核读/写 179
4.6.2控制命令 179
4.7.小结 180
第5章 WDF 1394驱动开发 181
5.1 1394一席谈 182
5.1.1版本情况 183
5.1.2电源特性 183
5.1.3 1394卡 183
5.1.4总线拓扑 184
5.2发送请求 186
5.2.1同步方式 187
5.2.2异步方式 189
5.2.3对WDM的回忆 191
5.3总线重置与计数 193
5.3.1总线重置 193
5.3.2设置重置回调 193
5.3.3计数更新 194
5.4 PNP操作 195
5.5异步通信 196
5.5.1地址范围 197
5.5.2异步读 200
5.5.3异步写 201
5.5.4异步锁请求 202
5.5.5数据流 203
5.6等时通信 204
5.6.1申请带宽 205
5.6.2释放带宽 206
5.6.3等时通道 206
5.6.4资源句柄 207
5.6.5缓冲区挂载 210
5.6.6缓冲区解挂 211
5.6.7开始传输 211
5.6.8停止传输 212
5.6.9其他等时操作 213
5.7其他操作 213
5.7.1设备配置 213
5.7.2获取控制器信息 214
5.7.3速度信息 215
5.7.4厂商自定义命令 216
5.8安装与测试 216
5.8.1 1394虚拟设备 216
5.8.2创建虚拟设备 218
5.8.3示例代码 219
5.8.4安装与测试 221
5.9小结 222
第6章 内核驱动C++编程 223
6.1驱动中的类 224
6.1.1一个简单的例子 224
6.1.2new/delete 225
6.1.3extern“C” 227
6.1.4全局/静态变量 228
6.1.5栈的忧虑 230
6.2类封装的驱动程序 233
6.2.1寻找合适的存储所 233
6.2.2类方法与事件函数 235
6.2.3KMDF驱动实现 236
6.2.4WDM驱动实现 237
6.3 多态 238
6.3.1基类、子类 238
6.3.2实现多态 239
6.3.3测试 241
6.4小结 241
第7章 WDF驱动测试 242
7.1 WDF错误 243
7.1.1实例分析 245
7.1.2USB错误 246
7.2 WDF扩展调试命令 247
7.3 WDFTester 254
7.3.1WDFFiTester 254
7.3.2使用 256
7.3.3WDFCallTracer 260
7.4 WDFVerifler 263
7.4.1识别KMDF驱动 263
7.4.2使用与介绍 265
7.5小结 266
第8章 调试命令详解 267
8.1概述 268
8.1.1寻求帮助 269
8.1.2 DML语言 270
8.1.3基本信息 271
8.1.4基本设置 272
8.1.5格式化显示 273
8.1.6开始调试 273
8.2符号与源码 276
8.2.1模块列表 277
8.2.2模块信息 279
8.2.3符号路径 280
8.2.4符号加载 283
8.2.5符号搜索 285
8.2.6源码命令 287
8.3进程与线程 289
8.3.1进程命令 289
8.3.2线程命令 292
8.3.3异常与事件 296
8.3.4局部变量 300
8.3.5显示类型 301
8.4断点 301
8.4.1软件断点 301
8.4.2硬件断点 303
8.4.3其他操作 303
8.5内存命令 304
8.5.1查看内存 304
8.5.2内存信息 307
8.5.3其他命令 311
8.6小结 312
第9章 内核同步 313
9.1关于内核同步 314
9.2内核事件同步 316
9.2.1原理 316
9.2.2用户程序 318
9.2.3内核实现 319
9.3 IRP同步 320
9.3.1用户程序 321
9.3.2内核实现 323
9.4 WMI同步 325
9.5数据缓冲区同步 326
9.6反向调用 328
9.7小结 330
第10章 音频驱动开发 331
10.1简介 332
10.1.1音频模块架构 332
10.1.2系统中的音频设备 334
10.2 AVStream对象 338
10.2.1设备对象 339
10.2.2 Filter工厂和Filter对象 340
10.2.3 Pin工厂和Pin对象 342
10.2.4 Node对象与Connection结构体 343
10.3 AVStream描述符 346
10.3.1描述符简介 346
10.3.2描述符示例 347
10.3.3分发函数表 349
10.3.4自控表 349
10.3.5自控表示例 351
10.4代码讲解 355
10.4.1入口函数 355
10.4.2设备分发函数 357
10.4.3 Filter与Pin分发函数 358
10.4.4创建和删除 359
10.4.5数据处理 360
10.4.6数据格式 362
10.5自控表函数 364
10.5.1事件函数 364
10.5.2属性函数 366
10.5.3方法函数 367
10.5.4用户接口 367
10.6硬件操作 370
10.6.1数据DMA 370
10.6.2 AVStream中的DMA实现 371
10.6.3谈谈ISR 374
10.7安装与测试 376
10.7.1安装 376
10.7.2测试工具 376
10.8小结 379
第11章 ASlO虚拟声卡 380
11.1引言 381
11.2关于ASIO 383
11.3 ASIO用户驱动 384
11.3.1 COM接口 384
11.3.2安装与卸载 386
11.3.3 IASIO接口 387
11.3.4技术核心 390
11.3.5计算延迟 392
11.4内核驱动实现 393
11.4.1同步 393
11.4.2原理 393
11.4.3实现 396
11.5 ASIO音频软件 396
11.6小结 397
第12章 设备驱动安装入门 399
12.1基础知识预介 400
12.1.1设备类型 400
12.1.2设备实例ID 401
12.1.3驱动加载和安装 403
12.2安装模块 404
12.2.1内核PNP管理器 405
12.2.2用户PNP管理器 406
12.2.3安装接口函数(Setup API) 408
12.2.4配置管理器接口(CfgMgr API) 410
12.2.5类安装器(Class Installers) 410
12.2.6类协安装器(Class Co-Installers) 410
12.2.7设备协安装器(Device Co-Installers) 411
12.2.8驱动包(Driver Package) 412
12.2.9驱动仓库(Driver Store) 413
12.2.10设备管理器(Device Manager) 414
12.2.11安装程序 415
12.2.12新设备向导 416
12.2.13添加硬件向导 416
12.2.14驱动安装器(Driver Installer) 416
12.3重要问题 417
12.3.1寻找和选择 417
12.3.2 32位与64位系统兼容 418
12.3.3系统重启 419
12.4安装模式 420
12.4.1示例1:客户端模式 421
12.4.2示例2:服务器模式 423
12.5安装器编程 424
12.5.1 DIF码 424
12.5.2处理流程 427
12.5.3工程示例 429
12.5.4注册 430
12.6小结 431
第13章 深入解析lNF文件 432
13.1概述 433
13.1.1域 433
13.1.2指令 434
13.1.3多系统 435
13.2注册表指令 436
13.2.1缩写根键 436
13.2.2软件键 437
13.2.3硬件键 437
13.2.4 AddReg 438
13.2.5 DelReg 440
13.2.6 BitReg 441
13.3文件操作指令 441
13.3.1 CopyFiles 441
13.3.2 DelFiles 443
13.3.3 RenFiles 443
13.4服务指令 444
13.4.1 AddService 444
13.4.2 DelService 445
13.5基本域 446
13.5.1版本域 446
13.5.2文件域 447
13.5.3默认安装域 451
13.5.4控制域 454
13.5.5字符串域 457
13.6设备类安装域 458
13.6.1主域 459
13.6.2服务子域 461
13.7接口类安装域 461
13.8厂商/产品域 462
13.8.1厂商域 463
13.8.2产品域 464
13.9设备安装域 464
13.9.1硬件子域 466
13.9.2协安装器子域 467
13.9.3接口子域 468
13.9.4厂商默认配置子域 469
13.9.5逻辑优先配置子域 470
13.10ChkInf介绍 471
13.11小结 472
第14章 设计驱动安装程序 473
14.1驱动包 474
14.1.1安装方式 474
14.1.2安装驱动包 475
14.1.3卸载驱动包 476
14.2驱动更新 477
14.2.1设备已连接 477
14.2.2设备未连接 478
14.2.3枚举系统设备 481
14.3分析INF文件 484
14.3.1函数介绍 484
14.3.2打印设备ID 486
14.4 MyDrvInst介绍 487
14.5制作软件安装包 490
14.5.1视图介绍 490
14.5.2我们的工程 492
14.5.3编译执行 493
14.6小结 494
附录A CYOO1 USB开发板 495
附录B VisualKD + VMWare实现单机内核调试 501