HvlpCheckTscSync
VOID __stdcall HvlpCheckTscSync(){
_DWORD *v0;
_QWORD *v1;
__int16 v2;
PHYSICAL_ADDRESS v3[2];
__int128 v4;
PHYSICAL_ADDRESS PageInfo[2];
__int128 v6;
__int128 v7;
__int64 v8;
_EVENT_DATA_DESCRIPTOR UserData;
__int64 *v10;
__int64 v11;
char StackBuffer[16];
char v13[2064];
v8 = 0i64;
*(_OWORD *)&PageInfo[0].anonymous_0.LowPart = 0i64;
v6 = 0i64;
*(_OWORD *)&v3[0].anonymous_0.LowPart = 0i64;
v4 = 0i64;
v7 = 0i64;
v0 = HvlpAcquireHypercallPage(PageInfo, 1ui64, StackBuffer, 8ui64);
v1 = HvlpAcquireHypercallPage(v3, 2ui64, v13, 0x408ui64);
*v0 = 14;
HvcallInitiateHypercall();
if( !v2 )
{
v7 = *(_OWORD *)v1;
v8 = v1[2];
}
HvlpReleaseHypercallPage((_HVLP_HYPERCALL_PAGE_INFO *)v3);
HvlpReleaseHypercallPage((_HVLP_HYPERCALL_PAGE_INFO *)PageInfo);
if( BYTE1(v7) )
{
if( (_BYTE)v7 )
{
*(_QWORD *)&UserData.Size = 8i64;
UserData.Ptr = (unsigned __int64)&v7 + 8;
v11 = 8i64;
v10 = &v8;
HvlpWriteEventLog(&HV_EVENTLOG_TSC_SYNC_FAILED, 2u, &UserData);
}
}
}Referenced by:
HvlPhase2Initialize
HvlpPowerStateCallback