Fehlerüberprüfung 0x19: BAD_POOL_HEADER
Die BAD_POOL_HEADER Fehlerüberprüfung hat einen Wert von 0x00000019. Dies gibt an, dass ein Poolheader beschädigt ist.
Wichtig
Dieser Artikel richtet sich an Programmierer*innen. Wenn Sie ein/eine Kund*in sind, der/die einen Bluescreen-Fehlercode bei der Benutzung eines Computers erhalten hat, lesen Sie bitte Fehlerbehebung bei Bluescreen-Fehlern.
BAD_POOL_HEADER-Parameter
Parameter 1 gibt die Art des Verstoßes an. Die Bedeutung der anderen Parameter hängt vom Wert des Parameters 1 ab.
Parameter 1 | Parameter 2 | Parameter 3 | Parameter 4 | Fehlerursache |
---|---|---|---|---|
0x2 |
Der Pooleintrag, der überprüft wird |
Die Größe des Poolblocks. |
0 |
Fehler bei der Überprüfung des speziellen Poolmusters. (Der Besitzer hat den Poolblock wahrscheinlich beschädigt.) |
0x3 |
Der Pooleintrag, der überprüft wird |
Der zurückgeleseneflink Freelist-Wert |
Der zurückgeleseneblink Freelist-Wert |
Die Pool-Freelist ist beschädigt. (In einer fehlerfreien Liste sollten die Werte der Parameter 2, 3 und 4 identisch sein.) |
0x5 |
Einer der Pool-Einträge. |
Reserved |
Der andere Pooleintrag |
Ein Paar angrenzender Pooleinträge verfügt über Kopfzeilen, die einander widersprechen. Mindestens einer davon ist beschädigt. |
0x6 |
Ein falsch berechneter Eintrag |
Reserved |
Der ungültige Eintrag, der die Fehlberechnung verursacht hat |
Die vorherige Größe des Poolblockheaders ist zu groß. |
0x7 |
0 |
Reserved |
Der ungültige Pooleintrag |
Die Größe des Poolblockheaders ist beschädigt. |
0x8 |
0 |
Reserved |
Der ungültige Pooleintrag |
Die Größe des Poolblockheaders ist Null. |
0x9 |
Ein falsch berechneter Eintrag |
Reserved |
Der ungültige Eintrag, der die Fehlberechnung verursacht hat |
Die Größe des Poolblockheaders ist beschädigt (es ist zu groß). |
0xA |
Der Pooleintrag, der gefunden werden sollte |
Reserved |
Die virtuelle Adresse der Seite, die den Pooleintrag enthalten sollte |
Die Größe des Poolblockheaders ist beschädigt. |
0xD, 0xE, 0xF, 0x23, 0x24, 0x25 |
Reserviert |
Reserviert |
Reserviert |
Der Poolheader eines freigegebenen Blocks wurde geändert, nachdem er freigegeben wurde. Dies ist in der Regel nicht der Fehler des vorherigen Besitzers des freigegebenen Blocks; Stattdessen ist sie normalerweise (aber nicht immer) aufgrund des Blocks, der dem freigeschalteten Block vorausgeht, überlaufen. |
0x20 |
Der Pooleintrag, der gefunden werden sollte |
Der nächste Pooleintrag |
Reserved |
Die Größe des Poolblockheaders ist beschädigt. |
0X21 |
Der Poolzeiger, der freigegeben wird |
Die Anzahl der für den Poolblock zugewiesenen Bytes |
Der beschädigte Wert, der nach dem Poolblock gefunden wurde |
Die Daten, die auf den freigegebenen Poolblock folgen, sind beschädigt. Dies bedeutet in der Regel, dass der Consumer (Aufrufstapel) den Block überlaufen hat. |
0x22 |
Die Freihandadresse |
Reserviert |
Reserviert |
Eine Freihandadresse hat keinen Nachverfolgungseintrag. Dies liegt in der Regel daran, dass der Aufrufstapel versucht, einen Zeiger frei zu geben, der entweder bereits freigegeben wurde oder nie zugewiesen wurde, um zu beginnen. |
Ursache
Der Pool ist zum Zeitpunkt der aktuellen Anforderung bereits beschädigt.
Dies kann oder nicht auf den Anrufer zurückzuführen sein.
Lösung
Die internen Poollinks müssen mithilfe des Kerneldebuggers durchlaufen werden, um eine mögliche Ursache des Problems zu ermitteln.
Anschließend können Sie speziellen Pool für die verdächtigen Pooltags verwenden oder die Option Driver Verifier "Special Pool" für den verdächtigen Treiber verwenden. Die !analyze-Erweiterung kann hilfreich sein, um den verdächtigen Treiber zu bestimmen, aber dies ist häufig nicht der Fall bei Pool-Korrupern.
Verwenden Sie die unter Bluescreendaten zur Fehlerüberprüfung analysieren beschriebenen Schritte, um die Stoppcode-Parameter zu erfassen. Verwenden Sie die Stoppcodeparameter, um den spezifischen Typ des Codeverhaltens zu bestimmen, den Sie nachverfolgen möchten.
Driver Verifier
Driver Verifier ist ein Tool, das in Echtzeit ausgeführt wird, um das Verhalten von Treibern zu untersuchen. Wenn Fehler bei der Ausführung des Treibercodes festgestellt werden, wird proaktiv eine Ausnahme erstellt, damit dieser Teil des Treibercodes genauer untersucht werden kann. Der Treiberprüfer-Manager ist in Windows integriert und ist auf allen Windows-PCs verfügbar. Um den Treiberüberprüfungs-Manager zu starten, geben Sie Verifier an einer Eingabeaufforderung ein. Sie können konfigurieren, welche Treiber Sie überprüfen möchten. Der Code, der Treiber überprüft, verursacht während seiner Ausführung Overhead. Versuchen Sie daher, möglichst wenige Treiber zu überprüfen. Weitere Informationen finden Sie unter Treiberüberprüfung.
Windows Memory Diagnostics
Wenn diese Fehlerüberprüfung inkonsistent angezeigt wird, kann dies mit fehlerhaftem physischem Speicher zusammenhängen.
Führen Sie das Windows-Speicherdiagnosetool aus, um den Arbeitsspeicher zu testen. Geben Sie im Suchfeld der Systemsteuerung Speicher ein, und wählen Sie dann Speicherprobleme Ihres Computers diagnostizieren aus. Nachdem der Test ausgeführt wurde, verwenden Sie die Ereignisanzeige, um die Ergebnisse im Systemprotokoll anzuzeigen. Suchen Sie nach dem Eintrag MemoryDiagnostics-Results, um die Ergebnisse anzuzeigen.