
第四版印表機驅動程式徹底改變了 Windows 處理列印的方式。這適用於客戶端電腦和列印伺服器。這種逐步取代經典 V3 的新模型,不僅影響驅動程式的安裝方式,還影響其維護、相容性、安全性以及使用者體驗,尤其是在印表機數量眾多或伺服器共用印表機的環境中。
如果您使用的是 Windows 8 或 Windows 10, 窗戶11 o 現代 Windows ServerV4驅動程式如今已成為日常工作的一部分,但許多用戶並未完全了解其具體含義。以下內容將詳細且清楚地解釋V4驅動程式的定義、與V3驅動程式的差異、優點和限制、在網域環境和列印伺服器中的工作原理,以及管理員和開發人員應注意的事項。
V4印表機驅動程式型號是什麼?
V4 列印驅動程式模型是經典 V3 模型的直接演進版本。 這項技術自 Windows 2000 時代就已存在。微軟從 Windows 8 和 Windows Server 2012 開始引入這項技術,其目標很明確:簡化驅動程式開發,降低 IT 管理成本,並為新的安全場景和現代應用程式做好列印準備。
儘管V4模型在架構和理念上是全新的,但其設計理念卻截然不同。它與許多熟悉的舊技術保持相容性:XPSDrv、GPD 和 PPD 檔案、自動配置、雙向通訊 (BID) 以及其他製造商和管理員已經熟悉的元件。主要區別在於,驅動程式的許多智慧功能現在都依賴資料檔案和 JavaScript,而列印堆疊的幾乎所有功能模組都由 Microsoft 提供。
在V4控制器的高階架構中先前廠商特定的元素(例如許多專有 DLL)已被最小化。微軟實作了大多數關鍵元件,並將特定的擴充點(通常在文件中以綠色表示)留給廠商用於渲染濾鏡和自訂使用者介面應用程式。
這種方法大大降低了檔案衝突、更新問題和跨架構錯誤的風險。 (x86、x64、ARM),因為 V4 驅動程式直接從驅動程式儲存運行,並且設計得比傳統的 V3 驅動程式更加隔離和模組化。

