Microsoft Eases Windows Driver Development with New Driver Module Framework
Microsoft on Wednesday announced a new open source Driver Module Framework (DMF) for developers making Windows drivers.
DMF is an aid for developers, helping them build "structured Windows Driver Framework (WDF) drivers" that can be reused and shared with other drivers, according to the announcement by Microsoft's devices team. The DMF doesn't replace WDF. Rather, DMF is considered to be a "second framework that is used with WDF," according to the GitHub repository description.
"The developer leveraging DMF still uses WDF and all its primitives to write device drivers," the description added. A DMF module is actually just a WDF object or a WDF extension.
A DMF module is used to break down driver tasks into smaller units. Each module is self-contained and has its "own code, context and callbacks," making it easier to reuse. Microsoft also claims that the use of DMF modules "solves many problems."
DMF originated about three years ago when Microsoft took "a holistic look at drivers written for various Surface products." Members of the Surface product team had been working in isolation and building their own drivers or copying existing ones into their code.
"Developers with varied level of experience often created many divergent solutions to solve the same problem and the code lacked structure and quality," the Microsoft devices team explained.
The DMF effort was started with the aim of creating "a shareable code base" for Windows drivers. Now, all of Microsoft's Windows drivers are written using DMF modules. It has resulted in "well-architected drivers" and bug fixes are easier.
"A bug fix in a Module is automatically applied to all the drivers that were built using the Module," the team explained.
Now, with open source DMF code available at GitHub, Microsoft is making it easier for "third-party" (non-Microsoft) software developers to "create extensions/libraries that plug seamlessly into the WDF messaging model." The extensions and libraries can be "shared across drivers."
Kurt Mackie is senior news producer for the 1105 Enterprise Computing Group.