Home    |    Instructor-led Training    |    Online Training     
         
 
Courses
ADA
Adobe
Agile
AJAX
Android
Apache
AutoCAD
Big Data
BlockChain
Business Analysis
Business Intelligence
Business Objects
Business Skills
C/C++/Go programming
Cisco
Citrix
Cloud Computing
COBOL
Cognos
ColdFusion
COM/COM+
CompTIA
CORBA
CRM
Crystal Reports
Data Science
Datawarehousing
DB2
Desktop Application Software
DevOps
DNS
Embedded Systems
Google Web Toolkit (GWT)
IPhone
ITIL
Java
JBoss
LDAP
Leadership Development
Lotus
Machine learning/AI
Macintosh
Mainframe programming
Mobile
MultiMedia and design
.NET
NetApp
Networking
New Manager Development
Object oriented analysis and design
OpenVMS
Oracle
Oracle VM
Perl
PHP
PostgreSQL
PowerBuilder
Professional Soft Skills Workshops
Project Management
Python
Rational
Ruby
Sales Performance
SAP
SAS
Security
SharePoint
SOA
Software quality and tools
SQL Server
Sybase
Symantec
Telecommunications
Teradata
Tivoli
Tomcat
Unix/Linux/Solaris/AIX/
HP-UX
Unisys Mainframe
Visual Basic
Visual Foxpro
VMware
Web Development
WebLogic
WebSphere
Websphere MQ (MQSeries)
Windows programming
XML
XML Web Services
Other
Windows Driver Development
Overview

This course covers driver development using the Windows Kernel Mode Driver Framework (KMDF) and is targeted at developers and support engineers. Attendees will learn to develop, build, test and debug Windows kernel mode drivers based on KMDF and UMDF 2.0.

Hands-on Labs

Every topic in the course is accompanied by hands-on labs that involve developing, building, signing, deploying, testing and debugging a functional KMDF driver based on predefined templates. These hands-on labs will provide attendees with first-hand experience with every step of the driver development workflow for KMDF based drivers.

Prerequisites

This is an intermediate level course and requires attendees to be able to proficient in C/C++. In addition, attendees are expected to have basic working knowledge of WinDBG and should be familiar with the Windows kernel environment.

The Windows Debugging and Reversing and the Windows Kernel Internals courses provide most of the pre-requisite knowledge for this course.


Course duration

3 Days

Topics

Driver Debugging

The course starts off with detailed discussion of kernel debugging with emphasis on live debugging of KMDF drivers. Debugger architecture, debug symbols, extension DLLs, host and target systems, kernel debug transports, system bug checks are covered. Commands and techniques for fixing symbols file issues, transferring driver binaries automatically between host and target systems, debugging KMDF specific bug-checks, displaying debug messages, configuring debug filters are also covered. The debugging foundations covered in this section will be used throughout the course.

Driver Installation

The section discusses the different components in the OS involved in driver installation and their contribution to the driver installation process. It also walks though the different events that occur in the system from the time a device is plugged in to the time the device becomes functional. Hardware device tree, device IDs, .INF files, driver ranking, driver signing, driver staging, device enumeration, co-installers are covered in details.

Building, Installing and Debugging

This section discusses the KMDF driver development workflow and introduces the tools that are available to help at every step. Each step of the driver development process like building, signing, deploying, testing and debugging is covered in details. Attendees learn how to use the new VS 2012 IDE and perform the steps in the driver development workflow and learn about the KMDF specific debugging tools like In-Flight Recorder (IFR) and KMDF verifier.

Architectural Overview

This section provides an architectural overview of the kernel mode driver framework. It introduces the KMDF API, loader, co-installer, objects and handles and the KMDF debugger extension. Attendees will learn about the different versions of KMDF, the role of the KMDF loader, the KMDF co-installer and be able to use the KMDF debugger extension to retrieve information about the KMDF drivers running on a system.

KMDF Objects

KMDF objects are abstractions of I/O manager data structures, among other things, and are used by drivers to interface with KMDF. This section discusses the common properties of objects that driver writers need to know in order to create objects, delete objects, define object attributes and examine these objects in the debugger.

Requests, Queues and I/O Targets

This section focuses on how KMDF driver handle I/O requests. It discusses the different stages of request processing, the different types of queues available to KMDF drivers, flow of requests through KMDF drivers, the different types of I/O targets supported by KMDF and how KMDF drivers send requests to I/O targets. It also covers PnP and power management aspects of KMDF drivers like PnP state transitions and power state transitions. Attendees will learn how to implement request processing, PnP and Power callbacks, format and send requests to I/O targets.

Hardware Access

Due to time limitations this section covers either KMDF based USB drivers OR KMDF based PCI drivers. Details of each topic are as follows:

USB Drivers - This section discusses how KMDF drivers communicate with USB devices. Architecture of the USB stack on Windows, USB device configuration, USB I/O targets, control endpoint requests, data endpoint requests, USB continuous reader and USB power management (including selective suspend) are covered.

PCI Drivers - This section discusses how KMDF drivers communicate PCI/PCI Express devices. Architecture of the PCI stack on Windows, PCI configuration space, resource mapping, I/O mapped I/O and memory mapped I/O, interrupt handling, common buffer and packet based DMA and PCI power states like (D3 Hot and D3 cold) are covered.

Advanced Topics

KMDF objects offer capabilities that are adequate for most drivers. KMDF objects also allow drivers to modify this default behavior if required. This section discusses some of the advanced capabilities that driver writer can take advantage of like execution level, synchronization scope, automatic serialization, custom locking and self- managed I/O.



Please contact your training representative for more details on having this course delivered onsite or online

Training Outlines - the one stop shopping center for IT training.
© Training Outlines All rights reserved