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


Печать задания печати

После открытия порта, как описано в разделе Открытие и закрытие порта, диспетчер очереди печати может отправлять задания печати на этот порт.

Каждое задание печати разделено вызовами очереди очереди на функции StartDocPort и EndDocPort монитора портов или языка. Диспетчер очереди печати вызывает эти функции, когда обработчик печати вызывает функции StartDocPrinter и EndDocPrinter очереди очереди.

В область набора функций StartDocPort и EndDocPort могут выполняться неограниченные вызовы очереди к функциям WritePort, ReadPort и GetPrinterDataFromPort монитора.

Для каждой из этих функций требуется, чтобы дескриптор порта, возвращаемый OpenPortEx (или OpenPort), был указан как во входном аргументе. Как правило, языковой монитор реализует каждую из функций, вызывая функцию like-named в связанном мониторе портов.

Когда диспетчер очереди вызывает функцию WritePort языкового монитора для отправки потока данных на порт, функция обычно добавляет в полученный поток данных сведения о языке, такие как команды PJL , перед передачей в функцию WritePort связанного монитора портов.

Функция ReadPort используется для получения сведений о состоянии с оборудования двунаправленного принтера, которое языковой монитор может отправить в диспетчер очереди, вызвав SetPort. Очередь очереди не вызывает функцию ReadPort .

Если оборудование печати является двунаправленным, его языковой монитор и монитор портов должны поддерживать функцию GetPrinterDataFromPort . Функция GetPrinterDataFromPort языкового монитора должна принимать имя значения реестра в качестве входных данных, получать значение для этого имени (обычно путем вызова функций WritePort и ReadPort связанного монитора портов) и возвращать значение вызывающей объекту. Функция GetPrinterDataFromPort монитора портов должна принимать код элемента управления ввода-вывода в качестве входных данных, вызывать DeviceIoControl для передачи кода управления драйверу порта и возвращать результат.