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