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 허브에 n 개의 포트가 있는 경우 포트 번호는 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에는 포트의 속성과 기능을 나타내는 하나 이상의 플래그의 비트 OR가 포함됩니다. 플래그는 USB_PORT_PROPERTIES 정의됩니다.

CompanionIndex

쿼리되는 포트와 연결된 도우미 포트의 인덱스입니다( ConnectionIndex에 의해 지정됨). n개 도우미 포트가 있는 경우 해당 포트는 0에서 n-1로 인덱싱됩니다.

포트가 둘 이상의 도우미 포트에 매핑되는 경우 CompanionIndex 는 여러 쿼리에서 증가하여 모든 도우미 포트를 열거합니다.

SuperSpeed 허브 및 xHCI 컨트롤러의 경우 CompanionIndex 는 항상 0입니다. 자세한 내용은 설명 부분을 참조하세요.

CompanionPortNumber

CompanionIndex에서 제공하는 도우미 포트의 포트 번호입니다. 쿼리되는 포트가 다른 허브의 포트와 USB 커넥터를 공유하는 경우 CompanionPortNumber 는 다른 허브의 포트 번호를 나타냅니다.

참고 xHCI 컨트롤러의 루트 허브의 경우 공유 포트가 동일한 허브에 있을 수 있습니다.
 

CompanionHubSymbolicLinkName[1]

USB 커넥터를 공유하는 도우미 허브의 기호 링크를 포함하는 유니코드 문자열입니다. 도우미 허브가 있는 경우 CompanionPortNumber 는 0이 아닌 것입니다. 그렇지 않으면 CompanionHubSymbolicLinkName [0]이NULL입니다.

설명

SuperSpeed 3.0 허브에는 두 개의 독립적인 허브 구현이 포함되어 있습니다. 하나는 USB 2.0 디바이스용이며 허브 구현은 기존 2.0 허브와 유사합니다. 다른 허브는 SuperSpeed 디바이스에만 사용됩니다. USB 2.0 및 3.0 버스 신호는 전기적으로 독립적이므로 두 허브가 동시에 작동합니다. 따라서 SuperSpeed 허브가 호스트에 연결되면 Windows는 두 허브를 독립적으로 열거합니다. 한 허브는 USB 2.0 포트와 연결되고 다른 허브는 USB 3.0 포트와 연결됩니다. 각 허브에는 다운스트림 및 업스트림 포트가 있습니다. USB 물리적 커넥터는 이러한 두 허브 구현과 연결된 포트 간에 공유됩니다.

마찬가지로 xHCI 컨트롤러는 SuperSpeed, 고속, 전속 및 저속 디바이스를 처리할 수 있어야 합니다. USB 3.0 사양을 사용하려면 xHCI 컨트롤러가 USB 3.0 및 USB 2.0 버스 속도에 대해 각각 두 개의 독립적인 실행 단위를 포함해야 합니다. USB 3.0 실행 장치는 버스의 SuperSpeed 트래픽을 처리합니다. USB 2.0 실행 장치는 낮음, 전체 및 고속 트래픽을 처리해야 합니다. 이러한 요구 사항은 여러 가지 방법으로 충족될 수 있습니다. instance 경우 한 구현에서 USB 2.0 실행 단위에는 다운스트림 USB 1.1 실행 단위 또는 다운스트림 USB 2.0 허브가 있을 수 있습니다. 다른 실행 단위는 버스의 SuperSpeed 트래픽을 처리합니다. instance 경우 한 구현에서 xHCI 컨트롤러는 전속 및 저속 트래픽을 처리하는 트랜잭션 변환기를 사용하여 다운스트림 USB 2.0 허브(USB 2.0 호스트 컨트롤러 대신)를 가질 수 있습니다. 해당 다운스트림 허브는 SuperSpeed 루트 허브의 포트와 커넥터를 공유합니다.

USB 커넥터가 공유되는 경우 IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES I/O 컨트롤 요청을 통해 쿼리되는 포트는 ConnectionIndex에 의해 지정되고 커넥터를 공유하는 포트를 도우미 포트라고 합니다. 요청이 완료되면 USB_PORT_CONNECTOR_PROPERTIES CompanionIndex, CompanionPortNumberCompanionHubSymbolicLinkName 멤버를 사용하여 이러한 경우 포트 라우팅을 확인할 수 있습니다 .

둘 이상의 도우미 포트가 쿼리되는 포트와 연결된 경우 애플리케이션은 루프에서 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