WDK and Visual Studio build environment

The Windows Driver Kit (WDK) 8.1 and WDK 8 introduced a major change to the environment that you use to build a driver. The WDK no longer uses Build.exe. The WDK build environment for drivers uses MSBuild.exe and is fully integrated with the Visual Studio development environment. This means that source files, makefile.inc, makefile.new and other related build files present in the previous version of the WDK are no longer used. The WDK now enables you to create, edit, build, test, and deploy a driver through Visual Studio. The purpose of this document is to provide information to help users familiar with previous WDKs in getting started with the WDK 8.1 and WDK 8.

Note Projects and solutions created with the WDK 8 must be upgraded to work with the WDK 8.1 and Microsoft Visual Studio 2013. Before you open the projects or solutions, run the ProjectUpgradeTool. The ProjectUpgradeTool converts the projects and solutions so that they can be built using WDK 8.1.

In this section

Topic Description

MSBuild primer for WDK developers

This section introduces some basic MSBuild terminology to WDK developers, who are familiar with Build.exe and NMake.exe. This section shows the construction of simple MSBuild projects.

WDK and MSBuild overview

Visual Studio can manage multiple projects. This section describes the WDK build environment.

Platform Toolset

The Windows Driver Kit (WDK) takes advantage of the MSBuild platform toolset feature to provide tools and libraries that are specific to driver development. The MSBuild platform toolset feature is extensible. The specific version of the platform toolset that you want to use is controlled by an MSBuild property called PlatformToolset. Projects can switch between tools and libraries by setting the PlatformToolset property in the project file.

Windows driver-specific property files

The driver property sheets have default settings for all of the tools that MSBuild uses to build any driver project.

Windows driver targets

The WindowsDriver.Common.targets, WindowsDriver.masm.targets, and WindowsDriver.arm.targets files provide the targets that are necessary to build a driver.

WDK build output

By default, the WDK uses the intermediate directory $(IntDir) macro to specify the default build output directory.

WDK tasks for MSBuild

The Windows Driver Kit (WDK) includes tools that are often used in the build process but are not normally distributed with Visual Studio. These tools are used to sign drivers or driver packages, implement software tracing, or to process and compile resource or message files (stampinf.exe, mc.exe, tracewpp.exe, binplace.exe, etc.). These command-line tools need to be exposed to MSBuild as tasks (contained in targets) so that they can be run during the build process. The WDK provides the necessary components so that you can run these tools as MSBuild tasks when you build your driver.