Share via


Fehlerüberprüfung 0xC2: BAD_POOL_CALLER

Die BAD_POOL_CALLER Fehlerüberprüfung hat den Wert 0x000000C2. Dies gibt an, dass der aktuelle Thread eine ungültige Poolanforderung stellt.

Wichtig

Dieser Artikel richtet sich an Programmierer. Wenn Sie ein Kunde sind, der während der Verwendung Ihres Computers einen Bluescreen-Fehlercode erhalten hat, finden Sie weitere Informationen unter Behandeln von Bluescreenfehlern.

BAD_POOL_CALLER Parameter

Parameter 1 gibt die Art der Verletzung an.

Parameter 1 Parameter 2 Parameter 3 Parameter 4 Fehlerursache

0x00

0

Pooltyp

Pool tag

Der aktuelle Thread hat eine 0-Byte-Poolzuordnung angefordert.

0x01,

0x02

0x04

Zeiger auf den Poolheader

Erster Teil des Poolheaderinhalts

0

Der Poolheader wurde beschädigt.

0x06

Reserviert

Zeiger auf den Poolheader

Inhalt des Poolheaders

Der aktuelle Thread hat versucht, den Pool frei zu geben, der bereits freigegeben wurde.

0x07

Reserviert

Inhalt des Poolheaders

Adresse des freigegebenen Poolsblocks

Der aktuelle Thread hat versucht, den Pool frei zu geben, der bereits freigegeben wurde.

0x08

Aktuelle IRQL

Pooltyp

Größe der Zuordnung in Bytes

Der aktuelle Thread hat versucht, den Pool an einem ungültigen IRQL zuzuordnen.

0x09

Aktuelle IRQL

Pooltyp

Adresse des Pools

Der aktuelle Thread hat versucht, den Pool bei einem ungültigen IRQL frei zu geben.

0x0A

Adresse des Pools

Tag des Zuteilungsgebers

Tag, das in der versuchten Freien verwendet wird

Der aktuelle Thread hat versucht, den Poolspeicher mithilfe des falschen Tags freizugeben.

(Der Arbeitsspeicher kann zu einer anderen Komponente gehören.)

0x0B

0x0C

oder 0x0D

Adresse des Pools

Tag der Poolzuordnung

Fehlerhafter Kontingentprozesszeiger

Der aktuelle Thread hat versucht, ein Kontingent für eine beschädigte Poolzuordnung freizugeben.

0x40

Startadresse

Start des Systemadressraums

0

Der aktuelle Thread hat versucht, den Kernelpool an einer Benutzermodusadresse frei zu geben.

0x41

Startadresse

Physischer Seitenrahmen

Höchster physischer Seitenrahmen

Der aktuelle Thread hat versucht, eine nicht zugeordnete nicht ausgestellte Pooladresse frei zu geben.

0x42

oder 0x43

Adresse, die freigegeben wird

0

0

Der aktuelle Thread hat versucht, eine virtuelle Adresse frei zu geben, die sich nie in einem Pool befand.

0x44

Startadresse

Reserviert

0

Der aktuelle Thread hat versucht, eine nicht zugeordnete nicht ausgestellte Pooladresse frei zu geben.

0x46

Startadresse

0

0

Der aktuelle Thread hat versucht, eine ungültige Pooladresse frei zu geben.

0x47

Startadresse

Physischer Seitenrahmen

Höchster physischer Seitenrahmen

Der aktuelle Thread hat versucht, eine nicht zugeordnete nicht ausgestellte Pooladresse frei zu geben.

0x48

Startadresse

Reserviert

Reserviert

Der aktuelle Thread hat versucht, eine nicht zugeordnete ausgelagerte Pooladresse frei zu geben.

0x50

Startadresse

Startoffset in Seiten vom Anfang des ausgelagerten Pools

Größe des ausgelagerten Pools in Bytes

Der aktuelle Thread hat versucht, eine nicht zugeordnete Auslagerungspooladresse frei zu geben.

0x60

Startadresse

0

0

Der aktuelle Thread hat versucht, eine ungültige zusammenhängende Speicheradresse freizugeben.

(Der Aufrufer von MmFreeContiguousMemory übergibt einen ungültigen Zeiger.)

0x99

Adresse, die freigegeben wird

0

0

Der aktuelle Thread hat versucht, einen Pool mit einer ungültigen Adresse frei zu geben.

(Dieser Code kann auch auf eine Beschädigung des Poolheaders hinweisen.)

0x9A

Pooltyp

Anzahl der angeforderten Bytes

Pool tag

Der aktuelle Thread markierte eine Zuordnungsanforderung MUST_SUCCEED.

(Dieser Pooltyp wird nicht mehr unterstützt.)

0x9B

Pooltyp

Anzahl der angeforderten Bytes

Adresse des Anrufers

Der aktuelle Thread hat versucht, einen Pool mit dem Tag 0 zuzuweisen.

(Dies wäre nicht nachverfolgbar und könnte die vorhandenen Tagtabellen beschädigen.)

0x9C

Pooltyp

Anzahl der angeforderten Bytes

Adresse des Anrufers

Der aktuelle Thread hat versucht, einen Pool mit dem Tag "BIG" zuzuordnen.

(Dies wäre nicht nachverfolgbar und könnte möglicherweise die vorhandenen Tagtabellen beschädigen.)

0x9D

Falsches Pooltag verwendet

Pooltyp

Adresse des Anrufers

Der aktuelle Thread hat versucht, einen Pool mit einem Tag zuzuordnen, das keine Buchstaben oder Ziffern enthält. Die Verwendung solcher Tags erschwert die Nachverfolgung von Poolproblemen.

0x41286

Reserviert

Reserviert

Startoffset vom Anfang des ausgelagerten Pools in Seiten

Der aktuelle Thread hat versucht, eine Auslagerungspooladresse in der Mitte einer Zuordnung frei zu geben.

Die _POOL_TYPE Codes werden in Ntddk.h aufgelistet. Insbesondere gibt 0 einen nicht ausgelagerten Pool und 1 einen ausgelagerten Pool an.

Ursache

Vom aktuellen Thread wurde eine ungültige Poolanforderung gestellt. In der Regel erfolgt dies auf einer ungültigen IRQL-Ebene oder bei doppelter Freigabe der gleichen Speicherbelegung usw.

Lösung

Aktivieren Sie die Treiberüberprüfung mit aktivierten Speicherpooloptionen, um weitere Informationen zu diesen Fehlern zu erhalten und den fehlerhaften Treiber zu finden.

Treiberüberprüfung

Driver Verifier ist ein Tool, das in Echtzeit ausgeführt wird, um das Verhalten von Treibern zu untersuchen. Wenn Fehler bei der Ausführung von Treibercode angezeigt werden, wird proaktiv eine Ausnahme erstellt, damit dieser Teil des Treibercodes genauer überprüft werden kann. Der Treiberüberprüfungs-Manager ist in Windows integriert und 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 überprüft, dass Treiber während der Ausführung mehr Aufwand verursachen. Versuchen Sie daher, die kleinste Anzahl von Treibern so wie möglich zu überprüfen. Weitere Informationen finden Sie unter Driver Verifier.

Windows-Speicherdiagnose

Führen Sie insbesondere bei Einer Beschädigung des Arbeitsspeicherpools das Windows-Speicherdiagnosetool aus, um den physischen Speicher als Ursache zu isolieren. Geben Sie im Suchfeld der Systemsteuerung Arbeitsspeicher 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.