My computer bluescreened with a STOP 0xC2, BAD_POOL_CALLER fault. I discovered the reason was some memory chips had failed. This post describes what happened and how you can figure out if this is why you are getting this error.
See the details below, but the summary is:
In almost all cases the STOP 0xC2, BAD_BOOL_CALLER blue-screen indicates failed or failing RAM (random access memory) in your computer.
You can easily test the memory in your computer with the built-in memory tester built into Windows. Instructions below.
The good news is RAM is relatively inexpensive and very easy to replace.
In my case, the computer was running Windows Server 2003. However any modern version of Microsoft Windows including Windows XP, Windows Vista, Windows 7, and Windows 8 can experience this problem.
The specifics of the fault were 0xC2 (0x00000007, 0x00001153, …).
Rebooting the computer caused a chkdsk and then the system came up…and promptly blue screened again.
According to this doc page on microsoft.com, the 0x07 parameter indicates “Attempt to free a memory pool that was already freed.” Further Google Bing searches indicated that this type of error is usually due to a faulty device driver. In fact, this KB Article shows how to debug the memory dump file to determine the faulty driver.
Booting the system into safemode resulted in a memory write fault in explorer.exe.
I haven’t touched the software on this system for weeks, so I strongly suspected some sort of memory failure. So a quick Google Bing search for “memory tester” came up with Memtest86. Within minutes I had burned a bootable CD with Memtest86 3.1a on it, booted the CD in the system, and saw mucho memory errors fly across the screen!
I powered down the system, removed all 3 DIMMs (512MB each), and plugged one in, restarted the system and Memtest started. Kabang! Error city.
So I took that DIMM out and tried the next one. No errors. Same with the 3rd.
I put the 2 DIMMs that tested OK in the system and rebooted into W2K3. The system is now running fine. This box doesn’t really need 1.5GB of memory so if I get new memory for it, it will be to replace the existing good DIMMs (“Spectek“ brand) with a different high-quality brand just to be safe.
Hopefully this will help others with STOP 0xC3 errors: it could be a memory failure.
I didn’t notice it last night but Microsoft has a memory test utility (on a bootable CD-ROM image no less) at http://oca.microsoft.com/en/windiag.asp.
This is by far the most popular hit on my website even 5+ years later. I get tons of feedback that it’s very useful. The STOP 0xC2 error (BAD_POOL_CALLER) fault can occur on Windows XP, Windows Vista, Windows Server 2003, Windows 7, Windows Server 2008, and Windows Server 2008 R2 and in almost all cases it indicates you have bad memory.
In addition I have found (on another machine running Windows Vista and Windows 7) that STOP: 0x0000007e can also be caused by bad memory.
Testing for Bad Memory on Windows
Windows Vista and Windows 7 have a built-in memory tester:
- From the Start menu, in the search box type “memory”
- “Memory Diagnostics Tool” (“Windows Memory Diagnostic” in Windows 7) will show up. Click it.
- Click on “Restart now and check for problems (recommended)”
- When the PC reboots the memory diagnostic will start.
You can also run this utility directly from the boot manager menu when you boot your computer. Press F8 before it says “Starting Windows” and then hit Esc. This tool can also be found by booting the installation DVD and following similar steps.
If these utilities find errors in your computer’s RAM then you should replace that memory. Memory is very inexpensive these days and in almost all cases, very easy to replace; you do not need to be technically skilled either!
I think amazon.com is a great place to buy memory. They carry just about all kinds and their prices are great.