Driver Verifier

Driver Verifier is a tool included in Microsoft Windows that replaces the default operating system subroutines with ones that are specifically developed to catch device driver bugs. Once enabled, it monitors and stresses drivers to detect illegal function calls or actions that may be causing system corruption. It acts within the kernel mode and can target specific device drivers for continual checking or make driver verifier functionality multithreaded, so that several device drivers can be stressed at the same time. It can simulate certain conditions such as low memory, I/O verification, pool tracking, IRQL checking, deadlock detection, DMA checks, IRP logging, etc. The verifier works by forcing drivers to work with minimal resources, making potential errors that might happen only rarely in a working system manifest immediately. Typically fatal system errors are generated by the stressed drivers in the test environment, producing core dumps that can be analysed and debugged immediately; without stressing, intermittent faults would occur in the field, without proper troubleshooting facilities or personnel.

Driver Verifier (Verifier.exe) was first introduced as a command-line utility in Windows 2000; in Windows XP, it gained an easy-to-use graphical user interface, called Driver Verifier Manager, that makes it possible to enable a standard or custom set of settings to select which drivers to test and verify. Each new Windows version has since introduced several new, more stringent checks for testing and verifying drivers and detecting new classes of driver defects.

Driver Verifier is not normally used on machines used in productive work. It can cause undetected and relatively harmless errors in drivers to manifest, especially ones not digitally signed by Windows Hardware Quality Labs, causing blue screen fatal system errors. It also causes resource-starved drivers to underperform and slow general operation if the constraints imposed by Verifier are not reversed after debugging. Microsoft recommends against verifying all drivers at the same time.