;; The audio inf file for WDM core files.

[Version]
Signature="$Windows NT$"
Class=MEDIA
ClassGUID={4d36e96c-e325-11ce-bfc1-08002be10318}
ClassVer=2.0
Provider=%MSFT%
DriverVer = 11/01/2024,10.0.20348.2849

[SourceDisksNames]
3426=windows cd

[SourceDisksFiles]
portcls.sys             = 3426
MsApoFxProxy.dll        = 3426

drmk.sys                = 3426

drmkaud.sys             = 3426

sysfxui.dll        = 3426
wmalfxgfxdsp.dll   = 3426


[SignatureAttributes]

drmk.sys=SignatureAttributes.DRM

portcls.sys=SignatureAttributes.DRM

wmalfxgfxdsp.dll=SignatureAttributes.PETrust


[SignatureAttributes.DRM]
DRMLevel=1300

[SignatureAttributes.PETrust]
PETrust=true

;; Device Callouts for swenumed devices
[Manufacturer]
%MfgName%=Microsoft,NTamd64

;; Excluding drivers from the "Add New Hardware" list.
[ControlFlags]
ExcludeFromSelect = SW\{EEC12DB6-AD9C-4168-8658-B03DAEF417FE}
PreConfigureDriver = SW\{EEC12DB6-AD9C-4168-8658-B03DAEF417FE}


[Microsoft.NTamd64]
%WDM_DRMKAUD.DeviceDesc%  = WDM_DRMKAUD,  SW\{EEC12DB6-AD9C-4168-8658-B03DAEF417FE}
%SystemEffectsInstall% = mssysfx.CopyFilesAndRegister
%WDMAUDIO_FDMA.DeviceDesc% = WDMAUDIO.FDMA
%WDMAUDIO_CopyFilesOnly.DeviceDesc% = WDMAUDIO.CopyFilesOnly
%ThirdPartyInstall% = WDMAUDIO.Registration
%ThirdPartyInstallProxyAPO% = MsApoFxProxy.Registration
%ThirdPartyNoAudioPortclsOnly% = WDMPORTCLS.CopyFilesOnly

[WDMAUDIO.CopyFilesOnly]
;; Note the WDMAUDIO.CopyFilesOnly section is used to force a CopyFiles
;; reference from a DDInstall section of this INF for files that are
;; only indirectly referenced by Include=/Needs= directives in external
;; INFs.  The files are not otherwise used by any device installation
;; section in this INF, but must still be copied to the driver store.
CopyFiles=WDM.CopyFiles, MsApoFxProxy.CopyList

CopyFiles=FX.CopyList


[WDMPORTCLS.CopyFilesOnly]
;; Note the WDMPORTCLS.CopyFilesOnly section is used to force a CopyFiles
;; reference from a DDInstall section of this INF for files that are
;; only indirectly referenced by Include=/Needs= directives in external
;; INFs.  The files are not otherwise used by any device installation
;; section in this INF, but must still be copied to the driver store.
;; This section should only be used by non-audio drivers that need to
;; reference portcls.
CopyFiles=WDM.CopyFiles

;; DO NOT REMOVE - Called by OEM INFs to install the discover-effects APO
[MsApoFxProxy.Registration]
AddReg = MsApoFxProxy.AddReg
CopyFiles = MsApoFxProxy.CopyList

;; DO NOT REMOVE - Called by legacy OEM INFs to install the discover-effects APO
;; New INFs should use MsApoFxProxy.Registration (without .NT suffix)
[MsApoFxProxy.Registration.NT]
Needs = MsApoFxProxy.Registration


[MsApoFxProxy.CopyList]
MsApoFxProxy.dll,,,0x100

[MsApoFxProxy.AddReg]
; Discover Effects APO COM registration
HKCR,CLSID\%FX_DISCOVER_EFFECTS_APO_CLSID%,,,%FX_DiscoverEffectsApo_FriendlyName%
HKCR,CLSID\%FX_DISCOVER_EFFECTS_APO_CLSID%\InProcServer32,,0x00020000,%%SystemRoot%%\System32\MsApoFxProxy.dll
HKCR,CLSID\%FX_DISCOVER_EFFECTS_APO_CLSID%\InProcServer32,ThreadingModel,,"Both"

