KiActivateWaiterPriQueue

VOID __stdcall KiActivateWaiterPriQueue(_KPRIQUEUE *Queue, _ETHREAD *Thread){
  _LIST_ENTRY *v3; 
  _LIST_ENTRY *v4; 
  _LIST_ENTRY *v5; 
  _LIST_ENTRY *Flink; 
  INT64 WorkPriority; 
  HIDWORD(WorkPriority) = HIDWORD(Thread);
  LODWORD(WorkPriority) = 0;
  if( Queue->Header.WaitListHead.Flink != &Queue->Header.WaitListHead )
  {
    if( Queue->Header.SignalState )
    {
      v3 = KiAttemptFastRemovePriQueue(Queue, &WorkPriority, 0xFFFFFFFFi64);
      v4 = v3;
      if( v3 )
      {
        if( !KiWakePriQueueWaiter(KeGetCurrentPrcb(), Queue, (INT64)v3, (unsigned int)WorkPriority) )
        {
          ++Queue->Header.SignalState;
          v5 = &Queue->EntryListHead[(int)WorkPriority];
          Flink = v5->Flink;
          if( v5->Flink->Blink != v5 )
            __fastfail(3u);
          v4->Flink = Flink;
          v4->Blink = v5;
          Flink->Blink = v4;
          v5->Flink = v4;
        }
      }
    }
  }
  _InterlockedAnd(&Queue->Header.Lock, 0xFFFFFF7F);
}

Referenced by:

KiActivateWaiterQueueWithNoLocks
KiCommitThreadWait
KiPriQueueThreadPriorityChanged