[Device10K1]
VEN_1102&DEV_0011

[Ctversion]
GROUP=AUDIO
Ver=1.01.0057

;; Vista Section *********************************************************
[INFInstall.W2KWDM.6]
ctHda.inf


[ExeFiles.Install.WDM.B.x86.6]
11=REGSVR32.EXE,X,/S CtHdaCtl.dll
10=REGEDIT.EXE,X,/s cthdaloc.reg
11=AddMCat.exe,X,CTHRFX32.hda

[ExeFiles.Install.WDM.B.AMD64.6]
16425=REGSVR32.EXE,X,/S CtHdaCtl.dll
11=REGSVR32.EXE,X,/S CtHRFX64.dll
10=REGEDIT.EXE,X,/s cthdaloc.reg
16425=AddMCat.exe,X,CTHRFX64.hda

[ExeFiles.Install.W2KWDM.FI.x86.6]
11=AddMCat.exe,X,CTHRFX32.hda
11=CtEpDef32.exe,,NoRDS MicDef subsysid:1102

[ExeFiles.Install.W2KWDM.FI.AMD64.6]
16425=AddMCat.exe,X,CTHRFX64.hda
16425=CtEpDef32.exe,,NoRDS MicDef subsysid:1102

;; Vista x86 Section *********************************************************
;;[ExeFiles.Install.B.Addcat.x86.6]
;;11=AddCat.exe,X,CTHRFX32.hda

;; Vista x64 Section *********************************************************
;;[ExeFiles.Install.B.Addcat.AMD64.6]
;;16425=AddCat.exe,X,CTHRFX64.hda

[AddReg.CoInst.x86.6]
HKLM,%StrCTKey%\CoInstaller,setupproc,0x00010001,1

[AddReg.CoInst.AMD64.6]
HKLM,%StrCTKey%\CoInstaller,setupproc,0x00010001,1

[AddFiles.ALL.B]
10=Lang\cthda%lang%.reg
10=Lang\cthda%DefaultLanguage%.reg

[CDelFiles.ALL.A]
10=cthda%lang%.reg
10=cthda%DefaultLanguage%.reg

[Add.Resource.B]
%lang%,Add.Localize.Resource.B,Add.Default.Resource.B

[Add.Localize.Resource.B]
ExecFiles=0,0,AddReg.Localize.Resource.%OSMajorVer%,AddReg.Localize.Resource

[Add.Default.Resource.B]
ExecFiles=0,0,AddReg.Default.Resource.%OSMajorVer%,AddReg.Default.Resource

[Common]
CleanInf=1
ScheduleDelete=1

[ExeFiles.Install.WDM.A.x86.6]
11=REGSVR32.EXE,X,/S CtHdaCtl.dll
11=CtHdaSvc.Exe,X,-i

[ExeFiles.Install.WDM.A.AMD64.6]
16425=REGSVR32.EXE,X,/S CtHdaCtl.dll
16425=CtHdaSvc.Exe,X,-i

[CExeFiles.Uninstall.WDM.B.x86.6]
11=CtHdaSvc.EXE,X,-u
;;11=CtHdaSvc.EXE,X,-b
11=REGSVR32.EXE,X,/S /U CtHdaCtl.dll

[CExeFiles.Uninstall.WDM.B.AMD64.6]
16425=CtHdaSvc.EXE,X,-u
;;16425=CtHdaSvc.EXE,X,-b
16425=REGSVR32.EXE,X,/S /U CtHdaCtl.dll

[CDelFiles.Uninstall.WDM.A.x86.6]
11=CtHdaCtl.dll
11=CtHRFX32.dll
11=CtDco32.dll

11=CtHRFX32.hda

11=CtHdaSvc.exe

12=CtHda.sys
12=CtHdb.sys
11=AddMCat.exe
11=CtEpDef32.exe

[CDelFiles.Uninstall.WDM.A.amd64.6]
16425=CtHdaCtl.dll
16425=CtHdaSvc.exe
16425=CtEpDef32.exe
16425=AddMCat.exe
11=CtHdaS64.exe
11=CtHdaC64.dll
11=CtHRFX64.dll
11=CtDco64.dll

11=CtHRFX64.hda

12=CtHda.sys
12=CtHdb.sys

