列印列印作業
開啟埠之後,如 開啟和關閉埠中所述,多任務緩衝處理程式可以將列印作業傳送至埠。
每個列印作業都會以多任務緩衝處理器呼叫來分隔語言或埠監視器的 StartDocPort 和 EndDocPort 函式。 當列印處理器呼叫多任務緩衝處理程式的 StartDocPrinter 和 EndDocPrinter 函式時,多任務緩衝處理程式會呼叫這些函式。
在 一組 StartDocPort 和 EndDocPort 函式的範圍內,可能會發生對監視器 WritePort、 ReadPort 和 GetPrinterDataFromPort 函式的無限制多任務緩衝處理程式呼叫。
每個函式都需要 OpenPortEx (或 OpenPort) 傳回的埠句柄,才能指定為輸入自變數。 一般而言,語言監視器會藉由在其相關聯的埠監視器中呼叫類似名稱函式來實作每個函式。
當多任務緩衝處理程式呼叫語言監視器的 WritePort 函式以將數據流傳送至埠時,函式通常會將 PJL 命令等特定語言資訊新增至接收的數據流,再將它傳遞至相關聯的埠監視器 WritePort 函式。
ReadPort 函式可用來從雙向印表機硬體取得狀態資訊,語言監視器可能會藉由呼叫 SetPort 傳送至多任務緩衝處理程式。 多任務緩衝處理程式不會呼叫 ReadPort 函式。
如果列印硬體是雙向的,其語言監視器和埠監視器都應該支援 GetPrinterDataFromPort 函式。 語言監視器的 GetPrinterDataFromPort 函式應該接受登錄值名稱做為輸入、透過呼叫相關聯的埠監視器 的 WritePort 和 ReadPort 函式) 來取得該 (名稱的值,並將值傳回給呼叫端。 埠監視器的 GetPrinterDataFromPort 函式應該接受 I/O 控制程式代碼作為輸入、呼叫 DeviceIoControl 將控件程式代碼傳遞至埠驅動程式,並傳回結果。