Implement KSPROPERTY_PIN_PROPOSEDATAFORMAT / "Get" and Windows 7 will default to the format your driver prefers. From: wdmaudiodev-bounce@xxxxxxxxxxxxx [mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of Basileios Bu Sent: Wednesday, July 4, 2012 3:07 PM To: wdmaudiodev@xxxxxxxxxxxxx Subject: [wdmaudiodev] Re: How to set a driver's default sampling frequency and num channels Hello, Sorry to jump in like this, but I have the same issue with my avstream driver. I would like to have 4 channel 16 bit 44.1k by default, but so far I've had no luck. During installation, I monitor my intersection handler with WPP traces, and the caller data range is always two channels. I'm pretty sure that I serialized the WAVEFORMATEXTENSIBLE struct correctly, especially as I used the code from here to do it: http://msdn.microsoft.com/en-us/library/windows/hardware/ff537752(v=vs.85).aspx Also, it's strange that the link below says that Windows 7 is required while the link above says that Windows Vista and higher is required (I tested on Windows 7 x64, debugger attached): http://msdn.microsoft.com/en-us/library/windows/desktop/dd316584(v=vs.85).aspx In any case, I only add the registry values via the INF files (see below for the extract) to the topology. I have also tried PKEY_AudioEngine_DeviceFormat, and that fails also. Does anyone have any idea why? Should I add the registry values anywhere else? I've confirmed that they are added by browsing with regedit. I've also tried adding a KSPROPERTY_AUDIO_CHANNEL_CONFIG handler, and always returning KSAUDIO_SPEAKER_QUAD for a get. Not sure if this is required, though. Thank you for any help. (Also tried with PKEY_AudioEngine_DeviceFormat) [OEMSettingsOverride.AddReg] HKR,"EP\\0", %PKEY_AudioEndpoint_Association%,,%KSNODETYPE_SPEAKER% ; Should set default to 44.1khz, 4 channel, 16 bits HKR,"EP\\0", %PKEY_AudioEngine_OEMFormat%, %REG_BINARY%, 41,00,00,00,28,00,00,00,FE,FF,04,00,44,AC,00,00,10,B1,02,00,04,00,10,00,16,00,10,00,33,00,00,00,01,00,00,00,00,00,10,00,80,00,00,AA,00,38,9B,71 On Tue, Jul 3, 2012 at 11:08 PM, Jeff Pages <barefeet@xxxxxxxxxxxxxx<mailto:barefeet@xxxxxxxxxxxxxx>> wrote: Hi Paul, The OEMSettingsOverride.AddReg has to be included in the Topology Interface sections of the INF, i.e. [NEW_Device.NTX86.Interfaces] ... AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_Topology1%,NEW_Device.Interface.Topology1 ... [NEW_Device.Interface.Topology1] AddReg=NEW_Device.I.Topo1.AddReg, OEMSettingsOverride.AddReg [NEW_Device.I.Topo1.AddReg] HKR,,CLSID,,%Proxy.CLSID% HKR,,FriendlyName,,%NEW_Device.Topology1.szPname% Also, do you have KSNODETYPE_SPEAKER defined in the Strings section of your INF file? It should be: KSNODETYPE_SPEAKER = "{DFF21CE1-F70F-11D0-B917-00A0C9223196}" Jeff From: wdmaudiodev-bounce@xxxxxxxxxxxxx<mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx> [mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx<mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx>] On Behalf Of Paul Titchener Sent: Wednesday, 4 July 2012 12:09 PM To: wdmaudiodev@xxxxxxxxxxxxx<mailto:wdmaudiodev@xxxxxxxxxxxxx> Subject: [wdmaudiodev] Re: How to set a driver's default sampling frequency and num channels Hi Paul, For Vista and later platforms, you can use PKEY_AudioEngine_OEMFormat in the INF file to do this. This is documented in the WDK under Media-Class INF Extensions (http://msdn.microsoft.com/en-us/library/windows/hardware/ff537752(v=vs.85).aspx). Jeff I'm not having any luck getting this to work. As described in the link above, I added the section below to the driver's .inf file: [OEMSettingsOverride.AddReg] HKR,"EP\\0", %PKEY_AudioEndpoint_Association%,,%KSNODETYPE_SPEAKER% ; Should set default to 48khz, 2 channel, 16 bits HKR,"EP\\0", %PKEY_AudioEngine_OEMFormat%, %REG_BINARY%, 41,00,00,00,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 I'm calling this added section as shown below: [NEW_Device.NT] Include=ks.inf,wdmaudio.inf Needs=KS.Registration, WDMAUDIO.Registration CopyFiles=NEW_Device.CopyList AddReg=NEW_Device.AddReg, OEMSettingsOverride.AddReg [Strings] PKEY_AudioEndpoint_Association = "{1DA5D803-D492-4EDD-8C23-E0C0FFEE7F0E},2" PKEY_AudioEngine_OEMFormat = "{E4870E26-3CC5-4CD2-BA46-CA0A9A70ED04},3" After running the installation, on the Properties files for the driver regedit doesn't show any lines with the E4870E26-3CC5-4CD2-BA46-CA0A9A70ED04 format key. But if I use the Sound panel to manually change the sampling frequency, then as expected the lines with the E48 ... key value show up, holding the binary format info. Am I doing something wrong or is there some other trick to get this to work?