; Discover Effects APO registration
HKCR,AudioEngine\AudioProcessingObjects\%FX_DISCOVER_EFFECTS_APO_CLSID%, "FriendlyName", ,%FX_DiscoverEffectsApo_FriendlyName%
HKCR,AudioEngine\AudioProcessingObjects\%FX_DISCOVER_EFFECTS_APO_CLSID%, "Copyright", ,%MsCopyRight%
HKCR,AudioEngine\AudioProcessingObjects\%FX_DISCOVER_EFFECTS_APO_CLSID%, "MajorVersion", 0x00010001, 1
HKCR,AudioEngine\AudioProcessingObjects\%FX_DISCOVER_EFFECTS_APO_CLSID%, "MinorVersion", 0x00010001, 1
HKCR,AudioEngine\AudioProcessingObjects\%FX_DISCOVER_EFFECTS_APO_CLSID%, "Flags", 0x00010001, 0x0000000d
HKCR,AudioEngine\AudioProcessingObjects\%FX_DISCOVER_EFFECTS_APO_CLSID%, "MinInputConnections", 0x00010001, 1
HKCR,AudioEngine\AudioProcessingObjects\%FX_DISCOVER_EFFECTS_APO_CLSID%, "MaxInputConnections", 0x00010001, 1
HKCR,AudioEngine\AudioProcessingObjects\%FX_DISCOVER_EFFECTS_APO_CLSID%, "MinOutputConnections", 0x00010001, 1
HKCR,AudioEngine\AudioProcessingObjects\%FX_DISCOVER_EFFECTS_APO_CLSID%, "MaxOutputConnections", 0x00010001, 1
HKCR,AudioEngine\AudioProcessingObjects\%FX_DISCOVER_EFFECTS_APO_CLSID%, "MaxInstances", 0x00010001, 0xffffffff
HKCR,AudioEngine\AudioProcessingObjects\%FX_DISCOVER_EFFECTS_APO_CLSID%, "NumAPOInterfaces", 0x00010001, 1
HKCR,AudioEngine\AudioProcessingObjects\%FX_DISCOVER_EFFECTS_APO_CLSID%, "APOInterface0", ,"{FD7F2B29-24D0-4B5C-B177-592C39F9CA10}"

;; DO NOT REMOVE - Called by OEM INFs to install WDM driver
[WDMAUDIO.Registration]
AddReg = DeviceRegistration
CopyFiles = WDM.CopyFiles

;; DO NOT REMOVE - Called by legacy OEM INFs to install WDM driver
;; New INFs should use WDMAUDIO.Registration (without .NT suffix)
[WDMAUDIO.Registration.NT]
Needs = WDMAUDIO.Registration


[DeviceRegistration]
;; DRMKAUD swenum install
HKLM,%RunOnce%,"WDM_DRMKAUD",,"rundll32.exe streamci,StreamingDeviceSetup %WDM_DRMKAUD.DeviceId%,%KSNAME_DRMKAUD%,%KSCATEGORY_DRM_DESCRAMBLE%,%17%\WDMAUDIO.inf,WDM_DRMKAUD.Interface.Install"

;; DRMKAUD Install
[WDM_DRMKAUD.Interface.Install]
AddReg=WDM_DRMKAUD.Interface.AddReg

[WDM_DRMKAUD.Interface.AddReg]
HKR,,CLSID,,%Proxy.CLSID%
HKR,,FriendlyName,,%WDM_DRMKAUD.FriendlyName%

[WDM_DRMKAUD]
CopyFiles=WDM_DRMKAUD.CopyFiles

[WDM_DRMKAUD.CopyFiles]

drmk.sys,,,0x0100

drmkaud.sys,,,0x0100

[WDM_DRMKAUD.Services]
AddService = drmkaud,  0x00000002, drmkaud_Service_Inst

