Compartir a través de


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