次の方法で共有


USB_PORT_CONNECTOR_PROPERTIES構造体 (usbioctl.h)

USB_PORT_CONNECTOR_PROPERTIES 構造体は、特定の SuperSpeed ハブ上のポートに関する情報を取得するために、IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES I/O 制御要求と共に使用されます。

構文

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 ハブに ポートが 1 つ 存在する場合、ポートには 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 には、ポートのプロパティと機能を示す 1 つ以上のフラグのビットごとの または が含まれます。 フラグは USB_PORT_PROPERTIESで定義されます。

CompanionIndex

クエリ対象のポートに関連付けられているコンパニオン ポートのインデックス (ConnectionIndex で指定)。 コンパニオン ポートが n 個 場合、これらのポートのインデックスは 0 から n-1 になります。

ポートが複数のコンパニオン ポートにマップされている場合、CompanionIndex は複数のクエリでインクリメントされ、すべてのコンパニオン ポートが列挙されます。

SuperSpeed ハブと xHCI コントローラーの場合、CompanionIndex は常に 0 です。 詳細については、「解説」を参照してください。

CompanionPortNumber

CompanionIndex によって指定されるコンパニオン ポートポート番号。 クエリ対象のポートが別のハブ上のポートと USB コネクタを共有している場合、CompanionPortNumber は、もう一方のハブ上のポート番号を示します。

xHCI コントローラーのルート ハブの場合、共有ポートは同じハブ上にある可能性があります。
 

CompanionHubSymbolicLinkName[1]

USB コネクタを共有するコンパニオン ハブのシンボリック リンクを含む Unicode 文字列。 コンパニオン ハブが存在する場合、CompanionPortNumber は 0 以外です。 それ以外 場合、CompanionHubSymbolicLinkName [0] は NULL

備考

SuperSpeed 3.0 ハブには、2 つの独立したハブ実装が含まれています。 1 つは USB 2.0 デバイス用であり、ハブの実装は既存の 2.0 ハブに似ています。 もう 1 つのハブは、SuperSpeed デバイス専用です。 USB 2.0 および 3.0 バス信号は電気的に独立しているため、これらのハブは両方とも同時に動作します。 そのため、SuperSpeed ハブがホストに接続されている場合、Windows は 2 つのハブを個別に列挙します。1 つのハブは USB 2.0 ポートに、もう 1 つのハブは USB 3.0 ポートに関連付けられています。 各ハブには、ダウンストリーム ポートとアップストリーム ポートがあります。 USB 物理コネクタは、これら 2 つのハブ実装に関連付けられているポート間で共有されます。

同様に、xHCI コントローラーは、SuperSpeed、高速、フルスピード、および低速のデバイスを処理できる必要があります。 USB 3.0 仕様では、xHCI コントローラーに、USB 3.0 および USB 2.0 バス速度用にそれぞれ 2 つの独立した実行ユニットを含める必要があります。 USB 3.0 実行ユニットは、バス上の SuperSpeed トラフィックを処理します。 USB 2.0 実行ユニットは、低速、フル、高速のトラフィックを処理する必要があります。 その要件は、さまざまな方法で満たすことができます。 たとえば、1 つの実装では、USB 2.0 実行ユニットには、ダウンストリーム USB 1.1 実行ユニットまたはダウンストリーム USB 2.0 ハブを含めることができます。 もう 1 つの実行ユニットは、バス上の SuperSpeed トラフィックを処理します。 たとえば、1 つの実装では、xHCI コントローラーは、トランザクション トランスレーターを備えたダウンストリーム USB 2.0 ハブ (USB 2.0 ホスト コントローラーではなく) を持ち、全速度および低速のトラフィックを処理できます。 そのダウンストリーム ハブは、SuperSpeed ルート ハブのポートとコネクタを共有します。

USB コネクタが共有されている場合、IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES I/O 制御要求を介して照会されるポートは ConnectionIndexで指定され、コネクタを共有するポートは コンパニオン ポートと呼ばれます。 要求が完了すると、CompanionIndexCompanionPortNumber、および CompanionHubSymbolicLinkName メンバーを使用して、USB_PORT_CONNECTOR_PROPERTIES のポート ルーティングを特定できます。

クエリ対象のポートに複数のコンパニオン ポートが関連付けられている場合、アプリケーションはループで 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

IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES

USB_HUB_INFORMATION_EX

USB_PORT_CONNECTOR_PROPERTIES

USB_PORT_PROPERTIES