Thanks.
IsWindowsVersionOrGreater(10,0,1607) always returns false
Only IsWindowsVersionOrGreater(10,0,0) is a valid call. (There are no service packs in Windows 10.)
I haven't found a way to determine the Windows 10 release ID.
The RtlGetVersion function returns dwBuildNumber = 19042 on my Windows.
I heard that Microsoft does not support older versions of Windows 10 and requires a mandatory update.
Victor Spirin
Postgres Professional:http://www.postgrespro.com
The Russian Postgres Company
23.09.2021 14:18, Juan José Santamaría Flecha пишет:
I checked the pgrename_windows_posix_semantics() function on Windows 7.
It returns error 87: Parameter is incorrect. Hence, it is necessary to
check the Windows version and call the old pgrename function for old
Windows.
The FILE_RENAME_FLAGs are available starting from Windows 10 Release id 1607, NTDDI_WIN10_RS1. The check should be using something like IsWindowsVersionOrGreater(10, 0, 1607). Or you could test this using RtlGetVersion(), loading it from ntdll infrastructure coming from stat() patch [1], which doesn't need a manifest.
Regards,
Juan José Santamaría Flecha