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