Partager via


WinUsb_GetDescriptor, fonction (winusb.h)

La fonction WinUsb_GetDescriptor retourne le descripteur demandé. Il s’agit d’une opération synchrone.

Syntaxe

BOOL WinUsb_GetDescriptor(
  [in]  WINUSB_INTERFACE_HANDLE InterfaceHandle,
  [in]  UCHAR                   DescriptorType,
  [in]  UCHAR                   Index,
  [in]  USHORT                  LanguageID,
  [out] PUCHAR                  Buffer,
  [in]  ULONG                   BufferLength,
  [out] PULONG                  LengthTransferred
);

Paramètres

[in] InterfaceHandle

Handle opaque pour une interface dans la configuration sélectionnée.

Pour récupérer l’appareil ou le descripteur de configuration, utilisez le handle retourné par WinUsb_Initialize.

Pour récupérer le descripteur d’interface de la première interface, utilisez le handle retourné par WinUsb_Initialize.

Pour récupérer le descripteur de point de terminaison d’un point de terminaison dans la première interface, utilisez le handle retourné par WinUsb_Initialize.

Pour récupérer les descripteurs de toutes les autres interfaces et leurs points de terminaison associés, utilisez le handle pour l’interface cible, récupéré par WinUsb_GetAssociatedInterface.

[in] DescriptorType

Valeur qui spécifie le type de descripteur à retourner. Ce paramètre correspond au champ bDescriptorType d’un descripteur d’appareil standard, dont les valeurs sont décrites dans la spécification Universal Serial Bus . Certaines de ces valeurs sont répertoriées dans la description du membre DescriptorType de la structure _URB_CONTROL_DESCRIPTOR_REQUEST .

[in] Index

Index de descripteur. Pour obtenir une explication de l’index du descripteur, consultez la spécification Universal Serial Bus (www.usb.org).

[in] LanguageID

Valeur qui spécifie l’identificateur de langue, si le descripteur demandé est un descripteur de chaîne.

[out] Buffer

Mémoire tampon allouée à l’appelant qui reçoit le descripteur demandé.

[in] BufferLength

Longueur, en octets, de Buffer.

[out] LengthTransferred

Nombre d’octets qui ont été copiés dans Buffer.

Valeur retournée

WinUsb_GetDescriptor retourne TRUE si l’opération réussit. Sinon, cette routine retourne FALSE et l’appelant peut récupérer l’erreur journalisée en appelant GetLastError.

GetLastError peut retourner le code d’erreur suivant.

Code de retour Description
ERROR_INVALID_HANDLE
L’appelant a passé la valeur NULL dans le paramètre InterfaceHandle .

Remarques

Si la mémoire tampon de sortie pointée par le paramètre Buffer est suffisamment grande, WinUsb_GetDescriptor crée une copie du descripteur spécifié dans la mémoire tampon de sortie. Aucune donnée n’est copiée si la mémoire tampon n’est pas suffisamment grande pour contenir les données de descripteur. Le descripteur est créé pendant l’appel WinUsb_Initialize ou peut être récupéré à ce stade à partir de l’appareil.

Configuration requise

Condition requise Valeur
Plateforme cible Universal
En-tête winusb.h (inclure Winusb.h)
Bibliothèque Winusb.lib
DLL Winusb.dll

Voir aussi

WinUSB

Fonctions WinUSB

WinUsb_Initialize

_URB_CONTROL_DESCRIPTOR_REQUEST