Virtual Audio Devices
Virtual audio devices represent the filter graphs that render and capture audio content. The system audio driver (SysAudio) uses the available hardware and software components to determine the filter graphs to build.
For more information about the system audio driver, see SysAudio System Driver.
SysAudio's clients include DirectSound and the WDMAud system driver, which serves as the interface between WDM audio drivers and the audio-specific Microsoft Windows Multimedia APIs waveIn, waveOut, midiIn, midiOut, mixer, and aux (described in Microsoft Windows SDK documentation).
The KsStudio utility in the Windows Driver Kit (WDK) is an example of an application that bypasses SysAudio and allows users to construct filter graphs manually.
Following PnP device enumeration, SysAudio takes stock of the registered audio hardware and software components in order to determine how to construct the various audio filter graphs that its clients might require.
After determining the list of filter graphs that it can build from the available hardware and software components, SysAudio registers these graphs as virtual audio devices for playback, recording, MIDI input/output, and mixing. SysAudio reserves the registry category KSCATEGORY_AUDIO_DEVICE exclusively for its virtual audio devices. Adapter drivers should not register themselves in this category.
A SysAudio client can treat a filter factory for a virtual audio device similarly to a filter factory for a hardware or software component. When asked by a client to instantiate a particular pin on a virtual device, SysAudio constructs the graph automatically and manages the graph's internal pin connections transparently to the client. This allows the client to treat a filter graph as a single filter, thereby avoiding complexities of graph management such as inter-filter communication.