Общие сведения о поставщиках печати
Предупреждение
Начиная с Windows 10 api, которые поддерживают сторонних поставщиков печати, являются устаревшими. Корпорация Майкрософт не рекомендует инвестировать в сторонних поставщиков печати. Кроме того, в Windows 8 и более новых продуктах, где доступна модель драйвера печати версии 4, сторонние поставщики печати не могут создавать очереди, использующие драйверы печати версии 4, или управлять ими.
Поставщики печати отвечают за направление заданий печати на локальные или удаленные устройства печати. Они также отвечают за операции управления очередями печати, такие как запуск, остановка и перечисление очередей печати сервера. Поставщики печати определяют высокоуровневое, независимое от компьютера, независимое от операционной системы представление сервера печати.
Все поставщики печати реализуют общий набор возможностей поставщика печати. Эти возможности определяются набором функций API, которые вызываются маршрутизатором очереди печати (Spoolss.dll).
Для большинства функций, определенных поставщиками печати, в качестве входных данных требуется дескриптор принтера. Клиент очереди печати получает дескриптор принтера, вызывая OpenPrinter в Winspool.drv, который вызывает сервер API (Spoolsv.exe). Маршрутизатор очереди печати (Spoolss.dll) вызывает функцию OpenPrinter каждого поставщика печати, пока один из них не подает дескриптор принтера и возвращаемое значение, указывающее, что поставщик печати распознает указанное имя принтера. Затем маршрутизатор возвращает собственный дескриптор серверу API. Дескриптор маршрутизатора включает в себя дескриптор принтера и дескриптор поставщика. Этот дескриптор возвращается приложению, чтобы последующие вызовы из приложения можно было направлять на правильный поставщик и принтер.
Корпорация Майкрософт предоставляет следующие поставщики печати с Windows 2000 и более поздних версий:
Localspl.dll
Локальный поставщик печати. Обрабатывает все задания печати, направленные на принтеры, управляемые с локального сервера.
Win32spl.dll
Поставщик сетевой печати Windows. Обрабатывает задания печати, направленные на удаленные серверы Win32 (операционная система на основе NT или Windows для рабочих групп). Когда задание поступает на удаленный сервер, оно передается локальному поставщику печати сервера.
Nwprovau.dll
Поставщик печати Novell NetWare. Обрабатывает задания печати, направленные на серверы печати Novell NetWare.
Inetpp.dll
Поставщик печати HTTP. Обрабатывает задания печати, отправленные по URL-адресу.
Поставщики могут создавать дополнительных поставщиков сетевой печати. Дополнительные сведения см. в статье Создание поставщика сетевой печати.
На следующей схеме показаны возможные пути потока с участием этих поставщиков печати.
При просмотре схемы следует учитывать следующие моменты:
Если принтером управляет клиентская система, задание печати обрабатывается локальным поставщиком печати (Localspl.dll). Принтеры, управляемые Localspl.dll, не должны быть физически локальными для клиента; они могут быть напрямую подключены к сетевым картам.
Если принтер находится на сервере операционной системы на основе NT, поставщик сети (Win32spl.dll) использует RPC для перенаправления вызовов из маршрутизатора клиента в процесс Spoolsv.exe сервера. Так как принтер является локальным для сервера, локальный поставщик печати сервера будет обрабатывать задание печати.
Если принтер находится на сервере другого типа, к нему может обращаться локальный поставщик печати или поставщик сетевой печати, поддерживающий этот тип сервера, используя форматы данных и сетевые протоколы, поддерживаемые сервером.
Чтобы локальный поставщик печати смог получить доступ к удаленному принтеру, он должен содержать монитор портов , который может использовать сетевые протоколы, распознанные удаленным принтером или сервером.