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.