WDF Driver Development Guide

This section describes Windows Driver Frameworks (WDF) driver development concepts, including power management, I/O requests, and interrupt handling.

In this section

TopicDescription

What's New for WDF Drivers

This topic summarizes the new features and improvements for WDF drivers in Windows 8.1. Windows 8.1 includes User-Mode Driver Framework (UMDF) version 2.0 and Kernel-Mode Driver Framework (KMDF) version 1.13.

You can build drivers using these framework versions only for Windows 8.1.

WDF Architecture

Getting Started with UMDF

This section describes UMDF and details the differences between UMDF versions 1 and 2. It also provides high-level architectural information about UMDF. Use this section to determine if a UMDF driver is the right choice for your needs, and to decide which UMDF version to use.

Writing a Simple WDF Driver

This topic describes the minimal functionality you need to write a KMDF driver. You need the same minimal functionality to write a UMDF driver starting in UMDF version 2.

Using WDF to Develop a Driver

This topic provides a high-level overview of the framework objects you'll use to develop a KMDF driver. Except where indicated, you'll use the same objects to develop a UMDF driver starting in UMDF version 2.

Framework Library Versioning

In this topic, you'll learn about the naming conventions for the file names of the KMDF library and the UMDF library.

KMDF Version History

This topic lists versions of KMDF, the corresponding versions of the Windows operating system, and the changes made in each release.

UMDF Version History

This topic lists versions of UMDF, the corresponding versions of the Windows operating system, and the changes made in each release.

Sample KMDF Drivers

This topic lists the KMDF sample drivers that you can download from the Windows Dev Center - Hardware.

Sample UMDF Drivers

This topic lists the UMDF sample drivers that you can download from the Windows Dev Center - Hardware.

Sample Toaster Driver Programming Tour

This topic provides a code walkthrough of the Toaster sample, which contains KMDF and UMDF drivers designed for learning purposes.

Developing Drivers with the Windows Driver Foundation: Reference Book

The Developing Drivers with Windows Driver Foundation book is also available to help you learn the concepts and fundamentals of WDF. This book introduces Windows drivers and basic kernel-mode programming, and then describes the WDF architecture and programming model. It provides a practical, sample-oriented guide to using the frameworks to develop Windows drivers.

WDF Objects

This section describes common characteristics of framework objects and how a WDF driver uses object-based interfaces to call methods, register callback routines, set and retrieve property data, and manage object reference counts.

PnP and Power Management

The topics in this section describe the default PnP and power management support that the framework provides, and how a

Handling I/O Requests

This section describes how a WDF driver can use I/O queues to manage the I/O requests that the driver receives.

Using I/O Targets

The topics in this section describe how a WDF driver can forward an I/O request or create and send a new request to another driver, called an I/O target.

Synchronization Techniques

This section describes how a WDF driver can customize the framework's built-in callback synchronization, or use manual locks to control when the framework calls the driver's callback routines.

WDF Support Objects

The topics in this section describe how a WDF driver uses memory buffers, timers, string objects, work items, and other support functionality that the framework provides.

Handling Hardware Interrupts

The topics in this section describe how a WDF driver creates framework interrupt objects to service hardware interrupts, and how your driver synchronizes access to interrupt data buffers.

Handling DMA Operations in KMDF Drivers

This section describes how a KMDF driver converts I/O requests into direct memory access (DMA) operations. KMDF supports bus-master and system-mode DMA.

Supporting WMI in KMDF Drivers

The topics in this section describe how a KMDF driver registers as a WMI data provider, responds to requests for instance data, and sends events to registered WMI clients.

Accessing WDM Interfaces in KMDF Drivers

Most KMDF drivers do not need to access Windows Driver Model (WDM) interfaces directly. This section describes the limited cases when a KMDF driver requires direct access to WDM data structures, for example to obtain WDM information or manipulate an IRP.

Handling Hardware Resources

A system's hardware resources are the I/O ports, interrupt vectors, DMA channels, and other communication paths that must be assigned to each device that is connected to the system. The topics in this section describe how KMDF drivers negotiate hardware resource requirements for a device, review the proposed resource list, and then receive the assigned resources. This section also discusses how both KMDF and UMDF drivers access and map assigned resources.

Building, Installing, and Testing

This section describes how you build a WDF driver in Microsoft Visual Studio, whether you need to provide a co-installer, and how you test your driver using the WDF Verifier and built-in event logging.

Debugging WDF Drivers

The topics in this section describe techniques and tools that you can use to debug a KMDF or UMDF driver.

Porting a Driver from WDM to WDF

The topics in this section describe how to convert an existing WDM driver to a KMDF driver or a UMDF version 2 driver.

Additional Topics for KMDF Drivers

This section contains information that applies only to KMDF.

UMDF 1.x Design Guide

This section contains information that applies only to UMDF versions 1.11 and earlier.

 

 

 

Send comments about this topic to Microsoft

표시:
© 2014 Microsoft