MiCaptureWriteWatchDirtyBit

VOID __stdcall MiCaptureWriteWatchDirtyBit(_EPROCESS *Process, VOID *VirtualAddress, _MMVAD_SHORT *Vad){
  _MMVAD *Address; 
  union {unsigned int LongFlags;_MMVAD_FLAGS VadFlags;_MM_PRIVATE_VAD_FLAGS PrivateVadFlags;_MM_GRAPHICS_VAD_FLAGS GraphicsVadFlags;_MM_SHARED_VAD_FLAGS SharedVadFlags;volatile unsigned int VolatileVadLong;} v4; 
  __int64 ********LockedVadEvent; 
  INT64 v6; 
  unsigned __int64 v7; 
  unsigned __int64 v8; 
  unsigned __int64 v9; 

  Address = (_MMVAD *)Vad;
  if( (Process->Flags & 0x20) == 0 && (Vad || (Address = MiLocateAddress(VirtualAddress)) != 0i64) )
  {
    v4.LongFlags = (unsigned int)Address->Core.u;
    if( (v4.LongFlags & 4) == 0 && (v4.LongFlags & 0x300000) == 3145728 )
    {
      LockedVadEvent = MiLocateLockedVadEvent((__int64)Address, 4);
      LODWORD(v7) = MiGetVadMandatoryPageSize(v6);
      v9 = ((v8 >> 12) - (Address->Core.StartingVpn | ((unsigned __int64)Address->Core.StartingVpnHigh << 32))) / v7;
      MiLockVadCore((INT64)Address);
      _bittestandset64((signed __int64 *)LockedVadEvent[2], v9);
      MiUnlockVadCore((INT64)Address, 2u);
    }
  }
}

Referenced by:

MiBuildForkPte
MiMakeCombineCandidateClean
MiMakeVaRangeNoAccess
MiProtectAweRegion
MiRevertValidPte
MiWsleFlush