Windows Device Drivers : Windows Driver Model (WDM)


Duration 5 days lecture + hands-on lab
Audience Product support engineers, hardware and software QA engineers, field application engineers, application developers and device driver developers
Pre-requisites Understanding of operating system concepts is required.
Description This course presents the basics of developing device drivers for Windows operating systems. It covers the various phases of driver development cycle, details of device driver implementation including kernel APIs and relevant data structures. Through the hands-on labs, attendees re-enforce the theory by actually implementing, installing, testing and debugging WDM drivers inside a Virtual Machine. Upon completion of this intermediate level course, attendees will get a jump start into WDM device driver development, become familiar with the tools and APIs available for kernel mode development, be able to understand WDM driver source code and be able to design, implement and debug WDM drivers.

Building and Debugging Device Drivers
  • DDK Build Environment
  • Build Process
  • Build Files & Directories
  • Debugger Functionality
  • Debugger Symbols
  • Debugger Setup
  • Debugger Usage
Architectural Overview
  • System Concepts
  • Busses and Devices
  • Device Types
  • Driver Types
  • I/O Manger Data Structures
Device Installation
  • Class and Interface GUIDs
  • Plug and Play IDs
  • INF Files
  • Device Enumeration
  • Setup API
  • Plug and Play Notifications
I/O Processing
  • Device Driver Entry Points
  • Win32 I/O API
  • Dispatch I/O Routines
  • Types of I/O Transfers
  • Synchronous I/O Processing
Asynchronous I/O Processing
  • Driver Managed IRP Queues
  • Deferred Procedure Calls
  • IRP Cancellation
  • Cleanup Routines
  • Queuing Mechanisms
Driver Layering
  • Layering Concepts
  • Attaching to Device Objects
  • IRP Forwarding
  • I/O Completion Routines
  • Pre & Post Processing
Plug and Play
  • PnP Device States
  • Handling Device Arrival
  • Handling Resource Assignment
  • Handling Query and Cancel IRPs
  • Handling Resource Rebalancing
  • Handling Device Removal
Hardware Interfacing
  • PCI Hardware Overview
  • Hardware Resources
  • I/O Ports
  • Memory Mapped Registers
  • Interrupt Service Routines
  • Bus Master DMA
  • Issues with hardware interfacing
Power Management
  • Power Manager
  • Power States
  • Power Management Support
  • Device Power IRPs
  • System Power IRPs
  • Wait Wake IRPs
Windows Management and Instrumentation
  • WMI Overview
  • WMI IRPS
  • Managed Object Format
  • Handling WMI Requests
Driver Quality Tools
  • Driver Verifier
  • Event Tracing for Windows(WPP Tracing)
  • PREFast
  • Call Usage Verifier (CUV)
  • PnPDTest
  • Static Driver Verifier (SDV)
  • Device Path Exerciser (DC2)