JSI Tip 4880. A Partial List of Driver Error Codes That the Driver Verifier Tool Uses to Report Problems.

NOTE: The text in the following Microsoft Knowledge Base article is provided so that the site search can find this page. Please click the Knowledge Base link to insure that you are reading the most current information.

Microsoft Knowledge Base article Q315252 contains:

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

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).
Hide comments

Comments

  • Allowed HTML tags: <em> <strong> <blockquote> <br> <p>

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.
Publish