Driver Verifier performs the following actions whenever it is verifying one or more drivers. These actions are not affected by enabling or disabling any of Driver Verifier's options.
Driver Verifier monitors the selected driver for the following forbidden actions:
If Driver Verifier is not active, these violations might not cause an immediate system crash in all cases. Driver Verifier monitors the driver's behavior and issues bug check 0xC4 if any of these violations occur. See Bug Check 0xC4 (DRIVER_VERIFIER_DETECTED_VIOLATION) for a list of the bug check parameters.
Driver Verifier monitors stack usage by the driver being verified. If the driver switches its stack, and the new stack is neither a thread stack nor a DPC stack, then a bug check is issued. (This will be bug check 0xC4 with the first parameter equal to 0x90.) The stack displayed by the KB debugger command will usually reveal the driver that performed this operation.
Driver Verifier examines all memory pool freed by the driver being verified. If any timers remain in this pool, bug check 0xC7 is issued. (Forgotten timers can eventually lead to system crashes that are notoriously difficult to account for.)
After a driver that is being verified unloads, Driver Verifier performs several checks to make sure that the driver has cleaned up.
In particular, Driver Verifier looks for:
Problems such as these can potentially cause system bug checks to be issued a while after the driver unloads, and the cause of these bug checks can be hard to determine. When Driver Verifier is active, such violations will result in bug check 0xC7 being issued immediately after the driver is unloaded. See Bug Check 0xC7 (TIMER_OR_DPC_INVALID) for a list of the bug check parameters.
These automatic checks are not performed when verifying a graphics driver.