Partager via


EFI_USBFN_IO_PROTOCOL. Transfert

La fonction De transfert gère le transfert de données vers ou depuis l’hôte sur le point de terminaison spécifié.

Sens Description
EfiUsbEndpointDirectionDeviceTx Démarrez un transfert de transmission sur le point de terminaison spécifié et retournez immédiatement.
EfiUsbEndpointDirectionDeviceRx Démarrez un transfert de réception sur le point de terminaison spécifié et revenez immédiatement avec les données disponibles.

Syntaxe

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

Paramètres

This
Pointeur vers l’instance EFI_USBFN_IO_PROTOCOL.

EndpointIndex
Indique le point de terminaison sur lequel le transfert TX ou RX doit avoir lieu.

Direction
Direction du point de terminaison. Pour plus d’informations, consultez EFI_USBFN_ENDPOINT_DIRECTION.

BufferSize
Si Direction est EfiUsbEndpointDirectionDeviceRx : lors de l’entrée, la taille de la mémoire tampon en octets. En sortie, la quantité de données retournées dans la mémoire tampon en octets. Si Direction est EfiUsbEndpointDirectionDeviceTx : en entrée, la taille de la mémoire tampon en octets. En sortie, la quantité de données transmises en octets.

Buffer
Si Direction est EfiUsbEndpointDirectionDeviceRx :Mémoire tampon pour retourner les données reçues. Si Direction est EfiUsbEndpointDirectionDeviceTx : mémoire tampon qui contient les données à transmettre.

Cette mémoire tampon est allouée et libérée à l’aide des fonctions AllocateTransferBuffer et FreeTransferBuffer. L’appelant de cette fonction ne doit pas libérer ou réutiliser la mémoire tampon tant qu’un message EfiUsbMsgEndpointStatusChangedRx ou EfiUsbMsgEndpointStatusChangedTx a été reçu avec l’adresse de la mémoire tampon de transfert dans le cadre de la charge utile du message. Voir EFI_USBFN_IO_PROTOCOL. EventHandler pour plus d’informations sur les différents messages et leurs charges utiles.

Valeurs de retour

La fonction retourne l’une des valeurs suivantes :

Code de retour Description
EFI_SUCCESS La fonction a retourné avec succès
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

Notes

Un pilote de classe doit appeler EFI_USBFN_IO_PROTOCOL. EventHandler à plusieurs reprises pour recevoir des mises à jour sur l’état du transfert et le nombre d’octets transférés sur différents points de terminaison. Lors de la mise à jour de l’état du transfert, le champ Mémoire tampon de la structure EFI_USBFN_TRANSFER_RESULT doit être initialisé avec le pointeur de mémoire tampon fourni à cette méthode. Cette fonction échoue avec EFI_INVALID_PARAMETER code de retour si la direction spécifiée est incorrecte pour le point de terminaison.

La vue d’ensemble de la séquence d’appels est illustrée dans le diagramme de séquence UEFI.

Cette fonction échoue avec EFI_INVALID_PARAMETER code de retour si la direction spécifiée est incorrecte pour le point de terminaison.

Spécifications

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