Как именно работает сетевая печать?

Я имею дело с большой проблемой печати в нашей среде Citrix и пытаюсь узнать как можно больше о том, как работает сетевая печать.

Я предоставлю то, что я считаю, чтобы понять, пожалуйста, исправьте или заполните пробелы, где я терплю неудачу.

Среда

  • Рабочие столы Citrix, которые инициализируются (повторно образуются) каждую ночь.

  • Рабочие столы - это Server 2008 R2 x64

  • Принтеры настроены с включенной Расширенной печатью .

  • Один сервер печати, Windows 2008 R2 x64

Процесс печати

  1. Пользователь входит в систему. Подключены сетевые принтеры. В процессе сопоставления к серверу печати обращается запрос, чтобы определить, обновлены ли локально установленные драйверы принтера. В противном случае устанавливаются новые драйверы.

  2. Пользователь открывает WinWord (32-разрядный) и вызывает экран предварительного просмотра.

  3. Приложение запрашивает настройки принтера по умолчанию и отображает документ, используя локально доступные драйверы печати. ​​

  4. Пользователь отправляет документ для печати. Сервер печати запрашивает, доступны ли более новые драйверы, если они доступны, будет загружен.

  5. Документ отправляется в диспетчер очереди печати ( splWOW64 ), преобразованный во временный файл, расположенный в C: \ Windows \ System32 \ spool \ ПРИНТЕРЫ . Приложение выпущено, чтобы заняться своими делами.

  6. (еще менее уверенно) Client Spooler использует локально установленные драйверы печати и преобразует задание печати в команды, которые понимает принтер.

  7. Client Spooler отправляет задание на печать на сетевой сервер печати. ​​

  8. Network Print Диспетчер очереди печати ( spoolsv.exe ) создает набор файлов ( SHD и SPL ) на сервере печати, расположенном по адресу: C: \ Windows \ System32 \ spool \ PRINTERS

  9. Диспетчер очереди сетевой печати отправляет задание печати на принтер постранично с такой скоростью, с которой принтер способен справиться.

  10. Сетевая печать очищает очередь, удаляя два файла.

Если вы можете пойти глубже, пожалуйста ... но только не глубже Марианской впадины. =)

В многопользовательской среде я заметил, что у каждого пользователя будет свой splWOW64, в то время как система запускает спуллы . exe . Я знаю, что splWOW64 используется 32-битными приложениями для печати, а spoolsv.exe на 64-битной машине обрабатывает печать из 64-битных приложений. Взаимодействует ли splWOW64, запущенный под пользователем, с spoolsv.exe?

0
задан 3 December 2016 в 20:16
1 ответ

Думаю, я могу помочь.

Объяснить печать в простом сообщении практически невозможно. Я работаю в 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, и у нас есть специалисты, которые это подтверждают.

2
ответ дан 4 December 2019 в 13:37

Теги

Похожие вопросы