WINDOWS VXD与设备驱动程序权威指南

WINDOWS VXD与设备驱动程序权威指南
作 者: Karen Hazzah 孙喜明 孙喜明
出版社: 中国电力出版社
丛编项: 硬件接口开发系列
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: Windows
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

暂缺《WINDOWS VXD与设备驱动程序权威指南》作者简介

内容简介

本书是讲述VxD和设备驱动程序的权威指南。主要分为两部分。第一部分(第2到第12章)讲述Windows执行环境和VxD。第二部分(第13到第19章)讲述基于DLL的驱动程序。本书几乎涵盖了设备驱动程序开发的各个层面,内容全面部实,可读性较高。本书适合程序员及大专院校师生阅读。

图书目录

译者序

原书序

第1章

入门

什么是驱动程序

基于优先权的区分

驱动程序接口

需要编写哪种驱动程序

哪一类设备

哪种硬件接口

什么是性能需求

总结

第一部分Windows执行环境和VxD

第2章

Windows的虚拟世界

什么是虚拟机

多任务模式

基于页面请求的虚拟内存

处理器的模式

保护模式

V86模式

Windows执行环境

总结

第3章

Windows实现虚拟环境的方法

捕获I/O端口的访问

捕获内存映射设备

捕获中断和异常

处理器寄存器

进一步分析线性地址和页面映射

Win32.

Winl6和DOS应用程序的地址

Win32地址

Win16地址

DOS地址

Windows

x如何满足Winl6和DoS应用程序的地址需要

Windows9x如何满足Win32.

Win16和DOS应用程序的地址需要

总结

第4章

初识VxD

VxD的加载

VxD的基本结构

设备描述块

相关数据结构

事件通知

静态加载的VxD的初始化和终止消息

动态加载的VxD初始化和结束时的消息

VM的状态变化消息

线程消息

Windows

x的不同之处

总结

第5章

最基本的VxD构架

开发VxD所需的工具

“DDK”版本的源程序

DDB和设备控制人口函数:SKELCTRL.

ASM

VtoolsD版本的SKELETON.VXD

Windows

x版本的SKELETON

总结

第6章

VxD与硬件交互

I/O映射与内存映射

与I/O映射的设备交互

与内存映射的设备交互

静态配置的内存映射设备

动态配置的内存映射设备

另一种数据传输的方式:DMA

使用系统DMA

系统DMA缓冲区的条件

分配系统DMA缓冲区的函数

VDMAD服务一览

VDMAD服务的细节

使用总线DMA

使用VDMAD—Scatter_Lock的正确方法

在总线DMA传输中使用事件

Windows

x的不同之处

总结

第7章

在VxD中处理硬件中断

中断和VMM

使用VPICD服务

详解WICD服务函数:VXDIRQ.

C

汇编转换层和C处理函数

HwIntProc回调函数:DDBISR.

ASM和VXDISR.

C

VXDISR的事件处理

Windows

x的不同之处

总结

第8章

虚拟世界中的VxD

VMM和处理器异常

设备所有权

虚拟I/O映射设备:PORTTRAP的例子

初始化函数:OnDeviceInit

处理不同的I/O端口类型:PortTrapThunk

检查所有权:PortTrapHandler

处理VM_TERMINATE

使用PORTTRAP

虚拟内存映射设备:PAGIETRAP的例子

初始化过程

异常处理函数

处理VM_Terminate消息

使用PAGETRAP

虚拟硬件中断

哪个VM

负责硬件中断反射的VxD

回调函数:MaskChangeHandler

回调函数:HwInHandler

回调函数:Eomandler

回调函数:VirtIntHandler和IRETHandler

总结

第9章

即插即用:概况

PnP组件

在Windows9x安装过程中的PnP组件

设备安装过程中的PnP组件

启动时的PnP组件

总结

第10章

即插即用的设备驱动程序VxD

PnPVxD的安装

关于INF文件

PnP的启动过程

其他的PnP配置情况

关闭系统

新的配置

删除设备

一个PnP驱动程序VxD的例子:TRICORD.VxD

RICORD.INF的细节

代码详解

总结

第11章

从应用程序到VxD通信

Winl6应用程序到VxD:VxD方面

从Win16应用程序到VxD:应用程序方面

Win16应用程序到VxD:实例代码

从Win32应用程序到VxD:VxD方面

从Win32应用程序到VxD:应用程序方面

Win32到VxD:实例代码

总结

第12章

从VxD到应用程序的通信

从VxD到Winl6应用程序调用的困难

在Windows

x下的VxD

PostMessage

使用嵌套执行服务

在Windows9x下的VxD

PostPostMessage

在Windows9x下从VxD到Winl6应用程序:Appy

Time

与Win32相关的技巧:异步过程调用

APCVxD例子

与Win32相关的技巧:Win32事件

VxD和Win32事件

总结

第二部分DLL驱动程序

第13章

关于16位的DLL驱动程序

为什么DLL驱动程序都是16位的

32位应用程序与16位DLL交互需要转换层

静态和动态库

为什么要把驱动程序做成DLL的形式

应用程序与DLL

DLL和堆栈段

DLL和数据段

DLL与动态分配的内存之间的关系

DLL初始化和结束

DLL函数的要求

基本的DLL驱动程序

创建基本的DLL驱动程序

DLL也需要借助于应用程序

DLL驱动程序的调试工具

总结

第14章

DLL驱动程序:与硬件设备交互

DLL和端口访问

端口映射的例子

驱动程序设计中的常规

DLL驱动程序

访问内存映射的硬件设备

内存映射DLL驱动程序的版本

关于内存访问的一些高级话题

总结

第15章

DLL驱动程序:中断处理

Windows内存管理策略

驱动程序的内存要求

可在中断处理时访问的静态代码和数据:简单的方法

Windows

x下的正确方法

动态分配中断期间安全访问的缓冲区:简单的方法

动态分配中断期间安全访问的缓冲区:正确的方法

安装中断处理函数

全新的驱动程序:概述