图书介绍
Windows VxD与设备驱动程序权威指南PDF|Epub|txt|kindle电子书版本下载
![Windows VxD与设备驱动程序权威指南](https://www.shukui.net/cover/19/31423558.jpg)
- (美)Karen Hazzah著;孙喜明译 著
- 出版社: 北京:中国电力出版社
- ISBN:7508305582
- 出版时间:2001
- 标注页数:421页
- 文件大小:245MB
- 文件页数:439页
- 主题词:
PDF下载
下载说明
Windows VxD与设备驱动程序权威指南PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
什么是驱动程序1
基于优先权的区分1
驱动程序接口1
第1章 入门1
需要编写哪种驱动程序2
哪一类设备2
哪种硬件接口3
什么是性能需求4
总结4
第一部分 Windows执行环境和VxD7
第2章 Windows的虚拟世界7
什么是虚拟机7
基于页面请求的虚拟内存8
多任务模式8
处理器的模式9
保护模式10
V86模式10
Windows执行环境11
总结12
第3章Windows实现虚拟环境的方法13
捕获I /O端口的访问13
捕获内存映射设备14
捕获中断和异常15
处理器寄存器15
进一步分析线性地址和页面映射16
Win32地址18
Win16地址18
Win32、Win16和DOS应用程序的地址18
DOS地址19
Windows 3.x如何满足Win16和DOS应用程序的地址需要20
Windows 9x如何满足Win32、Win16和DOS应用程序的地址需要22
总结25
第4章 初识VxD26
VxD的加载26
VxD的基本结构27
设备描述块28
相关数据结构29
事件通知32
静态加载的VxD的初始化和终止消息34
动态加载的VxD初始化和结束时的消息34
VM的状态变化消息35
线程消息36
Windows 3.x的不同之处37
总结37
第5章 最基本的VxD构架38
开发VxD所需的工具38
“DDK”版本的源程序39
DDB和设备控制入口函数:SKELCTRL.ASM41
VtoolsD版本的SKELETON.VXD44
Windows 3.x版本的SKELETON48
总结49
第6章VxD与硬件交互62
I/O映射与内存映射62
与I/O映射的设备交互62
静态配置的内存映射设备63
与内存映射的设备交互63
动态配置的内存映射设备64
另一种数据传输的方式:DMA66
使用系统DMA67
系统DMA缓冲区的条件67
分配系统DMA缓冲区的函数69
VDMAD服务一览70
VDMAD服务的细节71
使用总线DMA73
使用VDMAD_Scatter_Lock的正确方法76
在总线DMA传输中使用事件78
Windows 3.x的不同之处79
总结79
中断和VMM86
第7章 在VxD中处理硬件中断86
使用VPICD服务87
详解CPICD服务函数:VXDIRQ.C88
汇编转换层和C处理函数90
HwIntProc回调函数:DDBISE.ASM和VXDISR.C90
VXDISR的事件处理91
Windows 3.x的不同之处92
总结93
第8章 虚拟世界中的VxD103
VMM和处理器异常104
设备所有权104
虚拟I/O映射设备:PORTTRAP的例子104
初始化函数:OnDeviceInit105
处理不同的I/O端口类型:PortTrapThunk106
检查所有权:PortTrapHandler107
处理VM_TERMINATE110
使用PORTTRAP110
虚拟内存映射设备:PAGETRAP的例子110
初始化过程111
异常处理函数113
处理VM_Terminate消息115
使用PAGETRAP115
虚拟硬件中断115
哪个VM115
负责硬件中断反射的VxD117
回调函数:MaskChangeHandler118
回调函数:HwIntHandler119
总结121
回调函数:EOIHandler121
回调函数:VirtIntHandler和IRETHandler121
第9章 即插即用:概况146
PnP组件146
在Windows 9x安装过程中的PnP组件148
设备安装过程中的PnP组件149
启动时的PnP组件149
总结153
第10章 即插即用的设备驱动程序VxD154
PnP VxD的安装154
关于INF文件154
PnP的启动过程156
关闭系统161
其他的PnP配置情况161
新的配置162
删除设备162
一个PnP驱动程序VxD的例子:TRICORD.VxD163
RICORD.INF的细节163
代码详解165
总结170
第11章 从应用程序到VxD通信183
Win16应用程序到VxD:VxD方面183
从Win16应用程序到VxD:应用程序方面184
Win16应用程序到VxD:实例代码185
从Win32应用程序到VxD:VxD方面191
从Win32应用程序到VxD:应用程序方面192
Win32到VxD:实例代码193
总结197
第12章 从VxD到应用程序的通信211
从VxD到Win16应用程序调用的困难211
在Windows 3.x下的VxD PostMessage212
使用嵌套执行服务215
在Windows 9x下的VxD PostMessage218
在Windows 9x下从VxD到Win16应用程序:Appy Time219
与Win 32相关的技巧:异步过程调用220
APCVXD例子220
与Win32相关的技巧:Win32事件225
VxD和Win32事件227
总结232
31位应用程序与16位DLL交互需要转换层260
为什么DLL驱动程序都是16位的260
第13章 关于16位的DLL驱动程序260
第二部分 DLL驱动程序260
静态和动态库261
为什么要把驱动程序做成DLL的形式261
应用程序与DLL261
DLL和堆栈段262
DLL和数据段263
DLL和动态分配的内存之间的关系263
DLL初始化和结束264
DLL函数的要求264
基本的DLL驱动程序264
创建基本的DLL驱动程序265
DLL也需要借助于应用程序266
总结267
DLL驱动程序的调试工具267
第14章 DLL驱动程序:与硬件设备交互271
DLL和端口访问271
端口映射的例子271
驱动程序设计中的常规272
DLL驱动程序273
访问内存映射的硬件设备276
内存映射DLL驱动程序的版本277
关于内存访问的一些高级话题278
总结282
第15章 DLL驱动程序:中断处理291
Windows内存管理策略291
驱动程序的内存要求296
可在中断处理时访问的静态代码和数据:简单的方法297
Windows 3.x下的正确方法297
动态分配中断期间安全访问的缓冲区:简单的方法298
动态分配中断期间安全访问的缓冲区:正确的方法298
安装中断处理函数301
全新的驱动程序:概述302
全新的驱动程序:代码302
总结306
第16章 DLL驱动程序:使用DMA323
操作DMA缓冲区的必要条件323
如何分配DMA缓冲区323
使用VDMAD服务函数是更好的实现方法324
与Windows DMA应用程序相关的知识324
Windows下的DMA DOS应用程序324
总结326
第17章 DLL驱动程序:使用实模式服务函数327
与DOS驱动程序交互328
IOCTL的特殊处理329
与TSR交互330
总结341
第18章 转换层:在32位中调用16位353
什么是Flat Thunk353
转换层的任务355
转换层的魔术355
逐步生成转换层358
逐步构造转换层361
总结362
第19章 DLL驱动程序:使用时钟374
用于周期性通知的时钟374
使用SetTimer函数374
挂接INT 1 Ch和INT 8h375
不要依赖18.2的频率375
使用timeSetEvent:Pros和Cons375
如果上述的方法都不管用,那就求助于VxD376
计算消耗的时间376
GetTickCount、timeGetTime和QueryPerformanceCounter377
总结377
附录 Intel体系结构378
8086/8088和实模式378
选择器和描述符379
80286和保护模式379
中断和异常380
保护模式的机制381
优先级382
80386和虚拟8086模式383
附录B 为C语言的VxD调用汇编语言386
声明DDB386
为VMM/VxD的回调函数增加转换层388
介绍封装库390
WRAPPERS.H391
关于WRAPPERS.ASM392
建立函数封装库396
总结397
虚拟8086模式684