Shopping Cart :Check Out

Windows Driver Development Course (5 Days)

Course Introduction:

The Windows Driver Foundation (WDF) is the latest standard for creating Windows drivers, and is the preferred way to implement most new drivers for Windows.

This workshop is designed for engineers who need to understand how to design, develop, and test Windows drivers using the WDF Kernel Mode Driver Framework (KMDF). The seminar specifically focuses on providing practical experience in developing KMDF software drivers. Once an attendee understands these concepts, creating KMDF drivers for other classes.

Engineers who need to understand how to design, develop, and test Windows drivers using the Windows Driver Foundation's (WDF) Kernel Mode Driver Framework (KMDF).


Students attending this seminar must have solid knowledge of general operating systems concepts (user mode versus kernel mode, virtual memory concepts, concurrency issues), device concepts (registers, interrupts), and the basics of Windows O/S Architecture. Previous experience developing device drivers (on any operating system) will definitely be an advantage.

Due to the hands-on orientation of this seminar, attendees will be assumed to be able to use Windows at a user level, including using Microsoft's Developer's Studio (VC++). Working knowledge of the C programming language, and how to read and write to a file using Win32 (CreateFile, ReadFile, WriteFile) are also assumed. Some familiarity with Windows OS configuration (Registry, System Administration Tools and System Directories etc) is required.

Course Contents

Day 1 Day 2 Day 3
Introduction to the Windows Driver Framework (WDF) Driver Development Environment and Tools The Kernel Mode Driver Framework
- Review of Windows driver architectures (WDM and WDF) - Free Build and Checked Build - Interactions between the KMDF and drivers
- Basic Driver Concepts for WDF - Overview of Device Classes - Introducing the Basic KMDF Objects
Driver Types - System-Supplied Drivers - Framework Object Lifecycle
Device and Driver Stacks - Free Build and Checked Build - The Object Context Space
I/O Request Packets (IRPs) - Windows Driver Kit (WDK) Installation - Handling I/O Requests
- Introduction to WDF Architecture - Overview of Driver Build, Debug, and Test Tools - Processing an I/O Request
Kernel Mode Driver Framework (KMDF) - Overview of the Build Utility - Instructor Demo:
User Mode Driver Framework (UMDF) - Using the Build Utility to build device drivers Code walkthrough of a sample KMDF driver
Differences between KMDF and UMDF - Signing Drivers During Development and Test
When to use KMDF and UMDF? - Requirements of A Typical KMDF Driver
Examples of devices suitable for KMDF and UMDF
- Building, Installing and Testing a WDF driver
Day 4 Day 5
Writing USB drivers using KMDF Testing and Debugging KMDF Drivers
- An introduction to basic USB concepts - Putting Debugging Information into Drivers
- Device, configuration and endpoint descriptors - Putting Debugging Information into Drivers
- Control, bulk, interrupt and isochronous endpoints. - Using Debugging Tools (WinDbg )to Debug Drivers
- Writing drivers for simple USB devices - Pageable Code and Data
- Plug and Play and Device Enumeration for USB Drivers - Overview of Tools for Verifying Drivers
- Interactions between the USB function driver and the Windows USB stack. - Driver Verifier
- Retrieving descriptors, choosing a configuration and interface, interacting with control, bulk, and interrupt endpoints. - Application verifier
- Hands on Lab - Digitally signing Device Drivers
- Using the Registry in a Driver - Using the Registry in a Driver
- Lab Exercise: - Lab Exercise:
Building a complete USB KMDF driver for OSR FX-2 board Analyzing crash dumps to debug drivers

Training Programs