KS Minidriver Architecture

04/20/2017

2 minutes to read

Contributors

In this article

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 GraphEdit, see the Filter Graph Editor tool website.)

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:

The feedback system for this content will be changing soon. Old comments will not be carried over. If content within a comment thread is important to you, please save a copy. For more information on the upcoming change, we invite you to read our blog post.