https://bugs.winehq.org/show_bug.cgi?id=44728
--- Comment #3 from Nikolay Sivov bunglehead@gmail.com --- (In reply to GG from comment #2)
On normal case,
getwindowsversion()._platform_version and getwindowsversion()[:3] should return current splitted windows version. (I don't know exactly why python lib use a fallback) HERE : https://github.com/python/cpython/blob/3.5/Python/sysmodule.c#L818 the code of sys.getwindowsversion() for python. Answer seems near.
On Wine (win10 configured) :
getwindowsversion()._platform_version return (5, 1, 2600) (XP version) and getwindowsversion()[:3] return (10, 0, 15063) (good windows 10 version)
According to this source file they are reading into kernel32.dll version resource. This data does not change when you switch reported version for your wineprefix. In order to match one to another we'll need some magic to dynamically adjust version blobs, after system modules are loaded. Right now this won't work obviously. I have no idea what was the motivation to ignore what GetVersionEx() returns, and use proper manifests with compatibility sections.