Windows XP / W2K3 WDM Device Driver Development - Basic


WDM1 - Version:1
Description
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 the DDK and lots of practical tips and tricks.
Intended audience
Experienced application programmers, system software and driver developers, who need a thorough introduction of low level and hardware related software development on Microsoft Windows Platforms.
Expand All
  • Overview of the Windows operating systems
  • Synchronization Mechanisms
  • System Architecture
  • Kernel Mode Components
  • Setup Api / important Registry Keys
  • Plug’n’Play Basics / Overview
  • DDK Development Environment
  • Driver Debugging Host/Target
  • Device Installation
  • .INF Files
  • Class Installers, Class Coinstallers, Device Coinstallers
  • Driver Routines
  • Driver Data Structures (Driver Object, Device Object, Device Extension)
  • Packet driven IO with IO Request Packets (IRPs)
  • Virtual Memory Management
  • Buffered IO and Direct IO
  • Plug'n'Play Basics
  • Driver Layering and the Device Tree
  • Physical Device Object (PDO) Functional Device Object (FDO) and Filter Device Object (FiDO)
  • Plug'n'Play State Transitions in WDM Drivers
  • Accessing Plug. n. Play Hardware Resources via HAL and System Busdriver
  • Interrupt Architecture and Thread Scheduling
  • IRQL_PASSIVE_LEVEL, IRQL_DISPATCH_LEVEL, DIRQL
  • Interrupt Service Routines
  • Deferred Procedure Calls (DPCs)
  • Executive Spinlocks and Interrupt Spinlocks
  • Dispatcher Objects and Executive Resources
  • IRP Queues
  • Cancel Safe IRP Queues and IRP Cancellation
  • Power Management Overview and Basics
  • System Power States
  • Device Power States
  • Power Policy Owner
  • Very good knowledge of the programming languages C and/or C++
  • Basic knowledge of Microsoft development environments (Developer Studio)
  • Basic knowledge of Windows system programming and system administration
  • Knowledge of system and device driver development on other operating systems (e.g. Unix) is an advantage