Partager via


structure _URB_SELECT_INTERFACE (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 de paquet maximale 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 _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 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 de paquets maximales pour les canaux correspondants. Pour plus d’informations, consultez Remarques.

Remarques

Vous pouvez utiliser la macro GET_SELECT_INTERFACE_REQUEST_SIZE pour déterminer la taille de l’URB URB_FUNCTION_SELECT_INTERFACE 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 Pipes membre 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 le pilote de bus terminé le traitement du URB_FUNCTION_SELECT_INTERFACE URB, il retourne un tableau de handles pour chaque canal du membre Pipes[i].PipeHandle. Le pilote client peut stocker des handles de canal pour envoyer des demandes d’E/S à des canaux spécifiques.

Exigences

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

Voir aussi

configuration des périphériques USB

URB

structures USB

USBD_INTERFACE_INFORMATION

_URB_HEADER