[WDF Source Available: https://github.com/Microsoft/Windows-Driver-Frameworks]
OK, well, maybe that title was a bit misleading. But, it’s not entirely untrue: portions of the Kernel and User Mode Driver Frameworks are going to be available on GitHub for the benefit of the driver development community. The magnitude of this announcement cannot be understated as it represents a major paradigm shift in Microsoft’s engagement with the development community. Not only is the source code on freakin’ GitHub, but we’re also getting private PDBs for the Framework binaries. This will enable us to perform source level debugging of the Frameworks in the comfort of our own offices, which is more than we imagined in our wildest dreams.
To understand why this news is a bit of a shock, we really need to go back in time to when the driver Frameworks were first introduced…
During the development of these Frameworks, Microsoft seriously engaged with the driver development community. Developers were able to provide feedback through forums, email aliases, and even an NDA’d, invite only conference on campus at Microsoft. The major sticking points brought up by the community during this time were the following:
- The interface to KMDF had to be C based (hey, this was 2003)
- The Frameworks had to support Windows 2000 (did I mention this was 2003?)
- The Frameworks had to be open source
KMDF does indeed have a C based interface, so we won there. KMDF 1.0 shipped without Windows 2000 support and the community went apoplectic, leading to Microsoft reversing that decision with KMDF 1.1.
The source code issue was a sticking point for quite a while. In fact, in 2007 we published an article in The NT Insider titled 18 Months Later: Release The KMDF Source Code! Also in 2007, there was a lengthy exchange on NTDEV with all of the hallmarks of a religious battle (including one WDF team member almost being able to “see the spittle”). The request for source code was clearly heard, but nothing came of it. We all moved on and adopted the Frameworks anyway, which is a testament both to how bad WDM was and how good the Frameworks are.
What you might not know is that WDF team wanted the community to have source code from the beginning. They agreed that having source would be a good thing and pushed for this internally at Microsoft. The decision to not release the source was, unfortunately, ultimately a business decision and not a technical one.
A decade later, here we are with the source. The fact that the change came now is both a testament to the WDF team’s tenacity in its commitment to the community and the overall change that’s happening at Microsoft in terms of community engagement.
As a community, we driver developers need to step up and show that this is the way that it should be. Show that we know how to, and will, make good use of this new tool. Microsoft will be accepting bugs submitted against the Framework through GitHub, so be sure to file a bug instead of complaining! Eventually the plan is to even allow for code contributions from the community, though the details of how/when that will happen are TBD.
Try Windows 10. Try the WDK 10. Submit bugs and feedback. Hopefully it won’t take us 10 years to get everything we want, but even if it does we can now be sure that someone’s listening!