Using Driver Verifier Safely

Driver Verifier is built into every copy of Windows and it is the most effective tool available for identifying a misbehaving driver. It is also the tool most likely to leave you in a boot loop if you enable it carelessly. Both things are true, and the second is largely avoidable - there is a flag that makes Verifier disable itself if the machine fails to start, and almost nobody uses it.

Updated 2026-07-28

What it actually does

Most driver bugs cause damage in one place and a crash somewhere else entirely. A driver writes past the end of its buffer, corrupting the block next to it; ten seconds later a completely different component touches that block and the machine stops. The dump names the innocent party.

Driver Verifier closes that gap. It changes how memory is allocated and how driver calls are checked so that violations fault at the moment they occur. A buffer overrun crashes the machine immediately, in the offending driver, with that driver's name in the dump.

So it does not fix anything. What it does is convert an unidentifiable crash into an identifiable one - which, when three dumps have named three different Microsoft components, is exactly what you need.

The trade

Verifier makes the machine crash more, and slower. That is the tool working as designed. You are deliberately trading stability for information, for a limited period.

Before you enable it

Three things, and the third is the one people skip.

1. Create a restore point. Search for Create a restore point, select the system drive, and create one. Thirty seconds.

2. Know your route to Safe Mode. Interrupt the boot three times with the power button and Windows enters the recovery environment on the fourth attempt. From there: Troubleshoot, Advanced options, Startup Settings, Restart, then choose Safe Mode. Practise this once before you need it.

3. Use the boot-fail reset flag. This is the important one. Run this in an administrator prompt before enabling any checks:

verifier /bootmode resetonbootfail

It tells Verifier to disable itself automatically if the machine fails to boot. That single command removes most of the risk people worry about with this tool, and it is barely mentioned anywhere.

Back up anything important first. Not because Verifier destroys data, but because you are about to deliberately crash a machine repeatedly and that is a reasonable moment to have a backup.

Which settings to enable

Run verifier as administrator to open Driver Verifier Manager. Choose Create custom settings (for code developers), then Select individual settings from a full list.

Enable these:

SettingWhat it catches
Special PoolBuffer overruns and use-after-free. The single most valuable option and the reason to run Verifier at all.
Force IRQL checkingDrivers touching pageable memory at raised interrupt level - the 0xA violation.
Pool TrackingDrivers that leak allocations or free them incorrectly.
I/O VerificationMalformed I/O request handling.
Deadlock DetectionLock ordering problems. Worth adding for hangs and 0x101.
Security ChecksVarious unsafe operations.
Miscellaneous ChecksFreeing memory still in use, and similar.

Leave these off:

Selecting which drivers to verify

On the next screen choose Select driver names from a list, then sort by Provider and tick everything not supplied by Microsoft.

Do not choose Automatically select all drivers. Verifying Microsoft's own drivers adds substantial overhead, makes the machine much slower, and tells you nothing - those are not the drivers causing your problem.

Microsoft's own guidance is to verify the smallest number of drivers possible, because the checking adds overhead as it runs. If you already suspect a handful of drivers, verify only those - it is faster and the machine stays more usable.

Click Finish and reboot when prompted. Confirm what is active at any time with:

verifier /querysettings

Running it

Use the machine normally, and do whatever tends to provoke the crashes. If they only happen while gaming, game. If they happen at idle, leave it running overnight.

Expect the machine to feel slower. Expect it to crash - that is the point.

How long to leave it on: at least 24 to 48 hours of normal use, or until it bugchecks. If your crashes normally happen once a week, you may need to leave it a week. Verifier usually accelerates them considerably, though, because it turns silent violations into immediate ones.

If it runs for several days across every non-Microsoft driver and never fires, that result is itself meaningful. It is reasonable evidence that no driver is misbehaving - which points at memory, storage or the machine's stability settings instead.

Reading the result

When it bugchecks, the stop code is often different from the one you started with - Verifier-triggered crashes frequently arrive as DRIVER_VERIFIER_DETECTED_VIOLATION (0xC4) or as a pool or IRQL bugcheck. That is expected and does not mean a new problem.

Open the newest minidump in WinDbg and run:

!analyze -v

Read MODULE_NAME and IMAGE_NAME. Because Verifier faults at the moment of the violation rather than later, this name is far more trustworthy than one from an ordinary crash - the usual caveat about the named module being an innocent bystander largely does not apply here.

The dump reading guide covers the rest.

Turning it off

Do not leave Verifier enabled. It costs performance permanently and will keep crashing the machine on violations that may be harmless in practice.

verifier /reset

Then reboot. Confirm with verifier /querysettings, which should report that no settings are active.

If you are in a boot loop

This is the situation the preparation was for. Interrupt the boot three times with the power button to reach recovery, then Troubleshoot, Advanced options, Startup Settings, Restart, and choose Safe Mode. Open an administrator command prompt, run verifier /reset, and reboot normally.

If Safe Mode will not start either, use Troubleshoot, Advanced options, Command Prompt from the recovery environment and run the same command there. Failing that, System Restore to the point you created before starting.

And if you ran verifier /bootmode resetonbootfail beforehand, you will probably never see this section apply - Verifier disables itself and the machine boots normally.

When not to bother

Verifier is a good tool aimed at a specific class of problem. It is the wrong choice when:

It is the right choice when crashes are frequent enough to reproduce, the dumps name Microsoft components or a different module each time, and memory has already tested clean.

Frequently asked

Will Driver Verifier damage my system or my files?

It does not modify drivers or write to your data - it changes how memory is allocated and how driver calls are checked while it is enabled, and verifier /reset reverses all of it. The real risk is practical rather than destructive: a machine that crashes on every boot is unusable until you disable it, and an unexpected crash can lose unsaved work. Create a restore point, use the boot-fail reset flag, and back up first.

It has been running for three days and nothing has crashed. Is it working?

Check with verifier /querysettings - if it lists your settings and drivers, it is active. A long clean run is a genuine result rather than a failure: Verifier is aggressive and specifically designed to catch the mistakes that cause pool and heap bugchecks, so several days across every non-Microsoft driver without firing is reasonable evidence that no driver is at fault. At that point move on to memory testing and stock settings.

The crash it produced names a different stop code than my original problem. Did I break something else?

No - that is normal. Verifier detects violations earlier and reports them through its own bugchecks, commonly DRIVER_VERIFIER_DETECTED_VIOLATION (0xC4) or a pool-related code. The stop code changed because the detection point changed, not because the underlying bug did. What matters is the module name in the dump.

Should I verify Microsoft drivers too?

Generally not. It adds significant overhead, slows the machine considerably, and Microsoft's own driver set is heavily tested - it is very unlikely to be your problem. Microsoft's guidance is to verify as few drivers as possible. The one exception is if you have specific evidence pointing at a Microsoft component, which is rare enough that you would know why.

Can I use Verifier to test a driver before I install it properly?

That is closer to its designed purpose - it exists for driver developers testing their own code. For that use, verify only the driver in question rather than everything, and consider enabling DDI compliance checking, which is noise for troubleshooting but genuinely useful when you own the source.