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.