feat(windows-drivers): STEP 8 (3/n) — re-vendor the installer driver from the new wdk-sys tree
apple / swift (push) Successful in 1m9s
apple / screenshots (push) Failing after 1m49s
windows-host / package (push) Successful in 5m12s
ci / rust (push) Successful in 1m22s
ci / web (push) Successful in 47s
android / android (push) Successful in 3m12s
ci / docs-site (push) Successful in 53s
deb / build-publish (push) Successful in 2m48s
decky / build-publish (push) Successful in 11s
docker / build-push (--build-arg FEDORA_VERSION=44, ci, ci/fedora-rpm.Dockerfile, punktfunk-fedora44-rpm) (push) Successful in 6s
docker / build-push (., web/Dockerfile, punktfunk-web) (push) Successful in 4s
docker / build-push (ci, ci/fedora-rpm.Dockerfile, punktfunk-fedora-rpm) (push) Successful in 3s
docker / build-push (ci, ci/rust-ci.Dockerfile, punktfunk-rust-ci) (push) Successful in 5s
docker / build-push (docs-site, docs-site/Dockerfile, punktfunk-docs) (push) Successful in 4s
ci / bench (push) Successful in 4m50s
rpm / build-publish (bazzite, punktfunk-fedora-rpm) (push) Successful in 8m29s
docker / deploy-docs (push) Successful in 5s
rpm / build-publish (fedora-44, punktfunk-fedora44-rpm) (push) Successful in 8m14s

The installer's vendored driver binary (packaging/windows/pf-vdisplay/) was STALE — built from the OLD
oracle tree (packaging/windows/vdisplay-driver/, wdf-umdf, SudoVDA-compat GUID), so it was
ABI-mismatched with the host (which opens the owned proto GUID 70667664). Re-vendor it from the NEW
drivers/ tree so the rewrite's ACTUAL driver is what the installer ships.

Built RELEASE on the RTX box from the new tree + the new .inx: cargo build --release -p pf-vdisplay ->
FORCE_INTEGRITY clear -> stampinf (DriverVer 06/25/2026,9.5.0625.1614, > the old 06/22) -> Inf2Cat
/os:10_X64 -> signtool sign the .cat with punktfunk-ds-test (.cat sig Valid). Replaces the stale
.dll/.inf/.cat; the .cer is unchanged (same cert).

ON-GLASS VALIDATED (install-test): pnputil /add-driver /install the release package -> clean WUDFHost
reload -> Status=OK, init_adapter -> IddCxAdapterInitAsync -> 0x0 (FP16 accepted),
IddCxMonitorCreate(id=1) -> 0x0. The shipping installer now installs + loads the real wdk-sys
proto-GUID driver, FP16/HDR-capable, monitor-create working.

Remaining STEP 8 (recorded in memory, deferred): re-point the stale "built from vdisplay-driver/"
comments in stage-pf-vdisplay.ps1 / pack-host-installer.ps1 / packaging README; selector default ->
pf-vdisplay unconditional; CI build-sign-or-stale-vendored drift guard; then DELETE the oracle tree.
KEEP sudovda.rs (runtime fallback + the backend-neutral CCD helpers pf_vdisplay.rs reuses) and the
WGC-relay/DDA secure path (the secure-desktop lock/UAC gate is not yet proven on glass for IDD-push).

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