IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX_V2 IOCTL (usbioctl.h)
IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX_V2 I/O コントロールは、ハブ上の特定の USB ポートでサポートされているプロトコルに関する情報を取得するために、アプリケーションによって送信されます。 要求は、ポートの速度機能も取得します。
IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX_V2 は、ユーザー モードの I/O 制御要求です。 この要求は、ユニバーサル シリアル バス (USB) ハブ デバイス (GUID_DEVINTERFACE_USB_HUB) を対象とします。
メジャー コード
[入力バッファー]
AssociatedIrp.SystemBuffer は 、呼び出し元によって割り当てられた USB_NODE_CONNECTION_INFORMATION_EX_V2 構造体を指します。
入力時に、呼び出し元は構造体メンバーを次のように設定する必要があります。
- 呼び出し元は 、ConnectionIndex メンバーにポート番号を指定する必要があります。 ConnectionIndex は、1 ~ n の範囲の値である必要があります。 ここで、n は、前の IOCTL_USB_GET_HUB_INFORMATION_EX I/O 制御要求で取得された最大ポート番号です。
- 呼び出し元は 、SupportedUsbProtocols メンバーにプロトコル フラグを設定する必要があります ( USB_PROTOCOLSを参照)。 Windows 8では、SupportedUsbProtocols.Usb300 を 1 に設定する必要があります。 それ以外の場合、要求はSTATUS_INVALID_PARAMETERエラー コードで失敗します。
- 呼び出し元は、 Length メンバーを、 AssociatedIrp.SystemBuffer が指す呼び出し元割り当てバッファーのサイズ (バイト単位) に設定する必要があります。 バッファーのサイズは である
sizeof (USB_NODE_CONNECTION_INFORMATION_EX_V2)
必要があります。
入力バッファーの長さ
Parameters.DeviceIoControl.InputBufferLength メンバーは、呼び出し元によって割り当てられたバッファーのサイズ (バイト単位) を示します。そのサイズは と等しくなりますsizeof(USB_NODE_CONNECTION_INFORMATION_EX_V2)
。
出力バッファー
出力時に、AssociatedIrp.SystemBuffer によって指されるUSB_NODE_CONNECTION_INFORMATION_EX_V2構造体に、接続されているデバイスに関する情報が入力されます。
出力バッファーの長さ
Parameters.DeviceIoControl.OutputBufferLength メンバーは、出力バッファー SystemBuffer のサイズをバイト単位で示します。
ステータス ブロック
USB スタックは、要求が成功した場合に Irp-IoStatus.Status> をSTATUS_SUCCESSに設定します。 それ以外の場合、USB ドライバー スタックは 、STATUS_INVALID_PARAMETER やSTATUS_INSUFFICIENT_RESOURCESなどの適切なエラー状態に状態を設定します。
注釈
IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX_V2要求は、指定されたポートのハブに対してクエリを実行して、ポートでサポートされているプロトコルと、デバイスがポートに接続されている場合の動作速度機能に関する情報を取得します。
要求が正常に完了すると、USB_NODE_CONNECTION_INFORMATION_EX_V2 の SupportedUsbProtocols.Usb200 メンバーは、ポートでサポートされているプロトコルを示します。 たとえば、ポートが USB 2.0 仕様で定義されたシグナリング プロトコルをサポートしている場合、 SupportedUsbProtocols.Usb200 は 1 に設定されます。
高速および高速ハブの 場合、SupportedUsbProtocols.Usb110 は常に 1 に設定されることに注意してください。 高速対応ハブは、分割トランザクションとトランザクション トランスレーターを介して USB 1.1 プロトコルをサポートするためです。 USB 3.0 ポートでは、SupportedUsbProtocols.Usb110 が 1 に設定されることはありません。
さらに、要求では、ポートと接続されているデバイスが SuperSpeed で動作できるかどうかを判断します。 その場合、 Flags.DeviceIsSuperSpeedCapableOrHigher メンバーは 1 に設定されます。 ポートに接続されているデバイスが現在 SuperSpeed で動作している場合、 DeviceIsOperatingAtSuperSpeedOrHigher は 1 に設定されます。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 8 |
サポートされている最小のサーバー | サポートなし |
Header | usbioctl.h (Usbioctl.h を含む) |