[wdmaudiodev] Re: SFX, MFX, EFX

  • From: Matthew van Eerde <Matthew.van.Eerde@xxxxxxxxxxxxx>
  • To: "wdmaudiodev@xxxxxxxxxxxxx" <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Thu, 15 May 2014 16:24:21 +0000

OK, here we go.

There are two changes you need to make from the C++ default project 
configuration to successfully deploy an APO.


1.       Right-click your APO .dll project (e.g., SwapAPO) | Properties | 
Configuration Properties | C/C++ | Code Generation

Change "Runtime Library" from the default of /MD for release builds or /MDd for 
debug builds, to /MT for release builds or /MTd for debug builds. For details 
see http://msdn.microsoft.com/en-us/library/2kzt1wy3.aspx but the basic idea is 
that as part of a driver it is difficult to redistribute the MSVCRT<n>.dll 
binary, so you need to statically link libcmt.dll.
The sample SwapAPO already has this change.

2.       Right-click your APO .dll project (e.g., SwapAPO) | Properties | 
Configuration Properties | Manifest Tool | Input and Output
Change "Embed Manifest" from the default of "Yes" to "No". If you have an 
embedded manifest, this triggers the use of certain APIs which are forbidden 
within a protected environment. Your APO will run just fine with 
DisableProtectedAudioDG=1, but as soon as that key is removed, your APO will 
fail to load, even if it is WHQL-signed.
The sample SwapAPO does not have this change; this is a bug in the sample. 
We're working on fixing it.





Other related posts: