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 group of connected filters comprises a filter graph. A 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 Windows DDK. (For more information on GraphEdit, see the Filter Graph Editor tool Web site.)
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 on the following topics:
KS Data Formats and Data Ranges