如何在 WINAPI 中获取 Windows 10 内部版本、修订号?

sn *_*n h 6 winapi

我想使用 WINAPI 在 Windows 10 上获取构建版本。当前窗口版本:10.0.19042.685

我尝试使用 WMI 查询来获取它。

select Version, BuildNumber from Win32_OperatingSystem.
-> Version: 10.0.19042, BuildNumber: 19042
Run Code Online (Sandbox Code Playgroud)

我尝试通过调用 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
Run Code Online (Sandbox Code Playgroud)

我无法使用 WMI 查询和 RtlGetVerion() API 获取修订号。

我想从“10.0.19042.685”获取“685”。

如何使用 WINAPI 获取 Windows 内部版本、修订号?