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