終端機伺服器列印
重要
從 Windows 11 版本 22H2 的 WDK 開始,不再支援 WDF 可轉散發的共同安裝程式。 若要瞭解如何解決此問題,請參閱 WDF 可轉散發共同安裝程式無法在WDK 已知問題 一文中運作。
Microsoft Windows 支援終端機服務,這是一種技術,可讓多個使用者連線到單一伺服器系統。 此伺服器系統稱為終端機伺服器。 如需終端機服務的詳細討論,請參閱 Windows SDK 檔。
如果您要開發適用于 Windows 的印表機迷你驅動程式或驅動程式,就不需要執行任何特殊動作來支援連線到終端機伺服器的印表機。 不過,您必須遵循 Windows 驅動程式套件 (WDK) 中指定的所有設計、實作和安裝指導方針。 具體而言,您必須使用下列規則:
可能的話,請提供可與下列其中一個 Microsoft 提供的驅動程式搭配運作的迷你驅動程式來支援印表機:
您必須設計印表機圖形 DLL,才能在使用者模式中執行。 請參閱 選擇使用者模式或核心模式。
如果您的裝置必須由自訂驅動程式支援,您的驅動程式必須完全符合 Microsoft 的 印表機驅動程式架構。 具體而言:
您必須建立 印表機介面 DLL。
您必須建立 印表機圖形 DLL。 此 DLL 可以在使用者模式或核心模式中執行,但慣用使用者模式。
如果您建立核心模式程式碼,則必須使用 驅動程式驗證程式測試程式碼。
您必須根據安裝程式 INF 檔案提供安裝程式,如 安裝及設定印表機驅動程式中所述。
所有自訂驅動程式程式碼都必須重新進入。 使用者模式程式碼應該採用 Windows SDK 檔) 中所述的重要區段物件 (。 核心模式程式碼應該使用旗號 (請參閱 EngCreateSemaphore 和相關函式) 。
印表機驅動程式和自訂多工緩衝處理常式元件只能透過針對這些驅動程式和多工緩衝處理常式元件特別提供的介面來存取登錄,如 WDK 的適當區段所述。
安裝考量
一般而言,您只需要提供 INF 檔案,當使用者叫用 [新增印表機 精靈] 時,Microsoft 的印表機類別安裝程式就可以讀取該檔案。 有時候也需要自訂安裝程式程式碼 (共同安裝程式或類別安裝程式) 。 如果您必須建立自訂安裝程式碼,請記住下列內容:
使用者或安裝程式碼必須讓終端機伺服器進入安裝模式。 (如需詳細資訊,請參閱 Microsoft Windows SDK 檔。)
請勿嘗試取代系統檔案。 Windows 檔案保護禁止取代系統檔案。
避免盡可能要求系統重新開機。 請使用下列指引:
請勿取代尚未變更的驅動程式檔案。 例如,如果已安裝最新的版本,則不應該更新由數個裝置共用的檔案。
如果必須取代檔案,安裝程式程式碼應該採取步驟來卸載舊版本,然後載入新版本 (,例如停止驅動程式服務、取代檔案,然後重新開機服務) 。
要求使用者登出,然後重新登入,最好是要求系統重新開機。
如需共同安裝程式和類別安裝程式的詳細資訊,請參閱 撰寫類別安裝程式和共同安裝程式。
撰寫自訂安裝程式碼之前,請務必閱讀 Windows SDK 檔中提供的終端機服務程式設計指導方針。
使用者介面考慮
由使用者執行的自訂安裝程式碼可以顯示使用者介面。
幾乎所有印表機驅動程式程式碼都會在多工緩衝處理常式的執行內容中執行,因此無法顯示使用者介面。 使用者介面只能由印表機介面 DLL 顯示,而且只能從下列函式內顯示:
DrvPrinterEvent函式,可接收識別印表機事件的事件代碼。 函式只能針對PRINTER_EVENT_ADD_CONNECTION和PRINTER_EVENT_DELETE_CONNECTION事件代碼顯示使用者介面。
所有其他印表機驅動程式程式碼都會在多工緩衝處理常式的內容中執行。 在此內容中,允許呼叫MessageBox 或 MessageBoxEx,但您必須設定MB_SERVICE_NOTIFICATION。 這些函式會在 Windows SDK 檔中說明。