Eu às vezes usoMonitor de Processopara depuração de software e também para jogar online. Alguns desses jogos usamOlho de Batalhasoftware anti-cheat, que se recusa a permitir que o jogo seja executado após o Process Monitor ter sido iniciado no sistema, mostrando isso no log:
08:06:46: Starting BattlEye Service...
08:06:49: Launching game...
08:07:07: Disallowed driver: "\??\C:\Windows\system32\Drivers\PROCMON23.SYS". Please unload it or reboot your system.
O driver permanece carregado após fechar o Process Monitor e não parece haver uma opção para descarregá-lo.
Várias outras perguntas têm respostas sobre como descarregar drivers usando net stop
ou sc stop
, mas o driver ProcMon não é um serviço, então isso não funciona. Também tentei procurar no Gerenciador de Dispositivos e ativar ‘Mostrar dispositivos ocultos’, mas nenhuma das entradas aparece relacionada ao ProcMon. Não consigo excluir o arquivo do driver, pois ele não está presente no sistema de arquivos; ProcMon armazena o arquivo em seu executável e o extrai conforme necessário.
Minha pergunta não é uma duplicata deessa questão, que trata de um problema semelhante em que o driver persiste após uma reinicialização. Minha pergunta é sobre como descarregar o driver sem reiniciar.
Responder1
Drivers padrãosãoserviços e você pode realmente controlá-los via net
e sc
. (Por exemplo, dê uma olhada em sc query beep
– parar o driver de ‘bipe’ é uma forma comum de desligar o alto-falante interno do PC.)
Nas versões anteriores do Process Monitor (provavelmente anteriores à 2.3, quando ainda tinha suporte para Windows XP), ele instalaria um driver de dispositivo "herdado" queeravisível via sc
Gerenciador de dispositivos, etc.
As versões atuais do Process Monitor parecem remover a configuração do driver/serviço do registro imediatamente após iniciar o driver. Você pode ver isso pormonitorando o ProcMon consigo mesmo. É possível adicionar novamente manualmente o serviço, com tipo 2 (driver kernel FS) e ele aparecerá imediatamente como já em execução.
No entanto, o serviço também reportará “NOT_STOPPABLE” e recusará qualquer tentativa de interrupção.
Além disso, o PROCMON23 agora se registra como umminifiltro de sistema de arquivosdriver através do Gerenciador de filtros (FltDrv). Você pode ver isso na saída de fltmc
, mas a tentativa de descarregá-lo externamente também falha (possivelmente porque o driver não possui a rotina de descarregamento):
C:\WINDOWS\system32>fltmc Nome do Filtro Num Instâncias Altitude Quadro ------------------------------ ------------- ------- ----- ----- PROCMON23 0 385200 0 Filtro Wd4 328010 0 armazenamentoflt 0 244000 0 wcifs1 189900 0 ... C:\WINDOWS\system32>fltmc descarrega PROCMON23 Falha no descarregamento com erro: 0x801f0010 Não retire o filtro do volume neste momento.
Como a ferramenta CLI "oficial" não consegue remover o filtro do FltMgr, e o FltMgrem sié um driver 'crítico' que não pode ser reiniciado sem reinicialização, parece que não há como descarregar PROCMON23 ou PROCMON24.
Mas a parte mais interessante: depois de fazer as verificações acima com o procmon 3.40, descobri que a versão mais recente no site é a 3.50 (que usa um driver PROCMON24 mais recente). Ao iniciar a nova versão, fui informado que uma versão mais antiga do driver já estava no sistema e que deveria reiniciar.
Então, se ProcMonem sinão pode descarregar seu próprio driver sem precisar reinicializar, acho que você pode assumir com segurança que também não será capaz de descarregá-lo.
Responder2
Além de umexcelente respostaporusuário1686o que conclui que não há como descarregá-lo, gostaria de acrescentar que a reinicialização normal do Windows 10 também não ajuda, porque o Windows 10 hoje em dia persiste um pouco de memória e recarrega na inicialização, então o driver acaba na memória mesmo após a reinicialização.
Para evitar isso, reinicie com este comando executado como administrador:
shutdown /r /f /t 0
que executará a reinicialização adequada. Verifique, executando fltmc
como administrador, se o driver não está mais lá.
Responder3
O driver de filtro problemático PROCMON23.SYS
é instalado pelo ProcMon quando ele é executado. Se o arquivo
C:\Windows\system32\Drivers\PROCMON23.SYS
não existir no momento, o ProcMon irá gravá-lo. O PROCMON23.SYS
próprio arquivo está incluído como um recurso binário dentro do executável do ProcMon.
Você pode listar todos os drivers de filtro em execução:
fltmc filters
e no meu computador isso dá:
Como você pode ver, minha versão do Process Monitor é mais recente que a sua (24 em vez de 23).
Normalmente, um driver de filtro pode ser desinstalado por um comando como:
Fltmc unload PROCMON24
No entanto, neste caso, isso resulta em um prompt de comando elevado:
O erro de descarregamento 0x801f0010 é o erro típico de um driver de minifiltro que não possui rotina de descarregamento.
Conclusão: PROCMON23.SYS e o PROCMON24.SYS posterior estão mal programados. O desenvolvedor não previu que alguém desejaria descarregar seu driver e não incluiu nele a rotina necessária. Portanto, este driver não pode ser descarregado.
A má notícia para você é que é necessária uma reinicialização para descartá-lo, nada mais resolverá o problema. Seu único recurso é reclamar com o desenvolvedor.
Responder4
Parece que ele se conecta ao kernel, que você precisa (o kernel) para evitar a reinicialização por outros motivos (PC travado).
Isso explicaria por que você precisa reiniciar... é a única maneira de se desconectar do kernel.