Sine Striker
2023-12-11 acece00ae291d143c3b712a98814a64b9dd43f14
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include "qwindowkit_windows.h"
 
namespace QWK {
 
    typedef NTSTATUS(WINAPI *RtlGetVersionPtr)(PRTL_OSVERSIONINFOW);
 
    RTL_OSVERSIONINFOW GetRealOSVersion() {
        HMODULE hMod = GetModuleHandleW(L"ntdll.dll");
        if (hMod) {
            auto fxPtr = reinterpret_cast<RtlGetVersionPtr>(GetProcAddress(hMod, "RtlGetVersion"));
            if (fxPtr != nullptr) {
                RTL_OSVERSIONINFOW rovi = {0};
                rovi.dwOSVersionInfoSize = sizeof(rovi);
                if (0 == fxPtr(&rovi)) {
                    return rovi;
                }
            }
        }
        RTL_OSVERSIONINFOW rovi = {0};
        return rovi;
    }
 
}