图书介绍

Windows VxD与设备驱动程序权威指南PDF|Epub|txt|kindle电子书版本下载

Windows VxD与设备驱动程序权威指南
  • (美)Karen Hazzah著;孙喜明译 著
  • 出版社: 北京:中国电力出版社
  • ISBN:7508305582
  • 出版时间:2001
  • 标注页数:421页
  • 文件大小:245MB
  • 文件页数:439页
  • 主题词:

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

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

热门推荐