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