windows BDA driver (abstract)

来源:互联网 发布:c语言怎么做图形 编辑:程序博客网 时间:2024/06/09 21:06

AVStream is a Microsoft-provided multimedia class driver that supports video-only streaming and integrated audio/video streaming. Microsoft provides AVStream as part of the operating system, in the export driverks.sys. Hardware vendors write minidrivers that run under ks.sys.

In the AVStream driver model, vendors provide a minidriver that interacts with a Microsoft-provided class driver, as shown in the following diagram:

Relationship Between AVStream and KS Services


Broadcast Driver Architecture Drivers

Broadcast Driver Architecture (BDA) drivers control hardware that manipulate a digital broadcast signal.


Broadcast Receiver Topology

one possible functional topology that receives digital broadcast content. It illustrates the operations necessary to:

  • tune and demodulate the signal.
  • capture and demultiplex the signal.
  • obtain electronic program guide (EPG) information.
  • obtain audio and video content.
  • obtain IP data.


Common Control Nodes and Filters

The types of control nodes and filters that are shown in the figures in the Control Nodes, Filters and Hardware section are common to the reception of digital satellite, terrestrial, and cable broadcasts. However, you can create other node types and filters for a wide variety of broadcast media and devices as well. It is important to remember that each control node need not correspond to a single BDA device filter. In some cases, a single BDA device filter can encapsulate more than one control node.

The following list describes control nodes and filters that are commonly found in Broadcast Architecture:

Network Provider
A network provider filter (or network provider) routes a digital television signal to and through BDA devices. A variety of broadcast providers currently transmit digital television signals over three basic network types—satellite, cable and antenna. These digital signals are transmitted in formats defined by multiple standards, including ATSC, DVB-S, DVB-C, and DVB-T. BDA devices receive and manage these digital signals.

A network provider:

    • is the source filter in a filter graph, although no data actually passes through it.
    • exists for each network type or can be created for a new network type.
    • participates in the graph building process.
    • communicates with other filters in the graph through property and method sets of BDA minidrivers that initialized such filters.

Each network provider can build a different graph configuration for its associated network type. Applications pass tune requests to a network provider, which in turn passes the information to a BDA minidriver. See the Broadcast Architecture section of the Microsoft Windows SDK documentation for more information.

Tuner
This control node filters the particular frequency that carries the transport stream. It can appear inside a filter by itself or together with other control nodes.
Demodulator
A control node that translates the analog signal into a digital bit stream. It can appear inside a filter by itself or together with other control nodes.
Capture
A filter that moves the data into host memory.
PID Filter
A control node that selects one or more elementary data streams from the transport stream. This is the primary function of a demultiplexer. It can appear inside a filter by itself or together with other control nodes.
MPE Parser
A filter that parses IP data from a stream containing MPEG-2 private sections.
IPSink
A filter that accepts IP packets as data samples and forwards the data to the NDIS TCP/IP stack.
NDISIP
An NDIS miniport driver that acts as a receiver for a network adapter for the data that the IPSink filter passes.

Note Starting with Windows Vista, the IPSink filter is not supported.


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 minidriver architecture

BDA minidrivers are AVStream minidrivers that run under the AVStream module in the kernel-streaming driverks.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