Get correct OS version on win 8.1 without using GetVesionEx API (deprecated )

NTSTATUS (WINAPI *RtlGetVersion)(LPOSVERSIONINFOEXW);
OSVERSIONINFOEXW osInfo;

*(FARPROC*)&RtlGetVersion = GetProcAddress(GetModuleHandleA("ntdll"), "RtlGetVersion");

if (NULL != RtlGetVersion)
{
   osInfo.dwOSVersionInfoSize = sizeof(osInfo);
   RtlGetVersion(&osInfo);
}


Use above method on all platform and it will work fine. Where GetOSVersionEx API deprecated by MS and gives wrong result on WIN 8.1. 

Tested above sample on XP to 8,1 and works for me.


There is another alternative of manifest to use GetOSversionEx.

Source: CodeProject 

Comments

Popular posts from this blog

XML Programming using IXMLDOMDOCUMENT in vc++