Função WritePort (winsplp.h)
A função de um monitor de WritePort
porta grava dados em uma porta de impressora.
Sintaxe
BOOL WritePort(
_In_ HANDLE hPort,
_In_ LPBYTE pBuffer,
DWORD cbBuf,
_Out_ LPDWORD pcbWritten
);
Parâmetros
[in] hPort
Identificador de porta fornecido pelo chamador.
[in] pBuffer
Ponteiro fornecido pelo chamador para um buffer que contém dados a serem gravados na porta.
cbBuf
Tamanho fornecido pelo chamador, em bytes, de pBuffer.
[out] pcbWritten
Ponteiro fornecido pelo chamador para um local para receber o número de bytes gravados com êxito na porta.
Retornar valor
Se a operação for bem-sucedida, a função deverá retornar TRUE. Caso contrário, ele deverá retornar FALSE.
Comentários
Monitores de linguagem e DLLs de servidor de monitor de porta são necessários para definir uma WritePort
função e incluir o endereço da função em uma estrutura MONITOR2 .
O identificador recebido como o argumento hPort da função é o identificador de porta fornecido pela função OpenPort ou OpenPortEx do monitor.
Normalmente, a função de um monitor de WritePort
linguagem adiciona comandos específicos de linguagem ao fluxo de dados contido no buffer apontado por pBuffer e, em seguida, passa o fluxo de dados modificado para a função do monitor de WritePort
porta.
Uma função de DLL do servidor de monitor de WritePort
porta geralmente chama WriteFile (descrito na documentação do SDK do Microsoft Windows) para enviar o fluxo de dados para o driver de porta no modo kernel.
Um trabalho de impressão típico consiste em várias chamadas para WritePort
. Cada chamada pode ter um valor cbBuf diferente.
A função deve retornar o número de bytes gravados com êxito colocando o número no local apontado por pcbWritten. Para monitores de idioma, esse número não deve incluir o número de bytes adicionais específicos do idioma adicionados ao fluxo de dados.
O spooler determina o êxito ou a falha da operação de gravação verificando WritePort
o valor retornado de , não a contagem de bytes retornada. Portanto, uma contagem de bytes retornada de zero não representa uma gravação com falha, a menos que a função retorne FALSE.
Algum tipo de mecanismo de tempo limite implementado pelo sistema ou implementado pelo monitor deve garantir que a WritePort
função retorne dentro de um período razoável, para evitar a interrupção do spooler.
É aceitável que um monitor de idioma chame a rotina de WritePort
um monitor de porta fora de um par StartDocPort/EndDocPort . No entanto, alguns monitores de porta podem falhar em tal chamada, portanto, o monitor de idioma deve ser gravado para lidar com essa falha.
Requisitos
Requisito | Valor |
---|---|
Plataforma de Destino | Área de Trabalho |
Cabeçalho | winsplp.h (inclua Winsplp.h) |
Biblioteca | NtosKrnl.exe |