;Copyright (c) Microsoft Corporation. All rights reserved.
;
;Module Name:
;    HDAUDIO.INF
;
;Abstract:
;    INF file for installing the Microsoft UAA Function Driver for High
;    Definition Audio
;

[Version]
Signature="$Windows NT$"
Class=MEDIA
ClassGuid={4d36e96c-e325-11ce-bfc1-08002be10318}
Provider=Microsoft
DriverVer=11/19/2010,6.1.7601.17514
PnPLockdown=1

[SourceDisksNames]
3426=windows cd

[SourceDisksFiles]
hdaudio.sys         = 3426

[DestinationDirs]
DefaultDestDir      =10; dirid = \system32\drivers
HdAudModel.CopyList =10,system32\drivers

[Manufacturer]
Microsoft = Microsoft, ntx86

[SignatureAttributes]
drmk.sys=SignatureAttributes.DRM
hdaudio.sys=SignatureAttributes.DRM
portcls.sys=SignatureAttributes.DRM

[SignatureAttributes.DRM]
DRMLevel=1300

;============================================================================

[ControlFlags]
ExcludeFromSelect = *

[Microsoft.ntx86]

%HdAudioFunctionDriver.Generic.DeviceDesc%  = HdAudModel, ,HDAUDIO\FUNC_01

[HdAudModel]
Include=ks.inf,wdmaudio.inf
Needs=KS.Registration,WDMAUDIO.Registration,mssysfx.CopyFilesAndRegister
CopyFiles = HdAudModel.CopyList
AddReg    = HdAudModel.AddReg
AddProperty = HdAudBranding.AddProperty, HdAudModel.AddProperty

; Exclude Sony_VGC-RCx110G
ExcludeID = HDAUDIO\FUNC_01&VEN_8384&DEV_7661&SUBSYS_104D0800&REV_1042
; Exclude Sony Vaio VGX-XL1
ExcludeID = HDAUDIO\FUNC_01&VEN_8384&DEV_7661&SUBSYS_104D0B00&REV_1042

; Enable driver to do its own volume persistence
[HdAudModel.AddProperty]
{F3E80BEF-1723-4FF2-BCC4-7F83DC5E46D4},2,7,,1


; Called by needs entry in oem inf -- DO NOT REMOVE
[HdAudOEM.CopyFiles]
CopyFiles=HdAudModel.CopyList

; Called by needs entry in oem inf -- DO NOT REMOVE
[HdAudOEM.AddReg]
AddReg=HdAudModel.AddReg

[HdAudModel.HW]
AddReg = HdAudSecurity.AddReg

; Called by needs entry in oem inf -- DO NOT REMOVE
[HdAudModel.Services]
AddService=HdAudAddService, 0x00000002, HdAud_Service_Install

[HdAud_Service_Install]
DisplayName   = %UAAFunctionDriverForHdAudio.SvcDesc%
ServiceType   = 1
StartType     = 3
ErrorControl  = 1
ServiceBinary = %10%\system32\drivers\HdAudio.sys

[HdAudModel.CopyList]
HdAudio.sys,,,0x0100

[HdAudModel.AddReg]
HKR,,Driver,,HdAudio.sys

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

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\aux\wdmaud.drv,Driver,,wdmaud.drv

HKR,Drivers\wave\wdmaud.drv,Description,,%HdAudioDeviceDescription%
HKR,Drivers\midi\wdmaud.drv,Description,,%HdAudioDeviceDescription%
HKR,Drivers\mixer\wdmaud.drv,Description,,%HdAudioDeviceDescription%
HKR,Drivers\aux\wdmaud.drv,Description,,%HdAudioDeviceDescription%

HKR,,DisableSetupDiChangeState,1,00,00,00,00 ; Set to 01,00,00,00 to disable proppage restarting of driver on policy change
; Driver global settings
HKR,GlobalSettings,DcOffsetWorkaround,1,01,00,00,00 ; Applies workaround for recording DC offset issue
HKR,GlobalSettings,ResetAudioFgOnStart,1,01,00,00,00 ; Enables resetting of audio FG on driver start
HKR,GlobalSettings,SysAudioTopoMiniportWorkaround,1,01,00,00,00 ; Enables holding ref on topo port & miniport when device is uninstantiated

HKR,GlobalSettings,ValidateCodecWrites,1,00,00,00,00 ; Enables readback of writes to codec registers
HKR,GlobalSettings,SendFakePcxCfgDefVerbs,1,00,00,00,00 ; Enables sending fake pin config default table
HKR,GlobalSettings,SpdifOutputEchosRearRenderWhenNoAc3,1,01,00,00,00 ; Slaves rear panel front channels to SPDIF
HKR,GlobalSettings,HpShutsOffRearSpeaker,1,00,00,00,00 ; Headphone does not mute rear speakers
HKR,GlobalSettings,HpMode,1,01,00,00,00 ; Headphone is slaved to rear panel front channels
HKR,GlobalSettings,EnableDynamicDevices,1,01,00,00,00 ; Headphone will come and go dynamically.
HKR,GlobalSettings,SetSpdifVCfg,1,01,00,00,00 ;  VCfg bit will be set on SPDIF out

; Registry key to enable waveRT by default
HKR,GlobalSettings,EnableWaveRT,1,01,00,00,00

HKR,GlobalSettings\\SpdifOut,ExternalSpdifReceiverSupportedSampleRates44100,1,00,00,00,00 ; By default, not supported
HKR,GlobalSettings\\SpdifOut,ExternalSpdifReceiverSupportedSampleRates48000,1,01,00,00,00 ; By default, only one supported
HKR,GlobalSettings\\SpdifOut,ExternalSpdifReceiverSupportedSampleRates96000,1,00,00,00,00 ; By default, not supported

HKR,GlobalSettings\\SpdifOut,ExternalSpdifReceiverSupportedBitDepths16,1,01,00,00,00 ; By default, only one supported
HKR,GlobalSettings\\SpdifOut,ExternalSpdifReceiverSupportedBitDepths20,1,00,00,00,00 ; By default, not supported
HKR,GlobalSettings\\SpdifOut,ExternalSpdifReceiverSupportedBitDepths24,1,00,00,00,00 ; By default, not supported
HKR,GlobalSettings\\SpdifOut,ExternalSpdifReceiverSupportedBitDepths32,1,00,00,00,00 ; By default, not supported

HKR,GlobalSettings\\SpdifIn,SpdifInputBitDepth,1,00,00,00,00 ; By default, 16 bit digital capture
HKR,GlobalSettings\\SpdifIn,SpdifInputSampleRate,1,01,00,00,00; By default, 48KHz digital capture

HKR,PowerSettings,ConservationIdleTime,3,1e,00,00,0     ; 10 seconds for idle power management when on battery
HKR,PowerSettings,PerformanceIdleTime,3,00,00,00,00     ; Not doing idle power management when on AC power
HKR,PowerSettings,IdlePowerState,3,03,00,00,00          ; go to D3 for idle power management

;IntHdAudGuid.PrimaryLineOutDac
HKLM,SYSTEM\CurrentControlSet\Control\MediaCategories\%HdAudGuidPrimaryLineOutDac%,Name,,%PrimaryLineOutDacName%
HKLM,SYSTEM\CurrentControlSet\Control\MediaCategories\%HdAudGuidPrimaryLineOutDac%,Display,1,00,00,00,00
HKLM,SYSTEM\CurrentControlSet\Control\MediaCategories\%HdAudGuidDisableDigitalOutput%,Name,,%DisableDigitalOutputName%
HKLM,SYSTEM\CurrentControlSet\Control\MediaCategories\%HdAudGuidDisableDigitalOutput%,Display,1,00,00,00,00
HKLM,SYSTEM\CurrentControlSet\Control\MediaCategories\%HdAudGuidFrontHPOutDac%,Name,,%FrontHPOutDacName%
HKLM,SYSTEM\CurrentControlSet\Control\MediaCategories\%HdAudGuidFrontHPOutDac%,Display,1,00,00,00,00

HKLM,SYSTEM\CurrentControlSet\Control\MediaCategories\%GUID.REDIRECTED_HEADPHONE_PIN%,Name,,%REDIRECTED_HEADPHONE.PinName%
HKLM,SYSTEM\CurrentControlSet\Control\MediaCategories\%GUID.REDIRECTED_HEADPHONE_PIN%,Display,1,00,00,00,00

HKLM,SYSTEM\CurrentControlSet\Control\MediaCategories\%GUID.REDIRECTED_INTERNAL_SPEAKER_PIN%,Name,,%REDIRECTED_INTERNAL_SPEAKER.PinName%
HKLM,SYSTEM\CurrentControlSet\Control\MediaCategories\%GUID.REDIRECTED_INTERNAL_SPEAKER_PIN%,Display,1,00,00,00,00


[HdAudBranding.AddProperty]
DeviceBrandingIcon,,,,"%1%\HDAudio.sys,-203"
DeviceVendorWebSite,,,,"http://www.microsoft.com"

;
; Add Interface sections. These refer to various model sections below.
;

[HdAudModel.Interfaces]

;
; Primary Speaker interfaces. Up to 5 are supported
;

AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eSpeakerWave%, HdAudModel.PrimarySpeakerWave
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_eSpeakerWave%, HdAudModel.PrimarySpeakerWave
AddInterface=%KSCATEGORY_REALTIME%,%KSNAME_eSpeakerWave%, HdAudModel.PrimarySpeakerWave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eSpeakerTopo%, HdAudModel.PrimarySpeakerTopo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_eSpeakerTopo%, HdAudModel.PrimarySpeakerTopo

AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eSpeaker2Wave%, HdAudModel.PrimarySpeaker2Wave
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_eSpeaker2Wave%, HdAudModel.PrimarySpeaker2Wave
AddInterface=%KSCATEGORY_REALTIME%,%KSNAME_eSpeaker2Wave%, HdAudModel.PrimarySpeaker2Wave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eSpeaker2Topo%, HdAudModel.PrimarySpeaker2Topo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_eSpeaker2Topo%, HdAudModel.PrimarySpeaker2Topo

AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eSpeaker3Wave%, HdAudModel.PrimarySpeaker3Wave
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_eSpeaker3Wave%, HdAudModel.PrimarySpeaker3Wave
AddInterface=%KSCATEGORY_REALTIME%,%KSNAME_eSpeaker3Wave%, HdAudModel.PrimarySpeaker3Wave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eSpeaker3Topo%, HdAudModel.PrimarySpeaker3Topo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_eSpeaker3Topo%, HdAudModel.PrimarySpeaker3Topo

AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eSpeaker4Wave%, HdAudModel.PrimarySpeaker4Wave
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_eSpeaker4Wave%, HdAudModel.PrimarySpeaker4Wave
AddInterface=%KSCATEGORY_REALTIME%,%KSNAME_eSpeaker4Wave%, HdAudModel.PrimarySpeaker4Wave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eSpeaker4Topo%, HdAudModel.PrimarySpeaker4Topo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_eSpeaker4Topo%, HdAudModel.PrimarySpeaker4Topo

AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eSpeaker5Wave%, HdAudModel.PrimarySpeaker5Wave
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_eSpeaker5Wave%, HdAudModel.PrimarySpeaker5Wave
AddInterface=%KSCATEGORY_REALTIME%,%KSNAME_eSpeaker5Wave%, HdAudModel.PrimarySpeaker5Wave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eSpeaker5Topo%, HdAudModel.PrimarySpeaker5Topo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_eSpeaker5Topo%, HdAudModel.PrimarySpeaker5Topo


;
; Primary line out interfaces. Up to 5 are supported
;

AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eLineOutWave%, HdAudModel.PrimaryLineOutWave
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_eLineOutWave%, HdAudModel.PrimaryLineOutWave
AddInterface=%KSCATEGORY_REALTIME%,%KSNAME_eLineOutWave%, HdAudModel.PrimaryLineOutWave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eLineOutTopo%, HdAudModel.PrimaryLineOutTopo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_eLineOutTopo%, HdAudModel.PrimaryLineOutTopo

AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eLineOut2Wave%, HdAudModel.PrimaryLineOut2Wave
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_eLineOut2Wave%, HdAudModel.PrimaryLineOut2Wave
AddInterface=%KSCATEGORY_REALTIME%,%KSNAME_eLineOut2Wave%, HdAudModel.PrimaryLineOut2Wave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eLineOut2Topo%, HdAudModel.PrimaryLineOut2Topo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_eLineOut2Topo%, HdAudModel.PrimaryLineOut2Topo

AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eLineOut3Wave%, HdAudModel.PrimaryLineOut3Wave
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_eLineOut3Wave%, HdAudModel.PrimaryLineOut3Wave
AddInterface=%KSCATEGORY_REALTIME%,%KSNAME_eLineOut3Wave%, HdAudModel.PrimaryLineOut3Wave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eLineOut3Topo%, HdAudModel.PrimaryLineOut3Topo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_eLineOut3Topo%, HdAudModel.PrimaryLineOut3Topo

AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eLineOut4Wave%, HdAudModel.PrimaryLineOut4Wave
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_eLineOut4Wave%, HdAudModel.PrimaryLineOut4Wave
AddInterface=%KSCATEGORY_REALTIME%,%KSNAME_eLineOut4Wave%, HdAudModel.PrimaryLineOut4Wave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eLineOut4Topo%, HdAudModel.PrimaryLineOut4Topo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_eLineOut4Topo%, HdAudModel.PrimaryLineOut4Topo

AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eLineOut5Wave%, HdAudModel.PrimaryLineOut5Wave
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_eLineOut5Wave%, HdAudModel.PrimaryLineOut5Wave
AddInterface=%KSCATEGORY_REALTIME%,%KSNAME_eLineOut5Wave%, HdAudModel.PrimaryLineOut5Wave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eLineOut5Topo%, HdAudModel.PrimaryLineOut5Topo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_eLineOut5Topo%, HdAudModel.PrimaryLineOut5Topo

;
; Primary Line Connector interfaces. Up to 5 are supported
;

AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eLineConnectorWave%, HdAudModel.PrimaryLineConnectorWave
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_eLineConnectorWave%, HdAudModel.PrimaryLineConnectorWave
AddInterface=%KSCATEGORY_REALTIME%,%KSNAME_eLineConnectorWave%, HdAudModel.PrimaryLineConnectorWave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eLineConnectorTopo%, HdAudModel.PrimaryLineConnectorTopo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_eLineConnectorTopo%, HdAudModel.PrimaryLineConnectorTopo

AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eLineConnector2Wave%, HdAudModel.PrimaryLineConnector2Wave
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_eLineConnector2Wave%, HdAudModel.PrimaryLineConnector2Wave
AddInterface=%KSCATEGORY_REALTIME%,%KSNAME_eLineConnector2Wave%, HdAudModel.PrimaryLineConnector2Wave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eLineConnector2Topo%, HdAudModel.PrimaryLineConnector2Topo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_eLineConnector2Topo%, HdAudModel.PrimaryLineConnector2Topo

AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eLineConnector3Wave%, HdAudModel.PrimaryLineConnector3Wave
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_eLineConnector3Wave%, HdAudModel.PrimaryLineConnector3Wave
AddInterface=%KSCATEGORY_REALTIME%,%KSNAME_eLineConnector3Wave%, HdAudModel.PrimaryLineConnector3Wave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eLineConnector3Topo%, HdAudModel.PrimaryLineConnector3Topo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_eLineConnector3Topo%, HdAudModel.PrimaryLineConnector3Topo

AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eLineConnector4Wave%, HdAudModel.PrimaryLineConnector4Wave
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_eLineConnector4Wave%, HdAudModel.PrimaryLineConnector4Wave
AddInterface=%KSCATEGORY_REALTIME%,%KSNAME_eLineConnector4Wave%, HdAudModel.PrimaryLineConnector4Wave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eLineConnector4Topo%, HdAudModel.PrimaryLineConnector4Topo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_eLineConnector4Topo%, HdAudModel.PrimaryLineConnector4Topo

AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eLineConnector5Wave%, HdAudModel.PrimaryLineConnector5Wave
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_eLineConnector5Wave%, HdAudModel.PrimaryLineConnector5Wave
AddInterface=%KSCATEGORY_REALTIME%,%KSNAME_eLineConnector5Wave%, HdAudModel.PrimaryLineConnector5Wave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eLineConnector5Topo%, HdAudModel.PrimaryLineConnector5Topo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_eLineConnector5Topo%, HdAudModel.PrimaryLineConnector5Topo

;
; Independent Headphone interfaces. Up to 5 are supported
;

AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eHeadphoneWave%, HdAudModel.IndependentHeadphoneWave
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_eHeadphoneWave%, HdAudModel.IndependentHeadphoneWave
AddInterface=%KSCATEGORY_REALTIME%,%KSNAME_eHeadphoneWave%, HdAudModel.IndependentHeadphoneWave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eHeadphoneTopo%, HdAudModel.IndependentHeadphoneTopo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_eHeadphoneTopo%, HdAudModel.IndependentHeadphoneTopo

AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eHeadphone2Wave%, HdAudModel.IndependentHeadphone2Wave
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_eHeadphone2Wave%, HdAudModel.IndependentHeadphone2Wave
AddInterface=%KSCATEGORY_REALTIME%,%KSNAME_eHeadphone2Wave%, HdAudModel.IndependentHeadphone2Wave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eHeadphone2Topo%, HdAudModel.IndependentHeadphone2Topo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_eHeadphone2Topo%, HdAudModel.IndependentHeadphone2Topo

AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eHeadphone3Wave%, HdAudModel.IndependentHeadphone3Wave
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_eHeadphone3Wave%, HdAudModel.IndependentHeadphone3Wave
AddInterface=%KSCATEGORY_REALTIME%,%KSNAME_eHeadphone3Wave%, HdAudModel.IndependentHeadphone3Wave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eHeadphone3Topo%, HdAudModel.IndependentHeadphone3Topo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_eHeadphone3Topo%, HdAudModel.IndependentHeadphone3Topo

AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eHeadphone4Wave%, HdAudModel.IndependentHeadphone4Wave
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_eHeadphone4Wave%, HdAudModel.IndependentHeadphone4Wave
AddInterface=%KSCATEGORY_REALTIME%,%KSNAME_eHeadphone4Wave%, HdAudModel.IndependentHeadphone4Wave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eHeadphone4Topo%, HdAudModel.IndependentHeadphone4Topo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_eHeadphone4Topo%, HdAudModel.IndependentHeadphone4Topo

AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eHeadphone5Wave%, HdAudModel.IndependentHeadphone5Wave
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_eHeadphone5Wave%, HdAudModel.IndependentHeadphone5Wave
AddInterface=%KSCATEGORY_REALTIME%,%KSNAME_eHeadphone5Wave%, HdAudModel.IndependentHeadphone5Wave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eHeadphone5Topo%, HdAudModel.IndependentHeadphone5Topo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_eHeadphone5Topo%, HdAudModel.IndependentHeadphone5Topo

;
; eSpdifOutSpeaker. By design, only one is supported
; Spdif Out + generic render combination interfaces. By design, at most one of these is supported
;

AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eSpdifOutSpeakerWave%, HdAudModel.SpdifOutSpeakerWave
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_eSpdifOutSpeakerWave%, HdAudModel.SpdifOutSpeakerWave
AddInterface=%KSCATEGORY_REALTIME%,%KSNAME_eSpdifOutSpeakerWave%, HdAudModel.SpdifOutSpeakerWave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eSpdifOutSpeakerTopo%, HdAudModel.SpdifOutSpeakerTopo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_eSpdifOutSpeakerTopo%, HdAudModel.SpdifOutSpeakerTopo

;
; eSpdifOutLineOut. By design, only one is supported
; Spdif Out + generic render combination interfaces. By design, at most one of these is supported
;

AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eSpdifOutLineOutWave%, HdAudModel.SpdifOutLineOutWave
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_eSpdifOutLineOutWave%, HdAudModel.SpdifOutLineOutWave
AddInterface=%KSCATEGORY_REALTIME%,%KSNAME_eSpdifOutLineOutWave%, HdAudModel.SpdifOutLineOutWave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eSpdifOutLineOutTopo%, HdAudModel.SpdifOutLineOutTopo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_eSpdifOutLineOutTopo%, HdAudModel.SpdifOutLineOutTopo

;
; TODO: eHeadphoneSpdifOutSpeaker is not supported yet by the driver
; TODO: eHeadphoneSpdifOutLineOut is not supported yet by the driver
;

; SPDIF Out interfaces. 
;

AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eSpdifOutWave%, HdAudModel.DigitalOutputWave
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_eSpdifOutWave%, HdAudModel.DigitalOutputWave
AddInterface=%KSCATEGORY_REALTIME%,%KSNAME_eSpdifOutWave%, HdAudModel.DigitalOutputWave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eSpdifOutTopo%, HdAudModel.DigitalOutputTopo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_eSpdifOutTopo%, HdAudModel.DigitalOutputTopo

AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eSpdifOut2Wave%, HdAudModel.DigitalOutput2Wave
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_eSpdifOut2Wave%, HdAudModel.DigitalOutput2Wave
AddInterface=%KSCATEGORY_REALTIME%,%KSNAME_eSpdifOut2Wave%, HdAudModel.DigitalOutput2Wave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eSpdifOut2Topo%, HdAudModel.DigitalOutput2Topo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_eSpdifOut2Topo%, HdAudModel.DigitalOutput2Topo

AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eSpdifOut3Wave%, HdAudModel.DigitalOutput3Wave
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_eSpdifOut3Wave%, HdAudModel.DigitalOutput3Wave
AddInterface=%KSCATEGORY_REALTIME%,%KSNAME_eSpdifOut3Wave%, HdAudModel.DigitalOutput3Wave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eSpdifOut3Topo%, HdAudModel.DigitalOutput3Topo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_eSpdifOut3Topo%, HdAudModel.DigitalOutput3Topo

AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eSpdifOut4Wave%, HdAudModel.DigitalOutput4Wave
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_eSpdifOut4Wave%, HdAudModel.DigitalOutput4Wave
AddInterface=%KSCATEGORY_REALTIME%,%KSNAME_eSpdifOut4Wave%, HdAudModel.DigitalOutput4Wave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eSpdifOut4Topo%, HdAudModel.DigitalOutput4Topo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_eSpdifOut4Topo%, HdAudModel.DigitalOutput4Topo

AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eSpdifOut5Wave%, HdAudModel.DigitalOutput5Wave
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_eSpdifOut5Wave%, HdAudModel.DigitalOutput5Wave
AddInterface=%KSCATEGORY_REALTIME%,%KSNAME_eSpdifOut5Wave%, HdAudModel.DigitalOutput5Wave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eSpdifOut5Topo%, HdAudModel.DigitalOutput5Topo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_eSpdifOut5Topo%, HdAudModel.DigitalOutput5Topo
;
; HDMI Out interfaces. 
;

AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eHDMIOutWave%, HdAudModel.HDMIOutputWave
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_eHDMIOutWave%, HdAudModel.HDMIOutputWave
AddInterface=%KSCATEGORY_REALTIME%,%KSNAME_eHDMIOutWave%, HdAudModel.HDMIOutputWave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eHDMIOutTopo%, HdAudModel.HDMIOutputTopo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_eHDMIOutTopo%, HdAudModel.HDMIOutputTopo


AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eHDMIOut2Wave%, HdAudModel.HDMIOutput2Wave
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_eHDMIOut2Wave%, HdAudModel.HDMIOutput2Wave
AddInterface=%KSCATEGORY_REALTIME%,%KSNAME_eHDMIOut2Wave%, HdAudModel.HDMIOutput2Wave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eHDMIOut2Topo%, HdAudModel.HDMIOutput2Topo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_eHDMIOut2Topo%, HdAudModel.HDMIOutput2Topo


AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eHDMIOut3Wave%, HdAudModel.HDMIOutput3Wave
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_eHDMIOut3Wave%, HdAudModel.HDMIOutput3Wave
AddInterface=%KSCATEGORY_REALTIME%,%KSNAME_eHDMIOut3Wave%, HdAudModel.HDMIOutput3Wave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eHDMIOut3Topo%, HdAudModel.HDMIOutput3Topo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_eHDMIOut3Topo%, HdAudModel.HDMIOutput3Topo

AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eHDMIOut4Wave%, HdAudModel.HDMIOutput4Wave
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_eHDMIOut4Wave%, HdAudModel.HDMIOutput4Wave
AddInterface=%KSCATEGORY_REALTIME%,%KSNAME_eHDMIOut4Wave%, HdAudModel.HDMIOutput4Wave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eHDMIOut4Topo%, HdAudModel.HDMIOutput4Topo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_eHDMIOut4Topo%, HdAudModel.HDMIOutput4Topo

AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eHDMIOut5Wave%, HdAudModel.HDMIOutput5Wave
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_eHDMIOut5Wave%, HdAudModel.HDMIOutput5Wave
AddInterface=%KSCATEGORY_REALTIME%,%KSNAME_eHDMIOut5Wave%, HdAudModel.HDMIOutput5Wave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eHDMIOut5Topo%, HdAudModel.HDMIOutput5Topo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_eHDMIOut5Topo%, HdAudModel.HDMIOutput5Topo
;
; Primary line out interfaces with slaved headphone. Up to 5 are supported
; Note that this points to the Primary LineOut Model & Add RegSection.
;

AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eSlavedHpSpeakerWave%, HdAudModel.SlavedHpSpeakerWave
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_eSlavedHpSpeakerWave%, HdAudModel.SlavedHpSpeakerWave
AddInterface=%KSCATEGORY_REALTIME%,%KSNAME_eSlavedHpSpeakerWave%, HdAudModel.SlavedHpSpeakerWave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eSlavedHpSpeakerTopo%, HdAudModel.SlavedHpSpeakerTopo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_eSlavedHpSpeakerTopo%, HdAudModel.SlavedHpSpeakerTopo

AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eSlavedHpSpeaker2Wave%, HdAudModel.SlavedHpSpeaker2Wave
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_eSlavedHpSpeaker2Wave%, HdAudModel.SlavedHpSpeaker2Wave
AddInterface=%KSCATEGORY_REALTIME%,%KSNAME_eSlavedHpSpeaker2Wave%, HdAudModel.SlavedHpSpeaker2Wave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eSlavedHpSpeaker2Topo%, HdAudModel.SlavedHpSpeaker2Topo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_eSlavedHpSpeaker2Topo%, HdAudModel.SlavedHpSpeaker2Topo

AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eSlavedHpSpeaker3Wave%, HdAudModel.SlavedHpSpeaker3Wave
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_eSlavedHpSpeaker3Wave%, HdAudModel.SlavedHpSpeaker3Wave
AddInterface=%KSCATEGORY_REALTIME%,%KSNAME_eSlavedHpSpeaker3Wave%, HdAudModel.SlavedHpSpeaker3Wave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eSlavedHpSpeaker3Topo%, HdAudModel.SlavedHpSpeaker3Topo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_eSlavedHpSpeaker3Topo%, HdAudModel.SlavedHpSpeaker3Topo

AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eSlavedHpSpeaker4Wave%, HdAudModel.SlavedHpSpeaker4Wave
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_eSlavedHpSpeaker4Wave%, HdAudModel.SlavedHpSpeaker4Wave
AddInterface=%KSCATEGORY_REALTIME%,%KSNAME_eSlavedHpSpeaker4Wave%, HdAudModel.SlavedHpSpeaker4Wave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eSlavedHpSpeaker4Topo%, HdAudModel.SlavedHpSpeaker4Topo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_eSlavedHpSpeaker4Topo%, HdAudModel.SlavedHpSpeaker4Topo

AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eSlavedHpSpeaker5Wave%, HdAudModel.SlavedHpSpeaker5Wave
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_eSlavedHpSpeaker5Wave%, HdAudModel.SlavedHpSpeaker5Wave
AddInterface=%KSCATEGORY_REALTIME%,%KSNAME_eSlavedHpSpeaker5Wave%, HdAudModel.SlavedHpSpeaker5Wave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eSlavedHpSpeaker5Topo%, HdAudModel.SlavedHpSpeaker5Topo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_eSlavedHpSpeaker5Topo%, HdAudModel.SlavedHpSpeaker5Topo

AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eSlavedHpLineOutWave%, HdAudModel.SlavedHpLineOutWave
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_eSlavedHpLineOutWave%, HdAudModel.SlavedHpLineOutWave
AddInterface=%KSCATEGORY_REALTIME%,%KSNAME_eSlavedHpLineOutWave%, HdAudModel.SlavedHpLineOutWave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eSlavedHpLineOutTopo%, HdAudModel.SlavedHpLineOutTopo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_eSlavedHpLineOutTopo%, HdAudModel.SlavedHpLineOutTopo

AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eSlavedHpLineOut2Wave%, HdAudModel.SlavedHpLineOut2Wave
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_eSlavedHpLineOut2Wave%, HdAudModel.SlavedHpLineOut2Wave
AddInterface=%KSCATEGORY_REALTIME%,%KSNAME_eSlavedHpLineOut2Wave%, HdAudModel.SlavedHpLineOut2Wave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eSlavedHpLineOut2Topo%, HdAudModel.SlavedHpLineOut2Topo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_eSlavedHpLineOut2Topo%, HdAudModel.SlavedHpLineOut2Topo

AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eSlavedHpLineOut3Wave%, HdAudModel.SlavedHpLineOut3Wave
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_eSlavedHpLineOut3Wave%, HdAudModel.SlavedHpLineOut3Wave
AddInterface=%KSCATEGORY_REALTIME%,%KSNAME_eSlavedHpLineOut3Wave%, HdAudModel.SlavedHpLineOut3Wave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eSlavedHpLineOut3Topo%, HdAudModel.SlavedHpLineOut3Topo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_eSlavedHpLineOut3Topo%, HdAudModel.SlavedHpLineOut3Topo

AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eSlavedHpLineOut4Wave%, HdAudModel.SlavedHpLineOut4Wave
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_eSlavedHpLineOut4Wave%, HdAudModel.SlavedHpLineOut4Wave
AddInterface=%KSCATEGORY_REALTIME%,%KSNAME_eSlavedHpLineOut4Wave%, HdAudModel.SlavedHpLineOut4Wave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eSlavedHpLineOut4Topo%, HdAudModel.SlavedHpLineOut4Topo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_eSlavedHpLineOut4Topo%, HdAudModel.SlavedHpLineOut4Topo

AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eSlavedHpLineOut5Wave%, HdAudModel.SlavedHpLineOut5Wave
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_eSlavedHpLineOut5Wave%, HdAudModel.SlavedHpLineOut5Wave
AddInterface=%KSCATEGORY_REALTIME%,%KSNAME_eSlavedHpLineOut5Wave%, HdAudModel.SlavedHpLineOut5Wave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eSlavedHpLineOut5Topo%, HdAudModel.SlavedHpLineOut5Topo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_eSlavedHpLineOut5Topo%, HdAudModel.SlavedHpLineOut5Topo


