O Spooler de Impressão do Windows 7 mantém as portas seriais bloqueadas também quando parado

1

Eu tenho um programa (o ambiente é o Windows 7 Enterprise 32bit) que varre as portas seriais disponíveis para detectar um dispositivo específico.

Mas em muitas máquinas, um driver de impressora é configurado em uma das portas seriais (isso não significa que há, na verdade, uma impressora conectada a essa porta). Nesse caso, meu programa de varredura não pode abrir essa porta para pesquisar o dispositivo.

No Windows XP, interromper o spooler antes de iniciar a digitalização foi suficiente para desbloquear portas seriais alocadas pelos drivers da impressora. No Windows 7, isso não está mais funcionando. Se eu tiver uma impressora configurada no COMx e eu parar o spooler, o COMx não poderá ser aberto.

Eu verifiquei bloqueios de processo com ProcExp : resultados de portas alocados pelo processo spoolsv.exe quando o spooler está em execução e os resultados NÃO são alocados por ninguém quando o spooler é interrompido.

Alguma ideia sobre como desbloquear momentaneamente portas alocadas por impressoras?

Uma solução que eu encontrei é mudar a porta de cada impressora serial para FILE: antes da digitalização e voltar para a COMx quando a digitalização terminar, mas eu me pergunto se existe uma solução mais simples.

    
por Axeman 24.08.2012 / 08:28

1 resposta

2

Eu tive um problema semelhante que foi resolvido alterando o nome da porta de COM1 para COM4 nas propriedades avançadas da porta serial (através do gerenciador de dispositivos).

Tudo funcionou bem. Alguns programas ainda vêem a porta renomeada como COM1, mas agora eles podem acessar a porta.

    
por 08.10.2012 / 15:14