структура 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) |