[drmkaud_Service_Inst]
DisplayName    = %drmkaud.SvcDesc%
ServiceType    = 1                  ; SERVICE_KERNEL_DRIVER
StartType      = 3                  ; SERVICE_DEMAND_START
ErrorControl   = 1                  ; SERVICE_ERROR_NORMAL
ServiceBinary  = %12%\drmkaud.sys

;; copied to system32\drivers
[WDM.CopyFiles]

drmk.sys,,,0x0100

portcls.sys,,,0x0100

;; DO NOT REMOVE - Called by OEM INFs to turn on FDMA
[WDMAUDIO.FDMA]

AddReg=FDMA.AddReg

[FDMA.AddReg]
;; nothing to add for NT (yet)


[mssysfx.CopyFilesAndRegister]

CopyFiles=FX.CopyList
AddReg=FX.AddReg

; Settings for system effect begins

[FX.CopyList]
WMALFXGFXDSP.dll,,,0x0100
SysFxUI.dll,,,0x0100

[FX.AddReg]

; adding LFX COM registrations 

HKCR,CLSID\{62dc1a93-ae24-464c-a43e-452f824c4250},,,%WM_LFX_APO%
HKCR,CLSID\{62dc1a93-ae24-464c-a43e-452f824c4250}\InProcServer32,,0x00020000,%%SystemRoot%%\System32\WMALFXGFXDSP.dll
HKCR,CLSID\{62dc1a93-ae24-464c-a43e-452f824c4250}\InProcServer32,ThreadingModel,,"Both"

; adding LFX APO registrations 

HKCR,AudioEngine\AudioProcessingObjects\{62dc1a93-ae24-464c-a43e-452f824c4250}, "FriendlyName", ,%MsLfxApoFriendlyName%

; Settings for system effect ends

HKCR,AudioEngine\AudioProcessingObjects\{62dc1a93-ae24-464c-a43e-452f824c4250}, "Copyright", ,%MsCopyRight%
HKCR,AudioEngine\AudioProcessingObjects\{62dc1a93-ae24-464c-a43e-452f824c4250}, "MajorVersion", 0x00010001, 1
HKCR,AudioEngine\AudioProcessingObjects\{62dc1a93-ae24-464c-a43e-452f824c4250}, "MinorVersion", 0x00010001, 1
HKCR,AudioEngine\AudioProcessingObjects\{62dc1a93-ae24-464c-a43e-452f824c4250}, "Flags", 0x00010001, 0x0000000d
HKCR,AudioEngine\AudioProcessingObjects\{62dc1a93-ae24-464c-a43e-452f824c4250}, "MinInputConnections", 0x00010001, 1
HKCR,AudioEngine\AudioProcessingObjects\{62dc1a93-ae24-464c-a43e-452f824c4250}, "MaxInputConnections", 0x00010001, 1
HKCR,AudioEngine\AudioProcessingObjects\{62dc1a93-ae24-464c-a43e-452f824c4250}, "MinOutputConnections", 0x00010001, 1
HKCR,AudioEngine\AudioProcessingObjects\{62dc1a93-ae24-464c-a43e-452f824c4250}, "MaxOutputConnections", 0x00010001, 1
HKCR,AudioEngine\AudioProcessingObjects\{62dc1a93-ae24-464c-a43e-452f824c4250}, "MaxInstances", 0x00010001, 0xffffffff
HKCR,AudioEngine\AudioProcessingObjects\{62dc1a93-ae24-464c-a43e-452f824c4250}, "NumAPOInterfaces", 0x00010001, 1
HKCR,AudioEngine\AudioProcessingObjects\{62dc1a93-ae24-464c-a43e-452f824c4250}, "APOInterface0", ,"{FD7F2B29-24D0-4B5C-B177-592C39F9CA10}"

