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