; lenovoDisplay.inf
; Copyright © 2021 Lenovo Inc;
; All rights reserved

[Version]
Signature="$Windows NT$"
Class=Display
ClassGuid={4d36e968-e325-11ce-bfc1-08002be10318}
ClassVer=2.0
Provider=%ManufacturerName%
CatalogFile=lenovoDisplay.cat
DriverVer = 09/12/2025,1.5.000.136
PnpLockdown=1

[ControlFlags]
ExcludeFromSelect =*

[DestinationDirs]
lenovo.DisplayUmd = 12,UMDF        	; drivers\UMDF
lenovo.DisplayUmd.1.2 = 12,UMDF  	; drivers\UMDF

[Manufacturer]
%ManufacturerName%=Standard,NTx86,ntamd64,NTx86.10.0...16299,ntamd64.10.0...16299, NTx86.10.0...22000, NTamd64.10.0...22000

[Standard.NTx86]
%DeviceName%= v3DDKIndirect_Install_86, {63384FBF-F398-46AB-86C9-5CCDF1EC4917}\VID_LENOVO_INC_PID_LENOVO_VIRTUAL_DISPLAY_0003
%DeviceName%= v3DDKIndirect_Install_86, VID_LENOVO_INC_PID_LENOVO_VIRTUAL_DISPLAY_0003 ; Used by SwDeviceCreate
[Standard.NtAMD64]
%DeviceName%= v3DDKIndirect_Install, {63384FBF-F398-46AB-86C9-5CCDF1EC4917}\VID_LENOVO_INC_PID_LENOVO_VIRTUAL_DISPLAY_0003
%DeviceName%= v3DDKIndirect_Install, VID_LENOVO_INC_PID_LENOVO_VIRTUAL_DISPLAY_0003 ; Used by SwDeviceCreate
[Standard.NTx86.10.0...16299]
%DeviceName%= v3DDKIndirect_1.2_Install_86, {63384FBF-F398-46AB-86C9-5CCDF1EC4917}\VID_LENOVO_INC_PID_LENOVO_VIRTUAL_DISPLAY_0003
%DeviceName%= v3DDKIndirect_1.2_Install_86, VID_LENOVO_INC_PID_LENOVO_VIRTUAL_DISPLAY_0003 ; Used by SwDeviceCreate
[Standard.ntamd64.10.0...16299]
%DeviceName%= v3DDKIndirect_1.2_Install, {63384FBF-F398-46AB-86C9-5CCDF1EC4917}\VID_LENOVO_INC_PID_LENOVO_VIRTUAL_DISPLAY_0003
%DeviceName%= v3DDKIndirect_1.2_Install, VID_LENOVO_INC_PID_LENOVO_VIRTUAL_DISPLAY_0003 ; Used by SwDeviceCreate
[Standard.NTx86.10.0...22000]
%DeviceName%= v3DDKIndirect_1.2_Install_11, {63384FBF-F398-46AB-86C9-5CCDF1EC4917}\VID_LENOVO_INC_PID_LENOVO_VIRTUAL_DISPLAY_0003
%DeviceName%= v3DDKIndirect_1.2_Install_11, VID_LENOVO_INC_PID_LENOVO_VIRTUAL_DISPLAY_0003 ; Used by SwDeviceCreate
[Standard.NTamd64.10.0...22000]
%DeviceName%= v3DDKIndirect_1.2_Install_11, {63384FBF-F398-46AB-86C9-5CCDF1EC4917}\VID_LENOVO_INC_PID_LENOVO_VIRTUAL_DISPLAY_0003
%DeviceName%= v3DDKIndirect_1.2_Install_11, VID_LENOVO_INC_PID_LENOVO_VIRTUAL_DISPLAY_0003 ; Used by SwDeviceCreate

;
; ================================== UMDF Device ==================================
;

; ================================== UMDF Device ==================================
;   NTx86
[v3DDKIndirect_Install_86]
UmdfLibraryVersion=2.15.0
ServiceBinary=%12%\UMDF\lenovoDisplayUmode1_0.dll
ServiceBinary="%12%\UMDF\Lenovo.CertificateValidation.Native.dll"
UmdfExtensions=IddCx0102