; adding GFX COM registrations 
HKCR,CLSID\{637c490d-eee3-4c0a-973f-371958802da2},,,%WM_GFX_APO%
HKCR,CLSID\{637c490d-eee3-4c0a-973f-371958802da2}\InProcServer32,,0x00020000,%%SystemRoot%%\System32\WMALFXGFXDSP.dll
HKCR,CLSID\{637c490d-eee3-4c0a-973f-371958802da2}\InProcServer32,ThreadingModel,,"Both"

; adding GFX APO registrations 

HKCR,AudioEngine\AudioProcessingObjects\{637c490d-eee3-4c0a-973f-371958802da2}, "FriendlyName", ,%MsGfxApoFriendlyName%
HKCR,AudioEngine\AudioProcessingObjects\{637c490d-eee3-4c0a-973f-371958802da2}, "Copyright", ,%MsCopyRight%
HKCR,AudioEngine\AudioProcessingObjects\{637c490d-eee3-4c0a-973f-371958802da2}, "MajorVersion", 0x00010001, 1
HKCR,AudioEngine\AudioProcessingObjects\{637c490d-eee3-4c0a-973f-371958802da2}, "MinorVersion", 0x00010001, 1
HKCR,AudioEngine\AudioProcessingObjects\{637c490d-eee3-4c0a-973f-371958802da2}, "Flags", 0x00010001, 0x0000000d
HKCR,AudioEngine\AudioProcessingObjects\{637c490d-eee3-4c0a-973f-371958802da2}, "MinInputConnections", 0x00010001, 1
HKCR,AudioEngine\AudioProcessingObjects\{637c490d-eee3-4c0a-973f-371958802da2}, "MaxInputConnections", 0x00010001, 1
HKCR,AudioEngine\AudioProcessingObjects\{637c490d-eee3-4c0a-973f-371958802da2}, "MinOutputConnections", 0x00010001, 1
HKCR,AudioEngine\AudioProcessingObjects\{637c490d-eee3-4c0a-973f-371958802da2}, "MaxOutputConnections", 0x00010001, 1
HKCR,AudioEngine\AudioProcessingObjects\{637c490d-eee3-4c0a-973f-371958802da2}, "MaxInstances", 0x00010001, 0xffffffff
HKCR,AudioEngine\AudioProcessingObjects\{637c490d-eee3-4c0a-973f-371958802da2}, "NumAPOInterfaces", 0x00010001, 1
HKCR,AudioEngine\AudioProcessingObjects\{637c490d-eee3-4c0a-973f-371958802da2}, "APOInterface0", ,"{FD7F2B29-24D0-4B5C-B177-592C39F9CA10}"

; adding SysFxUI COM registrations 

HKCR,CLSID\{5860E1C5-F95C-4a7a-8EC8-8AEF24F379A1},,,"CplPage Class"
HKCR,CLSID\{5860E1C5-F95C-4a7a-8EC8-8AEF24F379A1}\InProcServer32,,0x00020000,%%SystemRoot%%\System32\SysFxUI.dll
HKCR,CLSID\{5860E1C5-F95C-4a7a-8EC8-8AEF24F379A1}\InProcServer32,ThreadingModel,,"Apartment"
HKCR,CLSID\{5860E1C5-F95C-4a7a-8EC8-8AEF24F379A1}\Programmable,,,

HKCR,AppID\SysFxUi.DLL,"AppID",,"{A7D2EC8B-B70F-434C-A0CE-0DF324805F7D}"
HKCR,AppID\{A7D2EC8B-B70F-434C-A0CE-0DF324805F7D},,,"SysFxUi"

HKCR,Interface\{E6DB299B-B925-415A-879B-4A76D072F39A},,,"IMyPageFactory"
HKCR,Interface\{E6DB299B-B925-415A-879B-4A76D072F39A}\ProxyStubClsid,,,"{00020424-0000-0000-C000-000000000046}"
HKCR,Interface\{E6DB299B-B925-415A-879B-4A76D072F39A}\ProxyStubClsid32,,,"{00020424-0000-0000-C000-000000000046}"
HKCR,Interface\{E6DB299B-B925-415A-879B-4A76D072F39A}\TypeLib,,,"{87D5F036-FAC3-4390-A1E8-DFA8A62C09E7}"
HKCR,Interface\{E6DB299B-B925-415A-879B-4A76D072F39A}\TypeLib,"Version",,"1.0"

