USB_PORT_CONNECTOR_PROPERTIES結構 (usbioctl.h)
USB_PORT_CONNECTOR_PROPERTIES 結構會與IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES I/O 控制要求搭配使用,以擷取特定 SuperSpeed 中樞上埠的相關信息。
語法
typedef struct _USB_PORT_CONNECTOR_PROPERTIES {
ULONG ConnectionIndex;
ULONG ActualLength;
USB_PORT_PROPERTIES UsbPortProperties;
USHORT CompanionIndex;
USHORT CompanionPortNumber;
WCHAR CompanionHubSymbolicLinkName[1];
} USB_PORT_CONNECTOR_PROPERTIES, *PUSB_PORT_CONNECTOR_PROPERTIES;
成員
ConnectionIndex
要求中正在查詢的埠號碼。 ConnectionIndex 是由呼叫端所指定。 如果 SuperSpeed 中樞上有 n 個埠,埠會從 1 到 n 編號。 若要取得埠數目,呼叫端會先傳送 IOCTL_USB_GET_HUB_INFORMATION_EX I/O 控制要求。 要求會擷取中樞上的最高埠號碼。
ActualLength
保存整個 USB_PORT_CONNECTOR_PROPERTIES 結構所需的位元組數目,包括包含隨附中樞符號連結名稱的字串。 該字串會儲存在 CompanionHubSymbolicLinkName 成員中。 ActualLength 值是由IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES要求傳回,並由呼叫端用來配置緩衝區來保存已接收的資訊。 如需詳細資訊,請參閱 IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES。
UsbPortProperties
埠屬性。 完成 IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES 要求時, UsbPortProperties 包含一或多個旗標的位 OR ,指出埠的屬性和功能。 旗標定義於 USB_PORT_PROPERTIES。
CompanionIndex
與 ConnectionIndex) 所指定之埠相關聯的隨附埠索引 (。 如果有 n 個隨附埠,這些埠會從 0 編製索引到 n–1。
如果埠對應至多個隨附埠, CompanionIndex 會在多個查詢上遞增,以列舉所有隨附埠。
對於 SuperSpeed 中樞和 xHCI 控制器, CompanionIndex 一律為 0。 如需詳細資訊,請參閱<備註>。
CompanionPortNumber
CompanionIndex 所提供的隨附埠埠號碼。 如果查詢的埠與其他中樞上的埠共用 USB 連接器, CompanionPortNumber 會指出另一個中樞上埠的埠號碼。
CompanionHubSymbolicLinkName[1]
Unicode 字串,其中包含共用USB連接器之隨附中樞的符號連結。 如果隨附中樞存在, CompanionPortNumber 為非零。 否則, CompanionHubSymbolicLinkName [0] 為 NULL。
備註
SuperSpeed 3.0 中樞包含兩個獨立中樞實作。 其中一個適用於 USB 2.0 裝置,而中樞實作類似於現有的 2.0 中樞。 另一個中樞僅適用於 SuperSpeed 裝置。 由於USB 2.0和3.0總線訊號與電力無關,因此這兩個中樞都會同時運作。 因此,當 SuperSpeed 中樞連線到主機時,Windows 會獨立列舉兩個中樞;一個中樞與USB 2.0埠相關聯,另一個中樞則與USB 3.0埠相關聯。 每個中樞都有其下游和上游埠。 USB 實體連接器會在與這兩個中樞實作相關聯的埠之間共用。
同樣地,xHCI 控制器必須能夠處理 SuperSpeed、高速、全速和低速裝置。 USB 3.0 規格需要 xHCI 控制器包含兩個針對USB 3.0和USB 2.0 總線速度的獨立執行單位。 USB 3.0 執行單位會處理總線上的超級流量。 USB 2.0 執行單位必須處理低、完整和高速流量。 該需求可以透過許多方式達成。 例如,在一個實作中,USB 2.0 執行單位可以有下游 USB 1.1 執行單位或下游 USB 2.0 中樞。 另一個執行單位會處理總線上的超級流量。 例如,在一個實作中,xHCI 控制器可以有下游 USB 2.0 中樞 (,而不是使用交易轉譯器來處理全速和低速流量的 USB 2.0 主機控制器) 。 該下游中樞會與 SuperSpeed 根中樞的埠共用連接器。
在共用USB連接器的情況下,透過 IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES I/O 控制要求查詢的埠是由 ConnectionIndex 所指定,而共用連接器的 埠稱為隨附埠。 完成要求時,USB_PORT_CONNECTOR_PROPERTIES的 CompanionIndex、CompanionPortNumber 和 CompanionHubSymbolicLinkName 成員可用來判斷在這些情況下的埠路由。
如果有多個隨附埠與正在查詢的埠相關聯,應用程式可以在迴圈中傳送 IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES I/O 控制要求,並在每次反覆專案中遞增 CompanionIndex 值,以取得所有隨附埠的相關信息。 列舉所有埠,而且沒有與 CompanionIndex 中指定的索引相關聯的埠時,要求會順利完成, CompanionPortNumber 會設定為 0, 而 CompanionHubSymbolicLinkName 為 NULL。
若要取得連接至特定埠之裝置的作業速度相關信息,應用程式可以傳送 IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX_V2 I/O 控制要求。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 8 |
最低支援的伺服器 | 都不支援 |
標頭 | usbioctl.h (包含 Usbioctl.h) |
另請參閱
IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX_V2