Got it working, thanks!
Question a bit aside, but about APO :)
Is it possible for EFX APO to get 7.1 channels even if endpoint
supports only 2? Lets suppose we do custom downmixing. So all SFX &
MFX should process 7.1.
regards,
Artem
On Mon, 26 Aug 2019 at 18:18, Matthew van Eerde
<dmarc-noreply@xxxxxxxxxxxxx> wrote:
******************
The USB Audio 1.0 class driver is being chosen instead of your driver, so
your .inf registry sections are not being applied. Try test-signing your
driver and turning on test signing on your test machine.
dvi: Section - TestAudio.SysFx
dvi: Rank - 0x80ff0001
dvi: Signer Score - Not digitally signed
…
dvi: Selected Driver:
dvi: Description - USB Audio Device
dvi: InfFile -
c:\windows\system32\driverstore\filerepository\wdma_usb.inf_amd64_24878b5de6e6eaa8\wdma_usb.inf
________________________________
From: wdmaudiodev-bounce@xxxxxxxxxxxxx <wdmaudiodev-bounce@xxxxxxxxxxxxx> on
behalf of Artem <smirnoff.artem@xxxxxxxxx>
Sent: Monday, August 26, 2019 12:44:40 AM
To: wdmaudiodev@xxxxxxxxxxxxx <wdmaudiodev@xxxxxxxxxxxxx>
Subject: [wdmaudiodev] APO not registered for endpoint by Inf file
Hi!
I made a custom APO and trying to get it loaded along with standard
USB audio device, in my case it is Jabra headset
(USB\VID_0B0E&PID_0300&MI_00).
I can manually populate the registry, restart audio and get APO
loaded, but struggling to do the same with Inf file (official way).
Testsigning is ON, audio protected DG is OFF, OS is Windows 10 x64.
Any help is greatly appreciated! Here is my Inf file, probably I'm
doing something wrong here:
---
[Version]
Signature="$Windows NT$"
Class=MEDIA
ClassGUID={4d36e96c-e325-11ce-bfc1-08002be10318}
provider=%ProviderName%
DriverVer=08/23/2019,100.0.0.1
CatalogFile = CustomAPO.cat
[SourceDisksNames]
222=%DiskDescription%,,,
[SourceDisksFiles]
CustomAPO.dll=222
[DestinationDirs]
; %windir%\system32
SfxFx.CopyList=11
[Manufacturer]
%MfgName%=MfgModelSection,NTAMD64
[MfgModelSection.NTAMD64]
%TestHeadphones.DeviceDesc%=TestAudio.SysFx,USB\VID_0B0E&PID_0300&MI_00
[TestAudio.SysFx]
Include = ks.inf, wdmaudio.inf, wdma_usb.inf
Needs = KS.Registration, WDMAUDIO.Registration, USBAudioOEM.CopyFiles,
USBAudioOEM.AddReg
CopyFiles = SfxFx.CopyList
AddReg = SfxFx.COM.AddReg
[TestAudio.SysFx.HW]
;wdma_usb.inf doesn't have a .HW section
[TestAudio.SysFx.Interfaces]
AddInterface=%KSCATEGORY_AUDIO%,"GLOBAL",TestAudio.SysFx.PrimaryHeadphonesWave
AddInterface=%KSCATEGORY_RENDER%,"GLOBAL",TestAudio.SysFx.PrimaryHeadphonesWave
AddInterface=%KSCATEGORY_AUDIO%,"GLOBAL",TestAudio.SysFx.PrimaryHeadphonesTopo
AddInterface=%KSCATEGORY_TOPOLOGY%,"GLOBAL",TestAudio.SysFx.PrimaryHeadphonesTopo
[TestAudio.SysFx.PrimaryHeadphonesWave]
AddReg=TestAudio.SysFx.PrimaryHeadphonesWave.AddReg
[TestAudio.SysFx.PrimaryHeadphonesWave.AddReg]
HKR,,FriendlyName,,%PrimarySpeakersWaveDeviceName%
HKR,,CLSID,,%Proxy.CLSID%
[TestAudio.SysFx.PrimaryHeadphonesTopo]
AddReg=TestAudio.PrimaryHeadphonesTopo.AddReg,SysFx.AddReg
[TestAudio.PrimaryHeadphonesTopo.AddReg]
HKR,,FriendlyName,,%PrimarySpeakersTopoDeviceName%
HKR,,CLSID,,%Proxy.CLSID%
; This pin category should be the same as of USB audio device inserted
;HKR,"EP\\0",%PKEY_AudioEndpoint_Association%,,%KSNODETYPE_SPEAKER%
HKR,"EP\\0",%PKEY_AudioEndpoint_Association%,,%KSNODETYPE_COMMUNICATION_SPEAKER%
[TestAudio.SysFx.Services]
Include = wdma_usb.inf
Needs = USBAudio.NT.Services
[SfxFx.COM.AddReg]
; APO COM registration
HKCR,CLSID\%CUSTOM_APO_CLSID%,,,%SYSFX_FriendlyName%
HKCR,CLSID\%CUSTOM_APO_CLSID%\InProcServer32,,,%11%\CustomAPO.dll
HKCR,CLSID\%CUSTOM_APO_CLSID%\InProcServer32,ThreadingModel,,"Both"
[SysFx.AddReg]
;; wdma_usb.inf does it
HKR,"EP\\0",%PKEY_AudioEndpoint_Association%,,%KSNODETYPE_ANY%
HKR,"FX\\0",%PKEY_ItemNameDisplay%,,%SYSFX_FriendlyName%
;; Note: We have to associate with a specific node type here (ie. not
;; use KSNODETYPE_ANY) or else the MSFX entries in wdma_usb.inf will
;; override our entries here.
;HKR,"FX\\0",%PKEY_SYSFX_Association%,,%KSNODETYPE_SPEAKER%
HKR,"FX\\0",%PKEY_SYSFX_Association%,,%KSNODETYPE_COMMUNICATION_SPEAKER%
HKR,"FX\\0",%PKEY_SYSFX_EndpointEffectClsid%,,%CUSTOM_APO_CLSID%
HKR,"FX\\0",%PKEY_EFX_ProcessingModes_Supported_For_Streaming%,0x00010000,%AUDIO_SIGNALPROCESSINGMODE_DEFAULT%
[SfxFx.CopyList]
CustomAPO.dll,,,0x0100
[Strings]
ProviderName="Custom provider"
MfgName="Custom mfg"
DiskDescription="Custom Installation Media"
TestHeadphones.DeviceDesc = "USB headphones with custom processing"
PrimarySpeakersWaveDeviceName ="USB headset"
PrimarySpeakersTopoDeviceName ="USB headset topo"
PKEY_SYSFX_Association = "{D04E05A6-594B-4FB6-A80D-01AF5EED7D1D},0"
PKEY_ItemNameDisplay = "{B725F130-47EF-101A-A5F1-02608C9EEBAC},10"
PKEY_SYSFX_StreamEffectClsid = "{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},5"
PKEY_SYSFX_ModeEffectClsid = "{d04e05a6-594b-4fb6-a80d-01af5eed7d1d},6"
PKEY_SYSFX_EndpointEffectClsid = "{d04e05a6-594b-4fb6-a80d-01af5eed7d1d},7"
PKEY_SFX_ProcessingModes_Supported_For_Streaming="{D3993A3F-99C2-4402-B5EC-A92A0367664B},5"
PKEY_MFX_ProcessingModes_Supported_For_Streaming="{D3993A3F-99C2-4402-B5EC-A92A0367664B},6"
PKEY_EFX_ProcessingModes_Supported_For_Streaming="{D3993A3F-99C2-4402-B5EC-A92A0367664B},7"
AUDIO_SIGNALPROCESSINGMODE_DEFAULT = "{C18E2F7E-933D-4965-B7D1-1EEF228D2AF3}"
CUSTOM_APO_CLSID= "{6325E3DA-92DE-443D-829D-83F855137411}"
SYSFX_FriendlyName = "Custom processing"
PKEY_AudioEndpoint_Association = "{1DA5D803-D492-4EDD-8C23-E0C0FFEE7F0E},2"
Proxy.CLSID = "{17CCA71B-ECD7-11D0-B908-00A0C9223196}"
KSNODETYPE_ANY = "{00000000-0000-0000-0000-000000000000}"
KSCATEGORY_AUDIO = "{6994AD04-93EF-11D0-A3CC-00A0C9223196}"
KSCATEGORY_RENDER = "{65E8773E-8F56-11D0-A3B9-00A0C9223196}"
KSCATEGORY_REALTIME = "{EB115FFC-10C8-4964-831D-6DCB02E6F23F}"
KSCATEGORY_TOPOLOGY = "{DDA54A40-1E4C-11D1-A050-405705C10000}"
KSNODETYPE_SPEAKER = "{DFF21CE1-F70F-11D0-B917-00A0C9223196}"
KSNODETYPE_HEADPHONES = "{DFF21CE2-F70F-11D0-B917-00A0C9223196}"
KSNODETYPE_COMMUNICATION_SPEAKER = "{DFF21CE6-F70F-11D0-B917-00A0C9223196}"
---
And setupapi log:
---
dvi: {Build Driver List} 10:05:25.818Section start 2019/08/26 10:05:25.703
dvi: Searching for hardware ID(s):
dvi: usb\vid_0b0e&pid_0300&rev_0300&mi_00
dvi: usb\vid_0b0e&pid_0300&mi_00
dvi: Searching for compatible ID(s):
dvi: usb\class_01&subclass_01&prot_00
dvi: usb\class_01&subclass_01
dvi: usb\class_01
dvi: Created Driver Node:
dvi: HardwareID - USB\CLASS_01
dvi: InfName -
C:\WINDOWS\System32\DriverStore\FileRepository\wdma_usb.inf_amd64_24878b5de6e6eaa8\wdma_usb.inf
dvi: DevDesc - USB Audio Device
dvi: Section - USBAudio
dvi: Rank - 0x00ff2002
dvi: Signer Score - INBOX
dvi: DrvDate - 09/14/2018
dvi: Version - 10.0.17763.1
dvi: Created Driver Node:
dvi: HardwareID - USB\VID_0B0E&PID_0300&MI_00
dvi: InfName -
C:\WINDOWS\System32\DriverStore\FileRepository\usbaudio_customapo.inf_amd64_4c52613bc39db3c8\usbaudio_customapo.inf
dvi: DevDesc - USB headphones with custom processing
dvi: Section - TestAudio.SysFx
dvi: Rank - 0x80ff0001
dvi: Signer Score - Not digitally signed
dvi: DrvDate - 08/23/2019
dvi: Version - 100.0.0.1
dvi: {Build Driver List - exit(0x00000000)} 10:05:25.870
dvi: {DIF_SELECTBESTCOMPATDRV} 10:05:25.870
dvi: Using exported function 'MediaClassInstaller' in module
'C:\WINDOWS\system32\mmci.dll'.
dvi: Class installer == mmci.dll,MediaClassInstaller
dvi: Class installer: Enter 10:05:25.894
dvi: Class installer: Exit
dvi: Default installer: Enter 10:05:25.895
dvi: {Select Best Driver}
dvi: Class GUID of device changed to:
{4d36e96c-e325-11ce-bfc1-08002be10318}.
dvi: {DIF_DESTROYPRIVATEDATA} 10:05:25.896
dvi: Class installer: Enter 10:05:25.896
dvi: Class installer: Exit
dvi: Default installer: Enter 10:05:25.897
dvi: Default installer: Exit
dvi: {DIF_DESTROYPRIVATEDATA - exit(0xe000020e)}
10:05:25.897
dvi: Selected Driver:
dvi: Description - USB Audio Device
dvi: InfFile -
c:\windows\system32\driverstore\filerepository\wdma_usb.inf_amd64_24878b5de6e6eaa8\wdma_usb.inf
dvi: Section - USBAudio
dvi: {Select Best Driver - exit(0x00000000)}
---
Thanks in advance,
regards,
Artem
******************
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=02%7C01%7CMatthew.van.Eerde%40microsoft.com%7Cd40bc035d1844c8dafcb08d729f95c94%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637024023291407342&sdata=mZlgV%2F5ZHrXkehurdSD5QfbORHyYSAztfJIB4WJmWrQ%3D&reserved=0