Compartilhar via


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

Confira também

StartDocPort

OpenPortEx

OpenPort

MONITOR2

EndDocPort