Процесс печати в Windows 2000
Приведем краткий обзор операций (рис. 10.3), производимых с документом, посланным на принтер с клиента Windows, для которого Windows 2000 используется как сервер печати (некоторые процессы для клиентов с системами, отличными от Windows, будут немного другими).
Рис. 10.3. Процесс печати в Windows 2000
- Пользователь на компьютере-клиенте Windows 2000 запрашивает печать документа из приложения.
- Если документ послан из Windows-приложения, приложение обращается к графическому интерфейсу устройства (GDI), который вызывает драйвер принтера, связанный с целевым принтером. На основе информации о документе GDI и драйвер принтера формируют задание на печать на языке управления принтером, а затем передают его клиентскому диспетчеру очереди печати. Если клиент работает под управлением операционной системы, отличной от Windows, или приложение не является Windows-приложением, то для выполнения подобной задачи используется какой-либо другой компонент.
- Клиентский компьютер поставляет задание по выводу на печать серверу печати. Для клиентов Windows NT 4.0 или Windows 2000 клиентский диспетчер очереди печати выполняет удаленный вызов процедуры (RPC) на стороне серверного диспетчера очереди печати, который использует маршрутизатор, чтобы вызвать провайдер удаленной печати на клиентской стороне. Провайдер удаленной печати инициализирует другой вызов RPC к диспетчеру очереди печати на сервере, который принимает по сети задание на печать.
- На сервер печати задания от клиентов Windows NT или Windows 2000 поступают в формате расширенный метафайл (extended metafile, EMF). Большинство He-Windows-приложений используют тип данных R ("сырой", готовый к печати).
- Маршрутизатор на сервере передает задание на печать локальному провайдеру печати на сервере (компонент диспетчера очереди печати), который помещает его в очередь (записывает на диск).
- Локальный провайдер печати вызывает монитор печати, который опознает тип данных задания и принимает задание на печать, преобразуя его согласно типу данных.
- Если целевой принтер задан на клиентском компьютере, служба печати на сервере решает, должен ли диспетчер очереди печати сервера преобразовать задание или назначить другой тип данных. Затем задание передается локальному провайдеру печати, который записывает его на диск.
- Управление заданием на печать переходит к процессору страниц-разделителей, который добавляет к началу задания страницу-разделитель, если она задана.
- Затем задание передается монитору печати. Монитор печати может состоять из монитора языка (language monitor) и монитора порта (port monitor). Для двунаправленных принтеров монитор языка обеспечивает двустороннюю связь между компьютером и принтером, а затем передает задание на печать на монитор порта. Если принтер не является двунаправленным, задание на печать идет непосредственно на монитор порта, который посылает его на принтер (или на другой сетевой сервер печати).
- Принтер принимает задание на печать, преобразует каждую страницу в растровый формат и печатает ее.