Funzione WritePort (winsplp.h)
Una funzione di WritePort
monitoraggio delle porte scrive i dati in una porta della stampante.
Sintassi
BOOL WritePort(
_In_ HANDLE hPort,
_In_ LPBYTE pBuffer,
DWORD cbBuf,
_Out_ LPDWORD pcbWritten
);
Parametri
[in] hPort
Handle di porta fornito dal chiamante.
[in] pBuffer
Puntatore fornito dal chiamante a un buffer contenente dati da scrivere nella porta.
cbBuf
Dimensioni fornite dal chiamante, in byte, di pBuffer.
[out] pcbWritten
Puntatore fornito dal chiamante a una posizione per ricevere il numero di byte scritti correttamente nella porta.
Valore restituito
Se l'operazione ha esito positivo, la funzione deve restituire TRUE. In caso contrario, deve restituire FALSE.
Commenti
I monitoraggi del linguaggio e le DLL del server di monitoraggio delle porte sono necessari per definire una WritePort
funzione e includere l'indirizzo della funzione in una struttura MONITOR2.
L'handle ricevuto come argomento hPort della funzione è l'handle di porta fornito dalla funzione OpenPort o OpenPortEx del monitoraggio.
In genere, la funzione di WritePort
monitoraggio del linguaggio aggiunge comandi specifici del linguaggio al flusso di dati contenuto nel buffer a cui fa riferimento pBuffer e quindi passa il flusso di dati modificato alla funzione del WritePort
monitor della porta.
La funzione della DLL del WritePort
server di monitoraggio delle porte chiama in genere WriteFile (descritta nella documentazione di Microsoft Windows SDK) per inviare il flusso di dati al driver della porta in modalità kernel.
Un processo di stampa tipico è costituito da più chiamate a WritePort
. Ogni chiamata può avere un valore cbBuf diverso.
La funzione deve restituire il numero di byte scritti correttamente inserendo il numero nella posizione puntata da pcbScritto. Per i monitoraggi linguistici, questo numero non deve includere il numero di byte aggiuntivi specifici della lingua aggiunti al flusso di dati.
Il spooler determina l'esito positivo o negativo dell'operazione di scrittura controllando WritePort
il valore restituito, non il conteggio dei byte restituiti. Quindi un conteggio di byte restituito di zero non rappresenta una scrittura non riuscita a meno che la funzione non restituisca FALSE.
Un certo tipo di meccanismo di timeout implementato dal sistema o di monitoraggio deve garantire che la funzione restituirà entro un periodo di tempo ragionevole, per evitare di stallare lo WritePort
spooler.
È accettabile che un monitoraggio del linguaggio chiami la routine di WritePort
un monitoraggio porta all'esterno di una coppia StartDocPort EndDocPort/. Tuttavia, alcuni monitoraggi delle porte potrebbero non riuscire in una chiamata di questo tipo, quindi il monitoraggio del linguaggio deve essere scritto per gestire questo errore.
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Desktop |
Intestazione | winsplp.h (include Winsplp.h) |
Libreria | NtosKrnl.exe |