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