;
; Primary line out interfaces with mono out. By design, only one is supported.
; Note that this points to the Primary LineOut Model & Add RegSection.
;

AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eSlavedLineOutSpeakerWave%, HdAudModel.PrimaryRedirLineOutWave
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_eSlavedLineOutSpeakerWave%, HdAudModel.PrimaryRedirLineOutWave
AddInterface=%KSCATEGORY_REALTIME%,%KSNAME_eSlavedLineOutSpeakerWave%, HdAudModel.PrimaryRedirLineOutWave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eSlavedLineOutSpeakerTopo%, HdAudModel.PrimaryRedirLineOutTopo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_eSlavedLineOutSpeakerTopo%, HdAudModel.PrimaryRedirLineOutTopo

AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eSlavedSpeakerSpeakerWave%, HdAudModel.PrimaryRedirSpeakerWave
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_eSlavedSpeakerSpeakerWave%, HdAudModel.PrimaryRedirSpeakerWave
AddInterface=%KSCATEGORY_REALTIME%,%KSNAME_eSlavedSpeakerSpeakerWave%, HdAudModel.PrimaryRedirSpeakerWave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eSlavedSpeakerSpeakerTopo%, HdAudModel.PrimaryRedirSpeakerTopo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_eSlavedSpeakerSpeakerTopo%, HdAudModel.PrimaryRedirSpeakerTopo

;
; Independent microphone interfaces. Up to 5 are supported.
;

AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eMicInWave%, HdAudModel.IndependentMicWave
AddInterface=%KSCATEGORY_CAPTURE%,%KSNAME_eMicInWave%, HdAudModel.IndependentMicWave
AddInterface=%KSCATEGORY_REALTIME%,%KSNAME_eMicInWave%, HdAudModel.IndependentMicWave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eMicInTopo%, HdAudModel.IndependentMicTopo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_eMicInTopo%, HdAudModel.IndependentMicTopo

AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eMicIn2Wave%, HdAudModel.IndependentMic2Wave
AddInterface=%KSCATEGORY_CAPTURE%,%KSNAME_eMicIn2Wave%, HdAudModel.IndependentMic2Wave
AddInterface=%KSCATEGORY_REALTIME%,%KSNAME_eMicIn2Wave%, HdAudModel.IndependentMic2Wave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eMicIn2Topo%, HdAudModel.IndependentMic2Topo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_eMicIn2Topo%, HdAudModel.IndependentMic2Topo

AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eMicIn3Wave%, HdAudModel.IndependentMic3Wave
AddInterface=%KSCATEGORY_CAPTURE%,%KSNAME_eMicIn3Wave%, HdAudModel.IndependentMic3Wave
AddInterface=%KSCATEGORY_REALTIME%,%KSNAME_eMicIn3Wave%, HdAudModel.IndependentMic3Wave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eMicIn3Topo%, HdAudModel.IndependentMic3Topo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_eMicIn3Topo%, HdAudModel.IndependentMic3Topo

AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eMicIn4Wave%, HdAudModel.IndependentMic4Wave
AddInterface=%KSCATEGORY_CAPTURE%,%KSNAME_eMicIn4Wave%, HdAudModel.IndependentMic4Wave
AddInterface=%KSCATEGORY_REALTIME%,%KSNAME_eMicIn4Wave%, HdAudModel.IndependentMic4Wave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eMicIn4Topo%, HdAudModel.IndependentMic4Topo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_eMicIn4Topo%, HdAudModel.IndependentMic4Topo

AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eMicIn5Wave%, HdAudModel.IndependentMic5Wave
AddInterface=%KSCATEGORY_CAPTURE%,%KSNAME_eMicIn5Wave%, HdAudModel.IndependentMic5Wave
AddInterface=%KSCATEGORY_REALTIME%,%KSNAME_eMicIn5Wave%, HdAudModel.IndependentMic5Wave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eMicIn5Topo%, HdAudModel.IndependentMic5Topo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_eMicIn5Topo%, HdAudModel.IndependentMic5Topo

;
; CD line in interfaces. Only 1 instance is supported
;

AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eCDInWave%, HdAudModel.CDInWave
AddInterface=%KSCATEGORY_CAPTURE%,%KSNAME_eCDInWave%, HdAudModel.CDInWave
AddInterface=%KSCATEGORY_REALTIME%,%KSNAME_eCDInWave%, HdAudModel.CDInWave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eCDInTopo%, HdAudModel.CDInTopo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_eCDInTopo%, HdAudModel.CDInTopo

;
; Primary line in interfaces. Up to 5 are supported
;

AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eLineInWave%, HdAudModel.PrimaryLineInWave
AddInterface=%KSCATEGORY_CAPTURE%,%KSNAME_eLineInWave%, HdAudModel.PrimaryLineInWave
AddInterface=%KSCATEGORY_REALTIME%,%KSNAME_eLineInWave%, HdAudModel.PrimaryLineInWave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eLineInTopo%, HdAudModel.PrimaryLineInTopo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_eLineInTopo%, HdAudModel.PrimaryLineInTopo

AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eLineIn2Wave%, HdAudModel.PrimaryLineIn2Wave
AddInterface=%KSCATEGORY_CAPTURE%,%KSNAME_eLineIn2Wave%, HdAudModel.PrimaryLineIn2Wave
AddInterface=%KSCATEGORY_REALTIME%,%KSNAME_eLineIn2Wave%, HdAudModel.PrimaryLineIn2Wave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eLineIn2Topo%, HdAudModel.PrimaryLineIn2Topo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_eLineIn2Topo%, HdAudModel.PrimaryLineIn2Topo

AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eLineIn3Wave%, HdAudModel.PrimaryLineIn3Wave
AddInterface=%KSCATEGORY_CAPTURE%,%KSNAME_eLineIn3Wave%, HdAudModel.PrimaryLineIn3Wave
AddInterface=%KSCATEGORY_REALTIME%,%KSNAME_eLineIn3Wave%, HdAudModel.PrimaryLineIn3Wave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eLineIn3Topo%, HdAudModel.PrimaryLineIn3Topo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_eLineIn3Topo%, HdAudModel.PrimaryLineIn3Topo

AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eLineIn4Wave%, HdAudModel.PrimaryLineIn4Wave
AddInterface=%KSCATEGORY_CAPTURE%,%KSNAME_eLineIn4Wave%, HdAudModel.PrimaryLineIn4Wave
AddInterface=%KSCATEGORY_REALTIME%,%KSNAME_eLineIn4Wave%, HdAudModel.PrimaryLineIn4Wave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eLineIn4Topo%, HdAudModel.PrimaryLineIn4Topo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_eLineIn4Topo%, HdAudModel.PrimaryLineIn4Topo

AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eLineIn5Wave%, HdAudModel.PrimaryLineIn5Wave
AddInterface=%KSCATEGORY_CAPTURE%,%KSNAME_eLineIn5Wave%, HdAudModel.PrimaryLineIn5Wave
AddInterface=%KSCATEGORY_REALTIME%,%KSNAME_eLineIn5Wave%, HdAudModel.PrimaryLineIn5Wave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eLineIn5Topo%, HdAudModel.PrimaryLineIn5Topo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_eLineIn5Topo%, HdAudModel.PrimaryLineIn5Topo

;
; Digital input interfaces. Only one is supported
;

AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eSpdifInWave%, HdAudModel.DigitalInputWave
AddInterface=%KSCATEGORY_CAPTURE%,%KSNAME_eSpdifInWave%, HdAudModel.DigitalInputWave
AddInterface=%KSCATEGORY_REALTIME%,%KSNAME_eSpdifInWave%, HdAudModel.DigitalInputWave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eSpdifInTopo%, HdAudModel.DigitalInputTopo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_eSpdifInTopo%, HdAudModel.DigitalInputTopo

;
; Aux input interfaces. By design, only one is supported
;

AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eAuxInWave%, AzAudModel.AuxInWave
AddInterface=%KSCATEGORY_CAPTURE%,%KSNAME_eAuxInWave%, AzAudModel.AuxInWave
AddInterface=%KSCATEGORY_REALTIME%,%KSNAME_eAuxInWave%, AzAudModel.AuxInWave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eAuxInTopo%, AzAudModel.AuxInTopo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_eAuxInTopo%, AzAudModel.AuxInTopo

;
; Muxed Capture interfaces. Only 1 instance is supported
;

AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eMuxedCaptureWave%, HdAudModel.MuxedCaptureWave
AddInterface=%KSCATEGORY_CAPTURE%,%KSNAME_eMuxedCaptureWave%, HdAudModel.MuxedCaptureWave
AddInterface=%KSCATEGORY_REALTIME%,%KSNAME_eMuxedCaptureWave%, HdAudModel.MuxedCaptureWave 
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eMuxedCaptureTopo%, HdAudModel.MuxedCaptureTopo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_eMuxedCaptureTopo%, HdAudModel.MuxedCaptureTopo

;
; Mixed Capture interfaces. Only 1 instance is supported
;

AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eMixedCaptureWave%, HdAudModel.MixedCaptureWave
AddInterface=%KSCATEGORY_CAPTURE%,%KSNAME_eMixedCaptureWave%, HdAudModel.MixedCaptureWave
AddInterface=%KSCATEGORY_REALTIME%,%KSNAME_eMixedCaptureWave%, HdAudModel.MixedCaptureWave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eMixedCaptureTopo%, HdAudModel.MixedCaptureTopo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_eMixedCaptureTopo%, HdAudModel.MixedCaptureTopo

;
; Mic Array interfaces. By design, only one is supported
;

AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eMicArrayWave%, HdAudModel.MicArrayWave
AddInterface=%KSCATEGORY_CAPTURE%,%KSNAME_eMicArrayWave%, HdAudModel.MicArrayWave
AddInterface=%KSCATEGORY_REALTIME%,%KSNAME_eMicArrayWave%, HdAudModel.MicArrayWave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eMicArrayTopo%, HdAudModel.MicArrayTopo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_eMicArrayTopo%, HdAudModel.MicArrayTopo

; Settings for system effect begins
;
; System Effects settings
[HDAudio.SysFx.Render]
;; Note: MSFX\\n is reserved for Microsoft inbox inf use ONLY. 
;; To avoid undeterminitic result, 3rd party driver INF should use FX\\n instead. 
HKR,"MSFX\\0",%PKEY_ItemNameDisplay%,,%FX_FriendlyName%
HKR,"MSFX\\0",%PKEY_FX_PreMixClsid%,,%FX_PREMIX_CLSID%
HKR,"MSFX\\0",%PKEY_FX_PostMixClsid%,,%FX_POSTMIX_CLSID%
HKR,"MSFX\\0",%PKEY_FX_UiClsid%,,%FX_UI_CLSID%
HKR,"MSFX\\0",%PKEY_FX_Association%,,%KSNODETYPE_ANY%
; Settings for system effect ends


;Settings for endpoint property store
;; Note: MSEP\\n is reserved for Microsoft inbox inf use ONLY. 
;; To avoid undeterminitic result, 3rd party driver INF should use EP\\n instead. 
[HDAudio.EPProperties.AddReg]
HKR,"MSEP\\0",%PKEY_AudioEndpoint_Association%,,%KSNODETYPE_ANY%
HKR,"MSEP\\0",%PKEY_AudioEndpoint_Supports_EventDriven_Mode%,0x00010001,0x1


;
; Models & add reg sections. These point down to the sub device name sections
;

;
; Primary Speaker Model and AddRegs. Up to 5 are supported
;

; 1st instance of primary Speaker
[HdAudModel.PrimarySpeakerWave]
AddReg = HdAudModel.PrimarySpeakerWave.AddReg
[HdAudModel.PrimarySpeakerWave.AddReg]
HKR,,FriendlyName,,%PrimarySpeakerWaveDeviceName%
HKR,,CLSID,,%Proxy.CLSID%
[HdAudModel.PrimarySpeakerTopo]
AddReg = HdAudModel.PrimarySpeakerTopo.AddReg, HDAudio.SysFx.Render, HDAudio.EPProperties.AddReg
[HdAudModel.PrimarySpeakerTopo.AddReg]
HKR,,FriendlyName,,%PrimarySpeakerTopoDeviceName%
HKR,,CLSID,,%Proxy.CLSID%

; 2nd instance of primary Speaker
[HdAudModel.PrimarySpeaker2Wave]
AddReg = HdAudModel.PrimarySpeaker2Wave.AddReg
[HdAudModel.PrimarySpeaker2Wave.AddReg]
HKR,,FriendlyName,,%PrimarySpeaker2WaveDeviceName%
HKR,,CLSID,,%Proxy.CLSID%
[HdAudModel.PrimarySpeaker2Topo]
AddReg = HdAudModel.PrimarySpeaker2Topo.AddReg, HDAudio.SysFx.Render, HDAudio.EPProperties.AddReg
[HdAudModel.PrimarySpeaker2Topo.AddReg]
HKR,,FriendlyName,,%PrimarySpeaker2TopoDeviceName%
HKR,,CLSID,,%Proxy.CLSID%

; 3d instance of primary Speaker
[HdAudModel.PrimarySpeaker3Wave]
AddReg = HdAudModel.PrimarySpeaker3Wave.AddReg
[HdAudModel.PrimarySpeaker3Wave.AddReg]
HKR,,FriendlyName,,%PrimarySpeaker3WaveDeviceName%
HKR,,CLSID,,%Proxy.CLSID%
[HdAudModel.PrimarySpeaker3Topo]
AddReg = HdAudModel.PrimarySpeaker3Topo.AddReg, HDAudio.SysFx.Render, HDAudio.EPProperties.AddReg
[HdAudModel.PrimarySpeaker3Topo.AddReg]
HKR,,FriendlyName,,%PrimarySpeaker3TopoDeviceName%
HKR,,CLSID,,%Proxy.CLSID%

; 4th instance of primary Speaker
[HdAudModel.PrimarySpeaker4Wave]
AddReg = HdAudModel.PrimarySpeaker4Wave.AddReg
[HdAudModel.PrimarySpeaker4Wave.AddReg]
HKR,,FriendlyName,,%PrimarySpeaker4WaveDeviceName%
HKR,,CLSID,,%Proxy.CLSID%
[HdAudModel.PrimarySpeaker4Topo]
AddReg = HdAudModel.PrimarySpeaker4Topo.AddReg, HDAudio.SysFx.Render, HDAudio.EPProperties.AddReg
[HdAudModel.PrimarySpeaker4Topo.AddReg]
HKR,,FriendlyName,,%PrimarySpeaker4TopoDeviceName%
HKR,,CLSID,,%Proxy.CLSID%

; 5th instance of primary Speaker
[HdAudModel.PrimarySpeaker5Wave]
AddReg = HdAudModel.PrimarySpeaker5Wave.AddReg
[HdAudModel.PrimarySpeaker5Wave.AddReg]
HKR,,FriendlyName,,%PrimarySpeaker5WaveDeviceName%
HKR,,CLSID,,%Proxy.CLSID%
[HdAudModel.PrimarySpeaker5Topo]
AddReg = HdAudModel.PrimarySpeaker5Topo.AddReg, HDAudio.SysFx.Render, HDAudio.EPProperties.AddReg
[HdAudModel.PrimarySpeaker5Topo.AddReg]
HKR,,FriendlyName,,%PrimarySpeaker5TopoDeviceName%
HKR,,CLSID,,%Proxy.CLSID%


