Поделиться через


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