;/*++
;
;Copyright (c) 2016-2023 Intel Corporation
;
;Module Name:
;
;    iacamera.inf
;
;Abstract:
;    INF file for installing intel iacamera (VIDEO\INT3480) driver
;
;Installation Notes:
;    Using Devcon: Type "devcon update iacamera64.inf VIDEO\INT3480" to install
;
;--*/

[Version]
signature="$CHICAGO$"
Class=Camera
ClassGUID={ca3e7ab9-b4c3-4ae6-8251-579ef933890f}
Provider=%PROVIDER_NAME%
DriverVer = 11/22/2024,64.26100.13.17675
Catalogfile=iacamera64.cat
PnpLockdown=1

[SourceDisksNames]
1000=%cdname%,,,

[SourceDisksFiles]
iacamera64.sys=1000
cpd_component_signed.bin=1000
IntelDeviceMFT64.dll=1000
pvl64.dll=1000
pvl_perspective_control64.dll=1000
pvl_skin_smoothing64.dll=1000
mute.bmp=1000
libia_cp64.dll=1000
TPG1_INTEL.cpf=1000
TPG2_INTEL.cpf=1000
TPG1_INTEL.aiqb=1000
TPG2_INTEL.aiqb=1000
XeExpVEX.dll = 1000
graph_descriptor.xml = 1000
graph_settings_TPG1_INTEL_DEFAULT.xml = 1000
graph_settings_TPG2_INTEL_DEFAULT.xml = 1000
ic2_api.dll = 1000
intelic.dll = 1000
intelic_data.bin = 1000
tbb12.dll = 1000

[DestinationDirs]
DefaultDestDir=13
iacamera.CopyFiles=13
iacamera.CopyX64DLLs=13

[Manufacturer]
%COMPANY_NAME%=Device, NTamd64.10.0...17134


[Device.NTamd64.10.0...17134]
;MTL
%iacamera.DeviceDesc_MTL%         =iacamera, VIDEO\VEN_8086&DEV_7D40&INT3480
%iacamera.DeviceDesc_MTL%         =iacamera, VIDEO\VEN_8086&DEV_7D55&INT3480
%iacamera.DeviceDesc_MTL%         =iacamera, VIDEO\VEN_8086&DEV_7DD5&INT3480
%iacamera.DeviceDesc_MTL%         =iacamera, VIDEO\VEN_8086&DEV_7D45&INT3480
%iacamera.DeviceDesc_MTL%         =iacamera, VIDEO\VEN_8086&DEV_7D60&INT3480
;ARL
%iacamera.DeviceDesc_MTL%         =iacamera, VIDEO\VEN_8086&DEV_7D51&INT3480
%iacamera.DeviceDesc_MTL%         =iacamera, VIDEO\VEN_8086&DEV_7DD1&INT3480
%iacamera.DeviceDesc_MTL%         =iacamera, VIDEO\VEN_8086&DEV_7D41&INT3480
%iacamera.DeviceDesc_MTL%         =iacamera, VIDEO\VEN_8086&DEV_7D67&INT3480
%iacamera.DeviceDesc_MTL%         =iacamera, VIDEO\VEN_8086&DEV_B640&INT3480

[iacamera.NT]
Include=ks.inf, KSCAPTUR.inf
Needs=KS.Registration,KSCAPTUR.Registration.NT
CopyFiles=iacamera.CopyFiles
CopyFiles=iacamera.CopyX64DLLs
AddReg=iacamera.MFT.AddReg

[iacamera.MFT.AddReg]
HKCR,CLSID\%IHV_DEVICE_PLUGIN%,,,%iacamera.FriendlyNameDeviceMFT%
HKCR,CLSID\%IHV_DEVICE_PLUGIN%\InprocServer32,,%REG_EXPAND_SZ%, "%13%\IntelDeviceMFT64.dll"
HKCR,CLSID\%IHV_DEVICE_PLUGIN%\InprocServer32,"ThreadingModel", %REG_SZ%, "Both"

[iacamera.CopyFiles]
iacamera64.sys
mute.bmp
TPG1_INTEL.cpf
TPG2_INTEL.cpf
TPG1_INTEL.aiqb
TPG2_INTEL.aiqb
graph_descriptor.xml
graph_settings_TPG1_INTEL_DEFAULT.xml
graph_settings_TPG2_INTEL_DEFAULT.xml
cpd_component_signed.bin