[CDelReg.Service.W2KWDM.A.x86.6]
HKLM,%ServicesRegKey%\%CtHdaSvc32%,ErrorControl,0x00002000,
HKLM,%ServicesRegKey%\%CtHdaSvc32%,Start,0x00002000,
HKLM,%ServicesRegKey%\%CtHdaSvc32%,Type,0x00002000,
HKLM,%ServicesRegKey%\%CtHdaSvc32%,DependOnService,0x00002000,
HKLM,%ServicesRegKey%\%CtHdaSvc32%,DisplayName,0x00002000,
HKLM,%ServicesRegKey%\%CtHdaSvc32%,ImagePath,0x00002000,
HKLM,%ServicesRegKey%\%CtHdaSvc32%,ObjectName,0x00002000,
HKLM,%ServicesRegKey%\%CtHdaSvc32%,,0x00002000,

HKLM,%ServicesRegKey%\%CtHda%\Enum,0,0x00002000,
HKLM,%ServicesRegKey%\%CtHda%\Enum,Count,0x00002000,
HKLM,%ServicesRegKey%\%CtHda%\Enum,NextInstance,0x00002000,
HKLM,%ServicesRegKey%\%CtHda%\Enum,,0x00002000,

HKLM,%ServicesRegKey%\%CtHda%,ErrorControl,0x00002000,
HKLM,%ServicesRegKey%\%CtHda%,Start,0x00002000,
HKLM,%ServicesRegKey%\%CtHda%,Type,0x00002000,
HKLM,%ServicesRegKey%\%CtHda%,DisplayName,0x00002000,
HKLM,%ServicesRegKey%\%CtHda%,ImagePath,0x00002000,
HKLM,%ServicesRegKey%\%CtHda%,,0x00002000,

HKLM,%ServicesRegKey%\%CtHdb%\Enum,0,0x00002000,
HKLM,%ServicesRegKey%\%CtHdb%\Enum,Count,0x00002000,
HKLM,%ServicesRegKey%\%CtHdb%\Enum,NextInstance,0x00002000,
HKLM,%ServicesRegKey%\%CtHdb%\Enum,,0x00002000,

HKLM,%ServicesRegKey%\%CtHdb%,ErrorControl,0x00002000,
HKLM,%ServicesRegKey%\%CtHdb%,Start,0x00002000,
HKLM,%ServicesRegKey%\%CtHdb%,Type,0x00002000,
HKLM,%ServicesRegKey%\%CtHdb%,DisplayName,0x00002000,
HKLM,%ServicesRegKey%\%CtHdb%,ImagePath,0x00002000,
HKLM,%ServicesRegKey%\%CtHdb%,,0x00002000,


[CDelReg.Service.W2KWDM.A.amd64.6]
HKLM,%ServicesRegKey%\%CtHdaSvc32%,ErrorControl,0x00002000,
HKLM,%ServicesRegKey%\%CtHdaSvc32%,Start,0x00002000,
HKLM,%ServicesRegKey%\%CtHdaSvc32%,Type,0x00002000,
HKLM,%ServicesRegKey%\%CtHdaSvc32%,DependOnService,0x00002000,
HKLM,%ServicesRegKey%\%CtHdaSvc32%,DisplayName,0x00002000,
HKLM,%ServicesRegKey%\%CtHdaSvc32%,ImagePath,0x00002000,
HKLM,%ServicesRegKey%\%CtHdaSvc32%,ObjectName,0x00002000,
HKLM,%ServicesRegKey%\%CtHdaSvc32%,,0x00002000,

HKLM,%ServicesRegKey%\%CtHdaSvc64%,ErrorControl,0x00002000,
HKLM,%ServicesRegKey%\%CtHdaSvc64%,Start,0x00002000,
HKLM,%ServicesRegKey%\%CtHdaSvc64%,Type,0x00002000,
HKLM,%ServicesRegKey%\%CtHdaSvc64%,DependOnService,0x00002000,
HKLM,%ServicesRegKey%\%CtHdaSvc64%,DisplayName,0x00002000,
HKLM,%ServicesRegKey%\%CtHdaSvc64%,ImagePath,0x00002000,
HKLM,%ServicesRegKey%\%CtHdaSvc64%,ObjectName,0x00002000,
HKLM,%ServicesRegKey%\%CtHdaSvc64%,,0x00002000,

HKLM,%ServicesRegKey%\%CtHda%\Enum,0,0x00002000,
HKLM,%ServicesRegKey%\%CtHda%\Enum,Count,0x00002000,
HKLM,%ServicesRegKey%\%CtHda%\Enum,NextInstance,0x00002000,
HKLM,%ServicesRegKey%\%CtHda%\Enum,,0x00002000,

