共用方式為


列印提供者所定義的函式

警告

從 Windows 10 開始,支援第三方列印提供者的 API 已被取代。 Microsoft 不建議對第三方列印提供者進行任何投資。 此外,在 v4 列印驅動程式模型的 Windows 8 和較新版本產品上,第三方列印提供者可能不會建立或管理使用 v4 列印驅動程式的佇列。

本主題列出列印提供者可提供的所有函式。 這些函式大部分都會在 Microsoft Windows SDK 檔中說明。 如果在 Windows 驅動程式套件 (WDK) 描述函式,函式名稱會提供相關聯參考頁面的連結。

所有列印提供者都必須為所有列出的函式提供指標。 不過,大部分廠商提供的列印提供者都是「部分提供者」,不需要支援函式所定義的許多作業。 因此,許多函式指標可以是 NULL。 如需部分列印提供者的詳細資訊,請參閱 撰寫網路列印提供者

在下列函式清單中,必須支援的函式會標示為「必要」。

所有列印提供者都必須匯出初始化函式 InitializePrintProvidor。 所有其他函式的指標都必須在 PRINTPROVIDOR 結構中提供。 (請注意,這兩個名稱拼錯,但與頭檔 Winsplp.h.) 中顯示的名稱一致

函式分為群組,並在下列各節中呈現:

  • 初始化函式

  • 列印佇列管理功能

  • 印表機驅動程式管理功能

  • 列印作業建立函式

  • 列印作業排程函式

  • 表單管理功能

  • 列印處理器管理功能

  • 列印監視器管理功能

  • 埠管理功能

  • 登錄管理功能

  • 其他函式

初始化函式

函式 描述
InitializePrintProvidor (必要) 初始化列印提供者,並傳回所提供函式的指標。
函式 描述
AddPrinter 將列印佇列新增至列印提供者所管理的列印佇列清單,並將列印處理器與列印佇列產生關聯。
AddPrinterConnection 建立與指定列印佇列的連接。
ClosePrinter (必要) 停用對指定列印佇列的呼叫端存取。
DeletePrinter 從列印提供者所管理的列印佇列清單中刪除列印佇列。
DeletePrinterConnection 拿掉指定之列印佇列的連接。
EnumPrinters (必要) 列舉目前由列印提供者管理的列印佇列清單。
FindClosePrinterChangeNotification 停用 FindFirstPrinterChangeNotification 所啟用的印表機變更通知。
FindFirstPrinterChangeNotification 傳回呼叫端可用來等候指定印表機事件的等候物件的句柄。
GetPrinter (必要) 傳回指定之列印佇列的目前參數值。
OpenPrinter (必要) 允許呼叫端存取指定的列印佇列。
RefreshPrinterChangeNotification 如果用戶端使用PRINTER_NOTIFY_OPTIONS_REFRESH旗標集呼叫 FindNextPrinterChangeNotification ,則由路由器呼叫。
ResetPrinter 修改列印佇列的數據類型或 DEVMODEW 結構。
SetPrinter (必要) 設定指定之列印佇列的參數。
WaitForPrinterChange 已過時。

印表機驅動程式管理功能

