Appendix B. Bugcheck Codes

< BACK  NEXT >
[oR]

Appendix B. Bugcheck Codes

System Stop messages, also known as bugchecks, display as codes, which designate the reason for the system panic. Depending upon the bugcheck code, up to four parameters provide additional information about the cause and location of the problem. The purpose of this appendix is to provide a list of the more common bugcheck codes that a driver author may encounter. The meanings and common causes of the codes, along with the meanings of the additional parameters, are listed.

Table
Bugcheck 0x0A IRQL_NOT_LESS_OR_EQUAL
The driver accessed paged memory at DISPATCH_LEVEL or above.
Parameter Description
1 align="center" Memory referenced
2 align="center" IRQL at time of reference
3 align="center" 0: Read operation
1: Write operation
4 align="center" Address that referenced memory

Table
Bugcheck 0x1E KMODE_EXCEPTION_NOT_HANDLED
A kernel-mode program generated an unhandled exception.
Parameter Description
1 align="center" Exception Code
2 align="center" Address where exception occurred
3 align="center" Parameter 0 of exception
4 align="center" Parameter 1 of exception

Table
Bugcheck 0x24 NTFS_FILE_SYSTEM
A problem occurred in ntfs. sys.
Parameter Description
1 Source file and line number
2 Address of the exception record (optional)
3 Address of the context record (optional)
4 Address where the original exception occurred (optional)

Table
Bugcheck 0x2E DATA_BUS_ERROR
Typically indicates that a parity error in system memory has been detected; usually a hardware problem.
Parameter Description
1 Virtual address that caused the fault
2 Physical address that caused the fault
3 Processor status register (PSR)
4 Faulting instruction register (FIR)

Table
Bugcheck 0x35 NO_MORE_IRP_STACK_LOCATIONS
The IoCallDriver packet has no remaining stack locations.
Parameter Description
1 Address of the IRP
2 4 Reserved

Table
Bugcheck 0x3F NO_MORE_SYSTEM_PTES
A fragmented system page table exists.
Parameter Description
1 4 Reserved

Table
Bugcheck 0x50 PAGE_FAULT_IN_NONPAGED_AREA
Invalid system memory has been referenced.
Parameter Description
1 Memory address referenced
2 0: Read
1: Write
3 Address that referenced memory (if known)
4 Reserved

Table
Bugcheck 0x58 FTDISK_INTERNAL_ERROR
System booted from the wrong copy of a mirrored partition.
Parameter Description
1 4 Reserved

Table
Bugcheck 0x76 PROCESS_HAS_LOCKED_PAGES
A driver failed to release locked pages after an I/O operation.
Parameter Description
1 0
2 Process address
3 Number of locked pages
4 0, or pointer to driver stacks

Table
Bugcheck 0x77 KERNEL_STACK_INPAGE_ERROR
The requested page of kernel data from the paging file could not be read into memory.
Parameter Description
1 Status code or 0
2 Value found in stack where signature should be or I/O status code
3 0 or page file number
4 Address of signature on kernel stack or offset into page file

Table
Bugcheck 0x79 MISMATCHED_HAL
The Hardware Abstraction Layer (HAL) revision level or configuration does not match that of the kernel or the machine.
Parameter Description
1 1: PRCB release-level mismatch
2: Build type mismatch
3: Micro Channel mismatch
2 1: Release level of ntoskrnl.exe
2: Build type of ntoskrnl.exe
3: Machine type detected during boot
3 1: Release level of hal.dll
2: Build type of hal.dll
3: Machine type supported by HAL
4 Reserved

Table
Bugcheck 0x7A KERNEL_DATA_INPAGE_ERROR
The requested page of kernel data from the paging file could not be read into memory.
Parameter Description
1 Lock type that was held or page table entry address
2 I/O status code
3 If lock type is 1 or 2: current process
If lock type is 3: virtual address
4 Virtual address that could not be paged into memory

