部分列印提供者概觀
部分提供者 DLL 通常只會實作管理列印佇列和列印作業之提供者函式的自定義版本。 部分提供者只會在印表端系統上執行,而且取決於驅動程式管理作業的本機列印提供者,以及產生印表機數據。 客戶端系統上可以存在多個部分提供者。
在 由列印提供者定義的函式中,某些函式會識別為「必要」。 部分列印提供者必須提供所有必要的函式。 部分列印提供者通常不會實作任何選擇性函式。
必要的函式屬於下列函式群組:
對於部分列印提供者,印表機埠應該視為相當於列印佇列。 對於接收 PRINTER_INFO_2 結構的任何函式,結構的 pPort 成員應該設定為列印佇列名稱。 因此,如果列印佇列名稱是 \\Server\Printer1,埠名稱也應該是 \\Server\Printer1。 EnumPorts 的部分列印提供者實作必須傳回埠名稱 \\Server\Printer1。
如 列印提供者簡介中所述,應用程式的 OpenPrinter 呼叫會導致多任務緩衝處理程式的路由器呼叫每個列印提供者,直到其中一個列印佇列辨識出並傳回句柄為止。
請務必記住,部分列印提供者不會取代本機提供者。 建立印表機的使用者連線之後,每次呼叫提供者函式都會透過本機提供者路由傳送,以處理呼叫本身或將它重新路由傳送至部分提供者。 所有識別為「必要」的提供者函式呼叫都會從本機提供者重新路由傳送至適當的部分提供者。
部分提供者不會產生列印作業;它們相依於本機提供者及其 列印處理器 ,以建立可傳送至印表機的 RAW數據 。 當列印處理器呼叫本機提供者的 StartDocPrinter 函式 (請參閱 列印作業) ,而部分提供者支援列印佇列時,本機提供者會呼叫部分提供者的 StartDocPrinter 函式,並提供 RAW 數據 (做為檔案) 。 部分提供者的 StartDocPrinter、 WritePrinter 和 EndDocPrinter 函式應該透過網路將 RAW 資料傳送至遠端列印佇列。