HKLM,%ServicesRegKey%\%CtHda%,ErrorControl,0x00002000,
HKLM,%ServicesRegKey%\%CtHda%,Start,0x00002000,
HKLM,%ServicesRegKey%\%CtHda%,Type,0x00002000,
HKLM,%ServicesRegKey%\%CtHda%,DisplayName,0x00002000,
HKLM,%ServicesRegKey%\%CtHda%,ImagePath,0x00002000,
HKLM,%ServicesRegKey%\%CtHda%,,0x00002000,

HKLM,%ServicesRegKey%\%CtHdb%\Enum,0,0x00002000,
HKLM,%ServicesRegKey%\%CtHdb%\Enum,Count,0x00002000,
HKLM,%ServicesRegKey%\%CtHdb%\Enum,NextInstance,0x00002000,
HKLM,%ServicesRegKey%\%CtHdb%\Enum,,0x00002000,

HKLM,%ServicesRegKey%\%CtHdb%,ErrorControl,0x00002000,
HKLM,%ServicesRegKey%\%CtHdb%,Start,0x00002000,
HKLM,%ServicesRegKey%\%CtHdb%,Type,0x00002000,
HKLM,%ServicesRegKey%\%CtHdb%,DisplayName,0x00002000,
HKLM,%ServicesRegKey%\%CtHdb%,ImagePath,0x00002000,
HKLM,%ServicesRegKey%\%CtHdb%,,0x00002000,


;#####################################################################
;	target device section
;	Last Modified Date: 23 Jan 2006 version 0.0.0.1
;#####################################################################

[Mapper]
;<compatible Id>=<install section>,<uninstall section>,<preinstall section>
PCI\VEN_1102&DEV_0012&SUBSYS_F0121102=driverPackage.Install,driverPackage.Remove
PCI\VEN_1102&DEV_0012&SUBSYS_00101102=driverPackage.Install,driverPackage.Remove
PCI\VEN_1102&DEV_0012&SUBSYS_00131102=driverPackage.Install,driverPackage.Remove
PCI\VEN_1102&DEV_0012&SUBSYS_00141102=driverPackage.Install,driverPackage.Remove
PCI\VEN_1102&DEV_0012&SUBSYS_00151102=driverPackage.Install,driverPackage.Remove
PCI\VEN_1102&DEV_0012&SUBSYS_00161102=driverPackage.Install,driverPackage.Remove
PCI\VEN_1102&DEV_0012&SUBSYS_00171102=driverPackage.Install,driverPackage.Remove
PCI\VEN_1102&DEV_0012&SUBSYS_00181102=driverPackage.Install,driverPackage.Remove
PCI\VEN_1102&DEV_0012&SUBSYS_001A1102=driverPackage.Install,driverPackage.Remove
PCI\VEN_1102&DEV_0012&SUBSYS_001B1102=driverPackage.Install,driverPackage.Remove
PCI\VEN_1102&DEV_0012&SUBSYS_001C1102=driverPackage.Install,driverPackage.Remove

;HDAUDIO\FUNC_01=driverPackage.Install,driverPackage.Remove
HDAUDIO\FUNC_01&VEN_1102&DEV_0011&SUBSYS_11020013=driverPackage.Install,driverPackage.Remove
HDAUDIO\FUNC_01&VEN_1102&DEV_0011&SUBSYS_11020014=driverPackage.Install,driverPackage.Remove
HDAUDIO\FUNC_01&VEN_1102&DEV_0011&SUBSYS_11020015=driverPackage.Install,driverPackage.Remove
HDAUDIO\FUNC_01&VEN_1102&DEV_0011&SUBSYS_11020016=driverPackage.Install,driverPackage.Remove
HDAUDIO\FUNC_01&VEN_1102&DEV_0011&SUBSYS_11020017=driverPackage.Install,driverPackage.Remove
HDAUDIO\FUNC_01&VEN_1102&DEV_0011&SUBSYS_11020018=driverPackage.Install,driverPackage.Remove
HDAUDIO\FUNC_01&VEN_1102&DEV_0011&SUBSYS_1102001A=driverPackage.Install,driverPackage.Remove
HDAUDIO\FUNC_01&VEN_1102&DEV_0011&SUBSYS_1102001B=driverPackage.Install,driverPackage.Remove
HDAUDIO\FUNC_01&VEN_1102&DEV_0011&SUBSYS_1102001C=driverPackage.Install,driverPackage.Remove
HDAUDIO\FUNC_01&VEN_1102&DEV_0011&SUBSYS_1102F012=driverPackage.Install,driverPackage.Remove
HDAUDIO\FUNC_01&VEN_1102&DEV_0011&SUBSYS_1102=driverPackage.Install,driverPackage.Remove



