ExpRemoveGeneralLookaside

VOID __stdcall ExpRemoveGeneralLookaside(UINT64 *ListLock, _GENERAL_LOOKASIDE_POOL *Lookaside){
  _LIST_ENTRY *p_ListEntry; 
  unsigned __int64 v5; 
  _LIST_ENTRY *Flink; 
  _LIST_ENTRY *Blink; 

  p_ListEntry = &Lookaside->ListEntry;
  v5 = (unsigned __int8)KeAcquireSpinLockRaiseToDpc(ListLock);
  Flink = p_ListEntry->Flink;
  Blink = Lookaside->ListEntry.Blink;
  if( p_ListEntry->Flink->Blink != &Lookaside->ListEntry || Blink->Flink != p_ListEntry )
    __fastfail(3u);
  Blink->Flink = Flink;
  Flink->Blink = Blink;
  KxReleaseSpinLock(ListLock);
  __writecr8(v5);
  Lookaside->Depth = 0;
  p_ListEntry->Flink = (_LIST_ENTRY *)MmBadPointer;
}

Referenced by:

ExDeleteLookasideListEx
ExDeleteNPagedLookasideList
ExDeletePagedLookasideList