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

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

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

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