структура _URB_SELECT_CONFIGURATION (usb.h)

Структура _URB_SELECT_CONFIGURATION используется клиентскими драйверами для выбора конфигурации USB-устройства.

Синтаксис

struct _URB_SELECT_CONFIGURATION {
  struct _URB_HEADER            Hdr;
  PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor;
  USBD_CONFIGURATION_HANDLE     ConfigurationHandle;
  USBD_INTERFACE_INFORMATION    Interface;
};

Члены

Hdr

Указатель на структуру _URB_HEADER , указывающую сведения о заголовке URB. Hdr.Function должен быть URB_FUNCTION_SELECT_CONFIGURATION, а Hdr.Length должен быть размером всей urb. Драйверы могут использовать макрос GET_SELECT_CONFIGURATION_REQUEST_SIZE, определенный в usbdlib.h, для получения размера URB.

ConfigurationDescriptor

Указатель на инициализированный дескриптор конфигурации USB, который определяет конфигурацию, используемую на устройстве. Если этот элемент имеет значение NULL, устройство будет установлено в ненастроенное состояние.

ConfigurationHandle

Содержит дескриптор, используемый для доступа к этой конфигурации при возврате из драйвера контроллера узла. Драйверы USB-клиента должны рассматривать этот элемент как непрозрачный.

Interface

Задает массив переменной длины USBD_INTERFACE_INFORMATION структур, каждая из которых описывает интерфейс, поддерживаемый выбранной конфигурацией.

Перед отправкой запроса драйверу контроллера узла драйвер может выбрать альтернативный параметр для одного или нескольких интерфейсов, содержащихся в этом массиве, задав элементы структуры USBD_INTERFACE_INFORMATION для этого интерфейса.

По возвращении из драйвера контроллера узла этот элемент содержит структуру USBD_INTERFACE_INFORMATION с данными, описывающими возможности и формат конечных точек в этом интерфейсе.

Комментарии

URB_FUNCTION_SELECT_CONFIGURATION URB состоит из структуры _URB_SELECT_CONFIGURATION , за которой следует последовательность массива USBD_INTERFACE_INFORMATION структур переменной длины, каждый элемент массива для каждого уникального номера интерфейса в конфигурации. Клиентские драйверы должны выделять достаточно памяти, чтобы содержать одну USBD_PIPE_INFORMATION структуру для каждой конечной точки в выбранных интерфейсах.

Драйверы могут использовать подпрограмму службы USBD_CreateConfigurationRequestEx для выделения URB.

Другие элементы, которые являются частью этой структуры, но не описаны здесь, должны рассматриваться как непрозрачные и считаться зарезервированными для использования системой.

Требования

Требование Значение
Заголовок usb.h (включая Usb.h)

См. также раздел

URB

Структуры USB

USBD_CreateConfigurationRequestEx

USBD_INTERFACE_INFORMATION

USBD_PIPE_INFORMATION

_URB_HEADER