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

Структура USB_DESCRIPTOR_REQUEST используется с запросом управления IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION ввода-вывода для получения одного или нескольких дескрипторов для устройства, связанного с указанным индексом подключения. Поля в этой структуре описаны в спецификации универсальной последовательной шины 3.1, доступной в библиотеке документов USB.

Синтаксис

typedef struct _USB_DESCRIPTOR_REQUEST {
  ULONG  ConnectionIndex;
  struct {
    UCHAR  bmRequest;
    UCHAR  bRequest;
    USHORT wValue;
    USHORT wIndex;
    USHORT wLength;
  } SetupPacket;
  UCHAR  Data[0];
} USB_DESCRIPTOR_REQUEST, *PUSB_DESCRIPTOR_REQUEST;

Члены

ConnectionIndex

Порт, дескрипторы которого извлекаются.

SetupPacket

Члены структуры SetupPacket , определенные в соответствии с официальной спецификацией. См. раздел 9.3.

SetupPacket.bmRequest

Тип запроса USB-устройства (стандарт, класс или поставщик), направление передачи данных и тип получателя данных (устройство, интерфейс или конечная точка). При входе в запрос управления IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION ввода-вывода USB-стек игнорирует значение bmRequest и вставляет значение 0x80. Это значение указывает на стандартный запрос USB-устройства и передачу данных с устройства на узел.

SetupPacket.bRequest

Номер запроса. При входе в запрос управления IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION ввода-вывода USB-стек игнорирует значение bRequest и вставляет значение 0x06. Это значение указывает на запрос GET_DESCRIPTOR.

SetupPacket.wValue

При входе в IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION управляющий запрос ввода-вывода вызывающий объект должен указать тип дескриптора для извлечения в высоком байте wValue и индекс дескриптора в нижнем байте. В следующей таблице перечислены возможные типы дескрипторов. Эти типы констант определяются в заголовке usbspec.h, включенном в комплект драйверов Для Windows.

Тип дескриптора Значение
USB_DEVICE_DESCRIPTOR_TYPE Указывает стеку USB вернуть дескриптор устройства.
USB_CONFIGURATION_DESCRIPTOR_TYPE Указывает стеку USB вернуть дескриптор конфигурации и все дескрипторы интерфейса, конечной точки, класса и поставщика, связанные с текущей конфигурацией.
USB_STRING_DESCRIPTOR_TYPE Указывает стеку USB вернуть указанный дескриптор строки.
USB_INTERFACE_DESCRIPTOR_TYPE Указывает стеку USB вернуть указанный дескриптор интерфейса.
USB_ENDPOINT_DESCRIPTOR_TYPE Указывает стеку USB вернуть указанный дескриптор конечной точки.

SetupPacket.wIndex

Индекс дескриптора для конкретного устройства, который требуется извлечь.

SetupPacket.wLength

Длина данных, передаваемых на втором этапе передачи элемента управления.

Data[0]

В выходных данных IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION запроса элемента управления вводом-выводом этот элемент содержит извлеченные дескрипторы.

Комментарии

Если вызывающий объект задает значение USB_CONFIGURATION_DESCRIPTOR_TYPE в элементе wValue , выходной буфер должен быть достаточно большим, чтобы вместить все дескрипторы, связанные с текущей конфигурацией, в противном случае запрос завершится ошибкой.

Требования

Требование Значение
Заголовок usbioctl.h (включая Usbioctl.h)

См. также раздел

IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION

Структуры USB