MiFreeInPageSupportBlock
void __fastcall MiFreeInPageSupportBlock(PSLIST_ENTRY ListEntry){
struct _SLIST_ENTRY *Next;
if( *((struct _KTHREAD **)&ListEntry[9].Next + 1) == KeGetCurrentThread() && *((_QWORD *)&ListEntry[13].Next + 1) )
KeAbPostRelease(ListEntry);
if( _InterlockedExchangeAdd((volatile signed __int32 *)&ListEntry[11], 0xFFFFFFFF) == 1 )
{
Next = ListEntry[16].Next;
if( Next && Next != &ListEntry[17] )
ExFreePoolWithTag(Next, 0);
if( !MiInsertInPageBlock(ListEntry) )
ExFreePoolWithTag(ListEntry, 0);
}
}Referenced by:
MiAllocateInPageSupport
MiFaultGetFileExtents
MiFinishHardFault
MiFreeRotateVadEvent
MiGetReadyInPageBlock
MiHandleTransitionFault
MiPfAllocateMdls
MiPfPutPagesInTransition
MiPrivateFixup
MiResolveMappedFileFault
MiResolvePageFileFault
MiResolveTransitionFault
MiWaitForCollidedFaultComplete
MmPrefetchPagesEx