diff --git a/packaging/windows/pf-vdisplay/pf_vdisplay.cat b/packaging/windows/pf-vdisplay/pf_vdisplay.cat index 8238ded..f4b2a96 100644 Binary files a/packaging/windows/pf-vdisplay/pf_vdisplay.cat and b/packaging/windows/pf-vdisplay/pf_vdisplay.cat differ diff --git a/packaging/windows/pf-vdisplay/pf_vdisplay.dll b/packaging/windows/pf-vdisplay/pf_vdisplay.dll index 2f511b1..07ca706 100644 Binary files a/packaging/windows/pf-vdisplay/pf_vdisplay.dll and b/packaging/windows/pf-vdisplay/pf_vdisplay.dll differ diff --git a/packaging/windows/pf-vdisplay/pf_vdisplay.inf b/packaging/windows/pf-vdisplay/pf_vdisplay.inf index 18d4d8f..7c56dc2 100644 --- a/packaging/windows/pf-vdisplay/pf_vdisplay.inf +++ b/packaging/windows/pf-vdisplay/pf_vdisplay.inf @@ -1,78 +1,85 @@ -;/*++ -; pf-vdisplay - punktfunk virtual display, UMDF2 IddCx driver INF (template; stampinf -> .inf). -; Adapted from MolotovCherry/virtual-display-rs (MIT) + SudoVDA's control-device security DACL. -;--*/ -[Version] -PnpLockdown=1 -Signature="$Windows NT$" -ClassGUID={4D36E968-E325-11CE-BFC1-08002BE10318} -Class=Display -ClassVer=2.0 -Provider=%ManufacturerName% -CatalogFile=pf_vdisplay.cat -DriverVer = 06/22/2026,1.0.0622.2210 - -[Manufacturer] -%ManufacturerName%=Standard,NTamd64 - -[Standard.NTamd64] -%DeviceName%=pf_vdisplay_Install, Root\pf_vdisplay - -[SourceDisksFiles] -pf_vdisplay.dll=1 - -[SourceDisksNames] -1=%DiskName% - -; =================== UMDF IddCx device ==================== - -[pf_vdisplay_Install.NT] -CopyFiles=UMDriverCopy - -[pf_vdisplay_Install.NT.hw] -AddReg=pf_vdisplay_HardwareDeviceSettings - -[pf_vdisplay_HardwareDeviceSettings] -HKR, , "UpperFilters", %REG_MULTI_SZ%, "IndirectKmd" -HKR, "WUDF", "DeviceGroupId", %REG_SZ%, "pfVDisplayGroup" -; Let the host (LocalSystem service) + admins open the control device for the ADD/REMOVE/PING IOCTLs. -HKR, , "Security", , "D:P(A;;GA;;;SY)(A;;GA;;;BA)(A;;GRGW;;;WD)" - -[pf_vdisplay_Install.NT.Services] -AddService=WUDFRd,0x000001fa,WUDFRD_ServiceInstall - -[pf_vdisplay_Install.NT.Wdf] -UmdfService=pf_vdisplay, pf_vdisplay_Install -UmdfServiceOrder=pf_vdisplay -UmdfKernelModeClientPolicy=AllowKernelModeClients -UmdfHostProcessSharing=ProcessSharingDisabled - -[pf_vdisplay_Install] -UmdfLibraryVersion=2.15.0 -ServiceBinary=%12%\UMDF\pf_vdisplay.dll -UmdfExtensions=IddCx0102 - -[WUDFRD_ServiceInstall] -DisplayName=%WudfRdDisplayName% -ServiceType=1 -StartType=3 -ErrorControl=1 -ServiceBinary=%12%\WUDFRd.sys - -[DestinationDirs] -UMDriverCopy=12,UMDF - -[UMDriverCopy] -pf_vdisplay.dll - -[Strings] -ManufacturerName="punktfunk" -DiskName="punktfunk Virtual Display Installation Disk" -WudfRdDisplayName="Windows Driver Foundation - User-mode Driver Framework Reflector" -DeviceName="punktfunk Virtual Display" - -REG_MULTI_SZ=0x00010000 -REG_SZ=0x00000000 -REG_EXPAND_SZ=0x00020000 -REG_DWORD=0x00010001 - +;/*++ +; pf-vdisplay - punktfunk virtual display, UMDF2 IddCx driver INF (template; stampinf -> .inf). +; +; For the all-Rust wdk-sys / windows-drivers-rs driver in THIS tree +; (packaging/windows/drivers/pf-vdisplay/). The driver registers the OWNED pf_vdisplay_proto +; control-interface GUID in CODE (WdfDeviceCreateDeviceInterface), so this INF is GUID-agnostic and +; is byte-identical to the superseded oracle's (packaging/windows/vdisplay-driver/.../pf_vdisplay.inx, +; itself adapted from MolotovCherry/virtual-display-rs (MIT) + SudoVDA's control-device security DACL). +; HWID Root\pf_vdisplay + IddCx0102 + the DACL match the host backend (crates/punktfunk-host/src/ +; vdisplay/pf_vdisplay.rs) and install-pf-vdisplay.ps1's Test-PfVdisplayPresent / nefconc node-create. +;--*/ +[Version] +PnpLockdown=1 +Signature="$Windows NT$" +ClassGUID={4D36E968-E325-11CE-BFC1-08002BE10318} +Class=Display +ClassVer=2.0 +Provider=%ManufacturerName% +CatalogFile=pf_vdisplay.cat +DriverVer = 06/25/2026,9.5.0625.1614 + +[Manufacturer] +%ManufacturerName%=Standard,NTamd64 + +[Standard.NTamd64] +%DeviceName%=pf_vdisplay_Install, Root\pf_vdisplay + +[SourceDisksFiles] +pf_vdisplay.dll=1 + +[SourceDisksNames] +1=%DiskName% + +; =================== UMDF IddCx device ==================== + +[pf_vdisplay_Install.NT] +CopyFiles=UMDriverCopy + +[pf_vdisplay_Install.NT.hw] +AddReg=pf_vdisplay_HardwareDeviceSettings + +[pf_vdisplay_HardwareDeviceSettings] +HKR, , "UpperFilters", %REG_MULTI_SZ%, "IndirectKmd" +HKR, "WUDF", "DeviceGroupId", %REG_SZ%, "pfVDisplayGroup" +; Let the host (LocalSystem service) + admins open the control device for the ADD/REMOVE/PING IOCTLs. +HKR, , "Security", , "D:P(A;;GA;;;SY)(A;;GA;;;BA)(A;;GRGW;;;WD)" + +[pf_vdisplay_Install.NT.Services] +AddService=WUDFRd,0x000001fa,WUDFRD_ServiceInstall + +[pf_vdisplay_Install.NT.Wdf] +UmdfService=pf_vdisplay, pf_vdisplay_Install +UmdfServiceOrder=pf_vdisplay +UmdfKernelModeClientPolicy=AllowKernelModeClients +UmdfHostProcessSharing=ProcessSharingDisabled + +[pf_vdisplay_Install] +UmdfLibraryVersion=2.15.0 +ServiceBinary=%12%\UMDF\pf_vdisplay.dll +UmdfExtensions=IddCx0102 + +[WUDFRD_ServiceInstall] +DisplayName=%WudfRdDisplayName% +ServiceType=1 +StartType=3 +ErrorControl=1 +ServiceBinary=%12%\WUDFRd.sys + +[DestinationDirs] +UMDriverCopy=12,UMDF + +[UMDriverCopy] +pf_vdisplay.dll + +[Strings] +ManufacturerName="punktfunk" +DiskName="punktfunk Virtual Display Installation Disk" +WudfRdDisplayName="Windows Driver Foundation - User-mode Driver Framework Reflector" +DeviceName="punktfunk Virtual Display" + +REG_MULTI_SZ=0x00010000 +REG_SZ=0x00000000 +REG_EXPAND_SZ=0x00020000 +REG_DWORD=0x00010001 +