USB 3.0 數據結構
本主題描述USB 3.0主機控制器驅動程式所使用的數據結構。 了解這些數據結構可協助您有效地使用 USB 3.0 和 RCDRKD 調試程序擴充功能命令。 這裡呈現的數據結構具有與 USB 3.0 規格一致的名稱。 熟悉 USB 3.0 規格可進一步增強您使用擴充功能命令對 USB 3.0 驅動程式進行偵錯的能力。
USB 3.0 主機控制器驅動程式是USB 3.0核心驅動程式堆疊的一部分。 如需詳細資訊,請參閱 USB驅動程式堆疊架構。
每個USB 3.0主機控制器最多可以有255部裝置,而每個裝置最多可以有31個端點。 下圖顯示代表一個主機控制器和連線裝置的一些數據結構。
裝置內容基底陣列
裝置內容基底陣列是裝置內容結構的指標陣列。 連接到主機控制器的每個裝置都有一個裝置內容結構。 元素 1 到 255 指向裝置內容結構。 元素 0 指向主控制器的內容結構。
裝置內容和位置內容
裝置內容結構會保存端點內容結構的指標陣列。 裝置上每個端點都有一個端點內容結構。 元素 1 到 31 指向端點內容結構。 元素 0 指向位置內容結構,此結構會保存裝置的內容資訊。
命令通道
命令通道是由軟體用來將命令傳遞至主控制器。 其中一些命令會導向主控制器,有些命令會導向連線到主機控制器的特定裝置。
事件通道
主機控制器會使用事件通道將事件傳遞至軟體。 也就是說,事件通道是主機控制器用來通知驅動程式動作已完成的結構。
Doorbell Register Array
Doorbell Register Array 是門鈴緩存器陣列,每個裝置都連線到主控制器。 元素 1 到 255 是門鈴緩存器。 元素 0 表示命令通道中是否有擱置的命令。
軟體會通知主機控制器,其具有裝置相關或端點相關工作,方法是將內容資訊寫入裝置的門鈴緩存器中。
下圖會繼續到上圖右邊。 它會顯示代表單一端點的其他數據結構。
傳輸通道
每個端點都有一或多個傳輸通道。 傳輸通道是傳輸要求區塊的數位, (TRB) 。 每個 TRB 都會指向一個連續數據區塊, (最多 64 KB) ,以單一單位的形式在硬體和記憶體之間傳輸。
當USB 3.0核心堆疊從USB用戶端驅動程式收到傳輸要求時,它會識別傳輸的端點內容,然後將傳輸要求中斷至一或多個傳輸描述元, (TD) 。 每個 TD 都包含一或多個 TRB。
端點內容
端點內容結構會保存單一端點的內容資訊。 它也有 Dequeue 和 Enqueue 成員,用來追蹤硬體取用 TRB 的位置,以及軟體將新增 TRB 的位置。