;===============================================================================
; Elgato Game Capture 4K60 Pro MK.2
; Driver Install Script (64 bit)
; Copyright (c) 2019-22, Corsair Memory, Inc.
;-------------------------------------------------------------------------------
; History:
;-------------------------------------------------------------------------------
; 21-Jan-19 FMB 1.1.0.184.1   First customized INF file
; 11-Mar-19 MS  1.1.0.184.4   Support for HW version 1.1
; 15-Mar-19 MS	1.1.0.184.7   Add HDR to SDR tone mapping
; 29-Mar-19 MS  1.1.0.184.9   Fix reading / writing EDID
; 10-Apr-19 MS  1.1.0.185.0.1 Fix HDR detection
; 24-Apr-19 MS  1.1.0.185.0.2 EDID mode selection, Fix interlaced support
; 29-Apr-19 MS  1.1.0.185.2   Fix: Problems with color space
; 08-May-19 TS  1.1.0.185.3   Show color range on property page. Fix EDID mode selection.
; 14-Jun-19 MS  1.1.0.185.5   Support for new FPGA firmware
; 18-Jun-19 MS  1.1.0.185.6   Support for new FPGA firmware
; 27-Jun-19 MS  1.1.0.185.7   Fix picture error
; 08-Jul-19 MS  1.1.0.185.8   Improve DS property page
; 18-Jul-19 MS  1.1.0.185.9   Add infos to the DS property page
; 31-Jul-19 MS  1.1.0.186.1   Fix signal problem when recording HDR
; 13-Aug-19 MS	1.1.0.186.2   Fix HDR pixelation
; 20-AUG-19 MS  1.1.0.186.3   Fix 1080p144
; 19-Sep-19 MS  1.1.0.186.3   Allow more than 2 cards
; 25-Sep-19 MS	1.1.0.186.5   4:2:2 and 4:4:4 support
; 25-Oct-19 MS  1.1.0.187.1   Fix compatibility with old firmware (Yxxx-628)
; 06-Nov-19 MS  1.1.0.187.2   Fix problem with p60
; 02-Mar-20 MS  1.1.0.189.0	  Fix signal problems (Yxxx-641)
; 11-Mar-20 MS  1.1.0.189.2   Fix no signal after sleep (Yxxx-694), invalid sample durations (YUAN-695)
; 21-Apr-20 MS  1.1.0.189.6   Improve Audio Video sync in 3rd part applications (Yxxx-701)
; 12-May-20 MS  1.1.0.189.7   Further improvement of  A/V sync in 3rd part applications (Yxxx-705)
; 12-Jun-20 FMB 1.1.0.190.0   Fix audio problems with high frame rates (HFR) in Windows 10 2004 (Yxxx-721)
; 11-Aug-20 MS  1.1.0.190.5   Improve "Alt+Tab" / Fix Jitter in capture video
; 01-Sep-20 MS  1.1.0.190.8   MS Teams fix (Yxxx-744)
; 16-Sep-20 FMB 1.1.0.190.9   MS Teams fix - reduced format list by default
;                             via CustomAnalogVideoUStreamPatchProperty (Yxxx-744)(Conferencing driver)
; 24-Sep-20 FMB 1.1.0.191.0   MS Teams fix - allow only one resolution but multiple color formats
;                             (Yxxx-744)(Conferencing driver)
; 23-Oct-20 MS  1.1.0.191.4   Fix Video in OBS sometimes 4:3 (Yxxx-778)
; 23-Oct-20 FMB 1.1.0.191.6   Fix RGB (4:4:4) issues (Yxxx-787)
; 25-Jan-21 MS  1.1.0.192.4	  Fix Wrong aspect ratio in Zoom
; 26-Jan-21 MS  1.1.0.192.4.1 Fix Audio Devices not showing up in all applications
; 02-Feb-21 MS  1.1.0.192.5
; 08-Feb-21 MS  1.1.0.1926    Fix: Remove sharpness setting
; 25-Feb-21 MS  1.1.0.192.7   Fix sporadic code 10 after installation
; 07-Mai-21	MS  1.1.0.193.5   Improve RGB (4:4:4) performance
; 09-Jun-21 MS  1.1.0.193.7   Improve memory handling
; 08-Jul-21 MS  1.1.0.194     Improve EDID handling
; 21-Jul-21 MS  1.1.0.194.1   Improve DS property page
; 30-Sep-21 MS  1.1.0.195
; 24-Feb-22 MS  1.1.0.196.4.2 Fix: BSOD with RockSmith and ToneCable
; 12-Apr-22 MS  1.1.0.196.8   Support for VRR
; 20-May-22 MS  1.1.0.197	  Resampling VRR to 60fps
; 20-Jul-22 MS	1.1.0.198.1	  Imporve audio for HFR input signals
; 29-Aug-22 MS	1.1.0.198.8.1Improve DirectShow video properties strings
;------------------------------------------------------------------------------
; Notes:
;------------------------------------------------------------------------------
; VersionTag = 1.1.0.198.8.1
; TODO: Also update registry key "DriverVersionComplete" below
;==============================================================================

