Skip to main content

Driver Lifecycle Fundamentals: Overview

Creating and delivering a Windows-based driver involves a commitment for the life of the driver (or service) and its device. You must:

  • Design your driver for Windows compatibility, reliability, security, and serviceability from the beginning.

  • Develop your driver by using the Windows Driver Kit (WDK) and advanced frameworks that are provided through Windows Driver Frameworks to help you build reliable, stable, and secure drivers.

  • Verify and test your driver by using the best tools available. Instrument your drivers using SAL annotations and declare callback functions using function role types. Use tools such as the Code Analysis tool for Drivers and Static Driver Verifier to find problems at compile time, and then test, test, and retest throughout the driver's life.

  • Digitally sign and install your driver based on best practices for minimal user intervention.

  • Maintain your driver throughout its life in the marketplace by using best practices for reliability, security, and serviceability. Take advantage of Windows Error Reporting (WER) data to understand any driver failures that your customers encounter.

Featured Content for Windows 8

The fundamentals of developing drivers for Windows remain the same for Windows 8 and the Windows Developer Preview as for Windows 7 and previous versions of the OS. Changes to specific concepts, best practices, and tools for Windows Developer Preview are highlighted on the following pages linked from this page.

Discover all new content provided by Microsoft in support of the next release of Windows:

Drivers: Getting Started

Develop a Windows Driver: Getting Started

If you are new to Windows driver development, start here for pointers to first steps for concepts, tools, and driver models.

Design Your Driver

Key Driver Concepts

Whatever the driver model and device class for your driver, you need a good understanding of Windows system internals such as memory management, I/O flow, and I/O request packets (IRPs).

Windows Driver Frameworks (WDF)

WDF implements the fundamental features of a Windows driver and enables you to focus on the specific details of your hardware or filter. WDF defines a single driver model that you can use to create object-oriented, event-driven drivers for either kernel mode or user mode.

Driver Performance: Best Practices

A high-quality driver runs reliably and causes no slowing of the entire system. Creating drivers for Windows that perform well requires effort throughout design and development.

Driver Design

You must design a driver carefully to build in reliability, serviceability, and the feature-based functionality needed to support the driver’s device.

Plug and Play and Power Management for Drivers

For the best possible user experience, a driver must cooperate with Windows components so that it loads automatically and participates in system power management.

Develop Your Driver

Windows Driver Kit (WDK)

The WDK is a fully integrated driver development system that contains headers, libraries, build tools, build environments, code samples, documentation, and other tools for creating drivers and kernel software.

Getting Started with the Windows Driver Development Environment

Getting started with Microsoft Windows device drivers can be difficult, even for experienced developers. This paper presents an overview of the debugging and testing tools that developers use to create a device driver for Windows operating systems.

Verify and Test Your Driver

About Debugging Tools for Windows

Debugging Tools for Windows is a set of extensible tools for debugging drivers, applications, and services on Windows systems.

About Tools for Verifying and Testing Drivers

The WDK includes a broad set of compile-time tools for verifying code during development to ensure a more reliable, more serviceable driver. The WDK also includes a broad set of testing, tracing, simulation and debugging tools that make it easier to find problems early in the development cycle.

Digitally Sign and Install Your Driver

Device and Driver Installation

To ensure the best possible user experience, installation of both a hardware device and its software driver should run as seamlessly as possible with minimal user intervention. Use Microsoft-supplied tools and guidelines to create successful installation packages.

Windows Hardware Certification

The Windows Certification Program provides you with tools, guidance, and support to help ensure your product is reliable and compatible with Windows. Windows Hardware Certification gives customers confidence that your product is thoroughly tested with Microsoft-provided tools and ensures a good user experience.

Maintain Your Driver

Driver Reliability, Security, and Maintenance

Create high-quality drivers, reduce support costs, and ensure a better user experience by addressing security and reliability throughout the product development cycle. Use Windows Error Reporting data to monitor your hardware and drivers. Distribute updated drivers on Windows Update to ensure that users find the latest drivers.