Microsoft KB Archive/314492

= How to interpret a Stop 0xC2 or Stop 0x000000C2 error message on a Windows XP-based computer =

Article ID: 314492

Article Last Modified on 9/18/2006

-

APPLIES TO


 * Microsoft Windows XP Professional for Itanium-based systems
 * Microsoft Windows XP Home Edition
 * Microsoft Windows XP Professional

-



This article was previously published under Q314492





For a Microsoft Windows 2000 version of this article, see 265879.



INTRODUCTION
This article describes how to interpret or read Stop 0xC2 error messages in Microsoft Windows XP. The Stop 0xC2 error message indicates that a kernel-mode process or driver incorrectly tried to perform a memory operation. Typically, faulty device drivers or device software cause this error message.



MORE INFORMATION
Windows XP contains many features that enhance the pool allocation process for device drivers and other software. Microsoft added several new Stop error codes to help you locate drivers that do not work correctly. By using these features, you may be able to determine the cause of a driver malfunction through a debugging operation.

The Stop error takes the following form:

A problem has been detected and Windows has been shut down to prevent damage to your computer...

Technical information:


 * STOP: 0x000000C2 (0x, 0x , 0x , 0x )

BAD_POOL_CALLER

To determine the cause of the 0xC2 Stop error, examine the Stop error parameters. Parameter 1 indicates the type of error, and the other parameters provide address or header information.

The Stop error message may contain any one of the following error codes:  The pool header has become corrupted.  Parameter 1 = 0x01, 0x02, or 0x04 : Pool header has been corrupted Parameter 2 = Pointer to the pool header Parameter 3 = First part of the pool header contents Parameter 4 = 0</ul> </li> Thepool has already been freed. <ul> Parameter 1 = 0x06 : Attempt to free a pool that was already freed</li> Parameter 2 = Reserved (__LINE__)</li> Parameter 3 = Pointer to pool header</li> Parameter 4 = Pool header contents</li></ul>

<ul> Parameter 1 = 0x07 : Attempt to free a pool that was already freed</li> Parameter 2 = Reserved (__LINE__)</li> Parameter 3 = Pointer to pool header</li> Parameter 4 = 0</li></ul> </li> Cannot allocate the pool at an incorrect IRQL. <ul> Parameter 1 = 0x08 : Attempt to allocate a pool at an incorrect IRQL</li> Parameter 2 = Current IRQL</li> Parameter 3 = Pool type</li> Parameter 4 = Size of the allocation</li></ul> </li> Cannot free the pool at an incorrect IRQL. <ul> Parameter 1 = 0x09 : Attempt to free a pool at an incorrect IRQL</li> <li>Parameter 2 = Current IRQL</li> <li>Parameter 3 = Pool type</li> <li>Parameter 4 = Address of the pool</li></ul> </li> <li>Cannot free the usermode address back to the kernel pool. <ul> <li>Parameter 1 = 0x40 : Attempt to free a usermode address to the kernel pool</li> <li>Parameter 2 = Starting address</li> <li>Parameter 3 = Start of the system address space</li> <li>Parameter 4 = 0</li></ul> </li> <li>Cannot free a non-allocated nonpaged pool address. <ul> <li>Parameter 1 = 0x41 : Attempt to free a non-allocated nonpaged pool address</li> <li>Parameter 2 = Starting address</li> <li>Parameter 3 = physical page frame</li> <li>Parameter 4 = highest physical page frame</li></ul> </li> <li>Cannot free a non-allocated paged pool address. <ul> <li>Parameter 1 = 0x50 : Attempt to free a non-allocated paged pool address</li> <li>Parameter 2 = Starting address</li> <li>Parameter 3 = Start the offset in the pages from the beginning of the paged pool</li> <li>Parameter 4 = Size in bytes of the paged pool</li></ul> </li> <li>Cannot free the pool with an incorrect address. <ul> <li>Parameter 1 = 0x99 : Attempt to free a pool that has an incorrect address (or corruption in the pool header)</li> <li>Parameter 2 = Address that is being freed</li> <li>Parameter 3 = 0</li> <li>Parameter 4 = 0</li></ul> </li></ul>

To resolve a Stop 0xC2 error message, use the Kernel Debugging tool, and create a user dump file.

For additional information about how to create a kernel user dump file, click the following article numbers to view the articles in the Microsoft Knowledge Base:

254649 Overview of memory dump file options for Windows 2000, for Windows XP, and for Windows Server 2003

315263 Reading the small memory dump files that Windows can create for debugging

315271 How to use Dumpchk.exe to check a Memory dump file

For more information about how to use Windows Debugging Tools to debug device drivers and to read dump files, visit the following Microsoft Web site:

http://www.microsoft.com/whdc/devtools/debugging/default.mspx

Additional query words: blue screen AV special pool 0x000000C2

Keywords: kbhowto kberrmsg kbinfo KB314492

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.