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