1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| typedef enum _ENUM_WINDOWS_VERSION { WINDOWS_7 = 0x0610, WINDOWS_7_SP1 = 0x0611, WINDOWS_8 = 0x0620, WINDOWS_8_1 = 0x0630, WINDOWS_10 = 0x0A00,hbnjmbn WINDOWS_10_RS1 = 0x0A01, // Anniversary update WINDOWS_10_RS2 = 0x0A02, // Creators update WINDOWS_10_RS3 = 0x0A03, // Fall creators update WINDOWS_10_RS4 = 0x0A04, // Spring creators update WINDOWS_10_RS5 = 0x0A05, // October 2018 update } ENUM_WINDOWS_VERSION;
RTL_OSVERSIONINFOEXW stOSVersionInfo = { 0 }; stOSVersionInfo.dwOSVersionInfoSize = sizeof(stOSVersionInfo); status = RtlGetVersion((PRTL_OSVERSIONINFOW)&stOSVersionInfo); if (!NT_SUCCESS(status)) return status;
ULONG ulWindowsVersion = (stOSVersionInfo.dwMajorVersion << 8) | (stOSVersionInfo.dwMinorVersion << 4) | stOSVersionInfo.wServicePackMajor;
switch (ulWindowsVersion) { case WINDOWS_7: case WINDOWS_7_SP1: case WINDOWS_10: case WINDOWS_10_RS1: case WINDOWS_10_RS2: case WINDOWS_10_RS3: case WINDOWS_10_RS4: default: break; }
|