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