我正在处理我们的思杰环境中的一个大的打印问题,一直在尽我所能地学习networking打印的工作原理。
我将提供我相信理解的内容,请纠正或填补我失败的空白。
每晚都configuration(重新映像)的Citrix桌面。
桌面是Server 2008 R2 x64
打印机configuration了Advanced Printingfunction。
单打印服务器,Windows 2008 R2 x64
用户login到计算机。 networking打印机被映射。 在映射过程中,查询打印服务器以确定本地安装的打印机驱动程序是否是最新的。 如果不是,则安装新的驱动程序。
用户打开WinWord(32位)并拉起打印预览屏幕
应用程序查询默认打印机设置,并使用本地可用的打印驱动程序显示文档。
用户提交要打印的文件。 打印服务器被查询是否有更新的驱动程序可用,如果可用将下载。
该文档被发送到客户端后台打印程序( splWOW64 )转换成位于C:\Windows\System32\spool\PRINTERS的临时文件。 应用程序被释放,以开展业务。
(甚至不太确定)客户端后台打印程序利用本地安装的打印驱动程序,并将打印作业转换为打印机将理解的命令。
客户端后台处理程序将打印作业提交到networking打印服务器
networking打印后台处理程序( spoolsv.exe )在位于以下位置的打印服务器上创build一组文件( SHD和SPL ): C:\Windows\System32\spool\PRINTERS
networking打印后台处理程序一页接一页地将打印作业发送到打印机的速度与打印机能够处理的速度一样快。
networking打印清理队列,删除这两个文件。
如果你可以深入深入,请做…但请不要深深的马里亚纳海沟。 =)
在多用户环境中,我注意到每个用户都有自己的splWOW64,而系统运行spoolsv.exe 。 我知道splWOW64被32位应用程序用于打印,并且x64位机器上的spoolsv.exe处理来自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接口的一个包装。
如果您决定使用第三方解决scheme修复Citrix打印问题,请查看我们的ThinPrint软件。 它的开发是为了避免思杰打印,我们有专家来支持。