Matthew, thanks.
I've built the example SwapAPO.dll from Microsoft, and wanted to have
that as a starting point for my own APO.
I've modified the following "FxProperties" registry keys for my device
in order to "hack" into the audio pipeline:
{d04e05a6-594b-4fb6-a80d-01af5eed7d1d},5 {B48DEA3F-D962-425a-8D9A-9A5BB37A9904}
{d04e05a6-594b-4fb6-a80d-01af5eed7d1d},6 {06687E71-F043-403A-BF49-CB591BA6E103}
This is because the SwapAPO.dll source defines the above GUIDS for MFX and SFX:
https://github.com/microsoft/Windows-driver-samples/blob/master/audio/sysvad/APO/SwapAPO/SwapAPODll.idl
and Microsoft documentation:
https://docs.microsoft.com/en-us/windows-hardware/drivers/audio/pkey-fx-modeeffectclsid
https://docs.microsoft.com/en-us/windows-hardware/drivers/audio/pkey-fx-streameffectclsid
I've restarted the Windows audio process, and attached the debugger to
the audiodg.exe.
However, when I playback some audio, SwapAPO.dll is not loaded. What I
see loaded are:
C:\Program Files\EqualizerAPO\EqualizerAPO.dll
C:\Windows\System32\FMAPO64.dll
C:\Windows\System32\RltkAPOU64.dll
etc.
Have I modified the right registry keys?
Sorry for my ignorance, I am new to this.
Danijel
On Wed, Dec 16, 2020 at 7:33 PM Matthew van Eerde
<dmarc-noreply@xxxxxxxxxxxxx> wrote:
******************
APOs are expected to be loaded in two circumstances:
Audio streaming
Audio effect queries
APOs are loaded for streaming if one of the following property keys is set:
PKEY_SFX_ProcessingModes_Supported_For_Streaming
PKEY_MFX_ProcessingModes_Supported_For_Streaming
PKEY_EFX_ProcessingModes_Supported_For_Streaming
Otherwise, they are loaded only for effects queries; such an APO is called a
“proxy APO” because the actual processing is done elsewhere.
To debug the operation of an audio processing object, you would attach a
user-mode debugger to the audio device graph isolation process audiodg.exe.
From: Danijel Domazet
Sent: Wednesday, December 16, 2020 10:18 AM
To: wdmaudiodev@xxxxxxxxxxxxx
Subject: [EXTERNAL] [wdmaudiodev] Microsoft SYSVAD example audio driver: are
APOs active?
Hi list,
I installed Microsoft's SYSVAD example audio driver with APOs, but I
am not sure if the APOs are working.
(https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoft%2FWindows-driver-samples%2Ftree%2Fmaster%2Faudio%2Fsysvad&data=04%7C01%7CMatthew.van.Eerde%40microsoft.com%7Cdb03757360774baeeb9b08d8a1eed9b2%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637437395215006409%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C2000&sdata=R%2Bw9W71J45PfgH%2F%2FFrFv2EwEVnX1ZH2O9S%2BGvequWNM%3D&reserved=0)
I have done the steps as in the SYSVAD documentation:
- "devcon install ComponentizedAudioSample.inf
Root\Sysvad_ComponentizedAudioSample", and received a message "Drivers
installed successfully."
- Right clicked on ComponentizedAudioSampleExtension.inf and
"install". After some time a message box popped-up saying the install
was OK.
- Right clicked on ComponentizedApoSample.inf and "install". Waited,
but no pop-up message box appeared as in step 2, so I am not sure this
step finished successfully.
What I see in the Device Manager is:
- under Sound, video and game controllers: "SYSVAD (with APO Extensions)"
- under Software components: "Audio Proxy APO Sample"
- under Audio inputs and outputs: "Headphones (SYSVAD (with APO
extensions))", and other devices too with the similar name.
Is that all I should see?
I tried to check if all is working: I played back some audio, and
found the wav files were dropped at "C:\STREAM_HOST_*.wav", which
means the driver is working.
However, my goal is the APOs.
I don't see anywhere in the sound device properties any enable/disable
checkboxes for the APOs?
Is there a way to check if APO components are correctly installed and active?
I also set-up the WinDbg host-target PC debugging session, and managed
to break into the sysvad code, but only into TabletAudioSample.sys and
not into and of the APOs (SwapAPO.dll, KWSApo.dll, DelayAPO.dll).
Any help most appreciated,
Danijel Domazet
******************
WDMAUDIODEV addresses:
Post message: mailto:wdmaudiodev@xxxxxxxxxxxxx
Subscribe: mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=subscribe
Unsubscribe: mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=unsubscribe
Moderator: mailto:wdmaudiodev-moderators@xxxxxxxxxxxxx
URL to WDMAUDIODEV page:
https://nam06.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.wdmaudiodev.com%2F&data=04%7C01%7CMatthew.van.Eerde%40microsoft.com%7Cdb03757360774baeeb9b08d8a1eed9b2%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637437395215006409%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C2000&sdata=qJqMlcCNsThWZwUtGurMYTw3QQpf8JL1R2LjLC%2BOgtk%3D&reserved=0