[v3DDKIndirect_Install_86.NT]
CopyFiles=lenovo.DisplayUmd
;CopyINF=lenovoDisplay.inf

[v3DDKIndirect_Install_86.NT.Wdf]
;UmdfDispatcher=NativeUSB
UmdfService=lenovoDisplayUmode,v3DDKIndirect_Install_86
UmdfServiceOrder=lenovoDisplayUmode
UmdfKernelModeClientPolicy = AllowKernelModeClients
UmdfMethodNeitherAction	= Copy
UmdfFileObjectPolicy = AllowNullAndUnknownFileObjects
UmdfHostProcessSharing = ProcessSharingDisabled

[v3DDKIndirect_Install_86.NT.services]
AddService=WUDFRd,0x000001fa,WUDFRD_ServiceInstall

[v3DDKIndirect_Install_86.NT.hw]
AddReg=HardwareKey_AddReg

; ================================== UMDF Device ==================================
;   NTx86.10.0...16299
[v3DDKIndirect_1.2_Install_86]
UmdfLibraryVersion=2.15.0
ServiceBinary=%12%\UMDF\lenovoDisplayUmode1_2.dll
ServiceBinary="%12%\UMDF\Lenovo.CertificateValidation.Native.dll"
UmdfExtensions=IddCx0102

[v3DDKIndirect_1.2_Install_86.NT]
CopyFiles=lenovo.DisplayUmd.1.2
CopyINF=lenovoDisplay.inf

[v3DDKIndirect_1.2_Install_86.NT.Wdf]
UmdfService=lenovoDisplayUmode,v3DDKIndirect_1.2_Install_86
UmdfServiceOrder=lenovoDisplayUmode
UmdfKernelModeClientPolicy = AllowKernelModeClients
UmdfMethodNeitherAction	= Copy
UmdfFileObjectPolicy = AllowNullAndUnknownFileObjects
UmdfHostProcessSharing = ProcessSharingDisabled

[v3DDKIndirect_1.2_Install_86.NT.services]
AddService = WUDFRd,0x000001fa,WUDFRD_ServiceInstall

[v3DDKIndirect_1.2_Install_86.NT.hw]
AddReg=HardwareKey_AddReg

; ================================== UMDF Device ==================================
;
; === IddCx 1.2 - Windows 10 1709 and above ===
;
[v3DDKIndirect_1.2_Install]
UmdfLibraryVersion=2.15.0
ServiceBinary=%12%\UMDF\lenovoDisplayUmode1_2.dll
ServiceBinary="%12%\UMDF\Lenovo.CertificateValidation.Native.dll"
UmdfExtensions=IddCx0102

[v3DDKIndirect_1.2_Install.NT.Wdf]
UmdfService=lenovoDisplayUmode,v3DDKIndirect_1.2_Install
UmdfServiceOrder=lenovoDisplayUmode
UmdfKernelModeClientPolicy = AllowKernelModeClients
UmdfMethodNeitherAction	= Copy
UmdfFileObjectPolicy = AllowNullAndUnknownFileObjects
UmdfHostProcessSharing = ProcessSharingDisabled

[v3DDKIndirect_1.2_Install.NT]
CopyFiles=lenovo.DisplayUmd.1.2
CopyINF=lenovoDisplay.inf

[v3DDKIndirect_1.2_Install.NT.services]
AddService = WUDFRd,0x000001fa,WUDFRD_ServiceInstall

[v3DDKIndirect_1.2_Install.NT.hw]
AddReg=HardwareKey_AddReg

; ================================== UMDF Device ==================================
;
; === IddCx 1.2 - Windows 11 21H2 , 22000 and above ===
;
[v3DDKIndirect_1.2_Install_11]
UmdfLibraryVersion=2.15.0
ServiceBinary=%12%\UMDF\lenovoDisplayUmode1_2.dll
ServiceBinary="%12%\UMDF\Lenovo.CertificateValidation.Native.dll"
UmdfExtensions=IddCx0102