Table
Bugcheck 0x7B INACCESSIBLE_BOOT_DEVICE
Windows 2000 has lost access to the system partition during startup. This error always occurs while the system is starting and cannot be debugged because it generally occurs before the operating system has loaded the debugger.
Parameter Description
1 Address of the device object that could not be mounted
2 0
3 0
4 0

Table
Bugcheck 0x7F UNEXPECTED_KERNEL_MODE_TRAP
A trap, which the Kernel did not catch, was generated by the Intel CPU.
Parameter Description
1 4 Reserved

Table
Bugcheck 0x9F DRIVER_POWER_STATE_FAILURE
The driver is in an inconsistent or invalid power state.
Parameter Description
1 1: The device object being freed still has an outstanding power request that it has not completed
2: The device object completed the IRP for the system power state request, but failed to call PoStartNextPowerIrp
3: The device driver did not properly set the IRP as pending or complete the IRP
100: The device objects in the devnode were inconsistent in their use of DO_POWER_PAGABLE
101: A parent device object has detected that a child device has not set the DO_POWER_PAGABLE bit
2 1: Pointer to the device object
2: Pointer to the target device object
3: Pointer to the target device object
100: Pointer to the nonpaged device object
101: Child device object (FDO)
3 1: Reserved
2: Pointer to the device object
3: Pointer to the device object
100: Pointer to the target device object
101: Child device object (PDO)
4 1: Reserved
2: Reserved
3: The IRP
100: Pointer to the device object to notify
101: Parent device object

Table
Bugcheck 0xBE ATTEMPTED_WRITE_TO_READONLY_MEMORY
A driver attempted to write to a read-only memory segment.
Parameter Description
1 Virtual address of attempted write
2 PTE contents
3 4 Reserved

Table
Bugcheck 0xC1 SPECIAL_POOL_DETECTED_MEMORY_CORRUPTION
The driver wrote to an invalid section of the special memory pool.
Parameter 1 Parameter 2 Parameter 3 Parameter 4 Description
Address that the driver tried to free Reserved 0 0x20 Attempt to free pool that was not allocated
Address that the driver tried to free Bytes requested Bytes calculated 0x21, 0x22 Attempt to free a bad address
Address that the driver tried to free Address where bits are corrupted Reserved 0x23 Freeing an address when nearby bytes on same page have been corrupted
Address that the driver tried to free Address where bits are corrupted Reserved 0x24 Freeing an address when bytes after end of allocation have been overwritten
Current IRQL Pool type Number of bytes 0x30 Attempt to allocate pool at incorrect IRQL
Current IRQL Pool type Address that the driver tried to free 0x31 Attempt to free pool at incorrect IRQL

Table
Bugcheck 0xC2 BAD_POOL_CALLER
The current thread is making a bad pool request.
Parameter 1 Parameter 2 Parameter 3 Parameter 4 Description
0x01, 0x02, or 0x04 Pointer to pool header First part of pool header contents 0 Pool header has been corrupted
0x06 Reserved Pointer to pool header Pool header contents Attempt to free pool that was already freed
0x07 Reserved Pointer to pool header 0 Attempt to free pool that was already freed
0x08 Current IRQL Pool type Size of allocation Attempt to allocate pool at an invalid IRQL
0x09 Current IRQL Pool type Address of pool Attempt to free pool at an invalid IRQL
0x40 Starting address Start of system address space 0 Attempt to free Kernel pool at user-mode address
0x41 Starting address Physical page frame Highest physical page frame Attempt to free a nonallocated nonpaged pool address
0x50 Starting address Start offset in pages from beginning of paged pool Size of paged pool, in bytes Attempt to free a nonallocated paged pool address
0x99 Address being freed 0 0 Attempt to free pool with invalid address (or corruption in pool header)

Table
Bugcheck 0xC5 DRIVER_CORRUPTED_EXPOOL
A driver has probably corrupted the system pool.
Parameter Description
1 Memory referenced
2 IRQL at time of reference
3 0: Read
1: Write
4 Address that referenced memory

