Поделиться через


Поддержка очереди печати печати для служб каталогов принтеров

Поддержка очереди печати для служб каталогов включает следующее:

  • Публикация очередей печати

  • Обслуживание трех разделов реестра

  • Разрешение доступа к разделам реестра, поддерживаемым диспетчером очереди очереди печати

  • Возврат состояния публикации очереди печати

Публикация очередей печати

Функция SetPrinter позволяет вызывающим объектам публиковать, отменять публикацию или обновлять объект очереди печати. Для этих целей необходимо вызвать функцию SetPrinter со входной структурой PRINTER_INFO_7.

Объект очереди печати может быть опубликован только в том случае, если он связан с объектом компьютера, описывающим сервер печати, к которому подключен пользователь. Возможность публикации очереди печати определяется правами доступа, содержащимися в контексте безопасности клиента пользователя. Вы можете опубликовать очередь печати, если у вас есть разрешение На управление принтерами в очереди печати.

Обслуживание трех разделов реестра

Три раздела реестра содержат копии всех сведений, опубликованных в объекте очереди печати. На три ключа ссылаются следующие идентификаторы, определенные в winspool.h:

Ключ Определение
SPLDS_DRIVER_KEY Для хранения сведений о драйвере, которые могут быть предоставлены диспетчером очереди печати или драйвером.
SPLDS_SPOOLER_KEY Для хранения сведений, относящихся к очереди очереди печати.
SPLDS_USER_KEY Для хранения предоставленных приложением сведений о пользователях.

Диспетчер очереди очереди использует SPLDS_DRIVER_KEY для хранения возможностей драйвера, которые можно получить, вызвав функцию DeviceCapabilities . Драйвер отвечает за хранение возможностей драйвера, которые не может получить диспетчер очереди очереди, как описано в разделе Поддержка драйверов принтера для служб каталогов принтера. Значения, хранящиеся в этих ключах, должны определяться константами SPLDS_ с префиксом, определенными в winspool.h.

Очередь очереди отслеживает, какие значения в этих ключах были изменены с момента последнего обновления объекта очереди печати. Каждый раз, когда очередь очереди печати публикует или обновляет объект очереди печати, он копирует все измененные значения в объект .

Разрешение доступа к разделам реестра, поддерживаемым диспетчером очереди очереди печати

Модуль очереди печати позволяет драйверам принтеров получать доступ к трем поддерживаемым разделом реестра очереди, вызывая функции SetPrinterDataEx, GetPrinterDataEx и EnumPrinterDataEx . Функция SetPrinterDataEx задает значения в ключах, а GetPrinterDataEx и EnumPrinterDataEx возвращают текущие значения. Драйверы не должны задавать значения в разделе SPLDS_SPOOLER_KEY. Вызывающие эти функции не указывают полный путь к реестру; функции автоматически определяют путь к записям реестра указанной очереди печати.

Возврат состояния публикации очереди печати

Функция GetPrinter позволяет вызывающим абонентам определить, опубликована ли в настоящее время очередь печати. Для этого необходимо вызвать функцию GetPrinter со входной структурой PRINTER_INFO_7. Функция возвращает состояние публикации очереди печати (опубликовано или не опубликовано) и идентификатор объекта.