V4 控制器最佳化的適用場景
V4 型號的設計並非簡單地對 V3 進行「重新包裝」。但考慮到各種可能的情況, El Temppo 這些已變得至關重要:UWP 應用程式、伺服器共享列印、降低驅動程式複雜性以及在大型環境中改進技術支援。
在 Windows 8 及更高版本的環境中,通用 Windows 平台 (UWP) 應用程式 它們引入了新的介面和安全限制。這些 應用程序 他們需要一種安全可控的方式來顯示自訂列印首選項或印表機相關通知。 V4 模型是製造商在遵循現代 Windows 安全模型的前提下,將自訂列印體驗整合到 UWP 應用中的唯一官方途徑。
從伺服器共用印表機Windows Server 的一大優勢在於 V4 版本大幅簡化了操作。其目標是消除為每個處理器架構維護大量 V3 驅動程式的需要,並防止伺服器將可能存在問題的 DLL 檔案「推送」給所有客戶端。 V4 版本允許用戶端根據 PrinterDriverID 標識符,從 Windows 更新或本機儲存庫取得自己的驅動程式。
對於驅動程式開發人員來說,V4 也代表著相當大的簡化。該模型是基於先前對 XPSDrv 和 V3 模型的投入,但 V4 驅動程式更容易建立和測試,尤其是在使用 Visual Studio 範本和 Windows 驅動程式工具包 (WDK) 的情況下。典型的桌面 C++ 工作負載和內建的 GUID 產生工具使得從頭開始組裝 V4 程式包變得更加容易。
簡而言之,V4 的設計目的是減少多年來累積的駕駛員資料庫的混亂狀況。以前,透過 Windows 更新安裝印表機驅動程式可能需要幾分鐘時間,而且其中包含大量過時的型號。目標是:減少舊版驅動程序,僅保留更通用、更易於更新的驅動程式。
V3 和 V4 列印驅動程式的主要區別
舊版V3模式是每個製造商幾乎為所有型號開發自己的控制器。包含大量特定且重複使用性不高的DLL檔案。多年來,這種理念幾乎沒有改變,儘管出現了「通用」驅動程序,但它們仍然加載了專有的供應商文件。
這種方法的結果是建立了一個龐大的駕駛員資料庫。 這導致驅動程式數量不斷增長,安裝和管理都變得更加複雜。透過 Windows 更新安裝驅動程式意味著要下載大量的驅動程序,其中許多驅動程式適用於目前電腦上已不存在的裝置。
微軟在 V4 版本中押注於作業系統本身所包含的類別驅動程式。 並透過製造商特定的 V4 驅動程序,但架構更簡潔。類別驅動程式涵蓋特定的列印語言(例如 PCL、PostScript、XPS),並可通用地用於同一系列中的多個型號。
這些類別控制器的固有缺點是它們只提供基本功能。:彩色或黑白選擇、標準紙張格式、單面或雙面列印等。如果您需要使用高級多功能功能(裝訂、裝訂、特殊紙盒、整合掃描等),通常需要使用製造商特定的 V4 驅動程式。
這就是為什麼愛普生、施樂、柯尼卡美能達等許多製造商都會發布自己的 V4 版本的原因。這些更新可以從 Windows 更新或直接從其官方網站下載。他們試圖透過這種方式,將現代模式的優勢與自身的使用者介面和所有設備特定選項相結合。
基於 XPS 的列印:V4 驅動程式的工作原理
V4 型號的另一個關鍵特性是它基於 XPS 列印路徑。 (XML紙張規範)。能夠直接識別XPS格式的印表機可以直接接收作業,無需中間過濾器;而其他印表機則需要將作業從XPS格式轉換為它們能夠識別的語言(PCL、PostScript等)。
這種方法在輸出一致性和渲染管線方面具有明顯的優勢。然而,這也存在一個明顯的缺點:XPS 列印作業必須完全完成才能傳送到印表機。對於大批量列印或複雜文檔,這可能會導致明顯的等待時間,印表機似乎會閒置一段時間。
對於從事 XPSDrv 過濾器或自訂渲染模組開發的人來說V4 模型在 Visual Studio 中提供了清晰的擴充點和模板,簡化了 DLL 篩選器和管線設定檔 (PipelineConfig.xml) 的建立。這些組件與主驅動程式集成,用於在 XPS 流到達印表機之前對其進行轉換或操作。
微軟官方文件詳細介紹了 XPSDrv 渲染模組。 以及如何組裝渲染過濾器,以增加與特定 PDL 的兼容性、應用變換或實現基本類控制器中沒有的高級功能。
V4 中的驅動程式分發和即點即印功能
從歷史上看,V3 驅動程式最大的難題之一就是如何透過共享列印伺服器進行分發。使用「指向並列印」功能時,客戶端在連接到共用佇列時會自動從伺服器下載驅動程序,這表示任何有缺陷或易受攻擊的 DLL 都會影響伺服器上或遠端桌面環境中的所有使用者。
此外,列印子系統也存在漏洞(臭名昭著的「列印噩夢」)。 這導致微軟建議停用自動驅動程式下載,並加強「指向並列印」功能的群組原則物件 (GPO) 控制。這進一步增加了管理員的難度,因為當客戶端連接到伺服器上的印表機時,需要更多權限才能安裝驅動程式。
微軟透過 V4 類驅動程式重新設計了分發模式。當使用者連接到共享的 V4 佇列時,用戶端首先在其本機驅動程式儲存中搜尋使用 PrinterDriverID 匹配的驅動程式;如果找到,則使用該驅動程序,如果找不到,則嘗試從 Windows 更新下載,而無需伺服器將 DLL 檔案「注入」到客戶端電腦中。
如果仍然沒有合適的 V4 驅動程序,則可以使用「Microsoft 增強型指向和列印驅動程式」。它提供了一個標準但功能有限的介面。對於擁有以下功能的客戶: OS 對於連接到 V4 佇列的舊印表機,還有一個“Microsoft Point and Print 增強相容性驅動程式”,允許繼續列印,儘管有一些限制。
需要注意的一點是,4 型印表機驅動程式無法連接到第三方連接埠監視器。這會影響依賴特殊連接埠的解決方案(例如,某些列印計費或拉式列印軟體)。在這種情況下,必須先審查架構,然後再將所有內容遷移到 V4。
Active Directory 和伺服器中的常見問題:功能受限的情況
在具有列印伺服器和 GPO 的經典 Active Directory 環境中經常會遇到這種情況:製造商的 V3 驅動程序停止更新(例如,柯尼卡美能達停止更新某個特定的 V3 驅動程序),伺服器上安裝了“通用”的 V4 驅動程序,隊列中的驅動程序發生了變化……突然間,用戶的打印選項變得非常有限。
通常情況下,伺服器只會共用一個使用 V4 控制器的佇列。然而,用戶端電腦並未在本機安裝製造商提供的完整 V4 驅動程式。因此,系統只能使用標準選項集,而無法使用在使用者電腦上直接安裝 V4 驅動程式後才能使用的進階選單,例如裝訂、托盤、進階色彩等。
從管理角度來看,強制在每台電腦上直接安裝可能會很麻煩。尤其是在大型組織中。許多管理員期望其行為與 V3 版本相同(客戶端從伺服器下載),但 V4 版本的設計使得驅動程式由客戶端本身或 Windows 更新提供,並根據 PrinterDriverID 而非僅根據驅動程式名稱進行定位。
無需借助第三方雲端列印管理解決方案在傳統的 AD 環境中,處理此問題的常見方法是將良好的驅動程式部署實務(例如,使用軟體管理工具、腳本或安裝 GPO)與 PrinterDriverID 和列印佇列的正確配置相結合,以便用戶端能夠將其本機 V4 驅動程式與共用印表機正確配對。
一些製造商和特定解決方案,例如商業領域的 ThinPrint它們提供額外的列印管理層,以應對高可用性場景、拉式列印、自動佇列分配或高級 V4 支援。這些功能並非必需,但在處理多種型號、網站和用戶端作業系統時,它們可以簡化操作。
關鍵標識符:相容於 ID、印表機驅動程式 ID 和 GUID
V4 模型嚴重依賴定義明確的識別碼來關聯印表機和驅動程式。其中最重要的兩個是 CompatibleIDs(用於類別驅動程式)和 PrinterDriverID(用於驅動程式和共用佇列之間的關係)。
相容 ID 對於類別驅動程式支援後續發布的裝置至關重要。 該設備並非使用完全特定的硬體 ID,而是發布一個更通用、更相容的標識符,這樣系統就可以將其與現有的類別驅動程式配對,前提是它們使用相同的列印語言。
在平行印表機上或 USB這些相容 ID 通常包含在 1284ID 字串中。微軟推薦的新設備格式類似: 1284_CID_fabricante_PDL_familia例如 1284_CID_FA_PCL5e_Laser如果 CompatibleID 已經實現,則會保留它們以避免破壞相容性。
對於基於標準連接埠的 TCP/IP 設備,在安裝過程中 CompatibleIDs 不起作用。在這些情況下,使用者通常僅根據驅動程式的名稱來選擇驅動程序,因此建議製造商在其網站上發布清晰的與各類驅動程式相容的型號清單。
微軟也為不同的 PDL 定義了一組標準相容 ID。這些驅動程式與獨立於製造商的類別驅動程式相關聯。例如,XPS、OpenXPS (ECMA-388)、PCL6 和 PostScript 都有各自的標準 ID。這些標準驅動程式僅提供部分功能(Letter 和 A4 紙張尺寸、300 和 600 dpi 解析度、普通紙類型、部分多頁列印選項),因此使用這些驅動程式的製造商必須透過增強配置和雙向列印 (BIDI) 來補充功能。
另一個關鍵識別碼是 PrinterDriverID此 ID 用於確定共用印表機時的驅動程式相容性,以及關聯驅動程式和印表機擴充功能(例如,進階配置應用程式)。當伺服器上的共用印表機在其清單中指定 PrinterDriverID 時,用戶端會在其本機印表機儲存庫和 Windows 更新中搜尋 INF 檔案中具有相同 PrinterDriverID 的驅動程序,而不管驅動程式的商業名稱是什麼。
兩個驅動程式要共用同一個 PrinterDriverID,它們必須完全相容。印表機必須使用相同的程式定義語言 (PDL)、相同類型的設定檔(GPD 或 PPD),能夠準確地呈現伺服器設定檔中所述的功能,並支援相同的印表機擴充功能。後台列印程式不會驗證這些條件;它僅依賴 PrinterDriverID,因此,如果這些要素中的任何一項發生更改,製造商有責任更新該 ID。
印表機擴充(例如,使用者介面中的進階設定面板) 它們也與使用 PrinterDriverID 的驅動程式相關聯。指向特定 PrinterDriverID 的最後一個已安裝擴充功能會套用於所有共用該 ID 的設備,因此所有具有該 ID 的驅動程式都必須與同一個擴充功能相容。
為了管理所有這些標識符,V4 廣泛使用了 GUID。 (全域唯一識別碼)。這些識別碼用於 PrinterDriverID、PrinterExtensionID、EventID、ModelID 等。微軟強烈建議始終使用 Visual Studio 或 SDK 等工具產生這些標識符,避免使用可能導致衝突的複製貼上等變通方法。
配置行為:佇列、名稱和開發節點
V4 型號的印表機命名和分組方式也改變了。Windows 為所有佇列建立軟體裝置節點(devnode),無論是實體即插即用裝置、虛擬印表機或網路裝置連接,從而可以在「裝置和印表機」中統一管理它們。
在 V3 驅動程式中,佇列名稱很大程度上取決於驅動程式名稱和使用者輸入的內容。對於 V4 和類別控制器,該名稱向使用者提供的資訊較少,因此 Windows 會嘗試更聰明地透過二維碼查詢設備,以獲取更易於使用者理解的名稱。
典型的流程如下首先,驅動程式名稱會被指派給佇列。如果驅動程式是 V4 版本,Windows 會查詢裝置中的 `\\Printer.DeviceInfo:FriendlyName`;如果可用,則將其用作佇列名稱。否則,系統會嘗試組合 `\\Printer.DeviceInfo:Manufacturer` 和 `\\Printer.DeviceInfo:ModelName`。如果雙向通訊失敗,系統會回退到 IEEE 1284 ID 字串,使用 `DESCRIPTION/DES`,如果仍然失敗,則使用 `MANUFACTURER/MFG` 和 `MODEL/MDL` 的組合。
將多功能設備分組到一個圖示中 它依賴共享相同的容器標識符。當佇列的連接埠發生變更時(例如,從 WSD 變更為 TCP/IP 或專有連接埠),與該佇列的 devnode 關聯的容器也會隨之更改,這可能會導致與裝置其他即插即用功能的這種分組關係遺失。
在 IT 管理場景中,管理員可以使用 WS-Discovery 發現印表機。然後,在管理首選項中將連接埠變更為 TCP/IP,您會在「裝置和印表機」資料夾中找到兩個「裝置」。解決方法是刪除原始的即插即用設備節點,或調整容器標識符以保持使用單一圖示。
在包含專有連接埠監視器的製造商安裝中(僅限 V3 版本)類似情況也可能發生:安裝精靈會將佇列連接埠變更為自訂連接埠。程式隨後必須決定是否保留即插即用 (PnP) 設備節點並調整容器標識符,還是移除初始實體設備,以便僅保留與其自身連接埠關聯的佇列。
對字節世界和一般技術充滿熱情的作家。我喜歡透過寫作分享我的知識,這就是我在這個部落格中要做的,向您展示有關小工具、軟體、硬體、技術趨勢等的所有最有趣的事情。我的目標是幫助您以簡單有趣的方式暢遊數位世界。