Abrir e fechar uma porta

Depois que uma porta tiver sido adicionada, conforme descrito em Adicionando uma porta, o spooler poderá abri-la chamando a função OpenPortEx do monitor de idioma apropriada.

O monitor de linguagem usa a função OpenPortEx para criar e retornar um identificador de porta. Normalmente, um monitor de idioma chama a função OpenPort do monitor de porta associada e o monitor de idioma apenas retorna o identificador obtido do OpenPort do monitor de porta.

Se um monitor de idioma não estiver associado a uma porta, o spooler chamará diretamente a função OpenPort do monitor de porta.

O spooler não permite que mais de um caminho para uma porta seja habilitado ao mesmo tempo. Portanto, depois de chamar OpenPortEx (ou OpenPort) em um monitor específico, ele não tentará abrir a mesma porta novamente antes de fechá-la.

Depois que uma porta for aberta, o spooler poderá chamar funções adicionais para imprimir um trabalho, conforme descrito em Imprimir um Trabalho de Impressão, usando o identificador de porta como um argumento de entrada. Um monitor deve ser gravado para que, depois que uma porta for aberta, o spooler possa enviar vários trabalhos de impressão antes de fechar a porta.

O spooler fechará uma porta se um trabalho precisar ser enviado por meio de um monitor de idioma diferente, se nenhuma fila de impressão estiver associada a uma porta ou quando o sistema for desligado. Para fechar uma porta, o spooler chama a função ClosePort de um monitor de idioma. A função invalida o identificador que foi criado quando a porta foi aberta. Um monitor de linguagem normalmente chama a função ClosePort definida pelo monitor de porta associado.

Se um monitor de idioma não estiver associado a uma porta, o spooler chamará diretamente a função ClosePort do monitor de porta.