USB 3.0 数据结构

本主题介绍 USB 3.0 主机控制器驱动程序使用的数据结构。 了解这些数据结构有助于有效地使用 USB 3.0RCDRKD 调试器扩展命令。 此处提供的数据结构的名称与 USB 3.0 规范一致。 熟悉 USB 3.0 规范将进一步增强使用扩展命令调试 USB 3.0 驱动程序的能力。

USB 3.0 主控制器驱动程序是 USB 3.0 核心驱动程序堆栈的一部分。 有关详细信息,请参阅 USB 驱动程序堆栈体系结构

每个 USB 3.0 主机控制器最多可以有 255 个设备,每个设备最多可以有 31 个终结点。 下图显示了表示一个主机控制器和连接的设备的一些数据结构。

显示 USB 3.0 数据结构的示意图,该结构表示主机控制器以及具有设备上下文、槽上下文和终结点上下文的连接设备。

设备上下文基数组

设备上下文基数组是指向设备上下文结构的指针数组。 连接到主机控制器的每个设备都有一个设备上下文结构。 元素 1 到 255 指向设备上下文结构。 元素 0 指向主机控制器的上下文结构。

设备上下文和槽上下文

设备上下文结构包含指向终结点上下文结构的指针数组。 设备上每个终结点都有一个终结点上下文结构。 元素 1 到 31 指向终结点上下文结构。 元素 0 指向一个槽上下文结构,该结构保存设备的上下文信息。

命令环

软件使用命令环将命令传递给主控制器。 其中一些命令针对主机控制器,有些命令定向到连接到主机控制器的特定设备。

事件环

主机控制器使用事件环将事件传递给软件。 也就是说,事件环是主机控制器用来通知驱动程序操作已完成的结构。

门铃寄存器数组

门铃寄存器阵列是门铃寄存器的数组,每个门铃寄存器对应一个连接到主机控制器的设备。 元素 1 到 255 是门铃寄存器。 元素 0 指示命令环中是否存在挂起的命令。

软件通过将上下文信息写入设备的门铃寄存器,通知主机控制器它执行与设备相关的或终结点相关的工作。

下图继续位于上图的右侧。 它显示表示单个终结点的其他数据结构。

说明 USB 3.0 数据结构的示意图,其中包含包含多个具有数据和 TD 的 TRB 的终结点上下文。

传输环

每个终结点都有一个或多个传输环。 传输环是传输请求块的数组, (TRB) 。 每个 TRB 指向一个连续数据块, (最多 64 KB) ,这些数据将以单个单元的形式在硬件和内存之间传输。

当 USB 3.0 核心堆栈收到来自 USB 客户端驱动程序的传输请求时,它会标识传输的终结点上下文,然后将传输请求分解为一个或多个传输描述符 (TD) 。 每个 TD 包含一个或多个 TRB。

终结点上下文

终结点上下文结构保存单个终结点的上下文信息。 它还具有 DequeueEnqueue 成员,用于跟踪硬件使用 TRB 的位置以及软件添加 TRB 的位置。

另请参阅

Windows 8中的 USB 调试创新