Я имею дело с большой проблемой печати в нашей среде Citrix и пытаюсь узнать как можно больше о том, как работает сетевая печать.
Я предоставлю то, что, по моему мнению, понимаю, пожалуйста, исправьте или заполните пробелы, в которых я терплю неудачу.
Настольные компьютеры Citrix, которые подготавливаются (повторно образуются) каждую ночь.
Десктопы - это Server 2008 R2 x64
Принтеры настроены с Advanced Printing
включен.
Один сервер печати, Windows 2008 R2 x64
Пользователь входит в компьютер. Подключены сетевые принтеры. Во время процесса сопоставления к серверу печати обращается запрос, чтобы определить, обновлены ли локально установленные драйверы принтера. Если нет, устанавливаются новые драйверы.
Пользователь открывает WinWord (32 бит) и вызывает экран предварительного просмотра.
Приложение запрашивает настройки принтера по умолчанию и отображает документ, используя локально доступные драйверы печати.
Пользователь отправляет документ на печать. Сервер печати запрашивает, доступны ли более новые драйверы, если они доступны, будет загружен.
Документ отправляется в диспетчер очереди клиентов (splWOW64
) преобразован во временный файл, расположенный по адресу C:\Windows\System32\spool\PRINTERS
. Приложение выпущено, чтобы заняться своими делами.
(еще менее уверенный в этом) Client Spooler использует локально установленные драйверы печати и преобразует задание на печать в команды, понятные принтеру.
Клиентский диспетчер очереди печати отправляет задание на печать на сетевой сервер печати.
Сетевой диспетчер очереди печати (spoolsv.exe
) создает набор файлов (SHD
& SPL
) на сервере печати, расположенном по адресу: C:\Windows\System32\spool\PRINTERS
Сетевой диспетчер очереди печати отправляет задание на печать на принтер постранично с такой скоростью, с которой принтер способен справиться.
Network Print очищает очередь, удаляя два файла.
Если вы можете углубиться в глубину, пожалуйста ... но не в Марианскую впадину, пожалуйста. знак равно
В многопользовательской среде я заметил, что у каждого пользователя будет свой splWOW64, а система запускает spoolsv.exe
. Я знаю, что splWOW64 используется 32-битными приложениями для печати, а spoolsv.exe
на 64-битной машине обрабатывает печать из 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. По сути, это оболочка для интерфейса API, который предоставляет spoolsv.
Если вы решите решить проблемы с печатью Citrix с помощью стороннего решения, ознакомьтесь с нашим программным обеспечением ThinPrint. Он был разработан, чтобы избежать печати Citrix, и у нас есть специалисты, которые это подтверждают.