| 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.
|