Windows环境下的设备驱动程序设计 - 中国高校教材图书网
|
书名: |
Windows环境下的设备驱动程序设计
|
| ISBN: | 7-5606-1127-3 |
责任编辑: | |
| 作者: |
张惠娟
相关图书
|
装订: | 平装 |
| 印次: | 1-1 |
开本: | 0 |
| 定价: |
¥28.00
折扣价:¥26.60
折扣:0.95
节省了1.4元
|
字数: |
529千字
|
| 出版社: |
西安电子科技大学出版社 |
页数: |
|
| 出版日期: |
2002-05-01 |
每包册数: |
|
| 国家规划教材: |
|
省部级规划教材: |
|
| 入选重点出版项目: |
|
获奖信息: |
|
|
|
| 内容简介: |
本书讲述了Windows系统下设备驱动程序的开发方法。全书分为三部分,共10章。第一部分主要介绍了VxD驱动程序,以及利用VToolsD开发VxD程序的方法;第二部分和第三部分分别介绍了Windows NT和Windows 2000下的设备驱动程序基础知识,以及利用DriverWorks开发NT式和WDM驱动程序的方法。 本书系统介绍了在不同的操作系统下设备驱动程序开发的方法,内容实用,是一本很好的学习设备驱动程序设计的书籍。 本书适合于任何想学习Windows系统下设备驱动程序开发的人员,尤其适合于初步涉及设备驱动程序开发的人员。
|
| 作者简介: |
|
|
| 章节目录: |
第一部分 虚拟设备驱动程序VxD
第一章 Windows 9x操作系统体系结构 2
1.1 Intel CPU的工作模式 2
1.1.1 实模式 2
1.1.2 保护模式 2
1.1.3 虚拟86模式(V86模式) 6
1.2 Windows 9x操作系统 6
1.2.1 虚拟机(VM) 7
1.2.2 虚拟机管理器(VMM) 8
1.2.3 虚拟设备驱动程序VxD 9
1.2.4 Windows 9x系统的基本构架 9
1.2.5 内存管理技术 10
1.3 设备驱动程序基本知识 13
1.3.1 基本概念 13
1.3.2 动态链接库(DLL)简介 14
1.3.3 设备驱动程序类型 17
第二章 VxD设备驱动程序 19
2.1 VxD概述 19
2.1.1 VxD程序能完成的任务 19
2.1.2 分类 19
2.1.3 开发方法 20
2.2 VxD程序基本结构 21
2.2.1 VxD文件格式 21
2.2.2 VxD程序结构 22
2.3 消息机制 26
2.3.1 系统初始化类 26
2.3.2 系统终止类 26
2.3.3 VM初始化类 27
2.3.4 VM终止类 27
2.3.5 VM状态类 27
2.3.6 动态加载卸载消息 28
2.3.7 VxD的加载、初始化和结束过程 28
2.4 服务机制 31
2.4.1 定义服务 31
2.4.2 服务表声明 32
2.4.3 引入服务 33
2.4.4 调用VxD服务 33
2.5 调用机制 33
2.6 通信机制 35
2.6.1 Windows 32应用程序到VxD程序通信 35
2.6.2 VxD到应用程序的通信机制 35
2.7 编写过程 36
第三章 开发工具介绍 38
3.1 概述 38
3.1.1 源码辅助生成工具 38
3.1.2 调试工具 40
3.2 VToolsD介绍 40
3.2.1 VToolsD框架介绍 40
3.2.2 Quick VxD 41
3.2.3 VxD程序建立和调试 47
3.3 VxD类库介绍 51
3.3.1 框架类 51
3.3.2 事件处理类 55
3.3.3 其它类 76
第四章 VxD程序实例介绍 78
4.1 VxD程序基本框架程序 78
4.2 应用程序事件类程序 79
4.3 热键类驱动程序 82
4.4 中断设备驱动程序 84
4.5 延时类驱动程序 92
第二部分 Windows NT 驱动程序
第五章 Windows NT系统及其驱动程序 96
5.1 Windows NT操作系统概述 96
5.1.1 操作系统的特点 96
5.1.2 操作系统的用户模式 97
5.1.3 内核模式的I/O组件 99
5.2 Windows NT下驱动程序 102
5.2.1 NT下驱动程序分类 102
5.2.2 核心设备驱动程序通信和结构模型 103
5.2.3 驱动程序中的对象 108
5.2.4 I/O缓冲策略 109
5.2.5 NT和Windows 32的设备名 111
5.3 NT驱动程序开发 111
第六章 用DriverWorks开发NT驱动程序 113
6.1 DriverWorks介绍 113
6.1.1 DriverWorks特点 113
6.1.2 DriverWorks使用方法 114
6.2 DriverWorks中的对象模型 117
6.2.1 驱动程序对象(Driver Object) 117
6.2.2 区域映射对象(Image Section) 118
6.2.3 I/O请求对象(I/O Request Object) 119
6.2.4 设备对象(Device Object) 120
6.2.5 底层设备对象(Lower Device Object) 120
6.2.6 驱动程序初始化中使用到的对象 121
6.2.7 序列和序列化请求对象 122
6.2.8 中断请求级别(IRQL) 123
6.2.9 控制硬件的对象 124
6.2.10 同步对象 128
6.2.11 容器对象和一些其它对象 129
6.3 开发方法 130
6.3.1 驱动程序工作思路 130
6.3.2 写驱动程序时注意事项 132
6.4 常用设备驱动程序编写 135
6.4.1 访问PCI设备的配置空间 135
6.4.2 建立有事件标志的驱动程序 138
6.4.3 支持USB设备的驱动程序 140
6.4.4 产生系统线程的驱动程序 140
6.4.5 允许取消I/O请求的驱动程序 141
6.4.6 设备过滤驱动程序 143
6.4.7 实现中断控制的驱动程序 145
6.4.8 应用程序接口 147
6.4.9 能进行页面管理的驱动程序 148
6.4.10 映射外围地址到系统地址空间的驱动程序 149
6.4.11 映射外围地址到用户地址空间的驱动程序 150
6.4.12 映射系统缓冲区到用户地址空间的驱动程序 151
6.4.13 DMA传输 152
6.4.14 从核心模式驱动程序中读写文件 153
6.4.15 读写I/O寄存器的驱动程序 154
6.4.16 在驱动程序中读注册表信息 155
6.4.17 请求资源分配的驱动程序 157
6.4.18 向应用程序发送信息的驱动程序 158
第七章 NT驱动程序实例介绍 161
7.1 NT设备驱动程序基本框架 161
7.2 PCI设备驱动程序 164
7.3 系统地址和I/O地址空间映射的设备驱动程序 177
7.4 中断设备驱动程序 185
7.5 操作I/O端口的设备驱动程序 196
7.6 串口设备过滤驱动程序 209
7.7 DMA设备驱动程序 228
第三部分 Windows 2000 驱动程序WDM
第八章 WDM驱动程序概述 253
8.1 WDM驱动程序特点 253
8.2 WDM驱动程序结构模型 256
8.2.1 设备驱动程序栈结构 256
8.2.2 标准总线驱动程序和类驱动程序 257
8.2.3 WDM驱动程序组成 258
第九章 WDM驱动程序开发 259
9.1 WDM驱动程序和DriverWorks 259
9.1.1 WDM驱动程序开发原则与方法 259
9.1.2 DriverWorks为支持WDM程序提供的类和库 260
9.2 DriverWorks提供的支持WDM类 261
9.2.1 类KPnPDevice 261
9.2.2 类 KPnPLowerDevice 278
9.2.3 类KVxDInterface 279
9.2.4 设备接口 281
9.2.5 电源管理 282
9.2.6 支持WMI的驱动程序 284
9.2.7 支持HID的类 289
9.2.8 USB设备驱动程序 293
9.2.9 流驱动程序 296
9.3 WDM建立编译安装链接调试 299
第十章 WDM设备驱动程序实例 301
10.1 基本WDM驱动程序框架 301
10.2 USB设备驱动程序 313
10.3 即插即用的PCI设备驱动程序 324
10.4 HID设备驱动程序 333
参考文献 348
|
| 精彩片段: |
|
|
| 书 评: |
Windows采用特有的系统保护措施,使得在Windows操作系统环境下,设备驱动程序的开发模式和开发方法不同于在DOS环境下的,且开发难度较大。目前,市面上出售的Windows设备驱动程序开发书籍比较少,而且,大多数是译本,内容有一定深度,要求读者必须具有相当的专业知识。这种现状,从某种程度上来说,是一种断面,使得学习设备驱动程序开发的读者很是茫然,感觉缺少循序渐进的学习过程。 以上这种感觉,也是当初我在学习设备驱动程序开发时遇到的问题,在这两年的设备驱动程序开发、教学过程中,我也深深感觉到这一点。如何能以一种系统的、循序渐进的、简单的方式介绍这门深奥的知识,让学习者轻松入门,然后根据自身的需要,开发Windows系统的设备驱动程序,这就是我写这本书的原动力。 本书主要介绍了Windows 9x、Windows NT、Windows 2000操作系统环境下的设备驱动程序模型结构、开发、链接、调试方法。 本书对读者知识层次要求比较低。以前,Windows系统下设备驱动程序的开发采用DDK工具,这种方法对开发人员要求比较高,从而使得许多开发人员望而却步。现在,有许多第三方公司提供的开发工具,使得设备驱动程序开发相对简单了些。本书对驱动程序开发方法的介绍,采用的是第三方公司提供的工具,要求读者具有C或者C++编程经验和面向对象技术的概念,并具有一定的硬件知识。 从内容上来说,本书共分为三部分,分别系统介绍了VxD设备驱动程序、NT式设备驱动程序及WDM设备驱动程序的模型、开发、编译链接、调试方法,内容通俗易懂。具体来说,本书内容如下: 第一部分:虚拟设备驱动程序VxD。这部分包括四章内容,分别介绍了Windows 9x系统的体系结构、VxD设备驱动程序结构、VxD设备驱动程序开发工具VToolsD、VxD设备驱动程序实例。使得读者首先能较多地了解Windows系统的体系结构,然后了解VxD设备驱动程序,最后通过例子来深入理解VxD设备驱动程序的开发方法。 第二部分:Windows NT设备驱动程序。在这部分中,包括三章内容,分别介绍了Windows NT 操作系统、NT式设备驱动程序 、NT式设备驱动程序的开发工具DriverWorks、常用的NT设备驱动程序开发方法以及NT设备驱动程序开发实例等。 第三部分:WDM设备驱动程序。WDM设备驱动程序模型是Windows 2000环境下的设备驱动程序模型,它和NT式设备驱动程序很相似,但也有很大的不同之处。这部分也包含有三方面内容,在延续第二部分NT设备驱动程序基础上,介绍了WDM驱动程序的模型特点、开发方法以及一些驱动程序例子。 在本书的编写过程中,得到了西安电子科技大学多媒体研究所同事们的很多帮助,尤其是我的导师周利华教授的支持、建议,在这里表示衷心的感谢。也非常感谢西安电子科技大学出版社的领导、编辑和有关人员的支持和帮助。 在这里,我也非常感激我的母亲,有她承担家务和对孩子的教育,才使得我能有更多的时间来做这件事情。我非常感谢我的先生,他给我提供了很多的建议和资料。 由于编者水平有限,时间也比较仓促,书中或许会有不足之处,殷切希望广大读者的指正和批评。
|
| 其 它: |
|
|
|