Condividi tramite


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