|DRV233: Windows AVStream Minidrivers|
This seminar covers design and coding of AVStream minidrivers: Drivers that interface to video and audio capture and output devices.
Developers who write or maintain drivers for video and audio capture or output devices.
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.
.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
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 Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003, Windows XP
Duration and formats
5 days with 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.