Creating a Driver Verification Log

The Windows Hardware Certification Program requires a Driver Verification Log (DVL) for driver submissions. The DVL can contain a summary of the results from Code Analysis (CA), Static Driver Verifier (SDV), and CodeQL. The DVL does not contain any source code information. You must run CodeQL, the Code Analysis tool and Static Driver Verifier as required, prior to creating a DVL for your driver. For additional details, see Static Tools Logo Test and CodeQL and the Static Tools Logo Test.

To create a driver verification log

Prepare the driver

  1. Before running the code analysis tools, be sure that you can build and link your driver using the latest Windows Driver Kit (WDK).
  2. For the Driver Solution, make sure that you have selected a Release configuration as the Solution Configuration and x64 as the Solution Platform.

Determine and run the required tests

  1. Refer to the Static Tools Logo Test to determine what tests are required for the version of Windows you wish to certify for.

Run the following tests as required.

Create the driver verification log

  1. Create the Driver Verification Log. From the Driver menu, select Create Driver Verification Log....

  2. Verify that the Code Analysis Log, Static Driver Verifier Log, and CodeQL Log files are detected. Select Create.

The driver verification log has the file name extension .DVL.XML. The log is created in the project folder, for example, \myDriverProject\myDriverName.DVL.XML.

Note SDV performs a clean rebuild of the driver, which removes the Code Analysis log. As such, please be sure to run SDV before running CA.

Note  When you are ready to test your driver using the Windows Hardware Lab Kit, you need to copy the driver verification log to the %systemdrive%\DVL directory on the test computer. Be sure to delete the contents of the directory on the test computer before you copy the new driver verification log.

Remarks

For the most up-to-date information about the Code Analysis tool, Static Driver Verifier, and the Driver Verification Log, refer to the WDK Release Notes. The Release Notes are available on the Windows Driver Kit (WDK) download page.

Important

Timeouts, spaceouts, and other non-successful results in the DVL file are acceptable for certification submission. This will not cause the Static Tools test in HLK to fail.

Visual Studio Command Prompt window

You can also create the driver verification log from a Visual Studio Command Prompt window, either by the Visual Studio Native Tools Command Prompt installed with Visual Studio or via the Enterprise Windows Driver Kit (EWDK).

msbuild.exe <vcxprojectfile> /target:dvl /p:Configuration="Release" /P:Platform=x64

Creating a Driver Verification Log Outside of msbuild or Visual Studio

Microsoft ships as part of the Windows Driver Kit (WDK) and Enterprise WDK (eWDK) a component called dvl.exe which can be used to generate Driver Verification Logs (DVLs) via command-line. Starting in WDK/eWDK preview versions 21342 and above, it is possible to generate a DVL from the command line outside of the context of msbuild or Visual Studio. Follow the steps below to create the DVL via command-line:

  1. Place the results that must be consumed to create the DVL in a single directory, along with any vcxproj file. Typically for drivers intended to be certified for Windows Client, this is the CodeQL SARIF file. For Windows Server certification, this may also include the Code Analysis and Static Driver Verifier (SDV) results files. Check the WHCP requirements documents for specific details on which tools are required to be run for device driver certification.
  2. CodeQL SARIF files and Code Analysis XML files should be placed in the top level of the directory. The SDV DVL.xml file should be placed in a “sdv” subfolder.
  3. From the command line, navigate to the top-level directory which contains the CodeQL SARIF file.
  4. Locate dvl.exe from the WDK or a mounted eWDK.
  5. Call dvl.exe by passing the /manualCreate flag, a driver name, and a desired architecture. For example:
"C:\Program Files (x86)\Windows Kits\10\Tools\dvl\dvl.exe" /manualCreate <driverName> <driverArchitecture>

One of the following strings should be used for your driverArchitecture string:

  • X86
  • X64
  • Arm
  • Arm64

Do not include ".sys" as part of your driverName string

  1. Inspect the generated DVL to ensure that it was generated correctly

This usage is primarily intended for generating DVLs with CodeQL results, but can also be used for SDV and CA results.