_URB_SELECT_INTERFACE structure (usb.h)

La structure _URB_SELECT_INTERFACE est utilisée par les pilotes clients USB pour sélectionner un autre paramètre pour une interface ou pour modifier la taille maximale de paquets d’un canal dans la configuration actuelle sur un périphérique USB.

Syntaxe

struct _URB_SELECT_INTERFACE {
  struct _URB_HEADER         Hdr;
  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_INTERFACE, et Hdr.Length doit être la taille de l’ensemble de l’URB.

ConfigurationHandle

Spécifie le handle de la configuration à laquelle cette interface appartient. Le pilote du contrôleur hôte retourne ce handle lorsque le client sélectionne la configuration avec une demande de URB_FUNCTION_SELECT_CONFIGURATION.

Interface

Structure de USBD_INTERFACE_INFORMATION de longueur variable qui spécifie l’interface et le nouveau paramètre de remplacement pour cette interface, et, si nécessaire, les nouvelles tailles maximales de paquets pour les canaux correspondants. Pour plus d'informations, consultez la section Notes.

Remarques

Vous pouvez utiliser la macro GET_SELECT_INTERFACE_REQUEST_SIZE pour déterminer la taille du URB_FUNCTION_SELECT_INTERFACE URB et la routine UsbBuildSelectInterfaceRequest pour mettre en forme l’URB.

La structure USBD_INTERFACE_INFORMATION contient des informations sur l’interface et son autre paramètre. Le membre Pipes de USBD_INTERFACE_INFORMATION pointe vers un tableau de structures USBD_PIPE_INFORMATION . Le tableau stocke des informations sur les canaux associés aux points de terminaison de l’interface. Vous pouvez remplacer certains paramètres par défaut d’un canal, tels que sa taille de paquet maximale. Pour modifier la taille maximale des paquets, définissez l’indicateur USBD_PF_CHANGE_MAX_PACKET dans Pipes[i].PipeFlags, puis spécifiez la nouvelle valeur dans Pipes[i].MaximumPacketSize.

Une fois que le pilote de bus a correctement terminé le traitement de la URB_FUNCTION_SELECT_INTERFACE URB, il retourne un tableau de handles pour chaque canal dans le Pipes[i].PipeHandle membre. Le pilote client peut stocker des handles de canal pour envoyer des demandes d’E/S à des canaux spécifiques.

Configuration requise

Condition requise Valeur
En-tête usb.h (incluez Usb.h)

Voir aussi

Configuration des périphériques USB

URB

USB Structures

USBD_INTERFACE_INFORMATION

_URB_HEADER