Hi Vinpay,
I already tried the process that you said with the extension inf and normal inf file for copying the SwapAPO.dll. Both the inf files are successfully installed. In my Registry, I found the exact entries that you have posted with your screenshot. As I am the new user, it is not allowing me to upload the screenshot. My registry values are as below at location : Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\MMDevices\Audio\Render{429448d3-1ee9-40a3-885e-b60697daaaca}\FxProperties
{d04e05a6-594b-4fb6-a80d-01af5eed7d1d},6 = {A296D363-EE83-4af9-9BE7-729C1296150A}
To my knowledge, i think my registry have to show {d04e05a6-594b-4fb6-a80d-01af5eed7d1d},6 = {06687E71-F043-403A-BF49-CB591BA6E103} instead of {A296D363-EE83-4af9-9BE7-729C1296150A} , since {06687E71-F043-403A-BF49-CB591BA6E103} is the CLSID of my SwapAPO MFX. Could you please clarify on this?
I also monitored in the Procmon.exe but the swapapo.dll is not in the stack.
All I want to know is weather my bothinf files are correct or not. could you please go through them. The below are the inf files that i used for installation:
Extension inf:
——————–
[Version]
Signature = "$WINDOWS NT$"
Class = Extension
ClassGuid = {e2f84ce7-8efa-411c-aa69-97454ca4cb57}
Provider = %ProviderName%
ExtensionId = {1d641578-54d2-404d-85de-79bb01461ac2}
DriverVer = 02/22/2016,1.0.0.1
CatalogFile = swapapoparent.cat
PnpLockDown = 1
[Manufacturer]
%MfgName% = DeviceExtensions,NTAMD64
[DeviceExtensions.NT$ARCH$.10.0...22621]
%Device.ExtensionDesc% = DeviceExtension_Install, HDAUDIO\FUNC_01&VEN_10EC&DEV_0255&SUBSYS_102807A1
[DeviceExtension_Install]
[DeviceExtension_Install.HW]
AddReg = FriendlyName_AddReg
[FriendlyName_AddReg]
HKR,,FriendlyName,,%ExtendedFriendlyName%
[DeviceExtension_Install.Components]
AddComponent = SwapApo,,Apo_AddComponent
[Apo_AddComponent]
ComponentIDs = VEN_SMPL&CID_APO
Description = "Swap APO MFX Component"
[DeviceExtensions.I.APO]
AddReg = APO.I.Association0.AddReg
;======================================================
; APO per-interface registry
;======================================================
[APO.I.Association0.AddReg]
; Instruct audio endpoint builder to set the CLSIDs for stream, mode, and endpoint APOs
; into the effects property store
HKR,FX\0,%PKEY_FX_Association%,,%KSNODETYPE_ANY%
HKR,FX\0,%PKEY_FX_ModeEffectClsid%,,%SWAP_FX_MODE_CLSID%
;HKR,FX\0,%PKEY_CompositeFX_ModeEffectClsid%,,%SWAP_FX_MODE_CLSID%
; Driver developer would replace the list of supported processing modes here
; Concatenate GUIDs for DEFAULT, MEDIA, MOVIE stream effects
HKR,FX\0,%PKEY_MFX_ProcessingModes_Supported_For_Streaming%,%REG_MULTI_SZ%,%AUDIO_SIGNALPROCESSINGMODE_COMMUNICATIONS%
[DeviceExtensions.I.TopologyMicArray2]
AddReg=DeviceExtensions.I.TopologyMicArray2.AddReg
[DeviceExtensions.I.TopologyMicArray2.AddReg]
; Uncomment the following lines to mark the rear microphone array as a far field microphone.
;HKR,EP\1,%PKEY_AudioEndpoint_Association%,,%KSNODETYPE_ANY%
;HKR,EP\1,%PKEY_Devices_AudioDevice_Microphone_IsFarField%,0x00010001,0x1
HKR,FX\0,%PKEY_FX_Association%,,%KSNODETYPE_ANY%
[DeviceExtension_Install.Interfaces]
; Interfaces for speaker (internal) render endpoint.
AddInterface = %KSCATEGORY_AUDIO%, %KSNAME_TopologySpeaker%, DeviceExtensions.I.APO
AddInterface = %KSCATEGORY_TOPOLOGY%, %KSNAME_TopologySpeaker%, DeviceExtensions.I.APO
[Strings]
MfgName = "SWAP_APO Manufacturer"
ProviderName = "SWAP_APO Provider"
Device.ExtensionDesc = "Swap APO MFX Extension"
ExtendedFriendlyName = "Realtek Speaker with Swap APO MFX"
PKEY_FX_Association = "{D04E05A6-594B-4FB6-A80D-01AF5EED7D1D},0"
PKEY_FX_ModeEffectClsid = "{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},6"
PKEY_MFX_ProcessingModes_Supported_For_Streaming = "{D3993A3F-99C2-4402-B5EC-A92A0367664B},6"
PKEY_CompositeFX_ModeEffectClsid = "{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},14"
; Driver developers would replace these CLSIDs with those of their own APOs
SWAP_FX_MODE_CLSID = "{06687E71-F043-403A-BF49-CB591BA6E103}"
; ===== Kernel Streaming IDs =====
KSNODETYPE_ANY = "{00000000-0000-0000-0000-000000000000}"
KSNAME_TopologySpeaker = "TopologySpeaker"
KSCATEGORY_AUDIO = "{6994AD04-93EF-11D0-A3CC-00A0C9223196}"
KSCATEGORY_TOPOLOGY = "{DDA54A40-1E4C-11D1-A050-405705C10000}"
REG_MULTI_SZ = 0x00010000 ; FLG_ADDREG_TYPE_MULTI_SZ
AUDIO_SIGNALPROCESSINGMODE_COMMUNICATIONS = "{98951333-B9CD-48B1-A0A3-FF40682D73F7}"
———————————————————————————————————————————
APO inf :
————
[Version] ; Standard INF version section (required in all INFs)
Signature = "$WINDOWS NT$" ; Required magic string for Windows NT-family OSs
Class = AudioProcessingObject ; This is NOT a PnP device class like "Media", it's the APO class
ClassGuid = {5989fce8-9cd0-467d-8a6a-5419e31529d4} ; GUID that identifies the AudioProcessingObject class
Provider = %ProviderName%
DriverVer = 02/22/2016,1.0.0.1
CatalogFile = swapapo.cat ;Name of the .cat file that signs this INF
PnpLockDown = 1
[Manufacturer]
%MfgName% = ApoComponents,NTAMD64
;[ApoComponents.NT$ARCH$.10.0...22621]
[ApoComponents.NTamd64]
%Apo.ComponentDesc% = ApoComponent_Install,SWC\VEN_SMPL&CID_APO
;[ApoComponent_Install]
[ApoComponent_Install].NT]
CopyFiles = Apo_CopyFiles
AddReg = Apo_AddReg
[Apo_CopyFiles]
swapapo.dll
[Apo_AddReg]
; Swap Mode effect APO COM registration
HKR,Classes\CLSID%SWAP_FX_MODE_CLSID%,,,%MFX_FriendlyName%
HKR,Classes\CLSID%SWAP_FX_MODE_CLSID%\InProcServer32,,0x00020000,%13%\swapapo.dll
HKR,Classes\CLSID%SWAP_FX_MODE_CLSID%\InProcServer32,ThreadingModel,,"Both"
; Swap Mode effect APO registration
HKR,AudioEngine\AudioProcessingObjects%SWAP_FX_MODE_CLSID%, "FriendlyName", ,%MFX_FriendlyName%
HKR,AudioEngine\AudioProcessingObjects%SWAP_FX_MODE_CLSID%, "Copyright", ,%Copyright%
HKR,AudioEngine\AudioProcessingObjects%SWAP_FX_MODE_CLSID%, "MajorVersion", 0x00010001, 1
HKR,AudioEngine\AudioProcessingObjects%SWAP_FX_MODE_CLSID%, "MinorVersion", 0x00010001, 1
HKR,AudioEngine\AudioProcessingObjects%SWAP_FX_MODE_CLSID%, "Flags", 0x00010001, %APO_FLAG_DEFAULT%
HKR,AudioEngine\AudioProcessingObjects%SWAP_FX_MODE_CLSID%, "MinInputConnections", 0x00010001, 1
HKR,AudioEngine\AudioProcessingObjects%SWAP_FX_MODE_CLSID%, "MaxInputConnections", 0x00010001, 1
HKR,AudioEngine\AudioProcessingObjects%SWAP_FX_MODE_CLSID%, "MinOutputConnections", 0x00010001, 1
HKR,AudioEngine\AudioProcessingObjects%SWAP_FX_MODE_CLSID%, "MaxOutputConnections", 0x00010001, 1
HKR,AudioEngine\AudioProcessingObjects%SWAP_FX_MODE_CLSID%, "MaxInstances", 0x00010001, 0xffffffff
HKR,AudioEngine\AudioProcessingObjects%SWAP_FX_MODE_CLSID%, "NumAPOInterfaces", 0x00010001, 1
HKR,AudioEngine\AudioProcessingObjects%SWAP_FX_MODE_CLSID%, "APOInterface0", ,"{FD7F2B29-24D0-4B5C-B177-592C39F9CA10}"
[ApoComponent_Install.HW]
AddReg = FriendlyName_AddReg
[FriendlyName_AddReg]
HKR,,FriendlyName,,%Apo.ComponentDesc%
[ApoComponent_Install.Services]
AddService=,2 ; no function driver, install a null driver.
[SourceDisksNames]
1 = Disk
[SourceDisksFiles]
swapapo.dll = 1
[DestinationDirs]
Apo_CopyFiles = 13 ; 13=Package's DriverStore directory
[SignatureAttributes]
swapapo.dll = SignatureAttributes.PETrust
[SignatureAttributes.PETrust]
PETrust = true
[Strings]
MfgName = "SWAP_APO Manufacturer"
ProviderName = "SWAP_APO Provider"
Apo.ComponentDesc = "Audio Proxy APO Sample"
; CLSID of our Mode APO COM object
SWAP_FX_MODE_CLSID = "{06687E71-F043-403A-BF49-CB591BA6E103}"
; see audioenginebaseapo.idl for APO_FLAG enum values
APO_FLAG_DEFAULT = 0x0000000e
MFX_FriendlyName = "Audio Proxy APO Sample (mode effect)"
Copyright = "Sample"
—————————————————————————————————————————
I would greatly appreciate your confirmation on whether my INF files are correct or if any modifications are required to ensure my MFX is correctly bound and loaded by audiodg.exe.
Thank you very much for your time and guidance.
Best regards,
Surya.