структура USB_PORT_CONNECTOR_PROPERTIES (usbioctl.h)

Структура USB_PORT_CONNECTOR_PROPERTIES используется с запросом IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES управления вводом-выводом для получения сведений о порте в определенном концентраторе SuperSpeed.

Синтаксис

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 запрос на управление вводом-выводом. Запрос получает наибольший номер порта в концентраторе.

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_PROPERTIESUsbPortProperties содержит побитовое ИЛИ одного или нескольких флагов, указывающих свойства и возможности порта. Флаги определяются в USB_PORT_PROPERTIES.

CompanionIndex

Индекс порта-компаньона, связанного с запрашиваемым портом (определяется connectionIndex). Если имеется n сопутствующих портов, эти порты индексируются от 0 до n–1.

Если порт сопоставляется с несколькими портами-компаньоном, значение CompanionIndex увеличивается для нескольких запросов, чтобы перечислить все сопутствующие порты.

Для концентраторов SuperSpeed и контроллеров xHCI значение CompanionIndex всегда равно 0. Дополнительные сведения см. в подразделе "Примечания".

CompanionPortNumber

Номер порта компаньона, заданного параметром CompanionIndex. Если запрашиваемый порт совместно использует USB-соединитель с портом на другом концентраторе, CompanionPortNumber указывает номер порта на другом концентраторе.

Примечание Для корневого концентратора контроллера xHCI общий порт может находиться в том же концентраторе.
 

CompanionHubSymbolicLinkName[1]

Строка Юникода, содержащая символьную ссылку концентратора-компаньона, который использует usb-соединитель. Если концентратор-компаньон существует, значение CompanionPortNumber не равно нулю. В противном случае значение 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 должен иметь возможность обрабатывать высокоскоростные, высокоскоростные, полноскоростные и низкоскоростные устройства. Спецификация USB 3.0 требует, чтобы контроллер xHCI содержал два независимых блока выполнения для скорости шины USB 3.0 и USB 2.0. Блок выполнения USB 3.0 обрабатывает трафик SuperSpeed в шине. Блок выполнения USB 2.0 должен обрабатывать трафик с низкой, полной и высокой скоростью. Это требование может быть выполнено разными способами. Например, в одной реализации блок выполнения USB 2.0 может иметь либо подчиненную единицу выполнения USB 1.1, либо подчиненный концентратор USB 2.0. Другая единица выполнения обрабатывает трафик SuperSpeed в шине. Например, в одной реализации контроллер xHCI может иметь подчиненный концентратор USB 2.0 (вместо хост-контроллера USB 2.0) с транслятором транзакций для обработки полноскоростного и низкоскоростного трафика. Этот подчиненный концентратор совместно использует соединители с портами корневого концентратора SuperSpeed.

В случаях, когда USB-соединители являются общими, порт, запрашиваемый через запрос IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES управления вводом-выводом, указывается в ConnectionIndex, а порт, который использует соединитель, называется портом-компаньоном. После выполнения запроса для определения маршрутизации портов в таких случаях можно использовать элементы CompanionIndex, CompanionPortNumber и CompanionHubSymbolicLinkNameUSB_PORT_CONNECTOR_PROPERTIES .

Если с запрашиваемым портом связано несколько портов-компаньонов, приложение может получить сведения обо всех портах-компаньонах, отправляя запрос IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES управления вводом-выводом в цикле и приумножал значение CompanionIndex в каждой итерации. Если все порты перечислены и нет порта, связанного с индексом, указанным в CompanionIndex, запрос завершается успешно, параметр CompanionPortNumber имеет значение 0, а CompanionHubSymbolicLinkName имеет значение NULL.

Чтобы получить сведения о скорости работы устройства, подключенного к определенному порту, приложение может отправить запрос IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX_V2 управления вводом-выводом.

Требования

Требование Значение
Минимальная версия клиента 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