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