Artikel-ID: 265879 - Geändert am: Montag, 24. April 2006 - Version: 5.0

Debuggen bei Fehlermeldungen des Typs "Stop 0xC2" oder "Stop 0x000000C2"

Dieser Artikel wurde zuvor veröffentlicht unter D265879
Dieser Artikel ist eine Übersetzung des folgenden englischsprachigen Artikels der Microsoft Knowledge Base:
265879  (http://support.microsoft.com/kb/265879/EN-US/ ) How to Debug "Stop 0xC2" or "Stop 0x000000C2" Error Messages
In Artikel 314492  (http://support.microsoft.com/kb/314492/DE/ ) wird dieses Thema für Microsoft Windows XP behandelt.
Bitte beachten Sie: Bei diesem Artikel handelt es sich um eine Übersetzung aus dem Englischen. Es ist möglich, dass nachträgliche Änderungen bzw. Ergänzungen im englischen Originalartikel in dieser Übersetzung nicht berücksichtigt sind. Die in diesem Artikel enthaltenen Informationen basieren auf der/den englischsprachigen Produktversion(en). Die Richtigkeit dieser Informationen in Zusammenhang mit anderssprachigen Produktversionen wurde im Rahmen dieser Übersetzung nicht getestet. Microsoft stellt diese Informationen ohne Gewähr für Richtigkeit bzw. Funktionalität zur Verfügung und übernimmt auch keine Gewährleistung bezüglich der Vollständigkeit oder Richtigkeit der Übersetzung.
Alles erweitern | Alles schließen

Zusammenfassung

Dieser Artikel beschreibt, wie Sie "STOP C2"-Fehlermeldungen debuggen können.

Weitere Informationen

Windows 2000 enthält viele integrierte Features, die den Poolzuweisungsprozess verbessern. Es wurden mehrere neue STOP-Codes hinzugefügt, um Ihnen bei der Suche nach nicht ordnungsgemäß funktionierenden Treibern zu helfen. Dank dieser zusätzlichen Features können Sie möglicherweise bereits durch einfaches Debuggen die zugrunde liegende Ursache für die Fehlfunktion eines Treibers finden.

In der folgenden Anleitung wird beschrieben, wie Sie einen STOP-Fehler vom Typ 0xC2 debuggen können.

Überprüfen Sie zunächst die Dokumentation des STOP-Fehlers. Beispiel:
BAD_POOL_CALLER                              (0xC2)

The current thread is making a bad pool request.  Typically this is at a bad IRQL level or double freeing the same allocation, etc.

1 - type of pool violation the caller is guilty of.
6 - the pool address being freed is already free.
7 - the pool address being freed is already free.
8 - parameter 2 is the IRQL allocating at, parameter 3 is the pool type
9 - parameter 2 is the IRQL freeing at, parameter 3 is the pool type

Parameter 1 = 0x1, 0x2, or 0x4 :  Pool header has been corrupted
   Parameter 2 = Pointer to pool header
   Parameter 3 = First part of pool header contents
   Parameter 4 = 0

Parameter 1 = 0x6 :    Attempt to free pool which was already freed
   Parameter 2 = Reserved (__LINE__)
   Parameter 3 = Pointer to pool header
   Parameter 4 = Pool header contents

Parameter 1 = 0x7 :    Attempt to free pool which was already freed
   Parameter 2 = Reserved (__LINE__)
   Parameter 3 = Pointer to pool header
   Parameter 4 = 0

Parameter 1 = 0x8 :    Attempt to allocate pool at invalid IRQL
   Parameter 2 = Current IRQL
   Parameter 3 = Pool type
   Parameter 4 = Size of allocation

Parameter 1 = 0x9 :    Attempt to free pool at invalid IRQL
   Parameter 2 = Current IRQL
   Parameter 3 = Pool type
   Parameter 4 = Address of pool

Parameter 1 = 0x40 :    Attempt to free usermode address to kernel pool
   Parameter 2 = Starting address
   Parameter 3 = Start of system address space
   Parameter 4 = 0

Parameter 1 = 0x41 :    Attempt to free a non-allocated nonpaged pool 
address
   Parameter 2 = Starting address
   Parameter 3 = physical page frame
   Parameter 4 = highest physical page frame

Parameter 1 = 0x50 :    Attempt to free a non-allocated paged pool address
   Parameter 2 = Starting address
   Parameter 3 = Start offset in pages from beginning of paged pool
   Parameter 4 = Size in bytes of paged pool

Parameter 1 = 0x99 :    Attempt to free pool with invalid address (or 
corruption in pool header)
   Parameter 2 = Address being freed
   Parameter 3 = 0
   Parameter 4 = 0

				
Nachdem Sie detaillierte Informationen über den STOP-Fehler vom Typ 0xC2 gesammelt haben, verwenden Sie den Debugger:
E:\bin>i386kd -z  K:\DOWNLOAD\memory.dmp Loading Dump File [K:\DOWNLOAD\memory.dmp] Full Kernel Dump File ... 0: kd> !reload                GOOD HOUSEKEEPING DONE HERE

0: kd> dd kibugcheckdata  l8    DUMPING THE ERROR

8047fba0  000000c2 00000007 00000b68 815bade0 8047fbb0  815bade8 e1007000 00000000 818988c0

0: kd> kv                     DUMPING STACK         

ChildEBP RetAddr  Args to Child bdce0348 be11dc84 e1fff000 a08d0008 000007f8 banshee!vH3ImageTransferMm32 bdce037c be116f18 be85fd78 00000001 bdce03dc banshee!vMmXferNative bdce03ac be113eec e1fff000 e25e2a38 bdce03dc banshee!vPutBits bdce03e8 a008e47f e1ff86f8 e25e2a38 e1fef908 banshee!DrvCopyBits bdce0430 a008e899 be113d40 bdce04d8 e1ff86f8 win32k!OffCopyBits bdce04e4 a008e4d1 e1ff86f8 e25e2a38 00000000 win32k!SpBitBlt
Die Dokumentation des STOP-Fehlers gibt an, dass Speicher freigegeben wird. Diese Information wird durch folgende Zeile angegeben:
Parameter 1 = 0x7: Attempt to free pool which was already freed. (Versuch, bereits freigegebenen Pool freizugeben.)
Der Stapel gibt jedoch an, dass die Grafikkarte an einem Schreibvorgang beteiligt ist, sodass Sie die Untersuchung fortsetzen müssen. Zunächst müssen Sie feststellen, ob der Computer über mehrere Prozessoren verfügt.
0: kd> ~1                     SWITCH PROC

1: kd> kv                     DUMPING STACK  

ChildEBP RetAddr  Args to Child
bde81b7c 8046894d 815bade8 00000000 be03bb2b ntkrnlmp!ExFreePoolWithTag
bde81b88 be03bb2b 815bade8 be03ca94 815bade8 ntkrnlmp!ExFreePool
00000128 00000000 00000000 00000000 00000000 BADDRIVER
				
Der vorangegangene Text gibt an, dass der Speicher durch den Treiber Treibername freigegeben wird. Dies könnte die mögliche Ursache sein.

Ermitteln Sie als nächstes den Treiber:

1: kd> !drivers               
Loaded System Driver Summary

Base       Code Size       Data Size       Driver Name       Creation Time
80400000 139f40 (1255 kb) 4f3c0 (316 kb) ntoskrnl.exe  Tue Dec 07 14:05:26 1999
80062000   ffe0 (  63 kb)  3d60 ( 15 kb)      hal.dll  Tue Nov 02 20:14:22 1999
ed410000   1760 (   5 kb)  1000 (  4 kb)  BOOTVID.dll  Wed Nov 03 20:24:33 1999
ed49c000   1b00 (   6 kb)   680 (  1 kb) gameenum.sys  Sat Sep 25 14:35:57 1999
ed080000   a000 (  40 kb)  20c0 (  8 kb) VIDEOPRT.SYS  Sat Nov 06 16:55:20 1999
bfdcf000  1d480 ( 117 kb)  7520 ( 29 kb)   mga64m.sys  Mon Nov 29 20:47:46 1999
bfdbc000  11600 (  69 kb)  1600 (  5 kb) el90xnd5.sys  Fri Oct 29 17:54:34 1999
ed090000   3a60 (  14 kb)  5980 ( 22 kb)  banshee.sys  Fri Oct 29 19:00:56 1999
ed5df000    2e0 (   0 kb)   4a0 (  1 kb)  audstub.sys  Sat Sep 25 14:35:33 1999
ed370000   33e0 (  12 kb)   a40 (  2 kb)   raspti.sys  Fri Oct 08 16:45:10 1999
ed0c0000   c5e0 (  49 kb)  20e0 (  8 kb) parallel.sys  Fri Oct 22 18:00:54 1999
ed5e0000    580 (   1 kb)   540 (  1 kb)   swenum.sys  Sat Sep 25 14:36:31 1999
be552000  72a60 ( 458 kb) 13c40 ( 79 kb)   mga64d.dll  Tue Nov 30 04:33:19 1999
be113000  36f00 ( 219 kb)  7a20 ( 30 kb)  banshee.dll  Tue Nov 30 04:31:18 1999
be031000   FFFF (  FF kb)  FFFF (  F kb) BADDRIVER.sys Mon Feb 30 23:22:43 2000

TOTAL:   7f8dc0 (8163 kb) 172140 (1480 kb) (    0 kb     0 kb)
				
Der vorangegangene Text gibt an, dass der Treiber vom Softwarepaket eines Fremdanbieters verwendet wird. Dieser Treiber ist höchstwahrscheinlich die Ursache des Fehlers. Durchsuchen Sie die Microsoft Knowledge Base, um weitere Informationen zu diesem Problem zu erhalten. Überprüfen Sie auch die Dateieigenschaften in Windows Explorer oder mittels eines Hex-Editors für die Datei selbst. Sie können auch auf der Website des Fremdanbieters nach Updates oder bekannten Problemen suchen.

Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Professional Edition
  • Microsoft Windows 2000 Datacenter Server
Keywords: 
kberrmsg kbhowto KB265879
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.
 

SPRACHE AUSWÄHLEN

 

Related Support Centers