Monitores de porta

Os monitores de porta consistem em DLLs no modo de usuário. Eles são responsáveis por fornecer um caminho de comunicação entre o spooler de impressão no modo usuário e os drivers de porta no modo kernel que acessam o hardware da porta de E/S. Um monitor de porta normalmente usa as funções CreateFile, WriteFile, ReadFile e DeviceIOControl para se comunicar com drivers de porta no modo kernel. Os monitores de porta também são responsáveis pelo gerenciamento e configuração das portas de impressora de um servidor, conforme descrito em Gerenciamento de uma porta.

A exibição de um usuário do sistema operacional baseado em NT de uma "impressora" é realmente uma fila de impressão, à qual um ou mais dispositivos de impressora física podem ser conectados. Uma porta é a conexão física entre a fila de impressão e um único dispositivo de impressora. Cada monitor de porta dá suporte a uma ou mais instâncias de um ou mais tipos de portas. Por exemplo, Localmon.dll, o monitor de porta de exemplo, pode dar suporte a todas as portas COM e LPT locais de um servidor. A pasta de impressão atribui portas a monitores de porta chamando a função AddPrinter .

Para filas de impressão que representam vários dispositivos de impressora (por meio de várias portas), o spooler envia cada trabalho de impressão para a primeira porta disponível. Se o monitor de porta indicar que uma porta especificada está ocupada ou se encontrou um erro, o spooler reenviará o trabalho para a fila, especificando outra porta com suporte pelo monitor de porta.

Além de Localmon.dll, as versões do sistema operacional Windows 2000 e posterior fornecem vários monitores de porta adicionais. O Kit de Recursos do Windows 2000 Server descreve cada um desses monitores de porta. (Esse recurso pode não estar disponível em alguns idiomas e países.)

Monitores de porta personalizados podem ser gravados para dar suporte a tipos adicionais de hardware de porta de E/S.

Para o Windows 2000 e posterior, cada monitor de porta é dividido em duas DLLs:

DLL da interface do usuário do Monitor de Porta A DLL da interface do usuário de um monitor de porta contém a funcionalidade de interface do usuário e é executada em sistemas cliente de impressão.

Essa DLL deve residir no subdiretório System32 do sistema cliente.

DLL do Servidor do Monitor de Porta
A DLL do servidor de um monitor de porta contém a funcionalidade de comunicação de porta e é executada em servidores de impressão. Ele não deve exibir uma interface do usuário.

A DLL da interface do usuário se comunica com a DLL do servidor chamando a função XcvData do spooler.

Um monitor de porta de exemplo está incluído no WDK (Kit de Driver do Windows).