Introduction to the Kernel-Mode Driver Framework (KMDF)

As I have written in my previous posts, the Windows Driver Foundation (WDF) consists of the User-Mode Driver Framework or UMDF (which I introduced in my previous post) and the Kernel-Mode Driver Framework or KMDF. In this post I would like to provide some links that analyze KMDF. Everybody, who is not familiar with the basic kernel-mode concepts…


Windows Device Drivers Book Reviews

A quick search in the web reveals that the number of the books that are related to windows device drivers can be counted with the fingers of one hand. Even worse, most of the books are either too old (published before or around windows 2000) and/or not easily readable. Another problem is that the Windows…


Introduction to the User-Mode Driver Framework (UMDF)

The first WDF framework that I’ll talk about is the UMDF (User-Mode Driver Framework). This framework allows the development of user-mode drivers. Currently, the supported devices are USB non-isochronous devices, like digital cameras, portable media players, cell phones, PDAs, etc. Isochronous devices are the ones that require the data rate to flow continuously and at…


Introduction to the Windows Driver Foundation (WDF)

As I’ve mentioned in my previous posts, Microsoft is trying to simplify the development of windows device driver by changing the corresponding driver framework. Therefore, WDM (Windows Driver Model), which is the old framework will gradually be replaced by WDF (Windows Driver Foundation). WDF can be further subdivided into 2 frameworks: the Kernel-Mode Driver Framework…


Hardware and Driver Developer Blogs + Driver tips

Thanks, to craigrow, I saw that Microsoft has created a list for hardware and driver developer blogs. I’m still not there yet, but I hope that this will change 🙂  Another interesting link are the driver tips, which include papers about driver synchronization, memory management, driver design, debugging, etc. 


Introduction to the Windows Driver Model (WDM)

The Windows Driver Model (WDM) has been the dominant framework for framework development since Windows 98. Before WDM, there were different frameworks for each kind of device. The idea behind WDM was to unite all these frameworks and provide binary (this goal proved far-fetched) or source level compatibility between different kinds of windows. Currently, WDM…


A Comparison of the Linux and Windows Device Driver Architectures

While searching for something irrelevant, I found a very interesting paper, called “A Comparison of the Linux and Windows Device Driver Architectures” by Melekam Tsegaye and Richard Foss. It was published at the ACM Operating Systems Review, Volume 38, Number 2, 2004. You can find a link to the paper here. The paper compares the…


Key Driver Concepts and Driver Development books

While looking at the traffic at the OSR ndev mailing list I saw that some introductory questions are answered in Microsoft’s Key Driver Concepts page. The links in this page include (but are not limited to) information about: Synchronization primitives (mutexes, fast mutexes, semaphores, spinlocks, etc) Memory management Windows scheduling C vs C++ as a language for driver development…