MiUnlockFlushMdl

VOID __stdcall MiUnlockFlushMdl(PMDL Mdl, _CONTROL_AREA *ControlArea, _IO_STATUS_BLOCK *IoStatus){
  __int16 MdlFlags; 
  _MI_CONTROL_AREA_WAIT_BLOCK *v7; 

  MdlFlags = Mdl->MdlFlags;
  if( (MdlFlags & 0x200) != 0 )
  {
    MiRetardMdl(Mdl);
    MdlFlags = Mdl->MdlFlags;
  }
  if( (MdlFlags & 1) != 0 )
    MmUnmapLockedPages(Mdl->MappedSystemVa, Mdl);
  MiUnlockMdlWritePages(
    (UINT64 *)&Mdl[1],
    (UINT64 *)&Mdl[1].Next
  + ((Mdl->ByteCount + 4095i64 + (unsigned __int64)((LODWORD(Mdl->StartVa) + Mdl->ByteOffset) & 0xFFF)) >> 12),
    IoStatus);
  v7 = MiDecrementModifiedWriteCount(ControlArea, 0i64);
  if( v7 )
    MiReleaseControlAreaWaiters(v7);
}

Referenced by:

MiFlushSectionInternal