BAD_POOL_CALLER (0xC2)
The current thread is making a bad pool request. Typically this is at a bad IRQL level or double freeing the same allocation, etc.
PARAMETERS
1 - type of pool violation the caller is guilty of.
VALUES:
0x0 : The caller is requesting a zero byte pool allocation.
Parameter 2 - zero.
Parameter 3 - the pool type being allocated.
Parameter 4 - the pool tag being used.
0x1 : Pool header has been corrupted
Parameter 2 - Pointer to pool header
Parameter 3 - First part of pool header contents
Parameter 4 - 0
0x2 : Pool header has been corrupted
Parameter 2 - Pointer to pool header
Parameter 3 - First part of pool header contents
Parameter 4 - 0
0x4 : Pool header has been corrupted
Parameter 2 - Pointer to pool header
Parameter 3 - First part of pool header contents
Parameter 4 - 0
0x6 : Attempt to free pool which was already freed
Parameter 2 - (reserved)
Parameter 3 - Pointer to pool header
Parameter 4 - Pool header contents
0x7 : Attempt to free pool which was already freed
Parameter 2 - (reserved)
Parameter 3 - Pointer to pool header
Parameter 4 - 0
0x8 : Attempt to allocate pool at invalid IRQL
Parameter 2 - Current IRQL
Parameter 3 - Pool type
Parameter 4 - Size of allocation
0x9 : Attempt to free pool at invalid IRQL
Parameter 2 - Current IRQL
Parameter 3 - Pool type
Parameter 4 - Address of pool
0xA : Attempt to free some other component's protected pool.
Parameter 2 - Address of pool
Parameter 3 - Allocator's tag
Parameter 4 - Tag being used in the attempted free.
0xB/0xC/0xD : Attempt to release quota on a corrupted pool allocation.
Parameter 2 - Address of pool
Parameter 3 - Pool allocation's tag
Parameter 4 - Quota process pointer (bad).
0x40 : Attempt to free usermode address to kernel pool
Parameter 2 - Starting address
Parameter 3 - Start of system address space
Parameter 4 - 0
0x41 : Attempt to free a non-allocated nonpaged pool address
Parameter 2 - Starting address
Parameter 3 - physical page frame
Parameter 4 - highest physical page frame
0x42 : Attempt to free a virtual address which was never in any pool
Parameter 2 - Address being freed.
Parameter 3 - 0
Parameter 4 - 0
0x43 : Attempt to free a virtual address which was never in any pool
Parameter 2 - Address being freed.
Parameter 3 - 0
Parameter 4 - 0
0x50 : Attempt to free a non-allocated paged pool address
Parameter 2 - Starting address
Parameter 3 - Start offset in pages from beginning of paged pool
Parameter 4 - Size in bytes of paged pool
0x99 : Attempt to free pool with invalid address (or corruption in pool header)
Parameter 2 - Address being freed
Parameter 3 - 0
Parameter 4 - 0
0x9A : Attempt to allocate must-succeed pool (this pool type has been deprecated)
Parameter 2 - Pool type
Parameter 3 - Size of allocation in bytes
Parameter 4 - Allocation's pool tag
0x9B : Attempt to allocate pool with a tag of zero. This would make the pool untrackable and worse, corrupt the existing tag tables.
Parameter 2 - Pool type
Parameter 3 - Size of allocation in bytes
Parameter 4 - Caller's address.
0x9C : Attempt to allocate pool with a tag of BIG. This would make the pool untrackable and worse, corrupt the existing tag tables.
Parameter 2 - Pool type
Parameter 3 - Size of allocation in bytes
Parameter 4 - Caller's address.
In short: some driver is not managing its memory properly. Try turning on driver verifier (verifier.exe) and see if it'll identify the offending driver.