[wdmaudiodev] SysFx : capture path installation problem for sAPO.

  • From: "Nagarathnam, Venkataraman" <Venkataraman.Nagarathnam@xxxxxxxxxxx>
  • To: <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Mon, 20 Aug 2007 00:10:32 -0700

Hi,        

 

            I have installed the sample sAPO provided by Microsoft using
sysFx.inf and it has successfully installed

In the render path. Next I tried doing the same in capture path too so
that the entire path will be complete so that

We can do some modifications like AEC etc. The problem is that the LFX
on the capture path is not getting installed.

Meaning, as the sysFx.doc says, the entries in the following registry
path :

 

"HKLM\SYSTEM\ControlSet001\Control\Deviceclasses\6994AD04-93EF-11D0-A3CC
-00A0C9223196 \FX\0"

 

Is not getting migrated to the following path in the registry :

 

"HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\MMDevices\Audio\Capture\
Endpoint\FxProperties"

 

The modified version of the sysFx.inf file is as pasted below. The ones
in bold is the changes I made for the capture path :

 

[Version]

Signature="$Windows NT$"

Class=MEDIA

ClassGUID={4d36e96c-e325-11ce-bfc1-08002be10318}

provider=%ProviderName%

CatalogFile=SysFxSample.cat

DriverVer=02/08/2007,6.00.2246.1

 

[SourceDisksNames]

222=%DiskDescription%,,,

 

[SourceDisksFiles]

SwapAPO.dll=222

PropPageExt.dll=222

 

[DestinationDirs]

SfxFx.CopyList=11     ; %windir%\system32

 

[Manufacturer]

%MfgName%=MfgModelSection, ntx86, ntia64, ntamd64

 

;; Excluding drivers from the "Add New Hardware" list.  Uncomment this
when shipping your product.

;; [ControlFlags]

;; ExcludeFromSelect = *

 

[MfgModelSection.NTx86]

%HdAudioFunctionDriver.CMedia9880.DeviceDesc%=HDAudio.SysFx,HDAUDIO\FUNC
_01&VEN_434D&DEV_4980

 

[MfgModelSection.NTia64]

%HdAudioFunctionDriver.CMedia9880.DeviceDesc%=HDAudio.SysFx,HDAUDIO\FUNC
_01&VEN_434D&DEV_4980

 

[MfgModelSection.NTamd64]

%HdAudioFunctionDriver.CMedia9880.DeviceDesc%=HDAudio.SysFx,HDAUDIO\FUNC
_01&VEN_434D&DEV_4980

 

;;

;;  Include/Need sections from OS installed hdaudio.inf file

;;

[HDAudio.SysFx]

Include=ks.inf, wdmaudio.inf, hdaudio.inf

Needs=KS.Registration, WDMAUDIO.Registration, HdAudOEM.CopyFiles,
HdAudOEM.AddReg

CopyFiles=SfxFx.CopyList

AddProperty=OEMCustomBranding.AddProperty

RegisterDlls=SfxFx.RegisterDlls

 

 

[OEMCustomBranding.AddProperty]

;;

;; PKEY_DriverPackage_BrandingIcon, could also use
{CF73BB51-3ABF-44A2-85E0-9A3DC7A12132},7,,,"PropPageExt.dll,-200"

;;

DeviceBrandingIcon,,,,"%1%\PropPageExt.dll,-200" 

 

;;

;; PKEY_DrvPkg_VendorWebSite, could also use
{CF73BB51-3ABF-44A2-85E0-9A3DC7A12132},3,,,"http://www.microsoft.com/whd
c/device/audio/default.mspx"

;;

DeviceVendorWebSite,,,,"http://www.xyz.com"; ; Place your URL here

 

 

;;

;;  Include/Need sections from OS installed hdaudio.inf file

;;

[HDAudio.SysFx.HW]

Include=hdaudio.inf

Needs=HdAudModel.HW

 

 

[HDAudio.SysFx.Interfaces]

AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eLineOutWave%,
HDAudio.SysFx.PrimaryLineOutWave

AddInterface=%KSCATEGORY_RENDER%,%KSNAME_eLineOutWave%,
HDAudio.SysFx.PrimaryLineOutWave

AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eLineOutTopo%,
HDAudio.SysFx.PrimaryLineOutTopo

AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_eLineOutTopo%,
HDAudio.SysFx.PrimaryLineOutTopo

 

AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eMicInWave%,
HDAudio.SysFx.PrimaryMicInWave

AddInterface=%KSCATEGORY_CAPTURE%,%KSNAME_eMicInWave%,
HDAudio.SysFx.PrimaryMicInWave

AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eMicInTopo%,
HDAudio.SysFx.PrimaryMicInTopo

AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_eMicInTopo%,
HDAudio.SysFx.PrimaryMicInTopo

 

[HDAudio.SysFx.PrimaryLineOutWave]

AddReg = HDAudio.SysFx.PrimaryLineOutWave.AddReg

 

[HDAudio.SysFx.PrimaryLineOutWave.AddReg]

