Condividi tramite


EFI_USBFN_IO_PROTOCOL. Eventhandler

La funzione EventHandler viene chiamata ripetutamente per ricevere aggiornamenti sugli stati del bus USB, ricevere e trasmettere le modifiche di stato sugli endpoint e configurare pacchetti nell'endpoint 0.

Sintassi

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
  );

Parametri

This
Puntatore all'istanza di EFI_USBFN_IO_PROTOCOL.

Message
Valore EFI_USBFN_MESSAGE che indica l'evento che ha avviato questa notifica.

PayloadSize
In input, le dimensioni della memoria puntate da Payload. In output, la quantità di dati restituiti in Payload.

Payload
Puntatore all'istanza di EFI_USBFN_MESSAGE_PAYLOAD per restituire un payload aggiuntivo per il messaggio corrente.

Valori restituiti

La funzione restituisce i valori seguenti:

Codice restituito Descrizione
EFI_SUCCESS La funzione è stata restituita correttamente.
EFI_INVALID_PARAMETER Un parametro non è valido.
EFI_DEVICE_ERROR Il dispositivo fisico ha segnalato un errore.
EFI_NOT_READY Il dispositivo fisico è occupato o non è pronto per elaborare questa richiesta.
EFI_BUFFER_TOO_SMALL Buffer fornito non abbastanza grande per contenere il payload del messaggio.

Commenti

Un driver di classe deve chiamare ripetutamente EventHandler per ricevere aggiornamenti sullo stato di trasferimento e sul numero di byte trasferiti in vari endpoint. Per altre informazioni, vedere Diagramma sequenza UEFI .

Alcuni messaggi hanno associato payload restituito nel buffer fornito. Nella tabella seguente vengono descritti vari messaggi e il relativo payload.

Message Payload Descrizione
EfiUsbMsgSetupPacket EFI_USB_DEVICE_REQUEST È stato ricevuto il pacchetto SETUP.
EfiUsbMsgEndpointStatusChangedRx EFI_USBFN_TRANSFER_RESULT Alcuni dei dati richiesti sono stati trasmessi all'host. È responsabilità del driver di classe determinare se i dati rimanenti devono essere risentito. Buffer fornito per EFI_USBFN_IO_PROTOCOL. Il trasferimento deve essere uguale al campo Buffer del payload.
EfiUsbMsgEndpointStatusChangedTx EFI_USBFN_TRANSFER_RESULT Alcuni dei dati richiesti sono stati ricevuti dall'host. È responsabilità del driver di classe determinare se deve attendere i dati rimanenti. Buffer fornito per EFI_USBFN_IO_PROTOCOL. Il trasferimento deve essere uguale al campo Buffer del payload.
EfiUsbMsgBusEventReset Nessuno È stato segnalato l'evento RESET bus.
EfiUsbMsgBusEventDetach Nessuno L'evento DETACH bus è stato segnalato.
EfiUsbMsgBusEventAttach Nessuno Evento ATTACH bus segnalato.
EfiUsbMsgBusEventSuspend Nessuno È stato segnalato l'evento del bus SUSPEND.
EfiUsbMsgBusEventResume Nessuno EVENTO RESUME bus segnalato.
EfiUsbMsgBusEventSpeed EFI_USB_BUS_SPEED Aggiornamento della velocità del bus segnalato.

Requisiti

Intestazione: Utente generato