;
; Primary line out Model and AddRegs. Up to 5 are supported
;

; 1st instance of primary line out
[HdAudModel.PrimaryLineOutWave]
AddReg = HdAudModel.PrimaryLineOutWave.AddReg
[HdAudModel.PrimaryLineOutWave.AddReg]
HKR,,FriendlyName,,%PrimarySpeakerWaveDeviceName%
HKR,,CLSID,,%Proxy.CLSID%
[HdAudModel.PrimaryLineOutTopo]
AddReg = HdAudModel.PrimaryLineOutTopo.AddReg, HDAudio.SysFx.Render, HDAudio.EPProperties.AddReg
[HdAudModel.PrimaryLineOutTopo.AddReg]
HKR,,FriendlyName,,%PrimarySpeakerTopoDeviceName%
HKR,,CLSID,,%Proxy.CLSID%

; 2nd instance of primary line out
[HdAudModel.PrimaryLineOut2Wave]
AddReg = HdAudModel.PrimaryLineOut2Wave.AddReg
[HdAudModel.PrimaryLineOut2Wave.AddReg]
HKR,,FriendlyName,,%PrimarySpeaker2WaveDeviceName%
HKR,,CLSID,,%Proxy.CLSID%
[HdAudModel.PrimaryLineOut2Topo]
AddReg = HdAudModel.PrimaryLineOut2Topo.AddReg, HDAudio.SysFx.Render, HDAudio.EPProperties.AddReg
[HdAudModel.PrimaryLineOut2Topo.AddReg]
HKR,,FriendlyName,,%PrimarySpeaker2TopoDeviceName%
HKR,,CLSID,,%Proxy.CLSID%

; 3d instance of primary line out
[HdAudModel.PrimaryLineOut3Wave]
AddReg = HdAudModel.PrimaryLineOut3Wave.AddReg
[HdAudModel.PrimaryLineOut3Wave.AddReg]
HKR,,FriendlyName,,%PrimarySpeaker3WaveDeviceName%
HKR,,CLSID,,%Proxy.CLSID%
[HdAudModel.PrimaryLineOut3Topo]
AddReg = HdAudModel.PrimaryLineOut3Topo.AddReg, HDAudio.SysFx.Render, HDAudio.EPProperties.AddReg
[HdAudModel.PrimaryLineOut3Topo.AddReg]
HKR,,FriendlyName,,%PrimarySpeaker3TopoDeviceName%
HKR,,CLSID,,%Proxy.CLSID%

; 4th instance of primary line out
[HdAudModel.PrimaryLineOut4Wave]
AddReg = HdAudModel.PrimaryLineOut4Wave.AddReg
[HdAudModel.PrimaryLineOut4Wave.AddReg]
HKR,,FriendlyName,,%PrimarySpeaker4WaveDeviceName%
HKR,,CLSID,,%Proxy.CLSID%
[HdAudModel.PrimaryLineOut4Topo]
AddReg = HdAudModel.PrimaryLineOut4Topo.AddReg, HDAudio.SysFx.Render, HDAudio.EPProperties.AddReg
[HdAudModel.PrimaryLineOut4Topo.AddReg]
HKR,,FriendlyName,,%PrimarySpeaker4TopoDeviceName%
HKR,,CLSID,,%Proxy.CLSID%

; 5th instance of primary line out
[HdAudModel.PrimaryLineOut5Wave]
AddReg = HdAudModel.PrimaryLineOut5Wave.AddReg
[HdAudModel.PrimaryLineOut5Wave.AddReg]
HKR,,FriendlyName,,%PrimarySpeaker5WaveDeviceName%
HKR,,CLSID,,%Proxy.CLSID%
[HdAudModel.PrimaryLineOut5Topo]
AddReg = HdAudModel.PrimaryLineOut5Topo.AddReg, HDAudio.SysFx.Render, HDAudio.EPProperties.AddReg
[HdAudModel.PrimaryLineOut5Topo.AddReg]
HKR,,FriendlyName,,%PrimarySpeaker5TopoDeviceName%
HKR,,CLSID,,%Proxy.CLSID%


;
; Primary Line RCA Connector Model and AddRegs. Up to 5 are supported
;

; 1st instance of primary Line Connector
[HdAudModel.PrimaryLineConnectorWave]
AddReg = HdAudModel.PrimaryLineConnectorWave.AddReg
[HdAudModel.PrimaryLineConnectorWave.AddReg]
HKR,,FriendlyName,,%PrimaryLineConnectorWaveDeviceName%
HKR,,CLSID,,%Proxy.CLSID%
[HdAudModel.PrimaryLineConnectorTopo]
AddReg = HdAudModel.PrimaryLineConnectorTopo.AddReg, HDAudio.SysFx.Render, HDAudio.EPProperties.AddReg
[HdAudModel.PrimaryLineConnectorTopo.AddReg]
HKR,,FriendlyName,,%PrimaryLineConnectorTopoDeviceName%
HKR,,CLSID,,%Proxy.CLSID%

; 2nd instance of primary Line Connector
[HdAudModel.PrimaryLineConnector2Wave]
AddReg = HdAudModel.PrimaryLineConnector2Wave.AddReg
[HdAudModel.PrimaryLineConnector2Wave.AddReg]
HKR,,FriendlyName,,%PrimaryLineConnector2WaveDeviceName%
HKR,,CLSID,,%Proxy.CLSID%
[HdAudModel.PrimaryLineConnector2Topo]
AddReg = HdAudModel.PrimaryLineConnector2Topo.AddReg, HDAudio.SysFx.Render, HDAudio.EPProperties.AddReg
[HdAudModel.PrimaryLineConnector2Topo.AddReg]
HKR,,FriendlyName,,%PrimaryLineConnector2TopoDeviceName%
HKR,,CLSID,,%Proxy.CLSID%

; 3d instance of primary Line Connector
[HdAudModel.PrimaryLineConnector3Wave]
AddReg = HdAudModel.PrimaryLineConnector3Wave.AddReg
[HdAudModel.PrimaryLineConnector3Wave.AddReg]
HKR,,FriendlyName,,%PrimaryLineConnector3WaveDeviceName%
HKR,,CLSID,,%Proxy.CLSID%
[HdAudModel.PrimaryLineConnector3Topo]
AddReg = HdAudModel.PrimaryLineConnector3Topo.AddReg, HDAudio.SysFx.Render, HDAudio.EPProperties.AddReg
[HdAudModel.PrimaryLineConnector3Topo.AddReg]
HKR,,FriendlyName,,%PrimaryLineConnector3TopoDeviceName%
HKR,,CLSID,,%Proxy.CLSID%

; 4th instance of primary Line Connector
[HdAudModel.PrimaryLineConnector4Wave]
AddReg = HdAudModel.PrimaryLineConnector4Wave.AddReg
[HdAudModel.PrimaryLineConnector4Wave.AddReg]
HKR,,FriendlyName,,%PrimaryLineConnector4WaveDeviceName%
HKR,,CLSID,,%Proxy.CLSID%
[HdAudModel.PrimaryLineConnector4Topo]
AddReg = HdAudModel.PrimaryLineConnector4Topo.AddReg, HDAudio.SysFx.Render, HDAudio.EPProperties.AddReg
[HdAudModel.PrimaryLineConnector4Topo.AddReg]
HKR,,FriendlyName,,%PrimaryLineConnector4TopoDeviceName%
HKR,,CLSID,,%Proxy.CLSID%

; 5th instance of primary Line Connector
[HdAudModel.PrimaryLineConnector5Wave]
AddReg = HdAudModel.PrimaryLineConnector5Wave.AddReg
[HdAudModel.PrimaryLineConnector5Wave.AddReg]
HKR,,FriendlyName,,%PrimaryLineConnector5WaveDeviceName%
HKR,,CLSID,,%Proxy.CLSID%
[HdAudModel.PrimaryLineConnector5Topo]
AddReg = HdAudModel.PrimaryLineConnector5Topo.AddReg, HDAudio.SysFx.Render, HDAudio.EPProperties.AddReg
[HdAudModel.PrimaryLineConnector5Topo.AddReg]
HKR,,FriendlyName,,%PrimaryLineConnector5TopoDeviceName%
HKR,,CLSID,,%Proxy.CLSID%

;
; Independent headphone Model & Add Reg sections. Up to 5 are supported
;

; 1st instance of independent headphone
[HdAudModel.IndependentHeadphoneWave]
AddReg = HdAudModel.IndependentHeadphoneWave.AddReg
[HdAudModel.IndependentHeadphoneWave.AddReg]
HKR,,FriendlyName,,%IndependentHeadphoneWaveDeviceName%
HKR,,CLSID,,%Proxy.CLSID%
[HdAudModel.IndependentHeadphoneTopo]
AddReg = HdAudModel.IndependentHeadphoneTopo.AddReg, HDAudio.SysFx.Render, HDAudio.EPProperties.AddReg
[HdAudModel.IndependentHeadphoneTopo.AddReg]
HKR,,FriendlyName,,%IndependentHeadphoneTopoDeviceName%
HKR,,CLSID,,%Proxy.CLSID%

; 2nd instance of independent headphone
[HdAudModel.IndependentHeadphone2Wave]
AddReg = HdAudModel.IndependentHeadphone2Wave.AddReg
[HdAudModel.IndependentHeadphone2Wave.AddReg]
HKR,,FriendlyName,,%IndependentHeadphone2WaveDeviceName%
HKR,,CLSID,,%Proxy.CLSID%
[HdAudModel.IndependentHeadphone2Topo]
AddReg = HdAudModel.IndependentHeadphone2Topo.AddReg, HDAudio.SysFx.Render, HDAudio.EPProperties.AddReg
[HdAudModel.IndependentHeadphone2Topo.AddReg]
HKR,,FriendlyName,,%IndependentHeadphone2TopoDeviceName%
HKR,,CLSID,,%Proxy.CLSID%

; 3rd instance of independent headphone
[HdAudModel.IndependentHeadphone3Wave]
AddReg = HdAudModel.IndependentHeadphone3Wave.AddReg
[HdAudModel.IndependentHeadphone3Wave.AddReg]
HKR,,FriendlyName,,%IndependentHeadphone3WaveDeviceName%
HKR,,CLSID,,%Proxy.CLSID%
[HdAudModel.IndependentHeadphone3Topo]
AddReg = HdAudModel.IndependentHeadphone3Topo.AddReg, HDAudio.SysFx.Render, HDAudio.EPProperties.AddReg
[HdAudModel.IndependentHeadphone3Topo.AddReg]
HKR,,FriendlyName,,%IndependentHeadphone3TopoDeviceName%
HKR,,CLSID,,%Proxy.CLSID%

; 4th instance of independent headphone
[HdAudModel.IndependentHeadphone4Wave]
AddReg = HdAudModel.IndependentHeadphone4Wave.AddReg
[HdAudModel.IndependentHeadphone4Wave.AddReg]
HKR,,FriendlyName,,%IndependentHeadphone4WaveDeviceName%
HKR,,CLSID,,%Proxy.CLSID%
[HdAudModel.IndependentHeadphone4Topo]
AddReg = HdAudModel.IndependentHeadphone4Topo.AddReg, HDAudio.SysFx.Render, HDAudio.EPProperties.AddReg
[HdAudModel.IndependentHeadphone4Topo.AddReg]
HKR,,FriendlyName,,%IndependentHeadphone4TopoDeviceName%
HKR,,CLSID,,%Proxy.CLSID%

; 5th instance of independent headphone
[HdAudModel.IndependentHeadphone5Wave]
AddReg = HdAudModel.IndependentHeadphone5Wave.AddReg
[HdAudModel.IndependentHeadphone5Wave.AddReg]
HKR,,FriendlyName,,%IndependentHeadphone5WaveDeviceName%
HKR,,CLSID,,%Proxy.CLSID%
[HdAudModel.IndependentHeadphone5Topo]
AddReg = HdAudModel.IndependentHeadphone5Topo.AddReg, HDAudio.SysFx.Render, HDAudio.EPProperties.AddReg
[HdAudModel.IndependentHeadphone5Topo.AddReg]
HKR,,FriendlyName,,%IndependentHeadphone5TopoDeviceName%
HKR,,CLSID,,%Proxy.CLSID%

; TODO: eSpdifOut independent Model and AddRegs section not supported (yet)

;
; SpdifOutSpeaker Model and AddRegs. 1 Instance supported
;

[HdAudModel.SpdifOutSpeakerWave]
AddReg = HdAudModel.SpdifOutSpeakerWave.AddReg
[HdAudModel.SpdifOutSpeakerWave.AddReg]
HKR,,FriendlyName,,%SpdifOutSpeakerWaveDeviceName%
HKR,,CLSID,,%Proxy.CLSID%
[HdAudModel.SpdifOutSpeakerTopo]
AddReg = HdAudModel.SpdifOutSpeakerTopo.AddReg, HDAudio.SysFx.Render, HDAudio.EPProperties.AddReg
[HdAudModel.SpdifOutSpeakerTopo.AddReg]
HKR,,FriendlyName,,%SpdifOutSpeakerTopoDeviceName%
HKR,,CLSID,,%Proxy.CLSID%

;
; SpdifOutLineOut Model and AddRegs. 1 Instance supported. Notice that the friendly
; name is the same as with SpdifOutSpeaker above.
;

[HdAudModel.SpdifOutLineOutWave]
AddReg = HdAudModel.SpdifOutLineOutWave.AddReg
[HdAudModel.SpdifOutLineOutWave.AddReg]
HKR,,FriendlyName,,%SpdifOutLineOutWaveDeviceName%
HKR,,CLSID,,%Proxy.CLSID%
[HdAudModel.SpdifOutLineOutTopo]
AddReg = HdAudModel.SpdifOutLineOutTopo.AddReg, HDAudio.SysFx.Render, HDAudio.EPProperties.AddReg
[HdAudModel.SpdifOutLineOutTopo.AddReg]
HKR,,FriendlyName,,%SpdifOutLineOutTopoDeviceName%
HKR,,CLSID,,%Proxy.CLSID%

;
; TODO: eHeadphoneSpdifOutSpeaker is not supported yet by the driver
; TODO: eHeadphoneSpdifOutLineOut is not supported yet by the driver
;

;
; DigitalOutput Only. Note this is not used currently (at least for XP), since ac3 has to
; be exposed on a filter factory which has a PCM pin.
;

[HdAudModel.DigitalOutputWave]
AddReg = HdAudModel.DigitalOutputWave.AddReg
[HdAudModel.DigitalOutputWave.AddReg]
HKR,,FriendlyName,,%DigitalOutputWaveDeviceName%
HKR,,CLSID,,%Proxy.CLSID%
[HdAudModel.DigitalOutputTopo]
AddReg = HdAudModel.DigitalOutputTopo.AddReg, HDAudio.SysFx.Render, HDAudio.EPProperties.AddReg
[HdAudModel.DigitalOutputTopo.AddReg]
HKR,,FriendlyName,,%DigitalOutputTopoDeviceName%
HKR,,CLSID,,%Proxy.CLSID%