[iacamera.CopyX64DLLs]
IntelDeviceMFT64.dll
pvl64.dll
pvl_perspective_control64.dll
pvl_skin_smoothing64.dll
libia_cp64.dll
TPG1_INTEL.cpf
TPG2_INTEL.cpf
TPG1_INTEL.aiqb
TPG2_INTEL.aiqb
ic2_api.dll
intelic.dll
intelic_data.bin
XeExpVEX.dll
tbb12.dll

[iacamera.NT.Interfaces]
AddInterface=%KSCATEGORY_VIDEO_CAMERA%, %FilterFIFO%, iacamera.AddInterface,
AddInterface=%KSCATEGORY_VIDEO_CAMERA%, %FilterTPG1%, iacamera.AddInterfaceTPG1,
AddInterface=%KSCATEGORY_VIDEO_CAMERA%, %FilterTPG2%, iacamera.AddInterfaceTPG2,
AddInterface=%KSCATEGORY_VIDEO_CAMERA%, %FilterArraySensor%, iacamera.AddInterfaceArraySensor,


AddInterface=%KSCATEGORY_CAPTURE%, %FilterFIFO%, iacamera.AddInterface,
AddInterface=%KSCATEGORY_CAPTURE%, %FilterTPG1%, iacamera.AddInterfaceTPG1,
AddInterface=%KSCATEGORY_CAPTURE%, %FilterTPG2%, iacamera.AddInterfaceTPG2,
AddInterface=%KSCATEGORY_CAPTURE%, %FilterArraySensor%, iacamera.AddInterfaceArraySensor,


AddInterface=%KSCATEGORY_VIDEO%, %FilterFIFO%, iacamera.AddInterface,
AddInterface=%KSCATEGORY_VIDEO%, %FilterTPG1%, iacamera.AddInterfaceTPG1,
AddInterface=%KSCATEGORY_VIDEO%, %FilterTPG2%, iacamera.AddInterfaceTPG2,
AddInterface=%KSCATEGORY_VIDEO%, %FilterArraySensor%, iacamera.AddInterfaceArraySensor,


[iacamera.AddInterface]
AddReg=iacamera.AddReg

[iacamera.AddInterfaceTPG1]
AddReg=iacamera.AddRegTPG1

[iacamera.AddInterfaceTPG2]
AddReg=iacamera.AddRegTPG2

[iacamera.AddInterfaceArraySensor]
AddReg=iacamera.AddRegArraySensor

[iacamera.AddReg]
HKR,,CLSID,,%Proxy.CLSID%
HKR,,FriendlyName,,%iacamera.FriendlyName%

[iacamera.NT.HW]
Include=machine.inf
AddReg=camera_hw_AddReg


[iacamera.AddRegTPG1]
HKR,,CLSID,,%Proxy.CLSID%
HKR,,FriendlyName,,%iacamera.FriendlyNameTPG1%
HKR,,CameraDeviceMftClsid,,%IHV_DEVICE_PLUGIN%

; Profile version v2
HKR,,"OEMCameraProfileVersion",0x00010001,2

; Legacy Profile
HKR,"Profiles\KSCAMERAPROFILE_Legacy,0","MTF0",0,"Pin0:((RES==;FRT==30,1;SUT!=P010))"
HKR,"Profiles\KSCAMERAPROFILE_Legacy,0","MTF1",0,"Pin1:((RES==;FRT==30,1;SUT!=P010))"
HKR,"Profiles\KSCAMERAPROFILE_Legacy,0","MTF2",0,"Pin2:((RES==;FRT==30,1;SUT==ALL))"

; High Frame Rate Profile
HKR,"Profiles\KSCAMERAPROFILE_HighFrameRate,0","Constraint",0,"LRS;LST"
HKR,"Profiles\KSCAMERAPROFILE_HighFrameRate,0","BlockedControls",0,"VIDST"
HKR,"Profiles\KSCAMERAPROFILE_HighFrameRate,0","MTF0",0,"Pin0:((RES==1280,720;FRT==120,1;SUT!=P010))"
HKR,"Profiles\KSCAMERAPROFILE_HighFrameRate,0","MTF1",0,"Pin1:((RES==1280,720;FRT==120,1;SUT!=P010))"
HKR,"Profiles\KSCAMERAPROFILE_HighFrameRate,0","MTF2",0,"Pin2:(!)"

