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.
Citrix Desktops that are provisioned (reimaged) every night.
Desktops are Server 2008 R2 x64
Printers are configured with
Single print server, Windows 2008 R2 x64
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.
User opens WinWord (32 bit) and pulls up the Print Preview screen
Application queries the Default Printer setting, and displays the document using locally available print drivers.
User submits document to be printed. Print Server is queried to see if newer drivers are available, if available will download.
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.
(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.
Client spooler submits the print job to the Network Print Server
Network Print Spooler (
spoolsv.exe) creates a set of files (
SPL) on the print server located at:
Network Print Spooler sends the print job to the printer page by page as fast as the printer is able to handle.
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?