MiMarkMdlComplete
VOID __stdcall MiMarkMdlComplete(_MDL *Mdl, _MMVAD_SHORT *Vad, INT64 a3){
__int64 ********LockedVadEvent;
__int64 v4;
_QWORD *v5;
unsigned __int64 v6;
unsigned int v7;
__int64 *******i;
_MMPFN *v9;
unsigned __int64 v10;
bool v11;
LockedVadEvent = MiLocateLockedVadEvent((__int64)Vad, 8);
v5 = (_QWORD *)(v4 + 48);
v6 = (unsigned __int64)*(unsigned int *)(v4 + 40) >> 12;
v7 = 0;
for( i = LockedVadEvent[1]; v7 < v6; ++v5 )
{
v9 = &MmGetPfnDb()[*v5];
v10 = MiLockPageInline(v9);
*((_BYTE *)&v9->u3 + 2) |= 0x10u;
*((_BYTE *)&v9->u3 + 2) &= ~0x20u;
v9->u1.$976DF529DAC3D73085C9E386D94B91E6::$E228DCF3D8940E384DBC5EFCA756D8B6::_bf_0 = 0i64;
_InterlockedAnd64(&v9->u2.Lock, 0x7FFFFFFFFFFFFFFFui64);
__writecr8(v10);
++v7;
}
i[11] = 0i64;
v11 = *((_DWORD *)i + 44) <= 1;
*((_DWORD *)i + 20) = -1073741670;
if( !v11 )
KeSetEvent((PRKEVENT)(i + 7), 0, 0);
}Referenced by:
MmRotatePhysicalView