UMDF Verifier Options

The registry contains values that control the UMDF code verifier's behavior. The WDF Verifier control application provides a user interface to set these values, and you should use the control application instead of modifying the registry directly. The following registry values are available:


If VerifyDownLevel is set to a nonzero value, and if the driver was built with a version of the framework that is older than the current version, the framework's verifier includes tests that were added after the driver was built. If this value does not exist or is set to zero, the framework's verifier includes only the tests that existed when the driver was built.

For example, if your driver was built with version 1.7 of the framework, and if version 1.9 of the framework is installed on the computer, setting VerifyDownLevel to nonzero causes the verifier to include tests that were added to version 1.9 of the verifier when your driver runs.


If TrackObjects is set to a nonzero value, the framework enters the debugger when the driver is unloaded, if any framework-based objects have leaked (not been deleted).

During regular testing, you should enable TrackObjects and not TrackRefCounts. If the verifier reports that the driver is leaking framework objects, then use the control application to enable the TrackRefCounts verifier option.


If TrackRefCounts is set to a nonzero value, the framework maintains a count of the number of references to each framework-based object. You can use the !wudfrefhist debugger extension to view the changes of an object's reference count.

Setting TrackRefCounts to a nonzero value degrades the driver's performance, so you should leave the value at zero unless you are debugging an object deletion bug.


This value determines the number of times that UMDF attempts to restart a failing driver. If this registry value does not exist, the framework attempts to restart a failing driver five times.



Send comments about this topic to Microsoft

Build date: 4/1/2013