CI: stop overriding the UMDF version pinned in MttVDD.vcxproj - #504
Open
a-struzhanskyi wants to merge 1 commit into
Open
CI: stop overriding the UMDF version pinned in MttVDD.vcxproj#504a-struzhanskyi wants to merge 1 commit into
a-struzhanskyi wants to merge 1 commit into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
The "Detect UMDF version" step in the build workflow auto-selects the highest UMDF minor version folder found on the runner's WDK install and force-passes it to msbuild, overriding the
UMDF_VERSION_MINORalready set inMttVDD.vcxproj.A recent run picked UMDF 2.35, which is not a released version:
https://github.com/VirtualDrivers/Virtual-Display-Driver/actions/runs/27986913997/job/82830479936
Installing the resulting artifact produces this in the Windows Event Log:
This causes two separate problems:
MttVDD.vcxprojintends — silently narrowing OS compatibility without anyone noticing, since the build succeeds either way.Why this matters beyond the immediate error
UMDF version compatibility is one-directional — a driver built against version X requires framework X or newer on the host, it does not run on anything older. Per Microsoft's own UMDF Version History:
The
2.35header/lib folder exists on the runner because the WDK ships headers for upcoming UMDF minor versions ahead of the matching OS-side framework component actually being released — the folder being present on disk doesn't mean any shipped Windows build recognizes a driver built against it. Picking "highest folder found" conflates the two.MttVDD.vcxprojcurrently pinsUMDF_VERSION_MINOR=25— this is already the deliberate, broad-compatibility choice (Windows 10 1803+). Letting CI auto-substitute a newer version, released or not, would either break loading entirely (as seen above) or silently cut compatibility down to a much narrower set of Windows versions, with no failure anywhere in the pipeline to flag the regression.Fix
Remove the "Detect UMDF version" step and the
/p:UMDF_VERSION_MINORoverride from the msbuild call. The version declared inMttVDD.vcxprojis used as-is; CI is only responsible for pointing msbuild at where the SDK/WDK live, not for choosing which UMDF version to target.Testing