Table
Bugcheck 0xC6 DRIVER_CAUGHT_MODIFYING_FREED_POOL
A driver attempted to access a freed memory pool.
Parameter Description
1 Memory referenced
2 0: Read
1: Write
3 0: Kernel mode
1: User mode
4 4

Table
Bugcheck 0xC7 TIMER_OR_DPC_INVALID
A kernel timer or delayed procedure call (DPC) object was freed while it was still queued for activation.
Parameter Description
1 0: Timer object
1: DPC object
2: DPC routine
2 Address of object
3 Beginning of memory range checked
4 End of memory range checked

Table
Bugcheck 0xCA PNP_FATAL_ERROR
The PnP Manager encountered a severe error, probably as a result of a flawed Plug and Play driver.
Parameter 1 Parameter 2 Parameter 3 Parameter 4 Description
0x01 Address of newly reported PDO Address of older PDO which has been duplicated Reserved Duplicate PDO. A specific instance of a driver has enumerated multiple PDOs with identical device and unique IDs.
0x02 Address of purported PDO Reserved Reserved Invalid PDO. An API that requires a PDO has been called with random memory, an FDO, or a PDO which hasn't been initialized.
0x03 Address of purported PDO Reserved Reserved Invalid PDO. An API that requires a PDO has been called with random memory, an FDO, or a PDO that hasn't been initialized.
0x04 Address of PDO with DOE_ DELETE_ PENDING set Address of ID buffer

1: DeviceID

2: UniqueID

3: HardwareIDs

4: Compatible IDs

Invalid ID. An enumerator has returned an ID that contains illegal characters or isn't properly terminated. (IDs must contain only characters in the ranges 0x20 to 0x2B and 0x2D to 0x7F.)
0x05 Address of PDO Reserved Reserved PDO freed while linked in devnode tree. The object manager reference count on a PDO dropped to zero while the devnode was still linked in the tree. (This usually indicates that the driver is not adding a reference when returning the PDO in a query IRP.)

Table
Bugcheck 0xCB DRIVER_LEFT_LOCKED_PAGES_IN_PROCESS
A driver failed to release locked pages after an I/O operation.
Parameter Description
1 Calling address in driver that locked the pages
2 Caller of the calling address in driver that locked the pages
3 Pointer to MDL containing the locked pages
4 Guilty driver's name (pointer to Unicode string)

Table
Bugcheck 0xCC PAGE_FAULT_IN_FREED_SPECIAL_POOL
The system has referenced memory that was earlier freed.
Parameter Description
1 Memory address referenced
2 0: Read
1: Write
3 Address that referenced memory (if known)
4 Reserved

Table
Bugcheck 0xCD PAGE_FAULT_BEYOND_END_OF_ALLOCATION
The system accessed memory beyond the end of some driver's pool allocation.
Parameter Description
1 Memory address referenced
2 0: Read
1: Write
3 Address that referenced memory (if known)
4 Reserved

Table
Bugcheck 0xCE DRIVER_UNLOADED_WITHOUT_CANCELLING_PENDING_OPERATIONS
A driver failed to cancel pending operations before unloading.
Parameter Description
1 Memory address referenced
2 0: Read
1: Write
3 Address that referenced memory (if known)
4 Reserved

Table
Bugcheck 0xCF TERMINAL_SERVER_DRIVER_MADE_INCORRECT_MEMORY_REFERENCE
A driver has been incorrectly ported to the terminal server.
Parameter Description
1 Memory address referenced
2 0: Read
1: Write
3 Address that referenced memory (if known)
4 Reserved

Table
Bugcheck 0xD0 DRIVER_CORRUPTED_MMPOOL
A driver has corrupted the system pool.
Parameter Description
1 Memory referenced
2 IRQL at time of reference
3 0: Read
1: Write
4 Address that referenced memory

