Bug Check Codes


Windows Driver Kit: Driver Development Tools
Bug Check 0xC1: SPECIAL_POOL_DETECTED_MEMORY_CORRUPTION

The SPECIAL_POOL_DETECTED_MEMORY_CORRUPTION bug check has a value of 0x000000C1. This indicates that the driver wrote to an invalid section of the special pool.

Parameters

The following parameters are displayed on the blue screen. Parameter 4 indicates the type of violation.

Parameter 1Parameter 2Parameter 3Parameter 4Cause of Error
Address that the driver tried to freeReserved 0 0x20A driver attempted to free pool which was not allocated.
Address that the driver tried to freeBytes requestedBytes calculated (actually given to the caller)0x21,
0x22
A driver attempted to free a bad address.
Address that the driver tried to freeAddress where bits are corruptedReserved 0x23A driver freed an address, but nearby bytes within the same page have been corrupted.
Address that the driver tried to freeAddress where bits are corruptedReserved 0x24A driver freed an address, but bytes occurring after the end of the allocation have been overwritten.
Current IRQLPool typeNumber of bytes0x30A driver attempted to allocate pool at an incorrect IRQL.
Current IRQLPool typeAddress that the driver tried to free0x31A driver attempted to free pool at an incorrect IRQL.
Address that the driver tried to freeAddress where one bit is corruptedReserved 0x32A driver freed an address, but nearby bytes within the same page have a single bit error.

The _POOL_TYPE codes are enumerated in ntddk.h. In particular, zero indicates nonpaged pool and one indicates paged pool.

Cause

A driver has written to an invalid section of the special pool.

Resolving the Problem

Obtain a backtrace of the current thread. This backtrace will usually reveal the source of the error.

For information about the special pool, see Special Pool.


Send feedback on this topic
Built on October 01, 2009
Page view tracker