Freigeben über


EFI_USBFN_IO_PROTOCOL. Transfer

Die Übertragungsfunktion behandelt das Übertragen von Daten an oder vom Host auf dem angegebenen Endpunkt.

Direction Beschreibung
EfiUsbEndpointDirectionDeviceTx Starten Sie eine Übertragungsübertragung am angegebenen Endpunkt, und kehren Sie sofort zurück.
EfiUsbEndpointDirectionDeviceRx Starten Sie eine Empfangsübertragung am angegebenen Endpunkt, und kehren Sie sofort mit verfügbaren Daten zurück.

Syntax

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

Parameter

Dieser
Ein Zeiger auf die EFI_USBFN_IO_PROTOCOL Instanz.

EndpointIndex
Gibt den Endpunkt an, an dem die TX- oder RX-Übertragung erfolgen muss.

Richtung
Richtung des Endpunkts. Weitere Informationen finden Sie unter EFI_USBFN_ENDPOINT_DIRECTION.

BufferSize
If Direction is EfiUsbEndpointDirectionDeviceRx: On input, the size of the buffer in bytes. Bei der Ausgabe wird die im Puffer zurückgegebene Datenmenge in Bytes zurückgegeben. If Direction is EfiUsbEndpointDirectionDeviceTx: On input, the size of the Buffer in bytes. Bei der Ausgabe wird die Datenmenge, die tatsächlich in Bytes übertragen wird.

Buffer
If Direction is EfiUsbEndpointDirectionDeviceRx:The buffer to return the received data. If Direction is EfiUsbEndpointDirectionDeviceTx: The buffer that contains the data to be übertragen.

Dieser Puffer wird mithilfe der Funktionen "AllocateTransferBuffer" und "FreeTransferBuffer" zugewiesen und freigegeben. Der Aufrufer dieser Funktion darf den Puffer erst freigeben oder wiederverwenden, wenn ein EfiUsbMsgEndpointStatusChangedRx - oder EfiUsbMsgEndpointStatusChangedTx-Nachricht zusammen mit der Adresse des Übertragungspuffers als Teil der Nachrichtennutzlast empfangen wurde. Siehe EFI_USBFN_IO_PROTOCOL. EventHandler für weitere Informationen zu verschiedenen Nachrichten und deren Nutzlasten.

Rückgabewerte

Die Funktion gibt einen der folgenden Werte zurück:

Rückgabecode Beschreibung
EFI_SUCCESS Die zurückgegebene Funktion wurde erfolgreich zurückgegeben.
EFI_INVALID_PARAMETER Ein Parameter ist ungültig.
EFI_DEVICE_ERROR Das physische Gerät hat einen Fehler gemeldet.
EFI_NOT_READY Das physische Gerät ist ausgelastet oder kann diese Anforderung nicht verarbeiten.

Hinweise

Ein Klassentreiber muss EFI_USBFN_IO_PROTOCOL aufrufen . EventHandler wiederholt, um Aktualisierungen über den Übertragungsstatus und die Anzahl der Bytes zu empfangen, die auf verschiedenen Endpunkten übertragen wurden. Beim Aktualisieren des Übertragungsstatus muss das Pufferfeld der EFI_USBFN_TRANSFER_RESULT-Struktur mit dem Pufferzeiger initialisiert werden, der für diese Methode bereitgestellt wurde. Diese Funktion schlägt mit EFI_INVALID_PARAMETER Rückgabecode fehl, wenn die angegebene Richtung für den Endpunkt falsch ist.

Die Übersicht über die Aufrufsequenz wird im UEFI-Sequenzdiagramm veranschaulicht.

Diese Funktion schlägt mit EFI_INVALID_PARAMETER Rückgabecode fehl, wenn die angegebene Richtung für den Endpunkt falsch ist.

Anforderungen

Kopfzeile: Vom Benutzer generiert