Debugging Kernel-Mode Driver Framework Drivers
Updated: September 21, 2009
.gif)
The Kernel-Mode Driver Framework (KMDF) not only simplifies writing kernel-mode drivers but also provides good support for debugging and diagnosing driver issues. This series of demonstrations by Kumar Rajeev shows how to debug KMDF drivers. The goal is to familiarize you with KMDF debugger extensions and provide information and tips on using these commands.
Prerequisites
This series of demonstrations is given at an advanced technical level. To get the most from this content you should have working knowledge of the Windows kernel debugger (windbg.exe) and should be familiar with creating and using code with the Kernel-Mode Driver Framework. Because each session builds on the previous one, we recommend that you view these demonstrations in the order listed.
Video Series: Debugging Kernel-Mode Driver Framework Drivers
-
Session 1: Dumping the KMDF Log (10 minutes) [media file]
The KMDF log is an important feature that helps quickly identify the root cause of a problem. This session shows you how to dump the KMDF log in the kernel debugger. It also provides information on how to change the size and verbosity of the log, and gives some tips on scanning the log. -
Session 2: Getting Information about a KMDF Driver and Its Objects (15 minutes) [media file]
The KMDF provides several debugger commands that help you explore various types of information about a driver. This session shows how to dump all the framework objects created by a KMDF driver, including parent-child hierarchy, verifier state, and device hierarchy. These commands are usually the starting point for a deeper investigation. -
Session 3: Dumping Device and Queues (15 minutes) [media file]
This session shows you how to get detailed information about a KMDF device object including plug and play (PnP) and power state, power policy ownership, power configuration, PnP and power callbacks, and device properties. It also shows you how to get information on open handles, explore all the I/O queues configured for the device, and dump individual requests.
Speaker Biography
Kumar Rajeev is a Software Design Engineer (developer) for the Microsoft Windows Driver Framework (WDF) team. He has worked in the device driver area for over nine years in several different technologies.