Partager via


_URB_SELECT_CONFIGURATION structure (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 de _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 a la valeur NULL, l’appareil est défini sur un état non configuré.

ConfigurationHandle

Contient un descripteur utilisé pour accéder à cette configuration au retour à 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 interfaces contenues dans ce tableau en définissant les membres de la structure USBD_INTERFACE_INFORMATION pour cette interface.

Au retour 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

Un URB_FUNCTION_SELECT_CONFIGURATION URB se compose d’une structure _URB_SELECT_CONFIGURATION suivie d’une séquence de tableaux de longueur variable de structures USBD_INTERFACE_INFORMATION , 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.

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 usb.h (incluez Usb.h)

Voir aussi

URB

USB Structures

USBD_CreateConfigurationRequestEx

USBD_INTERFACE_INFORMATION

USBD_PIPE_INFORMATION

_URB_HEADER