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