מרכז יעוץ והרשמה

1-700-50-70-20

Writing WDM Device Drivers for Windows 2000/XP/2003

 
Course Number: 352
Days: 5 days
Hours: 40

Further Details

 Overview
 
 The course provides the knowledge needed to develop kernel mode device drivers under Window 2000/XP/2003 with the Windows Driver Model (WDM). These drivers will be able to access I/O ports, handle I/O requests efficiently, handle Plug & Play notifications, etc.
 Who Should Attend
 
 ●  System programmers who want to develop WDM drivers  
●  Device driver writers familiar with NT 4 drivers who want to update their skills
●  Anyone interested in writing drivers and understanding the Windows kernel more deeply
 
 Prerequisites
 
 Attendees must be familiar with Window NT concepts and architecture (although some important concepts will be covered). Fluency in the C language is mandatory. Recommended acquaintance of the Visual C++ Development environment. Knowledge of writing NT 4 device drivers is helpful, but not essential.
 Course Content
 
 Windows 2000/XP/2003 Internals 

  • Windows 2000/XP/2003 architecture
  • Processes
  • Threads
  • Priorities
  • Scheduling
  • Virtual memory
Device driver's basics

  • Device driver's types
  • Kernel device driver
  • Invoking a driver
  • System objects
  • Unicode
  • Linked lists
  • Memory pools
  • Introduction to WDM
  • Device nodes
Building and debugging drivers

  • Setting up the development environment (host and target)
  • Configuring null modem connection
  • Free and checked builds of NT
  • Setting up WinDbg and connecting to a debugee driver
  • Using WinDbg
  • Using SoftIce
  • Debugging macros and functions
DriverEntry and AddDevice routines

  • The DriverEntry routine
  • The Unload routine
  • The AddDevice routine
  • Creating Device objects and symbolic links for user mode use
  • Registering device interfaces
Interrupts and kernel synchronization

  • Multiprocessor systems and spin locks
  • IRQLs
  • Interrupt dispatching and the Interrupt Service Routine
  • Synchronization with spin locks
  • DPCs
  • The DPC queue
  • Synchronization at low IRQLs
The I/O request packets (IRP)

  • Methods of IRP queuing
  • The IRP stack location
  • Dispatch routines and major function codes
  • The StartIo routine
  • System queuing and driver defined queuing
  • Synchronization with the ISR
  • Canceling IRPs and the Cancel routine
  • Completion routines
  • Passing IRPs to lower layers
  • Handling Create, Close, Cleanup IRPs
Plug & Play

  • What is Plug & Play? PnP IRPs
  • System enumeration
  • PnP States
  • The PnP Dispatch routine
  • Starting the device
  • Hardware resources claiming
  • Working with I/O ports
  • Memory mapped I/O
  • Connecting interrupts
  • DMA setup
  • Stopping the device
  • The remove lock
Data Transfer

  • Accessing I/O ports and registers
  • Programmed I/O methods (buffered, direct, neither)
  • DeviceIoControl buffers
  • Setting up a DMA controller
  • Using system DMA and busmaster DMA
Power management

  • Power states
  • Handling power transitions
  • Power requests
  • System wakeup
Installing Device Drivers

  • Installing Device Drivers
  • INF files
  • INF sections
Miscellaneous Topics

  • Driver created threads
  • Handling user mode objects
  • Timers
  • Filter drivers

לפרטים נוספים והרשמה
 
שם מלא: אימייל: טלפון:
  חברה:   תפקיד:   איזור:
   
  אני מסכים לקבל דבר פרסומת...          
שלח    
 top