[v3DDKIndirect_1.2_Install_11.NT.Wdf]
UmdfService=lenovoDisplayUmode,v3DDKIndirect_1.2_Install_11
UmdfServiceOrder=lenovoDisplayUmode
UmdfKernelModeClientPolicy = AllowKernelModeClients
UmdfMethodNeitherAction	= Copy
UmdfFileObjectPolicy = AllowNullAndUnknownFileObjects
UmdfHostProcessSharing = ProcessSharingDisabled

[v3DDKIndirect_1.2_Install_11.NT]
CopyFiles=lenovo.DisplayUmd.1.2
Include=WUDFRD.inf
Needs=WUDFRD.NT

[v3DDKIndirect_1.2_Install_11.NT.hw]
AddReg=HardwareKey_AddReg
Include=WUDFRD.inf
Needs=WUDFRD.NT.hw

[v3DDKIndirect_1.2_Install_11.NT.services]
Include=WUDFRD.inf
Needs=WUDFRD.NT.Services

; ================================== UMDF Device ==================================
;
; === IddCx 1.0 - Windows 10 1607 to 1703 ===
;
[v3DDKIndirect_Install.NT]
CopyFiles=lenovo.DisplayUmd
;CopyINF=lenovoDisplay.inf

[v3DDKIndirect_Install.NT.hw]
AddReg=HardwareKey_AddReg

[v3DDKIndirect_Install.NT.Wdf]
;UmdfDispatcher=NativeUSB
UmdfService=lenovoDisplayUmode,v3DDKIndirect_Install
UmdfServiceOrder=lenovoDisplayUmode
UmdfKernelModeClientPolicy = AllowKernelModeClients
UmdfMethodNeitherAction	= Copy
UmdfFileObjectPolicy = AllowNullAndUnknownFileObjects
UmdfHostProcessSharing = ProcessSharingDisabled

[v3DDKIndirect_Install]
UmdfLibraryVersion=2.15.0
ServiceBinary=%12%\UMDF\lenovoDisplayUmode1_0.dll
ServiceBinary="%12%\UMDF\Lenovo.CertificateValidation.Native.dll"
UmdfExtensions=IddCx0102

[v3DDKIndirect_Install.NT.services]
AddService=WUDFRd,0x000001fa,WUDFRD_ServiceInstall

;
; === Install sections for all platforms ===
;
[HardwareKey_AddReg]
HKR,,FriendlyName,,%DeviceName%
HKR,,"UpperFilters", %REG_MULTI_SZ%, "IndirectKmd"
HKR,"WUDF","DeviceGroupId",0x00000000,"v3DDKIndirectGroup"
HKR,,DeviceCharacteristics,0x10001,0x100
;HKR,,Security,,"D:P(A;;GA;;;SY)(A;;GA;;;BA)"
HKR,,Security,,"D:P(A;;GA;;;SY)(A;;GA;;;BA)(A;;GA;;;WD)(A;;GA;;;RC)"  ;for lower security
HKR, Software\Microsoft\Windows NT\CurrentVersion\WUDF\Services\lenovoDisplayUmode, StaticDesktopReEncodeFrameCount, 0x00010001, 1


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

;
; Device Cleanup
;
[DefaultUninstall]
DelFiles= lenovo.DisplayUmd, lenovo.DisplayUmd.1.2

;
; file section
;
[lenovo.DisplayUmd]
lenovoDisplayUmode1_0.dll
Lenovo.CertificateValidation.Native.dll
[lenovo.DisplayUmd.1.2]
lenovoDisplayUmode1_2.dll
Lenovo.CertificateValidation.Native.dll

[SourceDisksNames.x86]
1 = %DISKID1%,,,\x86

[SourceDisksNames.amd64]
1 = %DISKID1%,,, \amd64

[SourceDisksFiles]
lenovoDisplayUmode1_0.dll = 1
Lenovo.CertificateValidation.Native.dll = 1
lenovoDisplayUmode1_2.dll = 1

;
; ================================== Generic ==================================
;
[Strings]
ManufacturerName="Lenovo Inc"
DISKID1 = "Lenovo virtual Graphics Adapter Driver Setup Disk"
WudfRdDisplayName="Windows Driver Foundation - User-mode Driver Framework Reflector"
DeviceName="Lenovo Graphics Adapter"

REG_MULTI_SZ = 0x00010000

