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