QWT-NG 4.3.9 (agent 33f3109)
Fixes the withdrawn 4.3.8's regression — root cause confirmed to the mechanism
4.3.8 was withdrawn before anyone downloaded it: upgrading to it silently killed arbitrary
resolutions. Root cause, confirmed by controlled experiment: the driver build left the INF's
DriverVer version to stampinf's default — the build time (HH.MM.SS.ms) — because the
vendored Microsoft sample ships DriverVer= empty with an unfinished TODO. Per Microsoft's own
Driver Versioning spec,
a display driver version's first field declares its WDDM model (21 = WDDM 2.1, 20 = 2.0, …),
and enforcement of the field begins at WDDM 2.1. A 14-package ladder over identical driver bytes
shows a perfect step exactly there: versions 4–20 work, 21–99 break (modes never surfaced,
control ioctl rejected) — so builds made at 21:00 or later declared themselves WDDM-2.1+
drivers and were punished for over-claiming, while earlier-in-the-day builds under-claimed
harmlessly. 4.3.7 was built at 15:51; 4.3.8 at 21:22. Verified further by an alternating
same-version repeat control (works/breaks tracks the declared version perfectly).
DriverVer is now pinned to a sane 4.3.x.y scheme in every build, and the driver DLL carries
a per-build FILEVERSION (it previously had no version resource at all). The installer's IDD
activation also gained an identical-bytes guard and a self-heal for guests that took 4.3.8 —
belt and suspenders; the version pin is the fix.
Carried over from the withdrawn 4.3.8
- Black fullscreen window in AppVMs — should be fixed, field confirmation wanted (forum
42717 post 85): the desktop window itself could be mapped as an unclosable black fullscreen
window when two window filters failed together. A new attribute-based reject catches it
regardless of which filter leg fails; anything it rejects could only ever have rendered as a
black rectangle. Toasts are structurally unmatchable and were verified live. If you saw the
black window: please upgrade and report back. DiagWindowFilterOff(registry DWORD, default 0, diagnostic only): disable individual window
filters to isolate a filter bug with one registry write.- Updater relay deploys reliably on upgrade installs and can never lose the working relay to
a failed compile.
Install
RPM in dom0, or the ISO/tarball inside the template; let the template shut down at the end.
In-place upgrade from any 4.3.x. Hand-created qube? qvm-features <qube> vmexec 1 and
qvm-prefs <qube> qrexec_timeout 1800 in dom0 (on the template; AppVMs inherit) — see the
README.