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 プロトコルをサポートするためです。 SUPPORTedUsbProtocols.Usb110 は、USB 3.0 ポートでは 1 に設定されません。
さらに、要求によって、ポートと接続されているデバイスが SuperSpeed で動作できるかどうかも決定されます。 その場合、Flags.DeviceIsSuperSpeedCapableOrHigher メンバーは 1 に設定されます。 ポートに接続されているデバイスが現在 SuperSpeed で動作している場合は、DeviceIsOperatingAtSuperSpeedOrHigher が 1 に設定されます。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 8 |
サポートされる最小サーバー | サポートされていません |
ヘッダー | usbioctl.h (Usbioctl.h を含む) |