Stop 0xC2 or BAD_POOL_CALLER
The Stop 0xC2 message indicates that a kernel-mode process or driver incorrectly attempted to perform memory operations in the following ways:
- By allocating a memory pool size of zero bytes
- By allocating a memory pool that does not exist
- By attempting to free a memory pool that is already free
- By allocating or freeing a memory pool at an IRQL that was too high
This Stop message is typically the result of a faulty driver or software.
Interpreting the Message
Table below describes the information provided by Stop 0xC2 messages. The value of the first parameter indicates the type of violation (see the Description column) and determines the meaning of the next three parameters.
Table below Parameter Listings for Stop Message 0xC2
Parameter 1 | Parameter 2 | Parameter 3 | Parameter 4 | Description |
0x00 | This value is always 0 | The pool type being allocated | The pool tag being used | The caller is requesting a zero-byte pool allocation |
0x01, 0x02, or 0x04 | Pointer to pool header | First part of pool header contents | This value is always zero | Pool header has been corrupted |
0x06 | Reserved | Pointer to pool header | Pool header contents | Attempt to free a memory pool that was already freed |
0x07 | Reserved | Pointer to pool header | This value is always zero | Attempt to free a memory pool that was already freed |
0x08 | Current IRQL | Pool type | Size of allocation | Attempt to allocate pool at invalid IRQL |
0x09 | Current IRQL | Pool type | Address of pool | Attempt to free pool at invalid IRQL |
0x40 | Starting address | Start of system address space | This value is always zero | Attempt to free usermode address to kernel pool |
0x41 | Starting address | Physical page frame | Highest physical page frame | Attempt to free a nonallocated nonpaged pool address |
0x42 or 0x43 | Address being freed | This value is always zero | This value is always zero | Attempt to free a virtual address that was never in any pool |
0x50 | Starting address | Start offset in pages from beginning of paged pool | Size in bytes of paged pool | Attempt to free a nonallocated paged pool address |
0x99 | Address being freed | This value is always zero | This value is always zero | Attempt to free pool with invalid address or corruption in pool header |
0x9A | Pool type | Size of allocation in bytes | Allocation's pool tag | Attempt to allocate must succeed |
Resolving the Problem
The following suggestions are specific to Stop 0xC2 errors. For additional troubleshooting suggestions that apply to all Stop errors, see the section titled "Stop Message Checklist" later in this tutorial.
- A Stop 0xC2 message might occur after you install a faulty device driver, system service, or firmware. If a Stop message lists a driver by name, disable, remove, or roll back that driver to correct the problem. If disabling or removing drivers resolves the issues, contact the manufacturer about a possible update. Using updated software is especially important for multimedia applications, antivirus scanners, DVD playback, and CD mastering tools.
- A Stop 0xC2 message might also be due to failing or defective hardware. If a Stop message points to a category of devices (such as disk controllers, for example), try removing or replacing the hardware to determine whether it is causing the problem.
- If you encounter a Stop 0xC2 message while upgrading to Windows, the problem might be due to an incompatible driver, system service, virus scanner, or backup. To avoid problems while upgrading, simplify your hardware configuration and remove all third-party device drivers and system services (including virus scanners) prior to running setup. After you have successfully installed Windows, contact the hardware manufacturer to obtain compatible updates.
More Info For more information about Stop 0xC2 messages, see the Knowledge Base at http://support.microsoft.com/. Search the Knowledge Base using the keywords 0x000000C2 and 0xC2.
In this tutorial:
- Troubleshooting Stop Messages
- Stop Message Overview
- Identifying the Stop Error
- Finding Troubleshooting Information
- Stop Messages
- Bugcheck Information
- Technical Information
- Debug Port and Dump Status Information
- Types of Stop Errors
- Memory Dump Files
- Configuring Small Memory Dump Files
- Configuring Kernel Memory Dump Files
- Configuring Complete Memory Dump Files
- How to Manually Initiate a Stop Error and Create a Dump File
- Using Memory Dump Files to Analyze Stop Errors
- Using Windows 7 Error Reporting
- Using Symbol Files and Debuggers
- Being Prepared for Stop Errors
- Record and Save Stop Message Information
- Check Software Disk Space Requirements
- Install a Kernel Debugger and Symbol Files
- Stop 0xA or IRQL_NOT_LESS_OR_EQUAL
- Stop 0x1E or KMODE_EXCEPTION_NOT_HANDLED
- Understanding Kernel Stack Overflows
- Stop 0x24 or NTFS_FILE_SYSTEM
- Stop 0x2E or DATA_BUS_ERROR
- Stop 0x3B or SYSTEM_SERVICE_EXCEPTION
- Stop 0x3F or NO_MORE_SYSTEM_PTES
- Stop 0x50 or PA GE_FAULT_IN_NONPA GED_AREA
- Stop 0x77 or KERNEL_STACK_INPA GE_ERROR
- Stop 0x7A or KERNEL_DATA_INPA GE_ERROR
- Stop 0x7B or INACCESSIBLE_BOOT_DEVICE
- Stop 0x7F or UNEXPECTED_KERNEL_MODE_TRAP
- Stop 0x9F or DRIVER_POWER_STATE_FAILURE
- Stop 0xBE or ATTEMPTED_WRITE_TO_READONLY_MEMORY
- Stop 0xC2 or BAD_POOL_CALLER
- Stop 0xCE or DRIVER_UNLOADED_WITHOUT_CANCELLING_ PENDING_OPERATIONS
- Stop 0xD1 or IRQL_NOT_LESS_OR_EQUAL
- Stop 0xD8 or DRIVER_USED_EXCESSIVE_PTES
- Stop 0xEA or THREAD_STUCK_IN_DEVICE_DRIVER
- Stop 0xED or UNMOUNTABLE_BOOT_VOLUME
- Stop 0xFE or BUGCODE_USB_DRIVER
- Stop 0x00000124
- Stop 0xC000021A or STATUS_SYSTEM_PROCESS_TERMINATED
- Stop 0xC0000221 or STATUS_IMAGE_CHECKSUM_MISMATCH
- Hardware Malfunction Messages
- Stop Message Checklist
- Check Your Software
- Use the Last Known Good Configuration
- Restart the System in Safe Mode
- Check Event Viewer Logs
- Install Compatible Antivirus Tools
- Report Your Errors
- Install Operating System and Driver Updates
- Install and Use a Kernel Debugger
- Check Your Hardware
- Check for Nondefault Firmware Settings
- Check for Non-Default Hardware Clock Speeds
- Check by Running Hardware Diagnostic Tools
- Check for SCSI Disk and Controller Settings
- Check Memory Compatibility
- Check by Temporarily Removing Devices
- Check by Replacing a Device