[Version]
Signature   = "$CHICAGO$"
Class       = Media
ClassGUID   = {4d36e96c-e325-11ce-bfc1-08002be10318}
Provider    = %Provider%
DriverVer   = 09/21/2022, 1.1.0.198
CatalogFile = GameCapture4K60ProMK2.cat

[SourceDisksNames]
1 = %DiskName%,,

[SourceDisksFiles]
SC0710.X64.SYS            = 1
SC0710.X86.AX             = 1
SC0710.X64.AX             = 1
SC0710.C86.AX             = 1
SC0710.C64.AX             = 1
NO.SIGNAL.BMP             = 1
SC0710.BASE.INSFW.TXT     = 1
SC0710.BASE.INSFW.HEX     = 1

[DestinationDirs]
GameCapture.CopySys       = 12          ; driver files
GameCapture.CopyDll32     = 10,SysWow64 ; 32-bit DLLs
GameCapture.CopyDll64     = 11          ; 64-bit DLLs
GameCapture.CopyFirmwares = 10, SC0710	; C:\WINDOWS\SC0710

[ControlFlags]
ExcludeFromSelect = *

[Manufacturer]
%Provider% = Elgato, NTamd64

[Elgato.NTamd64]
%GameCapture.DeviceDesc% = GameCapture, PCI\VEN_12AB&DEV_0710&SUBSYS_000E1CFA ; Game Capture 4K60 Pro MK.2

[GameCapture.NTamd64]
Include       = ks.inf, kscaptur.inf, ksfilter.inf, bda.inf, wdmaudio.inf
Needs         = KS.Registration, KSCAPTUR.Registration.NT, BDA.Installation.NT, WDMAUDIO.Registration.NT
AddReg        = GameCapture.AddReg, SC0710.AddReg
CopyFiles     = GameCapture.CopySys, GameCapture.CopyDll32, GameCapture.CopyDll64, GameCapture.CopyFirmwares

;FMB NOTE: flag 0x00000004 = COPYFLG_NOVERSIONCHECK
[GameCapture.CopySys]
SC0710.X64.SYS       , , , 0x00000004

[GameCapture.CopyDll32]
SC0710.X86.AX        , , , 0x00000004
SC0710.C86.AX        , , , 0x00000004

[GameCapture.CopyDll64]
SC0710.X64.AX        , , , 0x00000004
SC0710.C64.AX        , , , 0x00000004

[GameCapture.CopyFirmwares]
NO.SIGNAL.BMP        , , , 0x00000004
SC0710.BASE.INSFW.TXT, , , 0x00000004
SC0710.BASE.INSFW.HEX, , , 0x00000004


;===============================================================
;                R e g i s t r y
;===============================================================

[GameCapture.AddReg]
HKR,,DevLoader,,*NTKERN
HKR,,NTMPDriver,,SC0710.X64.SYS
HKR,,HardwareConfig,1,1
HKR,,USDClass,,"{0527D1D0-88C2-11D2-82C7-00C04F8EC183}"
HKR,,PageOutWhenUnopened,3,01

; WaveIn device
HKR,,AssociatedFilters,,"wdmaud,swmidi,redbook"
HKR,,Driver,,SC0710.X64.SYS
HKR,Drivers,SubClasses,,"wave,mixer"
HKR,Drivers\wave\wdmaud.drv,Driver,,wdmaud.drv
HKR,Drivers\mixer\wdmaud.drv,Driver,,wdmaud.drv
HKR,Drivers\wave\wdmaud.drv,Description,,%WaveIn.AudioCapture%
HKR,Drivers\mixer\wdmaud.drv,Description,,%WaveIn.AudioCapture%

; ICopyProtNotifyProperty
;
HKCR,Wow6432Node\CLSID\{868DE3D7-1ED1-4698-AF07-0A4B57662572}, , , %CPNOTIFY.PROPERTY.INTERFACE.NAME%
HKCR,Wow6432Node\CLSID\{868DE3D7-1ED1-4698-AF07-0A4B57662572}\InprocServer32, , , SC0710.C86.AX
HKCR,Wow6432Node\CLSID\{868DE3D7-1ED1-4698-AF07-0A4B57662572}\InprocServer32, ThreadingModel, , Both
HKCR,CLSID\{868DE3D7-1ED1-4698-AF07-0A4B57662572}, , , %CPNOTIFY.PROPERTY.INTERFACE.NAME%
HKCR,CLSID\{868DE3D7-1ED1-4698-AF07-0A4B57662572}\InprocServer32, , , SC0710.C64.AX
HKCR,CLSID\{868DE3D7-1ED1-4698-AF07-0A4B57662572}\InprocServer32, ThreadingModel, , Both
HKLM,System\CurrentControlSet\Control\MediaInterfaces\{868DE3D7-1ED1-4698-AF07-0A4B57662572}, , , %CPNOTIFY.PROPERTY.INTERFACE.NAME%
HKLM,System\CurrentControlSet\Control\MediaInterfaces\{868DE3D7-1ED1-4698-AF07-0A4B57662572}, IID, 1, 00,00,00,00, 00,00, 00,00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00