函式 描述
AddPrinterDriver 將指定的印表機驅動程式檔案新增至指定的伺服器。
AddPrinterDriverEx AddPrinterDriver 相同,具有其他參數。
DeletePrinterDriver 刪除指定之印表機驅動程式檔案在指定伺服器上的存取權。
DeletePrinterDriverEx DeletePrinterDriver 相同,具有其他參數。
EnumPrinterDrivers 傳回已藉由呼叫 AddPrinterDriverAddPrinterDriverEx 新增至指定伺服器的印表機驅動程式清單。
GetPrinterDriver 傳回印表機驅動程式的相關信息,呼叫端接著可以傳遞至 AddPrinterDriver。 (傳回的資訊通常是從 INF file.)
[GetPrinterDriverEx GetPrinterDriver 相同,具有其他參數。
GetPrinterDriverDirectory 傳回伺服器印表機驅動程式目錄的名稱。
函式 描述
AbortPrinter (必要) 嘗試從指定的列印佇列中刪除目前的作業。
AddJob (必要) 傳回作業標識碼和多任務緩衝處理檔案路徑。 呼叫端會使用 CreateFileWriteFile 將數據傳送至多任務緩衝處理檔案。
EndDocPrinter (必要) 執行作業完成作業。
EndPagePrinter 執行頁面完成作業。
ReadPrinter 從雙向印表機取得狀態資訊。
ScheduleJob (必要) 通知提供者可以排程指定的作業。 作業是由先前 由 AddJob 傳回的作業識別碼所指定。
StartDocPrinter (必要) 準備列印提供者以開始多任務緩衝處理列印作業。
StartPagePrinter 準備列印提供者以接收列印作業頁面。
WritePrinter (必要) 接收列印作業數據流的一部分。

注意

AddJob...ScheduleJob 序列是 StartDocPrinter 的替代方案...EndDocPrinter 序列。

函式 描述
EnumJobs (必要) 傳回排程列印作業的清單。
需要 GetJob () 傳回作業參數。
SetJob (必要) 取消、暫停、繼續或重新啟動列印作業,或設定作業參數。

表單管理功能

函式 描述
AddForm 將指定的表單新增至指定印表機可用的表單清單。
DeleteForm 從指定印表機可用的表單清單中移除指定的表單。
EnumForms 傳回指定印表機可用的表單清單。
GetForm 傳回指定表單的特性。
SetForm 修改指定表單的特性。
函式 描述
AddPrintProcessor 在指定的伺服器上安裝列印處理器,並將它新增至列印提供者可以呼叫的列印處理器清單。
DeletePrintProcessor 從列印提供者可以呼叫的列印處理器清單中刪除列印處理器。
EnumPrintProcessorDataTypes 傳回列印處理器所支援的數據類型清單,這些數據類型可由列印提供者呼叫。
EnumPrintProcessors 傳回列印提供者可以呼叫的列印處理器清單。
GetPrintProcessorDirectory 傳回必須儲存列印處理器檔案的目錄路徑。
函式 描述
AddMonitor 將列印監視器新增至列印提供者可以呼叫的列印監視器清單。
DeleteMonitor 從列印提供者可以呼叫的列印監視器清單中刪除列印監視器。
EnumMonitors 傳回列印提供者可以呼叫的列印監視器清單。

埠管理功能

函式 描述
AddPort 將印表機埠新增至可用的埠清單,通常是藉由呼叫指定的埠監視器的 AddPortUI 函式。
AddPortEx (/previous-versions/ff545025 (v%3dvs.85) ) AddPort 相同,具有其他參數。
ConfigurePort (必要) 設定印表機埠,通常是藉由呼叫指定的埠監視器的 ConfigurePortUI 函式。
DeletePort (必要) 從可用的印表機埠清單中刪除印表機埠,通常是藉由呼叫指定的埠監視器 的 DeletePortUI 函式。
EnumPorts (必要) 傳回可用的印表機埠清單。
SetPort 設定指定印表機埠的參數。

登錄管理功能

函式 描述
DeletePrinterData 在指定的印表機 的 PrinterDriverData 機碼下,刪除目前指派給指定值名稱的值。
DeletePrinterDataEx DeletePrinterData 相同,具有其他參數。
DeletePrinterKey 如果指定的機碼及其子機碼目前儲存在指定印表機的 PrinterDriverData 機碼下的登錄中,則會刪除它們。
EnumPrinterData 傳回每個值名稱和目前指派的值,這些值儲存在指定印表機的 PrinterDriverData 機碼之下的登錄中。
EnumPrinterDataEx EnumPrinterData 相同,具有其他參數。
EnumPrinterKey 傳回登錄中目前包含在指定機碼名稱下的子機碼清單。
GetPrinterData 傳回目前指派給指定值名稱的值,該值會儲存在指定印表機的 PrinterDriverData 機碼下的登錄中。
GetPrinterDataEx GetPrinterData 相同,具有其他參數。
SetPrinterData 在指定的印表機 PrinterDriverData 機碼下,將指定的值名稱和值儲存在登錄中。
SetPrinterDataEx SetPrinterData 相同,具有其他參數。

其他函式

函式 描述
XcvData 提供埠監視器 UI DLL 與埠監視器伺服器 DLL 之間的通訊路徑。