摘 要
WDM(Win32 Driver Model)是Microsoft公司力推的一种符合Windows2k/XP下的内核模式驱动程序的分层体系结构的驱动程序模式。它源于 Windows NT的分层32位设备驱动程序模型,它支持更多的特性,如即插即用( PnP )、电源管理( PM )、Windows管理诊断( WMI)和 NT 事件。
论文以USB为例介绍了WDM驱动程序的基本概念和结构,并结合实例阐述了用Driverworks开发工具开发Windows 2000环境下WDM USB设备驱动程序的方法,并给出关键例程以及程序的主要代码。
关键词:Windows设备驱动程序, Driverworks,通用串行总线
目 录
第1章 Windows 2000和WDM驱动程序 1
1.1 Windows 2000组件 1
1.2 WIN2000驱动器的种类 3
1.3 Windows 2000和WDM驱动程序的设计目标 4
1.3.1 移植性 4
1.3.2 可配置性 4
1.3.3 永远抢占优先和永远中断 5
1.3.4 多处理器安全 5
1.3.5 基于对象 6
1.3.6 带有可重用IRP的包驱动I/O 7
1.3.7 支持异步I/O 7
1.4 WDM驱动程序模型 8
1.5 设备和驱动程序的层次结构 9
1.6 中断级别IRQL 10
第2章WDM 驱动程序基本例程 11
2.1 DriverEntry例程 11
2.2 AddDevice 例程 12
2.3 PnP例程 13
2.4 Power例程 14
2.5 Dispatch例程 14
2.6 StartIo和队列管理例程 16
2.7 Unload例程 16
2.8 Cancel例程 17
2.9 Reinitialize例程 17
第3章 驱动程序设计开发环境的构建 19
3.1 硬件环境 19
3.2 软件环境 19
3.3 开发环境构建 19
第4章 USB程序设计 22
4.1 功能说明 22
4.2 框架设置 22
4.3 USB设备驱动程序 29
第5章 结 论 33
参考文献 34
致 谢 35
附录A: 软件使用说明书 36