Share via


estructura _URB_SELECT_INTERFACE (usb.h)

Los controladores de cliente USB usan la estructura _URB_SELECT_INTERFACE para seleccionar una configuración alternativa para una interfaz o para cambiar el tamaño máximo de paquete de una canalización en la configuración actual en un dispositivo USB.

Sintaxis

struct _URB_SELECT_INTERFACE {
  struct _URB_HEADER         Hdr;
  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_INTERFACE y Hdr.Length debe ser el tamaño de toda la URB.

ConfigurationHandle

Especifica el identificador de la configuración a la que pertenece esta interfaz. El controlador del controlador de host devuelve este identificador cuando el cliente selecciona la configuración con una solicitud de URB_FUNCTION_SELECT_CONFIGURATION.

Interface

Una estructura de longitud variable USBD_INTERFACE_INFORMATION que especifica la interfaz y la nueva configuración alternativa para esa interfaz y, si es necesario, los nuevos tamaños de paquete máximo para las canalizaciones correspondientes. Para obtener más información, vea la sección Comentarios.

Comentarios

Puede usar la macro GET_SELECT_INTERFACE_REQUEST_SIZE para determinar el tamaño de la URB_FUNCTION_SELECT_INTERFACE URB y la rutina UsbBuildSelectInterfaceRequest para dar formato al URB.

La estructura USBD_INTERFACE_INFORMATION contiene información sobre la interfaz y su configuración alternativa. El miembro Pipes de USBD_INTERFACE_INFORMATION apunta a una matriz de estructuras de USBD_PIPE_INFORMATION . La matriz almacena información sobre las canalizaciones asociadas a los puntos de conexión de la interfaz. Puede invalidar cierta configuración predeterminada para una canalización, como su tamaño máximo de paquete. Para modificar el tamaño máximo del paquete, establezca la marca USBD_PF_CHANGE_MAX_PACKET en Pipes[i].PipeFlagsy, a continuación, especifique el nuevo valor en Pipes[i].MaximumPacketSize.

Una vez que el controlador de bus completa correctamente el procesamiento del URB_FUNCTION_SELECT_INTERFACE URB, devuelve una matriz de identificadores para cada canalización del Pipes[i].PipeHandle miembro. El controlador cliente puede almacenar identificadores de canalización para enviar solicitudes de E/S a canalizaciones específicas.

Requisitos

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

Consulte también

Configuración de dispositivos USB

URB

Estructuras USB

USBD_INTERFACE_INFORMATION

_URB_HEADER