;#####################################################################
;  legacy configuration file
;  %thisFile% is a pre-defined variable
;#####################################################################

[Ctzapxx.ConfigFile]
;11=ctzapxx.ini
11=%thisFile%


;#####################################################################
;  [LangResource], [DevconLangResource], [Lang] are obseleted!
;
;  They are replcaed by 
;	- [AddFiles.Default.Resource.x86]
;	- [AddReg.Default.Resource]
;
;	CU refers to this configuration file location
;	10 == windows dir
;	11 == system32 dir
;	12 == system32\drivers dir
;	24 == %RootDir% dir
;
;   %lang% depends on input parameter. e.g 
;	KOR / CHS / CHT / JPN / FRN / SPN / GER / ITA / BRZ / DUT
;
;#####################################################################

[AddReg.Default.Resource]
10=regedit.exe,X,/s cthda%DefaultLanguage%.reg
HKLM,%CreafCtrlDatabaseRegKey%,%LanguageName%,,%DefaultLanguage%

[AddReg.Localize.Resource]
10=regedit.exe,X,/s cthda%lang%.reg
HKLM,%CreafCtrlDatabaseRegKey%,%LanguageName%,,%lang%


;;@@@@@@@@ setupAPI handling @@@@@@@@

[SetupApi.Install]
SetupCalls=0,0,Driver.Install.%OSMajorVer%,%compatId%.Install

[SetupApi.PreInstall]
SetupCalls=0,0,Driver.PreInstall.%OSMajorVer%,%compatId%.PreInstall

;;************************************
;;	inf generic sections
;;************************************
[SetupApi.Remove]
SetupCalls=0,0,Driver.Remove.%OSMajorVer%,%compatId%.Remove


;;################################################################################
;; Consult the developer before editting the following sections
;;################################################################################

[Common]
Ctversion=0.0.0.1
Class=MEDIA
ClassGuid=%MediaClass%
ClassFlag=%classFlag%
IgnoreCPU=1
ScanHardware=%refresh%




;#####################################################################
;	installation and uninstallation flows
;#####################################################################

[driverPackage.Install]
Conditional=0,0,Install.Pre
Conditional=0,0,Install.Main
Arithmetic=0,0,Setup_Count.Increment
;;DebugStage=0,0,MessageBox.This
Conditional=0,0,Install.Post
Conditional=0,0,Restart.System


[driverPackage.Remove]
;;SetupCalls=0,0,Driver.Disable
Conditional=0,0,Remove.Pre
Conditional=0,0,Remove.Main
Arithmetic=0,0,Setup_Count.Increment
;;DebugStage=0,0,MessageBox.This
Conditional=0,0,Remove.Post
Conditional=0,0,Restart.System


[driverPackage.PreInstall]
Conditional=0,0,Install.Pre
Conditional=0,0,PreInstall.Main
Arithmetic=0,0,Setup_Count.Increment
;;DebugStage=0,0,MessageBox.This
Conditional=0,0,Install.Post
Conditional=0,0,Restart.System


[Setup_Count.Increment]
%Setup_Count%,+,1,$(Setup_Count)


[Install.Pre]
%Setup_Count%,Ignored,AudioDriver.Install.Pre

[Install.Main]
1,AudioDriver.Install.Main,Ignored

[Install.Post]
%Setup_Count%==%totalDev%,AudioDriver.Install.Post,Ignored


[Remove.Pre]
%Setup_Count%,Ignored,AudioDriver.Remove.Pre

[Remove.Main]
1,AudioDriver.Remove.Main,Ignored

[Remove.Post]
%Setup_Count%==%totalDev%,AudioDriver.Remove.Post,Ignored


[PreInstall.Main]
1,AudioDriver.PreInstall.Main,Ignored


[Restart.System]
%Setup_Count%>=%totalDev%,AudioDriver.Reboot,Ignored


[MessageBox.This]
;MessageBox,<context>,<title>,<control-button>,[output?]
MessageBox,Setup count = %Setup_Count% \n total devices = %totalDev%,%devId%,MB_OK


;#####################################################################


;######### Install Pre-process #########
[AudioDriver.Install.Pre]

DelFiles=0,0,DelFiles.W2KWDM.B,DelFiles.W2KWDM.B.%CPU%.%OSMajorVer%
AddFiles=0,0,AddFiles.WDM.B,AddFiles.WDM.B.%OSMajorVer%,AddFiles.WDM.B.%CPU%.%OSMajorVer%,AddFiles.WDM.B.%compatId%

AddFiles=0,0,AddFiles.ALL.B

