[wdmaudiodev] Re: Inf file problems.

  • From: Ed Tottenham <Ed.Tottenham@xxxxxxxxx>
  • To: "wdmaudiodev@xxxxxxxxxxxxx" <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Wed, 4 Sep 2019 16:46:13 +0000

Hi David,



Thanks for your reply.



The datarange used is basically:



KSDATARANGE PinDataRange =

{

sizeof(KSDATARANGE),

0,

0,

0,

STATICGUIDOF(KSDATAFORMAT_TYPE_AUDIO),

STATICGUIDOF(KSDATAFORMAT_SUBTYPE_PCM),

STATICGUIDOF(KSDATAFORMAT_SPECIFIER_NONE)

};



In the DataRangeIntersection handler the subtype is KSDATAFORMAT_SUBTYPE_PCM 
and the formatTag WAVE_FORMAT_EXTENSIBLE



Is this not sufficient?



Ed



________________________________
From: wdmaudiodev-bounce@xxxxxxxxxxxxx [wdmaudiodev-bounce@xxxxxxxxxxxxx] on 
behalf of David A. Hoatson [dhoatson@xxxxxxxxxxxxxx]
Sent: 04 September 2019 17:17
To: wdmaudiodev@xxxxxxxxxxxxx
Subject: [wdmaudiodev] Re: Inf file problems.

Ed,

I’m no expert on either issue, but I’m guessing the problem is not with the INF 
file.

Check the following places for support of Dolby, DTS…
               GetDescription PPCFILTER_DESCRIPTOR table.  If the DataRanges in 
the PCPIN_DESCRIPTOR points to a entry with 
KSDATAFORMAT_SUBTYPE_DOLBY_AC3_SPDIF, that will show Dolby.  (I suspect this is 
the issue in your case)
DataRangeIntersection handler.
KSPROPERTY_PIN_PROPOSEDATAFORMAT property handler.

The end point names might be coming from the KSPROPERTY_GENERAL_COMPONENTID 
property handler.  Although the actual text comes from the INF file, the text 
that shows for each endpoint comes from the property handler.  Specifically the 
GUID in PKSCOMPONENTID Name element.

Hopefully this helps.

Thank you,

David A. Hoatson
Lynx Studio Technology, Inc.
www.lynxstudio.com<https://r.xdref.com/?id=x84GICL2055568&from=wdmaudiodev-bounce@xxxxxxxxxxxxx&to=ed.tottenham@xxxxxxxxx&url=http://www.lynxstudio.com/>

