Training Course Windows Device Driver Development with WDF UMDF 2.0, KMDF and WDM

Our seminars and training courses supply the basic knowledge for modifying existing device drivers or writing complete new drivers.

Title: Windows Device Driver Development with WDF User Mode Driver Framework 2.0, Kernel Mode Driver Framework and Windows Driver Model for Windows 8.1.
Basics for device driver development on Microsoft Windows platforms. A workshop with hands on labs and practical samples.
Course Duration: 5 Days
Participants: Experienced application programmers, system software and driver developers, who need a thorough introduction to low level and hardware related software development on Microsoft Windows Platforms.
Summary: The students gain a thorough knowledge about the device driver architecture of the Microsoft Windows operating systems and their kernel mode components. In addition to this they learn concepts and backgrounds of device driver development using Microsoft Visual Studio with WDK and lots of practical tips and tricks.

Prerequisites:
- Very good knowledge of C and/or C++
- Basic knowledge of Microsoft Visual Studio
- Basic knowledge of Windows system programming
- Basic knowledge of Windows system administration

Day 1:

- Windows Operating System Architecture Overview
- Visual Studio and WDK Development Environment
- Device Installation and .INF Files
- Setup Api, DIFx API and SCM API
- Important Registry Keys
- Class Installers, Class Coinstallers, Device Coinstallers
- Building and Installing WDF Drivers with Visual Studio and WDK
- Remote Driver Debugging over Network using Visual Studio and WinDbg
- Structure of a simple WDF Driver
- WDF Object Model, Methods, Properties and Events
- WDFDRIVER and WDFDEVICE Objects
- Plug'n'Play Device Interfaces and Symbolic Links

Day 2:

- Packet based Driver Model
- WDFREQUEST and WDFQUEUE Objects
- Request Cancellation
- Virtual Memory Management Overview
- WDFMEMORY Object
- Buffered IO and Direct IO
- WDFIOTARGET Objects for Communication between Drivers
- Layered Driver Model
- Driver Roles: Filter Driver, Function Driver and Bus Driver
- Device Objects: FiDO, FDO and PDO
- WDF support for Filter, Functional, Physical and Control Device Objects

Day 3:

- Plug'n'Play Device Tree
- Device Enumeration and Startup
- Plug'n'Play Events and Statemachine
- Plug'n'Play Hardware Resources
- Operating System directed Power Management (OSPM) Concepts
- System Power States S0-S5 and Device Power States D0-D3
- Power Policy Owner and WDF Power Policy
- Power Engine Plugin (PEP) and Component Level Power Management
- Component Power States F0-Fx

Day 4:

- Function Drivers for remote Plug'n'Play Bus (e.g. USB)
- Function Drivers for local Plug'n'Play Bus (e.g. PCI)
- Controller and Peripheral Drivers for Low-Power Non-Plug'n'Play Bus
- Windows 8 support for GPIO, I2C, SPI, HSUART
- Windows Interrupt Architecture and Thread Scheduling
- WDFINTERRUPT Objects and Interrupt Service Routines
- Deferred Procedure Calls (DPCs)
- IRQL_DIRQL, IRQL_DISPATCH_LEVEL and IRQL_PASSIVE_LEVEL
- Windows Thread Scheduling

Day 5:

- Synchronization
- WDF Wait Locks and Spin Locks
- Framework automatic Synchronization
- Synchronization Scopes (Device, Queue, None)
- Execution Levels (Default Execution Level, Passive Execution Level)

- PREfast, Static Driver Verifier (SDV) and Driver Verifier
- Frameworks Verifier, In Flight Recorder and Debugger Extensions