IOCTL_INTERNAL_USBFN_GET_INTERFACE_DESCRIPTOR_SET IOCTL (usbfnioctl.h)
Le pilote de classe envoie cette requête pour obtenir l’ensemble du descripteur d’interface USB défini pour une fonction sur l’appareil.
Code principal
IRP_MJ_INTERNAL_DEVICE_CONTROL
Mémoire tampon d’entrée
Pointeur vers une mémoire tampon qui contient une structure USBFN_INTERFACE_INFO.
Longueur de la mémoire tampon d’entrée
La longueur de la mémoire tampon d’entrée doit être au moins sizeof(USBFN_INTERFACE_INFO)
.
Mémoire tampon de sortie
Pointeur vers une mémoire tampon qui contient une structure USBFN_INTERFACE_INFO. L’extension de classe de fonction USB (UFX) remplit la structure avec l’ensemble du descripteur d’interface, y compris ses descripteurs de point de terminaison.
Longueur de la mémoire tampon de sortie
La longueur de la mémoire tampon de sortie doit être au moins sizeof(USBFN_INTERFACE_INFO)
.
Bloc d’état
Si la requête réussit, l’extension de classe de fonction USB (UFX) retourne STATUS_SUCCESS, ou une autre valeur d’état pour laquelle NT_SUCCESS(status) a la valeur TRUE. Sinon, elle retourne une valeur d’état pour laquelle NT_SUCCESS(status) a la valeur FALSE.
Remarques
Cette demande doit être envoyée après l’envoi de la demande de IOCTL_INTERNAL_USBFN_ACTIVATE_USB_BUS.
La longueur de l’ensemble du descripteur d’interface est variable. Le pilote de classe peut avoir besoin d’envoyer cette demande IOCTL deux fois pour obtenir l’ensemble du descripteur.
Si la longueur du jeu de descripteur entier est supérieure à la longueur de la mémoire tampon de sortie spécifiée, UFX définit le membre Size de USBFN_INTERFACE_INFO à la longueur réelle de la mémoire tampon et échoue la requête avec STATUS_BUFFER_TOO_SMALL. Le pilote doit ensuite allouer une mémoire tampon de sortie de longueur spécifiée par Taille et renvoyer la requête.
Exigences
Exigence | Valeur |
---|---|
d’en-tête | usbfnioctl.h |