AddReg=0,0,AddReg.W2KWDM.B,AddReg.W2KWDM.B.%CPU%.%OSMajorVer%
DelReg=0,0,DelReg.W2KWDM.B,DelReg.W2KWDM.B.%CPU%.%OSMajorVer%

ExecFiles=0,0,ExeFiles.Install.WDM.B,ExeFiles.Install.WDM.B.%OSMajorVer%,ExeFiles.Install.WDM.B.%CPU%.%OSMajorVer%
ExecFiles=0,0,ExeFiles.Install.B.Addcat.%CPU%.%OSMajorVer%,ExeFiles.Install.B.Addcat.%CPU%

;; -- [DelInf.W2KWDM.B] -- obseleted!
;; -- [DatabaseToRemove] -- obseleted!

AddReg=0,0,AddReg.Extra.WDM.B,AddReg.Extra.WDM.B.%CPU%.%OSMajorVer%
DelReg=0,0,DelReg.Extra.WDM.B,DelReg.Extra.WDM.B.%CPU%.%OSMajorVer%

ExecFiles=0,0,ExeFiles.Extra.Install.WDM.B,ExeFiles.Extra.Install.WDM.B.%OSMajorVer%,ExeFiles.Extra.Install.WDM.B.%CPU%.%OSMajorVer%

Conditional=0,0,Add.Resource.B

;######### Install Main-process #########
[AudioDriver.Install.Main]

AddReg=0,0,AddReg.CoInst,AddReg.CoInst.%CPU%.%OSMajorVer%
Conditional=0,0,Driver.Install.Methods
AddReg=0,0,AddReg.SetupStatus
ReadReg=0,0,ReadReg.SetupStatus
Conditional=0,0,Check.Install.Status
DelReg=0,0,AddReg.CoInst,AddReg.CoInst.%CPU%.%OSMajorVer%



;######### Install Post-process #########
[AudioDriver.Install.Post]

;; -- [LangResource] [DevconLangResource] [Lang] -- obseleted!, replaced by 
Conditional=0,0,Add.Resource

AddFiles=0,0,AddFiles.WDM.A,AddFiles.WDM.A.%CPU%.%OSMajorVer%
DelFiles=0,0,DelFiles.W2KWDM.A,DelFiles.W2KWDM.A.%CPU%.%OSMajorVer%

ExecFiles=0,0,ExeFiles.Install.WDM.A,ExeFiles.Install.WDM.A.%CPU%.%OSMajorVer%

AddReg=0,0,AddReg.W2KWDM.A,AddReg.W2KWDM.A.%CPU%.%OSMajorVer%
DelReg=0,0,DelReg.W2KWDM.A,DelReg.W2KWDM.A.%CPU%.%OSMajorVer%
AddReg=0,0,AddReg.RunOnce,AddReg.RunOnce.%CPU%.%OSMajorVer%

AddFiles=0,0,AddFiles.Extra.WDM.A,AddFiles.Extra.WDM.A.%CPU%.%OSMajorVer%
DelFiles=0,0,DelFiles.Extra.WDM.A,DelFiles.Extra.WDM.A.%CPU%.%OSMajorVer%
AddReg=0,0,AddReg.Extra.WDM.A,AddReg.Extra.WDM.A.%CPU%.%OSMajorVer%
DelReg=0,0,DelReg.Extra.WDM.A,DelReg.Extra.WDM.A.%CPU%.%OSMajorVer%
DelReg=0,0,AddReg.CoInst,AddReg.CoInst.%CPU%.%OSMajorVer%

ExecFiles=0,0x400,ExeFiles.Extra.Install.WDM.A,ExeFiles.Extra.Install.WDM.A.%CPU%.%OSMajorVer%
ExecFiles=0,0,ExeFiles.Install.W2KWDM.FI,ExeFiles.Install.W2KWDM.FI.%CPU%.%OSMajorVer%

AddReg=0,0,AddReg.SetupInfo

;; -- legacy requirement --
AddFiles=0,0,Ctzapxx.ConfigFile



;######### UnInstall Pre-process #########
[AudioDriver.Remove.Pre]

DelReg=0,0,DelReg.W2KWDM.B,DelReg.W2KWDM.B.%CPU%.%OSMajorVer%

ExecFiles=0,0,CExeFiles.Uninstall.WDM.B,CExeFiles.Uninstall.WDM.B.%CPU%.%OSMajorVer%
ExecFiles=0,0,ExeFiles.Extra.Uninstall.WDM.B,ExeFiles.Extra.Uninstall.WDM.B.%CPU%.%OSMajorVer%
;SystemCalls=0,0,System.Wait


