WritePort 函数 (winsplp.h)

端口监视器的 WritePort 函数将数据写入打印机端口。

语法

BOOL WritePort(
  _In_  HANDLE  hPort,
  _In_  LPBYTE  pBuffer,
        DWORD   cbBuf,
  _Out_ LPDWORD pcbWritten
);

参数

[in] hPort

调用方提供的端口句柄。

[in] pBuffer

调用方提供的指针指向包含要写入端口的数据的缓冲区。

cbBuf

pBuffer 的调用方提供的大小(以字节为单位)。

[out] pcbWritten

调用方提供的指针指向要接收成功写入端口的字节数的位置。

返回值

如果操作成功,函数应返回 TRUE。 否则应返回 FALSE

注解

需要语言监视器 和端口监视器服务器 DLL 来定义 WritePort 函数,并将函数的地址包含在 MONITOR2 结构中。

作为函数的 hPort 参数接收的句柄是监视器的 OpenPort 或 OpenPortEx 函数提供的端口句柄

通常,语言监视器的 函数将特定于语言的 WritePort 命令添加到 pBuffer 指向的缓冲区中包含的数据流,然后将修改后的数据流传递到端口监视器的 WritePort 函数。

端口监视器服务器 DLL 的WritePort函数通常调用 writeFile (如 Microsoft Windows SDK 文档) 中所述,将数据流发送到内核模式端口驱动程序。

典型的打印作业由对 的多个调用 WritePort组成。 每个调用都可以具有不同的 cbBuf 值。

函数应返回成功写入的字节数,方法是将数字放置在 由写到的位置。 对于语言监视器,此数字不得包括添加到数据流的额外特定于语言的字节数。

后台处理程序通过检查 WritePort的返回值(而不是返回的字节计数)来确定写入操作的成功或失败。 因此,除非函数返回 FALSE,否则返回的字节计数为零并不表示写入失败。

某种系统实现或监视实现的超时机制必须确保 WritePort 函数将在合理的时间内返回,以避免后台处理程序停止。

语言监视器可以在 StartDocPort EndDocPort/ 对之外调用端口监视器的WritePort例程。 但是,某些端口监视器可能会使此类调用失败,因此必须编写语言监视器来处理此故障。

要求

要求
目标平台 桌面
标头 winsplp.h (包括 Winsplp.h)
Library NtosKrnl.exe

另请参阅

StartDocPort

OpenPortEx

OpenPort

MONITOR2

EndDocPort