USB 主控制器驱动程序的根集线器回调函数

UCX 执行根中心管理。 它模拟和管理虚拟控制与中断终结点。 当主控制器驱动程序创建根中心对象时,UCX 会创建这些虚拟终结点。

USB 集线器驱动程序与根集线器的交互方式与常规集线器设备交互的方式相同。 但是,主控制器驱动程序不必直接处理发送到根中心以控制终结点和中断终结点的请求。 UCX 处理这些请求。 UCX 调用由主机控制器驱动程序实现的回调函数,以便它可以返回有关主机控制器端口当前状态的相关信息。 完成这些回调函数后,基础 UCX 请求将完成并返回到中心驱动程序。

收到根中心的中断传输时,UCX 会将请求设置为挂起。 当在其中一个根中心端口上检测到更改时,主机控制器驱动程序将调用 UcxRootHubPortChanged。 然后,UCX 调用驱动程序的 EVT_UCX_ROOTHUB_INTERRUPT_TX 回调,驱动程序指示已更改的端口。 此时,UCX 将完成挂起的请求返回到中心驱动程序。 中心驱动程序将控制传输发送到根中心,以获取发出更改信号的端口的端口状态。 UCX 将该控制传输请求设置为挂起,并调用驱动程序的 EVT_UCX_ROOTHUB_CONTROL_URB 回调函数。 在实现中,返回根中心端口的当前状态,包括指示设备已连接。 UCX 完成对中心驱动程序的控制传输请求,设备枚举将继续。