;######### UnInstall Main-process #########
[AudioDriver.Remove.Main]

AddReg=0,0,AddReg.CoInst,AddReg.CoInst.%CPU%.%OSMajorVer%
Conditional=0,0,Driver.Remove.Methods
DelReg=0,0,AddReg.CoInst,AddReg.CoInst.%CPU%.%OSMajorVer%


;;*** delete pre-install files ***
FileCalls=0,0,GetLongPath.ProgramFiles
AddReg=0,0,AddReg.PreInstallPath
ReadReg=0,0,ReadReg.PreInstallPath
SetupCalls=0,0x4,%compatId%.Remove


;######### UnInstall Post-process #########
[AudioDriver.Remove.Post]

DelReg=0,0,AddReg.Extra.WDM.B,AddReg.Extra.WDM.B.%CPU%.%OSMajorVer%, DelReg.Extra.WDM.B,DelReg.Extra.WDM.B.%CPU%.%OSMajorVer%
DelReg=0,0,AddReg.W2KWDM.B,AddReg.W2KWDM.B.%CPU%.%OSMajorVer%, AddReg.W2KWDM.A,AddReg.W2KWDM.A.%CPU%.%OSMajorVer%, AddReg.RunOnce,AddReg.RunOnce.%CPU%.%OSMajorVer%

DelReg=0,0,DelReg.W2KWDM.A,DelReg.W2KWDM.A.%CPU%.%OSMajorVer%,CDelReg.Service.W2KWDM.A.%CPU%.%OSMajorVer%

;; -- [RetainFiles] -- obseleted!
;; -- [DatabaseToRemove] -- obseleted!
;; -- [DelService.WDM] -- obseleted!

DelReg=0,0,AddReg.Extra.WDM.A,AddReg.Extra.WDM.A.%CPU%.%OSMajorVer%, DelReg.Extra.WDM.A,DelReg.Extra.WDM.A.%CPU%.%OSMajorVer%

ExecFiles=0,0,ExeFiles.Extra.Uninstall.WDM.A,ExeFiles.Extra.Uninstall.WDM.A.%CPU%.%OSMajorVer%

DelFiles=0,0,AddFiles.WDM.B,AddFiles.WDM.B.%CPU%.%OSMajorVer%
DelFiles=0,0,DelFiles.WDM.B
DelFiles=0,0,DelFiles.W2KWDM.A,DelFiles.W2KWDM.A.%CPU%.%OSMajorVer%
DelFiles=0,0,DelFiles.W2KWDM.B,DelFiles.W2KWDM.B.%CPU%.%OSMajorVer%

DelFiles=0,0,AddFiles.ALL.B
DelFiles=0,0,CDelFiles.Uninstall.WDM.A.%CPU%.%OSMajorVer%

Conditional=0,0,AudioDriver.Reboot.UI

Conditional=0,0,Remove.Resource
DelReg=0,0,AddReg.CoInst,AddReg.CoInst.%CPU%.%OSMajorVer%

Conditional=0,0,Clean.Registry

;; must perform [ReadReg.PreInstallPath] before this
DelFiles=0,0,Delete.DriverPackage

;; -- legacy requirement --
DelFiles=0,0,Ctzapxx.ConfigFile
DelFiles=0,0,CDelFiles.ALL.A


;######### PreInstall Main-process #########

[AudioDriver.PreInstall.Main]

AddReg=0,0,AddReg.CoInst,AddReg.CoInst.%CPU%.%OSMajorVer%
Conditional=0,0,Driver.Install.Methods
AddReg=0,0,AddReg.SetupStatus
ReadReg=0,0,ReadReg.SetupStatus
Conditional=0,0,Check.Install.Status
DelReg=0,0,AddReg.CoInst,AddReg.CoInst.%CPU%.%OSMajorVer%

[Check.Install.Status]
%setupStatus%,Check.PreInstall,Ignored

[Check.PreInstall]
Conditional=0,0,Check.PreInstall.Status

[Check.PreInstall.Status]
%setupStatus%==%ERROR_FILE_NOT_FOUND%,Ignored,Perform.PreInstall

[Perform.PreInstall]
FileCalls=0,0,GetLongPath.ProgramFiles
AddReg=0,0,AddReg.PreInstallPath
ReadReg=0,0,ReadReg.PreInstallPath
AddFiles=0,0,Copy.DriverPackage
Conditional=0,0,Driver.PreInstall.Methods
AddReg=0,0,AddReg.PreSetupInfo



