MiFreeInPageSupportBlock

VOID __stdcall MiFreeInPageSupportBlock(_MMINPAGE_SUPPORT *Support){
  _MMINPAGE_SUPPORT *PrefetchMdl; 

  if( (struct _KTHREAD *)Support->Thread == KeGetCurrentThread() && Support->Autoboost )
    KeAbPostRelease(Support);
  if( _InterlockedExchangeAdd(&Support->WaitCount, 0xFFFFFFFF) == 1 )
  {
    PrefetchMdl = (_MMINPAGE_SUPPORT *)Support->PrefetchMdl;
    if( PrefetchMdl && PrefetchMdl != (_MMINPAGE_SUPPORT *)&Support->Mdl )
      ExFreePoolWithTag(PrefetchMdl, 0);
    if( !MiInsertInPageBlock((PSLIST_ENTRY)Support) )
      ExFreePoolWithTag(Support, 0);
  }
}

Referenced by:

MiAllocateInPageSupport
MiFaultGetFileExtents
MiFinishHardFault
MiFreeRotateVadEvent
MiGetReadyInPageBlock
MiHandleTransitionFault
MiPfAllocateMdls
MiPfPutPagesInTransition
MiPrivateFixup
MiResolveMappedFileFault
MiResolvePageFileFault
MiResolveTransitionFault
MiWaitForCollidedFaultComplete
MmPrefetchPagesEx