From time to time, a customer support incident for a bugcheck will make its way over to us on the Performance team. Those of you that have worked with support engineers on the Performance team already know that we generally don’t work with bugcheck issues. Our Setup / Cluster team has that honor. However, the STOP 0xC2 error message is BAD_POOL_CALLER, and that word POOL causes administrators and even some support engineers to think “Performance issue” rather than “Bugcheck issue”. It’s funny how we can sometimes get so hung up on a word or phrase that we develop tunnel vision! Today we’re going to clear up the confusion behind this Bugcheck …
The STOP 0xC2 message does not indicate resource depletion in the same vein as our old Event ID friends 2019 & 2020. This bugcheck message means that some Kernel-mode process or driver attempted to perform an invalid memory operation – for example:
Now that we know what our bugcheck actually means, how do we troubleshoot it? The key parameter is the first one – that indicates the type of violation and determines the meaning of the other three parameters. If you download and install the Debugging Tools for Windows, the Debugger.chm file provided as part of the installation has a Bugcheck Code reference section. The table below is taken directly from the section on STOP 0xC2 errors and how to interpret the different parameters.
As you can see, there are a number of different combinations to consider when dealing with STOP 0xC2 errors, and obviously if you are comfortable with kernel debugging, then this information will mean quite a bit more to you. For administrators who aren’t as familiar with debugging, there are a number of different troubleshooting options to consider – if the Bugcheck message lists a driver by name, you may need to update (if the driver is old), roll back (if the driver was recently updated) or disable that driver and work with the driver manufacturer for a resolution. Obviously if there is a hardware component itself that is failing then removing or replacing that component would be the logical course of action. You should also consider this problem from a software compatibility perspective. Incompatible drivers, services, anti-virus scanners or backup software packages could all be potential causes for this type of issue – especially in Operating System upgrade scenarios.
There’s a lot of information to digest in this post, but the key takeaway is that the problem with a STOP 0xC2 is not (as is sometimes inferred) Pool Memory resource depletion – it is actually an invalid memory operation. That’s it for today! Until next time …