MiUnlockFlushMdl

void __fastcall MiUnlockFlushMdl(PMDL MemoryDescriptorList, __int64 a2, _DWORD *a3){
  __int16 MdlFlags; 
  _QWORD *v7; 
  MdlFlags = MemoryDescriptorList->MdlFlags;
  if( (MdlFlags & 0x200) != 0 )
  {
    MiRetardMdl(MemoryDescriptorList);
    MdlFlags = MemoryDescriptorList->MdlFlags;
  }
  if( (MdlFlags & 1) != 0 )
    MmUnmapLockedPages(MemoryDescriptorList->MappedSystemVa, MemoryDescriptorList);
  MiUnlockMdlWritePages(
    (UINT64 *)&MemoryDescriptorList[1],
    (UINT64 *)&MemoryDescriptorList[1].Next
  + ((MemoryDescriptorList->ByteCount
    + 4095i64
    + (unsigned __int64)((LODWORD(MemoryDescriptorList->StartVa) + MemoryDescriptorList->ByteOffset) & 0xFFF)) >> 12),
    (IO_STATUS_BLOCK *)a3);
  MiDecrementModifiedWriteCount((_CONTROL_AREA *)a2, 0i64);
  if( v7 )
    MiReleaseControlAreaWaiters(v7);
}

Referenced by:

MiFlushSectionInternal