;######### User interface process #########
[AudioDriver.Reboot.UI]
%silent%,Ignored,Reboot.UserInterface

[Reboot.UserInterface]
Conditional=0,0,AudioDriver.Reboot.UI2

[AudioDriver.Reboot.UI2]
%silent%,Ignored,Ask.User.Reboot

[AudioDriver.Reboot]
SystemCalls=0,0,System.Reboot



;#####################################################################
;	user-defined directive format: DLL Calls
;#####################################################################
[String.RebootMsg]
%resFile%,1,0,$(CreafUpdateMsg)
%resFile%,26,0,$(rebootMsg)



;#####################################################################
;	user-defined directive format: file access
;#####################################################################
[Copy.DriverPackage]
%PreInstallPath%\ , %CU%


[Delete.DriverPackage]
%PreInstallPath% ,

[GetLongPath.ProgramFiles]
GetLongPathName,%16422%,$(ProgramFilesPath)



;#####################################################################
;	user-defined directive format: registry access
;#####################################################################

[LanguageType.AddReg]
HKLM,%CoInstallerKey%\%hwId%,%LanguageName%,,%lang%
;HKLM,%CoInstallerKey%\%hwId%,DefaultLanguage,,%DefaultLanguage%


[LanguageType.ReadReg]
HKLM,%CoInstallerKey%\%hwId%,%LanguageName%,,$(DefaultLanguage)

[AddReg.PreInstallPath]
HKLM,%CoInstallerKey%\%hwId%,cfgFilePath,,%cfgFilePath%
HKLM,%CoInstallerKey%\%hwId%,thisFile,,%thisFile%
;;HKLM,%CoInstallerKey%\%hwId%,PreInstallPath,,%16422%\Creative\PreInst\%thisFile%
;;HKLM,%CoInstallerKey%\%hwId%,PreInstallPath,,%16422%\Creative\PreInst\sbusbav
HKLM,%CoInstallerKey%\%hwId%,PreInstallPath,,%ProgramFilesPath%\Creative\PreInst\%thisFile%

[ReadReg.PreInstallPath]
HKLM,%CoInstallerKey%\%hwId%,PreInstallPath,,$(PreInstallPath)

[AddReg.SetupStatus]
HKLM,%CoInstallerKey%\%hwId%,setupStatus,,%lastStatus%

[ReadReg.SetupStatus]
HKLM,%CoInstallerKey%\%hwId%,setupStatus,,$(setupStatus)

[AddReg.SetupInfo]
HKLM,%CoInstallerKey%\%hwId%,%LanguageName%,,%lang%
HKLM,%CoInstallerKey%\%hwId%,DefaultLanguage,,%DefaultLanguage%
HKLM,%CoInstallerKey%\%hwId%,InstallSource,,%01%
HKLM,%CoInstallerKey%\%hwId%,ConfigFile,,%thisFile%

[AddReg.PreSetupInfo]
HKLM,%CoInstallerKey%\%hwId%,PreInstall,,%ProgramFilesPath%\Creative\PreInst\%thisFile%


;#####################################################################
;	user-defined directive format: Setup Calls
;#####################################################################
[Driver.Install.5]
;UpdateDeviceDriver,<device-id>,<inf-fullpath>,<install-flag>[,reboot-check][,hwnd-value]
UpdateDeviceDriver,%hwId%,%CU%\%thisInf%,1,%silent%

[Driver.Install.6]
;UpdateDeviceDriver,<device-id>,<inf-fullpath>,<install-flag>[,reboot-check][,hwnd-value]
UpdateDeviceDriver,%hwId%,%CU%\%thisInf%,1,%silent%

[Driver.Remove.5]
;RemoveDevice,<class-guid>,<classflag>,<device-id>,[target-folder],[source-inf]
RemoveDevice,%MediaClass%,8,%hwId%,%17%,%CU%\%thisInf%
RemoveDevice,%MediaClassSystem%,8,%hwId%,%17%,%CU%\%thisInf%

[Driver.Remove.6]
;RemoveDevice,<class-guid>,<classflag>,<device-id>,[target-folder],[source-inf]
RemoveDevice,%MediaClass%,8,%hwId%,%17%,%CU%\%thisInf%
RemoveDevice,%MediaClassSystem%,8,%hwId%,%17%,%CU%\%thisInf%

[Driver.PreInstall.5]
;PreInstallDriver,<inf-fullpath>,[source-location],[source-type],[copy-style]
PreInstallDevice,%PreInstallPath%\%thisInf%,%PreInstallPath%,1,0,

