MiInitializeSlowPte

VOID __stdcall MiInitializeSlowPte(_MMPTE *MappingPte, UINT64 PageFrameIndex, _MEMORY_CACHING_TYPE CacheType){
  INT64 v4; 
  int ProtectionPfnCompatible; 
  v4 = PageFrameIndex;
  ProtectionPfnCompatible = 4;
  if( PageFrameIndex <= 0xFFFFFFFFFi64 && ((*((_QWORD *)MmGetPfnDb() + 6 * PageFrameIndex + 5) >> 50) & 1) != 0 )
  {
    ProtectionPfnCompatible = MiMakeProtectionPfnCompatible(
                                4ui64,
                                (_MMPFN *)((char *)MmGetPfnDb() + 48 * PageFrameIndex));
  }
  else if( CacheType )
  {
    if( CacheType == MmWriteCombined )
      ProtectionPfnCompatible = 28;
  }
  else
  {
    ProtectionPfnCompatible = 12;
  }
  *(_QWORD *)MappingPte = MiMakeValidPte((UINT64)MappingPte, v4, ProtectionPfnCompatible | 0xA0000000);
}

Referenced by:

MiSlowRotateCopy