Wrong Windows version reported for Windows 8.1
|User & Date:||apnadkarni 2014-01-30 15:55:18|
- Change assignee to "nobody"
- Change closer to "nobody"
- Change cmimetype to "text/plain"
- Change comment to:
On Windows 8.1, tcl_platform(osVersion) is reported as 6.2 even though it is actually 6.3. This is due to a change in behaviour of the GetVersionEx Win32 API which reports 6.2 if the exe does not contain a manifest.
Jan has fixed this in the trunk by adding the appropriate manifest. However, this is not a permanent fix. When Windows 8.2 (or whatever) rolls around, the manifest will have to change AGAIN and existing tclsh would still be broken.
Moreover, the manifest fix only fixes tclsh and wish, not when the tcl dll is loaded from other executables.
Therefore, a better fix might be to use the undocumented RtlGetVersion function which returns the real OS version. It has the same interface as GetVersionEx (the returned struct is the same though typedef'ed differently), but has to be loaded dynamically from ntdll.dll. This will permanently solve the problem for future versions and all executables that load the tcl dll (unless Microsoft breaks that function in the future as well).
See http://wixtoolset.org/issues/4061/ and http://msdn.microsoft.com/en-us/library/windows/hardware/ff561910(v=vs.85).aspx
- Change foundin to "8.6.1"
- Change is_private to "0"
- Change login to "apnadkarni"
- Change priority to "5 Medium"
- Change resolution to "None"
- Change severity to "Minor"
- Change status to "Open"
- Change submitter to "apnadkarni"
- Change subsystem to "69. Other"
- Change title to "Wrong Windows version reported for Windows 8.1"
- Change type to "Bug"