IoFreeMdl

VOID *__stdcall IoFreeMdl(PMDL Mdl){
  __int16 MdlFlags; 
  __int64 AllocationProcessorNumber; 
  struct _KPRCB *CurrentPrcb; 
  _GENERAL_LOOKASIDE *P; 

  MdlFlags = Mdl->MdlFlags;
  if( (MdlFlags & 0x20) != 0 )
  {
    MmUnmapLockedPages(Mdl->MappedSystemVa, Mdl);
    MdlFlags = Mdl->MdlFlags;
  }
  if( (MdlFlags & 8) == 0 )
    return ExFreePoolWithTag(Mdl, 0);
  AllocationProcessorNumber = Mdl->AllocationProcessorNumber;
  if( (unsigned int)AllocationProcessorNumber >= (unsigned int)KeNumberProcessors_0 )
  {
    CurrentPrcb = 0i64;
  }
  else
  {
    _mm_lfence();
    CurrentPrcb = *(&KiProcessorBlock + AllocationProcessorNumber);
  }
  if( !CurrentPrcb )
    CurrentPrcb = KeGetCurrentPrcb();
  P = CurrentPrcb->PPLookasideList[3].P;
  ++P->TotalFrees;
  if( LOWORD(P->ListHead.Alignment) < P->Depth )
    return RtlpInterlockedPushEntrySList(&P->ListHead, (PSLIST_ENTRY)Mdl);
  ++P->FreeMisses;
  P = CurrentPrcb->PPLookasideList[3].L;
  ++P->TotalFrees;
  if( LOWORD(P->ListHead.Alignment) < P->Depth )
    return RtlpInterlockedPushEntrySList(&P->ListHead, (PSLIST_ENTRY)Mdl);
  ++P->FreeMisses;
  return(VOID *)((__int64(__fastcall *)(PMDL))P->FreeEx)(Mdl);
}

Referenced by:

AlpcpFreeCompletionList
AlpcpInitializeCompletionList
CcCopyBytesToUserBuffer
CcLockSystemCacheBuffer
CcMapAndCopyInToCache
CcMdlReadComplete2
CcMdlWriteAbort
CcMdlWriteComplete2
CcZeroDataInCache
FsRtlpFreeMdlChain
HalBuildMdlFromScatterGatherListV2
HalBuildMdlFromScatterGatherListV3
HalFlushAdapterBuffersEx
HalMapTransferEx
HalPutScatterGatherList
HalPutScatterGatherListV3
HalpDmaCheckMdlAccessibility
HalpDmaFreeChildAdapter
HvlGetCoverageData
HvlpDynamicUpdateMicrocode
IopCleanupFileObjectIosbRange
IopDropIrp
IopExceptionCleanup
IopLiveDumpFreeMappingResources
IopSetFileObjectIosbRange
IopfCompleteRequest
MiApplyImageHotPatch
MiDeleteImageCreationMdls
MiLockAndMapEntireDriver
MiMapHotPatchImageInSystemSpace
MiReleaseHotPatchResources
MiUnlockEntireDriver
MiZeroPageWrite
NT_DISK::Read
NT_DISK::Write
NtFreeUserPhysicalPages
NtPssCaptureVaSpaceBulk
PnprFreeMappingReserve
PopReadPagesFromHiberFile
ViAllocateMapRegisterFile
ViFreeMapRegisterFile
WbMakeUserDataPagesKernelWritable
WbMakeUserExecutablePagesKernelWritable
sub_14064F46C