FsRtlDeleteTunnelCache
VOID __stdcall FsRtlDeleteTunnelCache(TUNNEL *Cache){
LIST_ENTRY *p_TimerQueue;
TUNNEL *Flink;
TUNNEL *v3;
LIST_ENTRY *v4;
if( TunnelMaxEntries )
{
p_TimerQueue = &Cache->TimerQueue;
Cache->Cache = 0i64;
Cache->NumEntries = 0;
Flink = (TUNNEL *)Cache->TimerQueue.Flink;
if( Flink != (TUNNEL *)&Cache->TimerQueue )
{
do
{
v3 = *(TUNNEL **)&Flink->Mutex.Count;
v4 = &Flink[-1].TimerQueue;
if( ((__int64)Flink->Mutex.Event.Header.WaitListHead.Flink & 1) != 0 )
ExFreePoolWithTag(v4, 0);
else
ExFreeToNPagedLookasideList((NPAGED_LOOKASIDE_LIST *)TunnelLookasideList, v4);
Flink = v3;
}
while( v3 != (TUNNEL *)p_TimerQueue );
}
p_TimerQueue->Blink = p_TimerQueue;
p_TimerQueue->Flink = p_TimerQueue;
}
}Referenced by:
No references.