다음을 통해 공유


USB_NODE_CONNECTION_INFORMATION_EX 구조체(usbioctl.h)

USB_NODE_CONNECTION_INFORMATION_EX 구조는 표시된 USB 포트와 연결된 연결에 대한 정보를 얻기 위해 IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX 요청과 함께 사용됩니다.

구문

typedef struct _USB_NODE_CONNECTION_INFORMATION_EX {
  ULONG                 ConnectionIndex;
  USB_DEVICE_DESCRIPTOR DeviceDescriptor;
  UCHAR                 CurrentConfigurationValue;
  UCHAR                 Speed;
  BOOLEAN               DeviceIsHub;
  USHORT                DeviceAddress;
  ULONG                 NumberOfOpenPipes;
  USB_CONNECTION_STATUS ConnectionStatus;
  USB_PIPE_INFO         PipeList[0];
} USB_NODE_CONNECTION_INFORMATION_EX, *PUSB_NODE_CONNECTION_INFORMATION_EX;

멤버

ConnectionIndex

포트 수를 지정하는 1보다 크거나 같은 값을 포함합니다.

DeviceDescriptor

열거 중에 연결된 디바이스에서 반환된 USB 디바이스 설명자를 보고하는 형식 USB_DEVICE_DESCRIPTOR 구조체를 포함합니다.

CurrentConfigurationValue

지정된 포트에 연결된 디바이스의 현재 구성을 지정하기 위해 SetConfiguration 요청과 함께 사용되는 ID를 포함합니다. 이 값에 대한 설명은 USB 문서 라이브러리에서 사용할 수 있는 유니버설 직렬 버스 3.1 사양의 섹션 9.4.7을 참조하세요.

Speed

디바이스의 속도를 나타내는 USB_DEVICE_SPEED 형식의 값을 포함합니다.

DeviceIsHub

TRUE이면 포트에 연결된 디바이스가 허브임을 나타냅니다.

DeviceAddress

포트에 연결된 디바이스의 USB 할당 버스 상대 주소를 포함합니다.

NumberOfOpenPipes

포트와 연결된 열린 USB 파이프 수를 나타냅니다.

ConnectionStatus

연결 상태 나타내는 형식 USB_CONNECTION_STATUS 열거자를 포함합니다.

PipeList[0]

포트와 연결된 열린 파이프를 설명하는 형식 USB_PIPE_INFO 구조체의 배열을 포함합니다. 파이프 설명에는 파이프의 일정 오프셋과 연결된 엔드포인트 설명자가 포함됩니다. 이 정보는 대역폭 사용량을 계산하는 데 사용할 수 있습니다.

설명

연결된 디바이스가 없으면 IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX 포트에 대한 정보만 반환합니다. 디바이스가 포트에 연결된 경우 IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX 포트 및 연결된 디바이스에 대한 정보를 반환합니다.

USB_NODE_CONNECTION_INFORMATION_EX 구조체는 확장된 버전의 USB_NODE_CONNECTION_INFORMATION. 두 구조체는 하나의 멤버를 제외하고 동일합니다. 확장 구조에서 Speed 멤버는 디바이스 속도를 나타냅니다.

USB_NODE_CONNECTION_INFORMATION_EX 구조체의 Speed 멤버는 UCHAR이며 USB_DEVICE_SPEED 열거자의 값을 지정할 수 있습니다. Speed 멤버는 최대 UsbHighSpeed(USB 2.0)를 지원합니다. 디바이스가 UsbSuperSpeed(USB 3.0)를 지원하는지 확인하려면 USB_NODE_CONNECTION_INFORMATION_EX_V2 구조를 사용합니다.

USBView 샘플의 다음 C++ 코드 조각은 디바이스가 UsbSuperSpeed(USB 3.0)를 지원하는지 확인하는 방법을 보여 줍니다.

// Since the USB_NODE_CONNECTION_INFORMATION_EX is used to display
// the device speed, but the hub driver doesn't support indication
// of superspeed, we overwrite the value if the super speed
// data structures are available and indicate the device is operating
// at SuperSpeed.

if (connectionInfoEx->Speed == UsbHighSpeed 
    && connectionInfoExV2 != NULL 
    && (connectionInfoExV2->Flags.DeviceIsOperatingAtSuperSpeedOrHigher ||
        connectionInfoExV2->Flags.DeviceIsOperatingAtSuperSpeedPlusOrHigher))
{
    connectionInfoEx->Speed = UsbSuperSpeed;
}

요구 사항

요구 사항
헤더 usbioctl.h(Usbioctl.h 포함)

추가 정보