HKR,"Profiles\KSCAMERAPROFILE_HighFrameRate,1","Constraint",0,"LRS;LST"
HKR,"Profiles\KSCAMERAPROFILE_HighFrameRate,1","BlockedControls",0,"VIDST"
HKR,"Profiles\KSCAMERAPROFILE_HighFrameRate,1","MTF0",0,"Pin0:((RES==1920,1080;FRT==60,1;SUT!=P010))"
HKR,"Profiles\KSCAMERAPROFILE_HighFrameRate,1","MTF1",0,"Pin1:((RES==1920,1080;FRT==60,1;SUT!=P010))"
HKR,"Profiles\KSCAMERAPROFILE_HighFrameRate,1","MTF2",0,"Pin2:(!)"

; WCG P010 Profile
HKR,"Profiles\KSCAMERAPROFILE_HDRWithWCGVideo,0","Constraint",0,"LRS;LST;LFR;eSPSubtype_HEVC"
HKR,"Profiles\KSCAMERAPROFILE_HDRWithWCGVideo,0","BlockedControls",0,"VHDR;VPS"
HKR,"Profiles\KSCAMERAPROFILE_HDRWithWCGVideo,0","MTF0",0,"Pin0:((RES==1920,1080;FRT==30,1;SUT==P010))"
HKR,"Profiles\KSCAMERAPROFILE_HDRWithWCGVideo,0","MTF1",0,"Pin1:((RES==1920,1080;FRT==30,1;SUT==P010))"
HKR,"Profiles\KSCAMERAPROFILE_HDRWithWCGVideo,0","MTF2",0,"Pin2:(!)"

[iacamera.AddRegTPG2]
HKR,,CLSID,,%Proxy.CLSID%
HKR,,FriendlyName,,%iacamera.FriendlyNameTPG2%
HKR,,CameraDeviceMftClsid,,%IHV_DEVICE_PLUGIN%

[iacamera.AddRegArraySensor]
HKR,,CLSID,,%Proxy.CLSID%
HKR,,FriendlyName,,%iacamera.FriendlyNameArraySensor%
HKR,,CameraDeviceMftClsid,,%IHV_DEVICE_PLUGIN%

; Profile version v2
HKR,,"OEMCameraProfileVersion",0x00010001,2

; Legacy Profile
HKR,"Profiles\KSCAMERAPROFILE_Legacy,0","MTF0",0,"Pin0:((RES==;FRT==;SUT!=P010))"
HKR,"Profiles\KSCAMERAPROFILE_Legacy,0","MTF1",0,"Pin1:((RES==;FRT==;SUT!=P010))"
HKR,"Profiles\KSCAMERAPROFILE_Legacy,0","MTF2",0,"Pin2:((RES==;FRT==;SUT==ALL))"

; Photo Sequence Profile
HKR,"Profiles\KSCAMERAPROFILE_PhotoSequence,0","MTF0",0,"Pin0:((RES==1920,1080;FRT==30,1;SUT!=P010))"
HKR,"Profiles\KSCAMERAPROFILE_PhotoSequence,0","MTF1",0,"Pin1:(!)"
HKR,"Profiles\KSCAMERAPROFILE_PhotoSequence,0","MTF2",0,"Pin2:((RES==2048,1152;FRT==30,1;SUT==ALL))"

HKR,"Profiles\KSCAMERAPROFILE_PhotoSequence,1","MTF0",0,"Pin0:((RES==1920,1440;FRT==30,1;SUT!=P010))"
HKR,"Profiles\KSCAMERAPROFILE_PhotoSequence,1","MTF1",0,"Pin1:(!)"
HKR,"Profiles\KSCAMERAPROFILE_PhotoSequence,1","MTF2",0,"Pin2:((RES==2048,1536;FRT==30,1;SUT==ALL))"

; High Quality Photo Profile

HKR,"Profiles\KSCAMERAPROFILE_HighQualityPhoto,0","MTF0",0,"Pin0:((RES==1920,1080;FRT==30,1;SUT!=P010))"
HKR,"Profiles\KSCAMERAPROFILE_HighQualityPhoto,0","MTF1",0,"Pin1:(!)"
HKR,"Profiles\KSCAMERAPROFILE_HighQualityPhoto,0","MTF2",0,"Pin2:((RES==2048,1152;FRT==30,1;SUT==ALL))((RES==1920,1080;FRT==30,1;SUT==ALL))"

