USB 设备仿真体系结构

本文介绍 USB 设备仿真 (UDE) 的体系结构,它可以模拟 USB 主机控制器和连接设备的行为。 通过使用 UDE,非 USB 硬件可以使用 Windows 中的 USB 主机端驱动程序与上层进行通信。

UDE 驱动程序

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 客户端驱动程序加载的设备堆栈:

UDE 设备堆栈的示意图。