MiPageAttributeBatchChangeNeeded

NTSTATUS __stdcall MiPageAttributeBatchChangeNeeded(_MMPFN *Pfn1, _MI_PFN_CACHE_ATTRIBUTE CacheAttribute){
  int v2; 
  char v4; 
  unsigned int v5; 
  int v6[10]; 

  v2 = *((unsigned __int8 *)&Pfn1->u3 + 2) >> 6;
  if( v2 == CacheAttribute )
    return 0;
  if( v2 != 1 )
  {
    if( v2 == 3
      || (v4 = HIBYTE(Pfn1->u2._bf_0) & 0xF, _InterlockedOr(v6, 0), v5 = ((_BYTE)KiTbFlushTimeStamp - v4) & 0xF, v5 > 2)
      || (v4 & 1) == 0 && v5 >= 2 )
    {
      MiChangePageAttribute(Pfn1, CacheAttribute, 4ui64);
      return 0;
    }
  }
  return 1;
}

Referenced by:

MiConvertContiguousPages
MiInitializeMdlOneNodeBatchPages
MiSwitchToTransition