HKR,"Profiles\KSCAMERAPROFILE_HighQualityPhoto,1","MTF0",0,"Pin0:((RES==1920,1440;FRT==30,1;SUT!=P010))"
HKR,"Profiles\KSCAMERAPROFILE_HighQualityPhoto,1","MTF1",0,"Pin1:(!)"
HKR,"Profiles\KSCAMERAPROFILE_HighQualityPhoto,1","MTF2",0,"Pin2:((RES==2048,1536;FRT==30,1;SUT==ALL))"

; Video Recording Profile
HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,0","MTF0",0,"Pin0:((RES<=1920,1080;FRT==30,1;SUT!=P010))"
HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,0","MTF1",0,"Pin1:((RES<=1920,1080;FRT==30,1;SUT!=P010))"
HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,0","MTF2",0,"Pin2:(!)"

HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,1","MTF0",0,"Pin0:((RES<=1920,1440;FRT==30,1;SUT!=P010))"
HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,1","MTF1",0,"Pin1:((RES<=1920,1440;FRT==30,1;SUT!=P010))"
HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,1","MTF2",0,"Pin2:(!)"

; Balanced Video And Photo Profile
HKR,"Profiles\KSCAMERAPROFILE_BalancedVideoAndPhoto,0","MTF0",0,"Pin0:((RES==1920,1080;FRT==30,1;SUT!=P010))"
HKR,"Profiles\KSCAMERAPROFILE_BalancedVideoAndPhoto,0","MTF1",0,"Pin1:((RES==1920,1080;FRT==30,1;SUT!=P010))"
HKR,"Profiles\KSCAMERAPROFILE_BalancedVideoAndPhoto,0","MTF2",0,"Pin2:((RES==2048,1152;FRT==30,1;SUT==ALL))"


[iacamera.NT.Services]
AddService=camera, 0x00000002, iacamera.ServiceInstall

[iacamera.ServiceInstall]
ServiceType=%SERVICE_KERNEL_DRIVER%
StartType=%SERVICE_DEMAND_START%
ErrorControl=%SERVICE_ERROR_NORMAL%
ServiceBinary=%13%\iacamera64.sys
AddReg = SpecificParameter

[SpecificParameter]
HKR,Parameters, "SupportMuteMode", %REG_DWORD%, 1
HKR,Parameters, "FrontMuteState", %REG_DWORD%, 0
HKR,Parameters, "BackMuteState", %REG_DWORD%, 0
HKR,Parameters, "EnableP010", %REG_DWORD%, 1
HKR,Parameters, "EnableTPGSensor", %REG_DWORD%, 0
HKR,Parameters, "ISysPinForRaw", %REG_DWORD%, 0
HKR,Parameters, "EnableRaw10TPG", %REG_DWORD%, 0
HKR,Parameters, "EnablePpgSuspendResume", %REG_DWORD%, 1
HKR,Parameters, "EnableWaterMark", %REG_DWORD%, 1
HKR,Parameters, "iWake", %REG_DWORD%, 0x42
HKR,Parameters, "MemOpenThreshold", %REG_DWORD%, 0xc
HKR,Parameters, "SecureModeEnabled", %REG_DWORD%, 0
HKR,Parameters, "EnableDualDest", %REG_DWORD%, 0
HKR,Parameters, "DumpISysOutputBuffer", %REG_DWORD%, 0
HKR,Parameters, "EnablePollingISysInterrupt", %REG_DWORD%, 0
HKR,Parameters, "EnablePollingPSysInterrupt", %REG_DWORD%, 0
HKR,Parameters, "Enable4K60FPSVideo", %REG_DWORD%, 1
HKR,Parameters, "EnableOTF", %REG_DWORD%, 0
HKR,Parameters, "EnablePPG", %REG_DWORD%, 1
HKR,Parameters, "EnableCmdDispatcher", %REG_DWORD%, 1
HKR,Parameters, "EnableLTM", %REG_DWORD%, 1
HKR,Parameters, "EnableDec400", %REG_DWORD%, 7
HKR,Parameters, "EnableHPPipe", %REG_DWORD%, 0
HKR,Parameters, "EnableBurstIsp", %REG_DWORD%, 0
HKR,Parameters, "DisableVRAM", %REG_DWORD%, 0
HKR,Parameters, "EnablePsysPowerGating", %REG_DWORD%, 1
HKR,Parameters, "EnablePSysRecovery", %REG_DWORD%, 1
HKR,Parameters, "EnableISysSofAlign", %REG_DWORD%, 1
HKR,Parameters, "EnablePpgAlign", %REG_DWORD%, 1
HKR,Parameters, "EnableLinearCaptureSurface", %REG_DWORD%, 1
HKR,Parameters, "EnableDualStillPipeline", %REG_DWORD%, 1
HKR,Parameters, "StillTnrTriggerMode", %REG_DWORD%, 2
HKR,Parameters, "StillTnr7usInvertedOrderCount", %REG_DWORD%, 2
HKR,Parameters, "EnablePipeExe", %REG_DWORD%, 1
HKR,Parameters, "DisableNewFD", %REG_DWORD%, 0
HKR,Parameters, "EnablePoorLightCondition", %REG_DWORD%, 1
HKR,Parameters, "RunAuxFdInIC", %REG_DWORD%, 1
HKR,Parameters, "EnableLiveTuning", %REG_DWORD%, 0
HKR,Parameters, "EnablePreIPUProcess", %REG_DWORD%, 0
HKR,Parameters, "AicCallRateMode", %REG_DWORD%, 2
HKR,Parameters, "EnableIntelICs", %REG_DWORD%, 0
;HKLM, "Software\Intel\KMD", EnableLinearCaptureSurface, %REG_DWORD%, 0

