
Windows WDM设备驱动程式开发指南
《Windows WDM设备驱动程式开发指南》是机械工业出版社出版的图书,作者是坎特(美),出版时间为2000年0月。
基本介绍
- 作者:坎特(美)
- 译者:孙义/等
- ISBN:9787111077091
- 页数:404
- 定价:56.00元
- 出版社:机械工业出版社
- 出版时间:2000-01
- 装帧:平装
内容介绍
本书主要介绍Windows98和Windows2000新的驱动程式模型(WDM)。描述了WDM
设备驱动程式的结构、功能和开发方法;通过实际的设备驱动程式例子,说明WDM设备
驱动程式的实现技术、测试和调试方法;介绍了本书提供的一个调试软体DebugPrint;
说明如何在客户驱动程式中使用USB驱动程式接口(USBDI)访问USB设备,以及如何利用
HID类驱动程式以标準方法访问多种输入设备。
作品目录
目 录
前言
第1章 引言
1.1Windows驱动程式模型
1.1.1WDM与NT式驱动程式
1.1.2可用的驱动程式
1.1.3本书配套光碟
1.1.4设备驱动程式软体工具
1.1.5未讨论的驱动程式类型
1.2新的思维方式
1.2.1设备驱动程式环境
1.2.2术语与资源
1.3Win32程式接口
1.3.1基本I/O
1.3.2重叠的异步请求
1.3.3环境
1.3.4设备特定的限制
1.3.5驱动程式的其他Win32访问
1.4小结
第2章 概述
2.1设备驱动程式的组成部分
2.1.1驱动程式入口点和回调例程
2.1.2分发例程
2.1.3创建设备
2.1.4硬体资源分配
2.1.5调用其他驱动程式
2.1.6串列硬体的访问
2.1.7访问硬体
2.1.8硬体问题
2.1.9电源管理
2.1.10WMI
2.1.11NT事件报告
2.1.12系统执行绪
2.2设备驱动程式的类型
2.2.1Windows概述
2.2.2I/O请求处理
2.2.3即插即用设备栈
2.2.4标準汇流排驱动程式和类驱动
程式
2.2.5驱动程式栈举例
2.3驱动程式选择
2.3.1现成的驱动程式
2.3.2使用标準驱动程式
2.3.3作业系统
2.3.4分层的设备驱动程式
2.3.5单一驱动程式
2.3.6建议的和可选的功能
2.4WDM的合理性
2.4.1一个核心模型
2.4.2複杂性
2.4.3即插即用与分层
2.4.4功能範围
2.4.5开发环境
2.4.6开发者支持
2.5小结
第3章 设备驱动程式设计
3.1引言
3.2驱动程式设计指南
3.2.1文档
3.2.2好的设计
3.3核心调用
3.3.1核心宏
3.3.2核心对象
3.3.3驱动程式例程名称
3.4处理器模型
3.4.1处理器模式
3.4.2中断级
3.5使用记忆体
3.5.1记忆体池
3.5.2旁视列表
3.5.3其他的记忆体考虑
3.5.4访问用户应用程式记忆体
3.5.5DMA
3.6IRP处理
3.6.1IRP参数
3.6.2在驱动程式栈中处理IRP
3.7小结
第4章 WDM驱动程式环境
4.1系统设定
4.1.1DDK
4.1.2本书配套光碟软体的安装
4.1.3捷径
4.2实用程式
4.2.1DOS框
4.2.2计算机管理控制台
4.2.3NTDevices小程式
4.2.4硬体嚮导
4.2.5注册表编辑器
4.2.6INF编辑器
4.2.7WBEM
4.2.8调试程式
4.2.9NT和Windows20凹实用程式
4.2.10本书配套光碟上的工具
4.3驱动程式目标
4.4驱动程式语言和库
4.5好的代码
4.6build实用程式
4.6.1makefile
4.6.2SOURCES
4.6.3makefile档案
4.6.4build目录
4.6.5其他build步骤
4.6.6DIRS档案
4.7VC++项目
4.7.1Makefile构造环境
4.7.2MakeDrvr
4.7.3目录
4.7.4常见任务
4.8Wdm1驱动程式代码
4.8.1编译器选项
4.8.2头档案
4.8.3驱动程式进入模组
4.8.4版本资源
4.8.5访问注册表
4.8.6UNICODE_STRING结构
4.9安装Wdml
4.10安装详细信息
4.10.1INF档案
4.10.2注册表
4.10.3Windows2000对象
4.11设备和驱动程式的管理
4.11.1添加另一个设备
4.11.2删除设备
4.11.3更新驱动程式
4.11.4NT式驱动程式
4.12小结
第5章 设备接口
5.1设备
5.1.1设备访问
5.1.2后续的I/O
5.2设备对象和设备扩展
5.3设备对象的创建和删除
5.3.1创建设备
5.3.2删除设备
5.4设备名
5.5设备接口
5.6Win32设备接口访问
5.6.1得到设备的接口名
5.6.2运行WdmlTest
5.7小结
第6章 测试与调试
6.1测试、测试、再测试
6.2驱动程式测试
6.2.1测试所有的函式是否都工作
6.2.2Windows2000和Windows98
6.2.3多处理器
6.2.4取消I/O
6.3调试
6.4调试技术
6.4.1递增式的开发
6.4.2检查版本
6.4.3Windows2000还是Windows98
6.5调试工具
6.5.1Windows2000事件
6.5.2跟蹤工具
6.5.3驱动程式验证程式
6.5.4调试程式
6.6DebugPrint
6.6.1使用DebugPrint
6.6.2使用DebugPrintMonitor
6.6.3在驱动程式中使用DebugPrint
6.7关于调试的说明
6.7.1更新驱动程式
6.7.2驱动程式在引导时失败
6.7.3驱动程式依赖性
6.7.4未取消的IRP
6.8错误检查代码
6.9小结
第7章 分发例程
7.1分发例程IRP
7.2I/O请求包
7.2.1分发例程处理
7.2.2可重入性
7.2.3IRP处理
7.2.4IRP完成
7.3IRP结构
7.4常用的IRP参数
7.4.1“创建”IRP,IRO_MJ_CREATE
7.4.2“关闭”IRP,IRP_MJ_CLOSE
7.4.3“读”IRP,IRP_MJ_READ
7.4.4“写”IRP,IRP_MJ_WRITE
7.4.5IOCTLIRP,IRP_MJ_IOCTL
7.5用户缓冲区
7.5.1缓冲I/O
7.5.2直接I/O
7.5.3其他I/O方式
7.5.4DeviceIoControl缓冲区
7.6Wdm1分发例程
7.6.1创建和关闭
7.6.2写
7.6.3读
7.6.4IOCTL
7.6.5系统控制
7.7小结
第8章 即插即用与设备栈
8.1设计概述
8.1.1设计目标
8.1.2即插即用系统
8.2即插即用讯息
8.3设备枚举
8.3.1固定的和可配置的设备
8.3.2枚举
8.3.3设备树
8.4设备栈
8.4.1PnP支持与设备栈
8.4.2设备对象
8.5上沿
8.5.1USB键盘例子
8.5.2功能设备对象和物理设备对象
8.5.3上沿定义
8.6小结
第9章 即插即用的实现
9.1实现即插即用
9.1.1添加和删除设备
9.1.2基本的PnP处理程式
9.1.3沿设备栈向下传递不支持
的IRP
9.1.4PnP状态和讯息
9.1.5状态标誌
9.1.6保持IRP
9.1.7打开的句柄
9.1.8处理PnPIRP的时间
9.1.9实现资源分配
9.2测试Wdm2
9.3其他PnPIRP
9.3.1IRP_MN_DEVICE_USAGE_
NOTIFICATION
9.3.2IRP_MN_FILTER_RESOUR CE_
REQUIREMENTS
9.3.3IRP_MN_QUERY_BUS_
INFORMATION
9.3.4IRP_MN_QUERY_
CAPABILITIES
9.3.5IRP_MN_QUEPY_DEVICE_
RELATIONS
9.3.61RP_MN_QUERY_DEVICE_
TEXT
9.3.7IRP_MN_QUERY_ID
9.3.8IRP_MN_QUERY_
INTERFACE
9.3.9IRP_MN_QUERY_PNP_DEVICI
STATE
9.3.101RP_MN_QUERY_RESOURCE
REQUIREMENTS
9.3.11IRP_ MN_QU ERY_
RESOURCES
9.3.12IRP_MN_READ_CONFIG
9.3.131RP_MN_SET_L OC K
9.3.14IRP_MN_WRITE_CONFIG
9.4PnP通知
9.4.1Win32PnP通知
9.4.2设备驱动程式PnP通知
9.4.3通知请求驱动程式互动
9.5高级的即插即用
9.5.1汇流排驱动程式
9.5.2传送PnPIRP
9.5.3设备属性
9.6小结
第10章 电源管理
10.1电源概述
10.1.1ACPI
10.1.2Win32电源管理
10.1.3Wdm2Power应用程式
10.1.4电池小类驱动程式
10.2系统电源策略
10.3电源IRP
10.4处理电源IRP
10.4.1处理设备电源IRP
10.4.2处理系统电源IRP
10.4.3不处理电源IRP
10.5设备电源策略主
10.6处理“设定电源”IRP
10.6.1设定系统电源状态
10.6.2设定设备电源状态
10.6.3SetPowerState
10.7分发例程的电源处理
10.8测试Wdm2电源功能
10.9设备功能
10.10高级电源管理
10.10.1唤醒
10.10.2电源顺序
10.10.3停止系统关闭事件
10.10.4电源通知
10.10.5检测系统电源状态变化
10.10.6 WMI支持
10.11小结
第11章 安装
11.1WDM驱动程式的安装过程
11.2INF档案
11.3标準节
11.4 INF档案的节层次结构
11.4.1Wdm1Free.INF
11.4.2InfEdit
11.5跨平台和WDMINF档案
11.5.1在Windows2000中安装Wdm1
11.5.2Windows2000服务注册表项
11.6查找驱动程式
11.6.1硬体ID
11.6.2兼容ID
11.6.3重複枚举
11.7NT式驱动程式的安装
11.7.1安装过程
11.7.2驱动程式的装入顺序
11.7.3NT4控制台Devices小程式
11.7.4Windows2000 设备管理
11.7.5Windows98设备管理
11.7.6REG档案
11.8在Windows98中安装NT式驱动
程式
11.9小结
第12章 WMI
12.1概述
12.1.1 WBEM模型
12.1.2WDM提供者
12.2一个WMI驱动程式
12.2.1WMI构造环境
12.2.2注册为WMI数据提供者
12.2.3处理系统控制IRP
12.2.4QueryWmiRegInfo处理程式
12.2.5QueryWmiDataBlock处理
程式
12.2.6SetWmiDataBlock处理程式
12.2.7SetWmiDataItem处理程式
12.2.8ExecuteWmiMethod处理程式
12.2.9触发WMI事件
12.3WMI运行
12.4小结
第13章 事件的报告
13.1概述
13.2讯息档案
13.3注册为事件源
13.4 事件的产生
13.5Wdm3事件的测试
13.6小结
第14章 DebugPrint
14.1设计规範
14.2设计实现
14.3测试驱动程式代码
14.3.1系统执行绪
14.3.2事件
14.3.3同步
14.3.4产生跟蹤事件
14.3.5鍊表
14.3.6最后的代码
14.4DebugPrint驱动程式
14.4.1设计
14.4.2DebugPrint设备
14.4.3读伫列
14.4.4取消IRP
14.4.5写算法
14.4.6读算法
14.5DebugPrintMonitor
14.5.1设计
14.5.2Win32工作者执行绪
14.5.3DebugPrint_Event类
14.5.4Win32重叠I/O
14.6小结
第15章 WdmIo和PHDIo驱动程式
15.1Win32接口
15.1.1IOCTL
15.1.2命令
15.2LPT印表机驱动程式的应用程式
15.2.1并行连线埠
15.2.2WdmoIoTest
15.2.3PHDIoTest
15.2.4发出命令
15.2.5使用中断驱动的I/O写数据
15.2.6使用中断驱动的I/O读数据
15.3测试WdmIo
15.3.1安装WdmIo
15.3.2LogConfig节
15.3.3运行WdmIoTest
15.4测试PHDIo
15.4.1安装PHDIo
15.4.2运行PHDIoTest
15.5WdmIo和PHDIo的分析
15.5.1使用哪一个
15.5.2缺陷
15.6小结
第16章 硬体I/OIRP的排队
16.1硬体访问
16.2IRP伫列
16.2.1设备伫列
16.2.2StartI0例程
16.3命令的处理
16.4取消排队的IRP
16.4.1排队IRP的取消
16.4.2WdmIoIRP取消策略
16.4.3另一种取消策略
16.5“清理”IRP的处理
16.6测试、取消和清理
16.7补充设备伫列
16.8小结
第17章 中断驱动的I/O
17.1中断处理
17.1.1中断的性质
17.1.2连线到中断
17.2WdmIo读与写
17.3中断处理程式
17.4延迟过程调用
17.4.1使用基本的DPC
17.4.2自定义DPC
17.5定时器
17.5.11秒间隔定时器
17.5.2WdmIo逾时
17.5.3自定义定时器
17.6小结
第18章 NT硬体
18.1NT式驱动程式的构造
18.1.1DDK问题
18.1.2编译环境
18.1.3NT式驱动程式结构
18.2设备的创建与删除
18.3资源分配
18.4资源转换
18.5资源的查找
18.5.1自动检测的硬体
18.5.2查询可配置汇流排
18.5.3最后的资源查找技术
18.6小结
第19章 WDM系统驱动程式
19.1客户驱动程式的编写
19.2过滤驱动程式
19.3NT层次
19.4小结
第20章 通用串列汇流排
20.1设备类
20.2概述
20.2.1WindowsUSB驱动程式接口
20.2.2传输类型
20.3USB低级结构
20.3.1USB设备
20.3.2USB信号
20.3.3汇流排信号
20.3.4低层协定
20.3.5电源
20.4USB设备框架
20.4.1汇流排枚举
20.4.2标準控制事务
20.4.3描述符
20.4.4驱动程式安装
20.4.5USB类
20.4.6新增功能
20.5客户驱动程式设计
20.5.1端点类型选择
20.5.2等时设备
20.6小结
第21章 USB驱动程式接口
21.1USB客户驱动程式设计
21.1.1UsbKbd的使用
21.1.2UsbKbd安装
21.1.3头档案和库
21.2USBDI的IOCTL
21.2.1URB
21.2.2USBDI的调用
21.2.3多个USBDI调用
21.3访问USB
21.3.1初始化USB设备
21.3.2发出URB
21.3.3选择接口
21.3.4其他初始化
21.3.5取消配置的选择
21.3.6中断传输
21.3.7控制传输
21.3.8其他问题
21.4UsbKbd的测试
21.5USBDI结构参考
21.6USBDIURB参考
21.6.1URB设定功能
21.6.2URB传输功能
21.6.3URB预设管道功能
21.6.4URB等时帧功能
21.7小结
第22章 人工输入设备模型
22.1HID概述
22.2HID模型
22.2.1报告
22.2.2用法
22.2.3获取HID功能
22.3HID模型表示
22.3.1HID描述符
22.3.2设备属性
22.3.3报告描述符
22.6小结
第23章 HID客户
23.1HID类驱动程式
23.1.1HID类驱动程式特徵
23.1.2WindowsHID客户程式
23.1.3头档案
23.1.4HIDUSB小驱动程式
23.1.5USB启动设备
23.2用户态HID客户程式
23.2.1查找HID设备
23.2.2读取HID功能
23.2.3读取输入报告
23.2.4传送输出报告
23.2.5其他用户态HID客户函式
23.2.6运行HidKbdUser
23.3核心态HID客户程式
23.3.1客户程式类型
23.3.2PnP通知
23.3.3HidKbd设备
23.3.4读取HID功能
23.3.5HidKbd设备的打开和关闭
23.3.6数据的读写
23.3.7其他HID类IOCTL
23.4小结
附录A 信息资源
附录B PC99
附录C 直接存储器访问
附录D 辞彙表
前言
第1章 引言
1.1Windows驱动程式模型
1.1.1WDM与NT式驱动程式
1.1.2可用的驱动程式
1.1.3本书配套光碟
1.1.4设备驱动程式软体工具
1.1.5未讨论的驱动程式类型
1.2新的思维方式
1.2.1设备驱动程式环境
1.2.2术语与资源
1.3Win32程式接口
1.3.1基本I/O
1.3.2重叠的异步请求
1.3.3环境
1.3.4设备特定的限制
1.3.5驱动程式的其他Win32访问
1.4小结
第2章 概述
2.1设备驱动程式的组成部分
2.1.1驱动程式入口点和回调例程
2.1.2分发例程
2.1.3创建设备
2.1.4硬体资源分配
2.1.5调用其他驱动程式
2.1.6串列硬体的访问
2.1.7访问硬体
2.1.8硬体问题
2.1.9电源管理
2.1.10WMI
2.1.11NT事件报告
2.1.12系统执行绪
2.2设备驱动程式的类型
2.2.1Windows概述
2.2.2I/O请求处理
2.2.3即插即用设备栈
2.2.4标準汇流排驱动程式和类驱动
程式
2.2.5驱动程式栈举例
2.3驱动程式选择
2.3.1现成的驱动程式
2.3.2使用标準驱动程式
2.3.3作业系统
2.3.4分层的设备驱动程式
2.3.5单一驱动程式
2.3.6建议的和可选的功能
2.4WDM的合理性
2.4.1一个核心模型
2.4.2複杂性
2.4.3即插即用与分层
2.4.4功能範围
2.4.5开发环境
2.4.6开发者支持
2.5小结
第3章 设备驱动程式设计
3.1引言
3.2驱动程式设计指南
3.2.1文档
3.2.2好的设计
3.3核心调用
3.3.1核心宏
3.3.2核心对象
3.3.3驱动程式例程名称
3.4处理器模型
3.4.1处理器模式
3.4.2中断级
3.5使用记忆体
3.5.1记忆体池
3.5.2旁视列表
3.5.3其他的记忆体考虑
3.5.4访问用户应用程式记忆体
3.5.5DMA
3.6IRP处理
3.6.1IRP参数
3.6.2在驱动程式栈中处理IRP
3.7小结
第4章 WDM驱动程式环境
4.1系统设定
4.1.1DDK
4.1.2本书配套光碟软体的安装
4.1.3捷径
4.2实用程式
4.2.1DOS框
4.2.2计算机管理控制台
4.2.3NTDevices小程式
4.2.4硬体嚮导
4.2.5注册表编辑器
4.2.6INF编辑器
4.2.7WBEM
4.2.8调试程式
4.2.9NT和Windows20凹实用程式
4.2.10本书配套光碟上的工具
4.3驱动程式目标
4.4驱动程式语言和库
4.5好的代码
4.6build实用程式
4.6.1makefile
4.6.2SOURCES
4.6.3makefile档案
4.6.4build目录
4.6.5其他build步骤
4.6.6DIRS档案
4.7VC++项目
4.7.1Makefile构造环境
4.7.2MakeDrvr
4.7.3目录
4.7.4常见任务
4.8Wdm1驱动程式代码
4.8.1编译器选项
4.8.2头档案
4.8.3驱动程式进入模组
4.8.4版本资源
4.8.5访问注册表
4.8.6UNICODE_STRING结构
4.9安装Wdml
4.10安装详细信息
4.10.1INF档案
4.10.2注册表
4.10.3Windows2000对象
4.11设备和驱动程式的管理
4.11.1添加另一个设备
4.11.2删除设备
4.11.3更新驱动程式
4.11.4NT式驱动程式
4.12小结
第5章 设备接口
5.1设备
5.1.1设备访问
5.1.2后续的I/O
5.2设备对象和设备扩展
5.3设备对象的创建和删除
5.3.1创建设备
5.3.2删除设备
5.4设备名
5.5设备接口
5.6Win32设备接口访问
5.6.1得到设备的接口名
5.6.2运行WdmlTest
5.7小结
第6章 测试与调试
6.1测试、测试、再测试
6.2驱动程式测试
6.2.1测试所有的函式是否都工作
6.2.2Windows2000和Windows98
6.2.3多处理器
6.2.4取消I/O
6.3调试
6.4调试技术
6.4.1递增式的开发
6.4.2检查版本
6.4.3Windows2000还是Windows98
6.5调试工具
6.5.1Windows2000事件
6.5.2跟蹤工具
6.5.3驱动程式验证程式
6.5.4调试程式
6.6DebugPrint
6.6.1使用DebugPrint
6.6.2使用DebugPrintMonitor
6.6.3在驱动程式中使用DebugPrint
6.7关于调试的说明
6.7.1更新驱动程式
6.7.2驱动程式在引导时失败
6.7.3驱动程式依赖性
6.7.4未取消的IRP
6.8错误检查代码
6.9小结
第7章 分发例程
7.1分发例程IRP
7.2I/O请求包
7.2.1分发例程处理
7.2.2可重入性
7.2.3IRP处理
7.2.4IRP完成
7.3IRP结构
7.4常用的IRP参数
7.4.1“创建”IRP,IRO_MJ_CREATE
7.4.2“关闭”IRP,IRP_MJ_CLOSE
7.4.3“读”IRP,IRP_MJ_READ
7.4.4“写”IRP,IRP_MJ_WRITE
7.4.5IOCTLIRP,IRP_MJ_IOCTL
7.5用户缓冲区
7.5.1缓冲I/O
7.5.2直接I/O
7.5.3其他I/O方式
7.5.4DeviceIoControl缓冲区
7.6Wdm1分发例程
7.6.1创建和关闭
7.6.2写
7.6.3读
7.6.4IOCTL
7.6.5系统控制
7.7小结
第8章 即插即用与设备栈
8.1设计概述
8.1.1设计目标
8.1.2即插即用系统
8.2即插即用讯息
8.3设备枚举
8.3.1固定的和可配置的设备
8.3.2枚举
8.3.3设备树
8.4设备栈
8.4.1PnP支持与设备栈
8.4.2设备对象
8.5上沿
8.5.1USB键盘例子
8.5.2功能设备对象和物理设备对象
8.5.3上沿定义
8.6小结
第9章 即插即用的实现
9.1实现即插即用
9.1.1添加和删除设备
9.1.2基本的PnP处理程式
9.1.3沿设备栈向下传递不支持
的IRP
9.1.4PnP状态和讯息
9.1.5状态标誌
9.1.6保持IRP
9.1.7打开的句柄
9.1.8处理PnPIRP的时间
9.1.9实现资源分配
9.2测试Wdm2
9.3其他PnPIRP
9.3.1IRP_MN_DEVICE_USAGE_
NOTIFICATION
9.3.2IRP_MN_FILTER_RESOUR CE_
REQUIREMENTS
9.3.3IRP_MN_QUERY_BUS_
INFORMATION
9.3.4IRP_MN_QUERY_
CAPABILITIES
9.3.5IRP_MN_QUEPY_DEVICE_
RELATIONS
9.3.61RP_MN_QUERY_DEVICE_
TEXT
9.3.7IRP_MN_QUERY_ID
9.3.8IRP_MN_QUERY_
INTERFACE
9.3.9IRP_MN_QUERY_PNP_DEVICI
STATE
9.3.101RP_MN_QUERY_RESOURCE
REQUIREMENTS
9.3.11IRP_ MN_QU ERY_
RESOURCES
9.3.12IRP_MN_READ_CONFIG
9.3.131RP_MN_SET_L OC K
9.3.14IRP_MN_WRITE_CONFIG
9.4PnP通知
9.4.1Win32PnP通知
9.4.2设备驱动程式PnP通知
9.4.3通知请求驱动程式互动
9.5高级的即插即用
9.5.1汇流排驱动程式
9.5.2传送PnPIRP
9.5.3设备属性
9.6小结
第10章 电源管理
10.1电源概述
10.1.1ACPI
10.1.2Win32电源管理
10.1.3Wdm2Power应用程式
10.1.4电池小类驱动程式
10.2系统电源策略
10.3电源IRP
10.4处理电源IRP
10.4.1处理设备电源IRP
10.4.2处理系统电源IRP
10.4.3不处理电源IRP
10.5设备电源策略主
10.6处理“设定电源”IRP
10.6.1设定系统电源状态
10.6.2设定设备电源状态
10.6.3SetPowerState
10.7分发例程的电源处理
10.8测试Wdm2电源功能
10.9设备功能
10.10高级电源管理
10.10.1唤醒
10.10.2电源顺序
10.10.3停止系统关闭事件
10.10.4电源通知
10.10.5检测系统电源状态变化
10.10.6 WMI支持
10.11小结
第11章 安装
11.1WDM驱动程式的安装过程
11.2INF档案
11.3标準节
11.4 INF档案的节层次结构
11.4.1Wdm1Free.INF
11.4.2InfEdit
11.5跨平台和WDMINF档案
11.5.1在Windows2000中安装Wdm1
11.5.2Windows2000服务注册表项
11.6查找驱动程式
11.6.1硬体ID
11.6.2兼容ID
11.6.3重複枚举
11.7NT式驱动程式的安装
11.7.1安装过程
11.7.2驱动程式的装入顺序
11.7.3NT4控制台Devices小程式
11.7.4Windows2000 设备管理
11.7.5Windows98设备管理
11.7.6REG档案
11.8在Windows98中安装NT式驱动
程式
11.9小结
第12章 WMI
12.1概述
12.1.1 WBEM模型
12.1.2WDM提供者
12.2一个WMI驱动程式
12.2.1WMI构造环境
12.2.2注册为WMI数据提供者
12.2.3处理系统控制IRP
12.2.4QueryWmiRegInfo处理程式
12.2.5QueryWmiDataBlock处理
程式
12.2.6SetWmiDataBlock处理程式
12.2.7SetWmiDataItem处理程式
12.2.8ExecuteWmiMethod处理程式
12.2.9触发WMI事件
12.3WMI运行
12.4小结
第13章 事件的报告
13.1概述
13.2讯息档案
13.3注册为事件源
13.4 事件的产生
13.5Wdm3事件的测试
13.6小结
第14章 DebugPrint
14.1设计规範
14.2设计实现
14.3测试驱动程式代码
14.3.1系统执行绪
14.3.2事件
14.3.3同步
14.3.4产生跟蹤事件
14.3.5鍊表
14.3.6最后的代码
14.4DebugPrint驱动程式
14.4.1设计
14.4.2DebugPrint设备
14.4.3读伫列
14.4.4取消IRP
14.4.5写算法
14.4.6读算法
14.5DebugPrintMonitor
14.5.1设计
14.5.2Win32工作者执行绪
14.5.3DebugPrint_Event类
14.5.4Win32重叠I/O
14.6小结
第15章 WdmIo和PHDIo驱动程式
15.1Win32接口
15.1.1IOCTL
15.1.2命令
15.2LPT印表机驱动程式的应用程式
15.2.1并行连线埠
15.2.2WdmoIoTest
15.2.3PHDIoTest
15.2.4发出命令
15.2.5使用中断驱动的I/O写数据
15.2.6使用中断驱动的I/O读数据
15.3测试WdmIo
15.3.1安装WdmIo
15.3.2LogConfig节
15.3.3运行WdmIoTest
15.4测试PHDIo
15.4.1安装PHDIo
15.4.2运行PHDIoTest
15.5WdmIo和PHDIo的分析
15.5.1使用哪一个
15.5.2缺陷
15.6小结
第16章 硬体I/OIRP的排队
16.1硬体访问
16.2IRP伫列
16.2.1设备伫列
16.2.2StartI0例程
16.3命令的处理
16.4取消排队的IRP
16.4.1排队IRP的取消
16.4.2WdmIoIRP取消策略
16.4.3另一种取消策略
16.5“清理”IRP的处理
16.6测试、取消和清理
16.7补充设备伫列
16.8小结
第17章 中断驱动的I/O
17.1中断处理
17.1.1中断的性质
17.1.2连线到中断
17.2WdmIo读与写
17.3中断处理程式
17.4延迟过程调用
17.4.1使用基本的DPC
17.4.2自定义DPC
17.5定时器
17.5.11秒间隔定时器
17.5.2WdmIo逾时
17.5.3自定义定时器
17.6小结
第18章 NT硬体
18.1NT式驱动程式的构造
18.1.1DDK问题
18.1.2编译环境
18.1.3NT式驱动程式结构
18.2设备的创建与删除
18.3资源分配
18.4资源转换
18.5资源的查找
18.5.1自动检测的硬体
18.5.2查询可配置汇流排
18.5.3最后的资源查找技术
18.6小结
第19章 WDM系统驱动程式
19.1客户驱动程式的编写
19.2过滤驱动程式
19.3NT层次
19.4小结
第20章 通用串列汇流排
20.1设备类
20.2概述
20.2.1WindowsUSB驱动程式接口
20.2.2传输类型
20.3USB低级结构
20.3.1USB设备
20.3.2USB信号
20.3.3汇流排信号
20.3.4低层协定
20.3.5电源
20.4USB设备框架
20.4.1汇流排枚举
20.4.2标準控制事务
20.4.3描述符
20.4.4驱动程式安装
20.4.5USB类
20.4.6新增功能
20.5客户驱动程式设计
20.5.1端点类型选择
20.5.2等时设备
20.6小结
第21章 USB驱动程式接口
21.1USB客户驱动程式设计
21.1.1UsbKbd的使用
21.1.2UsbKbd安装
21.1.3头档案和库
21.2USBDI的IOCTL
21.2.1URB
21.2.2USBDI的调用
21.2.3多个USBDI调用
21.3访问USB
21.3.1初始化USB设备
21.3.2发出URB
21.3.3选择接口
21.3.4其他初始化
21.3.5取消配置的选择
21.3.6中断传输
21.3.7控制传输
21.3.8其他问题
21.4UsbKbd的测试
21.5USBDI结构参考
21.6USBDIURB参考
21.6.1URB设定功能
21.6.2URB传输功能
21.6.3URB预设管道功能
21.6.4URB等时帧功能
21.7小结
第22章 人工输入设备模型
22.1HID概述
22.2HID模型
22.2.1报告
22.2.2用法
22.2.3获取HID功能
22.3HID模型表示
22.3.1HID描述符
22.3.2设备属性
22.3.3报告描述符
22.6小结
第23章 HID客户
23.1HID类驱动程式
23.1.1HID类驱动程式特徵
23.1.2WindowsHID客户程式
23.1.3头档案
23.1.4HIDUSB小驱动程式
23.1.5USB启动设备
23.2用户态HID客户程式
23.2.1查找HID设备
23.2.2读取HID功能
23.2.3读取输入报告
23.2.4传送输出报告
23.2.5其他用户态HID客户函式
23.2.6运行HidKbdUser
23.3核心态HID客户程式
23.3.1客户程式类型
23.3.2PnP通知
23.3.3HidKbd设备
23.3.4读取HID功能
23.3.5HidKbd设备的打开和关闭
23.3.6数据的读写
23.3.7其他HID类IOCTL
23.4小结
附录A 信息资源
附录B PC99
附录C 直接存储器访问
附录D 辞彙表
转载请注明出处海之美文 » Windows WDM设备驱动程式开发指南