MiFlushCacheForAttributeChange

VOID __fastcall MiFlushCacheForAttributeChange(UINT64 PageFrameIndex, INT64 a2, INT64 a3){
  int v3; 
  INT64 v4; 
  unsigned int v6; 
  void *v7; 
  void *v8; 
  v3 = a3;
  v4 = a2;
  if( a2 )
  {
    v6 = -805306366;
    if( (_DWORD)a3 != 2 )
      v6 = -1073741824;
    do
    {
      LODWORD(v7) = MiMapPageInHyperSpaceWorker(PageFrameIndex, 0i64, v6);
      v8 = v7;
      KeInvalidateRangeAllCachesNoIpi(v7, 0x1000ui64);
      MiUnmapPageInHyperSpaceWorker(v8, 0x11u, 0x80000000ui64);
      ++PageFrameIndex;
      --v4;
    }
    while( v4 );
  }
  if( v3 == 3 )
    MiFlushHyperSpace();
}

Referenced by:

MiChangePageAttribute
MiChangePageAttributeBatch
MiChangePageAttributeContiguous
MiFlushCacheRange
MiInitializeCacheFlushing