Build Environment for Windows Drivers

The process of compiling and linking a Windows device driver is controlled by the Build utility. This utility invokes the correct tools with the appropriate options to build your driver. The Build utility is a wrapper around the Microsoft NMAKE utility, so it handles issues such as checking dependencies to ensure that the correct files are rebuilt after a change.

The WDK includes build environments that can be used to create drivers for Windows 2000, Windows XP, Windows Server 2003, Windows Vista, and Windows Server 2008.

Checked and Free Builds. For each version of Windows supported in the WDK, there are build environments for checked and free builds and for each CPU target supported for that version:

The checked build creates a driver with debugging enabled, for use while you are creating the driver. Many compiler optimizations are disabled and conditional code for debugging is included.

The free build creates a production driver in which the code is optimized and debug code is disabled. This is the driver you use for performance testing and to ship to customers.

Tips for Using the Build Utility

Use only the Build utility to compile and link a device driver to ensure that the driver follows the conventions and settings that Windows requires.

Use Visual Studio as an editor and integrated development environment, but have it invoke the Build utility using a batch command file such as Ddkbuild from Hollis Technology Solutions.

The WDK does not include build environments for Windows 98 and Windows Me. To build drivers on these systems, install the Windows XP SP1 DDK, available through MSDN Subscription.

Getting Started with the WDK and the Build Environment
White PaperGetting Started with the Windows Driver Development Environment
OtherUsing Checked Builds of Windows
Microsoft.com"How to Use the Build Utility" in the WDK
Microsoft.comBuilding, Debugging and Testing Drivers in the WDK

Ddkbuild batch command
This link leaves the Microsoft.com siteHollis Technology Solutions
This link leaves the Microsoft.com siteOpen Systems Resources

Tools for Monitoring Debug Print Messages
This link leaves the Microsoft.com siteDebugMon
For viewing driver debug messages when a debugger is not attached.
Microsoft.comDebugView
Monitor debug output on local systems or network computers that can be reached via TCP/IP.

Resources
White PaperWDK Documentation Download
WHDC Portal/NodalDriver Developer Community Resources
WHDC Portal/NodalDriver Signing Requirements for Windows
WHDC Portal/NodalDriver Tips: Best Practices for Windows Device Drivers
WHDC Portal/NodalNotes from Windows Development Teams
WHDC Portal/NodalSupport for Developer Kits and Tools
OtherDriver Developer Blogs
Microsoft.comWDK Online