структура _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-устройств

URB

Структуры USB

USBD_INTERFACE_INFORMATION

_URB_HEADER