IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES IOCTL (usbioctl.h)
IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES I/O 控制要求是由應用程式傳送,以擷取 USB 中樞上特定埠的相關信息。
IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES 是使用者模式 I/O 控制要求。 此要求以通用序列總線 (USB) 中樞裝置 (GUID_DEVINTERFACE_USB_HUB) 為目標。
主要程序代碼
輸入緩衝區
AssociatedIrp.SystemBuffer 指向呼叫端配置的 USB_PORT_CONNECTOR_PROPERTIES 結構。 呼叫端必須設定結構成員,如下所示:
- 呼叫端必須指定 ConnectionIndex 成員中要查詢之埠的埠號碼。 ConnectionIndex 必須是介於 1 到 n 範圍內的值,其中 n 是先前 IOCTL_USB_GET_HUB_INFORMATION_EX I/O 控制要求中擷取的最高埠號碼。
-
呼叫端必須指定 CompanionIndex 成員。 對於 SuperSpeed 中樞,呼叫端必須將 CompanionIndex 成員設定為 0。
呼叫端可以使用 CompanionIndex 來取得與所查詢埠相關聯的埠號碼。 如果有多個隨附埠與埠相關聯,若要取得所有埠號碼,應用程式可以在迴圈中傳送要求。 從 CompanionIndex 設定為 0 開始,並在每次反覆運算中遞增 CompanionIndex 值,直到要求完成時, CompanionPortNumber 設定為 0 且 CompanionHubSymbolicLinkName 為 NULL 為止。
輸入緩衝區長度
Parameters.DeviceIoControl.InputBufferLength 成員會指出 AssociatedIrp.SystemBuffer 所指向之呼叫端配置緩衝區的大小,以位元組為單位。 如需詳細資訊,請參閱。
輸出緩衝區
在輸出上,USB_PORT_CONNECTOR_PROPERTIES由 AssociatedIrp.SystemBuffer 所指向,會填入與埠相關聯之實體連接器的相關信息。
輸出緩衝區長度
Parameters.DeviceIoControl.OutputBufferLength 成員會指出輸出緩衝區 SystemBuffer 的大小,以位元組為單位。
狀態區塊
如果要求成功,USB 堆疊會將 Irp-IoStatus.Status> 設定為STATUS_SUCCESS。 否則,USB 堆疊會將 [狀態 ] 設定為適當的錯誤狀況,例如STATUS_INVALID_PARAMETER或STATUS_INSUFFICIENT_RESOURCES。 如果中樞尚未啟動或無法運作,要求會傳回STATUS_UNSUCCESSFUL。
備註
如果這類中樞與指定的埠相關聯,呼叫端必須提供足以保存 USB_PORT_CONNECTOR_PROPERTIES 結構和隨附中樞符號連結名稱的緩衝區。 若要取得要配置的緩衝區大小,呼叫端必須傳送 IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES 要求。 在要求中, AssociatedIrp.SystemBuffer 必須是呼叫端配置的 USB_PORT_CONNECTOR_PROPERTIES 結構和 Parameters.DeviceIoControl.InputBufferLength 必須是 sizeof(USB_PORT_CONNECTOR_PROPERTIES)
。 成功完成時,USB_PORT_CONNECTOR_PROPERTIES的 ActualLength 成員會指出緩衝區的實際大小。 如果符號連結名稱存在,則收到的值會包含儲存連結名稱的字串大小。
根據 ActualLength 值,呼叫端接著可以配置緩衝區,並再次傳送 IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES 要求。 要求完成之後,緩衝區會填入埠資訊,而 CompanionHubSymbolicLinkName 成員是 Unicode 字串,其中包含隨附中樞的符號連結名稱。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 8 |
最低支援的伺服器 | 都不支援 |
標頭 | usbioctl.h (包含 Usbioctl.h) |