Condividi tramite


Controllo bug 0x19: BAD_POOL_HEADER

Il controllo dei bug BAD_POOL_HEADER ha un valore pari a 0x00000019. Ciò indica che un'intestazione del pool è danneggiata.

Importante

Questo articolo è destinato ai programmatori. Se si è un cliente che ha ricevuto un codice di errore della schermata blu durante l'uso del computer, vedere Risolvere gli errori della schermata blu.

parametri BAD_POOL_HEADER

Il parametro 1 indica il tipo di violazione. Il significato degli altri parametri dipende dal valore del parametro 1.

Parametro 1 Parametro 2 Parametro 3 Parametro 4 Causa dell'errore

0x2

Voce del pool da controllare

Dimensioni del blocco del pool

0

Controllo speciale del modello di pool non riuscito.

Il proprietario ha probabilmente danneggiato il blocco del pool.

0x3

Voce del pool da controllare

Valore freelist di flink read-back

Valore freelist per il lampeggiamento di read-back

L'elenco di elementi consentiti del pool è danneggiato.

In un elenco integro i valori dei parametri 2, 3 e 4 devono essere identici.

0x5

Una delle voci del pool

Prenotato

Voce dell'altro pool

Una coppia di voci di pool adiacenti ha intestazioni che si contraddicono tra loro. Almeno uno di loro è danneggiato.

0x6

Una voce calcolata in modo non corretto

Prenotato

Voce errata che ha causato il calcolo errato

Le dimensioni precedenti dell'intestazione del blocco del pool sono troppo grandi.

0x7

0

Prenotato

Voce del pool non valida

Le dimensioni dell'intestazione del blocco del pool sono danneggiate.

0x8

0

Prenotato

Voce del pool non valida

Le dimensioni dell'intestazione del blocco del pool sono pari a zero.

0x9

Una voce calcolata in modo non corretto

Prenotato

Voce errata che ha causato il calcolo errato

Le dimensioni dell'intestazione del blocco del pool sono danneggiate (è troppo grande).

0xA

Voce del pool che dovrebbe essere stata trovata

Prenotato

Indirizzo virtuale della pagina che deve contenere la voce del pool

Le dimensioni dell'intestazione del blocco del pool sono danneggiate.

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

Prenotato

Prenotato

Prenotato

L'intestazione del pool di un blocco liberato è stata modificata dopo che è stata liberata. Questo non è in genere l'errore del proprietario precedente del blocco liberato; invece è in genere (ma non sempre) a causa del blocco che precede il blocco liberato sottoposto a sovraccarico.

0x20

Voce del pool che dovrebbe essere stata trovata

Voce successiva del pool

Prenotato

Le dimensioni dell'intestazione del blocco del pool sono danneggiate.

0X21

Puntatore al pool liberato

Numero di byte allocati per il blocco del pool

Valore danneggiato trovato dopo il blocco del pool

I dati che seguono il blocco del pool liberato sono danneggiati. In genere questo significa che il consumer (stack di chiamate) ha superato il blocco.

0X22

Indirizzo liberato

Prenotato

Prenotato

Un indirizzo liberato non dispone di una voce di rilevamento. Ciò è in genere dovuto al fatto che lo stack di chiamate sta tentando di liberare un puntatore che è già stato liberato o che non è mai stato allocato per iniziare.

Causa

Il pool è già danneggiato al momento della richiesta corrente.

Questo può essere o meno dovuto al chiamante.

Risoluzione

I collegamenti interni del pool devono essere eseguiti usando il debugger del kernel per individuare una possibile causa del problema.

È quindi possibile usare un pool speciale per i tag del pool sospetto o usare l'opzione Driver Verifier "Special Pool" nel driver sospetto. L'estensione !analyze può essere utile per individuare il driver sospetto, ma questo non è spesso il caso di danneggiamenti del pool.

Usare la procedura descritta in Analizzare i dati della schermata blu del controllo dei bug per raccogliere i parametri del codice di arresto. Usare i parametri del codice di arresto per determinare il tipo specifico di comportamento del codice che si sta lavorando per tenere traccia.

Driver Verifier

Driver Verifier è uno strumento in esecuzione in tempo reale per esaminare il comportamento dei driver. Se vengono visualizzati errori nell'esecuzione del codice del driver, crea in modo proattivo un'eccezione per consentire che tale parte del codice del driver venga ulteriormente esaminata. Gestione verifica driver è integrato in Windows ed è disponibile in tutti i PC Windows. Per avviare gestione verifica driver, digitare Verifier al prompt dei comandi. È possibile configurare i driver da verificare. Il codice che verifica i driver comporta un sovraccarico durante l'esecuzione, quindi provare a verificare il minor numero possibile di driver. Per altre informazioni, vedere Driver Verifier.

Diagnostica della memoria di Windows

Se questo controllo bug viene visualizzato in modo incoerente, potrebbe essere correlato alla memoria fisica difettosa.

Eseguire lo strumento Diagnostica memoria windows per testare la memoria. Nella casella di ricerca del pannello di controllo digitare Memoria e quindi selezionare Diagnostica dei problemi di memoria del computer. Dopo l'esecuzione del test, usare il Visualizzatore eventi per visualizzare i risultati nel log di sistema. Cercare la voce MemoryDiagnostics-Results per visualizzare i risultati.