KS minidriver architecture

Kernel streaming services support kernel-mode processing of streamed data. In this model, streaming data flows through a series of nodes that are grouped into blocks called filters. Each filter encapsulates some processing task to be performed upon the data. A KS filter is implemented as a kernel-mode DRIVER_OBJECT.

A KS filter appears through the proxy as a DirectShow filter in user mode. As such, the graph builder and user-mode applications can interact with KS filters. In an active graph, the kernel-mode components still communicate directly, eliminating resource-consuming transitions between user mode and kernel mode.

Data flows into and out of filters at connection points called pins. A pin instance renders or captures a data stream, such as digital audio.

A filter graph is a group of connected filters. A filter graph links multiple processing tasks to be performed on a stream. You can test various filter graph configurations by using the GraphEdit tool in the Microsoft Windows Driver Kit (WDK). For more information about, see the Filter Graph Editor tool website.

Drivers that support on-board clocks expose the clock as a file object. A minidriver can query the clock time, or alternatively request to be notified when the clock reaches a certain time.

A minidriver that supports a custom memory management interface exposes this interface as a file object known as an allocator. For example, a Device Manager that handles on-board memory might expose such an interface. A minidriver can then use the relevant file object to allocate and deallocate memory.

This section contains additional information about the following topics:

KS Filters

KS Pins

KS Data Formats and Data Ranges

KS Mediums

KS Interfaces

Quality Management