[Version]
Signature="$WINDOWS NT$"
Class=MEDIA
ClassGUID={4d36e96c-e325-11ce-bfc1-08002be10318}
Provider=%NV%
DriverVer=03/17/2019,1.31.34.724
CatalogFile=nvvadarm.cat

[ControlFlags]
ExcludeFromSelect=*

[Manufacturer]
%MfgName%=NVIDIA,ntarm,NTx86,NTamd64

[NVIDIA.ntarm]
%NVVADARM.DeviceDesc%=NVVADARM, VIDEO\NVIDIAVirtualAudioDevice

[NVIDIA.NTx86]
%NVVADARM.DeviceDesc%=NVVADARM_32, VIDEO\NVIDIAVirtualAudioDevice

[NVIDIA.NTamd64]
%NVVADARM.DeviceDesc%=NVVADARM_64, VIDEO\NVIDIAVirtualAudioDevice

[NVVADARM]
Include=ks.inf,wdmaudio.inf
Needs=KS.Registration,WDMAUDIO.Registration
CopyFiles=NVVADARM.CopyList,NVAUDCAP.CopyList
AddReg=NVVADARM.AddReg,NVVAD.AddReg

[NVVADARM_32]
Include=ks.inf,wdmaudio.inf
Needs=KS.Registration,WDMAUDIO.Registration
CopyFiles=NVVADARM.CopyList,NVAUDCAP.CopyList
AddReg=NVVADARM.AddReg,NVVAD.AddReg

[NVVADARM_64]
Include=ks.inf,wdmaudio.inf
Needs=KS.Registration,WDMAUDIO.Registration
CopyFiles=NVVADARM.CopyList,NVAUDCAP.CopyList
AddReg=NVVADARM.AddReg,NVVAD.AddReg

[NVVADARM.Interfaces]
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_Wave%,NVVAD.I.Wave
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_Wave%,NVVAD.I.Wave
AddInterface=%KSCATEGORY_CAPTURE%,%KSNAME_Wave%,NVVAD.I.Wave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_Topology%,NVVAD.I.Topo

[NVVADARM_32.Interfaces]
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_Wave%,NVVAD.I.Wave
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_Wave%,NVVAD.I.Wave
AddInterface=%KSCATEGORY_CAPTURE%,%KSNAME_Wave%,NVVAD.I.Wave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_Topology%,NVVAD.I.Topo

[NVVADARM_64.Interfaces]
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_Wave%,NVVAD.I.Wave
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_Wave%,NVVAD.I.Wave
AddInterface=%KSCATEGORY_CAPTURE%,%KSNAME_Wave%,NVVAD.I.Wave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_Topology%,NVVAD.I.Topo

[NVVADARM.HW]
AddReg=NVVADARM.NT.AddReg

[NVVADARM_32.HW]
AddReg=NVVADARM.NT.AddReg

[NVVADARM_64.HW]
AddReg=NVVADARM.NT.AddReg

[NVVADARM.Services]
AddService=NVVADARM,0x00000002,NVVADARM_Service_Inst

[NVVADARM_32.Services]
AddService=NVVADARM,0x00000002,NVVADARM_Service_Inst

[NVVADARM_64.Services]
AddService=NVVADARM,0x00000002,NVVADARM_Service_Inst

[NVVADARM.NT]
Include=ks.inf,wdmaudio.inf
Needs=KS.Registration,WDMAUDIO.Registration
CopyFiles=NVVADARM.CopyList,NVAUDCAP.CopyList
AddReg=NVVADARM.AddReg,NVVAD.AddReg

[NVVADARM_32.NT]
Include=ks.inf,wdmaudio.inf
Needs=KS.Registration,WDMAUDIO.Registration
CopyFiles=NVVADARM.CopyList,NVAUDCAP.CopyList
AddReg=NVVADARM.AddReg,NVVAD.AddReg

[NVVADARM_64.NT]
Include=ks.inf,wdmaudio.inf
Needs=KS.Registration,WDMAUDIO.Registration
CopyFiles=NVVADARM.CopyList,NVAUDCAP.CopyList
AddReg=NVVADARM.AddReg,NVVAD.AddReg

[NVVADARM.NT.Interfaces]
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_Wave%,NVVAD.I.Wave
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_Wave%,NVVAD.I.Wave
AddInterface=%KSCATEGORY_CAPTURE%,%KSNAME_Wave%,NVVAD.I.Wave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_Topology%,NVVAD.I.Topo

[NVVADARM_32.NT.Interfaces]
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_Wave%,NVVAD.I.Wave
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_Wave%,NVVAD.I.Wave
AddInterface=%KSCATEGORY_CAPTURE%,%KSNAME_Wave%,NVVAD.I.Wave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_Topology%,NVVAD.I.Topo

[NVVADARM_64.NT.Interfaces]
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_Wave%,NVVAD.I.Wave
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_Wave%,NVVAD.I.Wave
AddInterface=%KSCATEGORY_CAPTURE%,%KSNAME_Wave%,NVVAD.I.Wave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_Topology%,NVVAD.I.Topo

[NVVADARM.NT.HW]
AddReg=NVVADARM.NT.AddReg

