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