From: wdmaudiodev-bounce@xxxxxxxxxxxxx 
[mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of Ed Tottenham
Sent: Tuesday, September 03, 2019 7:54 AM
To: wdmaudiodev@xxxxxxxxxxxxx
Subject: [wdmaudiodev] Inf file problems.


Hello,



I wonder if anyone can help me with two problems with the inf file for our 
audio driver.



The inf file was created using the MSVAD driver's inf file as a template.



The first problem is more of a question. In the Sound System Control Panel, the 
tab for "Supported Formats" (Dolby, DTS etc.) is always shown. Is this 
something that can be removed by changing the inf file or should I be doing 
something more fundamental?



The second problem is that since the 1903 update to windows 10, the device 
endpoint names are not being created in the registry, so all channels show up 
as "Digital Input" or "Digital Output" in the Sound Control Panel. I've been 
staring at the inf file till I'm blue in the face, but I just can't see why the 
entries are no longer written to the registry.



Can anybody help by looking at the inf file below?



Best wishes

Ed Tottenham





Inf file follows:

----------------------------------------------------



[Version]
Signature="$CHICAGO$"
Class=MEDIA
Provider=%PrismSound%
ClassGUID={4d36e96c-e325-11ce-bfc1-08002be10318}
DriverVer=09/19/2016,13.35.48.843
CatalogFile=PrismSoundWDM_WIN7_X64.cat



[SourceDisksNames]
222="Prism Sound WDM Audio Drivers Disk","",222



[SourceDisksFiles]
PrismSoundWDM_WIN7_X64.sys=222



;;This syntax is only recognized on Windows XP and above- it is needed to 
install 64-bit drivers on
;;Windows Server 2003 Service Pack 1 and above.



[Manufacturer]
%PrismMedia%=PrismAudio,NTAMD64



;;  For Windows Server 2003 Service Pack 1 and above, a 64-bit OS will not 
install a driver
;;  unless the Manufacturer and Models Sections explicitly show it is a driver 
for that platform
;;  But the individual model section decorations (or lack thereof) work as they 
always have.
;;  All of the model sections referred to are undecorated or NT-decorated, 
hence work on all platforms

;; This section enables installing on x64 systems

[PrismAudio.NTAMD64]
%PrismWDM_Simple.DeviceDesc%=PrismWDM_Simple,*PrismWDM



[DestinationDirs]
PrismWDM_Simple.CopyList=10,system32\drivers

;======================================================
; PrismWDM_SIMPLE
;======================================================

[PrismWDM_Simple.CopyList]
PrismSoundWDM_WIN7_X64.sys



[PrismWDM_Simple.AddReg]
HKR,,AssociatedFilters,,"wdmaud,swmidi,redbook"
HKR,,Driver,,PrismSoundWDM_WIN7_X64.sys

HKR,Drivers,SubClasses,,"wave,midi,mixer"

HKR,Drivers\wave\wdmaud.drv,Driver,,wdmaud.drv
HKR,Drivers\midi\wdmaud.drv,Driver,,wdmaud.drv
HKR,Drivers\mixer\wdmaud.drv,Driver,,wdmaud.drv

HKR,Drivers\wave\wdmaud.drv,Description,,%PrismWDM_Simple.DeviceDesc%
HKR,Drivers\midi\wdmaud.drv,Description,,%PrismWDM_MIDI%
HKR,Drivers\mixer\wdmaud.drv,Description,,%PrismWDM_Simple.DeviceDesc%

HKLM,%MediaCategories%\%Simple.NameGuid%,Name,,%Simple.Name%





;======================================================
; COMMON
;======================================================
[PrismWDM.I.Wave]
AddReg=PrismWDM.I.Wave.AddReg,PrismWDM_NAMES.AddReg

[PrismWDM.I.Wave.AddReg]
HKR,,CLSID,,%Proxy.CLSID%
HKR,,FriendlyName,,%Prism.Wave.szPname%
HKR,"EP\\0",%PKEY_AudioEndpoint_Association%,,%KSNODETYPE_ANY%
HKR,"EP\\0",%PKEY_AudioEngine_OEMFormat%,1,41,00,00,00,28,00,00,00,FE,FF,02,00,00,EE,02,00,00,94,11,00,06,00,18,00,16,00,18,00,03,00,00,00,01,00,00,00,00,00,10,00,80,00,00,AA,00,38,9B,71



[PrismWDM_NAMES.AddReg]
;; Pins
HKLM,%MediaCategories%\%PLWGUID.AnalogIn1%,Name,,%PLWPin.AnalogIn1%
HKLM,%MediaCategories%\%PLWGUID.AnalogIn1%,Display,1,00,00,00,00
HKLM,%MediaCategories%\%PLWGUID.AnalogIn2%,Name,,%PLWPin.AnalogIn2%
HKLM,%MediaCategories%\%PLWGUID.AnalogIn2%,Display,1,00,00,00,00
HKLM,%MediaCategories%\%PLWGUID.AnalogIn3%,Name,,%PLWPin.AnalogIn3%
HKLM,%MediaCategories%\%PLWGUID.AnalogIn3%,Display,1,00,00,00,00
HKLM,%MediaCategories%\%PLWGUID.AnalogIn4%,Name,,%PLWPin.AnalogIn4%
HKLM,%MediaCategories%\%PLWGUID.AnalogIn4%,Display,1,00,00,00,00
HKLM,%MediaCategories%\%PLWGUID.AnalogOut1%,Name,,%PLWPin.AnalogOut1%
HKLM,%MediaCategories%\%PLWGUID.AnalogOut1%,Display,1,00,00,00,00
HKLM,%MediaCategories%\%PLWGUID.AnalogOut2%,Name,,%PLWPin.AnalogOut2%
HKLM,%MediaCategories%\%PLWGUID.AnalogOut2%,Display,1,00,00,00,00
HKLM,%MediaCategories%\%PLWGUID.AnalogOut3%,Name,,%PLWPin.AnalogOut3%
HKLM,%MediaCategories%\%PLWGUID.AnalogOut3%,Display,1,00,00,00,00
HKLM,%MediaCategories%\%PLWGUID.AnalogOut4%,Name,,%PLWPin.AnalogOut4%
HKLM,%MediaCategories%\%PLWGUID.AnalogOut4%,Display,1,00,00,00,00
HKLM,%MediaCategories%\%PLWGUID.DigitalIn1%,Name,,%PLWPin.DigitalIn1%
HKLM,%MediaCategories%\%PLWGUID.DigitalIn1%,Display,1,00,00,00,00
HKLM,%MediaCategories%\%PLWGUID.DigitalOut1%,Name,,%PLWPin.DigitalOut1%
HKLM,%MediaCategories%\%PLWGUID.DigitalOut1%,Display,1,00,00,00,00
HKLM,%MediaCategories%\%PLWGUID.ADATIn1%,Name,,%PLWPin.ADATIn1%
HKLM,%MediaCategories%\%PLWGUID.ADATIn1%,Display,1,00,00,00,00
HKLM,%MediaCategories%\%PLWGUID.ADATIn2%,Name,,%PLWPin.ADATIn2%
HKLM,%MediaCategories%\%PLWGUID.ADATIn2%,Display,1,00,00,00,00
HKLM,%MediaCategories%\%PLWGUID.ADATIn3%,Name,,%PLWPin.ADATIn3%
HKLM,%MediaCategories%\%PLWGUID.ADATIn3%,Display,1,00,00,00,00
HKLM,%MediaCategories%\%PLWGUID.ADATIn4%,Name,,%PLWPin.ADATIn4%
HKLM,%MediaCategories%\%PLWGUID.ADATIn4%,Display,1,00,00,00,00
HKLM,%MediaCategories%\%PLWGUID.ADATOut1%,Name,,%PLWPin.ADATOut1%
HKLM,%MediaCategories%\%PLWGUID.ADATOut1%,Display,1,00,00,00,00
HKLM,%MediaCategories%\%PLWGUID.ADATOut2%,Name,,%PLWPin.ADATOut2%
HKLM,%MediaCategories%\%PLWGUID.ADATOut2%,Display,1,00,00,00,00
HKLM,%MediaCategories%\%PLWGUID.ADATOut3%,Name,,%PLWPin.ADATOut3%
HKLM,%MediaCategories%\%PLWGUID.ADATOut3%,Display,1,00,00,00,00
HKLM,%MediaCategories%\%PLWGUID.ADATOut4%,Name,,%PLWPin.ADATOut4%
HKLM,%MediaCategories%\%PLWGUID.ADATOut4%,Display,1,00,00,00,00
HKLM,%MediaCategories%\%PLWGUID.Headphone%,Name,,%PLWPin.Headphone%
HKLM,%MediaCategories%\%PLWGUID.Headphone%,Display,1,00,00,00,00

[PrismWDM.I.Topo]
AddReg=PrismWDM.I.Topo.AddReg

[PrismWDM.I.Topo.AddReg]
HKR,,CLSID,,%Proxy.CLSID%
HKR,,FriendlyName,,%Prism.Topo.szPname%



;======================================================
; PrismWDM_SIMPLE
;======================================================

[PrismWDM_Simple.NTAMD64]
Include=ks.inf,wdmaudio.inf
Needs=KS.Registration, WDMAUDIO.Registration
CopyFiles=PrismWDM_Simple.CopyList
AddReg=PrismWDM_Simple.AddReg



[PrismWDM_Simple.NTAMD64.Interfaces]
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_Wave%,PrismWDM.I.Wave
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_Wave%,PrismWDM.I.Wave
AddInterface=%KSCATEGORY_CAPTURE%,%KSNAME_Wave%,PrismWDM.I.Wave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_Topology%,PrismWDM.I.Topo



[PrismWDM_Simple.NTAMD64.Services]
AddService=PrismWDM_simple,0x00000002,PrismWDM_Simple_Service_Inst



[PrismWDM_Simple_Service_Inst]
DisplayName=%PrismWDM_simple.SvcDesc%
ServiceType=1
StartType=3
ErrorControl=1
ServiceBinary=%10%\system32\drivers\PrismSoundWDM_WIN7_X64.sys





;======================================================
; COMMON
;======================================================
[Strings]
PrismSound="Prism Sound"
PrismMedia="Audio Squadron Ltd."
PrismWDM_Simple.DeviceDesc="Prism Sound WDM Audio Device"

Prism.Wave.szPname="Prism Wave"
Prism.Topo.szPname="Prism Topology"
PrismWDM_MIDI="Prism -> WDM Midi Device"

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

KSCATEGORY_AUDIO="{6994AD04-93EF-11D0-A3CC-00A0C9223196}"
KSCATEGORY_RENDER="{65E8773E-8F56-11D0-A3B9-00A0C9223196}"
KSCATEGORY_CAPTURE="{65E8773D-8F56-11D0-A3B9-00A0C9223196}"

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

KSNAME_Wave="Wave"
KSNAME_Topology="Topology"

PrismWDM_simple.SvcDesc="Prism Sound WDM Audio Device"

MediaCategories="SYSTEM\CurrentControlSet\Control\MediaCategories"

Simple.NameGuid="{946A7B1A-EBBC-422a-A81F-F07C8D40D3B4}"
Simple.Name="Prism WDM"



;; Pins
PLWGUID.AnalogIn1       ="{8E37AE30-2E11-4845-B3A6-AD0E86055C61}"
PLWGUID.AnalogIn2 ="{65EB395B-6EE1-4BF1-B1AD-C68FE59EA3D0}"
PLWGUID.AnalogIn3 ="{27586AF3-0BA9-45B7-A111-3153DF72B92A}"
PLWGUID.AnalogIn4 ="{5B948A4E-D111-463C-822C-AAA13DA4E10A}"
PLWGUID.AnalogOut1      ="{9B75DA74-6D1D-41F6-B25D-04B97B916AAE}"
PLWGUID.AnalogOut2      ="{93C4683E-E7B6-4568-B5D8-AF97C19A52C1}"
PLWGUID.AnalogOut3      ="{24D70761-E8F3-47AA-8B20-1BF48A7058FB}"
PLWGUID.AnalogOut4      ="{81812A72-34B9-4AD2-AAAB-93BCEB0F367A}"
PLWGUID.DigitalIn1      ="{BD5412E6-FA67-4BDD-96A3-16E925FE438B}"
PLWGUID.DigitalOut1     ="{3761A567-0DCE-4513-A813-C1099FD4302F}"
PLWGUID.ADATIn1         ="{28C6AFF0-D709-4E6C-8075-3EA63E351038}"
PLWGUID.ADATIn2         ="{7A45FB25-D91A-4DFB-AFB8-BA97734F549F}"
PLWGUID.ADATIn3         ="{5E940B0A-0767-4D87-9694-BF592053F46B}"
PLWGUID.ADATIn4         ="{ABFBB037-BA8B-41AF-885D-C948F8C95AE6}"
PLWGUID.ADATOut1        ="{68E3A829-431C-4A39-8A99-20FCB2678216}"
PLWGUID.ADATOut2        ="{8C952C69-4532-45EB-933D-FC17109F245A}"
PLWGUID.ADATOut3        ="{7664755F-D391-488A-83C5-853F6EFC729C}"
PLWGUID.ADATOut4        ="{6BDA0045-5422-402E-8F67-0743AC5507FC}"
PLWGUID.Headphone       ="{F703C95D-9A4A-45C3-AD52-FB59C113F6AF}"

;; Pin Names
PLWPin.AnalogIn1        ="Analog In (1+2)"
PLWPin.AnalogIn2        ="Analog In (3+4)"
PLWPin.AnalogIn3        ="Analog In (5+6)"
PLWPin.AnalogIn4        ="Analog In (7+8)"
PLWPin.AnalogOut1       ="Analog Out (1+2)"
PLWPin.AnalogOut2       ="Analog Out (3+4)"
PLWPin.AnalogOut3       ="Analog Out (5+6)"
PLWPin.AnalogOut4       ="Analog Out (7+8)"
PLWPin.DigitalIn1       ="Digital In (1+2)"
PLWPin.DigitalOut1      ="Digital Out (1+2)"
PLWPin.ADATIn1          ="ADAT In (1+2)"
PLWPin.ADATIn2          ="ADAT In (3+4)"
PLWPin.ADATIn3          ="ADAT In (5+6)"
PLWPin.ADATIn4          ="ADAT In (7+8)"
PLWPin.ADATOut1         ="ADAT Out (1+2)"
PLWPin.ADATOut2         ="ADAT Out (3+4)"
PLWPin.ADATOut3         ="ADAT Out (5+6)"
PLWPin.ADATOut4         ="ADAT Out (7+8)"
PLWPin.Headphone        ="Headphone"

PKEY_AudioEngine_OEMFormat =     "{E4870E26-3CC5-4CD2-BA46-CA0A9A70ED04},3"
PKEY_AudioEndpoint_Association = "{1DA5D803-D492-4EDD-8C23-E0C0FFEE7F0E},2"


Other related posts: