;******************************************************************
;
; Copyright (C) 2016-2018, Conexant Systems Inc.
;
;******************************************************************

[Version]
Signature   = "$Chicago$"
Class       = MEDIA
Provider    = %ProviderName%
ClassGUID   = {4d36e96c-e325-11ce-bfc1-08002be10318}
CatalogFile = lddockua.cat
DriverVer   = 07/23/2018, 1.31.38.25
pnplockdown = 0

[ControlFlags]
ExcludeFromSelect = *

[SourceDisksNames]
222 = %DiskDescription%,,,

[SourceDisksFiles]
usbaud32W10.sys = 222
usbaud64W10.sys = 222
UDFSPOCJS32.dll = 222
UDFSPOCJS64.dll = 222
UDFSPOCJS32TBT.dll = 222
UDFSPOCJS64TBT.dll = 222
UDFSPOCJS32TBTGT.dll = 222
UDFSPOCJS64TBTGT.dll = 222
UDFSPOCJS32USBC.dll = 222
UDFSPOCJS64USBC.dll = 222
UDFSPOCJS32FM2USBC.dll = 222 ; Freeman2/USB-C
UDFSPOCJS64FM2USBC.dll = 222

;;
;; PE Signature
;;
[SignatureAttributes]
usbaud32W10.sys=SignatureAttributes.DRM
usbaud64W10.sys=SignatureAttributes.DRM
UDFSPOCJS32.dll=SignatureAttributes.PETrust
UDFSPOCJS64.dll=SignatureAttributes.PETrust
UDFSPOCJS32TBT.dll=SignatureAttributes.PETrust
UDFSPOCJS64TBT.dll=SignatureAttributes.PETrust
UDFSPOCJS32TBTGT.dll=SignatureAttributes.PETrust
UDFSPOCJS64TBTGT.dll=SignatureAttributes.PETrust
UDFSPOCJS32USBC.dll=SignatureAttributes.PETrust
UDFSPOCJS64USBC.dll=SignatureAttributes.PETrust
UDFSPOCJS32FM2USBC.dll=SignatureAttributes.PETrust
UDFSPOCJS64FM2USBC.dll=SignatureAttributes.PETrust

[SignatureAttributes.DRM]
DRMLevel=1300

[SignatureAttributes.PETrust]
PETrust=true

[Manufacturer]
%MfgName% = SPoC, NTx86.10.0, NTamd64.10.0

[SPoC.NTx86.10.0]
%SPoC.DeviceDesc% = USBAUD.NTx86.10.0,   USB\VID_17EF&PID_3063&MI_00
%SPoC.DeviceDescThunderbolt% = USBAUDTb.NTx86.10.0,   USB\VID_17EF&PID_306A&MI_00
%SPoC.DeviceDescTBTGT% = USBAUDTBTGT.NTx86.10.0,   USB\VID_17EF&PID_3083&MI_00
%SPoC.DeviceDescUSBC% = USBAUDUSBC.NTx86.10.0,   USB\VID_0572&PID_1A86&MI_00
%SPoC.DeviceDescFM2USBC% = USBAUDFM2USBC.NTx86.10.0,   USB\VID_17EF&PID_A396&MI_00

[SPoC.NTamd64.10.0]
%SPoC.DeviceDesc% = USBAUD.NTamd64.10.0, USB\VID_17EF&PID_3063&MI_00
%SPoC.DeviceDescThunderbolt% = USBAUDTb.NTamd64.10.0,   USB\VID_17EF&PID_306A&MI_00
%SPoC.DeviceDescTBTGT% = USBAUDTBTGT.NTamd64.10.0,   USB\VID_17EF&PID_3083&MI_00
%SPoC.DeviceDescUSBC% = USBAUDUSBC.NTamd64.10.0,   USB\VID_0572&PID_1A86&MI_00
%SPoC.DeviceDescFM2USBC% = USBAUDFM2USBC.NTamd64.10.0,   USB\VID_17EF&PID_A396&MI_00

[DestinationDirs]
USBAUD32W10.CopyFiles   = 12
USBAUD64W10.CopyFiles   = 12
UMDF2JS32.CopyFiles     = 12,UMDF ; copy to drivers\umdf
UMDF2JS64.CopyFiles     = 12,UMDF
UMDF2JS32TBT.CopyFiles     = 12,UMDF
UMDF2JS64TBT.CopyFiles     = 12,UMDF
UMDF2JS32TBTGT.CopyFiles = 12,UMDF
UMDF2JS64TBTGT.CopyFiles = 12,UMDF
UMDF2JS32USBC.CopyFiles = 12,UMDF
UMDF2JS64USBC.CopyFiles = 12,UMDF
UMDF2JS32FM2USBC.CopyFiles = 12,UMDF
UMDF2JS64FM2USBC.CopyFiles = 12,UMDF

[USBAUD32W10.CopyFiles]
usbaud32.sys, usbaud32w10.sys,,

[USBAUD64W10.CopyFiles]
usbaud64.sys, usbaud64w10.sys,,

[UMDF2JS32.CopyFiles]
UDFSPOCJS32.dll

[UMDF2JS64.CopyFiles]
UDFSPOCJS64.dll

;;TBT
[UMDF2JS32TBT.CopyFiles]
UDFSPOCJS32TBT.dll

[UMDF2JS64TBT.CopyFiles]
UDFSPOCJS64TBT.dll

;;Thunderbolt Gen2
[UMDF2JS32TBTGT.CopyFiles]
UDFSPOCJS32TBTGT.dll

[UMDF2JS64TBTGT.CopyFiles]
UDFSPOCJS64TBTGT.dll

;;USB-C
[UMDF2JS32USBC.CopyFiles]
UDFSPOCJS32USBC.dll

[UMDF2JS64USBC.CopyFiles]
UDFSPOCJS64USBC.dll

