Microsoft KB Archive/315252

= A Partial List of Driver Error Codes That the Driver Verifier Tool Uses to Report Problems =

PSS ID Number: 315252

Article Last Modified on 11/4/2003

-

The information in this article applies to:


 * Microsoft Windows XP Home Edition
 * Microsoft Windows XP Professional

-



This article was previously published under Q315252



For a Microsoft Windows 2000 version of this article, see 229903.



SUMMARY
This article describes the Driver Verifier tool, which is designed to test kernel-mode drivers and generate a bug check error code if testing reveals a problem. The article lists some of the error codes that Driver Verifier uses.



MORE INFORMATION
Driver Verifier performs extensive tests to check drivers. If a driver uses memory at an improper IRQL, or if the driver improperly calls or releases spin locks and memory allocations, or if the driver frees memory pool without first removing timers, Driver Verifier issues the appropriate bug checks from the list that follows.
 * Bug Check 0x0A IRQL_NOT_LESS_OR_EQUAL, which is defined as 0x0A, indicates that the driver accessed paged memory at DISPATCH_LEVEL or higher.
 * Bug Check 0xBE ATTEMPTED_WRITE_TO_READONLY_MEMORY, which is defined as 0xBE, indicates that the driver tried to write to a read-only memory segment.
 * Bug Check 0xC1 SPECIAL_POOL_DETECTED_MEMORY_CORRUPTION, which is defined as 0xC1, indicates that the driver wrote to an invalid section of the special memory pool. Typically, the current thread's backtrace reveals the source of the error.
 * Bug Check 0xC4 DRIVER_VERIFIER_DETECTED_VIOLATION, which is defined as 0xC4, is the general bug check code for fatal errors that Driver Verifier finds. The accompanying parameters are the parameters that are passed to KeBugCheckEx and displayed on a blue screen.
 * Bug Check 0xC5 DRIVER_CORRUPTED_EXPOOL, which is defined as 0xC5, indicates that the driver tried to access invalid memory at a process IRQL that was too high.
 * Bug Check 0xC6 DRIVER_CAUGHT_MODIFYING_FREED_POOL, which is defined as 0xC6, indicates that the driver tried to gain access to a freed memory pool.
 * Bug Check 0xC7 TIMER_OR_DPC_INVALID, which is defined as 0xC7, indicates that a kernel timer or DPC was found somewhere in memory where the kernel timer or DPC is not permitted. This condition is usually caused by a driver's not canceling the timer or the Delayed Procedure Call (DPC) before freeing the memory in which the timer or DPC resides.
 * Bug Check 0xC9 DRIVER_VERIFIER_IOMANAGER_VIOLATION, which is defined as 0xC9, is the bug check code for all I/O Driver Verifier violations.
 * Bug Check 0x50 PAGE_FAULT_IN_NONPAGED_AREA, which is defined as 0x50, is issued if invalid system memory is referenced.

For more information, refer to the Windows Device Driver Kit (DDK).

Additional query words: bluescreen

Keywords: kberrmsg kbinfo KB315252

Technology: kbWinXPHome kbWinXPHomeSearch kbWinXPPro kbWinXPProSearch kbWinXPSearch

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© 2004 Microsoft Corporation. All rights reserved.