Compartilhar via


0x19 de Verificação de Bugs: BAD_POOL_HEADER

O marcar de bug 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 ao usar o computador, consulte Solucionar erros de tela azul.

Parâmetros de BAD_POOL_HEADER

O 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 que está sendo verificada

O tamanho do bloco de pool

0

O padrão de pool especial marcar falhou.

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

0x3

A entrada do pool que está sendo verificada

O valor da lista livre de flink de leitura/volta

O valor da lista livre de piscar de leitura

A lista livre do pool está corrompida.

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

0x5

Uma das entradas do pool

Reservado

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

Reservado

A entrada incorreta que causou o erro de cálculo

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

0x7

0

Reservado

A entrada de pool inválido

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

0x8

0

Reservado

A entrada de pool inválido

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

0x9

Uma entrada calculada incorretamente

Reservado

A entrada incorreta 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

Reservado

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, essa não é a falha do proprietário anterior do bloco liberado; em vez disso, geralmente é (mas nem sempre) devido ao bloco que precede o bloco liberado ser invadido.

0x20

A entrada do pool que deveria ter sido encontrada

A próxima entrada do pool

Reservado

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

0X21

O ponteiro do pool que está 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 o bloco de pool que está sendo liberado 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 acompanhamento. Isso geralmente ocorre porque a pilha de chamadas está tentando liberar um ponteiro que já foi liberado ou nunca foi alocado para começar.

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 do pool interno devem ser caminhados 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 "Pool Especial" do Verificador de Driver no driver suspeito. A extensão !analyze pode ser de ajuda para identificar o driver suspeito, mas esse não é frequentemente o caso com corrompidores de pool.

Use as etapas descritas em Dados de Tela Azul para coletar os Parâmetros de 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 executada em tempo real para examinar o comportamento dos drivers. Se ele vir erros na execução do código do driver, ele criará proativamente uma exceção para permitir que essa parte do código do driver seja examinada ainda mais. O gerenciador de verificador de driver é integrado ao Windows e está disponível em todos os computadores Windows. Para iniciar o gerenciador do verificador de driver, digite Verificador em um prompt de comando. Você pode configurar quais drivers deseja verificar. O código que verifica os drivers adiciona sobrecarga à medida que é executado, portanto, tente verificar o menor número possível de drivers. Para obter mais informações, consulte Verificador de Driver.

Diagnóstico de Memória do Windows

Se essa Verificação de Bugs aparecer inconsistentemente, ela poderá estar relacionada à memória física com falha.

Execute a ferramenta Diagnóstico de Memória do Windows para testar a memória. Na caixa de pesquisa do painel de controle, digite Memória 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.