Поделиться через


структура 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 (include Usbioctl.h)

См. также

IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION

СТРУКТУРЫ USB