引言WDM 是“Windows 驱动程序模型”的简称,即“Windows Driver Model”。实际上它是一系列集成在操作系统之中的常规系统服务集,用于简化硬件驱动程序的编写,并保证它们在 Windows 98/Me/2000 中的二进制兼容,WDM(Windows Driver Model)模型是从 WinNT3.51 和 WinNT4 的内核模式设备驱动程序发展而来的。WDM 主要的变化是增加了对即插即用、电源管理、Windows Management Interface(WMI)、设备接口的支持。WDM 模型的主要目标,是实现能够跨平台使用、更安全、更灵活、编制更简单的 Windows 设备驱动程序。WDM 采用了“基于对象”的技术,建立了一个分层的驱动程序结构。WDM 首先在 Windows98 中实现,在 Windows2000 中得到了进一步的完善,并在后续开发的 Windows 操作系统中都将存在,比如 Windows Me 和Windows XP。微软在通过 WDM 模型的引入,希望减轻设备驱动程序的开发难度和周期,逐渐规范设备驱动程序的开发,应该说,WDM 将成为以后设备驱动程序的主流。USB 技术的全称是通用串行总线,是英文 Universal Serial Bus 的缩写。它是一种应用在 PC 领域的新型接口技术,虽然 USB2.0 已经被广泛应用,但是初始的 Windows 2000 是支持 USB1.0 协议的,如果希望支持 USB2.0 协议,需要在微软网站上下载升级包。实际上,对于键盘或者鼠标来说,传输的速度非常小,使用 USB1.0 或者是USB2.0 的区别并不大。闪存盘之类的存储设备,则需要重视传输速度。USB1.0 版本主要应用在鼠标,键盘等 HID 设备上,这就是本驱动程序中引用的头文件版本是 USB1.0的原因。本毕业设计的目的是希望对 Windows 2000 操作系统体系结构和驱动程序开发以及调试等方面的问题有一个比较深入的了解,对 USB 协议和 USB 体系有做一个比较深入的了解。并开发出一个 USB 键盘驱动。这个 USB 键盘驱动程序应当可以替代系统原有的键盘驱动程序,并可以正常工作。本论文设计的驱动程序在 Windows 2000 下运行,开发环境为 VC6.0 和 DDK2000。应用程序Win32 子系统设备驱动硬件抽象层硬件IO 管理器用户模式内核模式Win32API 调用系统服务接口传递 IRP 给驱动程序派遣函数HAL 调用平台相关操作1 WDM 驱动程序模型概述驱动程序在任何操作系统下都和系统内核有着密切的关系。设备驱动程序是一个包含了许多操作系统可调用例程的容器,这句 Walter Oney 曾说过的话,抽象的描述了设备驱...