Compartir a través de


estructura _URB_SELECT_CONFIGURATION (usb.h)

Los controladores de cliente usan la estructura _URB_SELECT_CONFIGURATION para seleccionar una configuración para un dispositivo USB.

Sintaxis

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

Miembros

Hdr

Puntero a una estructura de _URB_HEADER que especifica la información del encabezado URB. Hdr.Function debe ser URB_FUNCTION_SELECT_CONFIGURATION y Hdr.Length debe ser el tamaño de toda la URB. Los controladores pueden usar la macro GET_SELECT_CONFIGURATION_REQUEST_SIZE definida en usbdlib.h para obtener el tamaño del URB.

ConfigurationDescriptor

Puntero a un descriptor de configuración USB inicializado que identifica la configuración que se va a usar en el dispositivo. Si este miembro es NULL, el dispositivo se establecerá en un estado no configurado.

ConfigurationHandle

Contiene un identificador que se usa para acceder a esta configuración a cambio del controlador del controlador de host. Los controladores de cliente USB deben tratar a este miembro como opaco.

Interface

Especifica una matriz de longitud variable de USBD_INTERFACE_INFORMATION estructuras, cada una de las cuales describe una interfaz compatible con la configuración seleccionada.

Antes de enviar la solicitud al controlador del controlador de host, el controlador puede seleccionar una configuración alternativa para una o varias de las interfaces contenidas en esta matriz estableciendo miembros de la estructura USBD_INTERFACE_INFORMATION para esa interfaz.

A cambio del controlador del controlador de host, este miembro contiene una estructura de USBD_INTERFACE_INFORMATION con datos que describen las funcionalidades y el formato de los puntos de conexión dentro de esa interfaz.

Comentarios

Un URB_FUNCTION_SELECT_CONFIGURATION URB consta de una estructura de _URB_SELECT_CONFIGURATION seguida de una secuencia de matriz de longitud variable de USBD_INTERFACE_INFORMATION estructuras, cada elemento de la matriz para cada número de interfaz único de la configuración. Los controladores de cliente deben asignar memoria suficiente para contener una estructura USBD_PIPE_INFORMATION para cada punto de conexión de las interfaces seleccionadas.

Los controladores pueden usar la rutina de servicio USBD_CreateConfigurationRequestEx para asignar el URB.

Otros miembros que forman parte de esta estructura, pero que no se describen aquí, deben tratarse como opacos y se consideran reservados para el uso del sistema.

Requisitos

Requisito Valor
Header usb.h (incluye Usb.h)

Consulte también

URB

Estructuras USB

USBD_CreateConfigurationRequestEx

USBD_INTERFACE_INFORMATION

USBD_PIPE_INFORMATION

_URB_HEADER