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