Partilhar via


marcar 0xEF de bugs: CRITICAL_PROCESS_DIED

O CRITICAL_PROCESS_DIED marcar de bugs tem um valor de 0x000000EF. Esse marcar indica que um processo crítico do sistema foi encerrado. Um processo crítico força o sistema a marcar de bugs se o sistema for encerrado. Esse marcar acontece quando o estado do processo está corrompido ou danificado. Quando a corrupção ou o dano acontece, como esses processos são críticos para a operação do Windows, ocorre um bug do sistema marcar à medida que a integridade do sistema operacional está em questão.

Os serviços internos do sistema crítico do Windows incluem csrss.exe, wininit.exe, logonui.exe, smss.exe, services.exe, conhost.exe e winlogon.exe.

Um desenvolvedor também pode criar um serviço e definir sua opção de recuperação para Reiniciar o Computador. Para obter mais informações, consulte Configurar ações de recuperação a serem executadas quando um serviço falhar.

Importante

Este tópico é para programadores. Se você for um cliente que recebeu um código de erro de tela azul ao usar o computador, consulte Solucionar erros de tela azul.

parâmetros de CRITICAL_PROCESS_DIED

Parâmetro Descrição
1 O objeto de processo
2 Se 0, um processo será encerrado. Se 1, um thread será encerrado.
3 Reservado
4 Reservado

Resolução

Determinar a causa desse problema normalmente requer o uso do depurador para coletar informações adicionais. Você deve examinar vários arquivos de despejo para ver se esse código de parada tem características semelhantes, como o código em execução quando o código de parada é exibido.

Para obter mais informações, consulte Análise de despejo de falhas usando os depuradores do Windows (WinDbg),Usando a extensão !analyze e !analyze.

Em muitos casos, um despejo de usuário também é criado antes da verificação de bugs do sistema. Em geral, quando um despejo de usuário está disponível, esse despejo deve ser examinado primeiro para encontrar a causa raiz do problema. Há limitações para depurar o código do modo de usuário do despejo de kernel, incluindo dados excluídos/ausentes. Para obter mais informações, consulte Arquivos de despejo do modo de usuário.

Considere usar o log de eventos para ver se há erros que levam a esse código de parada. Se houver, esses erros poderão ser usados para examinar serviços específicos ou outro código para investigar.

Depois que as informações sobre o código em questão estiverem disponíveis, defina um ponto de interrupção no código relacionado antes que esse código seja executado. A partir daí, um passo a frente por meio do código, examinando os valores de variáveis críticas que são usadas para controlar o fluxo de código. Examine cuidadosamente essa área do seu código para procurar falsas suposições ou outros erros.

Use o segundo parâmetro do bug marcar para determinar se um processo ou thread em extinção causou o bug marcar.

Se for um processo, use o comando !process para exibir informações sobre o processo antes e depois do ponto de falha ao procurar um comportamento anormal. O utilitário Gerenciador de processos pode coletar informações gerais sobre as relações pai filho e quais processos estão em execução.

Se for um thread, considere usar o comando !thread para exibir informações sobre o thread. Para obter informações sobre threads no modo kernel, consulte Alterando contextos.

Para obter informações gerais sobre threads, processos e outras especificidades sobre código crítico protegido pelo Windows, como wininit e csrss, consulte Windows Internals by Pavel Yosifovich, Mark E. Russinovich, David A. Solomon e Alex Ionescu.

Dicas de solução de problemas gerais

Se você não conseguir trabalhar com o depurador, essas dicas gerais de solução de problemas poderão ser úteis.

  • Se você adicionou hardware recentemente ao sistema, tente remover ou substituir esse hardware. Você também pode marcar com o fabricante para ver se há patches disponíveis.

  • Se você instalou novos drivers de dispositivo ou serviços do sistema recentemente, tente removê-los ou atualizá-los. Tente determinar o que mudou no sistema que fez com que o novo bug marcar código aparecesse.

  • Verifique o Visualizador de Eventos de Logon do Sistema em busca de outras mensagens de erro que possam ajudar a identificar o dispositivo ou driver que está causando o erro. Para obter mais informações, consulte Abrir Visualizador de Eventos. Procure erros críticos no log do sistema que ocorreram na mesma janela de tempo que a tela azul.

  • Verifique com o fabricante se um BIOS ou firmware do sistema atualizado está disponível.

  • Tente executar o hardware diagnóstico fornecido pelo fabricante do sistema.

  • Confirme se qualquer novo hardware instalado é compatível com a versão instalada do Windows. Por exemplo, você pode obter informações sobre o hardware necessário em especificações de Windows 10.

  • Execute um programa de detecção de vírus. Os vírus podem infectar todos os tipos de discos rígidos formatados para Windows. A corrupção de disco resultante pode gerar códigos de marcar de bugs do sistema. Verifique se o programa de detecção de vírus verifica se há infecções no Registro de Inicialização Mestre.

  • Use a ferramenta Verificador de Arquivos do Sistema para reparar arquivos do sistema ausentes ou corrompidos. O Verificador de Arquivos do Sistema é um utilitário no Windows que permite que os usuários verifiquem se há corrupção nos arquivos do sistema Windows e restaurem arquivos corrompidos. Use o comando a seguir para executar a ferramenta Verificador de Arquivos do Sistema (SFC.exe).

    SFC /scannow
    

    Para obter mais informações, consulte Usar a ferramenta Verificador de Arquivos do Sistema para reparar arquivos do sistema ausentes ou corrompidos.

  • Examine Gerenciador de Dispositivos para ver se algum dispositivo está marcado com o ponto de exclamação (!). Examine o log de eventos exibido nas propriedades do driver para qualquer driver com falha. Tente atualizar o driver relacionado.

Confira também