IOCTL_USBPRINT_GET_1284_ID IOCTL (usbprint.h)

Mit dem IOCTL_USBPRINT_GET_1284_ID Steuercode kann Software auf oberster Ebene (z. B. ein Sprachmonitor) die IEEE 1284-Geräte-ID-Zeichenfolge des Druckers anfordern und abrufen.

Hauptcode

IRP_MJ_DEVICE_CONTROL

Eingabepuffer

In diesem Vorgang nicht verwendet; Legen Sie diesen Parameter auf NULL fest.

Länge des Eingabepuffers

In diesem Vorgang nicht verwendet; Legen Sie diesen Parameter auf 0 fest.

Ausgabepuffer

Der Ausgabepuffer enthält UCHAR-Daten. Bei Erfolg kann dieser Puffer Folgendes enthalten: ein Zwei-Byte-Präfix, das die Größe der IEEE 1284-Geräte-ID des Geräts in Bytes angibt; die Geräte-ID; und ein NULL-Abschlusszeichen. Eine IEEE 1284-Geräte-ID kann bis zu 64 KB groß sein. Wenn GetLastError bei Einem Fehler den Fehlercode STATUS_BUFFER_TOO_SMALL zurückgibt, war der Ausgabepuffer nicht groß genug, um die dafür vorgesehenen Daten zu enthalten.

Länge des Ausgabepuffers

Der Ausgabepuffer muss groß genug sein, um eine Zwei-Byte-Menge zu enthalten, die die Länge der IEEE 1284-Geräte-ID des Geräts, die Geräte-ID (bis zu 64 KB groß) und einen endenden NULL-Wert enthält.

Die IOCTL_USBPRINT_GET_1284_ID Länge des Ausgabepuffers wird direkt in das USB-Paket eingefügt. Auf einigen USB-Druckgeräten kann die Verwendung der maximalen 65535 Bytes dazu führen, dass der Aufruf mit Fehler 23 fehlschlägt. Reduzieren Sie den Puffer auf 4094 Bytes oder weniger, um dieses Problem zu beheben.

Statusblock

Irp->IoStatus.Status ist auf STATUS_SUCCESS festgelegt, wenn die Anforderung erfolgreich ist. Andernfalls wird Status zur entsprechenden Fehlerbedingung als NTSTATUS-Code verwendet.

Anforderungen

Anforderung Wert
Header usbprint.h

Weitere Informationen

Erstellen von IOCTL-Anforderungen in Treibern

WdfIoTargetSendInternalIoctlOthersSynchronly

WdfIoTargetSendInternalIoctlSynchronously

WdfIoTargetSendIoctlSynchronously