структура _URB_CONTROL_VENDOR_OR_CLASS_REQUEST (usb.h)
Структура _URB_CONTROL_VENDOR_OR_CLASS_REQUEST используется драйверами USB-клиента для выдачи команды поставщика или класса устройству, интерфейсу, конечной точке или другому определенному устройству целевому объекту.
Синтаксис
struct _URB_CONTROL_VENDOR_OR_CLASS_REQUEST {
struct _URB_HEADER Hdr;
PVOID Reserved;
ULONG TransferFlags;
ULONG TransferBufferLength;
PVOID TransferBuffer;
PMDL TransferBufferMDL;
struct _URB *UrbLink;
struct _URB_HCD_AREA hca;
UCHAR RequestTypeReservedBits;
UCHAR Request;
USHORT Value;
USHORT Index;
USHORT Reserved1;
};
Члены
Hdr
Указатель на структуру _URB_HEADER, указывающую сведения о заголовке URB.
функции Hdr.Function должна быть одной из URB_FUNCTION_CLASS_XXX или URB_FUNCTION_VENDOR_XXX GET_STATUS, а Hdr.Length должна быть sizeof(_URB_CONTROL_VENDOR_OR_CLASS_REQUEST)
.
Reserved
TransferFlags
Указывает ноль, один или сочетание следующих флагов:
Ценность | Значение |
---|---|
|
Устанавливается для запроса данных с устройства. Чтобы передать данные на устройство, этот флаг должен быть снят. Флаг должен быть задан, если канал является каналом прерывания передачи. |
|
Устанавливается, чтобы контроллер узла не возвращал ошибку при получении пакета от устройства, которое меньше максимального размера пакета для конечной точки. Максимальный размер пакета для конечной точки сообщается в bMaxPacketSize0 член структуры USB_DEVICE_DESCRIPTOR (дескриптор устройства) для конечной точки управления по умолчанию. Для конечной точки управления, отличной от по умолчанию, максимальный размер пакета устанавливается в wMaxPacketSize член структуры USB_ENDPOINT_DESCRIPTOR (дескриптор конечной точки).
Когда контроллер узла получает пакет, длина которого короче wMaxPacketSize в конечной точке элемента управления, поведение выполняется следующим образом в зависимости от типа контроллера узла:
Этот флаг не должен быть задан, если USBD_TRANSFER_DIRECTION_IN также не задан. |
TransferBufferLength
Указывает длину буфера, указанного в TransferBuffer или описанном в TransferBufferMDL. Драйвер контроллера узла возвращает количество байтов, отправленных или считываемых из канала в этом элементе.
TransferBuffer
Указатель на буфер резидента для передачи или null, если MDL предоставляется в TransferBufferMDL. Содержимое этого буфера зависит от значения TransferFlags. Если USBD_TRANSFER_DIRECTION_IN указан этот буфер, он будет содержать данные, считываемые с устройства при возврате от драйвера контроллера узла. В противном случае этот буфер содержит данные, предоставленные драйвером для передачи на устройство.
TransferBufferMDL
Указатель на MDL, описывающий буфер резидента или значение NULL, если буфер предоставляется в TransferBuffer. Содержимое буфера зависит от значения TransferFlags. Если указан USBD_TRANSFER_DIRECTION_IN, описанный буфер будет содержать данные, считываемые с устройства при возврате от драйвера контроллера узла. В противном случае буфер содержит предоставленные драйвером данные для передачи на устройство. Этот MDL-файл должен быть выделен из непагрегированного пула.
UrbLink
Скрытный. Не используйте.
hca
Скрытный. Не используйте.
RequestTypeReservedBits
Скрытный. Не используйте.
Request
Указывает код запроса, определенный USB или поставщиком для устройства, интерфейса, конечной точки или другого целевого объекта, определенного устройством.
Value
Задает значение, относящееся к запросу, которое становится частью пакета установки, определяемого USB для целевого объекта. Это значение определяется создателем кода, используемого в запроса.
Index
Указывает определяемый устройством индекс, возвращаемый успешным запросом конфигурации, если запрос предназначен для конечной точки или интерфейса. В противном случае индекса должно быть равно нулю.
Reserved1
Скрытный. Не используйте.
Замечания
Драйверы могут использовать формат подпрограммы службы UsbBuildVendorRequest.
Зарезервированные элементы этой структуры должны рассматриваться как непрозрачные и зарезервированы для использования системы.
Требования
Требование | Ценность |
---|---|
заголовка | usb.h (включая usb.h) |