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 |