How can I get a Windows 10 build version, revision number in WINAPI?

Viewed 574

I want to get a build version on Windows 10 using WINAPI. Current Window Version: 10.0.19042.685

I tried to get it using WMI queries.

select Version, BuildNumber from Win32_OperatingSystem.
-> Version: 10.0.19042, BuildNumber: 19042

I tried to get it by calling RtlGetVersion().

HMODULE hMod = ::GetModuleHandleW(L"ntdll.dll");
if (hMod) {
    typedef NTSTATUS(WINAPI* RtlGetVersionPtr)(PRTL_OSVERSIONINFOEXW);
    RtlGetVersionPtr fxPtr = (RtlGetVersionPtr)::GetProcAddress(hMod, "RtlGetVersion");
    if (fxPtr != nullptr) {
        RTL_OSVERSIONINFOEXW rovi = { 0 };
        rovi.dwOSVersionInfoSize = sizeof(rovi);
        if (0 == fxPtr(&rovi)) {
            printf("dwMajorVersion: %lu\n", rovi.dwMajorVersion);
            printf("dwMinorVersion: %lu\n", rovi.dwMinorVersion);
            printf("dwBuildNumber: %lu\n", rovi.dwBuildNumber);
        }
    }
}

dwMajorVersion: 10
dwMinorVersion: 0
dwBuildNumber: 19042

I could not obtain the revision number using WMI query and RtlGetVerion() API.

I want to get '685' from '10.0.19042.685'.

How can I get a Windows build version, revision number using WINAPI?

0 Answers
Related