Partager via


structure _URB_SELECT_CONFIGURATION (usb.h)

La structure _URB_SELECT_CONFIGURATION est utilisée par les pilotes clients pour sélectionner une configuration pour un périphérique USB.

Syntaxe

struct _URB_SELECT_CONFIGURATION {
  struct _URB_HEADER            Hdr;
  PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor;
  USBD_CONFIGURATION_HANDLE     ConfigurationHandle;
  USBD_INTERFACE_INFORMATION    Interface;
};

Membres

Hdr

Pointeur vers une structure _URB_HEADER qui spécifie les informations d’en-tête URB. Hdr.Function doit être URB_FUNCTION_SELECT_CONFIGURATION, et Hdr.Length doit être la taille de l’ensemble de l’URB. Les pilotes peuvent utiliser la macro GET_SELECT_CONFIGURATION_REQUEST_SIZE définie dans usbdlib.h pour obtenir la taille de l’URB.

ConfigurationDescriptor

Pointeur vers un descripteur de configuration USB initialisé qui identifie la configuration à utiliser sur l’appareil. Si ce membre est NULL, l’appareil est défini sur un état non configuré.

ConfigurationHandle

Contient un handle utilisé pour accéder à cette configuration à partir du pilote du contrôleur hôte. Les pilotes clients USB doivent traiter ce membre comme opaque.

Interface

Spécifie un tableau de longueur variable de structures USBD_INTERFACE_INFORMATION, chacune décrivant une interface prise en charge par la configuration sélectionnée.

Avant l’envoi de la requête au pilote du contrôleur hôte, le pilote peut sélectionner un autre paramètre pour une ou plusieurs des interfaces contenues dans ce tableau en définissant les membres de la structure USBD_INTERFACE_INFORMATION pour cette interface.

À l’issue du pilote du contrôleur hôte, ce membre contient une structure USBD_INTERFACE_INFORMATION avec des données décrivant les fonctionnalités et le format des points de terminaison au sein de cette interface.

Remarques

Une URB_FUNCTION_SELECT_CONFIGURATION URB se compose d’une structure _URB_SELECT_CONFIGURATION suivie d’une séquence de tableaux de USBD_INTERFACE_INFORMATION structures de longueur variable, chaque élément du tableau pour chaque numéro d’interface unique dans la configuration. Les pilotes clients doivent allouer suffisamment de mémoire pour contenir une structure USBD_PIPE_INFORMATION pour chaque point de terminaison dans les interfaces sélectionnées.

Les pilotes peuvent utiliser la routine de service USBD_CreateConfigurationRequestEx pour allouer l’URB.

D’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.

Exigences

Exigence Valeur
d’en-tête usb.h (include Usb.h)

Voir aussi

URB

structures USB

USBD_CreateConfigurationRequestEx

USBD_INTERFACE_INFORMATION

USBD_PIPE_INFORMATION

_URB_HEADER