KiWakePriQueueWaiter

UINT8 __stdcall KiWakePriQueueWaiter(_KPRCB *Prcb, _KPRIQUEUE *Queue, INT64 Entry, INT64 Priority){
  _LIST_ENTRY *p_WaitListHead; 
  int v5; 
  _LIST_ENTRY *Flink; 
  _LIST_ENTRY *v9; 
  __int64 v10; 
  _LIST_ENTRY *v11; 
  UINT8 result; 
  p_WaitListHead = &Queue->Header.WaitListHead;
  v5 = Priority;
  Flink = Queue->Header.WaitListHead.Flink;
  do
  {
    v9 = Flink->Flink;
    v10 = (__int64)Flink;
    Flink = v9;
    if( v9->Blink != (_LIST_ENTRY *)v10 || (v11 = *(_LIST_ENTRY **)(v10 + 8), v11->Flink != (_LIST_ENTRY *)v10) )
      __fastfail(3u);
    v11->Flink = v9;
    v9->Blink = v11;
    result = KiTryUnwaitThreadWithPriority((__int64)Prcb, v10, Entry, v5);
  }
  while( !result && Flink != p_WaitListHead );
  return result;
}

Referenced by:

KeInsertPriQueue
KiActivateWaiterPriQueue