[Driver.PreInstall.6]
;PreInstallDriver,<inf-fullpath>,[source-location],[source-type],[copy-style]
PreInstallDevice,%PreInstallPath%\%thisInf%,%PreInstallPath%,1,0,

[Driver.Disable]
;DisableDevice,<class-guid>,<classflag>,<device-id>
DisableDevice,%MediaClass%,2,%devId%

[Driver.Enable]
;EnableDevice,<class-guid>,<classflag>,<device-id>
EnableDevice,%MediaClass%,8,%devId%


[Driver.WaitNoInstallEvent]
;WaitPendingInstallEvent,<check-flag>,<millisec-timeout>,<output-status>
WaitPendingInstallEvent,,,$(waitFlag)
WaitPendingInstallEvent,%waitFlag%,10000


[DefaultInstall.Install]
11=rundll32.exe,X,setupapi.dll InstallHinfSection DefaultInstall 128 %01%\??.inf


;;@@@@@@@@ conditional statement @@@@@@@@

[Driver.Install.Methods]
;<condition?>,<true-section>,<false-section>
1,SetupApi.Install,Ignored

[Driver.PreInstall.Methods]
;<condition?>,<true-section>,<false-section>
1,SetupApi.PreInstall,Ignored

;;====================================================
;;@@@@@@@@ conditional statement (INF generic)@@@@@@@@
;;====================================================
[Driver.Remove.Methods]
;<condition?>,<true-section>,<false-section>
1,SetupApi.Remove,Ignored




;#####################################################################
;	user-defined directive format: User interactive calls
;#####################################################################
[Ask.User.Reboot]
UserInteract=0,0,Resource.GetFileName
LoadString=0,0,String.RebootMsg
UserInteract=0,0,Dialog.RebootMsg


[Resource.GetFileName]
;GetResourceFile,[check-flag],[new-dllname],<output-var>
GetResourceFile,0,,$(resFile)

[Dialog.RebootMsg]
;ShowDialogBox,<control-button>,<title>,<check-flag>,[output-var],<messages>
;ShowDialogBox,MB_OKCANCEL,%CreafUpdateMsg%,%lastStatus%,$(rebootSel),%rebootMsg%
ShowDialogBox,MB_OKCANCEL,%CreafUpdateMsg%,1,$(rebootSel),%rebootMsg%



;#####################################################################
;	user-defined directive format: system functions
;#####################################################################
[System.Wait]
;Wait,<value>,[second | millisec]
Wait,8,second

[System.WaitLong]
;Wait,<value>,[second | millisec]
Wait,60,second

; check-flag gets from [Dialog.RebootMsg] returns status
[System.Reboot]
;Reboot,<check-flag>
Reboot,%rebootSel%

[GetSystem.CPU]
GetCPU,1,$(CPU)

[GetSystem.OSMajorVer]
GetOSVersion,0,$(OSMajorVer)


;#####################################################################
;	Pre-define section
;#####################################################################
[PreDefine]
SystemCalls=0,0,GetSystem.CPU
SystemCalls=0,0,GetSystem.OSMajorVer




;#####################################################################
;	Strings
;#####################################################################

[Strings]
MediaClass="{4D36E96C-E325-11CE-BFC1-08002BE10318}"
MediaClassSystem="{4D36E97D-E325-11CE-BFC1-08002BE10318}"
CoInstallerKey="System\CurrentControlSet\Control\CreativeInstaller"
LanguageName="LangType"
DefaultLanguage=ENG

CtHda="CtHda"
CtHdb="CtHdb"
CtHdaSvc32="CtHdaSvc"
CtHdaSvc64="CtHdaS64"

ControlRegKey="System\CurrentControlSet\Control"
ServicesRegKey="System\CurrentControlSet\Services"
CreafCtrlRegKey="System\CurrentControlSet\Control\Creative Tech"
StrCTStringLangResourceKey="System\CurrentControlSet\Control\Creative Tech\Database\Product\LangResource"
StrCTKey="SYSTEM\CurrentControlSet\Control\Creative Tech"
PreInstallPath="C:\Program Files\Creative\PreInst\unknown"
ERROR_FILE_NOT_FOUND=2
ERROR_DEV_NOT_SUPPORTED=3758096899
ERROR_DEV_NOT_FOUND=3758096907
ERROR_NO_MORE_ITEMS=259

Setup_Count=0
refresh=1
classFlag=4
thisInf=cthda.inf
lang=
DifxPath=DifxPath
DifxGetPath=
difx=0
CPU=x86
OSMajorVer=6
clean=0
silent=1
thiFile=cthda.ini