HKCR,TypeLib\{87D5F036-FAC3-4390-A1E8-DFA8A62C09E7},,,
HKCR,TypeLib\{87D5F036-FAC3-4390-A1E8-DFA8A62C09E7}\1.0,,,"SysFxUi 1.0 Type Library"
HKCR,TypeLib\{87D5F036-FAC3-4390-A1E8-DFA8A62C09E7}\1.0\0,,,
HKCR,TypeLib\{87D5F036-FAC3-4390-A1E8-DFA8A62C09E7}\1.0\0\win32,,,"SysFxUi 1.0 Type Library"
HKCR,TypeLib\{87D5F036-FAC3-4390-A1E8-DFA8A62C09E7}\1.0\0\win32,,0x00020000,%%SystemRoot%%\System32\SysFxUI.dll
HKCR,TypeLib\{87D5F036-FAC3-4390-A1E8-DFA8A62C09E7}\1.0\FLAGS,,,"0"
HKCR,TypeLib\{87D5F036-FAC3-4390-A1E8-DFA8A62C09E7}\1.0\HELPDIR,,0x00020000,%%SystemRoot%%\System32

;; Destination Directory List
[DestinationDirs]

FX.CopyList = 11

WDM.CopyFiles  = 12 ; %SystemRoot%\system32\drivers
WDM_DRMKAUD.CopyFiles  = 12
;HS/HF, MsApoFxProxy.dll will not be loaded for streaming, so no need to add a SignatureAttributes for it
MsApoFxProxy.CopyList = 11 ; %SystemRoot%\system32

[Strings]
;Non-localizable
MSFT="Microsoft"
MfgName="Microsoft"
MsCopyRight = "Copyright Microsoft"

RunOnce = "SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce"

KSNAME_DRMKAUD            = "{ABD61E00-9350-47e2-A632-4438B90C6641}"
WDM_DRMKAUD.DeviceId      = "{EEC12DB6-AD9C-4168-8658-B03DAEF417FE}"
KSCATEGORY_DRM_DESCRAMBLE = "{FFBB6E3F-CCFE-4D84-90D9-421418B03A8E}"

Proxy.CLSID               =  "{17CCA71B-ECD7-11D0-B908-00A0C9223196}"
KSCATEGORY_DATATRANSFORM  =  "{2EB07EA0-7E70-11D0-A5D6-28DB04C10000}"
KSCATEGORY_AUDIO          =  "{6994AD04-93EF-11D0-A3CC-00A0C9223196}"

;;
;; 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"

; Discover effects APO class ID.
FX_DISCOVER_EFFECTS_APO_CLSID  = "{889C03C8-ABAD-4004-BF0A-BC7BB825E166}"

;Localizable

WDM_DRMKAUD.DeviceDesc    = "Microsoft Trusted Audio Drivers"
WDM_DRMKAUD.FriendlyName  = "Microsoft Trusted Audio Drivers"
drmkaud.SvcDesc           = "Microsoft Trusted Audio Drivers"

WM_LFX_APO = "WM LFX APO"
WM_GFX_APO = "WM GFX APO"
MsLfxApoFriendlyName = "WM audio LFX APO"
MsGfxApoFriendlyName = "WM audio GFX APO"

SystemEffectsInstall = "Microsoft System Effects"
WDMAUDIO_FDMA.DeviceDesc = "Microsoft WDM Audio FDMA"
WDMAUDIO_CopyFilesOnly.DeviceDesc = "Microsoft WDM Audio Drivers"
ThirdPartyInstall            = "Third Party Install Section"
ThirdPartyInstallProxyAPO    = "Third Party Install PROXY APO Section"
ThirdPartyNoAudioPortclsOnly = "Third Party No Audio Install PortCls"

FX_DiscoverEffectsApo_FriendlyName = "Microsoft Audio Proxy Discover Effects APO"
