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é