Home | FAQ | Contact

Private Seminars
Public Seminars
Course Descriptions
Course Map
Instructors
Resources

Up
APP210
CMB221
DBG211
DBG214
DBG311
DRV101
DRV150
DRV201
DRV203
DRV204
DRV205
DRV211
DRV221
DRV222
DRV231
DRV232
DRV251
DRV264
DRV274
DRV280
DRV301
DRV350
INT150
INT201
INT250
SEC230
SEC240
WSC150
WSC250

DRV203: Windows Driver Development for Kernel Mode Driver Frameworks 

This seminar describes the how to write, package, install, and debug drivers using Kernel Mode Driver Frameworks.

Level

Intermediate

Audience

Developers of drivers using Kernel Mode Driver Frameworks. These will typically be functional and filter drivers for devices on "backplane" buses (such as PCI, PCI-X, and PCI-Express); for devices on 1394 (Firewire); and for medium to high speed devices on USB.

Description

In this seminar you will learn the common principles and interfaces used by all WDF device drivers, and the details of Kernel Mode Driver Frameworks. We will cover the most common types of drivers: Functional drivers for devices on “protocol” buses such as USB and IEEE1394; functional drivers for devices on “backplane” buses such as PCI-E and PCI-X; and filter drivers for both types of devices. We include complete coverage of KMDF driver coding; writing and debugging .INF files; interfacing to the bus controller driver, I/O request management for protocol bus devices, driver installation, and debugging.

We start with a very simple "null device" driver, and then fill in deeper and deeper layers of details and possibilities, ensuring that you understand each new idea in its proper context. This approach also provides needed repetition, so that you see the important points more than once and from different points of view.

The best way to remember what you have to do is to learn why you have to do it.  Although we very clearly distinguish supported interfaces from undocumented information, we do show you a great many "how it really works inside" details of the operating system – details that are not available in the standard documentation. These details help you to learn KMDF in terms of an internally consistent set of principles and mechanisms rather than as a set of seemingly arbitrary rules. Where you have choices of design methods for your driver, you will learn the advantages and disadvantages of each. We will even expose a few things that the operating system could have done better and show you how to work around them.

Topics

  • Key operating system and Windows I/O subsystem principles

  • WDF and KMDF concepts

  • Introduction to KMDF data structures (objects) and interfaces

  • A "starter" KMDF driver

  • Device driver development environment

  • Plug and play basics; .INF files; driver installation

  • Driver debugging

  • Handling simple I/O requests

  • Buffer handling

  • Implementing I/O requests on USB and IEEE1394 devices

  • Advanced plug-and-play and power management

  • Serialization and synchronization

  • Advanced I/O request queueing

  • Programming devices on backplane buses

  • Interrupts and Deferred Procedure Calls

  • DMA

Prerequisites

DRV150, Windows Internals for Driver Developers, or equivalent knowledge and experience.  Attendees should understand the basic principles of demand-paged, virtual memory, multitasking operating systems. Attendees must have at least a reading knowledge of the C programming language. Familiarity with device driver development on other platforms will be helpful, but is not essential. 

Windows versions

Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003, Windows XP, Windows 2000

Duration and formats

5 days with labs

Labs

This seminar is only offered with hands-on labs. As with our other driver seminars, a lab exercise allowing you to immediately apply the material follows each key point or principle in the lecture presentation. Each exercise builds on the ones preceding. Either a simple USB or PCI-E device (depending on customer request) is used as the "target" device for most of the example code and lab problems, but the principles presented here apply to nearly all KMDF device drivers. All seminar attendees (both in the labs and lecture-only versions) will of course receive a diskette or CD-ROM with complete, debugged and commented solutions for all of the lab problems.

Copyright © 2010 by Azius Developer Training