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].PipeFlags
y, 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) |