語言監視器
語言監視器是使用者模式 DLL,可提供兩個用途:
它們提供列印後台處理程式與雙向印表機之間的完整雙工通訊路徑,這些印表機能夠提供可軟體存取的狀態資訊。
他們會將印表機控件資訊,例如印表機作業語言所定義的命令新增至數據流。
Microsoft 提供語言監視器 Pjlmon.dll,其支援 印表機作業語言 (PJL) ,並提供 PJL 印表機的雙向通訊。 如需詳細資訊,請參閱 範例語言監視器。
您可以針對單向或雙向印表機,撰寫自定義語言監視器以支援其他作業控制語言。
語言監視器是選擇性的,只有在印表機的 INF 檔案中包含時,才會與特定印表機類型相關聯,如 安裝列印監視器中所述。
如果您在印表機屬性對話方塊的 [埠] 索引卷標中清除 [啟用雙向支援] 複選框,多任務緩衝處理程式將不會呼叫語言監視器的 StartDocPort、WritePort、EndDocPort、GetPrinterDataFromPort、ReadPort 函式。
即使清除 [啟用雙向支援],Spooler 仍會繼續呼叫 OpenPortEx、ClosePort、SendRecvBidiDataFromPort 函式。 [ 啟用雙向支援 ] 複選框不會影響應用程式在雙向通訊 API 中呼叫函式時所對語言監視器的呼叫。
如果語言監視器與印表機相關聯,則語言監視器會從列印處理器接收印表機的數據流、修改它,並將它傳遞至印表機的埠監視器。 如需詳細資訊,請參閱 語言和埠監視器互動。
注意
語言監視器應該一律實作 SendRecvBidiDataFromPort 函式,並在 MONITOR2 結構的 pfnSendRecvBidiDataFromPort 成員中包含函式的位址。
如果語言監視器不支援 bidi,或要求包含語言監視器不支援的 bidi 架構值,則語言監視器應該將呼叫轉送至埠監視器的 SendRecvBidiDataFromPort 函式。