Hands On Technology Transfer Inc - 1-800-413-0939

Discounts
Travel Packages
Guarantees
Testimonials
Why HOTT
Free Reports

Microsoft Certified Partner

Print FriendlyE-mail a Friend

Writing a Windows Device Driver

Duration: 5 days | Price: Contact a Career Consultant for pricing

Students Will Learn:
  • Windows Driver Architecture
  • SDK & Device Interfaces
  • Driver Development
  • Debugging

Description: This hands on training course provides the knowledge and practice necessary to begin writing Windows device drivers for all modern Microsoft operating systems including Vista, Windows XP, Windows 2003, Windows 2000 and Windows NT 4.0. The course provides a thorough grounding for Windows device driver development including core technologies such as how to create a basic driver, the fundamental driver data structures, how to implement interrupts, how to move data between hardware devices and the driver including DMA transfers, how to move data between the kernel and the user application, synchronization, driver threads and layered drivers. Through lecture, class discussions and hands on lab work, the student will develop an immediately useful knowledge of how to write a device driver that will interface hardware to the system and to application programs. The course includes an overview of the development environment and the device categories that may be confronted. Both the underlying theory and some API details are covered; emphasis is on the underlying theory. The course finishes with a thorough introduction to Plug and Play (PnP) and Power Management. The intent is to prepare students to use the Microsoft documentation, the Microsoft Developers Network (MSDN) resources, and published material in order to continue work beyond the scope of the course. The solid background provided by this course can prepare the student for more advanced work.

Lab work is integrated to allow students to explore the problems that may be encountered and debugging techniques that can be employed. The students will learn to employ various approaches to solving basic problems, and learn why certain techniques are employed to solve particular interface problems. The hands on labs provide practice implementing fundamental concepts of driver development. The labs include practice debugging drivers using contemporary debugging tools including WinDbg, dealing with common driver problems, how to read kernel crash dumps and use contemporary crash analysis tools, and using the Driver Verifier. Several drivers will be created in the course of the class, which the students can keep as starting templates for their own work. Each student will receive a CD-ROM containing the labs and example solutions which students may keep for future reference.

This course is designed and taught by Joseph M. Newcomer, noted author and consultant in the field of Windows system programming and driver implementation.

Prerequisites: Knowledge of C programming, Windows Architecture and Operating Systems Architecture.

Writing a Windows Device Driver Course Overview:

Windows Architecture Issues
  • The implications of NT/2000/XP design on driver architecture
  • Driver Design
  • Driver Implementation
  • Installing Drivers
  • Debugging Drivers
  • The API Interface and API Design Issues 
  Windows 2000/XP Drivers
  • Developing Drivers for Windows 2000 and XP
  • How to Convert Legacy Drivers
  • Supporting FireWire (IEEE-1394)
  • How 64-bit Drivers Will Work
  • Power Management
  • Plug and Play
Windows Architecture
  • Layered Drivers
  • Memory Allocation Options 
  • Lookaside Lists
  • IRQ Levels 
  • Driver Threads
  • Multiprocessing, preemptive multithreading, interrupts, and their requirements for synchronization; primitives for accomplishing synchronization
  Overview of Windows Drivers
  • Kernel-Mode Drivers
  • Miniport Drivers
  • Windows Driver Model (WDM) Drivers
  • Graphics Drivers
  • Network Drivers
Overview of the Software Development Kits and Device Interfaces
  • WinNT DDK
  • Win32 SDK
  • Video Displays
  • Networks
  • PCMCIA
  • Storage
  • Printers
  • Multimedia
  • Communications
  • Input
  Debugging Environment
  • Environment Variations
  • Setup Procedures
  • Using Windbg
  • Kernel Debugging Options
  • Debugging Techniques
  • Interpreting System Bug Check Information
  • Stack Traces
  • Debugging Hang Conditions
  • Hardware Profiles
Overview of Windows NT Drivers
  • User-Mode Drivers
  • Kernel-Mode Drivers
  • Windows Driver Model (WDM) Drivers
  • Miniport Drivers
  • Graphics Drivers
  • Network Drivers
  Developing the Driver
  • Building
  • Debugging
  • Tuning
  • Testing