[HdAudModel.DigitalOutput2Wave]
AddReg = HdAudModel.DigitalOutput2Wave.AddReg
[HdAudModel.DigitalOutput2Wave.AddReg]
HKR,,FriendlyName,,%DigitalOutput2WaveDeviceName%
HKR,,CLSID,,%Proxy.CLSID%
[HdAudModel.DigitalOutput2Topo]
AddReg = HdAudModel.DigitalOutput2Topo.AddReg, HDAudio.SysFx.Render, HDAudio.EPProperties.AddReg
[HdAudModel.DigitalOutput2Topo.AddReg]
HKR,,FriendlyName,,%DigitalOutput2TopoDeviceName%
HKR,,CLSID,,%Proxy.CLSID%


[HdAudModel.DigitalOutput3Wave]
AddReg = HdAudModel.DigitalOutput3Wave.AddReg
[HdAudModel.DigitalOutput3Wave.AddReg]
HKR,,FriendlyName,,%DigitalOutput3WaveDeviceName%
HKR,,CLSID,,%Proxy.CLSID%
[HdAudModel.DigitalOutput3Topo]
AddReg = HdAudModel.DigitalOutput3Topo.AddReg, HDAudio.SysFx.Render, HDAudio.EPProperties.AddReg
[HdAudModel.DigitalOutput3Topo.AddReg]
HKR,,FriendlyName,,%DigitalOutput3TopoDeviceName%
HKR,,CLSID,,%Proxy.CLSID%


[HdAudModel.DigitalOutput4Wave]
AddReg = HdAudModel.DigitalOutput4Wave.AddReg
[HdAudModel.DigitalOutput4Wave.AddReg]
HKR,,FriendlyName,,%DigitalOutput4WaveDeviceName%
HKR,,CLSID,,%Proxy.CLSID%
[HdAudModel.DigitalOutput4Topo]
AddReg = HdAudModel.DigitalOutput4Topo.AddReg, HDAudio.SysFx.Render, HDAudio.EPProperties.AddReg
[HdAudModel.DigitalOutput4Topo.AddReg]
HKR,,FriendlyName,,%DigitalOutput4TopoDeviceName%
HKR,,CLSID,,%Proxy.CLSID%


[HdAudModel.DigitalOutput5Wave]
AddReg = HdAudModel.DigitalOutput5Wave.AddReg
[HdAudModel.DigitalOutput5Wave.AddReg]
HKR,,FriendlyName,,%DigitalOutput5WaveDeviceName%
HKR,,CLSID,,%Proxy.CLSID%
[HdAudModel.DigitalOutput5Topo]
AddReg = HdAudModel.DigitalOutput5Topo.AddReg, HDAudio.SysFx.Render, HDAudio.EPProperties.AddReg
[HdAudModel.DigitalOutput5Topo.AddReg]
HKR,,FriendlyName,,%DigitalOutput5TopoDeviceName%
HKR,,CLSID,,%Proxy.CLSID%
;
; HDMI Out 
; 

[HdAudModel.HDMIOutputWave]
AddReg = HdAudModel.HDMIOutputWave.AddReg
[HdAudModel.HDMIOutputWave.AddReg]
HKR,,FriendlyName,,%HDMIOutputWaveDeviceName%
HKR,,CLSID,,%Proxy.CLSID%
[HdAudModel.HDMIOutputTopo]
AddReg = HdAudModel.HDMIOutputTopo.AddReg, HDAudio.SysFx.Render, HDAudio.EPProperties.AddReg
[HdAudModel.HDMIOutputTopo.AddReg]
HKR,,FriendlyName,,%HDMIOutputTopoDeviceName%
HKR,,CLSID,,%Proxy.CLSID%


[HdAudModel.HDMIOutput2Wave]
AddReg = HdAudModel.HDMIOutput2Wave.AddReg
[HdAudModel.HDMIOutput2Wave.AddReg]
HKR,,FriendlyName,,%HDMIOutput2WaveDeviceName%
HKR,,CLSID,,%Proxy.CLSID%
[HdAudModel.HDMIOutput2Topo]
AddReg = HdAudModel.HDMIOutput2Topo.AddReg, HDAudio.SysFx.Render, HDAudio.EPProperties.AddReg
[HdAudModel.HDMIOutput2Topo.AddReg]
HKR,,FriendlyName,,%HDMIOutput2TopoDeviceName%
HKR,,CLSID,,%Proxy.CLSID%


[HdAudModel.HDMIOutput3Wave]
AddReg = HdAudModel.HDMIOutput3Wave.AddReg
[HdAudModel.HDMIOutput3Wave.AddReg]
HKR,,FriendlyName,,%HDMIOutput3WaveDeviceName%
HKR,,CLSID,,%Proxy.CLSID%
[HdAudModel.HDMIOutput3Topo]
AddReg = HdAudModel.HDMIOutput3Topo.AddReg, HDAudio.SysFx.Render, HDAudio.EPProperties.AddReg
[HdAudModel.HDMIOutput3Topo.AddReg]
HKR,,FriendlyName,,%HDMIOutput3TopoDeviceName%
HKR,,CLSID,,%Proxy.CLSID%


[HdAudModel.HDMIOutput4Wave]
AddReg = HdAudModel.HDMIOutput4Wave.AddReg
[HdAudModel.HDMIOutput4Wave.AddReg]
HKR,,FriendlyName,,%HDMIOutput4WaveDeviceName%
HKR,,CLSID,,%Proxy.CLSID%
[HdAudModel.HDMIOutput4Topo]
AddReg = HdAudModel.HDMIOutput4Topo.AddReg, HDAudio.SysFx.Render, HDAudio.EPProperties.AddReg
[HdAudModel.HDMIOutput4Topo.AddReg]
HKR,,FriendlyName,,%HDMIOutput4TopoDeviceName%
HKR,,CLSID,,%Proxy.CLSID%

[HdAudModel.HDMIOutput5Wave]
AddReg = HdAudModel.HDMIOutput5Wave.AddReg
[HdAudModel.HDMIOutput5Wave.AddReg]
HKR,,FriendlyName,,%HDMIOutput5WaveDeviceName%
HKR,,CLSID,,%Proxy.CLSID%
[HdAudModel.HDMIOutput5Topo]
AddReg = HdAudModel.HDMIOutput5Topo.AddReg, HDAudio.SysFx.Render, HDAudio.EPProperties.AddReg
[HdAudModel.HDMIOutput5Topo.AddReg]
HKR,,FriendlyName,,%HDMIOutput5TopoDeviceName%
HKR,,CLSID,,%Proxy.CLSID%


;
; Slaved Hp Speaker Render Model & Add Reg
;

; Instance 1
[HdAudModel.SlavedHpSpeakerWave]
AddReg = HdAudModel.SlavedHpSpeakerWave.AddReg
[HdAudModel.SlavedHpSpeakerWave.AddReg]
HKR,,FriendlyName,,%SlavedHpSpeakerWaveDeviceName%
HKR,,CLSID,,%Proxy.CLSID%
[HdAudModel.SlavedHpSpeakerTopo]
AddReg = HdAudModel.SlavedHpSpeakerTopo.AddReg, HDAudio.SysFx.Render, HDAudio.EPProperties.AddReg
[HdAudModel.SlavedHpSpeakerTopo.AddReg]
HKR,,FriendlyName,,%SlavedHpSpeakerTopoDeviceName%
HKR,,CLSID,,%Proxy.CLSID%

; Instance 2
[HdAudModel.SlavedHpSpeaker2Wave]
AddReg = HdAudModel.SlavedHpSpeaker2Wave.AddReg
[HdAudModel.SlavedHpSpeaker2Wave.AddReg]
HKR,,FriendlyName,,%SlavedHpSpeaker2WaveDeviceName%
HKR,,CLSID,,%Proxy.CLSID%
[HdAudModel.SlavedHpSpeaker2Topo]
AddReg = HdAudModel.SlavedHpSpeaker2Topo.AddReg, HDAudio.SysFx.Render, HDAudio.EPProperties.AddReg
[HdAudModel.SlavedHpSpeaker2Topo.AddReg]
HKR,,FriendlyName,,%SlavedHpSpeaker2TopoDeviceName%
HKR,,CLSID,,%Proxy.CLSID%

; Instance 3
[HdAudModel.SlavedHpSpeaker3Wave]
AddReg = HdAudModel.SlavedHpSpeaker3Wave.AddReg
[HdAudModel.SlavedHpSpeaker3Wave.AddReg]
HKR,,FriendlyName,,%SlavedHpSpeaker3WaveDeviceName%
HKR,,CLSID,,%Proxy.CLSID%
[HdAudModel.SlavedHpSpeaker3Topo]
AddReg = HdAudModel.SlavedHpSpeaker3Topo.AddReg, HDAudio.SysFx.Render, HDAudio.EPProperties.AddReg
[HdAudModel.SlavedHpSpeaker3Topo.AddReg]
HKR,,FriendlyName,,%SlavedHpSpeaker3TopoDeviceName%
HKR,,CLSID,,%Proxy.CLSID%

; Instance 4
[HdAudModel.SlavedHpSpeaker4Wave]
AddReg = HdAudModel.SlavedHpSpeaker4Wave.AddReg
[HdAudModel.SlavedHpSpeaker4Wave.AddReg]
HKR,,FriendlyName,,%SlavedHpSpeaker4WaveDeviceName%
HKR,,CLSID,,%Proxy.CLSID%
[HdAudModel.SlavedHpSpeaker4Topo]
AddReg = HdAudModel.SlavedHpSpeaker4Topo.AddReg, HDAudio.SysFx.Render, HDAudio.EPProperties.AddReg
[HdAudModel.SlavedHpSpeaker4Topo.AddReg]
HKR,,FriendlyName,,%SlavedHpSpeaker4TopoDeviceName%
HKR,,CLSID,,%Proxy.CLSID%

; Instance 5
[HdAudModel.SlavedHpSpeaker5Wave]
AddReg = HdAudModel.SlavedHpSpeaker5Wave.AddReg
[HdAudModel.SlavedHpSpeaker5Wave.AddReg]
HKR,,FriendlyName,,%SlavedHpSpeaker5WaveDeviceName%
HKR,,CLSID,,%Proxy.CLSID%
[HdAudModel.SlavedHpSpeaker5Topo]
AddReg = HdAudModel.SlavedHpSpeaker5Topo.AddReg, HDAudio.SysFx.Render, HDAudio.EPProperties.AddReg
[HdAudModel.SlavedHpSpeaker5Topo.AddReg]
HKR,,FriendlyName,,%SlavedHpSpeaker5TopoDeviceName%
HKR,,CLSID,,%Proxy.CLSID%


;
; Slaved Hp LineOut Render Model & Add Reg
;

; Instance 1
[HdAudModel.SlavedHpLineOutWave]
AddReg = HdAudModel.SlavedHpLineOutWave.AddReg
[HdAudModel.SlavedHpLineOutWave.AddReg]
HKR,,FriendlyName,,%SlavedHpLineOutWaveDeviceName%
HKR,,CLSID,,%Proxy.CLSID%
[HdAudModel.SlavedHpLineOutTopo]
AddReg = HdAudModel.SlavedHpLineOutTopo.AddReg, HDAudio.SysFx.Render, HDAudio.EPProperties.AddReg
[HdAudModel.SlavedHpLineOutTopo.AddReg]
HKR,,FriendlyName,,%SlavedHpLineOutTopoDeviceName%
HKR,,CLSID,,%Proxy.CLSID%

; Instance 2
[HdAudModel.SlavedHpLineOut2Wave]
AddReg = HdAudModel.SlavedHpLineOut2Wave.AddReg
[HdAudModel.SlavedHpLineOut2Wave.AddReg]
HKR,,FriendlyName,,%SlavedHpLineOut2WaveDeviceName%
HKR,,CLSID,,%Proxy.CLSID%
[HdAudModel.SlavedHpLineOut2Topo]
AddReg = HdAudModel.SlavedHpLineOut2Topo.AddReg, HDAudio.SysFx.Render, HDAudio.EPProperties.AddReg
[HdAudModel.SlavedHpLineOut2Topo.AddReg]
HKR,,FriendlyName,,%SlavedHpLineOut2TopoDeviceName%
HKR,,CLSID,,%Proxy.CLSID%

; Instance 3
[HdAudModel.SlavedHpLineOut3Wave]
AddReg = HdAudModel.SlavedHpLineOut3Wave.AddReg
[HdAudModel.SlavedHpLineOut3Wave.AddReg]
HKR,,FriendlyName,,%SlavedHpLineOut3WaveDeviceName%
HKR,,CLSID,,%Proxy.CLSID%
[HdAudModel.SlavedHpLineOut3Topo]
AddReg = HdAudModel.SlavedHpLineOut3Topo.AddReg, HDAudio.SysFx.Render, HDAudio.EPProperties.AddReg
[HdAudModel.SlavedHpLineOut3Topo.AddReg]
HKR,,FriendlyName,,%SlavedHpLineOut3TopoDeviceName%
HKR,,CLSID,,%Proxy.CLSID%

; Instance 4
[HdAudModel.SlavedHpLineOut4Wave]
AddReg = HdAudModel.SlavedHpLineOut4Wave.AddReg
[HdAudModel.SlavedHpLineOut4Wave.AddReg]
HKR,,FriendlyName,,%SlavedHpLineOut4WaveDeviceName%
HKR,,CLSID,,%Proxy.CLSID%
[HdAudModel.SlavedHpLineOut4Topo]
AddReg = HdAudModel.SlavedHpLineOut4Topo.AddReg, HDAudio.SysFx.Render, HDAudio.EPProperties.AddReg
[HdAudModel.SlavedHpLineOut4Topo.AddReg]
HKR,,FriendlyName,,%SlavedHpLineOut4TopoDeviceName%
HKR,,CLSID,,%Proxy.CLSID%

; Instance 5
[HdAudModel.SlavedHpLineOut5Wave]
AddReg = HdAudModel.SlavedHpLineOut5Wave.AddReg
[HdAudModel.SlavedHpLineOut5Wave.AddReg]
HKR,,FriendlyName,,%SlavedHpLineOut5WaveDeviceName%
HKR,,CLSID,,%Proxy.CLSID%
[HdAudModel.SlavedHpLineOut5Topo]
AddReg = HdAudModel.SlavedHpLineOut5Topo.AddReg, HDAudio.SysFx.Render, HDAudio.EPProperties.AddReg
[HdAudModel.SlavedHpLineOut5Topo.AddReg]
HKR,,FriendlyName,,%SlavedHpLineOut5TopoDeviceName%
HKR,,CLSID,,%Proxy.CLSID%


;
; Slaved Internal Speaker to External LineOut Render Model & Add Reg
;

[HdAudModel.PrimaryRedirLineOutWave]
AddReg = HdAudModel.PrimaryRedirLineOutWave.AddReg
[HdAudModel.PrimaryRedirLineOutWave.AddReg]
HKR,,FriendlyName,,%SlavedIntSpeakerExtLineOutWaveDeviceName%
HKR,,CLSID,,%Proxy.CLSID%
[HdAudModel.PrimaryRedirLineOutTopo]
AddReg = HdAudModel.PrimaryRedirLineOutTopo.AddReg, HDAudio.SysFx.Render, HDAudio.EPProperties.AddReg
[HdAudModel.PrimaryRedirLineOutTopo.AddReg]
HKR,,FriendlyName,,%SlavedIntSpeakerExtLineOutTopoDeviceName%
HKR,,CLSID,,%Proxy.CLSID%

;
; Slaved Internal Speaker to External Speaker Render Model & Add Reg
;