HKR,,FriendlyName,,%PrimarySpeakerWaveDeviceName%

HKR,,CLSID,,%Proxy.CLSID%

 

[HDAudio.SysFx.PrimaryLineOutTopo]

AddReg = HDAudio.SysFx.PrimaryLineOutTopo.AddReg, SysFx.AddReg,
OEMSettingsOverride.AddReg

 

[HdAudModel.PrimaryLineOutTopo.AddReg]

HKR,,FriendlyName,,%PrimarySpeakerTopoDeviceName%

HKR,,CLSID,,%Proxy.CLSID%

 

[HDAudio.SysFx.PrimaryMicInWave]

AddReg = HDAudio.SysFx.PrimaryMicInWave.AddReg

 

[HDAudio.SysFx.PrimaryMicInWave.AddReg]

HKR,,FriendlyName,,%PrimaryMicWaveDeviceName%

HKR,,CLSID,,%Proxy.CLSID%

 

 

[HDAudio.SysFx.PrimaryMicInTopo] 

AddReg = HDAudio.SysFx.PrimaryMicInTopo.AddReg, SysFx1.AddReg,
OEMSettingsOverride1.AddReg

 

 

[HdAudModel.PrimaryMicInTopo.AddReg]

HKR,,FriendlyName,,%PrimaryMicInTopoDeviceName%

HKR,,CLSID,,%Proxy.CLSID%

 

 

[HDAudio.SysFx.Services]

Include=hdaudio.inf

Needs=HdAudModel.Services

 

;;

;; All FX\\0 entries in the same grouping

;;

[SysFx.AddReg]

HKR,"FX\\0",%PKEY_ItemNameDisplay%,,%SYSFX_FriendlyName%

HKR,"FX\\0",%PKEY_SYSFX_PreMixClsid%,,%SYSFX_PREMIX_CLSID%

HKR,"FX\\0",%PKEY_SYSFX_PostMixClsid%,,%SYSFX_POSTMIX_CLSID%

HKR,"FX\\0",%PKEY_SYSFX_UiClsid%,,%SYSFX_UI_CLSID%

HKR,"FX\\0",%PKEY_SYSFX_Association%,,%KSNODETYPE_ANY%  ; GUID NULL
means install on all endpoints

; supply a specific GUID to install on a particular bridge pin node type

 

[SysFx1.AddReg]

HKR,"FX\\0",%PKEY_SYSFX_CAPTURE_LFX_CLSID%,,%SYSFX_CAPTURE_LFX_CLSID%

HKR,"FX\\0",%PKEY_SYSFX_UiClsid%,,%SYSFX_UI_CLSID%

HKR,"FX\\0",%PKEY_SYSFX_Association%,,%KSNODETYPE_MICROPHONE%  ; GUID
NULL means install on all endpoints

HKR,"FX\\0",%PKEY_FX_ID%,,"MicIn"

HKR,"FX\\0",%PKEY_FX_FriendlyName%,,%SYSFX_FriendlyName%

 

;;

;; All EP\\0 entries in the same grouping

;;

;; Set default format to 48kHz, 16-bit, Stereo

;; Add endpoint extension property page

;;

[OEMSettingsOverride.AddReg]

HKR,"EP\\0", %PKEY_AudioEndpoint_Association%,,%KSNODETYPE_SPEAKER%

HKR,"EP\\0", %PKEY_AudioEngine_OEMFormat%, %REG_BINARY%,
41,00,8C,70,28,00,00,00,FE,FF,02,00,80,BB,00,00,00,EE,02,00,04,00,10,00,
16,00,10,00,03,00,00,00,01,00,00,00,00,00,10,00,80,00,00,AA,00,38,9B,71

HKR,"EP\\0",
%PKEY_AudioEndpoint_Ext_UiClsid%,,%AUDIOENDPOINT_EXT_UI_CLSID%

 

 

[OEMSettingsOverride1.AddReg]

HKR,"EP\\0", %PKEY_AudioEndpoint_Association%,,%KSNODETYPE_MICROPHONE%

HKR,"EP\\0", %PKEY_AudioEngine_OEMFormat%, %REG_BINARY%,
41,00,8C,70,28,00,00,00,FE,FF,02,00,80,BB,00,00,00,EE,02,00,04,00,10,00,
16,00,10,00,03,00,00,00,01,00,00,00,00,00,10,00,80,00,00,AA,00,38,9B,71

HKR,"EP\\0",
%PKEY_AudioEndpoint_Ext_UiClsid%,,%AUDIOENDPOINT_EXT_UI_CLSID%

 

 

;;

;; Copy custom SYSFX and property page

;;

[SfxFx.CopyList]

SwapAPO.dll,,,0x0100

PropPageExt.dll,,,0x0100 

 

;;

;; Register custom SYSFX and property page

;;

[SfxFx.RegisterDlls]

11,,SwapAPO.dll,1

11,,PropPageExt.dll,1 

 

 

[Strings]

ProviderName="xyz"

MfgName="xyz"

DiskDescription="Sample Installation Media"

