WDM 驱动程序层:示例
本部分介绍一组可能的用于 USB 硬件的 WDM 驱动程序,以演示 WDM 驱动程序层。
下图显示了 USB 游戏杆的示例 PnP 硬件配置。
在此图中,USB 游戏杆插入 USB 集线器上的端口。 此示例中的 USB 集线器位于 USB 主控制器板上,并插入 USB 主机控制器板上的单个端口。 USB 主机控制器插入 PCI 总线。 从 PnP 的角度来看,USB 集线器、USB 主机控制器和 PCI 总线都是总线设备,因为它们都提供端口。 游戏杆不是总线设备。
下图显示了上图中可能为 USB 游戏杆硬件加载的一组示例驱动程序。
从上图底部开始,示例堆栈中的驱动程序包括:
驱动 PCI 总线的 PCI 驱动程序。 这是一个 PnP 总线驱动程序。 PCI 总线驱动程序由 Microsoft 随系统一起提供。
USB 主控制器的总线驱动程序实现为类/微型类驱动程序对。 USB 主机控制器类和微型类驱动程序由 Microsoft 随系统提供。
驱动 USB 集线器的 USB 集线器总线驱动程序。 USB 集线器驱动程序由 Microsoft 随系统提供。
游戏杆设备的三个驱动程序;其中一个是类/微类对。
功能驱动程序(游戏杆设备的main驱动程序)是 HID 类驱动程序/HID USB 微型类驱动程序对。 (HID 表示“人机接口设备”。) HID USB 小类驱动程序支持 HID 设备的 USB 特定语义,依赖于 HID 类驱动程序 DLL 来实现常规 HID 支持。
函数驱动程序可以特定于特定设备,或者,与 HID 一样,函数驱动程序可以为一组设备提供服务。 在此示例中,HID 类驱动程序/HID USB 微型类驱动程序对为 USB 总线系统上任何符合 HID 标准的设备提供服务。 HID 类驱动程序/HID 1394 微型类驱动程序对将为 1394 总线上任何符合 HID 的设备提供服务。
函数驱动程序可由设备供应商或 Microsoft 编写。 在此示例中,函数驱动程序 (HID 类/HID USB 微型类驱动程序对) 由 Microsoft 编写。
在此示例中,游戏杆设备有两个筛选器驱动程序:添加宏按钮功能的上层类筛选器和使游戏杆能够模拟鼠标设备的较低级别设备筛选器。
上层筛选器由需要筛选游戏杆 I/O 的人员编写,较低级别的筛选器驱动程序由游戏杆供应商编写。
内核模式和用户模式 HID 客户端和应用程序不是驱动程序,但出于完整性而显示。