Compartilhar via


Verificação de bugs 0x19: BAD_POOL_HEADER

A verificação de bugs BAD_POOL_HEADER tem um valor de 0x00000019. Isso indica que um cabeçalho de pool está corrompido.

Importante

Este artigo é para programadores. Se você for um cliente que recebeu um código de erro de tela azul enquanto estava usando o computador, confira Solucionar problemas de erros de tela azul.

BAD_POOL_HEADER Parâmetros

Parâmetro 1 indica o tipo de violação. O significado dos outros parâmetros depende do valor do Parâmetro 1.

Parâmetro 1 Parâmetro 2 Parâmetro 3 Parâmetro 4 Causa do erro

0x2

A entrada do pool está sendo verificada

O tamanho do bloco do pool

0

A verificação do padrão de pool especial falhou.

(O proprietário provavelmente corrompeu o bloco do pool).

0x3

A entrada do pool está sendo verificada

O valor da lista livre do flink de retorno de leitura

O valor da lista livre do blink de retorno de leitura

A lista livre do pool está corrompida.

(Em uma lista íntegra, os valores dos parâmetros 2, 3 e 4 devem ser idênticos).

0x5

Uma das entradas do pool

Reserved

A outra entrada do pool

Um par de entradas de pool adjacentes tem cabeçalhos que se contradizem. Pelo menos um deles está corrompido.

0x6

Uma entrada calculada incorretamente

Reserved

A entrada inválida que causou o erro de cálculo

O tamanho anterior do cabeçalho do bloco do pool é muito grande.

0x7

0

Reserved

A entrada inválida do pool

O tamanho do cabeçalho do bloco do pool está corrompido.

0x8

0

Reserved

A entrada inválida do pool

O tamanho do cabeçalho do bloco do pool é zero.

0x9

Uma entrada calculada incorretamente

Reserved

A entrada inválida que causou o erro de cálculo

O tamanho do cabeçalho do bloco do pool está corrompido (é muito grande).

0xA

A entrada do pool que deveria ter sido encontrada

Reserved

O endereço virtual da página que deveria conter a entrada do pool

O tamanho do cabeçalho do bloco do pool está corrompido.

0xD, 0xE, 0xF, 0x23, 0x24, 0x25

Reservado

Reservado

Reservado

O cabeçalho do pool de um bloco liberado foi modificado depois que ele foi liberado. Normalmente, isso não é culpa do proprietário anterior do bloco liberado, geralmente (mas nem sempre), isso se deve ao fato de o bloco anterior ao bloco liberado ter sido ultrapassado.

0x20

A entrada do pool que deveria ter sido encontrada

A próxima entrada do pool

Reserved

O tamanho do cabeçalho do bloco do pool está corrompido.

0X21

O ponteiro do pool sendo liberado

O número de bytes alocados para o bloco de pool

O valor corrompido encontrado após o bloco de pool

Os dados após a liberação do bloco de pool estão corrompidos. Normalmente, isso significa que o consumidor (pilha de chamadas) ultrapassou o bloco.

0X22

O endereço que está sendo liberado

Reservado

Reservado

Um endereço que está sendo liberado não tem uma entrada de rastreamento. Isso geralmente ocorre porque a pilha de chamadas está tentando liberar um ponteiro que já foi liberado ou que nunca foi alocado.

Causa

O pool já está corrompido no momento da solicitação atual.

Isso pode ou não ser devido ao chamador.

Resolução

Os links de pool internos devem ser percorridos usando o depurador de kernel para descobrir uma possível causa do problema.

Em seguida, você pode usar o pool especial para as marcas de pool suspeitas ou usar a opção "Special Pool" do verificador de driver no driver suspeito. A extensão !analyze pode ser útil para identificar o driver suspeito, mas esse geralmente não é o caso dos corruptores de pool.

Use as etapas descritas em Analisar dados de tela azul de verificação de bugs para coletar os parâmetros do código de parada. Use os parâmetros de código de parada para determinar o tipo específico de comportamento de código que você está trabalhando para rastrear.

Driver Verifier

O verificador de driver é uma ferramenta que é executada em tempo real para examinar o comportamento dos drivers. Se for visto erros na execução do código do driver, ele cria de forma proativa uma exceção para permitir que essa parte do código do driver seja examinada mais detalhadamente. O gerenciador do verificador de driver é incorporado no Windows e está disponível em todos os PCs com Windows. Para iniciar o gerenciador do verificador de driver, digite verifier em um prompt de comando. Você pode configurar quais drivers gostaria de verificar. O código que verifica os drivers adiciona sobrecarga à medida que é executado, então tente e verifique o menor número possível de drivers. Para obter mais informações, consulte Driver Verifier.

Windows Memory Diagnostics

Se essa verificação de bugs aparecer de forma inconsistente, ela pode estar relacionada a uma memória física defeituosa.

Execute a ferramenta de Diagnóstico de memória do Windows para testar a memória. Na caixa de pesquisa do painel de controle, digite Memory e selecione Diagnosticar problemas de memória do computador. Depois que o teste for executado, use o Visualizador de eventos para exibir os resultados no log do sistema. Procure a entrada MemoryDiagnostics-Results para exibir os resultados.