Windows 7 / Getting Started

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 1Parameter 2Parameter 3Parameter 4Description
0x00This value is always 0The pool type being allocatedThe pool tag being usedThe caller is requesting a zero-byte pool allocation
0x01, 0x02, or 0x04Pointer to pool headerFirst part of pool header contentsThis value is always zeroPool header has been corrupted
0x06ReservedPointer to pool headerPool header contentsAttempt to free a memory pool that was already freed
0x07ReservedPointer to pool headerThis value is always zeroAttempt to free a memory pool that was already freed
0x08Current IRQLPool typeSize of allocationAttempt to allocate pool at invalid IRQL
0x09Current IRQLPool typeAddress of poolAttempt to free pool at invalid IRQL
0x40Starting addressStart of system address spaceThis value is always zeroAttempt to free usermode address to kernel pool
0x41Starting addressPhysical page frameHighest physical page frameAttempt to free a nonallocated nonpaged pool address
0x42 or 0x43Address being freedThis value is always zeroThis value is always zeroAttempt to free a virtual address that was never in any pool
0x50Starting addressStart offset in pages from beginning of paged poolSize in bytes of paged poolAttempt to free a nonallocated paged pool address
0x99Address being freedThis value is always zeroThis value is always zeroAttempt to free pool with invalid address or corruption in pool header
0x9APool typeSize of allocation in bytesAllocation's pool tagAttempt 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.

[Previous] [Contents] [Next]

In this tutorial:

  1. Troubleshooting Stop Messages
  2. Stop Message Overview
  3. Identifying the Stop Error
  4. Finding Troubleshooting Information
  5. Stop Messages
  6. Bugcheck Information
  7. Technical Information
  8. Debug Port and Dump Status Information
  9. Types of Stop Errors
  10. Memory Dump Files
  11. Configuring Small Memory Dump Files
  12. Configuring Kernel Memory Dump Files
  13. Configuring Complete Memory Dump Files
  14. How to Manually Initiate a Stop Error and Create a Dump File
  15. Using Memory Dump Files to Analyze Stop Errors
  16. Using Windows 7 Error Reporting
  17. Using Symbol Files and Debuggers
  18. Being Prepared for Stop Errors
  19. Record and Save Stop Message Information
  20. Check Software Disk Space Requirements
  21. Install a Kernel Debugger and Symbol Files
  22. Stop 0xA or IRQL_NOT_LESS_OR_EQUAL
  23. Stop 0x1E or KMODE_EXCEPTION_NOT_HANDLED
  24. Understanding Kernel Stack Overflows
  25. Stop 0x24 or NTFS_FILE_SYSTEM
  26. Stop 0x2E or DATA_BUS_ERROR
  27. Stop 0x3B or SYSTEM_SERVICE_EXCEPTION
  28. Stop 0x3F or NO_MORE_SYSTEM_PTES
  29. Stop 0x50 or PA GE_FAULT_IN_NONPA GED_AREA
  30. Stop 0x77 or KERNEL_STACK_INPA GE_ERROR
  31. Stop 0x7A or KERNEL_DATA_INPA GE_ERROR
  32. Stop 0x7B or INACCESSIBLE_BOOT_DEVICE
  33. Stop 0x7F or UNEXPECTED_KERNEL_MODE_TRAP
  34. Stop 0x9F or DRIVER_POWER_STATE_FAILURE
  35. Stop 0xBE or ATTEMPTED_WRITE_TO_READONLY_MEMORY
  36. Stop 0xC2 or BAD_POOL_CALLER
  37. Stop 0xCE or DRIVER_UNLOADED_WITHOUT_CANCELLING_ PENDING_OPERATIONS
  38. Stop 0xD1 or IRQL_NOT_LESS_OR_EQUAL
  39. Stop 0xD8 or DRIVER_USED_EXCESSIVE_PTES
  40. Stop 0xEA or THREAD_STUCK_IN_DEVICE_DRIVER
  41. Stop 0xED or UNMOUNTABLE_BOOT_VOLUME
  42. Stop 0xFE or BUGCODE_USB_DRIVER
  43. Stop 0x00000124
  44. Stop 0xC000021A or STATUS_SYSTEM_PROCESS_TERMINATED
  45. Stop 0xC0000221 or STATUS_IMAGE_CHECKSUM_MISMATCH
  46. Hardware Malfunction Messages
  47. Stop Message Checklist
  48. Check Your Software
  49. Use the Last Known Good Configuration
  50. Restart the System in Safe Mode
  51. Check Event Viewer Logs
  52. Install Compatible Antivirus Tools
  53. Report Your Errors
  54. Install Operating System and Driver Updates
  55. Install and Use a Kernel Debugger
  56. Check Your Hardware
  57. Check for Nondefault Firmware Settings
  58. Check for Non-Default Hardware Clock Speeds
  59. Check by Running Hardware Diagnostic Tools
  60. Check for SCSI Disk and Controller Settings
  61. Check Memory Compatibility
  62. Check by Temporarily Removing Devices
  63. Check by Replacing a Device