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 に設定して開始し、要求が CompanionPortNumber が 0 に設定され、CompanionHubSymbolicLinkName が NULL になるまで、各イテレーションで CompanionIndex 値をインクリメントします。
入力バッファーの長さ
Parameters.DeviceIoControl.InputBufferLength メンバーは、AssociatedIrp.SystemBuffer が指す呼び出し元によって割り当てられたバッファーのサイズをバイト単位で示します。 詳細については、「備考」を参照してください。
出力バッファー
出力時に、AssociatedIrp.SystemBuffer が指すUSB_PORT_CONNECTOR_PROPERTIESには、ポートに関連付けられている物理コネクタに関する情報が入力されます。
出力バッファーの長さ
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 |
サポートされている最小のサーバー | サポートなし |
Header | usbioctl.h (Usbioctl.h を含む) |