WDM 模型(Windows Driver Model) 是微软公司为 Windows98 和
Windows2000 的驱动程序设计的一种架构,在 WDM 驱动程序模型中,每个硬件设备
至少有两个驱动程序。其中一个为功能驱动程序,它了解硬件工作的所有细节,负
责初始化 I/O 操作,处理 I/O 操作完成时所带来的中断事件,为用户提供与设备相
适合的控制方式;另一个驱动程序为总线驱动程序,它负责管理硬件与计算机的连
接,总线驱动程序由操作系统提供。Window2000 系统结构图如图 2 所示,应用程
序调用 Windows 子系统 Win32 API,这个调用由系统服务接口作用到 I/ O 管理
器,I/ O 管理器进行必要的参数匹配和操作安全性检查,然后由这个请求构造出
合适的 IRP(I/O Request Package) 。IRP 是 DDK 定义的一个数据结构,具有丰富
的成员,对于单层驱动程序,直接接受并执行这个请求包,完成对硬件的操作,从
而完成 I/ O 请求工作,并将执行的结果通过 I/ O 管理器返回应用程序;对于多
层驱动则将驱动程序分成若干层,每层驱动再把I/ O 请求划分成更简单的请求,
以传给更下层的驱动执行。