; ICustomProperty
;
HKCR,Wow6432Node\CLSID\{D1E5209F-68FD-4529-BEE0-5E7A1F479226}, , , %CUSTOM.PROPERTY.INTERFACE.NAME%
HKCR,Wow6432Node\CLSID\{D1E5209F-68FD-4529-BEE0-5E7A1F479226}\InprocServer32, , , SC0710.X86.AX
HKCR,Wow6432Node\CLSID\{D1E5209F-68FD-4529-BEE0-5E7A1F479226}\InprocServer32, ThreadingModel, , Both
HKCR,CLSID\{D1E5209F-68FD-4529-BEE0-5E7A1F479226}, , , %CUSTOM.PROPERTY.INTERFACE.NAME%
HKCR,CLSID\{D1E5209F-68FD-4529-BEE0-5E7A1F479226}\InprocServer32, , , SC0710.X64.AX
HKCR,CLSID\{D1E5209F-68FD-4529-BEE0-5E7A1F479226}\InprocServer32, ThreadingModel, , Both
HKLM,System\CurrentControlSet\Control\MediaInterfaces\{D1E5209F-68FD-4529-BEE0-5E7A1F479226}, , , %CUSTOM.PROPERTY.INTERFACE.NAME%
HKLM,System\CurrentControlSet\Control\MediaInterfaces\{D1E5209F-68FD-4529-BEE0-5E7A1F479226}, IID, 1, 9F,20,E5,D1, FD,68, 29,45, 0xBE, 0xE0, 0x5E, 0x7A, 0x1F, 0x47, 0x92, 0x26

; CCustomPropertyPage
;
HKCR,Wow6432Node\CLSID\{15E3F6CE-F3DD-454A-8DEA-E4A380FCCB26}, , , %CUSTOM.PROPERTY.PAGE.NAME%
HKCR,Wow6432Node\CLSID\{15E3F6CE-F3DD-454A-8DEA-E4A380FCCB26}\InprocServer32, , , SC0710.X86.AX
HKCR,Wow6432Node\CLSID\{15E3F6CE-F3DD-454A-8DEA-E4A380FCCB26}\InprocServer32, ThreadingModel, , Both
HKCR,CLSID\{15E3F6CE-F3DD-454A-8DEA-E4A380FCCB26}, , , %CUSTOM.PROPERTY.PAGE.NAME%
HKCR,CLSID\{15E3F6CE-F3DD-454A-8DEA-E4A380FCCB26}\InprocServer32, , , SC0710.X64.AX
HKCR,CLSID\{15E3F6CE-F3DD-454A-8DEA-E4A380FCCB26}\InprocServer32, ThreadingModel, , Both
HKLM,System\CurrentControlSet\Control\MediaSets\{D1E5209F-68FD-4529-BEE0-5E7A1F479226}\PropertyPages\{15E3F6CE-F3DD-454A-8DEA-E4A380FCCB26}, , , %CUSTOM.PROPERTY.PAGE.NAME%

[SC0710.AddReg]
HKLM,SYSTEM\CurrentControlSet\Control\MediaCategories\{6F814BE9-9AF6-43CF-9249-C0345A010026},Name,0,"Video Capture"
HKLM,SYSTEM\CurrentControlSet\Control\MediaCategories\{6F814BE9-9AF6-43CF-9249-C0345A010026},Display,1,00,00,00,00
HKLM,SYSTEM\CurrentControlSet\Control\MediaCategories\{6F814BE9-9AF6-43CF-9249-C0345A010126},Name,0,"Audio Capture"
HKLM,SYSTEM\CurrentControlSet\Control\MediaCategories\{6F814BE9-9AF6-43CF-9249-C0345A010126},Display,1,00,00,00,00
HKLM,SYSTEM\CurrentControlSet\Control\MediaCategories\{6F814BE9-9AF6-43CF-9249-C0345A010526},Name,0,"Video Preview"
HKLM,SYSTEM\CurrentControlSet\Control\MediaCategories\{6F814BE9-9AF6-43CF-9249-C0345A010526},Display,1,00,00,00,00
HKLM,SYSTEM\CurrentControlSet\Control\MediaCategories\{6F814BE9-9AF6-43CF-9249-C0345A010626},Name,0,"Audio Preview"
HKLM,SYSTEM\CurrentControlSet\Control\MediaCategories\{6F814BE9-9AF6-43CF-9249-C0345A010626},Display,1,00,00,00,00


HKLM,SYSTEM\CurrentControlSet\Control\MediaCategories\{6F814BE9-9AF6-43CF-9249-C03401010226},Name,0,%DShow.AudioCapture.01%
HKLM,SYSTEM\CurrentControlSet\Control\MediaCategories\{6F814BE9-9AF6-43CF-9249-C03401010226},Display,1,00,00,00,00
HKLM,SYSTEM\CurrentControlSet\Control\MediaCategories\{6F814BE9-9AF6-43CF-9249-C03402010226},Name,0,%DShow.AudioCapture.02%
HKLM,SYSTEM\CurrentControlSet\Control\MediaCategories\{6F814BE9-9AF6-43CF-9249-C03402010226},Display,1,00,00,00,00
HKLM,SYSTEM\CurrentControlSet\Control\MediaCategories\{6F814BE9-9AF6-43CF-9249-C03403010226},Name,0,%DShow.AudioCapture.03%
HKLM,SYSTEM\CurrentControlSet\Control\MediaCategories\{6F814BE9-9AF6-43CF-9249-C03403010226},Display,1,00,00,00,00
HKLM,SYSTEM\CurrentControlSet\Control\MediaCategories\{6F814BE9-9AF6-43CF-9249-C03404010226},Name,0,%DShow.AudioCapture.04%
HKLM,SYSTEM\CurrentControlSet\Control\MediaCategories\{6F814BE9-9AF6-43CF-9249-C03404010226},Display,1,00,00,00,00
HKLM,SYSTEM\CurrentControlSet\Control\MediaCategories\{6F814BE9-9AF6-43CF-9249-C03405010226},Name,0,%DShow.AudioCapture.05%
HKLM,SYSTEM\CurrentControlSet\Control\MediaCategories\{6F814BE9-9AF6-43CF-9249-C03405010226},Display,1,00,00,00,00
HKLM,SYSTEM\CurrentControlSet\Control\MediaCategories\{6F814BE9-9AF6-43CF-9249-C03406010226},Name,0,%DShow.AudioCapture.06%
HKLM,SYSTEM\CurrentControlSet\Control\MediaCategories\{6F814BE9-9AF6-43CF-9249-C03406010226},Display,1,00,00,00,00
HKLM,SYSTEM\CurrentControlSet\Control\MediaCategories\{6F814BE9-9AF6-43CF-9249-C03407010226},Name,0,%DShow.AudioCapture.07%
HKLM,SYSTEM\CurrentControlSet\Control\MediaCategories\{6F814BE9-9AF6-43CF-9249-C03407010226},Display,1,00,00,00,00
HKLM,SYSTEM\CurrentControlSet\Control\MediaCategories\{6F814BE9-9AF6-43CF-9249-C03408010226},Name,0,%DShow.AudioCapture.08%
HKLM,SYSTEM\CurrentControlSet\Control\MediaCategories\{6F814BE9-9AF6-43CF-9249-C03408010226},Display,1,00,00,00,00


; FMB NOTE: We now sort these switches alphabetically
HKR,,AnalogCrossbarAudioInputProperty,                 0x00010001,0x00000000 ; 0 = EMBEDDED AUDIO / 1 = LINE IN
HKR,,AnalogCrossbarVideoInputProperty,                 0x00010001,0x00000000 ; 0 = HDMI / 1 = DVI-D / 2 = COMPONENT / 3 = DVI-A / 4 = SDI
HKR,,AnalogVideoDecoderStandardProperty,               0x00010001,0x00000001 ; 1 = NTSC M / 16 = PAL B

HKR,,CustomAnalogAudioDirectSoundPatchProperty,        0x00010001,0x00000002 ; 0 = DISABLE / 1 = ENABLE

HKR,,CustomAnalogVideoDeinterlaceTypePropertyA,        0x00010001,0x00000001 ; 0 = BOB / 1 = WEAVE / 2 = HYBRID / 3 = BLEND
HKR,,CustomAnalogVideoDeinterlaceTypePropertyB,        0x00010001,0x00000001 ; 0 = BOB / 1 = WEAVE / 2 = HYBRID / 3 = BLEND
HKR,,CustomAnalogVideoDeinterlaceTypePropertyC,        0x00010001,0x00000001 ; 0 = BOB / 1 = WEAVE / 2 = HYBRID / 3 = BLEND
HKR,,CustomAnalogVideoDeinterlaceTypePropertyD,        0x00010001,0x00000001 ; 0 = BOB / 1 = WEAVE / 2 = HYBRID / 3 = BLEND

HKR,,CustomAnalogVideoFlexibleResolutionPatchProperty, 0x00010001,0x00000001 ; 0 = DISABLE / 1 = ENABLE
HKR,,CustomAnalogVideoFlexibleFpsPatchProperty,        0x00010001,0x00000000 ; 0 = DISABLE / 1 = ENABLE
HKR,,CustomAnalogVideoNativeColorSpaceProperty,        0x00010001,0x00000002 ; 0 = 4:2:2 / 1 = 4:4:4 / 2 = AUTO
HKR,,CustomAnalogVideoNativeColorDeepProperty,         0x00010001,0x00000002 ; 0 = 8 BITS / 1 = 10 BITS / 2 = AUTO

HKR,,CustomAnalogVideoVRRResamplingProperty,           0x00010001,0x00000001 ; 0 = VRR resampling Off / 1 = Resampling to constant 60FPS on

HKR,,CustomAnalogVideoScaleTypePropertyA,              0x00010001,0x00000001 ; 0 = STRETCH / 1 = FIT
HKR,,CustomAnalogVideoScaleTypePropertyB,              0x00010001,0x00000001 ; 0 = STRETCH / 1 = FIT
HKR,,CustomAnalogVideoScaleTypePropertyC,              0x00010001,0x00000001 ; 0 = STRETCH / 1 = FIT
HKR,,CustomAnalogVideoScaleTypePropertyD,              0x00010001,0x00000001 ; 0 = STRETCH / 1 = FIT

HKR,,CustomAnalogVideoSkypePatchProperty,              0x00010001,0x00000001 ; 0 = DISABLE / 1 = ENABLE (1 for conferencing driver)
HKR,,CustomAnalogVideoUStreamPatchProperty,            0x00010001,0x00000001 ; 0 = DISABLE / 1 = ENABLE (1 - filtered format list, since drv. 190.9)

HKR,,CustomCompanyElgatoProperty,                      0x00010001,0x00000001 ; 0 = DISABLE / 1 = ENABLE
HKR,,CustomCompanyMedicalProperty,                     0x00010001,0x00000001 ; 0 = DISABLE / 1 = ENABLE
HKR,,CustomCompanyPowerCreatorProperty,                0x00010001,0x00000001 ; 0 = DISABLE / 1 = ENABLE

HKR,,CustomInstancesPossibleProperty,                  0x00010001,0x00000001 ; 0 = DISABLE / 1 = ENABLE (= multi-app)

HKR,,CustomOsdTextEnableProperty,                      0x00010001,0x00000000 ; 0 = DISABLE / 1 = ENABLE

HKR,,CustomSoftwareLockProperty,                       0x00010001,0x00000001 ; 0 = DISABLE / 1 = ENABLE
HKR,,CustomSoftwareUIProperty,                         0x00010001,0x00000001 ; 0 = HIDE / 1 = SIMPLE / 2 = FULL

; FMB NOTE: Ignore infverif warning "File path "%10%" in registry may be incorrect in some contexts, use %%SystemRoot%% instead."
;           here, because Yxxx driver does not replace %SystemRoot% in registry values (EGH-615)
HKR,,CustomDeviceInfoDirectoryProperty, ,              "\??\%10%\SC0710\" ; %10% = Windows Directory (= %%SystemRoot%%)

HKR,,DriverVersionComplete, ,                          "1.1.0.198.8.1" ; full driver version; required for Elgato driver installer

;===============================================================
;                I n t e r f a c e s
;===============================================================

[GameCapture.NTamd64.Interfaces]
; Registration as CLSID_InputAudio required for OBS
AddInterface = %CLSID_InputAudio%       , %REFGUID_AUDIO.01%     , Audio_Interface.01
AddInterface = %CLSID_InputAudio%       , %REFGUID_AUDIO.02%     , Audio_Interface.02
AddInterface = %CLSID_InputAudio%       , %REFGUID_AUDIO.03%     , Audio_Interface.03
AddInterface = %CLSID_InputAudio%       , %REFGUID_AUDIO.04%     , Audio_Interface.04
AddInterface = %CLSID_InputAudio%       , %REFGUID_AUDIO.05%     , Audio_Interface.05
AddInterface = %CLSID_InputAudio%       , %REFGUID_AUDIO.06%     , Audio_Interface.06
AddInterface = %CLSID_InputAudio%       , %REFGUID_AUDIO.07%     , Audio_Interface.07
AddInterface = %CLSID_InputAudio%       , %REFGUID_AUDIO.08%     , Audio_Interface.08
AddInterface = %CLSID_InputAudio%       , %REFGUID_AUDIO%        , Audio_Interface

AddInterface = %KSCATEGORY_AUDIO%       , %REFGUID_AUDIO.01%     , Audio_Interface.01
AddInterface = %KSCATEGORY_AUDIO%       , %REFGUID_AUDIO.02%     , Audio_Interface.02
AddInterface = %KSCATEGORY_AUDIO%       , %REFGUID_AUDIO.03%     , Audio_Interface.03
AddInterface = %KSCATEGORY_AUDIO%       , %REFGUID_AUDIO.04%     , Audio_Interface.04
AddInterface = %KSCATEGORY_AUDIO%       , %REFGUID_AUDIO.05%     , Audio_Interface.05
AddInterface = %KSCATEGORY_AUDIO%       , %REFGUID_AUDIO.06%     , Audio_Interface.06
AddInterface = %KSCATEGORY_AUDIO%       , %REFGUID_AUDIO.07%     , Audio_Interface.07
AddInterface = %KSCATEGORY_AUDIO%       , %REFGUID_AUDIO.08%     , Audio_Interface.08
AddInterface = %KSCATEGORY_AUDIO%       , %REFGUID_AUDIO%        , Audio_Interface

AddInterface = %KSCATEGORY_CAPTURE%     , %REFGUID_AUDIO.01%     , Audio_Interface.01
AddInterface = %KSCATEGORY_CAPTURE%     , %REFGUID_AUDIO.02%     , Audio_Interface.02
AddInterface = %KSCATEGORY_CAPTURE%     , %REFGUID_AUDIO.03%     , Audio_Interface.03
AddInterface = %KSCATEGORY_CAPTURE%     , %REFGUID_AUDIO.04%     , Audio_Interface.04
AddInterface = %KSCATEGORY_CAPTURE%     , %REFGUID_AUDIO.05%     , Audio_Interface.05
AddInterface = %KSCATEGORY_CAPTURE%     , %REFGUID_AUDIO.06%     , Audio_Interface.06
AddInterface = %KSCATEGORY_CAPTURE%     , %REFGUID_AUDIO.07%     , Audio_Interface.07
AddInterface = %KSCATEGORY_CAPTURE%     , %REFGUID_AUDIO.08%     , Audio_Interface.08
AddInterface = %KSCATEGORY_CAPTURE%     , %REFGUID_AUDIO%        , Audio_Interface

AddInterface = %KSCATEGORY_VIDEO%       , %REFGUID_CAPTURE.01%   , AnalogCapture_Interface.01
AddInterface = %KSCATEGORY_VIDEO%       , %REFGUID_CAPTURE.02%   , AnalogCapture_Interface.02
AddInterface = %KSCATEGORY_VIDEO%       , %REFGUID_CAPTURE.03%   , AnalogCapture_Interface.03
AddInterface = %KSCATEGORY_VIDEO%       , %REFGUID_CAPTURE.04%   , AnalogCapture_Interface.04
AddInterface = %KSCATEGORY_VIDEO%       , %REFGUID_CAPTURE.05%   , AnalogCapture_Interface.05
AddInterface = %KSCATEGORY_VIDEO%       , %REFGUID_CAPTURE.06%   , AnalogCapture_Interface.06
AddInterface = %KSCATEGORY_VIDEO%       , %REFGUID_CAPTURE.07%   , AnalogCapture_Interface.07
AddInterface = %KSCATEGORY_VIDEO%       , %REFGUID_CAPTURE.08%   , AnalogCapture_Interface.08
AddInterface = %KSCATEGORY_VIDEO%       , %REFGUID_CAPTURE%      , AnalogCapture_Interface

AddInterface = %KSCATEGORY_CAPTURE%     , %REFGUID_CAPTURE.01%   , AnalogCapture_Interface.01
AddInterface = %KSCATEGORY_CAPTURE%     , %REFGUID_CAPTURE.02%   , AnalogCapture_Interface.02
AddInterface = %KSCATEGORY_CAPTURE%     , %REFGUID_CAPTURE.03%   , AnalogCapture_Interface.03
AddInterface = %KSCATEGORY_CAPTURE%     , %REFGUID_CAPTURE.04%   , AnalogCapture_Interface.04
AddInterface = %KSCATEGORY_CAPTURE%     , %REFGUID_CAPTURE.05%   , AnalogCapture_Interface.05
AddInterface = %KSCATEGORY_CAPTURE%     , %REFGUID_CAPTURE.06%   , AnalogCapture_Interface.06
AddInterface = %KSCATEGORY_CAPTURE%     , %REFGUID_CAPTURE.07%   , AnalogCapture_Interface.07
AddInterface = %KSCATEGORY_CAPTURE%     , %REFGUID_CAPTURE.08%   , AnalogCapture_Interface.08
AddInterface = %KSCATEGORY_CAPTURE%     , %REFGUID_CAPTURE%      , AnalogCapture_Interface

;---------------------------------------------------------------
; WDM streaming interfaces (audio)
;---------------------------------------------------------------

[Audio_Interface]
AddReg = Audio_Interface.AddReg
[Audio_Interface.AddReg]
HKR, , FriendlyName, , %DShow.AudioCapture%
HKR, , CLSID, , %PROXY_CAPTURE%

[Audio_Interface.01]
AddReg = Audio_Interface.AddReg.01
[Audio_Interface.AddReg.01]
HKR, , FriendlyName, , %DShow.AudioCapture.01%
HKR, , CLSID, , %PROXY_CAPTURE%

[Audio_Interface.02]
AddReg = Audio_Interface.AddReg.02
[Audio_Interface.AddReg.02]
HKR, , FriendlyName, , %DShow.AudioCapture.02%
HKR, , CLSID, , %PROXY_CAPTURE%

[Audio_Interface.03]
AddReg = Audio_Interface.AddReg.03
[Audio_Interface.AddReg.03]
HKR, , FriendlyName, , %DShow.AudioCapture.03%
HKR, , CLSID, , %PROXY_CAPTURE%

[Audio_Interface.04]
AddReg = Audio_Interface.AddReg.04
[Audio_Interface.AddReg.04]
HKR, , FriendlyName, , %DShow.AudioCapture.04%
HKR, , CLSID, , %PROXY_CAPTURE%

[Audio_Interface.05]
AddReg = Audio_Interface.AddReg.05
[Audio_Interface.AddReg.05]
HKR, , FriendlyName, , %DShow.AudioCapture.05%
HKR, , CLSID, , %PROXY_CAPTURE%

[Audio_Interface.06]
AddReg = Audio_Interface.AddReg.06
[Audio_Interface.AddReg.06]
HKR, , FriendlyName, , %DShow.AudioCapture.06%
HKR, , CLSID, , %PROXY_CAPTURE%

[Audio_Interface.07]
AddReg = Audio_Interface.AddReg.07
[Audio_Interface.AddReg.07]
HKR, , FriendlyName, , %DShow.AudioCapture.07%
HKR, , CLSID, , %PROXY_CAPTURE%

[Audio_Interface.08]
AddReg = Audio_Interface.AddReg.08
[Audio_Interface.AddReg.08]
HKR, , FriendlyName, , %DShow.AudioCapture.08%
HKR, , CLSID, , %PROXY_CAPTURE%

;---------------------------------------------------------------
; WDM streaming interfaces (analog TV/capture)
;---------------------------------------------------------------

[AnalogCapture_Interface]
AddReg = AnalogCapture_Interface.AddReg
[AnalogCapture_Interface.AddReg]
HKR, , FriendlyName, , %DShow.AnalogCapture%
HKR, , CLSID, , %PROXY_CAPTURE%

[AnalogCapture_Interface.01]
AddReg = AnalogCapture_Interface.AddReg.01
[AnalogCapture_Interface.AddReg.01]
HKR, , FriendlyName, , %DShow.AnalogCapture.01%
HKR, , CLSID, , %PROXY_CAPTURE%

[AnalogCapture_Interface.02]
AddReg = AnalogCapture_Interface.AddReg.02
[AnalogCapture_Interface.AddReg.02]
HKR, , FriendlyName, , %DShow.AnalogCapture.02%
HKR, , CLSID, , %PROXY_CAPTURE%

[AnalogCapture_Interface.03]
AddReg = AnalogCapture_Interface.AddReg.03
[AnalogCapture_Interface.AddReg.03]
HKR, , FriendlyName, , %DShow.AnalogCapture.03%
HKR, , CLSID, , %PROXY_CAPTURE%

[AnalogCapture_Interface.04]
AddReg = AnalogCapture_Interface.AddReg.04
[AnalogCapture_Interface.AddReg.04]
HKR, , FriendlyName, , %DShow.AnalogCapture.04%
HKR, , CLSID, , %PROXY_CAPTURE%

[AnalogCapture_Interface.05]
AddReg = AnalogCapture_Interface.AddReg.05
[AnalogCapture_Interface.AddReg.05]
HKR, , FriendlyName, , %DShow.AnalogCapture.05%
HKR, , CLSID, , %PROXY_CAPTURE%

[AnalogCapture_Interface.06]
AddReg = AnalogCapture_Interface.AddReg.06
[AnalogCapture_Interface.AddReg.06]
HKR, , FriendlyName, , %DShow.AnalogCapture.06%
HKR, , CLSID, , %PROXY_CAPTURE%

[AnalogCapture_Interface.07]
AddReg = AnalogCapture_Interface.AddReg.07
[AnalogCapture_Interface.AddReg.07]
HKR, , FriendlyName, , %DShow.AnalogCapture.07%
HKR, , CLSID, , %PROXY_CAPTURE%

[AnalogCapture_Interface.08]
AddReg = AnalogCapture_Interface.AddReg.08
[AnalogCapture_Interface.AddReg.08]
HKR, , FriendlyName, , %DShow.AnalogCapture.08%
HKR, , CLSID, , %PROXY_CAPTURE%


;===============================================================
;                S e r v i c e s
;===============================================================

[GameCapture.NTamd64.Services]
;TODO: Rename service key (=1st param): use same service key as in the original driver
AddService = SC0710.X64, 0x00000002, GameCapture.ServiceInstall

[GameCapture.ServiceInstall]
DisplayName   = %Service.FriendlyName%
ServiceType   = %SERVICE_KERNEL_DRIVER%
StartType     = %SERVICE_DEMAND_START%
ErrorControl  = %SERVICE_ERROR_NORMAL%
ServiceBinary = %12%\SC0710.X64.SYS

;===============================================================
;                S t r i n g s
;===============================================================

[Strings]
;---------------------------------------------------------------
; Non-customizable (Windows)
;---------------------------------------------------------------
; Registry types
REG_SZ                           = 0x00000000
REG_MULTI_SZ                     = 0x00010000
REG_EXPAND_SZ                    = 0x00020000
REG_DWORD                        = 0x00010001

; Service: ServiceType values
SERVICE_KERNEL_DRIVER            = 0x00000001
SERVICE_FILE_SYSTEM_DRIVER       = 0x00000002
SERVICE_ADAPTER                  = 0x00000004
SERVICE_RECOGNIZER_DRIVER        = 0x00000008
SERVICE_WIN32_OWN_PROCESS        = 0x00000010
SERVICE_WIN32_SHARE_PROCESS      = 0x00000020
SERVICE_INTERACTIVE_PROCESS      = 0x00000100
SERVICE_INTERACTIVE_SHARE_PROCESS= 0x00000120

; Service: StartType values
SERVICE_BOOT_START               = 0x00000000
SERVICE_SYSTEM_START             = 0x00000001
SERVICE_AUTO_START               = 0x00000002
SERVICE_DEMAND_START             = 0x00000003
SERVICE_DISABLED                 = 0x00000004

; Service: ErrorControl values
SERVICE_ERROR_IGNORE             = 0x00000000
SERVICE_ERROR_NORMAL             = 0x00000001
SERVICE_ERROR_SEVERE             = 0x00000002
SERVICE_ERROR_CRITICAL           = 0x00000003

; DirectShow filter categories                                                DirectShow category name
CLSID_InputAudio                 = "{33D9A762-90C8-11D0-BD43-00A0C911CE86}"	; also defined as CLSID_CWaveinClassManager
KSCATEGORY_AUDIO                 = "{6994AD04-93EF-11D0-A3CC-00A0C9223196}"
KSCATEGORY_VIDEO                 = "{6994AD05-93EF-11D0-A3CC-00A0C9223196}"

KSCATEGORY_CAPTURE               = "{65E8773D-8F56-11D0-A3B9-00A0C9223196}" ; WDM Streaming capture Devices (audio & video)

; Proxy CLSIDs (KsProxy.ax)
PROXY_CAPTURE                    = "{17CCA71B-ECD7-11D0-B908-00A0C9223196}"
PROXY_TVTUNER                    = "{266EEE40-6C63-11cf-8A03-00AA006ECB65}"
PROXY_CROSSBAR                   = "{71F96460-78F3-11D0-A18C-00A0C9118956}"
PROXY_TVAUDIO                    = "{71F96462-78F3-11D0-A18C-00A0C9118956}"

;---------------------------------------------------------------
; Non-customizable (this driver)
;---------------------------------------------------------------
; Reference guids
REFGUID_AUDIO                    = "{6F814BE9-9AF6-43CF-9249-C0345A000326}"
REFGUID_AUDIO.01                 = "{6F814BE9-9AF6-43CF-9249-C03401000326}"
REFGUID_AUDIO.02                 = "{6F814BE9-9AF6-43CF-9249-C03402000326}"
REFGUID_AUDIO.03                 = "{6F814BE9-9AF6-43CF-9249-C03403000326}"
REFGUID_AUDIO.04                 = "{6F814BE9-9AF6-43CF-9249-C03404000326}"
REFGUID_AUDIO.05                 = "{6F814BE9-9AF6-43CF-9249-C03405000326}"
REFGUID_AUDIO.06                 = "{6F814BE9-9AF6-43CF-9249-C03406000326}"
REFGUID_AUDIO.07                 = "{6F814BE9-9AF6-43CF-9249-C03407000326}"
REFGUID_AUDIO.08                 = "{6F814BE9-9AF6-43CF-9249-C03408000326}"

REFGUID_CAPTURE                  = "{6F814BE9-9AF6-43CF-9249-C0345A000226}"
REFGUID_CAPTURE.01               = "{6F814BE9-9AF6-43CF-9249-C03401000226}"
REFGUID_CAPTURE.02               = "{6F814BE9-9AF6-43CF-9249-C03402000226}"
REFGUID_CAPTURE.03               = "{6F814BE9-9AF6-43CF-9249-C03403000226}"
REFGUID_CAPTURE.04               = "{6F814BE9-9AF6-43CF-9249-C03404000226}"
REFGUID_CAPTURE.05               = "{6F814BE9-9AF6-43CF-9249-C03405000226}"
REFGUID_CAPTURE.06               = "{6F814BE9-9AF6-43CF-9249-C03406000226}"
REFGUID_CAPTURE.07               = "{6F814BE9-9AF6-43CF-9249-C03407000226}"
REFGUID_CAPTURE.08               = "{6F814BE9-9AF6-43CF-9249-C03408000226}"


;---------------------------------------------------------------
; Customizable
;---------------------------------------------------------------

Provider                 = "Elgato "
DiskName                 = "Elgato Driver Disk"

; Service strings
Service.FriendlyName     = "Game Capture 4K60 Pro MK.2 Service"

; Device Manager
GameCapture.DeviceDesc   = "Game Capture 4K60 Pro MK.2"
GameCapture.DeviceDesc2  = "Game Capture 4K60 Pro MK.2 (Prototype)

; DirectShow filter names
WaveIn.AudioCapture      = "Game Capture 4K60 Pro MK.2 Audio"

DShow.AudioCapture       = "Game Capture 4K60 Pro MK.2 Audio (0)"
DShow.AudioCapture.01    = "Game Capture 4K60 Pro MK.2 Audio"
DShow.AudioCapture.02    = "Game Capture 4K60 Pro MK.2 Audio (2)"
DShow.AudioCapture.03    = "Game Capture 4K60 Pro MK.2 Audio (3)"
DShow.AudioCapture.04    = "Game Capture 4K60 Pro MK.2 Audio (4)"
DShow.AudioCapture.05    = "Game Capture 4K60 Pro MK.2 Audio (5)"
DShow.AudioCapture.06    = "Game Capture 4K60 Pro MK.2 Audio (6)"
DShow.AudioCapture.07    = "Game Capture 4K60 Pro MK.2 Audio (7)"
DShow.AudioCapture.08    = "Game Capture 4K60 Pro MK.2 Audio (8)"

DShow.AnalogCapture      = "Game Capture 4K60 Pro MK.2 (0)"
DShow.AnalogCapture.01   = "Game Capture 4K60 Pro MK.2"
DShow.AnalogCapture.02   = "Game Capture 4K60 Pro MK.2 (2)"
DShow.AnalogCapture.03   = "Game Capture 4K60 Pro MK.2 (3)"
DShow.AnalogCapture.04   = "Game Capture 4K60 Pro MK.2 (4)"
DShow.AnalogCapture.05   = "Game Capture 4K60 Pro MK.2 (5)"
DShow.AnalogCapture.06   = "Game Capture 4K60 Pro MK.2 (6)"
DShow.AnalogCapture.07   = "Game Capture 4K60 Pro MK.2 (7)"
DShow.AnalogCapture.08   = "Game Capture 4K60 Pro MK.2 (8)"

CPNOTIFY.PROPERTY.INTERFACE.NAME = "Game Capture 4K60 Pro MK.2 (CopyProtNotify Property Interface)"
CUSTOM.PROPERTY.INTERFACE.NAME   = "Game Capture 4K60 Pro MK.2 (Custom Property Interface)"
CUSTOM.PROPERTY.PAGE.NAME        = "Game Capture 4K60 Pro MK.2 (Custom Property Page)"

