Процесс печати в Windows Server 2003


Приведем краткий перечень операций (рис. 9.8), производимых с документом, посланным на принтер с клиента Windows, для которого Windows Server 2003 используется как сервер печати (некоторые процессы для клиентов с системами, отличными от Windows, будут немного другими).
1. Пользователь на компьютере-клиенте Windows запрашивает печать документа из приложения.
2. Если документ послан из Windows-приложения, приложение обращается к графическому интерфейсу устройства (GDI), который вызывает драйвер принтера, связанный с целевым принтером. На основе информации о документе GDI и драйвер принтера формируют задание на печать на языке управления принтером, а затем передают его клиентскому диспетчеру очереди печати. Если клиент работает под управлением операционной системы, отличной от Windows, или приложение не является Windows-приложением, то для выполнения подобной задачи используется какой-либо другой компонент.
3. Клиентский компьютер поставляет задание по выводу на печать серверу печати. Для клиентов Windows NT 4.0/2000/XP/Server 2003 клиентский диспетчер очереди печати выполняет удаленный вызов процедуры (RPC) на стороне серверного диспетчера очереди печати, который использует маршрутизатор, чтобы вызвать провайдер удаленной печати на клиентской стороне. Провайдер удаленной печати инициализирует другой вызов RPC к диспетчеру очереди печати на сервере, который принимает по сети задание на печать.



Рис. 9.8. Процесс печати в Windows Server 2003

4. На сервер печати задания от клиентов Windows NT 4.0/2000/XP/Server 2003 поступают в формате расширенный метафайл (extended metafile, EMF). Большинство He-Windows-приложений используют тип данных RAW ("сырой", готовый к печати).
5. Маршрутизатор на сервере передает задание на печать локальному провайдеру печати на сервере (компонент диспетчера очереди печати), который помещает его в очередь (записывает на диск).
6. Локальный провайдер печати вызывает монитор печати, который опознает тип данных задания и принимает задание на печать, преобразуя его согласно типу данных.
7. Если целевой принтер задан на клиентском компьютере, служба печати на сервере решает, должен ли диспетчер очереди печати сервера преобразовать задание или назначить другой тип данных. Затем задание передается локальному провайдеру печати, который записывает его на диск.
8. Управление заданием на печать переходит к процессору страниц-разделителей, который добавляет к началу задания страницу-разделитель, если она задана.
9. Затем задание передается монитору печати. Монитор печати может состоять из монитора языка (language monitor) и монитора порта (port monitor). Для двунаправленных принтеров монитор языка обеспечивает двустороннюю связь между компьютером и принтером, а затем передает задание на печать на монитор порта. Если принтер не является двунаправленным, задание на печать идет непосредственно на монитор порта, который посылает его на принтер (или на другой сетевой сервер печати).
10. Принтер принимает задание на печать, преобразует каждую страницу в растровый формат и печатает ее.