USB_CONFIGURATION_DESCRIPTOR structure (usbspec.h)

La structure USB_CONFIGURATION_DESCRIPTOR est utilisée par les pilotes clients USB pour contenir un descripteur de configuration défini par USB. Les membres de cette structure sont décrits dans la spécification Universal Serial Bus 3.1 disponible dans la bibliothèque de documents USB. Voir la section 9.6.3.

Syntaxe

typedef struct _USB_CONFIGURATION_DESCRIPTOR {
  UCHAR  bLength;
  UCHAR  bDescriptorType;
  USHORT wTotalLength;
  UCHAR  bNumInterfaces;
  UCHAR  bConfigurationValue;
  UCHAR  iConfiguration;
  UCHAR  bmAttributes;
  UCHAR  MaxPower;
} USB_CONFIGURATION_DESCRIPTOR, *PUSB_CONFIGURATION_DESCRIPTOR;

Membres

bLength

Spécifie la longueur, en octets, de cette structure.

bDescriptorType

Spécifie le type de descripteur. Doit être défini sur USB_CONFIGURATION_DESCRIPTOR_TYPE.

wTotalLength

Spécifie la longueur totale, en octets, de toutes les données pour la configuration. La longueur inclut tous les descripteurs d’interface, de point de terminaison, de classe ou de fournisseur qui sont retournés avec le descripteur de configuration.

bNumInterfaces

Spécifie le nombre total d’interfaces prises en charge par cette configuration.

bConfigurationValue

Contient la valeur utilisée pour sélectionner une configuration. Cette valeur est passée à la requête USB SetConfiguration , comme décrit dans la version 1.1 de la spécification du bus série universel. Actuellement, le pilote de port n’expose pas de service qui permet aux pilotes de niveau supérieur de définir la configuration.

iConfiguration

Spécifie l’index défini par l’appareil du descripteur de chaîne pour cette configuration.

bmAttributes

Spécifie une bitmap pour décrire le comportement de cette configuration. Les bits sont décrits et définis dans l’ordre little-endian.

bit Signification
0 - 4 Réservé.
5 La configuration prend en charge la mise en éveil à distance.
6 La configuration est auto-alimentée et n’utilise pas l’alimentation du bus.
7 La configuration est alimentée par le bus.

MaxPower

Spécifie les exigences d’alimentation de cet appareil en unités de deux milliampères. Ce membre est valide uniquement si le bit 7 est défini dans bmAttributes.

Remarques

Si wTotalLength est supérieur à la taille de mémoire tampon fournie dans l’URB pour contenir tous les descripteurs récupérés (interface, point de terminaison, classe et défini par le fournisseur), les données incomplètes sont retournées. Pour récupérer des descripteurs complets, la demande doit être ré-envoyée avec une mémoire tampon plus grande.

Si les bits bmAttributes six et sept sont tous les deux définis, l’appareil est alimenté à la fois par le bus et par une source externe au bus.

Les autres membres qui font partie de cette structure mais qui ne sont pas décrits ici doivent être traités comme opaques et considérés comme réservés à l’utilisation du système.

Configuration requise

Condition requise Valeur
En-tête usbspec.h (inclure Usb100.h)

Voir aussi

USB Structures

USBD_CreateConfigurationRequest

UsbBuildGetDescriptorRequest