Driver Verifier has three levels of I/O Verification:
The effects of each level will be described separately.
When Level 1 I/O Verification is enabled, all IRPs obtained through IoAllocateIrp are allocated from a special pool and their use is tracked.
Additionally, Driver Verifier checks for invalid I/O calls, including:
Because the special IRP pool is of limited size, I/O Verification is most effective when it is only used on one driver at a time.
I/O Verification Level 1 failures cause bug check 0xC9 to be issued. The first parameter of this bug check indicates what violation has occurred. See Bug Check 0xC9 (DRIVER_VERIFIER_IOMANAGER_VIOLATION) for a full parameter listing.
I/O Verification Level 2 errors are displayed in different ways: on the blue screen, in a crash dump file, and in a kernel debugger.
On the blue screen, these errors are noted by the message IO SYSTEM VERIFICATION ERROR and the string WDM DRIVER ERROR XXX, where XXX is an I/O error code.
In a crash dump file, these errors are noted by the message BugCheck 0xC9 (DRIVER_VERIFIER_IOMANAGER_VIOLATION), along with the I/O error code. In this case, the I/O error code appears as the first parameter of the bug check 0xC9.
In a kernel debugger (KD or WinDbg), these errors are noted by the message WDM DRIVER ERROR and a descriptive text string. When the kernel debugger is active, it is possible to ignore the Level 2 errors and resume system operation. (This is not possible with any other bug checks.)
The blue screen, the crash dump file, and the kernel debugger each display additional information as well. For a full description of all I/O Verification Level 2 error messages, see Bug Check 0xC9.
This option is only available in Windows XP and later.
The Enhanced I/O Verification option includes some new parameter verifications, as well as some new stresses and tests.
New parameter verifications include:
New stresses and tests include:
Driver errors caught by Enhanced I/O Verification are displayed in the same manner as those caught by Level 2 I/O Verification.
The I/O Verification option can be activated by using the Driver Verifier Manager graphical interface or the verifier.exe command line. This activation will take effect after the next boot.
When you activate I/O Verification in Windows 2000, you can choose between Level 1 and Level 2; if you choose the latter, both levels of tests are activated.
In Windows XP and later, choosing I/O Verification enables both Level 1 and Level 2 tests. You can activate Enhanced I/O Verification in addition to (or instead of) the standard I/O Verification.
See Selecting Driver Verifier Options for details.
The I/O Verification option is not used for graphics drivers. If selected, it has no effect.