Virtual Audio Cable (VAC)
20+ years of experience. Connects audio apps together since 1998.
The "Listen" feature does not change target endpoint on default endpoint change
If a default playback endpoint is selected as a target for the "Listen" feature, and default playback endpoint is changed, target playback endpoint is not changed, and audio stream is still transferred to the same target endpoint.
Systems affected: Windows 10/1903, Windows 10/1909, maybe later versions too.
System Audio Engine does not open a capture pin if instance count is nonzero
If a KS/WDM driver reports that there are available capture pin instances (KSPROPERTY_PIN_GLOBALCINSTANCES property request returns PossibleCount greater than CurrentCount), System Audio Engine does not create a pin instance if CurrentCount is nonzero.
In accordance with Microsoft documentation, PossibleCount values greater than CurrentCount mean that there are available pin instances, and the driver will satisfy a stream creation request.
Microsoft developers explain this Audio Engine behavior by the desire to avoid possible problems with multiplexed pins.
In VAC 4.70, a workaround was added for this bug.
Systems affected: All systems from Windows Vista.
Channel peak values are not processed properly
Channel peak values (IAudioMeterInformation::GetChannelsPeakValues) may not be returned, and live peak indicators may not be shown in audio endpoint property windows even if the driver supports KSPROPERTY_AUDIO_PEAKMETER2 property request.
This bug occurs if the driver supports KSPROPERTY_AUDIO_PEAKMETER2 property request and supports more than two audio channels. The basic KSPROPERTY_AUDIO_PEAKMETER request is processed properly regardless of number of channels supported. If the driver supports both KSPROPERTY_AUDIO_PEAKMETER and KSPROPERTY_AUDIO_PEAKMETER2, systems starting from WIndows 8 use KSPROPERTY_AUDIO_PEAKMETER2.
Systems affected: Windows 10 from 1803.
The "Levels" tab of audio properties window crashes if the filter supports more than 8 channels
In playback endpoint properties, opening the "Levels" tab may crash the property window if the appropriate filter supports more than 8 audio channels.
Systems affected: All systems starting from Windows Vista.
RT Audio buffer created by a KS/WDM driver is much larger than requested
If an audio client requests a circular buffer in RT Audio protocol from a KS/WDM driver, the driver may return much larger buffer. For example, if 1920-byte buffer is requested, 4096 byte-buffer is returned. If 5760-byte buffer is requested, 8192-byte buffer is returned.
The problem affects all PortCls miniport drivers if a simple circular buffer without notifications is requested (KSPROPERTY_RTAUDIO_BUFFER property request). In such case, PortCls forcibly rounds the requested buffer size up to a multiple of a page size (4096 bytes). This leads to increased latency.
If the client requests a buffer with notifications (KSPROPERTY_RTAUDIO_BUFFER_WITH_NOTIFICATION property request), no size adjustment is performed by PortCls (but the driver itself may adjust buffer size as well).
Systems affected: All systems from Windows Vista.
System audio services send KSPROPERTY_PIN_PROPOSEDATAFORMAT requests with invalid parameters
System audio services that use MMDevAPI.dll may send many KSPROPERTY_PIN_PROPOSEDATAFORMAT property requests with invalid parameters passed in KSDATAFORMAT descriptor. Audio drivers that carefully check all the parameters, fail all these requests. Drivers that don't check all the parameters, may misbehave or even crash.
In most cases, invalid FormatSize, and arbitrary Flags and SampleSize values are provided. In the Flags, arbitrary values often contain KSDATAFORMAT_ATTRIBUTES flag, causing the driver to interpret the data beyond the KSDATAFORMAT descriptor as a format attribute list.
Such errors often occur with multi-channel (having more than two channels) formats. VAC driver event log may contain records marked with "*" that indicates an error, and containing words "attribute" or "KSDATAFORMAT".
As a workaround, VAC driver supports format attribute policies.
Systems affected: All systems from Windows Vista.