Who Should Attend:
Software engineers, system analysts, programmers, system developers, and computer
science students who need to write systems and application programs for the
Windows 2000 environment.
Objectives:
This hands-on module is directed towards individuals requiring an understanding
of how to write, build, and debug Windows 2000 device drivers, including Windows
2000 Beta, and the Windows Driver Model (WDM). It covers the 2000 Executive,
Windows 2000 I/O Manager and data structures, and hardware issues that may impact
device driver design. It teaches participants the mechanics of setting up a
driver development environment, how to initialise, build, test, and debug Windows
2000 device drivers, how to analyse crash dumps and make WINDBG work. Participants
will also be provided with sample working codes on various device drivers, and
learn how to add codes to simple device drivers.
At the end of the module, participants should be equipped with a basic knowledge
of how Windows 2000 device drivers function, and how to build, test, and debug
Windows 2000 device drivers. Participants wishing to extend their knowledge
on writing real-life device driver programmes are encouraged to enrol in M309b:
Advanced Windows 2000 Device Driver Programming after this module.
Contents:
Introduction: An Objectives of the Operating Systems, Windows 2000 Drivers.
Basic Structure of A WDM Driver: Device and Driver Layering, The DriverEntry Routine, The AddDevice Routine.
Basic Programming Techniques: The Kernel-Mode Programming Environment, Error Handling, Memory Management, String Handling, Miscellaneous Programming Techniques.
Synchronization: An Archetypal Synchronization Problem, Interrupt Request Level, Spin Locks, Kernel Dispatcher Objects, Other Kernel-Mode Synchronization Primitives.
The I/O Request Packet:
Data Structures, The "Standard Model" for IRP Processing, Completing
I/O Requests, Passing Requests Down to Lower Levels, Cancelling I/O Requests,
Managing Your Own IRPs.