RtlGetVersion
INT64 __stdcall RtlGetVersion(POSVERSIONINFOW lpVersionInformation){
DWORD v2;
__int16 v3;
bool v4;
__int16 SuiteMask;
enum _NT_PRODUCT_TYPE ProductType;
*(_QWORD *)&lpVersionInformation->dwMajorVersion = 10i64;
lpVersionInformation->dwBuildNumber = (unsigned __int16)NtBuildNumber;
v2 = lpVersionInformation->dwOSVersionInfoSize - 284;
ProductType = 0;
lpVersionInformation->dwPlatformId = 2;
if( (v2 & 0xFFFFFFF7) == 0 )
{
LOWORD(lpVersionInformation[1].dwOSVersionInfoSize) = BYTE1(CmNtCSDVersion);
v3 = (unsigned __int8)CmNtCSDVersion;
LOWORD(lpVersionInformation[1].dwMajorVersion) = 0;
v4 = *(_DWORD *)InitializationPhase == 0;
HIWORD(lpVersionInformation[1].dwOSVersionInfoSize) = v3;
BYTE2(lpVersionInformation[1].dwMajorVersion) = 0;
if( !v4 )
{
if( RtlGetNtProductType(&ProductType) )
BYTE2(lpVersionInformation[1].dwMajorVersion) = ProductType;
SuiteMask = RtlGetSuiteMask();
v4 = lpVersionInformation->dwOSVersionInfoSize == 292;
LOWORD(lpVersionInformation[1].dwMajorVersion) = SuiteMask;
if( v4 )
lpVersionInformation[1].dwMinorVersion = RtlGetSuiteMask() & 0x1FFFF;
}
HIBYTE(lpVersionInformation[1].dwMajorVersion) = 0;
}
return 0i64;
}Referenced by:
EtwpTraceSystemInitialization
RtlVerifyVersionInfo
SdbpMatchOsVersion
SymCryptInitEnvWindowsKernelmodeWin8_1nLater
SysCtxOpenMachine
Win7RtlGetVersion
Win81RtlGetVersion
Win8RtlGetVersion