Freigeben über


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.