BugChecks and what to do about them:
Bugchecks with no descriptions are either checked builds
only or very rare. If you get one of these and a kernel
debugger is available do the following
kb
!process 0 7
!vm
!errlog
Note:
Please use following format for modifications in this file, it helps
the debugger to extract the description text from this file:
<BUGCODE> <value>
<text>
PARAMETERS
<ParamId1> - <text>
VALUES: - If parameter values are explained.
<paramId1-value> : <text>
<ParamId2> - <text>
<ParamId3> - <text>
<paramid4> - <text>
<paramId1-value> : <text>
<ParamId2> - <text>
VALUES: - If parameter values are explained.
<paramId2-value> : <text>
END_VALUES
<ParamId3> - <text>
<paramid4> - <text>
DESCRIPTION - if more description text for bugcheck follows
<text>
APC_INDEX_MISMATCH (0x1)
This is a kernel internal error which can occur only on a checked build.
The most common reason to see such a bugcheck would occur when a
filesystem had a mismatched number of KeEnterCriticalRegion calls compared
to KeLeaveCriticalRegion calls. This check is made on exit from a system
call.
PARAMETERS
1 - address of system function (system call)
2 - Thread->ApcStateIndex << 8 | Previous ApcStateIndex
3 - Thread->KernelApcDicable
4 - Previous KernelApcDisable
DEVICE_QUEUE_NOT_BUSY (0x2)
INVALID_AFFINITY_SET (0x3)
INVALID_DATA_ACCESS_TRAP (0x4)
INVALID_PROCESS_ATTACH_ATTEMPT (0x5)
INVALID_PROCESS_DETACH_ATTEMPT (0x6)
INVALID_SOFTWARE_INTERRUPT (0x7)
IRQL_NOT_DISPATCH_LEVEL (0x8)
IRQL_NOT_GREATER_OR_EQUAL (0x9)
IRQL_NOT_LESS_OR_EQUAL (0xA)
PARAMETERS
1 - memory referenced
2 - IRQL
3 - value 0 = read operation, 1 = write operation
4 - address which referenced memory
DESCRIPTION
An attempt was made to access a pageable (or completely invalid) address at an
interrupt request level (IRQL) that is too high. This is usually
caused by drivers using improper addresses.
If a kernel debugger is available get the stack backtrace.
NO_EXCEPTION_HANDLING_SUPPORT (0xB)
MAXIMUM_WAIT_OBJECTS_EXCEEDED (0xC)
MUTEX_LEVEL_NUMBER_VIOLATION (0xD)
NO_USER_MODE_CONTEXT (0xE)
SPIN_LOCK_ALREADY_OWNED (0xF)
SPIN_LOCK_NOT_OWNED (0x10)
THREAD_NOT_MUTEX_OWNER (0x11)
TRAP_CAUSE_UNKNOWN (0x12)
PARAMETERS
1 - Unexpected interrupt.
2 - Unknown floating point exception.
3 - The enabled and asserted status bits (see processor definition).
EMPTY_THREAD_REAPER_LIST (0x13)
CREATE_DELETE_LOCK_NOT_LOCKED (0x14)
LAST_CHANCE_CALLED_FROM_KMODE (0x15)
CID_HANDLE_CREATION (0x16)
CID_HANDLE_DELETION (0x17)
REFERENCE_BY_POINTER (0x18)
BAD_POOL_HEADER (0x19)
The pool is already corrupt at the time of the current request.
This may or may not be due to the caller.
The internal pool links must be walked to figure out a possible cause of
the problem, and then special pool applied to the suspect tags or the driver
verifier to a suspect driver.
PARAMETERS
1 -
VALUES:
3 : the pool freelist is corrupt.
Parameter 2 - the pool entry being checked.
Parameter 3 - the read back flink freelist value (should be the same as 2).
Parameter 4 - the read back blink freelist value (should be the same as 2).
5 : the adjacent pool block headers are corrupt.
Parameter 2 - One entry whose headers are not consistent.
Parameter 3 - (reserved)
Parameter 4 - Another entry whose headers are not consistent.
6 : the pool block header previous size is corrupt (too large).
Parameter 2 - One incorrectly calculated entry.
Parameter 3 - (reserved)
Parameter 4 - The bad entry that caused the miscalculation.
7 : the pool block header size is corrupt.
Parameter 2 - 0.
Parameter 3 - (reserved)
Parameter 4 - The bad pool entry.
8 : the pool block header size is corrupt.
Parameter 2 - 0.
Parameter 3 - (reserved)
Parameter 4 - The bad pool entry (should have nonzero size but doesn't).
9 : the pool block header size is corrupt (too large).
Parameter 2 - One incorrectly calculated entry.
Parameter 3 - (reserved)
Parameter 4 - The bad entry that caused the miscalculation.
0xA : a pool block header size is corrupt.
Parameter 2 - The pool entry we were looking for within the page.
Parameter 3 - (reserved)
Parameter 4 - The VA of the page that should have contained the pool entry.
END_VALUES
MEMORY_MANAGEMENT (0x1A)
PARAMETERS
1 - The subtype of the bugcheck:
VALUES:
0x1 : The fork clone block reference count is corrupt. Only occurs
on checked builds.
0x777 : The caller is unlocking a system cache address that is not
currently locked. (This address was either never mapped or
is being unlocked twice.)
0x778 : The system is using the very last system cache view address,
instead of preserving it.
0x780-781 : The PTEs mapping the argument system cache view have been
corrupted.
0x1000 : A caller of MmGetSystemAddressForMdl* tried to map a fully-
cached physical page as non-cached. This action would cause
a conflicting hardware translation buffer entry, and so it
was refused by the operating system. Since the caller
specified "bugcheck on failure" in the requesting MDL, the
system had no choice but to bugcheck in this instance.
0x1010 : The caller is unlocking a pageable section that is not
currently locked. (This section was either never locked or
is being unlocked twice.)
0x1234 : The caller is trying lock a nonexistent pageable section.
0x1235 : The caller is trying to protect an MDL with an invalid
mapping.
0x3451 : The PTEs of an outswapped kernel thread stack are corrupt.
0x8888-8889 : Internal memory management structures are corrupt.
0x41283 : The working set index encoded in the PTE is corrupt.
0x41284 : A PTE or the working set list is corrupt.
0x41286 : The caller is trying to free an invalid pool address.
0x41785 : The working set list is corrupt.
0x61940 : A PDE has been unexpectedly invalidated.
Other : An unknown memory management error occurred.
END_VALUES
DESCRIPTION
# Any other values for parameter 1 must be individually examined.
PFN_SHARE_COUNT (0x1B)
PFN_REFERENCE_COUNT (0x1C)
NO_SPIN_LOCK_AVAILABLE (0x1D)
KMODE_EXCEPTION_NOT_HANDLED (0x1E)
PARAMETERS
1 - The exception code that was not handled
VALUES
0x80000002: (STATUS_DATATYPE_MISALIGNMENT) An unaligned data reference was encountered.
The trap frame will supply additional information.
0x80000003: This means a hard coded breakpoint or assertion was hit, but this system was booted
/NODEBUG. This is not supposed to happen as developers should never have
hardcoded breakpoints in retail code, but ...
If this happens, make sure a debugger gets connected, and the
system is booted /DEBUG. This will let us see why this breakpoint is
happening.
END_VALUES
2 - The address that the exception occurred at
3 - Parameter 0 of the exception
4 - Parameter 1 of the exception
DESCRIPTION
This is a very common bugcheck.