Export (0) Print
Expand All
1 out of 1 rated this helpful - Rate this topic

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

Writing a Simple WDF Driver

This topic describes the minimal functionality you need to write a WDF driver.

Using the Framework to Develop a Driver

This topic provides a high-level overview of the framework objects you'll use to develop a WDF driver.

Getting Started with UMDF

This section describes User-Mode Driver Framework (UMDF) and details the differences between UMDF versions 1 and 2. It also provides high-level architectural information about UMDF.

Framework Library Versioning

In this topic, you'll learn about the naming conventions for the file names of the Kernel-Mode Driver Framework (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

Did you find this helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2014 Microsoft. All rights reserved.