Condividi tramite


Controllo bug 0xC2: BAD_POOL_CALLER

Il controllo BAD_POOL_CALLER bug ha un valore di 0x000000C2. Ciò indica che il thread corrente effettua una richiesta di pool non valida.

Importante

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

parametri BAD_POOL_CALLER

Il parametro 1 indica il tipo di violazione.

Parametro 1 Parametro 2 Parametro 3 Parametro 4 Causa di errore

0x00

0

Tipo di pool

Tag pool

Il thread corrente ha richiesto un'allocazione del pool di byte zero.

0x01,

0x02,

0x04

Puntatore all'intestazione del pool

Prima parte del contenuto dell'intestazione del pool

0

L'intestazione del pool è stata danneggiata.

0x06

Riservato

Puntatore all'intestazione del pool

Contenuto dell'intestazione del pool

Il thread corrente ha tentato di liberare il pool, che è già stato liberato.

0x07

Riservato

Contenuto dell'intestazione del pool

Indirizzo del blocco di pool liberato

Il thread corrente ha tentato di liberare il pool, che è già stato liberato.

0x08

IrQL corrente

Tipo di pool

Dimensioni dell'allocazione, in byte

Il thread corrente ha tentato di allocare il pool in un IRQL non valido.

0x09

IrQL corrente

Tipo di pool

Indirizzo del pool

Il thread corrente ha tentato di liberare il pool in un IRQL non valido.

0x0A

Indirizzo del pool

Tag dell'allocatore

Tag usato nel tentativo gratuito

Il thread corrente ha tentato di liberare memoria del pool usando il tag errato.

La memoria potrebbe appartenere a un altro componente.

0x0B,

0x0C,

o 0x0D

Indirizzo del pool

Tag dell'allocazione del pool

Puntatore al processo di quota non valido

Il thread corrente ha tentato di rilasciare una quota in un'allocazione del pool danneggiata.

0x40

Indirizzo iniziale

Inizio dello spazio degli indirizzi di sistema

0

Il thread corrente ha tentato di liberare il pool di kernel in un indirizzo in modalità utente.

0x41

Indirizzo iniziale

Frame di pagina fisico

Frame di pagina fisico più alto

Il thread corrente ha tentato di liberare un indirizzo di pool non allocato non allocato.

0x42

o 0x43

Indirizzo liberato

0

0

Il thread corrente ha tentato di liberare un indirizzo virtuale che non è mai stato in alcun pool.

0x44

Indirizzo iniziale

Riservato

0

Il thread corrente ha tentato di liberare un indirizzo di pool non allocato non allocato.

0x46

Indirizzo iniziale

0

0

Il thread corrente ha tentato di liberare un indirizzo del pool non valido.

0x47

Indirizzo iniziale

Frame di pagina fisico

Frame di pagina fisico più alto

Il thread corrente ha tentato di liberare un indirizzo di pool non allocato non allocato.

0x48

Indirizzo iniziale

Riservato

Riservato

Il thread corrente ha tentato di liberare un indirizzo del pool non allocato.

0x50

Indirizzo iniziale

Offset iniziale, nelle pagine, dall'inizio del pool di pagine

Dimensioni del pool di pagine, in byte

Il thread corrente ha tentato di liberare un indirizzo del pool non allocato.

0x60

Indirizzo iniziale

0

0

Il thread corrente ha tentato di liberare un indirizzo di memoria contiguo non valido.

Il chiamante di MmFreeContiguousMemory passa un puntatore non valido.

0x99

Indirizzo liberato

0

0

Il thread corrente ha tentato di liberare il pool con un indirizzo non valido.

Questo codice può anche indicare il danneggiamento nell'intestazione del pool.

0x9A

Tipo di pool

Numero di byte richiesti

Tag pool

Il thread corrente ha contrassegnato una richiesta di allocazione MUST_SUCCEED.

Questo tipo di pool non è più supportato.

0x9B

Tipo di pool

Numero di byte richiesti

Indirizzo del chiamante

Il thread corrente ha tentato di allocare un pool con un tag pari a 0

Questa operazione non può essere tracciata e potrebbe danneggiare le tabelle tag esistenti.

0x9C

Tipo di pool

Numero di byte richiesti

Indirizzo del chiamante

Il thread corrente ha tentato di allocare un pool con un tag "BIG".

Ciò potrebbe non essere tracciabile e potrebbe danneggiare le tabelle tag esistenti.

0x9D

Tag del pool non corretto usato

Tipo di pool

Indirizzo del chiamante

Il thread corrente ha tentato di allocare un pool con un tag che non contiene lettere o cifre. L'uso di tali tag rende difficile il rilevamento dei problemi del pool.

0x41286

Riservato

Riservato

Offset iniziale dall'inizio del pool di pagine, nelle pagine

Il thread corrente ha tentato di liberare un indirizzo del pool impaginato al centro di un'allocazione.

I codici di _POOL_TYPE vengono enumerati in Ntddk.h. In particolare, 0 indica il pool non con pagine e 1 indica il pool con pagine.

Causa

Una richiesta di pool non valida è stata effettuata dal thread corrente. In genere si tratta di un livello IRQL non valido o di liberare la stessa allocazione di memoria e così via.

Risoluzione

Attivare il verifica driver con opzioni del pool di memoria abilitate per ottenere altre informazioni su questi errori e individuare il driver di errore.

Verifica driver

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

Diagnostica memoria Windows

In particolare, per situazioni con danneggiamento del pool di memoria, eseguire lo strumento Diagnostica memoria di Windows, per provare a isolare la memoria fisica come causa. Nella casella di ricerca del pannello di controllo digitare Memoria e quindi selezionare Diagnosticare i problemi di memoria del computer. Dopo l'esecuzione del test, usare Visualizzatore eventi per visualizzare i risultati nel log di sistema. Cercare la voce MemoryDiagnostics-Results per visualizzare i risultati.