Windows Driver Kit - 1

Windows Driver Kit

WinHEC 2005 Version – April 25, 2005

Abstract

The Windows Driver Kit (WDK) is a fully integrated driver development system for the Microsoft® Windows® family of operating systems. System manufacturers, hardware vendors, and driver writers and testers can use the WDK throughout the driver development life cycle to produce high-quality drivers for Windows 2000 and later versions ofthe operating system.

This information applies for the following operating systems:
Microsoft Windows codenamed “Longhorn”
Microsoft Windows Server™ 2003
Microsoft Windows XP
Microsoft Windows 2000

The current version of this paper is maintained on the Web at

Contents

A Vision for Windows Drivers

WDK Goals

WDK Roadmap

WDK Highlights

Windows Driver Foundation

WDK Driver Test Manager

Advances in Tools

Resources

Disclaimer

This is a preliminary document and may be changed substantially prior to final commercial release of the software described herein.

The information contained in this document represents the current view of Microsoft Corporation on the issues discussed as of the date of publication. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information presented after the date of publication.

This White Paper is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS DOCUMENT.

Complying with all applicable copyright laws is the responsibility of the user. Without limiting the rights under copyright, no part of this document may be reproduced, stored in or introduced into a retrieval system, or transmitted in any form or by any means (electronic, mechanical, photocopying, recording, or otherwise), or for any purpose, without the express written permission of Microsoft Corporation.

Microsoft may have patents, patent applications, trademarks, copyrights, or other intellectual property rights covering subject matter in this document. Except as expressly provided in any written license agreement from Microsoft, the furnishing of this document does not give you any license to these patents, trademarks, copyrights, or other intellectual property.

Unless otherwise noted, the example companies, organizations, products, domain names, e-mail addresses, logos, people, places and events depicted herein are fictitious, and no association with any real company, organization, product, domain name, email address, logo, person, place or event is intended or should be inferred.

© 2005 Microsoft Corporation. All rights reserved.

Microsoft, Windows, and MSDN are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries.

The names of actual companies and products mentioned herein may be the trademarks of their respective owners.

A Vision for Windows Drivers

It’s difficult to build high-quality drivers. Yet resilient, secure drivers are critically important to the long-term success of the PC platform and to everyone’s efforts to contain support costs and improve customer satisfaction. To provide a good user experience, drivers must be stable, reliable, secure, and compatible with the operating system. To contain costs, these qualities must be designed into the driver from the beginning of the development cycle—they cannot be “tested in” after the fact.

Microsoft is committed to making Windows drivers the highest quality drivers of any operating system. To support that vision, Microsoft is making significant investments in architectures, tools, and technologies to help manufacturers produce high-quality drivers for Windows. One such investment is the Windows Driver Kit or WDK.

Developers and partners have consistently asked for better tools and simpler processes to support the full product cycle of driver development—from design and development, to testing and debugging, to obtaining the “Designed for Windows” logo, through supporting and updating drivers in the field. Based on this feedback and additional research, Microsoft is designing the WDK with the overall goal of streamlining the driver development process and increasing the efficiency of producing high-quality Windows drivers.

The result is a single kit that represents a substantially reengineered approach to driver development and testing. The WDK is more than just a simple combination of the Windows DDK and Hardware Compatibility Test (HCT) kits. In addition to a driver build environment, samples, and documentation, the WDK provides a comprehensive test management tool called the Driver Test Manager, which can be used to schedule and run tests, manage test jobs, report results, and manage test systems and test labs. The WDK also provides access to the same tests that Microsoft uses internally to test the stability and reliability of the Windows operating system.

The WDK is designed primarily for driver developers and test engineers, but senior engineers and architects, hardware engineers and designers, and managers can also take advantage of the WDK.

WDK Goals

The WDK is an important part of Microsoft’s strategy for addressing these goals:

  • Make producing high-quality drivers simpler and faster by providing integrated tools for driver development, testing, troubleshooting, and performance tuning.
  • Reduce the costs of developing and designing high-quality drivers by providing a common set of development, validation, and qualification processes.
  • Reduce the cost of driver support by simplifying creation of driver installation packages and by simplifying the "Designed for Windows" logo program submission and review process.
  • Empower third-party hardware and driver developers by reducing the amount of specialized knowledge that developers need to write drivers and by providing improved documentation and technical content

The WDK supports each phase in the device software life cycle.

WDK and the Device Software Life Cycle

Phase / What the WDK offers
Design/
Develop / Windows Driver Foundation.
New and improved samples.
Template and other sample drivers.
Advanced compile-time and static analysis tools.
Improved driver installation tools.
Improved documentation.
Test and Troubleshoot / Driver Test Manager.
New and improved tests and validation tools.
Advances in test installation, deployment, and logging.
Improved documentation.
Kernel debugger.
New and improved tracing and performance tools.
WHDC content integration.
Improved documentation.
Qualify / Simplified submission process for “Designed for Windows” logo, Windows Catalog, and other Microsoft programs.
Maintain / Simplified update process for WDK content.

WDK Roadmap

