IOCTL_INTERNAL_USBFN_TRANSFER_IN_APPEND_ZERO_PKT IOCTL (usbfnioctl.h)
Le pilote de classe envoie cette demande pour lancer un transfert IN vers le canal spécifié et ajoute un paquet de longueur nulle pour indiquer la fin du transfert.
Code principal
IRP_MJ_INTERNAL_DEVICE_CONTROL
Mémoire tampon d'entrée
Pointeur vers un type USBFNPIPEID qui spécifie l’ID de canal.
Longueur de la mémoire tampon d’entrée
Taille d’un type USBFNPIPEID .
Mémoire tampon de sortie
La mémoire tampon de sortie pointe vers une mémoire tampon de données contenant les données à envoyer. La direction IN est du point de vue de l’hôte représentant un transfert sortant de l’appareil vers l’hôte.
Longueur de la mémoire tampon de sortie
Taille des données à envoyer.
Bloc d’état
Si la demande réussit, l’extension de classe de fonction USB (UFX) retourne STATUS_SUCCESS ou une autre valeur status pour laquelle NT_SUCCESS(status) est true. Sinon, il retourne une valeur status pour laquelle NT_SUCCESS(status) est FALSE.
Remarques
Cette demande doit être envoyée après l’envoi de la demande de IOCTL_INTERNAL_USBFN_ACTIVATE_USB_BUS .
UFX transfère cette demande IOCTL à la file d’attente de transfert créée pour le point de terminaison par UfxEndpointCreate.
Le contrôleur de fonction lance un transfert dans le sens IN sur le point de terminaison et ajoute automatiquement un transfert de paquets de longueur nulle une fois que les données fournies dans la mémoire tampon de données ont été correctement envoyées. Un paquet de longueur nulle n’est ajouté par le contrôleur que si la taille de la charge utile de transfert est un multiple de la taille maximale du paquet du point de terminaison.
Configuration requise
Condition requise | Valeur |
---|---|
En-tête | usbfnioctl.h |