USB 设备仿真体系结构
本文介绍 USB 设备仿真 (UDE) 的体系结构,它可以模拟 USB 主机控制器和连接设备的行为。 通过使用 UDE,非 USB 硬件可以使用 Windows 中的 USB 主机端驱动程序与上层进行通信。
UDE 驱动程序
在上图中,
- USB 中心驱动程序 (Usbhub3.sys) 是一个内核模式驱动程序框架 (KMDF) 驱动程序。 中心驱动程序负责管理 USB 中心及其端口、枚举和创建 USB 设备的物理设备对象 (PDO),以及可能连接到其下游端口的其他中心。
- USB 主机控制器扩展 (Ucx01000.sys) 是堆栈中中心驱动程序的抽象层,提供了一种向底层主机控制器驱动程序队列请求的通用机制。
- UDE 类扩展 (UdeCx) 通过客户端实现的回调函数调用到 UDE 客户端驱动程序中。 该类扩展为客户端驱动程序提供了创建 UDE 对象和管理这些对象的例程。
- UDE 客户端驱动程序管理硬件,从而与 Windows 驱动程序框架 (WDF) 和 UDE API 交互。 上边缘使用 USB 结构与 WDF 和 UDE 类扩展进行通信。 而其下边缘通过硬件接口与硬件通信。
- 自定义硬件:例如,可将 PCI 硬件模拟用作 USB 设备。
UDE 设备节点
下面是为 UDE 客户端驱动程序加载的设备堆栈: