Course Description:
A five day course on the development of basic WDM (Windows Driver Model) Device Drivers. The course is presented in partnership with Windows device driver specialists, Datronic®. The course includes a workshop with hands on labs and practical samples.
Overview:
This course supplies the basic knowledge for modifying existing WDM device drivers or writing completely new drivers.
Course Objectives:
-
WDM Device Driver Development for Windows XP, W2K3, Vista and Longhorn Server Course I (Basics).
- Basics for device driver development on Microsoft Windows platforms.
Delegates will learn:
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 delegates learn concepts and backgrounds of device driver development using the DDK and lots of practical tips and tricks.
Pre-requisites:
-
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
Who Should Attend:
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.
Duration:
Five days
Course Materials:
Delegate Handbook
Related Courses:
-
AWDM-501 Advanced WDM Driver Development
- WDF-501 WDF KMDF Driver Development
- NDIS-501 NDIS Network Driver Development
- MSDN-2450 Developing Embedded Solutions for
Microsoft Windows CE .NET. (v4.2)
- MSDN-2450N Building Embedded Solutions using Windows
CE 5.0
- MSDN-2545 Embedded Solutions for Windows XP
Embedded
- MSDN-2530 Introduction to Microsoft Windows CE .NET
|
Course Outline:
Day 1:
- Overview
- 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
Day 2:
- 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)
- Filter Device Object (FiDO)
- Plug’n’Play State Transitions in WDM Drivers
Day 3:
- Accessing Plug’n’Play Hardware Resources via HAL and Busdriver
- Interrupt Architecture and Thread Scheduling
- IRQL_PASSIVE_LEVEL, IRQL_DISPATCH_LEVEL, DIRQL
- Interrupt Service Routines
- Deferred Procedure Calls (DPCs)
Day 4:
- Synchronization
- Executive Spinlocks and Interrupt Spinlocks
- Dispatcher Objects and Executive Resources
- IRP Queues
- Cancel Safe IRP Queues and IRP Cancellation
Day 5:
- Power Management Overview and Basics
- System Power States
- Device Power States
- Power Policy Owner
|