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.