[HdAudModel.PrimaryRedirSpeakerWave]
AddReg = HdAudModel.PrimaryRedirSpeakerWave.AddReg
[HdAudModel.PrimaryRedirSpeakerWave.AddReg]
HKR,,FriendlyName,,%SlavedIntSpeakerExtSpeakerWaveDeviceName%
HKR,,CLSID,,%Proxy.CLSID%
[HdAudModel.PrimaryRedirSpeakerTopo]
AddReg = HdAudModel.PrimaryRedirSpeakerTopo.AddReg, HDAudio.SysFx.Render, HDAudio.EPProperties.AddReg
[HdAudModel.PrimaryRedirSpeakerTopo.AddReg]
HKR,,FriendlyName,,%SlavedIntSpeakerExtSpeakerTopoDeviceName%
HKR,,CLSID,,%Proxy.CLSID%

;
; Mic In Model & Add Reg. Up to 5 Instances supported
;

; 1st instance
[HdAudModel.IndependentMicWave]
AddReg = HdAudModel.IndependentMicWave.AddReg
[HdAudModel.IndependentMicWave.AddReg]
HKR,,FriendlyName,,%IndependentMicWaveDeviceName%
HKR,,CLSID,,%Proxy.CLSID%
[HdAudModel.IndependentMicTopo]
AddReg = HdAudModel.IndependentMicTopo.AddReg, HDAudio.EPProperties.AddReg
[HdAudModel.IndependentMicTopo.AddReg]
HKR,,FriendlyName,,%IndependentMicTopoDeviceName%
HKR,,CLSID,,%Proxy.CLSID%

; 2nd instance of Mic In
[HdAudModel.IndependentMic2Wave]
AddReg = HdAudModel.IndependentMic2Wave.AddReg
[HdAudModel.IndependentMic2Wave.AddReg]
HKR,,FriendlyName,,%IndependentMic2WaveDeviceName%
HKR,,CLSID,,%Proxy.CLSID%
[HdAudModel.IndependentMic2Topo]
AddReg = HdAudModel.IndependentMic2Topo.AddReg, HDAudio.EPProperties.AddReg
[HdAudModel.IndependentMic2Topo.AddReg]
HKR,,FriendlyName,,%IndependentMic2TopoDeviceName%
HKR,,CLSID,,%Proxy.CLSID%

; 3rd instance of Mic In
[HdAudModel.IndependentMic3Wave]
AddReg = HdAudModel.IndependentMic3Wave.AddReg
[HdAudModel.IndependentMic3Wave.AddReg]
HKR,,FriendlyName,,%IndependentMic3WaveDeviceName%
HKR,,CLSID,,%Proxy.CLSID%
[HdAudModel.IndependentMic3Topo]
AddReg = HdAudModel.IndependentMic3Topo.AddReg, HDAudio.EPProperties.AddReg
[HdAudModel.IndependentMic3Topo.AddReg]
HKR,,FriendlyName,,%IndependentMic3TopoDeviceName%
HKR,,CLSID,,%Proxy.CLSID%

; 4th instance of Mic In
[HdAudModel.IndependentMic4Wave]
AddReg = HdAudModel.IndependentMic4Wave.AddReg
[HdAudModel.IndependentMic4Wave.AddReg]
HKR,,FriendlyName,,%IndependentMic4WaveDeviceName%
HKR,,CLSID,,%Proxy.CLSID%
[HdAudModel.IndependentMic4Topo]
AddReg = HdAudModel.IndependentMic4Topo.AddReg, HDAudio.EPProperties.AddReg
[HdAudModel.IndependentMic4Topo.AddReg]
HKR,,FriendlyName,,%IndependentMic4TopoDeviceName%
HKR,,CLSID,,%Proxy.CLSID%

; 5th instance of Mic In
[HdAudModel.IndependentMic5Wave]
AddReg = HdAudModel.IndependentMic5Wave.AddReg
[HdAudModel.IndependentMic5Wave.AddReg]
HKR,,FriendlyName,,%IndependentMic5WaveDeviceName%
HKR,,CLSID,,%Proxy.CLSID%
[HdAudModel.IndependentMic5Topo]
AddReg = HdAudModel.IndependentMic5Topo.AddReg, HDAudio.EPProperties.AddReg
[HdAudModel.IndependentMic5Topo.AddReg]
HKR,,FriendlyName,,%IndependentMic5TopoDeviceName%
HKR,,CLSID,,%Proxy.CLSID%

;
; CD input Model and AddReg. 1 Instance supported
;

[HdAudModel.CDInWave]
AddReg = HdAudModel.CDInWave.AddReg
[HdAudModel.CDInWave.AddReg]
HKR,,FriendlyName,,%CDInWaveDeviceName%
HKR,,CLSID,,%Proxy.CLSID%
[HdAudModel.CDInTopo]
AddReg = HdAudModel.CDInTopo.AddReg, HDAudio.EPProperties.AddReg
[HdAudModel.CDInTopo.AddReg]
HKR,,FriendlyName,,%CDInTopoDeviceName%
HKR,,CLSID,,%Proxy.CLSID%

;
; Primary line in Model and AddReg. Up to 5 instances are supported
;

; 1st instance
[HdAudModel.PrimaryLineInWave]
AddReg = HdAudModel.PrimaryLineInWave.AddReg
[HdAudModel.PrimaryLineInWave.AddReg]
HKR,,FriendlyName,,%PrimaryLineInWaveDeviceName%
HKR,,CLSID,,%Proxy.CLSID%
[HdAudModel.PrimaryLineInTopo]
AddReg = HdAudModel.PrimaryLineInTopo.AddReg, HDAudio.EPProperties.AddReg
[HdAudModel.PrimaryLineInTopo.AddReg]
HKR,,FriendlyName,,%PrimaryLineInTopoDeviceName%
HKR,,CLSID,,%Proxy.CLSID%

; 2nd Instance
[HdAudModel.PrimaryLineIn2Wave]
AddReg = HdAudModel.PrimaryLineIn2Wave.AddReg
[HdAudModel.PrimaryLineIn2Wave.AddReg]
HKR,,FriendlyName,,%PrimaryLineIn2WaveDeviceName%
HKR,,CLSID,,%Proxy.CLSID%
[HdAudModel.PrimaryLineIn2Topo]
AddReg = HdAudModel.PrimaryLineIn2Topo.AddReg, HDAudio.EPProperties.AddReg
[HdAudModel.PrimaryLineIn2Topo.AddReg]
HKR,,FriendlyName,,%PrimaryLineIn2TopoDeviceName%
HKR,,CLSID,,%Proxy.CLSID%

; 3rd Instance
[HdAudModel.PrimaryLineIn3Wave]
AddReg = HdAudModel.PrimaryLineIn3Wave.AddReg
[HdAudModel.PrimaryLineIn3Wave.AddReg]
HKR,,FriendlyName,,%PrimaryLineIn3WaveDeviceName%
HKR,,CLSID,,%Proxy.CLSID%
[HdAudModel.PrimaryLineIn3Topo]
AddReg = HdAudModel.PrimaryLineIn3Topo.AddReg, HDAudio.EPProperties.AddReg
[HdAudModel.PrimaryLineIn3Topo.AddReg]
HKR,,FriendlyName,,%PrimaryLineIn3TopoDeviceName%
HKR,,CLSID,,%Proxy.CLSID%

; 4th Instance
[HdAudModel.PrimaryLineIn4Wave]
AddReg = HdAudModel.PrimaryLineIn4Wave.AddReg
[HdAudModel.PrimaryLineIn4Wave.AddReg]
HKR,,FriendlyName,,%PrimaryLineIn4WaveDeviceName%
HKR,,CLSID,,%Proxy.CLSID%
[HdAudModel.PrimaryLineIn4Topo]
AddReg = HdAudModel.PrimaryLineIn4Topo.AddReg, HDAudio.EPProperties.AddReg
[HdAudModel.PrimaryLineIn4Topo.AddReg]
HKR,,FriendlyName,,%PrimaryLineIn4TopoDeviceName%
HKR,,CLSID,,%Proxy.CLSID%

; 5th Instance
[HdAudModel.PrimaryLineIn5Wave]
AddReg = HdAudModel.PrimaryLineIn5Wave.AddReg
[HdAudModel.PrimaryLineIn5Wave.AddReg]
HKR,,FriendlyName,,%PrimaryLineIn5WaveDeviceName%
HKR,,CLSID,,%Proxy.CLSID%
[HdAudModel.PrimaryLineIn5Topo]
AddReg = HdAudModel.PrimaryLineIn5Topo.AddReg, HDAudio.EPProperties.AddReg
[HdAudModel.PrimaryLineIn5Topo.AddReg]
HKR,,FriendlyName,,%PrimaryLineIn5TopoDeviceName%
HKR,,CLSID,,%Proxy.CLSID%

;
; Spdif input Model and Add Reg. 1 Instance supported
;

[HdAudModel.DigitalInputWave]
AddReg = HdAudModel.DigitalInputWave.AddReg
[HdAudModel.DigitalInputWave.AddReg]
HKR,,FriendlyName,,%DigitalInputWaveDeviceName%
HKR,,CLSID,,%Proxy.CLSID%
[HdAudModel.DigitalInputTopo]
AddReg = HdAudModel.DigitalInputTopo.AddReg, HDAudio.EPProperties.AddReg
[HdAudModel.DigitalInputTopo.AddReg]
HKR,,FriendlyName,,%DigitalInputTopoDeviceName%
HKR,,CLSID,,%Proxy.CLSID%

;
; Aux input Model and AddReg. 1 instance supported
;

[AzAudModel.AuxInWave]
AddReg = AzAudModel.AuxInWave.AddReg
[AzAudModel.AuxInWave.AddReg]
HKR,,FriendlyName,,%AuxInWaveDeviceName%
HKR,,CLSID,,%Proxy.CLSID%
[AzAudModel.AuxInTopo]
AddReg = AzAudModel.AuxInTopo.AddReg, HDAudio.EPProperties.AddReg
[AzAudModel.AuxInTopo.AddReg]
HKR,,FriendlyName,,%AuxInTopoDeviceName%
HKR,,CLSID,,%Proxy.CLSID%

;
; Muxed Capture Model and AddReg. 1 Instance supported
;

[HdAudModel.MuxedCaptureWave]
AddReg = HdAudModel.MuxedCaptureWave.AddReg
[HdAudModel.MuxedCaptureWave.AddReg]
HKR,,FriendlyName,,%MuxedCaptureWaveDeviceName%
HKR,,CLSID,,%Proxy.CLSID%
[HdAudModel.MuxedCaptureTopo]
AddReg = HdAudModel.MuxedCaptureTopo.AddReg, HDAudio.EPProperties.AddReg
[HdAudModel.MuxedCaptureTopo.AddReg]
HKR,,FriendlyName,,%MuxedCaptureTopoDeviceName%
HKR,,CLSID,,%Proxy.CLSID%

;
; Mixed Capture Model and AddReg. 1 Instance supported
;
[HdAudModel.MixedCaptureWave]
AddReg = HdAudModel.MixedCaptureWave.AddReg
[HdAudModel.MixedCaptureWave.AddReg]
HKR,,FriendlyName,,%MixedCaptureWaveDeviceName%
HKR,,CLSID,,%Proxy.CLSID%
[HdAudModel.MixedCaptureTopo]
AddReg = HdAudModel.MixedCaptureTopo.AddReg, HDAudio.EPProperties.AddReg
[HdAudModel.MixedCaptureTopo.AddReg]
HKR,,FriendlyName,,%MixedCaptureTopoDeviceName%
HKR,,CLSID,,%Proxy.CLSID%

;
; Microphone Array Model and AddReg. 1 Instance supported
;

[HdAudModel.MicArrayWave]
AddReg = HdAudModel.MicArrayWave.AddReg
[HdAudModel.MicArrayWave.AddReg]
HKR,,FriendlyName,,%MicArrayWaveDeviceName%
HKR,,CLSID,,%Proxy.CLSID%
[HdAudModel.MicArrayTopo]
AddReg = HdAudModel.MicArrayTopo.AddReg, HDAudio.EPProperties.AddReg
[HdAudModel.MicArrayTopo.AddReg]
HKR,,FriendlyName,,%MicArrayTopoDeviceName%
HKR,,CLSID,,%Proxy.CLSID%

; Called by needs entry in oem inf -- DO NOT REMOVE
[HdAudSecurity.AddReg]
; FILE_DEVICE_SOUND
HKR,,DeviceType,0x10001,0x0000001D
; SDDL_DEVOBJ_SYS_ALL_ADM_RWX_WORLD_RWX_RES_RWX
HKR,,Security,,"D:P(A;;GA;;;SY)(A;;GRGWGX;;;BA)(A;;GRGWGX;;;WD)(A;;GRGWGX;;;RC)"


[Strings]
DiskId1 = "UAA Function Driver for High Definition Audio. Installation Disk" ; {PlaceHolder="UAA","High Definition Audio"}
HdAudioFunctionDriver.CMedia9880.DeviceDesc = "Microsoft 1.1 UAA Function Driver for High Definition Audio - CMedia 9880" ; {PlaceHolder="UAA","High Definition Audio"}
HdAudioFunctionDriver.Realtek880.DeviceDesc = "Microsoft 1.1 UAA Function Driver for High Definition Audio - Realtek 880" ; {PlaceHolder="UAA","High Definition Audio"}
HdAudioFunctionDriver.Realtek860.DeviceDesc = "Microsoft 1.1 UAA Function Driver for High Definition Audio - Realtek 860" ; {PlaceHolder="UAA","High Definition Audio"}
HdAudioFunctionDriver.Realtek280.DeviceDesc = "Microsoft 1.1 UAA Function Driver for High Definition Audio - Realtek 280" ; {PlaceHolder="UAA","High Definition Audio"}
HdAudioFunctionDriver.Realtek260.DeviceDesc = "Microsoft 1.1 UAA Function Driver for High Definition Audio - Realtek 260" ; {PlaceHolder="UAA","High Definition Audio"}
HdAudioFunctionDriver.Realtek261.DeviceDesc = "Microsoft 1.1 UAA Function Driver for High Definition Audio - Realtek 261" ; {PlaceHolder="UAA","High Definition Audio"}
HdAudioFunctionDriver.DDKCodec.DeviceDesc = "Microsoft 1.1 UAA Function Driver for High Definition Audio - DDKCodec" ; {PlaceHolder="UAA","High Definition Audio"}
HdAudioFunctionDriver.Generic.DeviceDesc = "High Definition Audio Device" ; {PlaceHolder="High Definition Audio"}

HdAudioFunctionDriver.Sigma9770.DeviceDesc= "Microsoft 1.1 UAA Function Driver for High Definition Audio - Sigmatel 9770" ; {PlaceHolder="UAA","High Definition Audio"}
HdAudioFunctionDriver.Sigma9772.DeviceDesc= "Microsoft 1.1 UAA Function Driver for High Definition Audio - Sigmatel 9772" ; {PlaceHolder="UAA","High Definition Audio"}
HdAudioFunctionDriver.ConexantWaikiki.DeviceDesc= "Microsoft 1.1 UAA Function Driver for High Definition Audio - Conexant Waikiki" ; {PlaceHolder="UAA","High Definition Audio"}
HdAudioFunctionDriver.Adi1986.DeviceDesc= "Microsoft 1.1 UAA Function Driver for High Definition Audio - Adi 1986" ; {PlaceHolder="UAA","High Definition Audio"}
HdAudioFunctionDriver.Adi1983.DeviceDesc= "Microsoft 1.1 UAA Function Driver for High Definition Audio - Adi 1983" ; {PlaceHolder="UAA","High Definition Audio"}
UAAFunctionDriverForHdAudio.SvcDesc = "Microsoft 1.1 UAA Function Driver for High Definition Audio Service" ; {PlaceHolder="UAA","High Definition Audio"}

