Función WritePort (winsplp.h)
La función WritePort
del monitor de puertos escribe datos en un puerto de impresora.
Sintaxis
BOOL WritePort(
_In_ HANDLE hPort,
_In_ LPBYTE pBuffer,
DWORD cbBuf,
_Out_ LPDWORD pcbWritten
);
Parámetros
[in] hPort
Identificador de puerto proporcionado por el autor de la llamada.
[in] pBuffer
Puntero proporcionado por el autor de la llamada a un búfer que contiene datos que se van a escribir en el puerto.
cbBuf
Tamaño proporcionado por el autor de la llamada, en bytes, de pBuffer.
[out] pcbWritten
Puntero proporcionado por el autor de la llamada a una ubicación para recibir el número de bytes escritos correctamente en el puerto.
Valor devuelto
Si la operación se realiza correctamente, la función debe devolver TRUE. De lo contrario, debe devolver FALSE.
Observaciones
Los monitores de lenguaje y archivos DLL del servidor de supervisión de puertos son necesarios para definir una función de WritePort
e incluir la dirección de la función en una estructura de MONITOR2.
El identificador recibido como argumento de hPort de la función es el identificador de puerto proporcionado por la función openPort o OpenPortEx del monitor.
Normalmente, la función WritePort
de un monitor de lenguaje agrega comandos específicos del lenguaje al flujo de datos contenido en el búfer al que apunta pBuffery, a continuación, pasa el flujo de datos modificado a la función de WritePort
del monitor de puerto.
Normalmente, una función WritePort
dll del servidor de supervisión de puertos llama a writeFile (que se describe en la documentación de Microsoft Windows SDK) para enviar el flujo de datos al controlador de puerto en modo kernel.
Un trabajo de impresión típico consta de varias llamadas a WritePort
. Cada llamada puede tener un valor cbBuf diferente.
La función debe devolver el número de bytes escritos correctamente colocando el número en la ubicación a la que apunta pcbWritten. En el caso de los monitores de idioma, este número no debe incluir el número de bytes adicionales específicos del idioma agregados al flujo de datos.
El administrador de colas determina el éxito o el error de la operación de escritura comprobando WritePort
valor devuelto, no el número de bytes devuelto. Por lo tanto, un recuento de bytes devuelto de cero no representa una escritura con errores a menos que la función devuelva FALSE.
Algún tipo de mecanismo de tiempo de espera implementado por el sistema o supervisado debe asegurarse de que la función WritePort
devolverá dentro de un período de tiempo razonable, para evitar detener el colado.
Es aceptable que un monitor de idioma llame a la rutina de WritePort
de un monitor de puerto fuera de un par de StartDocPort/EndDocPort. Sin embargo, algunos monitores de puerto pueden producir un error en esta llamada, por lo que el monitor de idioma debe escribirse para controlar este error.
Requisitos
Requisito | Valor |
---|---|
de la plataforma de destino de | Escritorio |
encabezado de | winsplp.h (incluya Winsplp.h) |
biblioteca de | NtosKrnl.exe |