Broadcast Driver Architecture Minidrivers

Broadcast Driver Architecture (BDA) minidrivers control hardware that performs the following operations:

  • Tuning a digital broadcast signal

  • Demodulating the digital signal

  • Capturing frames of the digital signal

  • Demultiplexing the signal into video, audio, and data streams

BDA minidrivers are AVStream minidrivers that run under the AVStream module in the kernel-streaming driver ks.sys. AVStream is a class driver that provides a unified kernel streaming class model for both audio and video minidrivers, and that supports use of COM objects without altering existing minidriver binaries. The AVStream class driver provides much of the default behavior required to make a minidriver's filter work as a WDM kernel streaming compliant filter. To simplify the task of writing BDA minidrivers, you can use the BDA support library (Bdasup.lib) of functions that is included in the Microsoft Windows Driver Kit (WDK). This library provides extensive default handling for the BDA minidriver's property and method sets.

Typically, driver writers only have to code the appropriate static template structures, register them with the BDA support library, and then let the library provide default handling for all the properties and methods. In some instances, a BDA minidriver must intercept a property or method request and perform appropriate operations.

The following figure shows an architectural overview for BDA minidrivers:

diagram overview of bda minidriver architecture

The following sections describe implementation details for a BDA minidriver, discuss details of some property and method sets, and contain sample code that shows how to intercept certain properties and methods:

Initializing a BDA Minidriver

Starting a BDA Minidriver

Creating Dispatch Tables

Defining Automation Tables

Initializing a BDA Filter

Using BDA Property and Method Sets

Caching Pin Information for DirectShow

Securing a BDA Minidriver

Connecting Between Pins of Filters for BDA Minidrivers