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.