The WDK release schedule parallels that of the next release of Windows, codenamed “Longhorn.” Beta testing versions of Windows Longhorn are available through MSDN® Professional subscriptions. WDK Beta releases will be available through the Windows Longhorn Beta program. As for any Beta, the WDK Beta should not be used to develop production drivers.

A Beta version of the WDK will be available at each Windows Longhorn Beta release. The release candidate (RC) version of the WDK will be available at the same time as the Windows Longhorn Release Candidate. Tests will be available in time to obtain the “Designed for Windows” logo with the Windows Longhorn release to manufacturing (RTM).

The WDK replaces certain versions of the Windows DDK and Hardware Compatibility Test (HCT) Kits:

  • The WDK will replace the Windows DDK for Windows Server 2003 and earlier versions of Windows for driver development and testing.
  • The WDK can be used to build and test drivers for Windows Longhorn, Windows Server 2003, WindowsXP, and Windows 2000.
  • The WDK will replace the HCT kit for purposes of obtaining the “Designed for Windows” logo for Windows Longhorn only. Manufacturers should continue to use released HCT kits to obtain the logo for their products for earlier versions of Windows.

See the summary in the following table.

When to Use the WDK for Production Drivers

Windows version / Development environment / “Designed for Windows” logotesting
Before Longhorn RTM / After Longhorn RTM
Windows Longhorn / WDK / WDK / WDK
Windows Server 2003 (x86, x64)
Windows XP SP2 / Windows Server 2003 ServicePack 1 DDK1 / WDK / HCT 12
Windows Server 2003 forIntelItanium / Windows Server 2003 Service Pack 1 DDK / WDK / HCT 11.2
Windows XP Gold and SP12
Windows 2000 family / Windows Server 2003 DDK (orlater version) / WDK / HCT 11.23

Notes:

1 With the release of Windows Server 2003 Service Pack 1 (SP1), the Windows DDK will support all versions and service packs of WindowsServer and Windows XP. This DDK is currently in Beta, available to MSDN subscribers.

2 Driver development for Windows XP SP1 is supported in the original Windows Server 2003 DDK. Driver development support for Windows XP SP2 is provided in the Windows Server 2003 SP1 DDK.

3 Starting 90 days after release, HCT 12.0 should be used for “Designed for Windows” logo submissions for Windows XP and Windows 2000 Server.

WDK Highlights

The WDK includes support for the driver development model, new test harness, and new testing and development tools.

Windows Driver Foundation

The Windows Driver Foundation (WDF) simplifies the development and support of Windows drivers and addresses development challenges and driver reliability issues inherent in current driver models.

WDF includes driver frameworks for kernel mode and user mode that support the fundamental, complex functionality required in a driver. The driver frameworks are designed to enable driver developers to focus on their hardware and added-value software, not on the operating system.

The kernel-mode driver framework includes a complete implementation of Plug and Play, power management, I/O queues, DMA, WMI, and synchronization, along with specific support for major buses such as USB and IEEE 1394. Microsoft will be moving many of its class drivers to WDF. The WDK will support WDF by providing the WDF driver frameworks and WDF samples as part of the kit.

A preview version of the kernel-mode framework is available on the Windows Driver Foundation May 2005 prerelease CD that was included in the WinHEC 2005 conference materials. This version supports kernel-mode driver development for Windows Longhorn, Windows Server 2003, Windows XP, and Windows 2000.

WDK Driver Test Manager

Much of the cost associated with driver development can be traced to the difficulty of testing the growing number of system configurations due to the significant number and types of devices that can be connected to PCs. The WDK provides for greater testing depth and flexibility, automated test system configuration and test execution, and improved test logging through the Driver Test Manager.

The Driver Test Manager can be used to run tests, manage test jobs, report results, and manage test systems and test labs. The Driver Test Manager can be used during any phase of the driver development life cycle—development, testing, troubleshooting, logo qualification, and post-release maintenance— to run both Microsoft-supplied and compatible third-party tests.

Microsoft uses the underlying core test harness of the Driver Test Manager for testing the operating system.

Advances in Tools

The WDK provides many of the same tools that Microsoft uses internally to test Windows. These include tools created and advanced in conjunction with Microsoft Research, such as PREfast.

PREfast is a static source code analysis tool that detects certain classes of errors not easily found by the typical compiler. PREfast analyzes C and C++ source code by stepping through all possible execution paths in each function and simulating execution to evaluate each path for problems. PREfast can find errors that the compiler may ignore and that may be difficult to find during testing and debugging.

The driver-specific version of PREfast checks for issues such as use of the correct interrupt request level (IRQL), use of preferred driver function calls, misuse of driver function calls, and more aggressive checking of memory leaks and leaks of other resources such as locks.

Resources

WinHEC WDK Preview

The WinHEC conference materials include a developer preview release of the WDK. Use this preview to become familiar with WDK features and start planning integration of the WDK into your product development processes.

Call to Action and Feedback

For system manufacturers, device manufacturers, and driver developers:

  • Use the information in this paper and the WinHEC WDK Preview to start becoming familiar with the WDK.
  • Begin planning how to integrate the WDK into your product development cycles.
  • Communicate with Microsoft about how the WDK will affect your existing development and testing processes.
  • For questions or feedback about the WDK, send email to

WDK on WHDC website

WinHEC 2005 Version – April 25, 2005