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

v4.0
migrated
nobody
None
2013-08-21
2013-07-18
No

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.

Discussion

  • Bob Arnson

    Bob Arnson - 2013-07-19

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

     
  • Heath Stewart

    Heath Stewart - 2013-07-24

    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.

     
  • Rob Mensching

    Rob Mensching - 2013-08-21
    • Status: open --> migrated