USB_DESCRIPTOR_REQUEST structure (usbioctl.h)
La structure USB_DESCRIPTOR_REQUEST est utilisée avec la demande de contrôle d’E /S IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION pour récupérer un ou plusieurs descripteurs pour l’appareil associé à l’index de connexion indiqué. Les champs de cette structure sont décrits dans la spécification Universal Serial Bus 3.1 disponible dans la bibliothèque de documents USB.
Syntaxe
typedef struct _USB_DESCRIPTOR_REQUEST {
ULONG ConnectionIndex;
struct {
UCHAR bmRequest;
UCHAR bRequest;
USHORT wValue;
USHORT wIndex;
USHORT wLength;
} SetupPacket;
UCHAR Data[0];
} USB_DESCRIPTOR_REQUEST, *PUSB_DESCRIPTOR_REQUEST;
Membres
ConnectionIndex
Port dont les descripteurs sont récupérés.
SetupPacket
Membres de la structure SetupPacket définies conformément à la spécification officielle. Voir la section 9.3.
SetupPacket.bmRequest
Type de demande de périphérique USB (standard, classe ou fournisseur), direction du transfert de données et type de destinataire de données (appareil, interface ou point de terminaison). Lors de l’entrée dans la demande de contrôle d’E /S IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION, la pile USB ignore la valeur de bmRequest et insère une valeur de 0x80. Cette valeur indique une demande de périphérique USB standard et un transfert de données appareil-hôte.
SetupPacket.bRequest
Numéro de la demande. Lors de l’entrée dans la demande de contrôle d’E /S IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION, la pile USB ignore la valeur de bRequest et insère une valeur de 0x06. Cette valeur indique une demande de GET_DESCRIPTOR.
SetupPacket.wValue
Lors de l’entrée dans la demande de contrôle d’E /S IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION, l’appelant doit spécifier le type de descripteur à récupérer dans l’octet élevé de wValue et l’index de descripteur dans l’octet faible. Le tableau suivant répertorie les types de descripteurs possibles. Ces types de constantes sont définis dans l’en-tête Usbspec.h inclus dans le Kit de pilotes Windows.
Type de descripteur | Signification |
---|---|
USB_DEVICE_DESCRIPTOR_TYPE | Indique à la pile USB de retourner le descripteur de périphérique. |
USB_CONFIGURATION_DESCRIPTOR_TYPE | Indique à la pile USB de retourner le descripteur de configuration et tous les descripteurs d’interface, de point de terminaison, spécifiques à la classe et au fournisseur associés à la configuration actuelle. |
USB_STRING_DESCRIPTOR_TYPE | Indique à la pile USB de retourner le descripteur de chaîne indiqué. |
USB_INTERFACE_DESCRIPTOR_TYPE | Indique à la pile USB de retourner le descripteur d’interface indiqué. |
USB_ENDPOINT_DESCRIPTOR_TYPE | Indique à la pile USB de retourner le descripteur de point de terminaison indiqué. |
SetupPacket.wIndex
Index spécifique à l’appareil du descripteur qui doit être récupéré.
SetupPacket.wLength
Longueur des données transférées pendant la deuxième phase du transfert de contrôle.
Data[0]
Lors de la sortie de la demande de contrôle d’E /S IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION, ce membre contient les descripteurs récupérés.
Remarques
Si l’appelant spécifie une valeur de USB_CONFIGURATION_DESCRIPTOR_TYPE dans le membre wValue , la mémoire tampon de sortie doit être suffisamment grande pour contenir tous les descripteurs associés à la configuration actuelle, sinon la demande échoue.
Configuration requise
Condition requise | Valeur |
---|---|
En-tête | usbioctl.h (include Usbioctl.h) |