Share via


IOCTL_USBPRINT_GET_1284_ID IOCTL (usbprint.h)

Le code de contrôle IOCTL_USBPRINT_GET_1284_ID permet aux logiciels de couche supérieure (tels qu’un moniteur de langage) de demander et d’obtenir la chaîne d’ID d’appareil IEEE 1284 de l’imprimante.

Code principal

IRP_MJ_DEVICE_CONTROL

Mémoire tampon d'entrée

Non utilisé dans cette opération ; définissez ce paramètre sur NULL.

Longueur de la mémoire tampon d’entrée

Non utilisé dans cette opération ; définissez ce paramètre sur 0.

Mémoire tampon de sortie

La mémoire tampon de sortie contiendra des données UCHAR. En cas de réussite, cette mémoire tampon peut contenir les éléments suivants : un préfixe de deux octets qui spécifie la taille, en octets, de l’ID d’appareil IEEE 1284 de l’appareil ; l’ID de l’appareil ; et un point de terminaison null. Un ID d’appareil IEEE 1284 peut atteindre 64 Ko. En cas d’échec, si GetLastError retourne le code d’erreur STATUS_BUFFER_TOO_SMALL, la mémoire tampon de sortie n’était pas assez grande pour contenir les données qui lui étaient destinées.

Longueur de la mémoire tampon de sortie

La mémoire tampon de sortie doit être suffisamment grande pour contenir une quantité de deux octets contenant la longueur de l’ID d’appareil IEEE 1284 de l’appareil, l’ID de l’appareil (jusqu’à 64 Ko de taille) et une valeur Null de fin.

La longueur de la mémoire tampon de sortie IOCTL_USBPRINT_GET_1284_ID est placée directement dans le paquet USB. Sur certains périphériques d’impression USB, l’utilisation du nombre maximal de 65535 octets peut entraîner l’échec de l’appel avec l’erreur 23. Réduisez la mémoire tampon à 4 094 octets ou moins pour résoudre ce problème.

Bloc d’état

Irp->IoStatus.Status est défini sur STATUS_SUCCESS si la demande réussit. Sinon, indiquez la condition d’erreur appropriée en tant que code NTSTATUS .

Configuration requise

Condition requise Valeur
En-tête usbprint.h

Voir aussi

Création de requêtes IOCTL dans les pilotes

WdfIoTargetSendInternalIoctlOthersSynchronously

WdfIoTargetSendInternalIoctlSynchronously

WdfIoTargetSendIoctlSynchronously