Partager via


Protocole de fonction USB UEFI

Important

Certaines informations de cette section peuvent s’appliquer uniquement à Windows 10 Mobile et à certaines architectures de processeur.

Le protocole de fonction USB définit un transport USB générique et léger dans l’environnement UEFI. Ce protocole est utilisé par les outils de clignotement, le mode de stockage de masse USB et d’autres outils qui nécessitent une communication bidirectionnelle entre un appareil démarré dans l’environnement UEFI et un ordinateur hôte.

EFI_USBFN_IO_PROTOCOL

Comme d’autres pilotes de périphériques UEFI, le point d’entrée d’un pilote de fonction USB se fixe EFI_DRIVER_BINDING_PROTOCOL au handle d’image de EFI_USBFN_IO_PROTOCOL pilote

Le protocole de liaison de pilote contient trois services, Supported, Start et Stop. La fonction Supported doit tester pour voir si ce pilote prend en charge un contrôleur donné. La fonction Start doit fournir l’alimentation au contrôleur USB si nécessaire, initialiser le matériel et les structures de données internes, puis retourner. Le port ne doit pas être activé par cette fonction. La fonction Stop doit désactiver l’appareil en réinitialisant le bit d’exécution/arrêt et mettre hors tension le contrôleur USB si nécessaire.

GUID

// {32D2963A-FE5D-4f30-B633-6E5DC55803CC}
#define EFI_USBFN_IO_PROTOCOL_GUID \
  {0x32d2963a, 0xfe5d, 0x4f30, 0xb6, 0x33, 0x6e, 0x5d, 0xc5, \
   0x58, 0x3, 0xcc };

Numéro de révision

#define EFI_USBFN_IO_PROTOCOL_REVISION   0x00010002

Structure de l’interface de protocole

typedef struct _EFI_USBFN_IO_PROTOCOL 
{
  UINT32                                      Revision;
  EFI_USBFN_IO_DETECT_PORT                    DetectPort;
  EFI_USBFN_IO_CONFIGURE_ENABLE_ENDPOINTS     ConfigureEnableEndpoints;
  EFI_USBFN_IO_GET_ENDPOINT_MAXPACKET_SIZE    GetEndpointMaxPacketSize;
  EFI_USBFN_IO_GET_DEVICE_INFO                GetDeviceInfo;
  EFI_USBFN_IO_GET_VENDOR_ID_PRODUCT_ID       GetVendorIdProductId;
  EFI_USBFN_IO_ABORT_TRANSFER                 AbortTransfer;
  EFI_USBFN_IO_GET_ENDPOINT_STALL_STATE       GetEndpointStallState; 
  EFI_USBFN_IO_SET_ENDPOINT_STALL_STATE       SetEndpointStallState;
  EFI_USBFN_IO_EVENTHANDLER                   EventHandler;
  EFI_USBFN_IO_TRANSFER                       Transfer;
  EFI_USBFN_IO_GET_MAXTRANSFER_SIZE           GetMaxTransferSize;
  EFI_USBFN_IO_ALLOCATE_TRANSFER_BUFFER       AllocateTransferBuffer;
  EFI_USBFN_IO_FREE_TRANSFER_BUFFER           FreeTransferBuffer;
  EFI_USBFN_IO_START_CONTROLLER               StartController;
  EFI_USBFN_IO_STOP_CONTROLLER                StopController;
  EFI_USBFN_IO_SET_ENDPOINT_POLICY            SetEndpointPolicy;
  EFI_USBFN_IO_GET_ENDPOINT_POLICY            GetEndpointPolicy;
  EFI_USBFN_IO_CONFIGURE_ENABLE_ENDPOINTS_EX  ConfigureEnableEndpointsEx;
} EFI_USBFN_IO_PROTOCOL;

Membres

Révision
Révision à laquelle le EFI_USBFN_IO_PROTOCOL adhère. Toutes les révisions futures doivent être à compatibilité descendante. Si une version ultérieure n’est pas de compatibilité descendante, un GUID différent doit être utilisé.

DetectPort
Retourne des informations sur le type de port USB. Voir EFI_USBFN_IO_PROTOCOL. DetectPort.

ConfigureEnableEndpoints
Initialisez tous les points de terminaison en fonction des descripteurs d’appareil et de configuration fournis. Activez l’appareil en définissant le bit d’exécution/arrêt. Voir EFI_USBFN_IO_PROTOCOL. ConfigureEnableEndpoints.

GetEndpointMaxPacketSize
Retourne la taille de paquet maximale du point de terminaison spécifié. Voir EFI_USBFN_IO_PROTOCOL. GetEndpointMaxPacketSize.

