Windows Kernel Streaming Architecture

Updated: April 2, 2003
*

Kernel Streaming (KS) is a broad term for the services that support kernel-mode processing of streamed data. KS enables efficient real-time streaming for multimedia devices such as sound cards and TV tuner cards. The Microsoft kernel streaming model is used in Microsoft Windows 2000 and later operating systems, and in Windows Me.

Kernel Streaming is relevant to minidriver development under the following Microsoft-supplied class driver models: Port Class, Stream Class, and AVStream. (AVStream is the preferred driver model for Windows XP and future operating systems.) For complete driver implementation details, see the current Windows DDK documentation for streaming devices on MSDN.

Microsoft provides three class drivers, all of which broker interactions between the KS layer and the minidriver. These class drivers are clients of the upper KS layer, which provides a set of services in compliance with the Microsoft-defined WDM-CSA (Windows Driver Model Connection Streaming Architecture) kernel streaming specification.

AVStream is a class driver that provides support for both audio and video minidrivers, and some additional features not found in its predecessors. Use the AVStream services if you are implementing a new driver, or if your existing stream or port class-based minidriver could benefit from being ported to use AVStream. AVStream is an acronym for "Audio/Video Streaming."

Kernel Streaming 1.0 (KS1.0) refers to the Microsoft-supplied Port Class and Stream Class class drivers. These class drivers provide services to facilitate development of audio and video minidrivers.

KS provides mechanisms for drivers to report capabilities to the operating system. Clients written to run on top of the kernel streaming model can determine the multimedia capabilities of the current platform. Kernel streaming is part of the Windows Driver Model (WDM).

KS drivers can be both filter and functional drivers. The operating system can load filter drivers to transparently extend the multimedia capabilities of a platform.

The WDM Streaming architecture divides processing of data into basic "building-blocks" called filters. These filters serve as the atomic components in the system. Each filter's capability is partly described by a number of connection points called pin factories, from which pin instances can normally be created. Each pin instance can consume, produce, or both consume and produce a data stream, such as digital audio. More specialized tasks can be solved by connecting these filters together, via their pin instances, into a meta-topology. An example is connecting filters to play filtered and mixed audio.

The WDM Streaming architecture also provides mechanisms for querying filters and controlling filters (for example, getting the volume level, or starting playback). Specific implementation of these mechanisms, such as an interface to pass coefficients to a low-pass audio filter, are also provided and documented in the current Windows DDK.


Top of pageTop of page