RtlGetVersion
NTSTATUS __stdcall RtlGetVersion(_OSVERSIONINFOW *lpVersionInformation){
unsigned int v2;
__int16 v3;
bool v4;
__int16 SuiteMask;
int v7;
*(_QWORD *)&lpVersionInformation->dwMajorVersion = 10i64;
lpVersionInformation->dwBuildNumber = (unsigned __int16)NtBuildNumber;
v2 = lpVersionInformation->dwOSVersionInfoSize - 284;
v7 = 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((_NT_PRODUCT_TYPE *)&v7) )
BYTE2(lpVersionInformation[1].dwMajorVersion) = v7;
SuiteMask = RtlGetSuiteMask();
v4 = lpVersionInformation->dwOSVersionInfoSize == 292;
LOWORD(lpVersionInformation[1].dwMajorVersion) = SuiteMask;
if( v4 )
lpVersionInformation[1].dwMinorVersion = RtlGetSuiteMask() & 0x1FFFF;
}
HIBYTE(lpVersionInformation[1].dwMajorVersion) = 0;
}
return 0;
}Referenced by:
EtwpTraceSystemInitialization
RtlVerifyVersionInfo
SdbpMatchOsVersion
SymCryptInitEnvWindowsKernelmodeWin8_1nLater
SysCtxOpenMachine
Win7RtlGetVersion
Win81RtlGetVersion
Win8RtlGetVersion