Мониторы портов
Мониторы портов состоят из библиотек DLL в пользовательском режиме. Они отвечают за предоставление пути связи между диспетчером очереди печати печати в пользовательском режиме и драйверами портов в режиме ядра, которые обращаются к оборудованию порта ввода-вывода. Монитор портов обычно использует функции CreateFile, WriteFile, ReadFile и DeviceIOControl для взаимодействия с драйверами портов в режиме ядра. Мониторы портов также отвечают за управление и настройку портов принтера сервера, как описано в разделе Управление портом.
Представление пользователя операционной системы на основе NT на самом деле представляет собой очередь печати, к которой можно подключить одно или несколько физических принтеров. Порт — это физическое соединение между очередью печати и одним устройством принтера. Каждый монитор портов поддерживает один или несколько экземпляров одного или нескольких типов портов. Например, Localmon.dll, пример монитора портов, может поддерживать все локальные COM- и LPT-порты сервера. Папка печати назначает порты мониторам портов путем вызова функции AddPrinter .
Для очередей печати, представляющих несколько принтеров (через несколько портов), диспетчер очереди печати отправляет каждое задание печати на первый доступный порт. Если монитор портов указывает, что указанный порт занят или возникла ошибка, диспетчер очереди очереди повторно отправляет задание в очередь, указывая другой порт, поддерживаемый монитором портов.
Помимо Localmon.dll, Windows 2000 и более поздних версий операционной системы предоставляют несколько дополнительных мониторов портов. Набор ресурсов Windows 2000 Server описывает каждый из этих мониторов портов. (Этот ресурс может быть недоступен для некоторых языков и стран.)
Настраиваемые мониторы портов можно написать для поддержки дополнительных типов оборудования для портов ввода-вывода.
Для Windows 2000 и более поздних версий каждый монитор порта делится на две библиотеки DLL:
Библиотека DLL пользовательского интерфейса монитора портов Библиотека DLL пользовательского интерфейса монитора портов содержит функциональные возможности пользовательского интерфейса и выполняется в клиентских системах печати.
Эта библиотека DLL должна находиться в подкаталоге System32 клиентской системы.
Библиотека DLL сервера мониторинга портов
Библиотека DLL сервера монитора портов содержит функции обмена данными о портах и выполняется на серверах печати. Он не должен отображать пользовательский интерфейс.
Библиотека DLL пользовательского интерфейса взаимодействует с библиотекой DLL сервера, вызывая функцию XcvData очереди очереди.
Пример монитора портов включен в комплект драйверов Windows (WDK).