Freigeben über


EFI_USBFN_IO_PROTOCOL. Eventhandler

Die EventHandler-Funktion wird wiederholt aufgerufen, um Updates zu USB-Buszuständen zu empfangen, status Änderungen an Endpunkten zu empfangen und zu übertragen und das Paket auf Endpunkt 0 einzurichten.

Syntax

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

Parameter

Dieser
Ein Zeiger auf die EFI_USBFN_IO_PROTOCOL instance.

Meldung
Ein EFI_USBFN_MESSAGE Wert, der das Ereignis angibt, das diese Benachrichtigung initiiert hat.

PayloadSize
Bei der Eingabe die Größe des Speichers, auf die die Nutzlast verweist. Bei der Ausgabe die Datenmenge, die in Payload zurückgegeben wird.

Nutzlast
Ein Zeiger auf die EFI_USBFN_MESSAGE_PAYLOAD instance, um zusätzliche Nutzlast für die aktuelle Nachricht zurückzugeben.

Rückgabewerte

Die Funktion gibt die folgenden Werte zurück:

Rückgabecode Beschreibung
EFI_SUCCESS Die 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 nicht bereit, diese Anforderung zu verarbeiten.
EFI_BUFFER_TOO_SMALL Der bereitgestellte Puffer ist nicht groß genug, um die Nachrichtennutzlast aufzunehmen.

Bemerkungen

Ein Klassentreiber muss EventHandler wiederholt aufrufen, um Updates für die Übertragung status und die Anzahl der an verschiedenen Endpunkten übertragenen Bytes zu erhalten. Weitere Informationen finden Sie unter UEFI-Sequenzdiagramm .

Einige Nachrichten weisen eine zugeordnete Nutzlast auf, die im angegebenen Puffer zurückgegeben wird. In der folgenden Tabelle werden verschiedene Nachrichten und deren Nutzlast beschrieben.

Nachricht Nutzlast BESCHREIBUNG
EfiUsbMsgSetupPacket EFI_USB_DEVICE_REQUEST SETUP-Paket wurde empfangen.
EfiUsbMsgEndpointStatusChangedRx EFI_USBFN_TRANSFER_RESULT Ein Teil der angeforderten Daten wurde an den Host übertragen. Es liegt in der Verantwortung des Klassentreibers, zu bestimmen, ob verbleibende Daten erneut übertragen werden müssen. Der für EFI_USBFN_IO_PROTOCOL bereitgestellte Puffer . Die Übertragung muss mit dem Pufferfeld der Nutzlast übereinstimmen.
EfiUsbMsgEndpointStatusChangedTx EFI_USBFN_TRANSFER_RESULT Einige der angeforderten Daten wurden vom Host empfangen. Es liegt in der Verantwortung des Klassentreibers zu bestimmen, ob er auf die verbleibenden Daten warten muss. Der für EFI_USBFN_IO_PROTOCOL bereitgestellte Puffer . Die Übertragung muss mit dem Pufferfeld der Nutzlast übereinstimmen.
EfiUsbMsgBusEventReset Keine Das RESET-Busereignis wurde signalisiert.
EfiUsbMsgBusEventDetach Keine Das DETACH-Busereignis wurde signalisiert.
EfiUsbMsgBusEventAttach Keine Das ATTACH-Busereignis wird signalisiert.
EfiUsbMsgBusEventSuspend Keine Das SUSPEND-Busereignis wurde signalisiert.
EfiUsbMsgBusEventResume Keine Resume Bus-Ereignis signalisiert.
EfiUsbMsgBusEventSpeed EFI_USB_BUS_SPEED Busgeschwindigkeitsupdate signalisiert.

Anforderungen

Header: Vom Benutzer generiert