MiMarkMdlComplete
VOID __stdcall MiMarkMdlComplete(_MDL *Mdl, _MMVAD_SHORT *Vad){
INT64 ***LockedVadEvent;
__int64 v3;
_QWORD *v4;
unsigned __int64 v5;
unsigned int v6;
INT64 **i;
volatile signed __int64 *v8;
unsigned __int64 v9;
bool v10;
LockedVadEvent = MiLocateLockedVadEvent((INT64)Vad, 8i64);
v4 = (_QWORD *)(v3 + 48);
v5 = (unsigned __int64)*(unsigned int *)(v3 + 40) >> 12;
v6 = 0;
for( i = LockedVadEvent[1]; v6 < v5; ++v4 )
{
v8 = (volatile signed __int64 *)((char *)MmGetPfnDb() + 48 * *v4);
v9 = (unsigned __int8)MiLockPageInline((INT64)v8);
*((_BYTE *)v8 + 34) |= 0x10u;
*((_BYTE *)v8 + 34) &= ~0x20u;
*v8 = 0i64;
_InterlockedAnd64(v8 + 3, 0x7FFFFFFFFFFFFFFFui64);
__writecr8(v9);
++v6;
}
i[11] = 0i64;
v10 = *((_DWORD *)i + 44) <= 1;
*((_DWORD *)i + 20) = -1073741670;
if( !v10 )
KeSetEvent((PRKEVENT)(i + 7), 0);
}Referenced by:
MmRotatePhysicalView