структура _URB_SELECT_INTERFACE (usb.h)
Структура _URB_SELECT_INTERFACE используется драйверами USB-клиента для выбора альтернативного параметра интерфейса или изменения максимального размера пакета канала в текущей конфигурации на USB-устройстве.
Синтаксис
struct _URB_SELECT_INTERFACE {
struct _URB_HEADER Hdr;
USBD_CONFIGURATION_HANDLE ConfigurationHandle;
USBD_INTERFACE_INFORMATION Interface;
};
Члены
Hdr
Указатель на структуру _URB_HEADER, указывающую сведения о заголовке URB. hdr.Function должны быть URB_FUNCTION_SELECT_INTERFACE, а hdr.Length должен быть размером всего URB.
ConfigurationHandle
Указывает дескриптор конфигурации, к которой принадлежит этот интерфейс. Драйвер контроллера узла возвращает этот дескриптор, когда клиент выбирает конфигурацию с запросом URB_FUNCTION_SELECT_CONFIGURATION.
Interface
Структура переменной длины USBD_INTERFACE_INFORMATION, указывающая интерфейс и новый альтернативный параметр для этого интерфейса, а при необходимости — новые максимальные размеры пакетов для соответствующих каналов. Дополнительные сведения см. в разделе "Примечания".
Замечания
Макрос GET_SELECT_INTERFACE_REQUEST_SIZE можно использовать для определения размера URB_FUNCTION_SELECT_INTERFACE URB и подпрограммы UsbBuildSelectInterfaceRequest для форматирования URB.
Структура USBD_INTERFACE_INFORMATION содержит сведения об интерфейсе и его альтернативном параметре. Элемент каналаUSBD_INTERFACE_INFORMATION указывает на массив структур USBD_PIPE_INFORMATION. Массив хранит сведения о каналах, связанных с конечными точками интерфейса. Вы можете переопределить определенные параметры по умолчанию для канала, например максимальный размер пакета. Чтобы изменить максимальный размер пакета, задайте флаг USBD_PF_CHANGE_MAX_PACKET в Pipes[i].PipeFlags
, а затем укажите новое значение в Pipes[i].MaximumPacketSize
.
После успешного завершения обработки URB_FUNCTION_SELECT_INTERFACE URB драйвер шины возвращает массив дескрипторов для каждого канала в элементе Pipes[i].PipeHandle
. Драйвер клиента может хранить дескриптора каналов для отправки запросов ввода-вывода в определенные каналы.
Требования
Требование | Ценность |
---|---|
заголовка | usb.h (включая usb.h) |
См. также
настройка USB-устройств