Writing a Driver
  • Required Entry Points
  • Driver Objects and Resources
  • Initializing Device Objects and Extensions
  • Processing Input and Output in Kernel Mode
  • Serializing the Driver Processing
  • Using the Structured Exception Handler
  • Processing Windows NT Requests
  • Communicating with the Driver : operations
  • Communicating with the Driver : passing data
  • Latency within the driver
  • Trapping Errors and Recovering
  • Event and Error Logging
  • Direct Memory Access (DMA) Issues
  • Registry Manipulation
  • Performing File I/O Within a Driver
  • Using Timers
  • Fully Asynchronous Bidirectional ("Full  Duplex") Driver Issues
  • Installing and Configuring the Driver
   

Student Testimonials

"This course saved us at least 6 months of frustration and pain in developing a Windows driver. The instructor gave us an excellent course explaining sometimes in malicious details how to write a reliable and robust driver for Windows and avoid the most common mistakes."
– I.L., Applanix


"This class is a life/project/job saver! All of the basics were thoroughly covered and the labs gracefully brought together the massive amount of information concerning driver writing. Excellent instructor!"
– L.T., Volcano Therapeutics


"The instructor did an excellent job introducing the class to device driver writing. His practical instruction was very useful in relating the course to actual working responsibilities."
– S.L., Packard Biochip Tech.


Northeast/New England Southeast Midwest West/Southwest Canada United Kingdom
CT - Hartford
CT - New Haven
CT - Stamford
DC - Washington
MA - Boston
MA - Chelmsford
MA - Quincy
MA - Springfield
MA - Waltham
MA - Woburn
MA - Worcester
MD - Baltimore
MD - Columbia
NH - Manchester
NH - Nashua
NJ - Jersey City
NJ - Newark
NJ - Princeton
NY - Albany
NY - Binghamton
NY - Buffalo
NY - Ithaca
NY - Manhattan
NY - Rochester
NY - Syracuse
PA - Harrisburg
PA - Philadelphia
PA - Pittsburgh
RI - Providence
AL - Huntsville
FL - Fort Lauderdale
FL - Jacksonville
FL - Miami
FL - Orlando
FL - Pensacola
FL - Sarasota
FL - Tampa
FL - West Palm Beach
GA - Atlanta
GA - Savannah
LA - Shreveport
NC - Charlotte
NC - Raleigh-Durham
NC - Winston-Salem
SC - Charleston
VA - Alexandria
VA - Fairfax
VA - Norfolk
VA - Richmond
VA - Williamsburg
AR - Little Rock
IA - Cedar Rapids
IA - Des Moines
IL - Chicago
IL - Schaumburg
IL - Springfield
IN - Indianapolis
KY - Louisville
MI - Detroit
MI - Lansing
MN - Minneapolis
MO - Kansas City
MO - St. Charles
MO - Springfield
NE - Omaha
OH - Cincinnati
OH - Cleveland
OH - Columbus
OH - Dayton
OK - Oklahoma City
OK - Tulsa
TN - Memphis
TN - Nashville
WI - Milwaukee
AZ - Phoenix
AZ - Tucson
CA - Bakersfield
CA - Fresno
CA - Irvine
CA - Los Angeles
CA - Modesto
CA - Oakland
CA - Riverside
CA - Sacramento
CA - San Diego
CA - San Francisco
CA - San Jose
CA - Santa Clarita
CA - Santa Monica
CA - Temecula
CO - Denver
ID - Boise
NM - Albuquerque
NM - Las Cruces
NV - Las Vegas
OR - Portland
TX - Austin
TX - Corpus Christi
TX - Dallas
TX - El Paso
TX - Fort Worth
TX - Houston
TX - San Antonio
UT - Salt Lake City
WA - Seattle
WA - Spokane
AB - Calgary
AB - Edmonton
BC - Vancouver
MB - Winnipeg
QC - Montreal
QC - Quebec City
ON - Kingston
ON - Mississauga
ON - Ottawa
ON - Toronto
SK - Regina
Birmingham
Bristol
Chelmsford
Edinburgh
Glasgow
Leeds
Liverpool
London
Manchester

Hands On Technology Transfer, Inc.
1 Village Square, Suite 8
14 Fletcher Street
Chelmsford, MA 01824
1-800-413-0939 | 1-978-250-4299

Copyright© 2008 Hands On Technology Transfer, Inc.