HvlpLogGuestStateScrubbingStatus
VOID __stdcall HvlpLogGuestStateScrubbingStatus(){
_DWORD *v0;
int *v1;
__int16 v2;
unsigned int v3;
int v4;
unsigned int v5;
unsigned int v6;
unsigned int v7;
unsigned int v8;
unsigned int v9;
unsigned int v10;
unsigned int v11;
unsigned int v12;
unsigned int v13;
__int128 v14;
__int128 v15;
PHYSICAL_ADDRESS PageInfo_8[4];
_EVENT_DATA_DESCRIPTOR v17;
unsigned int *v18;
__int64 v19;
unsigned int *v20;
__int64 v21;
unsigned int *v22;
__int64 v23;
_EVENT_DATA_DESCRIPTOR UserData;
unsigned int *v25;
__int64 v26;
unsigned int *v27;
__int64 v28;
unsigned int *v29;
__int64 v30;
unsigned int *v31;
__int64 v32;
unsigned int *v33;
__int64 v34;
unsigned int *v35;
__int64 v36;
unsigned int *v37;
__int64 v38;
char StackBuffer[16];
char v40[2064];
HvlpGuestStateScrubbingStatus = 0;
memset(PageInfo_8, 0, sizeof(PageInfo_8));
v14 = 0i64;
v15 = 0i64;
v0 = HvlpAcquireHypercallPage(PageInfo_8, 1ui64, StackBuffer, 8ui64);
v1 = (int *)HvlpAcquireHypercallPage((PHYSICAL_ADDRESS *)&v14, 2ui64, v40, 0x408ui64);
*v0 = 25;
HvcallInitiateHypercall();
if( !v2 )
HvlpGuestStateScrubbingStatus = *v1;
HvlpReleaseHypercallPage((_HVLP_HYPERCALL_PAGE_INFO *)&v14);
HvlpReleaseHypercallPage((_HVLP_HYPERCALL_PAGE_INFO *)PageInfo_8);
if( HvlpGuestStateScrubbingStatus )
{
*(_QWORD *)&UserData.Size = 4i64;
v26 = 4i64;
v4 = HvlpGuestStateScrubbingStatus & 1;
UserData.Ptr = (unsigned __int64)&v4;
v28 = 4i64;
v30 = 4i64;
v3 = ((unsigned int)HvlpGuestStateScrubbingStatus >> 1) & 1;
v25 = &v3;
v32 = 4i64;
v5 = ((unsigned int)HvlpGuestStateScrubbingStatus >> 2) & 1;
v27 = &v5;
v34 = 4i64;
v6 = ((unsigned int)HvlpGuestStateScrubbingStatus >> 3) & 1;
v29 = &v6;
v36 = 4i64;
v7 = ((unsigned int)HvlpGuestStateScrubbingStatus >> 4) & 1;
v31 = &v7;
v38 = 4i64;
v8 = ((unsigned int)HvlpGuestStateScrubbingStatus >> 5) & 1;
v33 = &v8;
v9 = ((unsigned int)HvlpGuestStateScrubbingStatus >> 7) & 1;
v10 = ((unsigned int)HvlpGuestStateScrubbingStatus >> 8) & 1;
v35 = &v9;
v37 = &v10;
HvlpWriteEventLog(&HV_EVENTLOG_GUEST_STATE_SCRUBBING, 8u, &UserData);
*(_QWORD *)&v17.Size = 4i64;
v11 = ((unsigned int)HvlpGuestStateScrubbingStatus >> 11) & 1;
v17.Ptr = (unsigned __int64)&v11;
v19 = 4i64;
v3 = ((unsigned int)HvlpGuestStateScrubbingStatus >> 1) & 1;
v18 = &v3;
v21 = 4i64;
v12 = ((unsigned int)HvlpGuestStateScrubbingStatus >> 9) & 1;
v20 = &v12;
v22 = &v13;
v13 = ((unsigned int)HvlpGuestStateScrubbingStatus >> 10) & 1;
v23 = 4i64;
HvlpWriteEventLog(&HV_EVENTLOG_MDS_MITIGATION_STATUS, 4u, &v17);
if( (HvlpGuestStateScrubbingStatus & 0x40) != 0 )
HvlpWriteEventLog(&HV_EVENTLOG_GUEST_STATE_SCRUBBING_DISABLED_CORE_SCHEDULER, 0, 0i64);
}
}Referenced by:
HvlPhase2Initialize