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

Vedi anche

StartDocPort

OpenPortEx

OpenPort

MONITOR2

EndDocPort