Printing

網路列印究竟是如何工作的?

  • December 6, 2016

我正在處理我們的 Citrix 環境中的一個大列印問題,並且一直在嘗試盡可能多地了解網路列印的工作原理。

我將提供我認為可以理解的內容,請糾正或填補我失敗的空白。

環境

  • 每晚配置(重新映像)的 Citrix Desktop。
  • 台式機是 Server 2008 R2 x64
  • 列印機配置為Advanced Printing啟用。
  • 單台列印伺服器,Windows 2008 R2 x64

印刷工藝

  1. 使用者登錄電腦。網路列印機已映射。在映射過程中,會查詢列印伺服器以確定本地安裝的列印機驅動程序是否是最新的。如果沒有,則安裝新的驅動程序。
  2. 使用者打開 WinWord(32 位)並打開列印預覽螢幕
  3. 應用程序查詢預設列印機設置,並使用本地可用的列印驅動程序顯示文件。
  4. 使用者送出要列印的文件。查詢列印伺服器以查看是否有更新的驅動程序可用,如果可用將下載。
  5. 該文件被發送到客戶端假離執行緒序 ( splWOW64),並轉換為位於C:\Windows\System32\spool\PRINTERS. 應用程序被發布以開展其業務。
  6. (對此更不確定)客戶端假離執行緒序利用本地安裝的列印驅動程序並將列印作業轉換為列印機可以理解的命令。
  7. 客戶端假離執行緒序將列印作業送出給網路列印伺服器
  8. 網路列印後台處理程序 ( )在位於以下位置的列印伺服器上spoolsv.exe創建一組文件 ( SHD& ):SPL``C:\Windows\System32\spool\PRINTERS
  9. 網路列印後台處理程序以列印機能夠處理的速度逐頁將列印作業發送到列印機。
  10. 網路列印清理隊列,刪除這兩個文件。

如果您可以更深入地了解,請…但請不要深入馬里亞納海溝。=)

在多使用者環境中,我注意到每個使用者都有自己的 splWOW64,而係統執行spoolsv.exe. 我知道 splWOW64 被 32 位應用程序用於列印,而spoolsv.exe在 x64 位機器上處理來自 64 位應用程序的列印。在使用者下執行的 splWOW64 是否與 spoolsv.exe 互動?

我想我能幫上忙。

在一個簡單的文章中解釋列印幾乎是不可能的。我已經為 ThinPrint 工作了十多年,並且仍然發現新事物。然而,去年我有機會在一次會議上就該主題發表演講。標題是“低級列印分析:深入了解 Windows 列印”

你可以在這裡觀看錄音: http ://www.brianmadden.com/video/BriForum-2015-Low-Level-Print-Analysis-A-Deep-Dive-Into-Windows-Printing

如果您有興趣,我也可以與您分享我的幻燈片。

哦,回答你的問題:是的,splWOW64 與 spoolsv 互動。它基本上是 spoolsv 提供的 API 介面的包裝器。

如果您決定使用第三方解決方案來解決您的 Citrix 列印問題,請查看我們的 ThinPrint 軟體。它的開發是為了避免 Citrix 列印,我們有專家支持。

引用自:https://serverfault.com/questions/818483