Partager via


EFI_USBFN_IO_PROTOCOL. Eventhandler

La fonction EventHandler est appelée à plusieurs reprises pour recevoir des mises à jour sur les états du bus USB, recevoir et transmettre status modifications sur les points de terminaison et configurer le paquet sur le point de terminaison 0.

Syntaxe

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

Paramètres

Ce
Pointeur vers le EFI_USBFN_IO_PROTOCOL instance.

Message
Valeur EFI_USBFN_MESSAGE qui indique l’événement à l’origine de cette notification.

PayloadSize
En entrée, la taille de la mémoire pointée vers la charge utile. En sortie, la quantité de données retournées dans La charge utile.

Payload
Pointeur vers le EFI_USBFN_MESSAGE_PAYLOAD instance pour renvoyer une charge utile supplémentaire pour le message actuel.

Valeurs retournées

La fonction retourne les valeurs suivantes :

Code de retour Description
EFI_SUCCESS La fonction a bien retourné la valeur attendue.
EFI_INVALID_PARAMETER Un paramètre n'est pas valide.
EFI_DEVICE_ERROR L’appareil physique a signalé une erreur.
EFI_NOT_READY L’appareil physique est occupé ou n’est pas prêt à traiter cette demande.
EFI_BUFFER_TOO_SMALL Mémoire tampon fournie pas assez grande pour contenir la charge utile du message.

Notes

Un pilote de classe doit appeler EventHandler à plusieurs reprises pour recevoir des mises à jour sur le status de transfert et le nombre d’octets transférés sur différents points de terminaison. Pour plus d’informations, consultez Diagramme de séquence UEFI .

Quelques messages ont une charge utile associée qui est retournée dans la mémoire tampon fournie. Le tableau suivant décrit les différents messages et leur charge utile.

Message Payload Description
EfiUsbMsgSetupPacket EFI_USB_DEVICE_REQUEST Le paquet SETUP a été reçu.
EfiUsbMsgEndpointStatusChangedRx EFI_USBFN_TRANSFER_RESULT Certaines des données demandées ont été transmises à l’hôte. Il incombe au pilote de classe de déterminer si les données restantes doivent être réentrées. Mémoire tampon fournie à EFI_USBFN_IO_PROTOCOL. Le transfert doit être identique au champ Tampon de la charge utile.
EfiUsbMsgEndpointStatusChangedTx EFI_USBFN_TRANSFER_RESULT Certaines des données demandées ont été reçues de l’hôte. Il incombe au pilote de classe de déterminer s’il doit attendre les données restantes. Mémoire tampon fournie à EFI_USBFN_IO_PROTOCOL. Le transfert doit être identique au champ Tampon de la charge utile.
EfiUsbMsgBusEventReset None L’événement reset bus a été signalé.
EfiUsbMsgBusEventDetach None L’événement de bus DETACH a été signalé.
EfiUsbMsgBusEventAttach None Événement de bus ATTACH signalé.
EfiUsbMsgBusEventSuspend None L’événement de bus SUSPEND a été signalé.
EfiUsbMsgBusEventResume None Événement de bus RESUME signalé.
EfiUsbMsgBusEventSpeed EFI_USB_BUS_SPEED Mise à jour de la vitesse du bus signalée.

Spécifications

En-tête: Utilisateur généré