语言监视器是用于两个用途的用户模式 DLL:
这些设备提供了打印后台处理系统与能够提供软件可访问状态信息的双向打印机之间的完整双工通信路径。
它们将打印机控件信息(如打印机作业语言定义的命令)添加到数据流。
Microsoft提供语言监视器 Pjlmon.dll,它支持 打印机作业语言(PJL),并为 PJL 打印机提供双向通信。 有关详细信息,请参阅 示例语言监视器。
可以为单向或双向打印机编写自定义语言监视器以支持其他作业控制语言。
语言监视器是可选的,仅在打印机的 INF 文件中包括时与特定打印机类型相关联,如 安装打印监视器中所述。
如果在打印机属性对话框的端口选项卡中取消选中启用双向支持复选框,后台处理程序将不会调用语言监视器的StartDocPort、WritePort、EndDocPort、GetPrinterDataFromPort、ReadPort函数。
即使“启用双向支持”被取消选中,后台处理程序仍会继续调用OpenPortEx、ClosePort、SendRecvBidiDataFromPort函数。 “启用双向支持”复选框不会影响应用程序调用双向通信 API 中的函数时对语言监视器的调用。
如果语言监视器与打印机相关联,语言监视器将从打印处理器接收打印机的数据流,对其进行修改,并将其传递给打印机的端口监视器。 有关详细信息,请参阅 语言和端口监视器交互。
注释
语言监视器应始终实现 SendRecvBidiDataFromPort 函数,并将函数的地址包含在MONITOR2结构的 pfnSendRecvBidiDataFromPort 成员中。
如果语言监视器不支持 bidi,或者请求包含语言监视器不支持的 bidi 架构值,语言监视器应将调用转发到端口监视器的 SendRecvBidiDataFromPort 函数。