;-------------------------------------------------------------------------------
; INTEL CONFIDENTIAL
;
; Copyright (c) 2021-2024 Intel Corporation All Rights Reserved
;
; The source code contained or described herein and all documents related to
; the source code ("Material") are owned by Intel Corporation or its suppliers
; or licensors. Title to the Material remains with Intel Corporation or its
; suppliers and licensors. The Material contains trade secrets and proprietary
; and confidential information of Intel or its suppliers and licensors. The
; Material is protected by worldwide copyright and trade secret laws and treaty
; provisions. No part of the Material may be used, copied, reproduced,
; modified, published, uploaded, posted, transmitted, distributed, or
; disclosed in any way without Intel's prior express written permission.
;
; No license under any patent, copyright, trade secret or other intellectual
; property right is granted to or conferred upon you by disclosure or delivery
; of the Materials, either expressly, by implication, inducement, estoppel or
; otherwise. Any license under such intellectual property rights must be
; expressed and approved by Intel in writing.
;------------------------------------------------------------------------------
[Version]
Signature = "$WINDOWS NT$"
Class = SoftwareComponent
ClassGuid = {5c4c3332-344d-483c-8739-259e934c9cc8}
Provider = %INTEL%
CatalogFile = icst_service.cat
DriverVer = 05/07/2024,2.1.10400.0013
PnpLockdown=1

[SourceDisksNames]
1 = %DiskName%

[SourceDisksFiles]
intel_cst_service_standalone.exe = 1
ServiceSettings.json = 1
ipfcoresdk.dll = 1
ClientApi.dll = 1
msvcp140.dll = 1
vcruntime140.dll = 1
vcruntime140_1.dll = 1
TouchPauseScanProvider.dll = 1
HumanPresenceProvider.dll = 1

[DestinationDirs]
DefaultDestDir = 13
IcstCopyFiles = 13

[Manufacturer]
%INTEL% = INTEL,NTAMD64.10.0...19044

[INTEL.NTAMD64.10.0...19044]
%ICST.DeviceDesc% = IcstInstall,SWC\VID8086_CST_1.0

[IcstInstall]
CopyFiles = IcstCopyFiles
CopyFiles = IcstCopySettingsFile ; comment to skip copying bundled ServiceSettings.json file

[IcstCopyFiles]
intel_cst_service_standalone.exe,,,%COPYFLG_NOSKIP%
ipfcoresdk.dll,,,%COPYFLG_NOSKIP%
ClientApi.dll,,,%COPYFLG_NOSKIP%
msvcp140.dll,,,%COPYFLG_NOSKIP%
vcruntime140.dll,,,%COPYFLG_NOSKIP%
vcruntime140_1.dll,,,%COPYFLG_NOSKIP%
TouchPauseScanProvider.dll,,,%COPYFLG_NOSKIP%
HumanPresenceProvider.dll,,,%COPYFLG_NOSKIP%

[IcstCopySettingsFile] ; comment to skip copying bundled ServiceSettings.json file
; This copy will always overwrite any existing default file, particularly in the case of overinstall/upgrade.
; The COPYFLG parameter can be updated to match the desired behavior if different from the default.
ServiceSettings.json,,,%COPYFLG_NOSKIP% ; comment to skip copying bundled ServiceSettings.json file

[IcstInstall.Services]
AddService = IntelCstService,0x9F8,IcstService
; ICST is not a function driver, use the `null` function driver
AddService = ,2

[IcstService]
DisplayName = %IcstSvcDisplayName%
Description = %IcstSvcDescription%
ServiceType = %SERVICE_WIN32_OWN_PROCESS%
StartType = %SERVICE_AUTO_START%
ErrorControl = %SERVICE_ERROR_NORMAL%
ServiceBinary = %13%\intel_cst_service_standalone.exe
StartName = "NT AUTHORITY\System"
RequiredPrivileges = "SeChangeNotifyPrivilege"
AddReg = IcstSvcUserRegistry
; In the default configuration, the SCM will start ICST along with other delayed start services a few minutes later
; to reduce resource demand on the system while it is starting up.
; Comment out the below line to start ICST right when the system boots.
DelayedAutoStart = 0x1

[IcstSvcUserRegistry]
HKR,"Parameters","OverWriteSettingsFile",%REG_SZ%,"Y"
HKR,"Parameters","AllowOsHumanPresenceConflictDetection",%REG_DWORD%,1
; Uncomment the below line to enable service recovery (up to 2x/day)
; HKR,,"FailureActions",%REG_BINARY%,80,51,01,00,00,00,00,00,00,00,00,00,03,00,00,00,14,00,00,00,01,00,00,00,00,00,00,00,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00

[Strings]
; ICST-specific strings
INTEL = "Intel"
DiskName = "Intel(R) Context Sensing Technology"
ICST.DeviceDesc  = "Intel(R) Context Sensing Technology Service"
IcstSvcName = "IntelCstService"
IcstSvcDisplayName = "Intel(R) Context Sensing Technology Service"
IcstSvcDescription = "Provides user sensing services using the Intel Innovation Platform Framework"

; Microsoft-defined constants for flags
COPYFLG_NOSKIP = 0x00000002
SERVICE_AUTO_START = 2
SERVICE_ERROR_NORMAL = 1
SERVICE_WIN32_OWN_PROCESS = 0x00000010
REG_SZ = 0x0 ; FLG_ADDREG_TYPE_SZ
REG_MULTI_SZ = 0x00010000 ; FLG_ADDREG_TYPE_MULTI_SZ
REG_BINARY = 0x00000001
REG_DWORD = 0x00010001


