EFI_USBFN_IO_PROTOCOL. Trasferimento
La funzione Transfer gestisce il trasferimento di dati da o verso l'host nell'endpoint specificato.
Direzione | Descrizione |
---|---|
EfiUsbEndpointDirectionDeviceTx | Avviare un trasferimento di trasmissione sull'endpoint specificato e restituire immediatamente. |
EfiUsbEndpointDirectionDeviceRx | Avviare un trasferimento di ricezione sull'endpoint specificato e restituire immediatamente con i dati disponibili. |
Sintassi
typedef
EFI_STATUS
(EFIAPI *EFI_USBFN_IO_TRANSFER) (
IN EFI_USBFN_IO_PROTOCOL *This,
IN UINT8 EndpointIndex,
IN EFI_USBFN_ENDPOINT_DIRECTION Direction,
IN OUT UINTN *BufferSize,
IN OUT VOID *Buffer
);
Parametri
This
Puntatore all'istanza di EFI_USBFN_IO_PROTOCOL.
EndpointIndex
Indica l'endpoint in cui deve essere eseguito il trasferimento TX o RX.
Direzione
Direzione dell'endpoint. Per altre informazioni, vedere EFI_USBFN_ENDPOINT_DIRECTION.
Buffersize
Se Direction è EfiUsbEndpointDirectionDeviceRx: in input, le dimensioni del buffer in byte. Nell'output la quantità di dati restituiti nel buffer in byte. Se Direction è EfiUsbEndpointDirectionDeviceTx: in input, le dimensioni del buffer in byte. In caso di output, la quantità di dati effettivamente trasmessi in byte.
Buffer
Se Direction è EfiUsbEndpointDirectionDeviceRx:Il buffer per restituire i dati ricevuti. Se Direction è EfiUsbEndpointDirectionDeviceTx: buffer che contiene i dati da trasmettere.
Questo buffer viene allocato e liberato usando le funzioni AllocateTransferBuffer e FreeTransferBuffer. Il chiamante di questa funzione non deve liberare o riutilizzare il buffer finché non è stato ricevuto un messaggio EfiUsbMsgEndpointStatusChangedRx o EfiUsbMsgEndpointStatusChangedTx insieme all'indirizzo del buffer di trasferimento come parte del payload del messaggio. Vedere EFI_USBFN_IO_PROTOCOL. EventHandler per altre informazioni sui vari messaggi e sui relativi payload.
Valori restituiti
La funzione restituisce uno dei valori seguenti:
Codice restituito | Descrizione |
---|---|
EFI_SUCCESS | Funzione 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 l'elaborazione di questa richiesta |
Osservazioni:
Un driver di classe deve chiamare EFI_USBFN_IO_PROTOCOL. EventHandler ripetutamente per ricevere gli aggiornamenti sullo stato del trasferimento e sul numero di byte trasferiti in vari endpoint. Dopo l'aggiornamento dello stato del trasferimento, il campo Buffer della struttura EFI_USBFN_TRANSFER_RESULT deve essere inizializzato con il puntatore Buffer fornito a questo metodo. Questa funzione ha esito negativo e EFI_INVALID_PARAMETER codice restituito se la direzione specificata non è corretta per l'endpoint.
La panoramica della sequenza di chiamata è illustrata nel diagramma sequenza UEFI.
Questa funzione ha esito negativo e EFI_INVALID_PARAMETER codice restituito se la direzione specificata non è corretta per l'endpoint.
Requisiti
Intestazione: utente generato