为 USB 主控制器开发 Windows 驱动程序的概述
用途 本部分介绍 Windows 操作系统中的支持,用于开发 (USB) 主机控制器驱动程序的通用串行总线,该驱动程序与 Microsoft 提供的 usb 主机控制器扩展 (UCX) 进行通信。 如果开发不符合规格的 xHCI 主控制器,或者开发自定义的非 xHCI 硬件(例如虚拟主控制器),则可编写可以与 UCX 通信的主控制器驱动程序。 例如,可以考虑支持 USB 设备的无线坞。 电脑通过无线坞与 USB 设备通信,使用基于 TCP 的 USB 作为传输方式。 USB 主控制器扩展 (UCX) USB 主机控制器扩展是系统提供的驱动程序 (Ucx01000.sys) 。 此驱动程序通过使用Windows driver framework编程接口实现为框架类扩展。 主机控制器驱动程序充当该类扩展的客户端驱动程序。 当主机控制器驱动程序处理硬件操作和事件、电源管理和 PnP 事件时,UCX 充当抽象接口,该接口将请求发送到主机控制器驱动程序,并执行其他任务。 UCX 是Windows 中的一个 USB 主机端驱动程序。 它作为主机控制器设备堆栈中的 FDO 加载。 USB 主机控制器驱动程序 UCX 是可扩展的,旨在支持各种主机控制器驱动程序。 Windows 提供了以 USB xHCI 主机控制器为目标的 xHCI 驱动程序 (Usbxhci.sys) 。 主机控制器驱动程序是 UCX 的客户端,作为 内核模式驱动程序框架 写入 (KMDF) 驱动程序。 Microsoft 提供的二进制文件 若要编写主机控制器驱动程序,需要 UCX (Ucx01000.sys) 和存根库 (Ucx01000) 。 存根库位于 Windows 驱动程序包 (WDK) 中。 库执行两个主要功能。
开发工具 WDK 包含驱动程序开发所需的资源,如标头、库、工具和示例。 |
开始 .。。 阅读用于描述体系结构 (设备、主机控制器和中心) 的不同组件的预期行为的官方规范。 适用于通用串行总线的 xHCI:规范官方通用串行总线文档了解 UCX 的体系结构 熟悉 Microsoft 提供的 USB 驱动程序堆栈: Windows 体系结构中的 usb 主机端驱动程序: usb 主机控制器扩展 (UCX)熟悉 UCX 对象和句柄 UCX 扩展了 WDF 对象功能,以定义其自己的特定于 USB 的 UCX 对象。 有关 WDF 对象的更多详细信息,请参阅 框架对象简介。 对于对任何底层主机控制器驱动程序的请求排队,UCX 将使用这些对象。 有关详细信息,请参阅 UCX 对象和主机控制器驱动程序使用的句柄。
文档部分 主机控制器驱动程序的根中心回调函数UCX 处理与根集线器相关的大多数操作。 这允许 USB 集线器驱动程序与根集线器交互,其方式与与常规中心交互的方式相同。 主机控制器驱动程序可以注册它的回调函数。 处理 USB 主控制器驱动程序中的 I/O 请求UCX 会审传入 USB 请求块 (URBs) ,然后将其转发到正确的终结点队列。 在主机控制器驱动程序中配置 USB 端点主机控制器驱动程序在 UCX 管理与终结点关联的队列以及将终结点编程到控制器硬件中扮演着一个角色。 USB 主控制器扩展 (UCX) 参考提供客户端驱动程序使用的 i/o 请求、支持例程、结构和接口的规范。 这些例程和相关的数据结构在 WDK 头文件中定义。 UCX 称为 框架类扩展。 主机控制器驱动程序称为 " 客户端驱动程序"。 |