[NVVADARM_32.NT.HW]
AddReg=NVVADARM.NT.AddReg

[NVVADARM_64.NT.HW]
AddReg=NVVADARM.NT.AddReg

[NVVADARM.NT.AddReg]
HKR,,DeviceCharacteristics,0x10001,0x0100      ; Use same security checks on relative opens
HKR,,Security,,"D:P(A;;GA;;;BA)(A;;GA;;;SY)(A;;GA;;;LS)(A;;GA;;;S-1-5-84-0-0-0-0-0)"   ; Allow generic-all access to Built-in administrators, Local system and user mode drivers

[NVVADARM.NT.Services]
AddService=NVVADARM,0x00000002,NVVADARM_Service_Inst

[NVVADARM_32.NT.Services]
AddService=NVVADARM,0x00000002,NVVADARM_Service_Inst

[NVVADARM_64.NT.Services]
AddService=NVVADARM,0x00000002,NVVADARM_Service_Inst

[NVVADARM.AddReg]
HKR,,AssociatedFilters,,"wdmaud,swmidi,redbook"
HKR,,Driver,,nvvadarm.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,,%NVVADARM.DeviceDesc%
HKR,Drivers\midi\wdmaud.drv,Description,,%NVVADARM.DeviceDesc%
HKR,Drivers\mixer\wdmaud.drv,Description,,%NVVADARM.DeviceDesc%
HKR,,DeviceCharacteristics,0x10001,0x0100      ; Use same security checks on relative opens
HKR,,Security,,"D:P(A;;GA;;;BA)(A;;GA;;;SY)(A;;GA;;;LS)(A;;GA;;;S-1-5-84-0-0-0-0-0)"   ; Allow generic-all access to Built-in administrators, Local system and user mode drivers

;======================================================
; COMMON
;======================================================
[NVVAD.AddReg]
HKR,Settings,PropertyFL,0x10001,0x00000000

[NVVAD.I.Wave]
AddReg=NVVAD.I.Wave.AddReg

[NVVAD.I.Wave.AddReg]
HKR,,CLSID,,%Proxy.CLSID%
HKR,,FriendlyName,,%NVVAD.Wave.szPname%

[NVVAD.I.Topo]
AddReg=NVVAD.I.Topo.AddReg

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

[NVVADARM_Service_Inst]
DisplayName=%NVVADARM.SvcDesc%
ServiceType=1
StartType=3
ErrorControl=1
ServiceBinary=%10%\system32\drivers\nvvadarm.sys

;======================================================
; FILES
;======================================================
[DestinationDirs]
NVVADARM.CopyList=10,system32\drivers
NVAUDCAP.CopyList=10,system32
CoInstaller_CopyFiles_32=11
CoInstaller_CopyFiles_64=11

[SourceDisksNames]
222="NVVAD Driver Disk",,,

[SourceDisksFiles]
nvvadarm.sys=222
nvaudcaparm.dll=222

[SourceDisksFiles.x86]
nvmcvadgenco32.dll=222

[SourceDisksFiles.amd64]
nvmcvadgenco64.dll=222

[NVVADARM.CopyList]
nvvadarm.sys

[NVAUDCAP.CopyList]
nvaudcaparm.dll

;======================================================
; CoInstaller
;======================================================
[NVVADARM_32.CoInstallers]
AddReg=CoInstaller_AddReg_32
CopyFiles=CoInstaller_CopyFiles_32
    
[NVVADARM_64.CoInstallers]
AddReg=CoInstaller_AddReg_64
CopyFiles=CoInstaller_CopyFiles_64

[NVVADARM_32.NT.CoInstallers]
AddReg=CoInstaller_AddReg_32
CopyFiles=CoInstaller_CopyFiles_32
    
[NVVADARM_64.NT.CoInstallers]
AddReg=CoInstaller_AddReg_64
CopyFiles=CoInstaller_CopyFiles_64

[nv_CoInstaller_Data]
NVPackageName = Miracast.VirtualAudio
OriginalInfSourcePath = %01%

[CoInstaller_CopyFiles_32]
nvmcvadgenco32.dll,,,0x00004000

[CoInstaller_AddReg_32]
HKR,,CoInstallers32,0x00010000,"nvmcvadgenco32.dll,NvGenericCoInstall"

[CoInstaller_CopyFiles_64]
nvmcvadgenco64.dll,,,0x00004000

[CoInstaller_AddReg_64]
HKR,,CoInstallers32,0x00010000,"nvmcvadgenco64.dll,NvGenericCoInstall"

;======================================================
; STRINGS
;======================================================
[Strings]
NV="NVIDIA"
MfgName="NVIDIA"
NVVADARM.DeviceDesc="NVIDIA Miracast Audio"

NVVAD.Wave.szPname="Miracast Wave"
NVVAD.Topo.szPname="Miracast Topology"

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

KSNAME_Wave="Wave"
KSNAME_Topology="Topology"

NVVADARM.SvcDesc="NVIDIA Miracast Audio"

MediaCategories="SYSTEM\CurrentControlSet\Control\MediaCategories"

Simple.NameGuid="{946A7B1A-EBBC-422a-A81F-F07C8D40D3B4}"
Simple.Name="NVIDIA Miracast Audio"

