PpmIdleTransitionStall

NTSTATUS __stdcall PpmIdleTransitionStall(
        _LIST_ENTRY *LoadOrderListHead,
        _RTL_PROCESS_MODULES *ModuleInformation,
        UINT64 ModuleInformationLength,
        UINT64 *ReturnLength){
  LARGE_INTEGER PerformanceCounter; 
  _LIST_ENTRY *Flink; 
  if( LoadOrderListHead->Flink )
  {
    if( ++LODWORD(LoadOrderListHead[1].Blink) == 1000 )
    {
      LODWORD(LoadOrderListHead[1].Blink) = 0;
      PerformanceCounter = (LARGE_INTEGER)(*(_QWORD *)&KeQueryPerformanceCounter(0i64)
                                         - (unsigned __int64)LoadOrderListHead->Flink);
      if( (_LIST_ENTRY *)PerformanceCounter.QuadPart > LoadOrderListHead->Blink )
      {
        Flink = LoadOrderListHead[1].Flink;
        if( Flink )
          KeBugCheckEx(0xA0u, 0x701ui64, HIDWORD(Flink[2051].Flink), (ULONG_PTR)Flink, HIDWORD(Flink[2].Flink));
        KeBugCheckEx(0xA0u, 0x704ui64, 0i64, 0i64, 0i64);
      }
    }
  }
  else
  {
    PerformanceCounter = KeQueryPerformanceCounter(0i64);
    LoadOrderListHead->Flink = (_LIST_ENTRY *)PerformanceCounter.QuadPart;
  }
  if( BYTE4(LoadOrderListHead[1].Blink) )
    _mm_pause();
  _mm_pause();
  return PerformanceCounter.LowPart;
}

Referenced by:

PoInitiateProcessorWake
PpmExitCoordinatedIdleState
PpmIdleCheckCoordinatedDependency
PpmIdleExecuteTransition
PpmIdleWaitForDependentTransitions
PpmTestAndLockProcessor