GetDeviceInfo
Retourne des informations spécifiques à l’appareil en fonction de l’identificateur fourni sous forme de chaîne Unicode. Voir EFI_USBFN_IO_PROTOCOL. GetDeviceInfo.

GetVendorIdProductId
Retourne vendor-id et product-id de l’appareil. Voir EFI_USBFN_IO_PROTOCOL. GetVendorIdProductId.

AbortTransfer
Abandonne le transfert sur le point de terminaison spécifié. Voir EFI_USBFN_IO_PROTOCOL. AbortTransfer.

GetEndpointStallState
Retourne l’état de décrochage sur le point de terminaison spécifié. Voir EFI_USBFN_IO_PROTOCOL. GetEndpointStallState.

SetEndpointStallS
Définit ou efface l’état de blocage sur le point de terminaison spécifié. Voir EFI_USBFN_IO_PROTOCOL. SetEndpointStallState.

Eventhandler
Cette fonction est appelée à plusieurs reprises pour recevoir des mises à jour sur les états du bus USB, recevoir, transmettre des événements complets sur les points de terminaison et configurer le paquet sur le point de terminaison 0. Voir EFI_USBFN_IO_PROTOCOL. Gestionnaire d’événements.

Transférer
Cette fonction gère le transfert de données vers ou depuis l’hôte sur le point de terminaison spécifié, en fonction de la direction spécifiée. Voir EFI_USBFN_IO_PROTOCOL. Transfert.

GetMaxTransferSize
Taille de transfert maximale prise en charge en octets. Voir EFI_USBFN_IO_PROTOCOL. GetMaxTransferSize.

AllocateTransferBuffer
Alloue une mémoire tampon de transfert de la taille spécifiée qui répond aux exigences du contrôleur. Voir EFI_USBFN_IO_PROTOCOL. AllocateTransferBuffer.

FreeTransferBuffer
Désalloue la mémoire allouée pour la mémoire tampon de transfert par la fonction AllocateTransferBuffer . Voir EFI_USBFN_IO_PROTOCOL. FreeTransferBuffer.

StartController
Fournit l’alimentation au contrôleur USB si nécessaire et initialise le matériel et les structures de données internes. Voir EFI_USBFN_IO_PROTOCOL. StartController. Cette fonction est disponible à partir de la révision 0x00010001 du protocole.

StopController
Désactive l’appareil en réinitialisant le bit d’exécution/arrêt et met le contrôleur USB hors tension si nécessaire. Voir EFI_USBFN_IO_PROTOCOL. StopController. Cette fonction est disponible à partir de la révision 0x00010001 du protocole.

SetEndpointPolicy
Définit la stratégie de configuration pour le point de terminaison non-contrôle spécifié. Voir EFI_USBFN_IO_PROTOCOL. SetEndpointPolicy. Cette fonction est disponible à partir de la révision 0x00010001 du protocole.

GetEndpointPolicy
Récupère la stratégie de configuration pour le point de terminaison non-contrôle spécifié. Voir EFI_USBFN_IO_PROTOCOL. GetEndpointPolicy. Cette fonction est disponible à partir de la révision 0x00010001 du protocole.

ConfigureEnableEndpointsEx
Intialise tous les points de terminaison en sélectionnant l’appareil et le descripteur de configuration avec la vitesse la plus élevée (jusqu’à SuperSpeed) prise en charge par le matériel. Active l’appareil en définissant le bit d’exécution/arrêt. Voir EFI_USBFN_IO_PROTOCOL. ConfigureEnableEndpointsEx. Cette fonction est disponible à partir de la révision 0x00010002 du protocole.

Notes

Le tableau suivant répertorie les fonctions prises en charge dans chaque version du protocole EFI_USBFN_IO_PROTOCOL .

Révision 0x00010002 Révision 0x00010001 Révision 0x00010000
ConfigureEnableEndpointsEx DetectPort
ConfigureEnableEndpoints
GetEndpointMaxPacketSize
GetDeviceInfo
GetVendorIdProductId
AbortTransfer
GetEndpointStallState
SetEndpointStallState
Eventhandler
Transférer
GetMaxTransferSize
AllocationTransferBuffer
FreeTransferBuffer
StartController
StopController
SetEndpointPolicy
GetEndpointPolicy
DetectPort
ConfigureEnableEndpoints
GetEndpointMaxPacketSize
GetDeviceInfo
GetVendorIdProductId
Abandonnertransfert
GetEndpointStallState
SetEndpointStallState
Eventhandler
Transférer
GetMaxTransferSize
AllocationTransferBuffer
FreeTransferBuffer