Skip to content

Loading…

Call RtlGetVersion out of ntdll.dll to get OS version #4061

Closed
wixbot opened this Issue · 7 comments

1 participant

@wixbot

GetVersion(Ex) requires that the EXE be manifested to declare explicit support for the OS on which it's installing. This may not be what people want. Instead, you can GetProcAddress() "RtlGetVersion" from ntdll.dll and get the OS version without requiring the EXE to be manifested.

Originally opened by heaths from http://sourceforge.net/p/wix/bugs/3345/

@wixbot

Because we have to keep manifesting bundles just to support newer versions of Windows. It's a mundane task that can be avoided with RtlGetVersion. Besides, while it may be uncommon to require detecting for newer versions of an OS that haven't even shipped yet, some people may want to block on them because they haven't been tested. If Burn isn't manifested accordingly early enough, GetVersion(Ex) lies and the product that should block now gets installed on the newer OS that hasn't yet been tested.

@wixbot

Why is this better than explicit manifesting or the IsWindows*OrGreater helpers?

@wixbot

We have to continue to manifest the Burn stub so this change would be to get correct VersionNT[64] values for OSes before they're publicly released and the new compatibility guids are documented and added to the stub. So I'm fine with this change in v3.x if implementing it were to scratch someone's itch.

Originally posted by barnson
Release changed from v4.0 to v3.8

@wixbot

Originally changed by bmurri
AssignedTo set to wixsupport

@wixbot

Blair, any progress?

Originally posted by barnson
Area set to burn

@wixbot

I believe I have this correctly scoped and I'll have a fix ready this weekend.

Originally posted by bmurri

@wixbot

Committed by barnson 9 hours ago. Commit d239a866a40b.

Originally posted by bmurri
Resolution set to fixed
Status changed from Open to Resolved

@wixbot wixbot added bug burn labels
@wixbot wixbot added this to the v3.8 milestone
@wixbot wixbot closed this
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.