Partager via


IOCTL_INTERNAL_USBFN_TRANSFER_IN_APPEND_ZERO_PKT IOCTL (usbfnioctl.h)

Le pilote de classe envoie cette requête pour lancer un transfert IN vers le canal spécifié et ajoute un paquet de longueur zéro 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 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.

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 zéro après l’envoi des données fournies dans la mémoire tampon de données. Un paquet de longueur nulle est ajouté uniquement par le contrôleur si la taille de la charge utile de transfert est un multiple de la taille maximale du paquet du point de terminaison.

Exigences

Exigence Valeur
d’en-tête usbfnioctl.h