KeRemoveQueueEntry

UINT8 __stdcall KeRemoveQueueEntry(_KQUEUE *Queue, _LIST_ENTRY *Entry){
  UINT8 v4; 
  unsigned __int8 CurrentIrql; 
  _LIST_ENTRY *Flink; 
  _LIST_ENTRY *Blink; 
  v4 = 0;
  CurrentIrql = KeGetCurrentIrql();
  __writecr8(2ui64);
  KiAcquireKobjectLockSafe(Queue);
  if( Entry->Flink )
  {
    --Queue->Header.SignalState;
    Flink = Entry->Flink;
    Blink = Entry->Blink;
    if( Entry->Flink->Blink != Entry || Blink->Flink != Entry )
      __fastfail(3u);
    Blink->Flink = Flink;
    v4 = 1;
    Flink->Blink = Blink;
  }
  _InterlockedAnd(&Queue->Header.Lock, 0xFFFFFF7F);
  __writecr8(CurrentIrql);
  return v4;
}

Referenced by:

IopCancelWaitCompletionPacket