IOCTL_USBPRINT_GET_1284_ID IOCTL (usbprint.h)
Der IOCTL_USBPRINT_GET_1284_ID-Steuerelementcode ermöglicht die Software der oberen Ebene (z. B. sprachmonitor), die IEEE 1284-Geräte-ID-Zeichenfolge des Druckers anzufordern und abzurufen.
Hauptcode
Eingabepuffer
Wird in diesem Vorgang nicht verwendet; legen Sie diesen Parameter auf NULL-fest.
Eingabepufferlänge
Wird 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-Endator. Eine IEEE 1284-Geräte-ID kann bis zu 64 KB groß sein. Wenn GetLastError den Fehlercode STATUS_BUFFER_TOO_SMALLzurü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 2-Byte-Menge mit der Länge der IEEE 1284-Geräte-ID des Geräts, der Geräte-ID (bis zu 64 KB in der Größe) und einer endenden Null zu enthalten.
Die IOCTL_USBPRINT_GET_1284_ID Ausgabepufferlänge wird direkt in das USB-Paket eingefügt. Bei einigen USB-Druckgeräten kann die Verwendung der maximal 65535 Byte 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 wird auf STATUS_SUCCESS festgelegt, wenn die Anforderung erfolgreich ist. Andernfalls Status der entsprechenden Fehlerbedingung als NTSTATUS- Code.
Anforderungen
Anforderung | Wert |
---|---|
Header- | usbprint.h |
Siehe auch
Erstellen von IOCTL-Anforderungen in Treibern
WdfIoTargetSendInternalIoctlOthersSynchronously