Condividi tramite


IOCTL_USBPRINT_GET_1284_ID IOCTL (usbprint.h)

Il codice di controllo IOCTL_USBPRINT_GET_1284_ID consente al software di livello superiore (ad esempio un monitoraggio del linguaggio), di richiedere e ottenere la stringa di ID dispositivo IEEE 1284 della stampante.

Codice principale

IRP_MJ_DEVICE_CONTROL

Buffer di input

Non usato in questa operazione; impostare questo parametro su NULL.

Lunghezza del buffer di input

Non usato in questa operazione; impostare questo parametro su 0.

Buffer di output

Il buffer di output conterrà i dati UCHAR. In caso di esito positivo, questo buffer può contenere quanto segue: un prefisso a due byte che specifica le dimensioni, in byte, dell'ID dispositivo IEEE 1284 del dispositivo; ID dispositivo; e un carattere di terminazione Null. Un ID dispositivo IEEE 1284 può avere dimensioni fino a 64 KB. In caso di errore, se GetLastError restituisce il codice di errore STATUS_BUFFER_TOO_SMALL, il buffer di output non era sufficientemente grande per contenere i dati previsti.

Lunghezza del buffer di output

Il buffer di output deve essere sufficientemente grande da contenere una quantità a due byte che contiene la lunghezza dell'ID dispositivo IEEE 1284 del dispositivo, l'ID dispositivo (fino a 64 KB di dimensioni) e un valore Null di terminazione.

La lunghezza del buffer di output IOCTL_USBPRINT_GET_1284_ID viene inserita direttamente nel pacchetto USB. In alcuni dispositivi di stampa USB, l'utilizzo massimo di 65535 byte può causare l'esito negativo della chiamata con errore 23. Ridurre il buffer a 4094 byte o meno per risolvere il problema.

Blocco di stato

Irp->IoStatus.Status è impostato su STATUS_SUCCESS se la richiesta ha esito positivo. In caso contrario, stato alla condizione di errore appropriata come codice NTSTATUS.

Fabbisogno

Requisito Valore
intestazione usbprint.h

Vedere anche

creazione di richieste IOCTL nei driver

WdfIoTargetSendInternalIoctlOthersSynchronously

WdfIoTargetSendInternalIoctlSynchronously

WdfIoTargetSendIoctlSynchronously