Skip to content
Driver Module Framework
Branch: master
Clone or download
samtertzakian Merge20190604 (#68)
* Corrects an issue in the framework improperly initialized Module descriptors in a way that they could be initialized by one thread, while still being used by another thread. The issue was benign at run time since the fields that were used were used only for validation during debug build. However, for future changes the design issue could have caused legitimate issues. In addition to being benign, the chance of actually hitting the issue is quite low as it happened only during a very small window.
A related change to that is how the Module Method validation macros work now that the Module Descriptor is no longer global.

* Update the test driver to create a higher stress configuration.

* Fix BSOD due to race condition when timer expires but is removed from list at the same time by another thread.

* Add DmfKTest project to DMF to simplify building.

* Add the correct DmfKTest project file. (Previous commit in this PR was incorrect.)
Latest commit 7a5c393 Jun 6, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
Dmf Merge20190604 (#68) Jun 5, 2019
DmfSamples Correct SAL issues found using VS2019 (#63) May 29, 2019
DmfTest Merge20190604 (#68) Jun 5, 2019
.gitignore Initial commit Aug 6, 2018
Dmf.sln Merge20190604 (#68) Jun 5, 2019
LICENSE Initial commit Aug 6, 2018 Update orignal change Nov 20, 2018

Driver Module Framework (DMF)

DMF is an extension to WDF that enables extra functionality for a WDF driver developer. It helps developers write any type of WDF driver better and faster.

DMF as a framework allows creation of WDF objects called DMF Modules. The code for these DMF Modules can be shared between different drivers. In addition, DMF bundles a library of DMF Modules that we have developed for our drivers and feel would provide value to other driver developers.

DMF does not replace WDF. DMF is a second framework that is used with WDF. The developer leveraging DMF still uses WDF and all its primitives to write device drivers.

The source code for both the framework and Modules written using the framework are released.

Introduction Video from 2018 WinHEC: (See the video titled, "Introduction to Driver Module Framework".)

This blog post provides more information:

The Documentation\ folder has detailed information about the framework and how to use it.

DMF Documentation:

Module Documentation:

Detailed documentation about each Module is available on the wiki:


DmfSamples has all the sample drivers that show in incremental steps how to use DMF in a driver.

To build DMF and the sample drivers, follow the steps here.


This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit

When you submit a pull request, a CLA-bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact with any additional questions or comments.

You can’t perform that action at this time.