0

I'm dealing with a big printing issue within our Citrix environment and have been trying to learn as much as I can about how Network Printing works.

I'll provide what I believe to understand, please correct or fill in the gaps where I fail.

Environment

  • Citrix Desktops that are provisioned (reimaged) every night.

  • Desktops are Server 2008 R2 x64

  • Printers are configured with Advanced Printing enabled.

  • Single print server, Windows 2008 R2 x64

Printing Process

  1. User logs into the computer. Network Printers are mapped. During the mapping process the Print Server is queried to determine if the locally installed Printer Drivers are up to date. If not, new drivers are installed.

  2. User opens WinWord (32 bit) and pulls up the Print Preview screen

  3. Application queries the Default Printer setting, and displays the document using locally available print drivers.

  4. User submits document to be printed. Print Server is queried to see if newer drivers are available, if available will download.

  5. The document is sent to the Client Spooler (splWOW64) converted into a temp file located at C:\Windows\System32\spool\PRINTERS. Application is released to go about its business.

  6. (even less certain on this) Client Spooler utilizes the locally installed print drivers and converts the Print Job to commands that the printer will understand.

  7. Client spooler submits the print job to the Network Print Server

  8. Network Print Spooler (spoolsv.exe) creates a set of files (SHD & SPL) on the print server located at: C:\Windows\System32\spool\PRINTERS

  9. Network Print Spooler sends the print job to the printer page by page as fast as the printer is able to handle.

  10. Network Print cleans up the queue, deleting the two files.

If you can go deeper in depth, please do... but not the Mariana Trench deep please. =)

In a multi-user environment, I noticed that each user will have their own splWOW64, while the system runs the spoolsv.exe. I know that the splWOW64 is used by 32 bit apps for printing, and the spoolsv.exe on a x64 bit machine handles the printing from 64 bit applications. Does the splWOW64 running under a user interact with the spoolsv.exe?

JamesA
  • 3
  • 3

1 Answers1

2

I think I can help.

Explaining printing in a simple post is pretty much impossible. I have been working for ThinPrint for over a decade and still find new things. However, last year I had the opportunity to speak at a conference about that topic. The title was "Low-Level Print Analysis: A Deep Dive Into Windows Printing"

You can watch the recording here: http://www.brianmadden.com/video/BriForum-2015-Low-Level-Print-Analysis-A-Deep-Dive-Into-Windows-Printing

I can also share my slide deck with you if you are interested.

Oh and to answer your question: yes, splWOW64 interacts with spoolsv. It is basically a wrapper for that API interface spoolsv provides.

Should you decide to fix your Citrix printing issues by using a third-party solution, have a look at our ThinPrint software. It was developed to avoid Citrix printing and we have the experts to back that up.

Christoph
  • 36
  • 1
  • Yes I'd be interested, unfortunately we both have low reputation so I'm not sure how I can provide you my email address and I'm not wanting to post it here. Could you provide a download link? – JamesA Dec 06 '16 at 23:37