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


Открытие и закрытие порта

После добавления порта, как описано в разделе Добавление порта, диспетчер очереди может открыть его, вызвав функцию OpenPortEx соответствующего языкового монитора.

Языковой монитор использует функцию OpenPortEx для создания и возврата дескриптора порта. Как правило, языковой монитор вызывает функцию OpenPort связанного монитора портов, а языковой монитор просто возвращает дескриптор, полученный из OpenPort монитора портов.

Если языковой монитор не связан с портом, диспетчер очереди вызывает функцию OpenPort монитора портов напрямую.

Диспетчер очереди очереди не допускает одновременного включения нескольких путей к порту. Таким образом, после вызова OpenPortEx (или OpenPort) в определенном мониторе он не пытается снова открыть тот же порт, прежде чем закрыть его.

После открытия порта диспетчер очереди может вызывать дополнительные функции для печати задания, как описано в разделе Печать задания печати, используя дескриптор порта в качестве входного аргумента. Монитор должен быть написан таким образом, чтобы после открытия порта диспетчер очереди может отправлять несколько заданий печати перед закрытием порта.

Диспетчер очереди очереди закрывает порт, если задание должно быть отправлено через другой языковой монитор, если с портом не связаны очереди печати или когда система завершает работу. Чтобы закрыть порт, диспетчер очереди очереди вызывает функцию ClosePort языкового монитора. Функция делает недействительным дескриптор, созданный при открытии порта. Языковой монитор обычно вызывает функцию ClosePort , определяемую связанным монитором портов.

Если языковой монитор не связан с портом, диспетчер очереди очереди вызывает функцию ClosePort монитора портов напрямую.