语言监视器

语言监视器是用户模式 DLL,有两个用途:

  • 它们提供打印后台处理程序和双向打印机之间的全双工通信路径,这些打印机能够提供软件可访问的状态信息。

  • 他们将打印机控制信息(如打印机作业语言定义的命令)添加到数据流。

Microsoft 提供语言监视器 Pjlmon.dll,它支持 打印机作业语言 (PJL) ,并为 PJL 打印机提供双向通信。 有关详细信息,请参阅 示例语言监视器

可以编写自定义语言监视器以支持其他作业控制语言,适用于单向或双向打印机。

语言监视器是可选的,仅当包含在打印机的 INF 文件中时才与特定打印机类型关联,如 安装打印监视器中所述。

如果在打印机属性对话框的“端口”选项卡中清除“启用双向支持检查”框,后台处理程序将不会调用语言监视器的 StartDocPortWritePortEndDocPortGetPrinterDataFromPortReadPort 函数。

即使清除了“启用双向支持”,后台处理程序仍会继续调用 OpenPortExClosePortSendRecvBidiDataFromPort 函数。 “启用双向支持检查框不会影响在应用程序调用双向通信 API 中的函数时对语言监视器的调用。

如果语言监视器与打印机相关联,则语言监视器将从打印处理器接收打印机的数据流,对其进行修改,并将其传递到打印机的端口监视器。 有关详细信息,请参阅 语言和端口监视器交互

注意

语言监视器应始终实现 SendRecvBidiDataFromPort 函数,并将函数的地址包含在 MONITOR2 结构的 pfnSendRecvBidiDataFromPort 成员中。

如果语言监视器不支持 bidi,或者请求包含语言监视器不支持的 bidi 架构值,则语言监视器应将调用转发到端口监视器的 SendRecvBidiDataFromPort 函数。