;;Freeman-2 USB-C
[UMDF2JS32FM2USBC.CopyFiles]
UDFSPOCJS32FM2USBC.dll

[UMDF2JS64FM2USBC.CopyFiles]
UDFSPOCJS64FM2USBC.dll

;======================================================
; USBAUD.NTx86.10.0
;======================================================

[USBAUD.NTx86.10.0]
Include   = ks.inf,wdmaudio.inf
Needs     = KS.Registration, WDMAUDIO.Registration, mssysfx.CopyFilesAndRegister
CopyFiles = USBAUD32W10.CopyFiles, UMDF2JS32.CopyFiles
AddReg    = USBAUD.AddReg, USBAUD32.AddReg, Volume.AddReg, AudioParameters.AddReg, ServiceParameters.AddReg

[USBAUD.NTx86.10.0.hw]
AddReg = DeviceName.AddReg, JackSenseDetection_AddReg
 
[USBAUD.NTx86.10.0.Interfaces]
AddInterface = %KSCATEGORY_AUDIO%,   %KSNAME_Wave%,     USBAUD.I.Wave
AddInterface = %KSCATEGORY_RENDER%,  %KSNAME_Wave%,     USBAUD.I.Wave
AddInterface = %KSCATEGORY_CAPTURE%, %KSNAME_Wave%,     USBAUD.I.Wave
AddInterface = %KSCATEGORY_AUDIO%,   %KSNAME_Topology%, USBAUD.I.Topo

[USBAUD.NTx86.10.0.Services]
AddService = WUDFRd, 0x000001f8, WUDFRD_ServiceInstall
AddService = usbaud, 0x00000002, ConexantUsbAudio32_Service_Inst

;======================================================
; USBAUD.NTamd64.10.0
;======================================================

[USBAUD.NTamd64.10.0]
Include   = ks.inf,wdmaudio.inf
Needs     = KS.Registration, WDMAUDIO.Registration, mssysfx.CopyFilesAndRegister
CopyFiles = USBAUD64W10.CopyFiles, UMDF2JS64.CopyFiles
AddReg    = USBAUD.AddReg, USBAUD64.AddReg, Volume.AddReg, AudioParameters.AddReg, ServiceParameters.AddReg
 
[USBAUD.NTamd64.10.0.hw]
AddReg = DeviceName.AddReg, JackSenseDetection_AddReg
 
[USBAUD.NTamd64.10.0.Interfaces]
AddInterface = %KSCATEGORY_AUDIO%,   %KSNAME_Wave%,     USBAUD.I.Wave
AddInterface = %KSCATEGORY_RENDER%,  %KSNAME_Wave%,     USBAUD.I.Wave
AddInterface = %KSCATEGORY_CAPTURE%, %KSNAME_Wave%,     USBAUD.I.Wave
AddInterface = %KSCATEGORY_AUDIO%,   %KSNAME_Topology%, USBAUD.I.Topo

[USBAUD.NTamd64.10.0.Services]
AddService = WUDFRd, 0x000001f8, WUDFRD_ServiceInstall
AddService = usbaud, 0x00000002, ConexantUsbAudio64_Service_Inst

;======================================================
; USBAUDTb.NTx86.10.0
;======================================================

[USBAUDTb.NTx86.10.0]
Include   = ks.inf,wdmaudio.inf
Needs     = KS.Registration, WDMAUDIO.Registration, mssysfx.CopyFilesAndRegister
CopyFiles = USBAUD32W10.CopyFiles, UMDF2JS32TBT.CopyFiles
AddReg    = USBAUDTb.AddReg, USBAUD32.AddReg, Volume.AddReg, AudioParameters.AddReg, ServiceParametersTb.AddReg

[USBAUDTb.NTx86.10.0.hw]
AddReg = DeviceNameTb.AddReg, JackSenseDetection_AddReg
 
[USBAUDTb.NTx86.10.0.Interfaces]
AddInterface = %KSCATEGORY_AUDIO%,   %KSNAME_Wave%,     USBAUDTb.I.Wave
AddInterface = %KSCATEGORY_RENDER%,  %KSNAME_Wave%,     USBAUDTb.I.Wave
AddInterface = %KSCATEGORY_CAPTURE%, %KSNAME_Wave%,     USBAUDTb.I.Wave
AddInterface = %KSCATEGORY_AUDIO%,   %KSNAME_Topology%, USBAUDTb.I.Topo

[USBAUDTb.NTx86.10.0.Services]
AddService = WUDFRd, 0x000001f8, WUDFRD_ServiceInstall
AddService = usbaud, 0x00000002, ConexantUsbAudio32Tb_Service_Inst

;======================================================
; USBAUDTb.NTamd64.10.0
;======================================================

[USBAUDTb.NTamd64.10.0]
Include   = ks.inf,wdmaudio.inf
Needs     = KS.Registration, WDMAUDIO.Registration, mssysfx.CopyFilesAndRegister
CopyFiles = USBAUD64W10.CopyFiles, UMDF2JS64TBT.CopyFiles
AddReg    = USBAUDTb.AddReg, USBAUD64.AddReg, Volume.AddReg, AudioParameters.AddReg, ServiceParametersTb.AddReg
 
[USBAUDTb.NTamd64.10.0.hw]
AddReg = DeviceNameTb.AddReg, JackSenseDetection_AddReg
 
[USBAUDTb.NTamd64.10.0.Interfaces]
AddInterface = %KSCATEGORY_AUDIO%,   %KSNAME_Wave%,     USBAUDTb.I.Wave
AddInterface = %KSCATEGORY_RENDER%,  %KSNAME_Wave%,     USBAUDTb.I.Wave
AddInterface = %KSCATEGORY_CAPTURE%, %KSNAME_Wave%,     USBAUDTb.I.Wave
AddInterface = %KSCATEGORY_AUDIO%,   %KSNAME_Topology%, USBAUDTb.I.Topo

[USBAUDTb.NTamd64.10.0.Services]
AddService = WUDFRd, 0x000001f8, WUDFRD_ServiceInstall
AddService = usbaud, 0x00000002, ConexantUsbAudio64Tb_Service_Inst

;======================================================
; USBAUDTBTGT.NTx86.10.0
;======================================================

[USBAUDTBTGT.NTx86.10.0]
Include   = ks.inf,wdmaudio.inf
Needs     = KS.Registration, WDMAUDIO.Registration, mssysfx.CopyFilesAndRegister
CopyFiles = USBAUD32W10.CopyFiles, UMDF2JS32TBTGT.CopyFiles
AddReg    = USBAUDTBTGT.AddReg, USBAUD32.AddReg, Volume.AddReg, AudioParameters.AddReg, ServiceParametersTBTGT.AddReg

[USBAUDTBTGT.NTx86.10.0.hw]
AddReg = DeviceNameTBTGT.AddReg, JackSenseDetection_AddReg
 
[USBAUDTBTGT.NTx86.10.0.Interfaces]
AddInterface = %KSCATEGORY_AUDIO%,   %KSNAME_Wave%,     USBAUDTBTGT.I.Wave
AddInterface = %KSCATEGORY_RENDER%,  %KSNAME_Wave%,     USBAUDTBTGT.I.Wave
AddInterface = %KSCATEGORY_CAPTURE%, %KSNAME_Wave%,     USBAUDTBTGT.I.Wave
AddInterface = %KSCATEGORY_AUDIO%,   %KSNAME_Topology%, USBAUDTBTGT.I.Topo

[USBAUDTBTGT.NTx86.10.0.Services]
AddService = WUDFRd, 0x000001f8, WUDFRD_ServiceInstall
AddService = usbaud, 0x00000002, ConexantUsbAudio32TBTGT_Service_Inst

;======================================================
; USBAUDTBTGT.NTamd64.10.0
;======================================================

[USBAUDTBTGT.NTamd64.10.0]
Include   = ks.inf,wdmaudio.inf
Needs     = KS.Registration, WDMAUDIO.Registration, mssysfx.CopyFilesAndRegister
CopyFiles = USBAUD64W10.CopyFiles, UMDF2JS64TBTGT.CopyFiles
AddReg    = USBAUDTBTGT.AddReg, USBAUD64.AddReg, Volume.AddReg, AudioParameters.AddReg, ServiceParametersTBTGT.AddReg
 
[USBAUDTBTGT.NTamd64.10.0.hw]
AddReg = DeviceNameTBTGT.AddReg, JackSenseDetection_AddReg
 
[USBAUDTBTGT.NTamd64.10.0.Interfaces]
AddInterface = %KSCATEGORY_AUDIO%,   %KSNAME_Wave%,     USBAUDTBTGT.I.Wave
AddInterface = %KSCATEGORY_RENDER%,  %KSNAME_Wave%,     USBAUDTBTGT.I.Wave
AddInterface = %KSCATEGORY_CAPTURE%, %KSNAME_Wave%,     USBAUDTBTGT.I.Wave
AddInterface = %KSCATEGORY_AUDIO%,   %KSNAME_Topology%, USBAUDTBTGT.I.Topo

[USBAUDTBTGT.NTamd64.10.0.Services]
AddService = WUDFRd, 0x000001f8, WUDFRD_ServiceInstall
AddService = usbaud, 0x00000002, ConexantUsbAudio64TBTGT_Service_Inst

;======================================================
; USBAUDUSBC.NTx86.10.0
;======================================================

[USBAUDUSBC.NTx86.10.0]
Include   = ks.inf,wdmaudio.inf
Needs     = KS.Registration, WDMAUDIO.Registration, mssysfx.CopyFilesAndRegister
CopyFiles = USBAUD32W10.CopyFiles, UMDF2JS32USBC.CopyFiles
AddReg    = USBAUDUSBC.AddReg, USBAUD32.AddReg, Volume.AddReg, AudioParameters.AddReg, ServiceParametersUSBC.AddReg

[USBAUDUSBC.NTx86.10.0.hw]
AddReg = DeviceNameUSBC.AddReg, JackSenseDetection_AddReg
 
[USBAUDUSBC.NTx86.10.0.Interfaces]
AddInterface = %KSCATEGORY_AUDIO%,   %KSNAME_Wave%,     USBAUDUSBC.I.Wave
AddInterface = %KSCATEGORY_RENDER%,  %KSNAME_Wave%,     USBAUDUSBC.I.Wave
AddInterface = %KSCATEGORY_CAPTURE%, %KSNAME_Wave%,     USBAUDUSBC.I.Wave
AddInterface = %KSCATEGORY_AUDIO%,   %KSNAME_Topology%, USBAUDUSBC.I.Topo

[USBAUDUSBC.NTx86.10.0.Services]
AddService = WUDFRd, 0x000001f8, WUDFRD_ServiceInstall
AddService = usbaud, 0x00000002, ConexantUsbAudio32USBC_Service_Inst

;======================================================
; USBAUDUSBC.NTamd64.10.0
;======================================================

[USBAUDUSBC.NTamd64.10.0]
Include   = ks.inf,wdmaudio.inf
Needs     = KS.Registration, WDMAUDIO.Registration, mssysfx.CopyFilesAndRegister
CopyFiles = USBAUD64W10.CopyFiles, UMDF2JS64USBC.CopyFiles
AddReg    = USBAUDUSBC.AddReg, USBAUD64.AddReg, Volume.AddReg, AudioParameters.AddReg, ServiceParametersUSBC.AddReg
 
[USBAUDUSBC.NTamd64.10.0.hw]
AddReg = DeviceNameUSBC.AddReg, JackSenseDetection_AddReg
 
[USBAUDUSBC.NTamd64.10.0.Interfaces]
AddInterface = %KSCATEGORY_AUDIO%,   %KSNAME_Wave%,     USBAUDUSBC.I.Wave
AddInterface = %KSCATEGORY_RENDER%,  %KSNAME_Wave%,     USBAUDUSBC.I.Wave
AddInterface = %KSCATEGORY_CAPTURE%, %KSNAME_Wave%,     USBAUDUSBC.I.Wave
AddInterface = %KSCATEGORY_AUDIO%,   %KSNAME_Topology%, USBAUDUSBC.I.Topo

[USBAUDUSBC.NTamd64.10.0.Services]
AddService = WUDFRd, 0x000001f8, WUDFRD_ServiceInstall
AddService = usbaud, 0x00000002, ConexantUsbAudio64USBC_Service_Inst

;======================================================
; USBAUDFM2USBC.NTx86.10.0
;======================================================

[USBAUDFM2USBC.NTx86.10.0]
Include   = ks.inf,wdmaudio.inf
Needs     = KS.Registration, WDMAUDIO.Registration, mssysfx.CopyFilesAndRegister
CopyFiles = USBAUD32W10.CopyFiles, UMDF2JS32FM2USBC.CopyFiles
AddReg    = USBAUDFM2USBC.AddReg, USBAUD32.AddReg, Volume.AddReg, AudioParameters.AddReg, ServiceParametersFM2USBC.AddReg

[USBAUDFM2USBC.NTx86.10.0.hw]
AddReg = DeviceNameFM2USBC.AddReg, JackSenseDetection_AddReg
 
[USBAUDFM2USBC.NTx86.10.0.Interfaces]
AddInterface = %KSCATEGORY_AUDIO%,   %KSNAME_Wave%,     USBAUDFM2USBC.I.Wave
AddInterface = %KSCATEGORY_RENDER%,  %KSNAME_Wave%,     USBAUDFM2USBC.I.Wave
AddInterface = %KSCATEGORY_CAPTURE%, %KSNAME_Wave%,     USBAUDFM2USBC.I.Wave
AddInterface = %KSCATEGORY_AUDIO%,   %KSNAME_Topology%, USBAUDFM2USBC.I.Topo

[USBAUDFM2USBC.NTx86.10.0.Services]
AddService = WUDFRd, 0x000001f8, WUDFRD_ServiceInstall
AddService = usbaud, 0x00000002, ConexantUsbAudio32FM2USBC_Service_Inst

;======================================================
; USBAUDFM2USBC.NTamd64.10.0
;======================================================

[USBAUDFM2USBC.NTamd64.10.0]
Include   = ks.inf,wdmaudio.inf
Needs     = KS.Registration, WDMAUDIO.Registration, mssysfx.CopyFilesAndRegister
CopyFiles = USBAUD64W10.CopyFiles, UMDF2JS64FM2USBC.CopyFiles
AddReg    = USBAUDFM2USBC.AddReg, USBAUD64.AddReg, Volume.AddReg, AudioParameters.AddReg, ServiceParametersFM2USBC.AddReg
 
[USBAUDFM2USBC.NTamd64.10.0.hw]
AddReg = DeviceNameFM2USBC.AddReg, JackSenseDetection_AddReg
 
[USBAUDFM2USBC.NTamd64.10.0.Interfaces]
AddInterface = %KSCATEGORY_AUDIO%,   %KSNAME_Wave%,     USBAUDFM2USBC.I.Wave
AddInterface = %KSCATEGORY_RENDER%,  %KSNAME_Wave%,     USBAUDFM2USBC.I.Wave
AddInterface = %KSCATEGORY_CAPTURE%, %KSNAME_Wave%,     USBAUDFM2USBC.I.Wave
AddInterface = %KSCATEGORY_AUDIO%,   %KSNAME_Topology%, USBAUDFM2USBC.I.Topo

[USBAUDFM2USBC.NTamd64.10.0.Services]
AddService = WUDFRd, 0x000001f8, WUDFRD_ServiceInstall
AddService = usbaud, 0x00000002, ConexantUsbAudio64FM2USBC_Service_Inst


;====================================
; driver service + jack sense service
;====================================
;UMDF JackSense
[JackSenseDetection_AddReg]
HKR,,"LowerFilters",0x00010008,"WUDFRd" ; FLG_ADDREG_TYPE_MULTI_SZ | FLG_ADDREG_APPEND


[WUDFRD_ServiceInstall]
DisplayName = %WudfRdDisplayName%
ServiceType = 1
StartType = 3
ErrorControl = 1
ServiceBinary = %12%\WUDFRd.sys
LoadOrderGroup = Base

[ConexantUsbAudio32_Service_Inst]
DisplayName   = %SPoC.SvcDesc%
ServiceType   = 1
StartType     = 3
ErrorControl  = 1
ServiceBinary = %12%\usbaud32.sys

[ConexantUsbAudio64_Service_Inst]
DisplayName   = %SPoC.SvcDesc%
ServiceType   = 1
StartType     = 3
ErrorControl  = 1
ServiceBinary = %12%\usbaud64.sys

;Thunderbolt
[ConexantUsbAudio32Tb_Service_Inst]
DisplayName   = %SPoC.SvcDescThunderbolt%
ServiceType   = 1
StartType     = 3
ErrorControl  = 1
ServiceBinary = %12%\usbaud32.sys

[ConexantUsbAudio64Tb_Service_Inst]
DisplayName   = %SPoC.SvcDescThunderbolt%
ServiceType   = 1
StartType     = 3
ErrorControl  = 1
ServiceBinary = %12%\usbaud64.sys

;Thunderbolt Gen2
[ConexantUsbAudio32TBTGT_Service_Inst]
DisplayName   = %SPoC.SvcDescTBTGT%
ServiceType   = 1
StartType     = 3
ErrorControl  = 1
ServiceBinary = %12%\usbaud32.sys

[ConexantUsbAudio64TBTGT_Service_Inst]
DisplayName   = %SPoC.SvcDescTBTGT%
ServiceType   = 1
StartType     = 3
ErrorControl  = 1
ServiceBinary = %12%\usbaud64.sys

;USB-C
[ConexantUsbAudio32USBC_Service_Inst]
DisplayName   = %SPoC.SvcDescUSBC%
ServiceType   = 1
StartType     = 3
ErrorControl  = 1
ServiceBinary = %12%\usbaud32.sys

[ConexantUsbAudio64USBC_Service_Inst]
DisplayName   = %SPoC.SvcDescUSBC%
ServiceType   = 1
StartType     = 3
ErrorControl  = 1
ServiceBinary = %12%\usbaud64.sys

;Freeman2-USB-C
[ConexantUsbAudio32FM2USBC_Service_Inst]
DisplayName   = %SPoC.SvcDescFM2USBC%
ServiceType   = 1
StartType     = 3
ErrorControl  = 1
ServiceBinary = %12%\usbaud32.sys

[ConexantUsbAudio64FM2USBC_Service_Inst]
DisplayName   = %SPoC.SvcDescFM2USBC%
ServiceType   = 1
StartType     = 3
ErrorControl  = 1
ServiceBinary = %12%\usbaud64.sys


;======================================================
; COMMON
;======================================================
[USBAUD.AddReg]
HKR,,AssociatedFilters,,"wdmaud,swmidi,redbook"
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,,%SPoC.DeviceDesc%
HKR,Drivers\midi\wdmaud.drv,Description,,%SPoC.MidiDesc%
HKR,Drivers\mixer\wdmaud.drv,Description,,%SPoC.DeviceDesc%

[USBAUDTb.AddReg]
HKR,,AssociatedFilters,,"wdmaud,swmidi,redbook"
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,,%SPoC.DeviceDescThunderbolt%
HKR,Drivers\midi\wdmaud.drv,Description,,%SPoC.MidiDescThunderbolt%
HKR,Drivers\mixer\wdmaud.drv,Description,,%SPoC.DeviceDescThunderbolt%

[USBAUDTBTGT.AddReg]
HKR,,AssociatedFilters,,"wdmaud,swmidi,redbook"
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,,%SPoC.DeviceDescTBTGT%
HKR,Drivers\midi\wdmaud.drv,Description,,%SPoC.MidiDescTBTGT%
HKR,Drivers\mixer\wdmaud.drv,Description,,%SPoC.DeviceDescTBTGT%

[USBAUDUSBC.AddReg]
HKR,,AssociatedFilters,,"wdmaud,swmidi,redbook"
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,,%SPoC.DeviceDescUSBC%
HKR,Drivers\midi\wdmaud.drv,Description,,%SPoC.MidiDescUSBC%
HKR,Drivers\mixer\wdmaud.drv,Description,,%SPoC.DeviceDescUSBC%

[USBAUDFM2USBC.AddReg]
HKR,,AssociatedFilters,,"wdmaud,swmidi,redbook"
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,,%SPoC.DeviceDescFM2USBC%
HKR,Drivers\midi\wdmaud.drv,Description,,%SPoC.MidiDescFM2USBC%
HKR,Drivers\mixer\wdmaud.drv,Description,,%SPoC.DeviceDescFM2USBC%

[USBAUD32.AddReg]
HKR,,Driver,,usbaud32.sys
HKR,,NTMPDriver,,"usbaud32.sys,sbemul.sys"

[USBAUD64.AddReg]
HKR,,Driver,,usbaud64.sys
HKR,,NTMPDriver,,"usbaud64.sys,sbemul.sys"

;============================================
;            wave topology
;============================================
[USBAUD.I.Wave]
AddReg=USBAUD.I.Wave.AddReg

[USBAUD.I.Wave.AddReg]
HKR,,CLSID,,%Proxy.CLSID%
HKR,,FriendlyName,,%USBAUD.Wave.szPname%
 
[USBAUD.I.Topo]
AddReg=USBAUD.I.Topo.AddReg, USBAudio.EPProperties.AddReg

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

;Tb
[USBAUDTb.I.Wave]
AddReg=USBAUDTb.I.Wave.AddReg

[USBAUDTb.I.Wave.AddReg]
HKR,,CLSID,,%Proxy.CLSID%
HKR,,FriendlyName,,%USBAUD.Wave.szPnameThunderbolt%
 
[USBAUDTb.I.Topo]
AddReg=USBAUDTb.I.Topo.AddReg, USBAudio.EPProperties.AddReg

[USBAUDTb.I.Topo.AddReg]
HKR,,CLSID,,%Proxy.CLSID%
HKR,,FriendlyName,,%USBAUD.Topo.szPnameThunderbolt%

;Thunderbolt Gen2
[USBAUDTBTGT.I.Wave]
AddReg=USBAUDTBTGT.I.Wave.AddReg

[USBAUDTBTGT.I.Wave.AddReg]
HKR,,CLSID,,%Proxy.CLSID%
HKR,,FriendlyName,,%USBAUD.Wave.szPnameTBTGT%
 
[USBAUDTBTGT.I.Topo]
AddReg=USBAUDTBTGT.I.Topo.AddReg, USBAudio.EPProperties.AddReg

[USBAUDTBTGT.I.Topo.AddReg]
HKR,,CLSID,,%Proxy.CLSID%
HKR,,FriendlyName,,%USBAUD.Topo.szPnameTBTGT%

;USB-C
[USBAUDUSBC.I.Wave]
AddReg=USBAUDUSBC.I.Wave.AddReg

[USBAUDUSBC.I.Wave.AddReg]
HKR,,CLSID,,%Proxy.CLSID%
HKR,,FriendlyName,,%USBAUD.Wave.szPnameUSBC%
 
[USBAUDUSBC.I.Topo]
AddReg=USBAUDUSBC.I.Topo.AddReg, USBAudio.EPProperties.AddReg

[USBAUDUSBC.I.Topo.AddReg]
HKR,,CLSID,,%Proxy.CLSID%
HKR,,FriendlyName,,%USBAUD.Topo.szPnameUSBC%

;Freeman2-USB-C
[USBAUDFM2USBC.I.Wave]
AddReg=USBAUDFM2USBC.I.Wave.AddReg

[USBAUDFM2USBC.I.Wave.AddReg]
HKR,,CLSID,,%Proxy.CLSID%
HKR,,FriendlyName,,%USBAUD.Wave.szPnameFM2USBC%
 
[USBAUDFM2USBC.I.Topo]
AddReg=USBAUDFM2USBC.I.Topo.AddReg, USBAudio.EPProperties.AddReg

[USBAUDFM2USBC.I.Topo.AddReg]
HKR,,CLSID,,%Proxy.CLSID%
HKR,,FriendlyName,,%USBAUD.Topo.szPnameFM2USBC%

[USBAudio.EPProperties.AddReg]
;; Note: MSEP\\n is reserved for Microsoft inbox inf use ONLY. 
;; To avoid undeterminitic result, 3rd party driver INF should use EP\\n instead. 
HKR,"EP\\0",%PKEY_AudioEndpoint_Association%,,%KSNODETYPE_ANY%
;;HKR,"EP\\0",%PKEY_AudioEndpoint_Supports_EventDriven_Mode%,0x00010001,0x1 ;;enable with WaveCyclic and WaveRT Pull mode

;======================================================
; Audio settings                                   
;======================================================
[Volume.AddReg]
HKR,GlobalSettings,PlaybackVolume,          1,5C,00,00,00  ;
HKR,GlobalSettings,RecordingMicVolume,      1,50,00,00,00  ; 
HKR,GlobalSettings,RecordingLineInVolume,   1,50,00,00,00  ;

[AudioParameters.AddReg]
HKR,,EnableWaveRT,                          1,01,00,00,00
HKR,GlobalSettings,SelectiveSuspend,        1,00,00,00,00  ;; Support Selective Suspend
HKR,GlobalSettings,OverrideDeviceVersion,   1,08,00,00,00  ;; Freeman Docking Station

HKR,GlobalSettings,DisableJackSense,        1,00,00,00,00  ;; Enable Jack Sense
HKR,GlobalSettings,DisableKernelPollingJackSense,        1,01,00,00,00  ;; Disable Kernel Polling Jack Sense
HKR,GlobalSettings,UsingAuxMic,             1,00,00,00,00 ;; No Aux Mic

HKR,GlobalSettings,BeamWidth,               1,64,00,14,00  ;; Beam Width and Mic Array Seperation
HKR,GlobalSettings,MicDelay,                1,1E,00,00,00  ; Microphone Delay for Echo Cancelation (in milliseconds)
HKR,GlobalSettings,MicNrAgressivenessLevel, 1,08,00,00,00  ; Aggressiveness of Noise Reduction (0-8)
HKR,GlobalSettings,MicBoostBeforeNR,        1,14,00,00,00  ; Gain before Noise Reduction
HKR,GlobalSettings,MicBoostAfterNR,         1,00,00,00,00  ; Gain after  Noise Reduction
HKR,PowerSettings,ConservationIdleTime,     1,00,00,00,00
HKR,PowerSettings,PerformanceIdleTime,      1,00,00,00,00
HKR,PowerSettings,IdlePowerState,           1,00,00,00,00

[ServiceParameters.AddReg]
HKLM,SYSTEM\CurrentControlSet\Services\usbaud, DefaultSettings,0x00000001,0,1,0
HKLM,SOFTWARE\Conexant\LenovoDuceDock, ProductID,0x10001,0x00003063
HKLM,SOFTWARE\Conexant\LenovoDuceDock, VendorID,0x10001,0x000017EF
HKLM,SOFTWARE\Conexant\LenovoDuceDock, ServiceSettings, 0x10001,0x00000000  ;;Enable Jack Sense

[ServiceParametersTb.AddReg]
HKLM,SYSTEM\CurrentControlSet\Services\usbaud, DefaultSettings,0x00000001,0,1,0
HKLM,SOFTWARE\Conexant\LenovoTBTDock, ProductID,0x10001,0x0000306A
HKLM,SOFTWARE\Conexant\LenovoTBTDock, VendorID,0x10001,0x000017EF
HKLM,SOFTWARE\Conexant\LenovoTBTDock, ServiceSettings, 0x10001,0x00000000  ;;Enable Jack Sense

[ServiceParametersTBTGT.AddReg]
HKLM,SYSTEM\CurrentControlSet\Services\usbaud, DefaultSettings,0x00000001,0,1,0
HKLM,SOFTWARE\Conexant\LenovoTBTGen2Dock, ProductID,0x10001,0x00003083
HKLM,SOFTWARE\Conexant\LenovoTBTGen2Dock, VendorID,0x10001,0x000017EF
HKLM,SOFTWARE\Conexant\LenovoTBTGen2Dock, ServiceSettings, 0x10001,0x00000000  ;;Enable Jack Sense

[ServiceParametersUSBC.AddReg]
HKLM,SYSTEM\CurrentControlSet\Services\usbaud, DefaultSettings,0x00000001,0,1,0
HKLM,SOFTWARE\Conexant\LenovoUSBCDock, ProductID,0x10001,0x00001A86
HKLM,SOFTWARE\Conexant\LenovoUSBCDock, VendorID,0x10001,0x00000572
HKLM,SOFTWARE\Conexant\LenovoUSBCDock, ServiceSettings, 0x10001,0x00000000  ;;Enable Jack Sense

[ServiceParametersFM2USBC.AddReg]
HKLM,SYSTEM\CurrentControlSet\Services\usbaud, DefaultSettings,0x00000001,0,1,0
HKLM,SOFTWARE\Conexant\LenovoFM2USBCDock, ProductID,0x10001,0x0000A396
HKLM,SOFTWARE\Conexant\LenovoFM2USBCDock, VendorID,0x10001,0x000017EF
HKLM,SOFTWARE\Conexant\LenovoFM2USBCDock, ServiceSettings, 0x10001,0x00000000  ;;Enable Jack Sense

[DeviceName.AddReg]
HKR,,FriendlyName,,%SPoC.DeviceDesc%

[DeviceNameTb.AddReg]
HKR,,FriendlyName,,%SPoC.DeviceDescThunderbolt%

[DeviceNameTBTGT.AddReg]
HKR,,FriendlyName,,%SPoC.DeviceDescTBTGT%

[DeviceNameUSBC.AddReg]
HKR,,FriendlyName,,%SPoC.DeviceDescUSBC%

[DeviceNameFM2USBC.AddReg]
HKR,,FriendlyName,,%SPoC.DeviceDescFM2USBC%

;;UMDF Installation
;;UMDF2 10
[USBAUD.NTx86.10.0.Wdf]
UmdfService      ="UMDF2JackSenseDetection32", UMDF2JackSenseDetection32_Install
UmdfServiceOrder = UMDF2JackSenseDetection32
UmdfKernelModeClientPolicy = AllowKernelModeClients
UmdfMethodNeitherAction = Copy

[USBAUD.NTamd64.10.0.Wdf]
UmdfService      ="UMDF2JackSenseDetection64", UMDF2JackSenseDetection64_Install
UmdfServiceOrder = UMDF2JackSenseDetection64
UmdfKernelModeClientPolicy = AllowKernelModeClients
UmdfMethodNeitherAction = Copy

;;Tb
[USBAUDTb.NTx86.10.0.Wdf]
UmdfService      ="UMDF2JackSenseDetection32TBT", UMDF2JackSenseDetection32TBT_Install
UmdfServiceOrder = UMDF2JackSenseDetection32TBT
UmdfKernelModeClientPolicy = AllowKernelModeClients
UmdfMethodNeitherAction = Copy

[USBAUDTb.NTamd64.10.0.Wdf]
UmdfService      ="UMDF2JackSenseDetection64TBT", UMDF2JackSenseDetection64TBT_Install
UmdfServiceOrder = UMDF2JackSenseDetection64TBT
UmdfKernelModeClientPolicy = AllowKernelModeClients
UmdfMethodNeitherAction = Copy

;;Thunderbolt Gen2
[USBAUDTBTGT.NTx86.10.0.Wdf]
UmdfService      ="UMDF2JackSenseDetection32TBTGT", UMDF2JackSenseDetection32TBTGT_Install
UmdfServiceOrder = UMDF2JackSenseDetection32TBTGT
UmdfKernelModeClientPolicy = AllowKernelModeClients
UmdfMethodNeitherAction = Copy

[USBAUDTBTGT.NTamd64.10.0.Wdf]
UmdfService      ="UMDF2JackSenseDetection64TBTGT", UMDF2JackSenseDetection64TBTGT_Install
UmdfServiceOrder = UMDF2JackSenseDetection64TBTGT
UmdfKernelModeClientPolicy = AllowKernelModeClients
UmdfMethodNeitherAction = Copy

;;USB-C
[USBAUDUSBC.NTx86.10.0.Wdf]
UmdfService      ="UMDF2JackSenseDetection32USBC", UMDF2JackSenseDetection32USBC_Install
UmdfServiceOrder = UMDF2JackSenseDetection32USBC
UmdfKernelModeClientPolicy = AllowKernelModeClients
UmdfMethodNeitherAction = Copy

[USBAUDUSBC.NTamd64.10.0.Wdf]
UmdfService      ="UMDF2JackSenseDetection64USBC", UMDF2JackSenseDetection64USBC_Install
UmdfServiceOrder = UMDF2JackSenseDetection64USBC
UmdfKernelModeClientPolicy = AllowKernelModeClients
UmdfMethodNeitherAction = Copy

;;Freeman2-USB-C
[USBAUDFM2USBC.NTx86.10.0.Wdf]
UmdfService      ="UMDF2JackSenseDetection32FM2USBC", UMDF2JackSenseDetection32FM2USBC_Install
UmdfServiceOrder = UMDF2JackSenseDetection32FM2USBC
UmdfKernelModeClientPolicy = AllowKernelModeClients
UmdfMethodNeitherAction = Copy

[USBAUDFM2USBC.NTamd64.10.0.Wdf]
UmdfService      ="UMDF2JackSenseDetection64FM2USBC", UMDF2JackSenseDetection64FM2USBC_Install
UmdfServiceOrder = UMDF2JackSenseDetection64FM2USBC
UmdfKernelModeClientPolicy = AllowKernelModeClients
UmdfMethodNeitherAction = Copy


[UMDF2JackSenseDetection32_Install]
UmdfLibraryVersion=2.0.0
;DriverCLSID = "{422d8dbc-520d-4d7e-8f53-920e5c867e6c}"
ServiceBinary = %12%\UMDF\UDFSPOCJS32.dll

[UMDF2JackSenseDetection64_Install]
UmdfLibraryVersion=2.0.0
;DriverCLSID = "{422d8dbc-520d-4d7e-8f53-920e5c867e6c}"
ServiceBinary = %12%\UMDF\UDFSPOCJS64.dll

;TBT
[UMDF2JackSenseDetection32TBT_Install]
UmdfLibraryVersion=2.0.0
;DriverCLSID = "{422d8dbc-520d-4d7e-8f53-920e5c867e6c}"
ServiceBinary = %12%\UMDF\UDFSPOCJS32TBT.dll

