Segredos do WindowsChamando o Dr. Watson

Raymond Chen

Você talvez já tenha percebido que, caso peça ao Dr. Watson (drwtsn32.exe) para verificar um despejo de memória do processo Winlogon, o Windows® é desligado assim que é concluído. Algumas pessoas se perguntam: "por que conectar um depurador ao Winlogon desliga todo o sistema?".

Mas não é isso o que está acontecendo. Executar o Dr. Watson em um processo não é a mesma coisa que conectar um depurador a um processo. A conexão de um depurador envolve algo como ntsd – e isso não funciona, pressupondo que você tenha os privilégios necessários. Na verdade, é dessa forma que a equipe do Windows depura os problemas usando o Winlogon. Portanto, a resposta literal para essa pergunta é: "conectar um depurador ao Winlogon não desliga o sistema".

Mas o Dr. Watson é um praticante da medicina, e um generalista, primeiramente verificando um despejo de memória de um processo problemático e finalizando o processo em seguida. Como o Dr. Watson não tenta efetivamente corrigir o problema, se ele permitisse a continuidade da execução, esse processo não falharia novamente. E o doutor seria chamado de volta, criando um loop infinito. De certa forma, o Dr. Watson é um depurador que, na verdade, não realiza nenhuma depuração. O bom doutor apenas aparece, toma notas importantes e finaliza o processo. E é só isso – finalizar o Winlogon após o despejo de memória – que causa a falha no sistema.

Se você finalizar Winlogon, o sistema será reiniciado

Se você finalizar Winlogon, o sistema será reiniciado  (Clique na imagem para aumentar a exibição)

O Winlogon é o que se chama de "processo de sistema crítico", e a eliminação de um processo crítico força a reinicialização do sistema. Por que o sistema considera o Winlogon crítico para seu funcionamento? Para os iniciantes, o Winlogon é responsável pelo processamento da seqüência segura – Ctrl+Alt+Del. Caso o Winlogon seja eliminado, a seqüência segura pára de funcionar. Isso é ruim por si só. O que piora as coisas é que, com a extinção do responsável da seqüência segura, outro programa só pode esperar que o usuário pressione Ctrl+Alt+Del e exibir uma caixa de diálogo de senha falsa em resposta. Não seria uma seqüência segura muito boa se ela pudesse ser falsificada! Como medida de precaução, o Windows se desliga antes que a situação inapropriada piore.

Agora, se você executar o Gerenciador de Tarefas, realçar um processo de sistema crítico como Winlogon, clicar em Finalizar Processo e confirmar, você acabou de finalizar Winlogon e o sistema será reiniciado (pressupondo, obviamente, que você esteja executando como um administrador privilegiado e que, por isso, tenha privilégios suficientes para finalizar o processo).

Em versões anteriores do Windows, o Gerenciador de Tarefas tentava impedir que você finalizasse esses processos de sistema crítico, embora seu algoritmo para decidir quais processos eram críticos não fosse muito inteligente. Se fosse suficientemente esperto, você poderia falsificar o Gerenciador de Tarefas e criar um programa que não pudesse ser finalizado. É claro que não era bem esse o caso. Ainda assim você poderia finalizar o programa – só teria que usar um programa que não fosse o Gerenciador de Tarefas para isso (por exemplo, você poderia tentar usar o programa taskkill).

Para evitar que seja falsificado, o Gerenciador de Tarefas simplesmente pára para impedir que você finalize processos de sistema críticos. Afinal, caso não faça nada, você não consegue fazer nada de errado. Isso significa que o Gerenciador de Tarefas não está mais protegendo você ao finalizar um processo. Ele não segurará mais a sua mão quando você tentar finalizar algo que deveria deixar quieto. Se optar por finalizar um processo de sistema crítico, você estará prestes a enfrentar as conseqüências.

Raymond Chen, The Old New Thing, e o livro homônimo (Addison-Wesley, 2007), tratam da história do Windows e da programação Win32. Ele deixa o trabalho de operacionalização de mecanismos para os outros.

© 2008 Microsoft Corporation e CMP Media, LLC. Todos os direitos reservados. A reprodução parcial ou completa sem autorização é proibida..