MiMakeCombineCandidateClean
VOID __stdcall MiMakeCombineCandidateClean(_MMPTE *PointerPte, _MMVAD *Vad){
UINT64 v4;
UINT64 v5;
UINT64 v6;
UINT64 v7;
LODWORD(v4) = MI_READ_PTE_LOCK_FREE((INT64)PointerPte);
v7 = v4;
v5 = v4;
v6 = v4;
MiPteInShadowRange((UINT64)&v7);
MiWriteValidPteNewProtection((INT64 *)PointerPte, v5 & 0xFFFFFFFFFFFFFFBDui64);
MiLockPageAndSetDirty(&MmGetPfnDb()[(v6 >> 12) & 0xFFFFFFFFFi64], (VOID *)1);
if( Vad )
{
if( (Vad->Core.u.LongFlags & 0x300000) == 3145728 )
MiCaptureWriteWatchDirtyBit(
KeGetCurrentThread()->ApcState.Process,
(VOID *)((__int64)(((_QWORD)PointerPte << 25) - ((_QWORD)MmGetPteBase() << 25)) >> 16),
&Vad->Core);
}
}Referenced by:
MiCrcStillIntact
MiSharePages