KiWakePriQueueWaiter

UINT8 __stdcall KiWakePriQueueWaiter(_KPRCB *Prcb, _KPRIQUEUE *Queue, INT64 Entry, INT64 Priority){
  _KWAIT_BLOCK *v4; 
  unsigned int v5; 
  _KWAIT_BLOCK *v6; 
  _LIST_ENTRY *Flink; 
  _KWAIT_BLOCK *v10; 
  _LIST_ENTRY *Blink; 
  UINT8 result; 

  v4 = (_KWAIT_BLOCK *)((char *)Queue + 8);
  v5 = Priority;
  v6 = (_KWAIT_BLOCK *)*((_QWORD *)Queue + 1);
  do
  {
    Flink = v6->WaitListEntry.Flink;
    v10 = v6;
    v6 = (_KWAIT_BLOCK *)Flink;
    if( (_KWAIT_BLOCK *)Flink->Blink != v10 || (Blink = v10->WaitListEntry.Blink, (_KWAIT_BLOCK *)Blink->Flink != v10) )
      __fastfail(3u);
    Blink->Flink = Flink;
    Flink->Blink = Blink;
    result = KiTryUnwaitThreadWithPriority(Prcb, v10, Entry, v5);
  }
  while( !result && v6 != v4 );
  return result;
}

Referenced by:

KeInsertPriQueue
KiActivateWaiterPriQueue