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
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