[wdmaudiodev] Re: SFX, MFX, EFX

  • From: "Leonard Shoell" <lshoell@xxxxxxxxxxxxxxxxx>
  • To: <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Wed, 14 May 2014 14:21:56 -0600

In order to make these changes for 8.1, I've updated to build the APOs with
Visual Studio 2013 updated with WDK 8.1, instead of building with WDK 7.1.
Without any changes to the code, it builds and runs on Win 7. However, on
8.1 Windows will not load the APO.

 

Even after making the changes for SFX/MFX, they still do not load on 8.1,
but load on 7.

 

I've experimented with lots of things, but still cannot get 8.1 to load the
APOs. But, if I build with WDK 7.1, they load with no issues on 8.1.

 

Any ideas? Is 8.1 looking for something I'm not supporting when I build with
WDK 8.1?

 

Leonard

 

From: wdmaudiodev-bounce@xxxxxxxxxxxxx
[mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of Matthew van Eerde
Sent: Friday, May 9, 2014 3:01 PM
To: wdmaudiodev@xxxxxxxxxxxxx
Subject: [wdmaudiodev] Re: SFX, MFX, EFX

 

You can have a single .inf  + .dll + .sys that work on both Windows
8.1-and-later and Windows 8.0-and-earlier.

 

.inf:

Include PKEY_FX_PreMixCLSID and PKEY_FX_PostMixCLSID. Windows 8.0 and before
will use these.

Also include the correct combination of
PKEY_FX_(Stream|Mode|Endpoint)EffectClsId and
PKEY_(SFX|MFX|EFX)_ProcessingModes_Supported_For_Streaming. Windows 8.1 and
later will use these.

 

APO:

Accept both an APOInitSystemEffects and an APOInitSystemEffects2. You can
expect to receive only an APOInitSystemEffects on Windows 8.0 and before,
and only an APOInitSystemEffects2 on Windows 8.1 and later.

Implement IAudioSystemEffects2. You will only ever be QI'd for this on
Windows 8.1 and later, and then only when an app queries the list of active
audio effects.

 

It is also important to confirm that the .sys you're packaged with supports
KSPROPERTY_AUDIOSIGNALPROCESSING_MODES. The inbox drivers were all updated:
(hdaudio.sys, usbaudio.sys, btha2dp.sys, bthhfaud.sys.)

 

You can manually stimulate the IAudioSystemEffects2 path by using the HLK
test, or by using the "Audio effects discovery" sample from the SDK:

 

http://code.msdn.microsoft.com/windowsapps/Audio-effects-discovery-5fd65c15

 

Other related posts: