Home | FAQ | Contact

Private Seminars
Public Seminars
Course Descriptions
Instructors
Resources

APP210
CMB221
DBG211
DBG214
DBG311
DRV101
DRV150
DRV201
DRV202
DRV203
DRV204
DRV205
DRV211
DRV221
DRV222
DRV231
DRV232
DRV233
DRV251
DRV264
DRV274
DRV301
DRV350
DRV360
INT150
INT151
INT201
INT205
INT250
INT410
OFF201
SEC230
SEC240
WSC150
WSC250

DRV233: Windows AVStream Minidrivers

This seminar covers design and coding of AVStream minidrivers: Drivers that interface to video and audio capture and output devices.

Level

Intermediate

Audience

Developers who write or maintain drivers for video and audio capture or output devices.

Description

This course begins with a discussion of the AVStream driver model, which was introduced with Windows XP. The upper edge of AVStream implements a fairly standard IoCallDriver/IRP-based interface, which is accessed from user mode by DirectX APIs. AVStream takes care of almost all plug-and-play and power management events, creating and destroying device objects, driver unload, cleanup of allocated memory, and many other "overhead" issues. AVStream exports its functionality to the minidriver via a number of functions with names of the pattern KsXxx. Unlike "miniports" in many other Windows driver models, an AVStream minidriver can call many standard device driver interfaces (DDIs), such as ExAllocatePool or IoGetDmaAdapter.

Topics

  • AVStream concepts

  • .INF files for AVStream minidrivers; driver installation

  • AVStream minidriver initialization

  • Process dispatch routines

  • An AVStream pseudodriver

  • Hardware device interface (PCI or USB)

  • Synchronization requirements and methods

  • Plug-and-play and power management details

Prerequisites

DRV150, Windows Internals for Driver Developers, or INT201, Windows Internals, or equivalent knowledge and experience.  Attendees should understand the basic principles of demand-paged, virtual memory, multitasking operating systems. Attendees should also be familiar with the concepts of I/O device programming (in other words, driver coding on any other operating system or environment) and must have at least a reading knowledge of the C programming language. Previous experience with Windows drivers under either the NTDDK or WDM driver models will be extremely helpful, but is not required.

Windows versions

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

Duration and formats

5 days with labs

Labs

Due to the size of even a minimal "dummy" AVStream minidriver, it is not practical to write complete drivers from scratch for this seminar. Instead, lab exercises are focused on understanding and using the sample code provided with the Windows Driver Kit. We begin by building, loading, and testing one of the samples, then progressively modifying it to make use of principles and techniques as they are described.

Azius does not offer this seminar without labs.

 

Copyright © 2012 by Azius LLC