HdAudioFunctionDriver.CMedia9880.DeviceDesc = "xyz 13thAug07-13:11 -
CMedia 9880 HD Audio Codec with Swap System Effect"

 

;;

;; These are the strings passed to PcRegisterSubdevice for wave ports

;;

KSNAME_eLineOutWave = "eLineOutWave"

KSNAME_eLineOutTopo = "eLineOutTopo"

;;KSNAME_eMicInWave   = "eMicInWave" 

;;KSNAME_eMicInTopo   = "eMicInTopo"

 

KSNAME_eMicInWave   = "MicInWave" 

KSNAME_eMicInTopo   = "MicInTopology"

 

;;

;; These are the name strings for the wave miniports displayed in
mmsys.cpl

;;

PrimarySpeakerWaveDeviceName  = "HD Audio Speaker"

PrimarySpeakerTopoDeviceName  = "HD Audio Speaker mixer"

PrimaryMicWaveDeviceName = "HD Audio Mic"

PrimaryMicInTopoDeviceName = "HD Audio Speaker mixer"

 

;;

;; PropertyKey GUIDS

;;

PKEY_SYSFX_Association          =
"{D04E05A6-594B-4FB6-A80D-01AF5EED7D1D},0"

PKEY_SYSFX_PreMixClsid          =
"{D04E05A6-594B-4FB6-A80D-01AF5EED7D1D},1"

PKEY_SYSFX_PostMixClsid         =
"{D04E05A6-594B-4FB6-A80D-01AF5EED7D1D},2"

PKEY_SYSFX_UiClsid              =
"{D04E05A6-594B-4FB6-A80D-01AF5EED7D1D},3"

PKEY_FX_ID                      =
"{D04E05A6-594B-4FB6-A80D-01AF5EED7D1D},9"

PKEY_FX_FriendlyName            =
"{D04E05A6-594B-4FB6-A80D-01AF5EED7D1D},4"

PKEY_ItemNameDisplay            =
"{B725F130-47EF-101A-A5F1-02608C9EEBAC},10"

PKEY_AudioEndpoint_Ext_UiClsid  =
"{1DA5D803-D492-4EDD-8C23-E0C0FFEE7F0E},1"

PKEY_AudioEndpoint_Association  =
"{1DA5D803-D492-4EDD-8C23-E0C0FFEE7F0E},2"

PKEY_SYSFX_CAPTURE_LFX_CLSID          =
"{D04E05A6-594B-4FB6-A80D-01AF5EED7D1D},1"

 

PKEY_AudioEndpoint_ControlPanelPageProvider =
"{1DA5D803-D492-4EDD-8C23-E0C0FFEE7F0E}"

 

;;

;; PKEY_AudioEngine_OEMFormat:  Specifies the default format that is
used for rendering/capturing.

;; vartype = VT_BLOB

;;

PKEY_AudioEngine_OEMFormat = "{E4870E26-3CC5-4CD2-BA46-CA0A9A70ED04},3"

 

AUDIOENDPOINT_EXT_UI_CLSID = "{6C57B2A2-91F5-4b90-93D5-FAB82485ECA6}"

 

SYSFX_UI_CLSID      = "{19166F23-5F08-47F9-BB57-9F57A977D88E}"

SYSFX_PREMIX_CLSID  = "{B48DEA3F-D962-425a-8D9A-9A5BB37A9904}"

SYSFX_POSTMIX_CLSID = "{06687E71-F043-403A-BF49-CB591BA6E103}"

SYSFX_CAPTURE_LFX_CLSID = "{061E338A-F24D-496C-BCCC-7B4E361F19ED}"

SYSFX_FriendlyName  = "Swap System Effect"

 

KSCATEGORY_AUDIO    = "{6994AD04-93EF-11D0-A3CC-00A0C9223196}"

KSCATEGORY_RENDER   = "{65E8773E-8F56-11D0-A3B9-00A0C9223196}"

KSCATEGORY_CAPTURE  = "{65E8773D-8F56-11D0-A3B9-00A0C9223196}"

KSCATEGORY_TOPOLOGY = "{DDA54A40-1E4C-11D1-A050-405705C10000}"

 

KSNODETYPE_ANY      = "{00000000-0000-0000-0000-000000000000}"

KSNODETYPE_SPEAKER  = "{DFF21CE1-F70F-11D0-B917-00A0C9223196}"

KSNODETYPE_MICROPHONE = "{DFF21BE1-F70F-11D0-B917-00A0C9223196}"

 

Proxy.CLSID         = "{17CCA71B-ECD7-11D0-B908-00A0C9223196}"

 

REG_BINARY          = 0x00000001

 

I have done a comparison with other similar vendors who have created an
inf file for installing sAPO ( lfx in the capture path) and things look
the same to what changes I have done to my inf file. But I stil feel the
problem lies in the installation of the lfx thru the inf file only. Can
anyone please help me out in this regard???

 

Thanks in advance.

Venkat.R.N.

 

 

Other related posts:

  • » [wdmaudiodev] SysFx : capture path installation problem for sAPO.