Table
Bugcheck 0xD1 DRIVER_IRQL_NOT_LESS_OR_EQUAL
A driver attempted to access pageable memory at a process IRQL that was too high.
Parameter Description
1 Memory referenced
2 IRQL at time of reference
3 0: Read
1: Write
4 Address that referenced memory

Table
Bugcheck 0xD3 DRIVER_PORTION_MUST_BE_NONPAGED
A driver has incorrectly marked code or data as pageable.
Parameter Description
1 Memory referenced
2 IRQL at time of reference
3 0: Read
1: Write
4 Address that referenced memory

Table
Bugcheck 0xD4 SYSTEM_SCAN_AT_RAISED_IRQL_CAUGHT_IMPROPER_DRIVER_UNLOAD
A driver did not cancel pending operations before unloading.
Parameter Description
1 Memory referenced
2 IRQL at time of reference
3 0: Read
1: Write
4 Address that referenced memory

Table
Bugcheck 0xD5 DRIVER_PAGE_FAULT_IN_FREED_SPECIAL_POOL
A driver has referenced memory that was earlier freed.
Parameter Description
1 Memory address referenced
2 0: Read
1: Write
3 Address that referenced memory (if known)
4 Reserved

Table
Bugcheck 0xD6 DRIVER_PAGE_FAULT_BEYOND_END_OF_ALLOCATION
A driver accessed memory beyond the end of its pool allocation.
Parameter Description
1 Memory address referenced
2 0: Read
1: Write
3 Address that referenced memory (if known)
4 Reserved

Table
Bugcheck 0xD7 DRIVER_UNMAPPING_INVALID_VIEW
A driver is trying to unmap an address that was not mapped.
Parameter Description
1 Virtual address to unmap
2 0: system is not terminal server
1: system is terminal server
3 0
4 0

Table
Bugcheck 0xD8 DRIVER_USED_EXCESSIVE_PTES
There are no remaining system page table entries.
Parameter Description
1 Pointer to the guilty driver's name (Unicode string), or 0
2 Number of PTEs used by the guilty driver (if Parameter 1 is nonzero)
3 Total free system PTEs
4 Total system PTEs

Table
Bugcheck 0xDB DRIVER_CORRUPTED_SYSPTES
An attempt was made to touch memory at an invalid IRQL, probably due to corruption of system PTEs.
Parameter Description
1 Memory referenced
2 IRQL
3 0: read
1: write
4 Address in code which referenced memory

Table
Bugcheck 0xDC DRIVER_INVALID_STACK_ACCESS
A driver accessed a stack address that lies below the stack pointer of the stack's thread.
Parameter Description
1 4 Reserved

Table
Bugcheck 0xDE POOL_CORRUPTION_IN_FILE_AREA
A driver corrupted pool memory used for holding pages destined for disk.
Parameter Description
1 4 Reserved

Table
Bugcheck 0xE1 WORKER_THREAD_RETURNED_AT_BAD_IRQL
A worker thread completed and returned at IRQL DISPATCH_LEVEL or above.
Parameter Description
1 Address of the worker routine
2 IRQL (should have been 0)
3 Work item parameter
4 Work item address

Table
Bugcheck 0xE2 MANUALLY_INITIATED_CRASH
The user deliberately initiated a crash dump from either the kernel debugger or the keyboard.
Parameter Description
1 4 Reserved

Table
Bugcheck 0xE3 RESOURCE_NOT_OWNED
A thread tried to release a resource it did not own.
Parameter Description
1 Address of resource
2 Address of thread
3 Address of owner table (if it exists)
4 Reserved

Table
Bugcheck 0xE4 WORKER_INVALID
An Executive worker item was found in memory that must not contain such items.
Parameter Description
1 Code position indicator
2 Address of worker item
3 Start of pool block
4 End of pool block

< BACK  NEXT >


The Windows 2000 Device Driver Book(c) A Guide for Programmers
The Windows 2000 Device Driver Book: A Guide for Programmers (2nd Edition)
ISBN: 0130204315
EAN: 2147483647
Year: 2000
Pages: 156

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net