This stop code (0x000000C2) means a driver made a bad call into the kernel’s memory pool: freeing memory it did not own, freeing the same block twice, or requesting an allocation with invalid parameters. Where BAD_POOL_HEADER is corruption found after the fact, BAD_POOL_CALLER catches the driver in the act. Either way, the shortlist is the same: a buggy driver first, faulty RAM second.
DISM /Online /Cleanup-Image /RestoreHealth, then sfc /scannow from an admin Command Prompt.chkdsk /f and review the drive maker’s health tool; a driver file being read from a failing disk can load corrupted.If you need the guilty driver named rather than guessed, Driver Verifier is the tool designed for it, see the DRIVER_VERIFIER_DETECTED_VIOLATION page for how to use it safely. If the crashes predate any software change and memory tests fail, replace the RAM; if memory passes and drivers are clean, System Restore and then drive health are the remaining stops.
What is the difference between BAD_POOL_CALLER and BAD_POOL_HEADER? BAD_POOL_CALLER (0xC2) means the invalid pool operation itself was caught as it happened, a bad request. BAD_POOL_HEADER (0x19) means corruption of a pool block’s header was discovered later. Both point to the same causes, a misbehaving driver or failing RAM, and the same fixes.
The crash names a different driver every time. Which one is broken? Rotating blame is the signature of bad RAM rather than a bad driver. When memory corrupts data randomly, whichever driver touches the corrupted pool gets flagged. Test the memory sticks individually before replacing any software.