EFI_USBFN_IO_PROTOCOL. Eventhandler
La función EventHandler se llama repetidamente para recibir actualizaciones en estados de bus USB, recibir y transmitir cambios de estado en los puntos de conexión y configurar el paquete en el punto de conexión 0.
Sintaxis
typedef
EFI_STATUS
(EFIAPI * EFI_USBFN_IO_EVENTHANDLER) (
IN EFI_USBFN_IO_PROTOCOL *This,
OUT EFI_USBFN_MESSAGE *Message,
IN OUT UINTN *PayloadSize,
OUT EFI_USBFN_MESSAGE_PAYLOAD *Payload
);
Parámetros
Éste
Puntero a la instancia de EFI_USBFN_IO_PROTOCOL.
Mensaje
Valor EFI_USBFN_MESSAGE que indica el evento que inició esta notificación.
PayloadSize
En la entrada, el tamaño de la memoria a la que apunta Payload. En la salida, la cantidad de datos devueltos en Payload.
Carga
Puntero a la instancia de EFI_USBFN_MESSAGE_PAYLOAD para devolver una carga adicional para el mensaje actual.
Valores devueltos
La función devuelve los valores siguientes:
Código devuelto | Descripción |
---|---|
EFI_SUCCESS | La función devolvió correctamente. |
EFI_INVALID_PARAMETER | Si se devuelve este valor, significará que el parámetro en cuestión no es válido. |
EFI_DEVICE_ERROR | El dispositivo físico notificó un error. |
EFI_NOT_READY | El dispositivo físico está ocupado o no está listo para procesar esta solicitud. |
EFI_BUFFER_TOO_SMALL | El búfer proporcionado no es lo suficientemente grande como para contener la carga del mensaje. |
Observaciones
Un controlador de clase debe llamar repetidamente a EventHandler para recibir actualizaciones en el estado de transferencia y el número de bytes transferidos en varios puntos de conexión. Consulte Diagrama de secuencia uefi para obtener más información.
Algunos mensajes tienen carga asociada que se devuelve en el búfer proporcionado. En la tabla siguiente se describen varios mensajes y su carga útil.
Message | Carga | Descripción |
---|---|---|
EfiUsbMsgSetupPacket | EFI_USB_DEVICE_REQUEST | Se recibió el paquete SETUP. |
EfiUsbMsgEndpointStatusChangedRx | EFI_USBFN_TRANSFER_RESULT | Algunos de los datos solicitados se han transmitido al host. Es responsabilidad del controlador de clase determinar si se deben reenviar los datos restantes. Búfer proporcionado a EFI_USBFN_IO_PROTOCOL. La transferencia debe ser la misma que el campo Búfer de la carga. |
EfiUsbMsgEndpointStatusChangedTx | EFI_USBFN_TRANSFER_RESULT | Algunos de los datos solicitados se han recibido del host. Es responsabilidad del controlador de clase determinar si necesita esperar los datos restantes. Búfer proporcionado a EFI_USBFN_IO_PROTOCOL. La transferencia debe ser la misma que el campo Búfer de la carga. |
EfiUsbMsgBusEventReset | None | Se señalizó el evento reset bus. |
EfiUsbMsgBusEventDetach | Ninguno | Se señalizó el evento de bus DETACH. |
EfiUsbMsgBusEventAttach | Ninguno | Evento attach bus señalizado. |
EfiUsbMsgBusEventSuspend | Ninguno | Se señalizó el evento suspend bus. |
EfiUsbMsgBusEventResume | Ninguno | Evento resume bus señalizado. |
EfiUsbMsgBusEventSpeed | EFI_USB_BUS_SPEED | Actualización de velocidad de autobús señalizado. |
Requisitos
Rúbrica: Usuario generado