PpmIdleGuestPreExecute
NTSTATUS __stdcall PpmIdleGuestPreExecute(
VOID *Context,
UINT64 ProcessorState,
UINT64 PlatformState,
UINT64 CoordinatedSelectionCount,
UINT64 *CoordinatedSelection){
int v5;
NTSTATUS v6;
NTSTATUS result;
__int64(__fastcall *v8)(VOID *, __int64, _QWORD, UINT64, UINT64 *);
v5 = PlatformState;
if( (_DWORD)PlatformState == -1 )
return 0;
v8 = *(__int64(__fastcall **)(VOID *, __int64, _QWORD, UINT64, UINT64 *))(PpmPlatformStates + 24);
if( !v8 )
{
v6 = 0;
LABEL_8:
if( KeGetCurrentPrcb()->PowerState.Hypervisor >= ProcHypervisorPower && v5 == PpmDripsStateIndex )
HvlSetPlatformIdleState(1ui64);
return v6;
}
result = v8(Context, 0xFFFFFFFFi64, (unsigned int)PlatformState, CoordinatedSelectionCount, CoordinatedSelection);
v6 = result;
if( result >= 0 )
goto LABEL_8;
return result;
}Referenced by:
No references.