Parar o erro 7F, 0x00000008 (dupla falha) ocorre devido a um erro de bit único no registro ESP

Este artigo fornece uma solução para uma mensagem de erro STOP 0x0000007F, 0x00000008 no computador devido a um erro específico do processador. Essa mensagem de erro pode ser exibida quando ocorre um erro de bit único no registro ESP de um processador que está em execução no computador.

Aplica-se a: Windows Server 2012 R2
Número de KB original: 842465

Sintomas

Em um computador que está executando um ou mais processadores Intel Xeon ou que está executando outros processadores, o Windows pode exibir uma mensagem de erro Stop semelhante ao exemplo a seguir:

STOP 0x0000007F (0x00000008, 0x00000000, 0x00000000, 0x00000000) UNEXPECTED_KERNEL_MODE_TRAP

Quando esse problema ocorre, as seguintes condições são verdadeiras:

  • O primeiro parâmetro do erro Parar é "0x0000008". (Esse erro é uma exceção de dupla falha.)
  • Devido a um erro de bit único na metade superior do registro ESP, o valor no registro ESP está fora do intervalo de pilhas do thread atual.

Motivo

Esse problema ocorrerá se um ou mais processadores no computador:

  • Exigir uma atualização de microcódigo que não seja aplicada pelo BIOS (sistema básico de entrada/saída) do computador.

  • Estão danificados ou com defeito.

  • Estão operando fora de seus intervalos especificados para temperatura, energia ou outras condições.

Resolução

Para resolve esse problema, use um dos seguintes métodos de solução de problemas.

Método 1: determinar se o processador está executando a revisão de produção da atualização de microcódigo

Uma atualização de microcódigo corrige errata ou bugs na lógica implementada internamente por um processador. As atualizações de microcódigo não podem ser armazenadas permanentemente no próprio processador e devem ser carregadas no processador sempre que o computador for iniciado. As atualizações de microcódigo podem ser aplicadas pelo BIOS do computador ou pelo driver Update.sys.

Para identificar a revisão da atualização de microcódigo que atualmente é aplicada a um processador Intel instalado em seu computador, siga estas etapas:

  1. Baixe o Utilitário de Identificação do Processador Intel.

  2. Instale e execute o Utilitário de Identificação do Processador Intel no computador que está apresentando sintomas.

  3. Anote as seguintes informações de CPU para cada processador:

    • Família CPU
    • Modelo de CPU
    • Etapa da CPU
    • Revisão da CPU

    Os valores de CPU Family, CPU Model e CPU Stepping identificam o tipo específico de processador. O valor da Revisão da CPU identifica a revisão da atualização de microcódigo aplicada.

  4. Entre em contato com o fabricante do computador para determinar se a revisão da atualização de microcódigo é a revisão mais atual disponível para um processador específico. Se a revisão não for a mais atual, peça ao fabricante do computador um BIOS atualizado que aplicará a revisão de atualização de microcódigo mais atual.

Os sintomas descritos neste artigo têm sido observados com mais frequência em processadores Intel Xeon que têm os valores de CPU Family, CPU Model e CPU Stepping de 15, 2 e 9, respectivamente, e que são instalados em placas-mãe que usam chipsets ServerWorks. (Os valores hexadecimal da CPU Family, CPU Model e CPU Stepping são F, 2 e 9, respectivamente.) Esses processadores exigem um valor de revisão de 0x18 ou posterior para funcionar corretamente. (0x18 é equivalente a um valor decimal de 24.)

Um valor de revisão de 0 indica que o BIOS do computador não tem a atualização de microcódigo correta para os processadores instalados no computador. Você deve atualizar o BIOS com uma revisão de atualização de microcódigo que dá suporte aos processadores que você está usando.

A Intel recomenda que você aplique as revisões mais recentes de atualização de microcódigo para ajudar a evitar problemas conhecidos.

Método 2: determinar se um processador está danificado ou com defeito

Se os processadores instalados nos computadores afetados tiverem a revisão de atualização de microcódigo de produção aplicada e os sintomas descritos neste artigo não ocorrerem em todos os computadores do mesmo modelo que estão executando os mesmos processadores, os processadores poderão estar com defeito.

Para determinar se um processador está danificado ou com defeito, mova o processador para um computador que não esteja apresentando sintomas.

Aviso

Se você alterar processadores, siga as instruções fornecidas pelo fabricante do computador ou envolva técnicos de hardware adequadamente qualificados para alterar os processadores.

Se os sintomas continuarem a ocorrer no computador original com o processador de substituição, mas não no outro computador com o processador original, o problema provavelmente não será causado por um processador danificado ou com defeito.

Se os sintomas não continuarem a ocorrer no computador original com o processador de substituição, mas ocorrerem no outro computador com o processador original, o problema provavelmente será causado por um processador danificado ou com defeito. Nesse caso, entre em contato com o fabricante do computador para substituir o processador original.

Se o computador que está experimentando os sintomas descritos neste artigo tiver mais de um processador, mova todos os processadores para o outro computador. Se os resultados indicarem que um ou mais desses processadores podem estar com defeito, mova os processadores um de cada vez para determinar o processador ou os processadores que podem estar com defeito.

Método 3: determinar se um processador está operando fora de um intervalo especificado de condições ambientais

