The main problem here is that Windows 11 is a Windows 10++, and there is no function like IsWindows10OrGreater().
This forced us to write down our own IsWindows11OrGreater().
I want to write a function similar to the existing IsWindows*() using VerifyVersionInfo().
Here is the working body of such a function:
BOOL IsWindows11OrGreater() { OSVERSIONINFOEX vi; ULONGLONG conditions; memset (&vi, 0, sizeof(vi)); vi.dwOSVersionInfoSize = sizeof(vi); vi.dwMajorVersion = 10; vi.dwMinorVersion = 0; vi.dwBuildNumber = 21996; conditions = VerSetConditionMask (0, VER_MAJORVERSION, VER_GREATER_EQUAL); conditions = VerSetConditionMask (conditions, VER_MINORVERSION, VER_GREATER_EQUAL); conditions = VerSetConditionMask (conditions, VER_BUILDNUMBER, VER_GREATER_EQUAL); return VerifyVersionInfo (&vi, VER_MAJORVERSION | VER_MINORVERSION | VER_BUILDNUMBER, conditions) != FALSE; }
Good Luck