Details
-
Bug
-
Resolution: Won't Fix
-
Major
-
None
-
None
Description
GetVersionEx() is "broken" since Windows 8.1:
Applications not manifested for Windows 8.1 or Windows 10 will return the Windows 8 OS version value (6.2). Once an application is manifested for a given operating system version, GetVersionEx will always return the version that the application is manifested for in future releases.
(MSDN / GetVersionEx function)
MSDN advises the following to get real Windows version:
To obtain the full version number for the operating system, call the GetFileVersionInfo function on one of the system DLLs, such as Kernel32.dll
(MSDN / Getting the System Version)
kernel32.dll in ReactOS has version of ReactOS (e.g. 0.4.8). And this might be a problem.
Such a dirty way of determining Windows version is used in HotSpot (Java Virtual Machine). Hopefully this code is used primary for printing crash logs but it is a sign that reading version of kernel32.dll is really used in applications. Example of crash log (hs_err_pid***.log):
...
|
--------------- S Y S T E M ---------------
|
|
OS: Windows 0.4 Build 8 (0.4.8.0)
|
|
CPU:total 1 (1 cores per cpu, 1 threads per core) family 16 model 10 stepping 0, cmov, cx8, fxsr, mmx, sse, sse2, sse3, popcnt, mmxext, 3dnowpref, lzcnt, sse4a, tsc
|
|
Memory: 4k page, physical 523808k(61796k free), swap 1309520k(1023380k free)
|
|
vm_info: Java HotSpot(TM) Client VM (25.40-b25) for windows-x86 JRE (1.8.0_40-b25), built on Feb 10 2015 21:08:16 by "java_re" with MS VC++ 10.0 (VS2010)
|