PpmEndHighPerfRequest

NTSTATUS __stdcall PpmEndHighPerfRequest(PPM_HIGH_PERF_DURATION_TYPE RequestType){
  __int64 v1; 
  unsigned __int64 v2; 
  __int64 v3; 
  __int64 v4; 
  NTSTATUS result; 

  v1 = RequestType;
  v2 = (unsigned __int8)KeAcquireSpinLockRaiseToDpc((UINT64 *)&stru_140C23628 + 269);
  if( !PpmHighPerfDuration[v1] || PpmHighPerfDeferredEndDisabled )
  {
    PoClearPowerRequestInternal(*(&stru_140C23628 + 287), PowerRequestPerfBoostRequiredInternal);
  }
  else
  {
    ++PpmHighPerfDeferredEndCount;
    v3 = (unsigned int)(10000 * PpmHighPerfDuration[v1]);
    v4 = PpmHighPerfDeferredEndTime;
    if( PpmHighPerfDeferredEndTime <= (unsigned __int64)(v3 + *(_QWORD *)&KUSER_SHARED_DATA.InterruptTime.LowPart) )
    {
      v4 = v3 + *(_QWORD *)&KUSER_SHARED_DATA.InterruptTime.LowPart;
      PpmHighPerfDeferredEndTime = v3 + *(_QWORD *)&KUSER_SHARED_DATA.InterruptTime.LowPart;
    }
    KiSetTimerEx(
      (_KTIMER *)((char *)&stru_140C23628 + 2168),
      (_LARGE_INTEGER)(*(_QWORD *)&KUSER_SHARED_DATA.InterruptTime.LowPart - v4),
      0i64,
      0,
      (_KDPC *)((char *)&stru_140C23628 + 2232));
  }
  KxReleaseSpinLock((UINT64 *)&stru_140C23628 + 269);
  result = KiIrqlFlags;
  __writecr8(v2);
  return result;
}

Referenced by:

PdcPoPerfOverride
PoClearBroadcast
PopIssueActionRequest
PopSetupHighPerfPowerRequest
PopUserShutdownCancelled