; These are the name strings for the wave miniports displayed in mmsys.cpl
; Primary LineOut, HP, LineIn & Mic in are multi instance capable (up to 5 of each)
PrimarySpeakerWaveDeviceName  =        "HD Audio Speaker"         ; {PlaceHolder="HD Audio"}
PrimarySpeakerTopoDeviceName  =        "HD Audio Speaker mixer"   ; {PlaceHolder="HD Audio"}
PrimarySpeaker2WaveDeviceName =        "HD Audio Speaker 2"       ; {PlaceHolder="HD Audio"}
PrimarySpeaker2TopoDeviceName =        "HD Audio Speaker mixer 2" ; {PlaceHolder="HD Audio"}
PrimarySpeaker3WaveDeviceName =        "HD Audio Speaker 3"       ; {PlaceHolder="HD Audio"}
PrimarySpeaker3TopoDeviceName =        "HD Audio Speaker mixer 3" ; {PlaceHolder="HD Audio"}
PrimarySpeaker4WaveDeviceName =        "HD Audio Speaker 4"       ; {PlaceHolder="HD Audio"}
PrimarySpeaker4TopoDeviceName =        "HD Audio Speaker mixer 4" ; {PlaceHolder="HD Audio"}
PrimarySpeaker5WaveDeviceName =        "HD Audio Speaker 5"       ; {PlaceHolder="HD Audio"}
PrimarySpeaker5TopoDeviceName =        "HD Audio Speaker mixer 5" ; {PlaceHolder="HD Audio"}

PrimaryLineConnectorWaveDeviceName  =  "HD Audio Line connector"         ; {PlaceHolder="HD Audio"}
PrimaryLineConnectorTopoDeviceName  =  "HD Audio Line connector mixer"   ; {PlaceHolder="HD Audio"}
PrimaryLineConnector2WaveDeviceName =  "HD Audio Line connector 2"       ; {PlaceHolder="HD Audio"}
PrimaryLineConnector2TopoDeviceName =  "HD Audio Line connector mixer 2" ; {PlaceHolder="HD Audio"}
PrimaryLineConnector3WaveDeviceName =  "HD Audio Line connector 3"       ; {PlaceHolder="HD Audio"}
PrimaryLineConnector3TopoDeviceName =  "HD Audio Line connector mixer 3" ; {PlaceHolder="HD Audio"}
PrimaryLineConnector4WaveDeviceName =  "HD Audio Line connector 4"       ; {PlaceHolder="HD Audio"}
PrimaryLineConnector4TopoDeviceName =  "HD Audio Line connector mixer 4" ; {PlaceHolder="HD Audio"}
PrimaryLineConnector5WaveDeviceName =  "HD Audio Line connector 5"       ; {PlaceHolder="HD Audio"}
PrimaryLineConnector5TopoDeviceName =  "HD Audio Line connector mixer 5" ; {PlaceHolder="HD Audio"}

IndependentHeadphoneWaveDeviceName  =  "HD Audio Headphone"          ; {PlaceHolder="HD Audio"}
IndependentHeadphoneTopoDeviceName  =  "HD Audio Headphone mixer"    ; {PlaceHolder="HD Audio"}
IndependentHeadphone2WaveDeviceName =  "HD Audio Headphone 2"        ; {PlaceHolder="HD Audio"}
IndependentHeadphone2TopoDeviceName =  "HD Audio Headphone 2 mixer"  ; {PlaceHolder="HD Audio"}
IndependentHeadphone3WaveDeviceName =  "HD Audio Headphone 3"        ; {PlaceHolder="HD Audio"}
IndependentHeadphone3TopoDeviceName =  "HD Audio Headphone 3 mixer " ; {PlaceHolder="HD Audio"}
IndependentHeadphone4WaveDeviceName =  "HD Audio Headphone 4"        ; {PlaceHolder="HD Audio"}
IndependentHeadphone4TopoDeviceName =  "HD Audio Headphone 4 mixer"  ; {PlaceHolder="HD Audio"}
IndependentHeadphone5WaveDeviceName =  "HD Audio Headphone 5"        ; {PlaceHolder="HD Audio"}
IndependentHeadphone5TopoDeviceName =  "HD Audio Headphone 5 mixer"  ; {PlaceHolder="HD Audio"}

SpdifOutSpeakerWaveDeviceName = "HD Audio Spdif Speaker"       ; {PlaceHolder="HD Audio"}
SpdifOutSpeakerTopoDeviceName = "HD Audio Spdif Speaker mixer" ; {PlaceHolder="HD Audio"}
; 
; Notice here that the friendly name for this device is the same as with SpdifOutSpeaker
; above. This is because the two devices behave nearly the same way. The only real
; difference is that the Speaker collection of widgets will have an attached Amp.
;
SpdifOutLineOutWaveDeviceName = "HD Audio Spdif Speaker"       ; {PlaceHolder="HD Audio"}
SpdifOutLineOutTopoDeviceName = "HD Audio Spdif Speaker mixer" ; {PlaceHolder="HD Audio"}

;
; SPDIF Out
;

DigitalOutputWaveDeviceName =   "HD Audio SPDIF out"       ; {PlaceHolder="HD Audio"}
DigitalOutputTopoDeviceName =   "HD Audio SPDIF out mixer" ; {PlaceHolder="HD Audio"}

DigitalOutput2WaveDeviceName =   "HD Audio SPDIF out 2"       ; {PlaceHolder="HD Audio"}
DigitalOutput2TopoDeviceName =   "HD Audio SPDIF out 2 mixer" ; {PlaceHolder="HD Audio"}

DigitalOutput3WaveDeviceName =   "HD Audio SPDIF out 3"       ; {PlaceHolder="HD Audio"}
DigitalOutput3TopoDeviceName =   "HD Audio SPDIF out 3 mixer" ; {PlaceHolder="HD Audio"}

DigitalOutput4WaveDeviceName =   "HD Audio SPDIF out 4"       ; {PlaceHolder="HD Audio"}
DigitalOutput4TopoDeviceName =   "HD Audio SPDIF out 4mixer" ; {PlaceHolder="HD Audio"}

DigitalOutput5WaveDeviceName =   "HD Audio SPDIF out 5"       ; {PlaceHolder="HD Audio"}
DigitalOutput5TopoDeviceName =   "HD Audio SPDIF out 5 mixer" ; {PlaceHolder="HD Audio"}

;
; HDMI Out 
;

HDMIOutputWaveDeviceName =   "HD Audio HDMI out"       ; {PlaceHolder="HD Audio"}
HDMIOutputTopoDeviceName =   "HD Audio HDMI out mixer" ; {PlaceHolder="HD Audio"}

HDMIOutput2WaveDeviceName =   "HD Audio HDMI out 2"       ; {PlaceHolder="HD Audio"}
HDMIOutput2TopoDeviceName =   "HD Audio HDMI out mixer 2" ; {PlaceHolder="HD Audio"}

HDMIOutput3WaveDeviceName =   "HD Audio HDMI out 3"       ; {PlaceHolder="HD Audio"}
HDMIOutput3TopoDeviceName =   "HD Audio HDMI out mixer 3" ; {PlaceHolder="HD Audio"}

HDMIOutput4WaveDeviceName =   "HD Audio HDMI out 4"       ; {PlaceHolder="HD Audio"}
HDMIOutput4TopoDeviceName =   "HD Audio HDMI out mixer 4" ; {PlaceHolder="HD Audio"}

HDMIOutput5WaveDeviceName =   "HD Audio HDMI out 5"       ; {PlaceHolder="HD Audio"}
HDMIOutput5TopoDeviceName =   "HD Audio HDMI out mixer 5" ; {PlaceHolder="HD Audio"}

;
; Slaved Hp Render Model & Add Reg
;

SlavedHpSpeakerWaveDeviceName = "HD Audio Headphone/Speakers"       ; {PlaceHolder="HD Audio"}
SlavedHpSpeakerTopoDeviceName = "HD Audio Headphone/Speakers mixer" ; {PlaceHolder="HD Audio"}
SlavedHpSpeaker2WaveDeviceName = "HD Audio Headphone/Speakers 2"       ; {PlaceHolder="HD Audio"}
SlavedHpSpeaker2TopoDeviceName = "HD Audio Headphone/Speakers mixer 2" ; {PlaceHolder="HD Audio"}
SlavedHpSpeaker3WaveDeviceName = "HD Audio Headphone/Speakers 3"       ; {PlaceHolder="HD Audio"}
SlavedHpSpeaker3TopoDeviceName = "HD Audio Headphone/Speakers mixer 3" ; {PlaceHolder="HD Audio"}
SlavedHpSpeaker4WaveDeviceName = "HD Audio Headphone/Speakers 4"       ; {PlaceHolder="HD Audio"}
SlavedHpSpeaker4TopoDeviceName = "HD Audio Headphone/Speakers mixer 4" ; {PlaceHolder="HD Audio"}
SlavedHpSpeaker5WaveDeviceName = "HD Audio Headphone/Speakers 5"       ; {PlaceHolder="HD Audio"}
SlavedHpSpeaker5TopoDeviceName = "HD Audio Headphone/Speakers mixer 5" ; {PlaceHolder="HD Audio"}

;
; Note that Line-out devices are just like Speaker but without the amp, thus, the 
; friendly names that we provide match the Speaker case above.
; 

SlavedHpLineOutWaveDeviceName = "HD Audio Headphone/Speakers"       ; {PlaceHolder="HD Audio"}
SlavedHpLineOutTopoDeviceName = "HD Audio Headphone/Speakers mixer" ; {PlaceHolder="HD Audio"}
SlavedHpLineOut2WaveDeviceName = "HD Audio Headphone/Speakers 2"       ; {PlaceHolder="HD Audio"}
SlavedHpLineOut2TopoDeviceName = "HD Audio Headphone/Speakers mixer 2" ; {PlaceHolder="HD Audio"}
SlavedHpLineOut3WaveDeviceName = "HD Audio Headphone/Speakers 3"       ; {PlaceHolder="HD Audio"}
SlavedHpLineOut3TopoDeviceName = "HD Audio Headphone/Speakers mixer 3" ; {PlaceHolder="HD Audio"}
SlavedHpLineOut4WaveDeviceName = "HD Audio Headphone/Speakers 4"       ; {PlaceHolder="HD Audio"}
SlavedHpLineOut4TopoDeviceName = "HD Audio Headphone/Speakers mixer 4" ; {PlaceHolder="HD Audio"}
SlavedHpLineOut5WaveDeviceName = "HD Audio Headphone/Speakers 5"       ; {PlaceHolder="HD Audio"}
SlavedHpLineOut5TopoDeviceName = "HD Audio Headphone/Speakers mixer 5" ; {PlaceHolder="HD Audio"}

;
; Redirected internal speaker friendly names
;

SlavedIntSpeakerExtLineOutWaveDeviceName = "HD Audio Int Spkr/Ext LineOut"       ; {PlaceHolder="HD Audio"}
SlavedIntSpeakerExtLineOutTopoDeviceName = "HD Audio Int Spkr/Ext LineOut Mixer" ; {PlaceHolder="HD Audio"}

SlavedIntSpeakerExtSpeakerWaveDeviceName = "HD Audio Internal/External Spkr"       ; {PlaceHolder="HD Audio"}
SlavedIntSpeakerExtSpeakerTopoDeviceName = "HD Audio Internal/External Spkr Mixer" ; {PlaceHolder="HD Audio"}

IndependentMicWaveDeviceName  = "HD Audio Microphone"         ; {PlaceHolder="HD Audio"}
IndependentMicTopoDeviceName  = "HD Audio Microphone mixer"   ; {PlaceHolder="HD Audio"}
IndependentMic2WaveDeviceName = "HD Audio Microphone 2"       ; {PlaceHolder="HD Audio"}
IndependentMic2TopoDeviceName = "HD Audio Microphone 2 mixer" ; {PlaceHolder="HD Audio"}
IndependentMic3WaveDeviceName = "HD Audio Microphone 3"       ; {PlaceHolder="HD Audio"}
IndependentMic3TopoDeviceName = "HD Audio Microphone 3 mixer" ; {PlaceHolder="HD Audio"}
IndependentMic4WaveDeviceName = "HD Audio Microphone 4"       ; {PlaceHolder="HD Audio"}
IndependentMic4TopoDeviceName = "HD Audio Microphone 4 mixer" ; {PlaceHolder="HD Audio"}
IndependentMic5WaveDeviceName = "HD Audio Microphone 5"       ; {PlaceHolder="HD Audio"}
IndependentMic5TopoDeviceName = "HD Audio Microphone 5 mixer" ; {PlaceHolder="HD Audio"}

CDInWaveDeviceName            = "HD Audio CD in capture"       ; {PlaceHolder="HD Audio"}
CDinTopoDeviceName            = "HD Audio CD in capture mixer" ; {PlaceHolder="HD Audio"}

PrimaryLineInWaveDeviceName  =  "HD Audio Line in"           ; {PlaceHolder="HD Audio"}
PrimaryLineInTopoDeviceName  =  "HD Audio Line in mixer"     ; {PlaceHolder="HD Audio"}
PrimaryLineIn2WaveDeviceName =  "HD Audio Line in 2"         ; {PlaceHolder="HD Audio"}
PrimaryLineIn2TopoDeviceName =  "HD Audio Line in mixer 2"   ; {PlaceHolder="HD Audio"}
PrimaryLineIn3WaveDeviceName =  "HD Audio Line in 3"         ; {PlaceHolder="HD Audio"}
PrimaryLineIn3TopoDeviceName =  "HD Audio Line in mixer 3"   ; {PlaceHolder="HD Audio"}
PrimaryLineIn4WaveDeviceName =  "HD Audio Line in 4"         ; {PlaceHolder="HD Audio"}
PrimaryLineIn4TopoDeviceName =  "HD Audio Line in mixer 4"   ; {PlaceHolder="HD Audio"}
PrimaryLineIn5WaveDeviceName =  "HD Audio Line in 5"         ; {PlaceHolder="HD Audio"}
PrimaryLineIn5TopoDeviceName =  "HD Audio Line in mixer 5"   ; {PlaceHolder="HD Audio"}

DigitalInputWaveDeviceName =    "HD Audio Digital in"       ; {PlaceHolder="HD Audio"}
DigitalInputTopoDeviceName =    "HD Audio Digital in mixer" ; {PlaceHolder="HD Audio"}

AuxInWaveDeviceName =           "HD Audio Aux in"       ; {PlaceHolder="HD Audio"}
AuxInTopoDeviceName =           "HD Audio Aux in mixer" ; {PlaceHolder="HD Audio"}

MuxedCaptureWaveDeviceName =    "HD Audio Muxed capture"       ; {PlaceHolder="HD Audio"}
MuxedCaptureTopoDeviceName =    "HD Audio Muxed capture mixer" ; {PlaceHolder="HD Audio"}

MixedCaptureWaveDeviceName =    "HD Audio Mixed capture"       ; {PlaceHolder="HD Audio"}
MixedCaptureTopoDeviceName =    "HD Audio Mixed capture mixer" ; {PlaceHolder="HD Audio"}

