Audio Topology Nodes

The WDM audio driver framework defines a standard set of topology nodes for audio devices. A miniport driver describes the device's audio topology by specifying a set of nodes and the connections between the nodes. The SysAudio system driver uses this information to construct the audio filter graphs that it presents to client applications.

Each data path in the topology begins or ends at a pin and passes through some number of nodes, which can be thought of as beads strung along the data path. Each node in the data path is identified by a node ID (essentially an index) that uniquely identifies that node within the data path. Two pin instances could have nodes with the same ID, but the combination of pin instance and node ID uniquely identifies each node within the audio topology.

A topology node supports a set of node properties. Node properties differ from pin properties by the inclusion of a node ID identifying the internal node that the property belongs to. To send a get- or set-property request to a particular node, the client specifies the target node ID in addition to the target pin instance. When the pin's property handler receives the request, it looks at the node ID and directs the request to the handler for that node.

The following list contains the more commonly used audio topology node types:

KSNODETYPE_3D_EFFECTS

KSNODETYPE_ACOUSTIC_ECHO_CANCEL

KSNODETYPE_ADC

KSNODETYPE_AGC

KSNODETYPE_AUDIO_ENGINE

KSNODETYPE_AUDIO_KEYWORDDETECTOR

KSNODETYPE_CHORUS

KSNODETYPE_DAC

KSNODETYPE_DELAY

KSNODETYPE_DEMUX

KSNODETYPE_DEV_SPECIFIC

KSNODETYPE_DMSYNTH

KSNODETYPE_DMSYNTH_CAPS

KSNODETYPE_DRM_DESCRAMBLE

KSNODETYPE_EQUALIZER

KSNODETYPE_FM_RX

KSNODETYPE_LOUDNESS

KSNODETYPE_MICROPHONE_ARRAY_PROCESSOR

KSNODETYPE_MUTE

KSNODETYPE_MUX

KSNODETYPE_NOISE_SUPPRESS

KSNODETYPE_PEAKMETER

KSNODETYPE_PROLOGIC_DECODER

KSNODETYPE_PROLOGIC_ENCODER

KSNODETYPE_REVERB

KSNODETYPE_SRC

KSNODETYPE_STEREO_ENHANCE

KSNODETYPE_STEREO_WIDE

KSNODETYPE_SUM

KSNODETYPE_SUPERMIX

KSNODETYPE_SWMIDI

KSNODETYPE_SWSYNTH

KSNODETYPE_SYNTHESIZER

KSNODETYPE_TELEPHONY_BIDI

KSNODETYPE_TONE

KSNODETYPE_VOLUME