[camera_hw_AddReg]
HKR, "Interrupt Management", 0x00000010
HKR, "Interrupt Management\MessageSignaledInterruptProperties", 0x00000010
HKR, "Interrupt Management\MessageSignaledInterruptProperties", MSISupported, 0x00010001, 1
HKR,,"DeviceCharacteristics",0x10001,0x0100     ; Use same security checks on relative opens
HKR,,Security,,"D:P(A;;GA;;;SY)(A;;GRGWGX;;;BA)(A;;GRGWGX;;;WD)(A;;GR;;;RC)"


[Strings]
Proxy.CLSID="{17CCA71B-ECD7-11D0-B908-00A0C9223196}"
KSCATEGORY_VIDEO_CAMERA="{E5323777-F976-4f5b-9B55-B94699C46E44}"
KSCATEGORY_CAPTURE="{65E8773D-8F56-11D0-A3B9-00A0C9223196}"
KSCATEGORY_VIDEO="{6994AD05-93EF-11D0-A3CC-00A0C9223196}"
KSCATEGORY_SENSOR_CAMERA="{24E552D7-6523-47F7-A647-D3465BF1F5CA}"
IHV_DEVICE_PLUGIN="{A4996FA6-F083-4516-97D4-2B272F26E6A2}"

SERVICE_KERNEL_DRIVER=1
SERVICE_DEMAND_START=3
SERVICE_ERROR_NORMAL=1
REG_DWORD=0x00010001
REG_SZ=0x00000000
REG_EXPAND_SZ=0x00020000
REG_MULTI_SZ=0x00010000

;localizable
PROVIDER_NAME="Intel"
COMPANY_NAME="Intel Corporation"
iacamera.DeviceDesc_MTL="Intel(R) AVStream Camera"
iacamera.FriendlyNameDeviceMFT="Intel Camera DeviceMFT Class"
iacamera.DeviceDesc_MTL_HAPS="Intel(R) HAPS AVStream Camera"
iacamera.DeviceDesc_MTL_SIMICS="Intel(R) Simics AVStream Camera"
iacamera.FriendlyName="Intel FIFO camera"
iacamera.FriendlyNameTPG1="TPG1"
iacamera.FriendlyNameTPG2="TPG2"
iacamera.FriendlyNameArraySensor="ArraySensor"

cdname="Intel(R) AVStream Camera Installation Disk"
FilterTPG1="{53BBBF18-2914-4485-8152-1226C1E7D0BC}"
FilterTPG2="{DC65E111-332F-4782-B009-08549E68F74E}"
FilterFIFO="{a6d06f47-23d2-4b5c-9b3c-40f9bca2bc6e}"
FilterArraySensor="{D4DF649F-7B51-4975-B76B-C2573DB23F32}"