MicArrayWaveDeviceName =        "HD Audio Microphone array"        ; {PlaceHolder="HD Audio"}
MicArrayTopoDeviceName =        "HD Audio Microphone array mixer"  ; {PlaceHolder="HD Audio"}


; These are the strings passed to PcRegisterSubdevice for wave ports

;Non-localizable
KSNAME_eSpeakerWave = "eSpeakerWave"   ; non-localizable
KSNAME_eSpeaker2Wave = "eSpeaker2Wave" ; non-localizable
KSNAME_eSpeaker3Wave = "eSpeaker3Wave" ; non-localizable
KSNAME_eSpeaker4Wave = "eSpeaker4Wave" ; non-localizable
KSNAME_eSpeaker5Wave = "eSpeaker5Wave" ; non-localizable
KSNAME_eSpeakerTopo = "eSpeakerTopo"   ; non-localizable
KSNAME_eSpeaker2Topo = "eSpeaker2Topo" ; non-localizable
KSNAME_eSpeaker3Topo = "eSpeaker3Topo" ; non-localizable
KSNAME_eSpeaker4Topo = "eSpeaker4Topo" ; non-localizable
KSNAME_eSpeaker5Topo = "eSpeaker5Topo" ; non-localizable

KSNAME_eLineOutWave = "eLineOutWave"   ; non-localizable
KSNAME_eLineOut2Wave = "eLineOut2Wave" ; non-localizable
KSNAME_eLineOut3Wave = "eLineOut3Wave" ; non-localizable
KSNAME_eLineOut4Wave = "eLineOut4Wave" ; non-localizable
KSNAME_eLineOut5Wave = "eLineOut5Wave" ; non-localizable
KSNAME_eLineOutTopo = "eLineOutTopo"   ; non-localizable
KSNAME_eLineOut2Topo = "eLineOut2Topo" ; non-localizable
KSNAME_eLineOut3Topo = "eLineOut3Topo" ; non-localizable
KSNAME_eLineOut4Topo = "eLineOut4Topo" ; non-localizable
KSNAME_eLineOut5Topo = "eLineOut5Topo" ; non-localizable
KSNAME_eLineConnectorWave = "eLineConnectorWave"   ; non-localizable
KSNAME_eLineConnector2Wave = "eLineConnector2Wave" ; non-localizable
KSNAME_eLineConnector3Wave = "eLineConnector3Wave" ; non-localizable
KSNAME_eLineConnector4Wave = "eLineConnector4Wave" ; non-localizable
KSNAME_eLineConnector5Wave = "eLineConnector5Wave" ; non-localizable
KSNAME_eLineConnectorTopo = "eLineConnectorTopo"   ; non-localizable
KSNAME_eLineConnector2Topo = "eLineConnector2Topo" ; non-localizable
KSNAME_eLineConnector3Topo = "eLineConnector3Topo" ; non-localizable
KSNAME_eLineConnector4Topo = "eLineConnector4Topo" ; non-localizable
KSNAME_eLineConnector5Topo = "eLineConnector5Topo" ; non-localizable

KSNAME_eHeadphoneWave ="eHeadphoneWave"    ; non-localizable
KSNAME_eHeadphone2Wave ="eHeadphone2Wave"  ; non-localizable
KSNAME_eHeadphone3Wave ="eHeadphone3Wave"  ; non-localizable
KSNAME_eHeadphone4Wave ="eHeadphone4Wave"  ; non-localizable
KSNAME_eHeadphone5Wave ="eHeadphone5Wave"  ; non-localizable
KSNAME_eHeadphoneTopo = "eHeadphoneTopo"   ; non-localizable
KSNAME_eHeadphone2Topo = "eHeadphone2Topo" ; non-localizable
KSNAME_eHeadphone3Topo = "eHeadphone3Topo" ; non-localizable
KSNAME_eHeadphone4Topo = "eHeadphone4Topo" ; non-localizable
KSNAME_eHeadphone5Topo = "eHeadphone5Topo" ; non-localizable

KSNAME_eSpdifOutWave = "eSpdifOutWave" ; non-localizable
KSNAME_eSpdifOutTopo = "eSpdifOutTopo" ; non-localizable 

KSNAME_eSpdifOut2Wave = "eSpdifOut2Wave" ; non-localizable
KSNAME_eSpdifOut2Topo = "eSpdifOut2Topo" ; non-localizable 

KSNAME_eSpdifOut3Wave = "eSpdifOut2Wave" ; non-localizable
KSNAME_eSpdifOut3Topo = "eSpdifOut2Topo" ; non-localizable 

KSNAME_eSpdifOut4Wave = "eSpdifOut2Wave" ; non-localizable
KSNAME_eSpdifOut4Topo = "eSpdifOut2Topo" ; non-localizable
 
KSNAME_eSpdifOut5Wave = "eSpdifOut2Wave" ; non-localizable
KSNAME_eSpdifOut5Topo = "eSpdifOut2Topo" ; non-localizable 

KSNAME_eHDMIOutWave = "eHDMIOutWave" ; non-localizable
KSNAME_eHDMIOutTopo = "eHDMIOutTopo" ; non-localizable 

KSNAME_eHDMIOut2Wave = "eHDMIOut2Wave" ; non-localizable
KSNAME_eHDMIOut2Topo = "eHDMIOut2Topo" ; non-localizable 

KSNAME_eHDMIOut3Wave = "eHDMIOut3Wave" ; non-localizable
KSNAME_eHDMIOut3Topo = "eHDMIOut3Topo" ; non-localizable 

KSNAME_eHDMIOut4Wave = "eHDMIOut4Wave" ; non-localizable
KSNAME_eHDMIOut4Topo = "eHDMIOut4Topo" ; non-localizable 

KSNAME_eHDMIOut5Wave = "eHDMIOut5Wave" ; non-localizable
KSNAME_eHDMIOut5Topo = "eHDMIOut5Topo" ; non-localizable 

KSNAME_eSpdifOutSpeakerWave = "eSpdifOutSpeakerWave" ; non-localizable
KSNAME_eSpdifOutSpeakerTopo = "eSpdifOutSpeakerTopo" ; non-localizable

KSNAME_eSpdifOutLineOutWave = "eSpdifOutLineOutWave" ; non-localizable
KSNAME_eSpdifOutLineOutTopo = "eSpdifOutLineOutTopo" ; non-localizable

KSNAME_eSlavedHpSpeakerWave= "eSlavedHpSpeakerWave"  ; non-localizable
KSNAME_eSlavedHpSpeakerTopo = "eSlavedHpSpeakerTopo" ; non-localizable
KSNAME_eSlavedHpSpeaker2Wave= "eSlavedHpSpeaker2Wave"  ; non-localizable
KSNAME_eSlavedHpSpeaker2Topo = "eSlavedHpSpeaker2Topo" ; non-localizable
KSNAME_eSlavedHpSpeaker3Wave= "eSlavedHpSpeaker3Wave"  ; non-localizable
KSNAME_eSlavedHpSpeaker3Topo = "eSlavedHpSpeaker3Topo" ; non-localizable
KSNAME_eSlavedHpSpeaker4Wave= "eSlavedHpSpeaker4Wave"  ; non-localizable
KSNAME_eSlavedHpSpeaker4Topo = "eSlavedHpSpeaker4Topo" ; non-localizable
KSNAME_eSlavedHpSpeaker5Wave= "eSlavedHpSpeaker5Wave"  ; non-localizable
KSNAME_eSlavedHpSpeaker5Topo = "eSlavedHpSpeaker5Topo" ; non-localizable

KSNAME_eSlavedHpLineOutWave = "eSlavedHpLineOutWave" ; non-localizable
KSNAME_eSlavedHpLineOutTopo = "eSlavedHpLineOutTopo" ; non-localizable
KSNAME_eSlavedHpLineOut2Wave = "eSlavedHpLineOut2Wave" ; non-localizable
KSNAME_eSlavedHpLineOut2Topo = "eSlavedHpLineOut2Topo" ; non-localizable
KSNAME_eSlavedHpLineOut3Wave = "eSlavedHpLineOut3Wave" ; non-localizable
KSNAME_eSlavedHpLineOut3Topo = "eSlavedHpLineOut3Topo" ; non-localizable
KSNAME_eSlavedHpLineOut4Wave = "eSlavedHpLineOut4Wave" ; non-localizable
KSNAME_eSlavedHpLineOut4Topo = "eSlavedHpLineOut4Topo" ; non-localizable
KSNAME_eSlavedHpLineOut5Wave = "eSlavedHpLineOut5Wave" ; non-localizable
KSNAME_eSlavedHpLineOut5Topo = "eSlavedHpLineOut5Topo" ; non-localizable


KSNAME_eSlavedLineOutSpeakerWave = "eSlavedLineOutSpeakerWave"   ; non-localizable
KSNAME_eSlavedLineOutSpeakerTopo = "eSlavedLineOutSpeakerTopo"   ; non-localizable
KSNAME_eSlavedSpeakerSpeakerWave = "eSlavedSpeakerSpeakerWave"   ; non-localizable   
KSNAME_eSlavedSpeakerSpeakerTopo = "eSlavedSpeakerSpeakerTopo"   ; non-localizable   

KSNAME_eMicInWave = "eMicInWave"   ; non-localizable
KSNAME_eMicIn2Wave = "eMicIn2Wave" ; non-localizable
KSNAME_eMicIn3Wave = "eMicIn3Wave" ; non-localizable
KSNAME_eMicIn4Wave = "eMicIn4Wave" ; non-localizable
KSNAME_eMicIn5Wave = "eMicIn5Wave" ; non-localizable
KSNAME_eMicInTopo = "eMicInTopo"   ; non-localizable
KSNAME_eMicIn2Topo = "eMicIn2Topo" ; non-localizable
KSNAME_eMicIn3Topo = "eMicIn3Topo" ; non-localizable
KSNAME_eMicIn4Topo = "eMicIn4Topo" ; non-localizable
KSNAME_eMicIn5Topo = "eMicIn5Topo" ; non-localizable

KSNAME_eCDInWave = "eCDInWave" ; non-localizable
KSNAME_eCDInTopo = "eCDInTopo" ; non-localizable

KSNAME_eLineInWave = "eLineInWave"   ; non-localizable
KSNAME_eLineIn2Wave = "eLineIn2Wave" ; non-localizable
KSNAME_eLineIn3Wave = "eLineIn3Wave" ; non-localizable
KSNAME_eLineIn4Wave = "eLineIn4Wave" ; non-localizable
KSNAME_eLineIn5Wave = "eLineIn5Wave" ; non-localizable
KSNAME_eLineInTopo = "eLineInTopo"   ; non-localizable
KSNAME_eLineIn2Topo = "eLineIn2Topo" ; non-localizable
KSNAME_eLineIn3Topo = "eLineIn3Topo" ; non-localizable
KSNAME_eLineIn4Topo = "eLineIn4Topo" ; non-localizable
KSNAME_eLineIn5Topo = "eLineIn5Topo" ; non-localizable

KSNAME_eSpdifInWave = "eSpdifInWave" ; non-localizable
KSNAME_eSpdifInTopo = "eSpdifInTopo" ; non-localizable

KSNAME_eAuxInWave = "eAuxInWave" ; non-localizable
KSNAME_eAuxInTopo = "eAuxInTopo" ; non-localizable

KSNAME_eMuxedCaptureWave = "eMuxedCaptureWave" ; non-localizable
KSNAME_eMuxedCaptureTopo = "eMuxedCaptureTopo" ; non-localizable

KSNAME_eMixedCaptureWave = "eMixedCaptureWave" ; non-localizable
KSNAME_eMixedCaptureTopo = "eMixedCaptureTopo" ; non-localizable
 
KSNAME_eMicArrayWave = "eMicArrayWave" ; non-localizable
KSNAME_eMicArrayTopo = "eMicArrayTopo" ; non-localizable

;
; KSCategory Guids
; 

KSCATEGORY_AUDIO = "{6994AD04-93EF-11D0-A3CC-00A0C9223196}"    ; non-localizable
KSCATEGORY_RENDER = "{65E8773E-8F56-11D0-A3B9-00A0C9223196}"   ; non-localizable
KSCATEGORY_CAPTURE = "{65E8773D-8F56-11D0-A3B9-00A0C9223196}"  ; non-localizable
KSCATEGORY_TOPOLOGY = "{DDA54A40-1E4C-11D1-A050-405705C10000}" ; non-localizable
KSCATEGORY_REALTIME = "{EB115FFC-10C8-4964-831D-6DCB02E6F23F}" ; non-localizable
Proxy.CLSID = "{17CCA71B-ECD7-11D0-B908-00A0C9223196}"         ; non-localizable

;
; Various KSNode Guid names.
;

HdAudGuidPrimaryLineOutDac = "{EEF86A90-3742-4974-B8D2-5370E1C540F6}"    ; non-localizable
HdAudGuidFrontHPOutDac = "{497B34AD-D67F-411c-8076-80D5B4250D67}"        ; non-localizable
HdAudGuidDisableDigitalOutput = "{F06BB67D-5C2F-48ad-A307-B449E3B217D6}" ; non-localizable


GUID.REDIRECTED_HEADPHONE_PIN = "{025B7F24-DAFB-4612-9FA0-C5B060850FC8}" ; Nodes (non-localizeable)
GUID.REDIRECTED_INTERNAL_SPEAKER_PIN = "{947FCC8F-33C8-4896-9B84-F9466BB75CF6}" ; Nodes (non-localizeable)
;Localizable

REDIRECTED_HEADPHONE.PinName = "Speakers/Headphone" ; localizeable
REDIRECTED_INTERNAL_SPEAKER.PinName = "Internal Speaker/Headphone"; localizeable

; These are the dac names, probably only displayed by ksstudio
PrimaryLineOutDacName =               "HD Audio line out"  ; {PlaceHolder="HD Audio"}
FrontHPOutDacName =                   "HD Audio headphone" ; {PlaceHolder="HD Audio"}


DisableDigitalOutputName = "Disable Digital Output"
HdAudioDeviceDescription = "Microsoft 1.1 UAA Function Driver for High Definition Audio" ; {PlaceHolder="UAA","High Definition Audio"}

;Information for FX
; PropertyKeys
;Non-localizable
PKEY_FX_Association  = "{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},0"
PKEY_FX_PreMixClsid  = "{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},1"
PKEY_FX_PostMixClsid = "{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},2"
PKEY_FX_UiClsid      = "{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},3"
PKEY_ItemNameDisplay = "{B725F130-47EF-101A-A5F1-02608C9EEBAC},10"

FX_UI_CLSID      = "{5860E1C5-F95C-4a7a-8EC8-8AEF24F379A1}"
KSNODETYPE_ANY   = "{00000000-0000-0000-0000-000000000000}"
FX_PREMIX_CLSID  = "{62dc1a93-ae24-464c-a43e-452f824c4250}"
FX_POSTMIX_CLSID = "{637c490d-eee3-4c0a-973f-371958802da2}"
;Localizable
FX_FriendlyName  = "Microsoft Audio Home Theater Effects"


;Information for EP
; PropertyKeys
;Non-localizable
PKEY_AudioEndpoint_Association = "{1DA5D803-D492-4EDD-8C23-E0C0FFEE7F0E},2"
PKEY_AudioEndpoint_Supports_EventDriven_Mode = "{1DA5D803-D492-4EDD-8C23-E0C0FFEE7F0E},7"



