структура USB_NODE_CONNECTION_INFORMATION_EX (usbioctl.h)
Структура USB_NODE_CONNECTION_INFORMATION_EX используется вместе с запросом IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX для получения сведений о подключении, связанном с указанным USB-портом.
Синтаксис
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_DEVICE_DESCRIPTOR , которая сообщает о дескрипторе USB-устройства, возвращенном подключенным устройством во время перечисления.
CurrentConfigurationValue
Содержит идентификатор, используемый с запросом SetConfiguration для указания текущей конфигурации устройства, подключенного к указанному порту. Объяснение этого значения см. в разделе 9.4.7 в спецификации универсальной последовательной шины 3.1, доступной в библиотеке документов USB.
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 указывает скорость устройства.
Элемент Speed структуры USB_NODE_CONNECTION_INFORMATION_EX является UCHAR и может указать любое из значений перечислителя USB_DEVICE_SPEED . Элемент Speed поддерживает до UsbHighSpeed (USB 2.0). Чтобы определить, поддерживает ли устройство UsbSuperSpeed (USB 3.0), используйте структуру USB_NODE_CONNECTION_INFORMATION_EX_V2 .
В следующем фрагменте кода C++ из примера USBView показано, как определить, поддерживает ли устройство 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) |
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по