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
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.
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.