Bsod 1 - 50
Bsod 1 - 50
Bsod 1 - 50
This document is provided "as-is". Information and views expressed in this document, including URL and other Internet Web site references, may change without
notice. This document does not provide you with any legal rights to any intellectual property in any Microsoft product or product name. You may copy and use
this document for your internal, reference purposes. You may modify this document for your internal, reference purposes. 2013 Microsoft. All rights reserved.
Terms of Use (http://msdn.microsoft.com/cc300389.aspx) | Trademarks (http://www.microsoft.com/library/toolbar/3.0/trademarks/en-us.mspx)
Table Of Contents
0x1 - 0x34
Bug Check 0x1: APC_INDEX_MISMATCH
Bug Check 0x2: DEVICE_QUEUE_NOT_BUSY
Bug Check 0x3: INVALID_AFFINITY_SET
Bug Check 0x4: INVALID_DATA_ACCESS_TRAP
Bug Check 0x5: INVALID_PROCESS_ATTACH_ATTEMPT
Bug Check 0x6: INVALID_PROCESS_DETACH_ATTEMPT
Bug Check 0x7: INVALID_SOFTWARE_INTERRUPT
Bug Check 0x8: IRQL_NOT_DISPATCH_LEVEL
Bug Check 0x9: IRQL_NOT_GREATER_OR_EQUAL
Bug Check 0xA: IRQL_NOT_LESS_OR_EQUAL
Bug Check 0xB: NO_EXCEPTION_HANDLING_SUPPORT
Bug Check 0xC: MAXIMUM_WAIT_OBJECTS_EXCEEDED
Bug Check 0xD: MUTEX_LEVEL_NUMBER_VIOLATION
Bug Check 0xE: NO_USER_MODE_CONTEXT
Bug Check 0xF: SPIN_LOCK_ALREADY_OWNED
Bug Check 0x10: SPIN_LOCK_NOT_OWNED
Bug Check 0x11: THREAD_NOT_MUTEX_OWNER
Bug Check 0x12: TRAP_CAUSE_UNKNOWN
Bug Check 0x13: EMPTY_THREAD_REAPER_LIST
Bug Check 0x14: CREATE_DELETE_LOCK_NOT_LOCKED
Bug Check 0x15: LAST_CHANCE_CALLED_FROM_KMODE
Bug Check 0x16: CID_HANDLE_CREATION
Bug Check 0x17: CID_HANDLE_DELETION
Bug Check 0x18: REFERENCE_BY_POINTER
Bug Check 0x19: BAD_POOL_HEADER
Bug Check 0x1A: MEMORY_MANAGEMENT
Bug Check 0x1B: PFN_SHARE_COUNT
Bug Check 0x1D: NO_SPIN_LOCK_AVAILABLE
Bug Check 0x1E: KMODE_EXCEPTION_NOT_HANDLED
Bug Check 0x1F: SHARED_RESOURCE_CONV_ERROR
Bug Check 0x20: KERNEL_APC_PENDING_DURING_EXIT
Bug Check 0x21: QUOTA_UNDERFLOW
Bug Check 0x22: FILE_SYSTEM
Bug Check 0x23: FAT_FILE_SYSTEM
Bug Check 0x24: NTFS_FILE_SYSTEM
Bug Check 0x25: NPFS_FILE_SYSTEM
Bug Check 0x26: CDFS_FILE_SYSTEM
Bug Check 0x28: CORRUPT_ACCESS_TOKEN
Bug Check 0x29: SECURITY_SYSTEM
Bug Check 0x2A: INCONSISTENT_IRP
Bug Check 0x2B: PANIC_STACK_SWITCH
Bug Check 0x2C: PORT_DRIVER_INTERNAL
Bug Check 0x2D: SCSI_DISK_DRIVER_INTERNAL
Bug Check 0x2E: DATA_BUS_ERROR
Bug Check 0x2F: INSTRUCTION_BUS_ERROR
Bug Check 0x30: SET_OF_INVALID_CONTEXT
Bug Check 0x31: PHASE0_INITIALIZATION_FAILED
Bug Check 0x32: PHASE1_INITIALIZATION_FAILED
Bug Check 0x33: UNEXPECTED_INITIALIZATION_CALL
Bug Check 0x34: CACHE_MANAGER
0x1 - 0x34
If you received a blue screen error, or stop code, the computer has shut down abruptly to protect itself from data loss.
For information about how to recover from this error, see Resolving Blue Screen errors in Windows.
APC_INDEX_MISMATCH Parameters
The following parameters are displayed on the blue screen.
Parameter
Description
The value of current thread's CombinedApcDisable field. This field consists of two separate 16-bit fields: (Thread->SpecialApcDisable << 16) | Thread>KernelApcDisable.
Cause
The most common cause of this bug check is when a file system or driver has a mismatched sequence of calls to disable and re-enable APCs. The key data item is the
Thread->CombinedApcDisable field. The CombinedApcDisable field consists of two separate 16-bit fields: SpecialApcDisable and KernelApcDisable. A negative value
of either field indicates that a driver has disabled special or normal APCs (respectively) without re-enabling them. A positive value indicates that a driver has enabled
special or normal APCs too many times.
Remarks
This is a kernel internal error. This error occurs on exit from a system call. A possible cause for this bug check is when a file system or driver has a mismatched sequence
of system calls to enter or leave guarded or critical regions. For example, each call to KeEnterCriticalRegion must have a matching call to KeLeaveCriticalRegion. If you
are developing a driver, you can use Static Driver Verifier, a static analysis tool available in the Windows Driver Kit, to detect problems in your code before you ship your
driver. Run Static Driver Verifier with the CriticalRegions rule to verify that your source code uses these system calls in correct sequence.
If you received a blue screen error, or stop code, the computer has shut down abruptly to protect itself from data loss.
For information about how to recover from this error, see Resolving Blue Screen errors in Windows.
If you received a blue screen error, or stop code, the computer has shut down abruptly to protect itself from data loss.
For information about how to recover from this error, see Resolving Blue Screen errors in Windows.
If you received a blue screen error, or stop code, the computer has shut down abruptly to protect itself from data loss.
For information about how to recover from this error, see Resolving Blue Screen errors in Windows.
If you received a blue screen error, or stop code, the computer has shut down abruptly to protect itself from data loss.
For information about how to recover from this error, see Resolving Blue Screen errors in Windows.
INVALID_PROCESS_ATTACH_ATTEMPT Parameters
The following parameters are displayed on the blue screen.
Parameter
Description
The pointer to the dispatcher object for the target process, or if the thread is already attached, the pointer to the object for the original process.
The pointer to the dispatcher object of the process that the current thread is currently attached to.
Remarks
This bug check can occur if the driver calls the KeAttachProcess function and the thread is already attached to another process. It is better to use the
KeStackAttachProcess function. If the current thread was already attached to another process, the KeStackAttachProcess function saves the current APC state before it
attaches the current thread to the new process.
If you received a blue screen error, or stop code, the computer has shut down abruptly to protect itself from data loss.
For information about how to recover from this error, see Resolving Blue Screen errors in Windows.
If you received a blue screen error, or stop code, the computer has shut down abruptly to protect itself from data loss.
For information about how to recover from this error, see Resolving Blue Screen errors in Windows.
If you received a blue screen error, or stop code, the computer has shut down abruptly to protect itself from data loss.
For information about how to recover from this error, see Resolving Blue Screen errors in Windows.
If you received a blue screen error, or stop code, the computer has shut down abruptly to protect itself from data loss.
For information about how to recover from this error, see Resolving Blue Screen errors in Windows.
If you received a blue screen error, or stop code, the computer has shut down abruptly to protect itself from data loss.
For information about how to recover from this error, see Resolving Blue Screen errors in Windows.
IRQL_NOT_LESS_OR_EQUAL Parameters
The following parameters are displayed on the blue screen.
Parameter
Description
Memory referenced
0: Read
1: Write
Cause
This bug check is issued if paged memory (or invalid memory) is accessed when the IRQL is too high.
The error that generates this bug check usually occurs after the installation of a faulty device driver, system service, or BIOS.
If you encounter bug check 0xA while upgrading to a later version of Windows, this error might be caused by a device driver, a system service, a virus scanner, or a backup
tool that is incompatible with the new version.
Resolution
If a kernel debugger is available, obtain a stack trace.
To resolve an error caused by a faulty device driver, system service, or BIOS
To resolve an error caused by an incompatible device driver, system service, virus scanner, or backup tool
1. Check the System Log in Event Viewer for error messages that might identify the device or driver that caused the error.
2. Try disabling memory caching of the BIOS.
3. Run the hardware diagnostics supplied by the system manufacturer, especially the memory scanner. For details on these procedures, see the owner's manual for
your computer.
4. Make sure the latest Service Pack is installed.
5. If your system has small computer system interface (SCSI) adapters, contact the adapter manufacturer to obtain updated Windows drivers. Try disabling sync
negotiation in the SCSI BIOS, checking the cabling and the SCSI IDs of each device, and confirming proper termination.
6. For integrated device electronics (IDE) devices, define the onboard IDE port as Primary only. Also, check each IDE device for the proper master/subordinate/standalone setting. Try removing all IDE devices except for hard disks.
If the message appears during an installation of Windows, make sure that the computer and all installed peripherals are compatible with the version of Windows being
installed. For example, you can get information about compatibility with Windows 7 at the Windows 7 Compatibility Center.
Here is a debugging example:
kd> .bugcheck
[Lists bug check data.]
Bugcheck code 0000000a
Arguments 00000000 0000001c 00000000 00000000
kd> kb [Lists the
ChildEBP RetAddr
8013ed5c 801263ba
8013eecc 801389ee
8013eecc 00000000
8013ed5c 801263ba
8013ef64 00000246
stack trace.]
Args to Child
00000000 00000000
0000000a 00000000
0000000a 00000000
00000000 00000000
fe551aa1 ff690268
e12ab000
0000001c
0000001c
e12ab000
00000002
NT!_DbgBreakPoint
NT!_KeBugCheckEx+0x194
NT!_KiTrap0E+0x256
trap frames.]
Args to Child
00000000 00000000
0000000a 00000000
0000000a 00000000
00000000 00000000
fe551aa1 ff690268
e12ab000
0000001c
0000001c
e12ab000
00000002
NT!_KeBugCheckEx+0x194
NT!_KeBugCheckEx+0x194
kd> .trap 8013eee8 [Gets the registers for the trap frame at the time of the fault.]
eax=dec80201 ebx=ffdff420 ecx=8013c71c edx=000003f8 esi=00000000 edi=87038e10
eip=00000000 esp=8013ef5c ebp=8013ef64 iopl=0
nv up ei pl nz na pe nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000
efl=00010202
ErrCode = 00000000
00000000 ???????????????
[The current instruction pointer is NULL.]
kd> kb
[Gives the stack trace before the fault.]
ChildEBP RetAddr Args to Child
8013ef68 fe551aa1 ff690268 00000002 fe5620d2 NT!_DbgBreakPoint
8013ef74 fe5620d2 fe5620da ff690268 80404690
NDIS!_EthFilterIndicateReceiveComplete+0x31
8013ef64 00000246 fe551aa1 ff690268 00000002 elnkii!_ElnkiiRcvInterruptDpc+0x1d0
Remarks
Before upgrading to a new version of Windows, remove all third-party device drivers and system services, and disable any virus scanners. Contact the software
manufacturers to obtain updates of these third-party tools.
If you received a blue screen error, or stop code, the computer has shut down abruptly to protect itself from data loss.
For information about how to recover from this error, see Resolving Blue Screen errors in Windows.
If you received a blue screen error, or stop code, the computer has shut down abruptly to protect itself from data loss.
For information about how to recover from this error, see Resolving Blue Screen errors in Windows.
MAXIMUM_WAIT_OBJECTS_EXCEEDED Parameters
None
Cause
This bug check results from the improper use of KeWaitForMultipleObjects or FsRtlCancellableWaitForMultipleObjects.
The caller may pass a pointer to a buffer in this routine's WaitBlockArray parameter. The system will use this buffer to keep track of wait objects.
If a buffer is supplied, the Count parameter may not exceed MAXIMUM_WAIT_OBJECTS. If no buffer is supplied, the Count parameter may not exceed
THREAD_WAIT_OBJECTS.
If the value of Count exceeds the allowable value, this bug check is issued.
If you received a blue screen error, or stop code, the computer has shut down abruptly to protect itself from data loss.
For information about how to recover from this error, see Resolving Blue Screen errors in Windows.
If you received a blue screen error, or stop code, the computer has shut down abruptly to protect itself from data loss.
For information about how to recover from this error, see Resolving Blue Screen errors in Windows.
If you received a blue screen error, or stop code, the computer has shut down abruptly to protect itself from data loss.
For information about how to recover from this error, see Resolving Blue Screen errors in Windows.
SPIN_LOCK_ALREADY_OWNED Parameters
None
Cause
Typically, this error is caused by a recursive request for a spin lock. It can also occur if something similar to a recursive request for a spin lock has been initiated--for
example, when a spin lock has been acquired by a thread, and then that same thread calls a function, which also tries to acquire a spin lock. The second attempt to acquire
a spin lock is not blocked in this case because doing so would result in an unrecoverable deadlock. If the calls are made on more than one processor, then one processor
will be blocked until the other processor releases the lock.
This error can also occur, without explicit recursion, when all threads and all spin locks are assigned an IRQL. Spin lock IRQLs are always greater than or equal to DPC level,
but this is not true for threads. However, a thread that is holding a spin lock must maintain an IRQL greater than or equal to that of the spin lock. Decreasing the thread
IRQL below the IRQL level of the spin lock that it is holding allows another thread to be scheduled on the processor. This new thread could then attempt to acquire the
same spin lock.
Resolution
Ensure that you are not recursively acquiring the lock. And, for threads that hold a spin lock, ensure that you are not decreasing the thread IRQL to a level below the IRQL
of the spin lock that it is holding.
If you received a blue screen error, or stop code, the computer has shut down abruptly to protect itself from data loss.
For information about how to recover from this error, see Resolving Blue Screen errors in Windows.
If you received a blue screen error, or stop code, the computer has shut down abruptly to protect itself from data loss.
For information about how to recover from this error, see Resolving Blue Screen errors in Windows.
If you received a blue screen error, or stop code, the computer has shut down abruptly to protect itself from data loss.
For information about how to recover from this error, see Resolving Blue Screen errors in Windows.
TRAP_CAUSE_UNKNOWN Parameters
The following parameters are displayed on the blue screen.
Parameter
Description
The enabled and asserted status bits. See the processor definition for details.
Reserved
If you received a blue screen error, or stop code, the computer has shut down abruptly to protect itself from data loss.
For information about how to recover from this error, see Resolving Blue Screen errors in Windows.
If you received a blue screen error, or stop code, the computer has shut down abruptly to protect itself from data loss.
For information about how to recover from this error, see Resolving Blue Screen errors in Windows.
If you received a blue screen error, or stop code, the computer has shut down abruptly to protect itself from data loss.
For information about how to recover from this error, see Resolving Blue Screen errors in Windows.
If you received a blue screen error, or stop code, the computer has shut down abruptly to protect itself from data loss.
For information about how to recover from this error, see Resolving Blue Screen errors in Windows.
If you received a blue screen error, or stop code, the computer has shut down abruptly to protect itself from data loss.
For information about how to recover from this error, see Resolving Blue Screen errors in Windows.
If you received a blue screen error, or stop code, the computer has shut down abruptly to protect itself from data loss.
For information about how to recover from this error, see Resolving Blue Screen errors in Windows.
REFERENCE_BY_POINTER Parameters
The following parameters are displayed on the blue screen.
Parameter
Description
Reserved
Reserved
Cause
The reference count of an object is illegal for the current state of the object. Each time a driver uses a pointer to an object, the driver calls a kernel routine to increase the
reference count of the object by one. When the driver is done with the pointer, the driver calls another kernel routine to decrease the reference count by one.
Drivers must match calls to the routines that increase (reference) and decrease (dereference) the reference count. This bug check is caused by an inconsistency in the object's
reference count. Typically, the inconsistency is caused by a driver that decreases the reference count of an object too many times, making extra calls that dereference the
object. This bug check can occur because an object's reference count goes to zero while there are still open handles to the object. It might also occur when the object's
reference count drops below zero, whether or not there are open handles to the object.
Resolution
Make sure that the driver matches calls to the routines that increase and decrease the reference count of the object. Make sure that your driver does not make extra calls
to routines that dereference the object (see Parameter 2).
You can use a debugger to help analyze this problem. To find the handle and pointer count on the object, use the !object debugger command.
kd> !object address
Where address is the address of the object given in Parameter 2.
If you received a blue screen error, or stop code, the computer has shut down abruptly to protect itself from data loss.
For information about how to recover from this error, see Resolving Blue Screen errors in Windows.
BAD_POOL_HEADER Parameters
The following parameters are displayed on the blue screen. Parameter 1 indicates the type of violation. The meaning of the other parameters depends on the value of
Parameter 1.
Parameter
1
0x2
Parameter 2
Parameter 3
Parameter 4
Cause of Error
0x3
The read-back
flink freelist
value
0x5
One of the
pool entries
Reserved
A pair of adjacent pool entries have headers that contradict each other. At least one of
them is corrupt.
0x6
One
incorrectlycalculated
entry
Reserved
0x7
Reserved
0x8
Reserved
0x9
One
incorrectlycalculated
entry
Reserved
0xA
Reserved
0xD, 0xE,
0xF, 0x23,
0x24, 0x25
Reserved
Reserved
Reserved
The pool header of a freed block has been modified after it was freed. This is not
typically the fault of the prior owner of the freed block; instead it is usually (but not
always) due to the block preceding the freed block being overrun.
0x20
Reserved
0X21
The pool
pointer being
freed
The number of
bytes allocated
for the pool
block
The data following the pool block being freed is corrupt. Typically this means the
consumer (call stack) has overrun the block.
0X22
The address
being freed
Reserved
Reserved
An address being freed does not have a tracking entry. This is usually because the call
stack is trying to free a pointer that either has already been freed or was never
allocated to begin with.
Cause
The pool is already corrupted at the time of the current request.
This may or may not be due to the caller.
Resolution
The internal pool links must be walked to figure out a possible cause of the problem.
Then you can use special pool for the suspect pool tags, or use Driver Verifier on the suspect driver. The !analyze extension may be of help in pinpointing the suspect
driver, but this is frequently not the case with pool corrupters.
If you received a blue screen error, or stop code, the computer has shut down abruptly to protect itself from data loss.
For information about how to recover from this error, see Resolving Blue Screen errors in Windows.
MEMORY_MANAGEMENT Parameters
The following parameters are displayed on the blue screen. Parameter 1 is the only parameter of interest; this identifies the exact violation.
Parameter
1
Cause of Error
0x1
The fork clone block reference count is corrupt. (This only occurs on checked builds of Windows.)
0x31
The image relocation fix-up table or code stream has been corrupted. This is probably a hardware error.
0x403
The page table and PFNs are out of sync . This is probably a hardware error, especially if parameters 3 & 4 differ by only a single bit.
0x411
A page table entry (PTE) has been corrupted. Parameter 2 is the address of the PTE.
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
The PTEs mapping the argument system cache view have been corrupted.
0x781
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 "bug check on failure" in the requesting MDL, the system
had no choice but to issue a bug check 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.)
0x1233
A driver tried to map a physical memory page that was not locked. This is illegal because the contents or attributes of the page can change at any time.
This is a bug in the code that made the mapping call. Parameter 2 is the page frame number of the physical page that the driver attempted to map.
0x1234
0x1235
0x3451
The PTEs of a kernel thread stack that has been swapped out are corrupted.
0x5003
The working set free list is corrupt. This is probably a hardware error.
0x5100
The allocation bitmap is corrupt. The memory manager is about to overwrite a virtual address that was already in use.
0x8884
(Windows 7only). Two pages on the standby list that were supposed to have identical page priority values do not, in fact, have identical page priority
values. The differing values are captured in parameter 4.
0x8888
0x8889
0x888A
Internal memory management structures (likely the PTE or PFN) are corrupted.
0x41283
0x41284
0x41286
0x41785
0x41287
An illegal page fault occurred while holding working set synchronization. Parameter 2 contains the referenced virtual address.
0x41790
A page table page has been corrupted. On a 64 bit version of Windows, parameter 2 contains the address of the PFN for the corrupted page table
page. On a 32 bit version of Windows, parameter 2 contains a pointer to the number of used PTEs, and parameter 3 contains the number of used PTEs.
0x41792
A corrupted PTE has been detected. Parameter 2 contains the address of the PTE. Parameters 3/4 contain the low/high parts of the PTE.
0x61940
0x61946
The MDL being created is flawed. This almost always means the driver calling MmProbeAndLockPages is at fault. Typically the driver is attempting to
create a Write MDL when it is being asked to process a paging Read.
0x03030303
The boot loader is broken. (This value applies only to Intel Itanium machines.)
Other
If you received a blue screen error, or stop code, the computer has shut down abruptly to protect itself from data loss.
For information about how to recover from this error, see Resolving Blue Screen errors in Windows.
If you received a blue screen error, or stop code, the computer has shut down abruptly to protect itself from data loss.
For information about how to recover from this error, see Resolving Blue Screen errors in Windows.
If you received a blue screen error, or stop code, the computer has shut down abruptly to protect itself from data loss.
For information about how to recover from this error, see Resolving Blue Screen errors in Windows.
KMODE_EXCEPTION_NOT_HANDLED Parameters
The following parameters are displayed on the blue screen.
Parameter
Description
Cause
This is a very common bug check. To interpret it, you must identify which exception was generated.
Common exception codes include:
0x80000002: STATUS_DATATYPE_MISALIGNMENT
An unaligned data reference was encountered.
0x80000003: STATUS_BREAKPOINT
A breakpoint or ASSERT was encountered when no kernel debugger was attached to the system.
0xC0000005: STATUS_ACCESS_VIOLATION
A memory access violation occurred. (Parameter 4 of the bug check is the address that the driver attempted to access.)
For a complete list of exception codes, see the ntstatus.h file located in the inc directory of the Windows Driver Kit.
Resolution
If you are not equipped to debug this problem, you should use some basic troubleshooting techniques. If a driver is identified in the bug check message, disable the
driver or check with the manufacturer for driver updates. Try changing video adapters. Check with your hardware vendor for any BIOS updates. Disable BIOS memory
options such as caching or shadowing.
If you plan to debug this problem, you may find it difficult to obtain a stack trace. Parameter 2 (the exception address) should pinpoint the driver or function that caused
this problem.
If exception code 0x80000003 occurs, this indicates that a hard-coded breakpoint or assertion was hit, but the system was started with the /NODEBUG switch. This problem
should rarely occur. If it occurs repeatedly, make sure a kernel debugger is connected and the system is started with the /DEBUG switch.
If exception code 0x80000002 occurs, the trap frame will supply additional information.
If the specific cause of the exception is unknown, the following should be considered:
Hardware incompatibility. First, make sure that any new hardware installed is compatible with the installed version of Windows. For example, you can get information
about compatibility with Windows 7 at the Windows 7 Compatibility Center.
Faulty device driver or system service. In addition, a faulty device driver or system service might be responsible for this error. Hardware issues, such as BIOS
incompatibilities, memory conflicts, and IRQ conflicts can also generate this error.
If a driver is listed by name within the bug check message, disable or remove that driver. Disable or remove any drivers or services that were recently added. If the error
occurs during the startup sequence and the system partition is formatted with NTFS file system, you might be able to use Safe Mode to rename or delete the faulty driver.
If the driver is used as part of the system startup process in Safe Mode, you need to start the computer by using the Recovery Console to access the file.
If the problem is associated with Win32k.sys, the source of the error might be a third-party remote control program. If such software is installed, the service can be
removed by starting the system using the Recovery Console and deleting the offending system service file.
Check the System Log in Event Viewer for additional error messages that might help pinpoint the device or driver that is causing bug check 0x1E. Disabling memory
caching of the BIOS might also resolve the error. You should also run hardware diagnostics, especially the memory scanner, supplied by the system manufacturer. For
details on these procedures, see the owner's manual for your computer.
The error that generates this message can occur after the first restart during Windows Setup, or after Setup is finished. A possible cause of the error is a system BIOS
incompatibility. BIOS problems can be resolved by upgrading the system BIOS version.
To get a stack trace if the normal stack tracing procedures fail
1. Use the kb (Display Stack Backtrace) command to display parameters in the stack trace. Look for the call to NT!PspUnhandledExceptionInSystemThread. (If this
function is not listed, see the note below.)
2. The first parameter to NT!PspUnhandledExceptionInSystemThread is a pointer to a structure, which contains pointers to an except statement:
Use the dd (Display Memory) command on that address to display the necessary data.
3. The first retrieved value is an exception record and the second is a context record. Use the .exr (Display Exception Record) command and the .cxr (Display
Context Record) command with these two values as their arguments, respectively.
4. After the .cxr command executes, use the kb command to display a stack trace that is based on the context record information. This stack trace indicates the calling
stack where the unhandled exception occurred.
Note This procedure assumes that you can locate NT!PspUnhandledExceptionInSystemThread. However, in some cases (such as an access violation crash) you will not
be able to do this. In that case, look for ntoskrnl!KiDispatchException. The third parameter passed to this function is a trap frame address. Use the .trap (Display Trap
Frame) command with this address to set the Register Context to the proper value. You can then perform stack traces and issue other commands.
Here is an example of bug check 0x1E on an x86 processor:
kd> .bugcheck
get the bug check data
Bugcheck code 0000001e
Arguments c0000005 8013cd0a 00000000 0362cffff
kd> kb
FramePtr
8013ed5c
8013eecc
fe40cad0
fe40cad8
fe40cf7c
00000000
RetAddr
801263ba
8013313c
8013318e
801359ff
8013cb8e
00000000
Param1
00000000
0000001e
fe40caf8
fe40cb00
fe43a44c
00000000
kd> dd fe40caf8 L2
dump EXCEPTION_POINTERS structure
0xFE40CAF8 fe40cd88 fe40cbc4
..@...@.
kd> .exr fe40cd88
Exception Record @ FE40CD88:
ExceptionCode: c0000005
ExceptionFlags: 00000000
Chained Record: 00000000
ExceptionAddress: 8013cd0a
NumberParameters: 00000002
Parameter[0]: 00000000
Parameter[1]: 0362cfff
RetAddr
80402e09
80403c18
fe43b1e4
fe4385b4
fe439894
fe437d92
fe43a4f5
80133184
8013cb8e
kb gives stack
Args to Child
ff6c4000 ff63d000 03ff0000
ffbc0c28 ff6ce008 ff6c4000
ff6cef90 ffbc0c28 ff6ce009
ff6ce388 6cd00800 ffbc0c28
ff6cd008 ffb6c820 fe40cf4c
ff6cd008 ffb6c820 ff6e4e50
ff6cd008 ffb6c820 00000000
ff6ce388 00000000 00000000
fe43a44c ff6ce388 00000000
If you received a blue screen error, or stop code, the computer has shut down abruptly to protect itself from data loss.
For information about how to recover from this error, see Resolving Blue Screen errors in Windows.
If you received a blue screen error, or stop code, the computer has shut down abruptly to protect itself from data loss.
For information about how to recover from this error, see Resolving Blue Screen errors in Windows.
KERNEL_APC_PENDING_DURING_EXIT Parameters
The following parameters are displayed on the blue screen.
Parameter
Description
Reserved
Cause
The key data item is the APC disable count (Parameter 2) for the thread. If the count is nonzero, it will indicate the source of the problem.
The APC disable count is decremented each time a driver calls KeEnterCriticalRegion, FsRtlEnterFileSystem, or acquires a mutex.
The APC disable count is incremented each time a driver calls KeLeaveCriticalRegion, KeReleaseMutex, or FsRtlExitFileSystem.
Because these calls should always be in pairs, the APC disable count should be zero when a thread exits. A negative value indicates that a driver has disabled APC calls
without re-enabling them. A positive value indicates that the reverse is true.
If you ever see this error, be very suspicious of all drivers installed on the machine -- especially unusual or non-standard drivers.
This current IRQL (Parameter 3) should be zero. If it is not, the driver's cancellation routine may have caused this bug check by returning at an elevated IRQL. In this case,
carefully note what was running (and what was closing) at the time of the crash, and note all of the installed drivers at the time of the crash. The cause in this case is usually
a severe bug in a driver.
If you received a blue screen error, or stop code, the computer has shut down abruptly to protect itself from data loss.
For information about how to recover from this error, see Resolving Blue Screen errors in Windows.
QUOTA_UNDERFLOW Parameters
The following parameters are displayed on the blue screen.
Parameter
Description
The quota type. For the list of all possible quota type values, see the header file Ps.h in the Windows Driver Kit (WDK).
If you received a blue screen error, or stop code, the computer has shut down abruptly to protect itself from data loss.
For information about how to recover from this error, see Resolving Blue Screen errors in Windows.
If you received a blue screen error, or stop code, the computer has shut down abruptly to protect itself from data loss.
For information about how to recover from this error, see Resolving Blue Screen errors in Windows.
FAT_FILE_SYSTEM Parameters
The following parameters are displayed on the blue screen.
Parameter
Description
Specifies source file and line number information. The high 16 bits (the first four hexadecimal digits after the "0x") identify the source file by its identifier
number. The low 16 bits identify the source line in the file where the bug check occurred.
If FatExceptionFilter is on the stack, this parameter specifies the address of the exception record.
If FatExceptionFilter is on the stack, this parameter specifies the address of the context record.
Reserved
Cause
One possible cause of this bug check is disk corruption. Corruption in the file system or bad blocks (sectors) on the disk can induce this error. Corrupted SCSI and IDE
drivers can also adversely affect the system's ability to read and write to the disk, thus causing the error.
Another possible cause is depletion of nonpaged pool memory. If the nonpaged pool memory is completely depleted, this error can stop the system. However, during the
indexing process, if the amount of available nonpaged pool memory is very low, another kernel-mode driver requiring nonpaged pool memory can also trigger this error.
Resolution
To debug this problem: Use the .cxr (Display Context Record) command with Parameter 3, and then use kb (Display Stack Backtrace).
To resolve a disk corruption problem: Check Event Viewer for error messages from SCSI and FASTFAT (System Log) or Autochk (Application Log) that might help pinpoint
the device or driver that is causing the error. Try disabling any virus scanners, backup programs, or disk defragmenter tools that continually monitor the system. You
should also run hardware diagnostics supplied by the system manufacturer. For details on these procedures, see the owner's manual for your computer. Run Chkdsk /f /r
to detect and resolve any file system structural corruption. You must restart the system before the disk scan begins on a system partition.
To resolve a nonpaged pool memory depletion problem: Add new physical memory to the computer. This will increase the quantity of nonpaged pool memory available
to the kernel.
If you received a blue screen error, or stop code, the computer has shut down abruptly to protect itself from data loss.
For information about how to recover from this error, see Resolving Blue Screen errors in Windows.
NTFS_FILE_SYSTEM Parameters
The following parameters are displayed on the blue screen.
Parameter
Description
Specifies source file and line number information. The high 16 bits (the first four hexadecimal digits after the "0x") identify the source file by its identifier
number. The low 16 bits identify the source line in the file where the bug check occurred.
If NtfsExceptionFilter is on the stack, this parameter specifies the address of the exception record.
If NtfsExceptionFilter is on the stack, this parameter specifies the address of the context record.
Reserved
Cause
One possible cause of this bug check is disk corruption. Corruption in the NTFS file system or bad blocks (sectors) on the hard disk can induce this error. Corrupted SCSI
and IDE drivers can also adversely affect the system's ability to read and write to disk, thus causing the error.
Another possible cause is depletion of nonpaged pool memory. If the nonpaged pool memory is completely depleted, this error can stop the system. However, during the
indexing process, if the amount of available nonpaged pool memory is very low, another kernel-mode driver requiring nonpaged pool memory can also trigger this error.
Resolution
To debug this problem: Use the .cxr (Display Context Record) command with Parameter 3, and then use kb (Display Stack Backtrace).
To resolve a disk corruption problem: Check Event Viewer for error messages from SCSI and FASTFAT (System Log) or Autochk (Application Log) that might help pinpoint
the device or driver that is causing the error. Try disabling any virus scanners, backup programs, or disk defragmenter tools that continually monitor the system. You
should also run hardware diagnostics supplied by the system manufacturer. For details on these procedures, see the owner's manual for your computer. Run Chkdsk /f /r
to detect and resolve any file system structural corruption. You must restart the system before the disk scan begins on a system partition.
To resolve a nonpaged pool memory depletion problem: Either add new physical memory to the computer (thus increasing the quantity of nonpaged pool memory
available to the kernel), or reduce the number of files on the Services for Macintosh (SFM) volume.
If you received a blue screen error, or stop code, the computer has shut down abruptly to protect itself from data loss.
For information about how to recover from this error, see Resolving Blue Screen errors in Windows.
NPFS_FILE_SYSTEM Parameters
The following parameters are displayed on the blue screen.
Parameter
Description
Specifies source file and line number information. The high 16 bits (the first four hexadecimal digits after the "0x") identify the source file by its identifier
number. The low 16 bits identify the source line in the file where the bug check occurred.
Reserved
Reserved
Reserved
Cause
One possible cause of this bug check is depletion of nonpaged pool memory. If the nonpaged pool memory is completely depleted, this error can stop the system.
However, during the indexing process, if the amount of available nonpaged pool memory is very low, another kernel-mode driver requiring nonpaged pool memory can
also trigger this error.
Resolution
To resolve a nonpaged pool memory depletion problem: Add new physical memory to the computer. This will increase the quantity of nonpaged pool memory available
to the kernel.
If you received a blue screen error, or stop code, the computer has shut down abruptly to protect itself from data loss.
For information about how to recover from this error, see Resolving Blue Screen errors in Windows.
CDFS_FILE_SYSTEM Parameters
The following parameters are displayed on the blue screen.
Parameter
Description
Specifies source file and line number information. The high 16 bits (the first four hexadecimal digits after the "0x") identify the source file by its identifier
number. The low 16 bits identify the source line in the file where the bug check occurred.
If CdExceptionFilter is on the stack, this parameter specifies the address of the exception record.
If CdExceptionFilter is on the stack, this parameter specifies the address of the context record.
Reserved
Cause
One possible cause of this bug check is disk corruption. Corruption in the file system or bad blocks (sectors) on the disk can induce this error. Corrupted SCSI and IDE
drivers can also adversely affect the system's ability to read and write to the disk, thus causing the error.
Another possible cause is depletion of nonpaged pool memory. If the nonpaged pool memory is completely depleted, this error can stop the system. However, during the
indexing process, if the amount of available nonpaged pool memory is very low, another kernel-mode driver requiring nonpaged pool memory can also trigger this error.
Resolution
To debug this problem: Use the .cxr (Display Context Record) command with Parameter 3, and then use kb (Display Stack Backtrace).
To resolve a disk corruption problem: Check Event Viewer for error messages from SCSI and FASTFAT (System Log) or Autochk (Application Log) that might help pinpoint
the device or driver that is causing the error. Try disabling any virus scanners, backup programs, or disk defragmenter tools that continually monitor the system. You
should also run hardware diagnostics supplied by the system manufacturer. For details on these procedures, see the owner's manual for your computer. Run Chkdsk /f /r
to detect and resolve any file system structural corruption. You must restart the system before the disk scan begins on a system partition.
To resolve a nonpaged pool memory depletion problem: Add new physical memory to the computer. This will increase the quantity of nonpaged pool memory available
to the kernel.
If you received a blue screen error, or stop code, the computer has shut down abruptly to protect itself from data loss.
For information about how to recover from this error, see Resolving Blue Screen errors in Windows.
If you received a blue screen error, or stop code, the computer has shut down abruptly to protect itself from data loss.
For information about how to recover from this error, see Resolving Blue Screen errors in Windows.
If you received a blue screen error, or stop code, the computer has shut down abruptly to protect itself from data loss.
For information about how to recover from this error, see Resolving Blue Screen errors in Windows.
INCONSISTENT_IRP Parameters
The following parameters are displayed on the blue screen.
Parameter
Description
Reserved
Reserved
Reserved
Cause
An IRP was discovered to be in an inconsistent state. Usually this means some field of the IRP was inconsistent with the remaining state of the IRP. An example would be an
IRP that was being completed, but was still marked as being queued to a driver's device queue.
Remarks
This bug check code is not currently being used in the system, but exists for debugging purposes.
If you received a blue screen error, or stop code, the computer has shut down abruptly to protect itself from data loss.
For information about how to recover from this error, see Resolving Blue Screen errors in Windows.
PANIC_STACK_SWITCH Parameters
The following parameters are displayed on the blue screen.
Parameter
Description
Reserved
Reserved
Reserved
Cause
This error normally appears when a kernel-mode driver uses too much stack space. It can also appear when serious data corruption occurs in the kernel.
If you received a blue screen error, or stop code, the computer has shut down abruptly to protect itself from data loss.
For information about how to recover from this error, see Resolving Blue Screen errors in Windows.
If you received a blue screen error, or stop code, the computer has shut down abruptly to protect itself from data loss.
For information about how to recover from this error, see Resolving Blue Screen errors in Windows.
If you received a blue screen error, or stop code, the computer has shut down abruptly to protect itself from data loss.
For information about how to recover from this error, see Resolving Blue Screen errors in Windows.
DATA_BUS_ERROR Parameters
The following parameters are displayed on the blue screen.
Parameter
Description
Cause
This error is almost always caused by a hardware problem -- a configuration issue, defective hardware, or incompatible hardware.
The most common hardware problems that can cause this error are defective RAM, Level 2 (L2) RAM cache errors, or video RAM errors. Hard disk corruption can also
cause this error.
This bug check can also be caused when a device driver attempts to access an address in the 0x8xxxxxxx range that does not exist (in other words, that does not have a
physical address mapping).
Resolution
Resolving a hardware problem: If hardware has recently been added to the system, remove it to see if the error recurs.
If existing hardware has failed, remove or replace the faulty component. You should run hardware diagnostics supplied by the system manufacturer to determine which
hardware component has failed. For details on these procedures, see the owner's manual for your computer. Check that all adapter cards in the computer are properly
seated. Use an ink eraser or an electrical contact treatment, available at electronics supply stores, to ensure that adapter card contacts are clean.
If the problem occurs on a newly installed system, check the availability of updates for the BIOS, the SCSI controller or network cards. Updates of this kind are typically
available on the Web site or the bulletin board system (BBS) of the hardware manufacturer.
If the error occurs after installing a new or updated device driver, the driver should be removed or replaced. If, under this circumstance, the error occurs during startup
and the system partition is formatted with NTFS, you might be able to use Safe Mode to rename or delete the faulty driver.
If the driver is used as part of the system startup process in Safe Mode, you need to start the computer using the Recovery Console in order to access the file.
For additional error messages that might help pinpoint the device or driver that is causing the error, check the System Log in Event Viewer. Disabling memory caching or
shadowing in the BIOS might also resolve this error. In addition, check the system for viruses, using any up-to-date commercial virus scanning software that examines the
Master Boot Record of the hard disk. All Windows file systems can be infected by viruses.
Resolving a hard disk corruption problem: Run Chkdsk /f /r on the system partition. You must restart the system before the disk scan begins. If you cannot start the
system due to the error, use the Recovery Console and run Chkdsk /r.
Warning If your system partition is formatted with the file allocation table (FAT) file system, the long filenames used by Windows can be damaged if Scandisk or another
Microsoft MS-DOS-based hard disk tool is used to verify the integrity of your hard disk from MS-DOS. Always use the version of Chkdsk that matches your Windows
version.
If you received a blue screen error, or stop code, the computer has shut down abruptly to protect itself from data loss.
For information about how to recover from this error, see Resolving Blue Screen errors in Windows.
If you received a blue screen error, or stop code, the computer has shut down abruptly to protect itself from data loss.
For information about how to recover from this error, see Resolving Blue Screen errors in Windows.
SET_OF_INVALID_CONTEXT Parameters
The following parameters are displayed on the blue screen.
Parameter
Description
Cause
This bug check occurs when some routine attempts to set the stack pointer in the trap frame to a lower value than the current stack pointer value.
If this error were not caught, it would cause the kernel to run with a stack pointer pointing to stack which is no longer valid.
If you received a blue screen error, or stop code, the computer has shut down abruptly to protect itself from data loss.
For information about how to recover from this error, see Resolving Blue Screen errors in Windows.
PHASE0_INITIALIZATION_FAILED Parameters
None
Cause
System initialization failed at a very early stage.
Resolution
A debugger is required to analyze this.
If you received a blue screen error, or stop code, the computer has shut down abruptly to protect itself from data loss.
For information about how to recover from this error, see Resolving Blue Screen errors in Windows.
PHASE1_INITIALIZATION_FAILED Parameters
The following parameters are displayed on the blue screen.
Parameter
Description
The NT status code that describes why the system initialization failed
Reserved
Reserved
Reserved
If you received a blue screen error, or stop code, the computer has shut down abruptly to protect itself from data loss.
For information about how to recover from this error, see Resolving Blue Screen errors in Windows.
If you received a blue screen error, or stop code, the computer has shut down abruptly to protect itself from data loss.
For information about how to recover from this error, see Resolving Blue Screen errors in Windows.
CACHE_MANAGER Parameters
The following parameters are displayed on the blue screen.
Parameter
Description
Specifies source file and line number information. The high 16 bits (the first four hexadecimal digits after the "0x") identify the source file by its identifier
number. The low 16 bits identify the source line in the file where the bug check occurred.
Reserved
Reserved
Reserved
Cause
One possible cause of this bug check is depletion of nonpaged pool memory. If the nonpaged pool memory is completely depleted, this error can stop the system.
However, during the indexing process, if the amount of available nonpaged pool memory is very low, another kernel-mode driver requiring nonpaged pool memory can
also trigger this error.
Resolution
To resolve a nonpaged pool memory depletion problem: Add new physical memory to the computer. This will increase the quantity of nonpaged pool memory available
to the kernel.