[UMDF2JackSenseDetection64TBT_Install]
UmdfLibraryVersion=2.0.0
;DriverCLSID = "{422d8dbc-520d-4d7e-8f53-920e5c867e6c}"
ServiceBinary = %12%\UMDF\UDFSPOCJS64TBT.dll

;Thunderbolt Gen2
[UMDF2JackSenseDetection32TBTGT_Install]
UmdfLibraryVersion=2.0.0
;DriverCLSID = "{422d8dbc-520d-4d7e-8f53-920e5c867e6c}"
ServiceBinary = %12%\UMDF\UDFSPOCJS32TBTGT.dll

[UMDF2JackSenseDetection64TBTGT_Install]
UmdfLibraryVersion=2.0.0
;DriverCLSID = "{422d8dbc-520d-4d7e-8f53-920e5c867e6c}"
ServiceBinary = %12%\UMDF\UDFSPOCJS64TBTGT.dll

;USB-C
[UMDF2JackSenseDetection32USBC_Install]
UmdfLibraryVersion=2.0.0
;DriverCLSID = "{422d8dbc-520d-4d7e-8f53-920e5c867e6c}"
ServiceBinary = %12%\UMDF\UDFSPOCJS32USBC.dll

[UMDF2JackSenseDetection64USBC_Install]
UmdfLibraryVersion=2.0.0
;DriverCLSID = "{422d8dbc-520d-4d7e-8f53-920e5c867e6c}"
ServiceBinary = %12%\UMDF\UDFSPOCJS64USBC.dll

;Freeman2-USB-C
[UMDF2JackSenseDetection32FM2USBC_Install]
UmdfLibraryVersion=2.0.0
;DriverCLSID = "{422d8dbc-520d-4d7e-8f53-920e5c867e6c}"
ServiceBinary = %12%\UMDF\UDFSPOCJS32FM2USBC.dll

[UMDF2JackSenseDetection64FM2USBC_Install]
UmdfLibraryVersion=2.0.0
;DriverCLSID = "{422d8dbc-520d-4d7e-8f53-920e5c867e6c}"
ServiceBinary = %12%\UMDF\UDFSPOCJS64FM2USBC.dll


[Strings]
ProviderName        = "Lenovo"
MfgName             = "Lenovo"
PublisherName       = "Lenovo"
CompanyName         = "Lenovo"
ProductName         = "ThinkPad Duce Dock"
DiskDescription     = "ThinkPad Duce Dock USB Audio Driver Installation Disk"


SPoC.DeviceDesc     = "ThinkPad USB-C Dock USB Audio"
SPoC.SvcDesc        = "ThinkPad USB-C Dock USB Audio"
SPoC.MidiDesc       = "ThinkPad USB-C Dock USB Audio MIDI Device"
USBAUD.Wave.szPname = "ThinkPad USB-C Dock USB Audio Device"
USBAUD.Topo.szPname = "ThinkPad USB-C Dock USB Audio Topology"

SPoC.DeviceDescThunderbolt     = "ThinkPad Thunderbolt 3 Dock USB Audio"
SPoC.SvcDescThunderbolt        = "ThinkPad Thunderbolt 3 Dock USB Audio"
SPoC.MidiDescThunderbolt       = "ThinkPad Thunderbolt 3 Dock USB Audio MIDI Device"
USBAUD.Wave.szPnameThunderbolt = "ThinkPad Thunderbolt 3 Dock USB Audio Device"
USBAUD.Topo.szPnameThunderbolt = "ThinkPad Thunderbolt 3 Dock USB Audio Topology"

SPoC.DeviceDescTBTGT     = "ThinkPad Thunderbolt 3 Dock USB Audio"
SPoC.SvcDescTBTGT        = "ThinkPad Thunderbolt 3 Dock USB Audio"
SPoC.MidiDescTBTGT       = "ThinkPad Thunderbolt 3 Dock USB Audio MIDI Device"
USBAUD.Wave.szPnameTBTGT = "ThinkPad Thunderbolt 3 Dock USB Audio Device"
USBAUD.Topo.szPnameTBTGT = "ThinkPad Thunderbolt 3 Dock USB Audio Topology"

SPoC.DeviceDescUSBC     = "USB-C Dock USB Audio"
SPoC.SvcDescUSBC        = "USB-C Dock USB Audio"
SPoC.MidiDescUSBC       = "USB-C Dock USB Audio MIDI Device"
USBAUD.Wave.szPnameUSBC = "USB-C Dock USB Audio Device"
USBAUD.Topo.szPnameUSBC = "USB-C Dock USB Audio Topology"

SPoC.DeviceDescFM2USBC     = "ThinkPad USB-C Dock Gen2 USB Audio"
SPoC.SvcDescFM2USBC        = "ThinkPad USB-C Dock Gen2 USB Audio"
SPoC.MidiDescFM2USBC       = "ThinkPad USB-C Dock Gen2 USB Audio MIDI Device"
USBAUD.Wave.szPnameFM2USBC = "ThinkPad USB-C Dock Gen2 USB Audio Device"
USBAUD.Topo.szPnameFM2USBC = "ThinkPad USB-C Dock Gen2 USB Audio Topology"


UIPATH              = "ThinkPad Duce Dock"
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"

;UMDF Driver Name
WudfRdDisplayName   = "Windows Driver Foundation - User-mode Driver Framework Reflector"

;EPProperties setting
PKEY_AudioEndpoint_Association    = "{1DA5D803-D492-4EDD-8C23-E0C0FFEE7F0E},2"
PKEY_AudioEndpoint_Supports_EventDriven_Mode = "{1DA5D803-D492-4EDD-8C23-E0C0FFEE7F0E},7"
KSNODETYPE_ANY      = "{00000000-0000-0000-0000-000000000000}"