A temperatura ambiente excessiva, a ventilação ruim ou o acúmulo de poeira podem fazer com que componentes eletrônicos, como processadores, se comportem de forma errática. Ventiladores com defeito ou passagens de ar bloqueadas podem causar problemas de ventilação. Se o interior ou as passagens de ar do computador estiverem empoeirados ou se o computador apresentar sintomas quando ele estiver instalado apenas em um local específico, o superaquecimento do sistema poderá ser um fator. Verifique se os componentes estão limpo, que os ventiladores estão funcionando corretamente e que as passagens de ar não estão obstruídas. Além disso, verifique se a sala em que o computador está localizado está adequadamente ventilada. A temperatura da sala deve estar no intervalo operacional especificado pelo fabricante do computador.

A tensão maior ou inferior à especificada ou que flutua, pode fazer com que processadores e outros componentes eletrônicos se comportem de forma errática. A tensão de energia incorreta ou inconsistente main, uma fonte de alimentação sobrecarregada ou que funciona incorretamente no computador ou circuitos de placa-mãe que funcionam incorretamente podem fazer com que a tensão incorreta ou inconsistente seja fornecida ao processador. Entre em contato com os técnicos apropriados para verificar se algum desses problemas pode ser a causa dos sintomas.

Mais informações

Para obter mais informações sobre erros de 0x0000007F STOP, consulte 0x0000007F Parar erro em um computador baseado no Windows.

O registro ESP também é conhecido como o registro de ponteiro de pilha. Uma pilha é uma estrutura de dados na memória que é usada para armazenar informações sobre o estado atual da execução de um thread. A pilha de um thread é usada para controlar chamadas de função em andamento, de parâmetros que são passados para essas funções e de variáveis que são usadas por essas funções. Espera-se que o valor no registro ESP aponte para a parte superior atual da pilha. Se o valor no ESP estiver incorreto, ele poderá apontar para informações incorretas ou para um endereço inválido. Se o valor em ESP apontar para um endereço inválido, poderá ocorrer uma exceção de dupla falha.

Para determinar se o erro Parar é o resultado de um erro de bit único no registro ESP, siga estas etapas:

  1. Instale as Ferramentas de Depuração da Microsoft para Windows.

  2. Execute a ferramenta WinDbg, selecione Arquivo, selecione Abrir Despejo de Falha para localizar o arquivo de despejo de memória que contém as informações de erro Parar e selecione OK.

  3. Execute o !analyze -v comando para obter uma análise automatizada do arquivo de despejo.

  4. Examine a saída do !analyze -v comando para ver se a saída mostra uma condição de dupla falha. Se existir uma condição de dupla falha, execute o .tss 28 comando para exibir o estado do sistema no momento da falha dupla. Geralmente, esse valor é relativamente próximo ao valor do registro EBP.

  5. Execute o !thread comando para exibir o intervalo de pilhas do thread atual. Normalmente, ocorre uma exceção de dupla falha quando o valor do registro ESP está fora do intervalo de endereços reservados para a pilha para o thread atual.

    Quando esse thread específico estiver em execução, o valor de registro ESP deve estar sempre entre o valor base de pilha (f5d2a000) e o valor limite (f5d27000). Geralmente, o valor do registro ESP é relativamente próximo ao valor atual (f5d29c9c). (O valor atual também está entre o valor Base de Pilha e o valor limite.)

    Você também pode ser capaz de marcar os valores de intervalo de pilha executando o !pcr comando.

    O NtTib.StackLimit valor representa o limite inferior do intervalo de pilhas. O NtTib.StackBase valor representa um valor recente de ESP. O NtTib.StackBase valor pode ser comparado com o valor atual do registro ESP para ajudar a identificar se há um erro de bit único no valor de registro esp atual.

  6. Execute o .formats esp ^ ebp comando para exibir as diferenças de valores entre os registros ESP e EBP. O valor do ponteiro de pilha no registro EBP será próximo ao valor do ponteiro de pilha no registro ESP, exceto pelo erro de bit único. Esse comando frequentemente revela o bit de alta ordem único que contém o erro, especialmente quando o erro é exibido no formato binário.

    Se você ignorar os dígitos inferiores e menos significativos, a diferença de bit único entre os registros ESP e EBP será 00000000 00001000 0000000 000000000 no formato binário. A diferença é 00080000 no formato hexadecimal.

    Esse erro de bit único faz com que o registro ESP contenha um valor incorreto. O valor incorreto causa uma exceção de dupla falha, um bug marcar e uma falha no sistema.

Para obter mais informações sobre seu hardware específico, siga estas etapas:

  1. Use o !cpuinfo comando para obter informações de versão da CPU.

    Embora o valor da Assinatura de Atualização nem sempre seja relatado com precisão quando você analisa um arquivo de despejo de falha, o campo Atualizar Assinatura geralmente indica a revisão de atualização de microcódigo que é aplicada à CPU.

  2. Use o !pcitree comando para localizar os identificadores de dispositivo e fornecedor (IDs VenDev) para dispositivos PCI (Interface de Conexão Periférica) existentes.

    Para cada dispositivo PCI listado, o primeiro DWORD (valor hexadecimal) de 8 dígitos em cada linha é a ID do VenDev. A ID do fornecedor é, na verdade, o segundo 4 dígitos desse valor. Por exemplo, o primeiro dispositivo listado tem uma ID VenDev de 0x00141166. A ID do dispositivo é 0x0014 e a ID do fornecedor é 0x1166. A ID do fornecedor para ServerWorks é 0x1166. Portanto, essa saída é de um processador instalado em uma placa-mãe que usa chipsets ServerWorks.

Os produtos de terceiros mencionados neste artigo são produzidos por empresas independentes da Microsoft. A Microsoft não oferece nenhuma garantia, implícita ou não, do desempenho ou da confiabilidade desses produtos.