MiInsertNumaStandbyPage
VOID __fastcall MiInsertNumaStandbyPage(_MMPFN *Pfn1){
_MMPFN *PfnDb;
__int64 v3;
__int64 v4;
char v5;
__int64 v6;
__int64 v7;
__int64 v8;
unsigned int v9;
_QWORD *v10;
__int64 v11;
_MMPFN *v12;
__int64 v13;
__int64 v14;
PfnDb = MmGetPfnDb();
v3 = Pfn1 - PfnDb;
v4 = *(_QWORD *)(*(&stru_140C4DB30 + 267) + 8 * (((unsigned __int64)Pfn1->u4._bf_0 >> 39) & 0x3FF));
v5 = *((_BYTE *)&Pfn1->u3 + 3);
if( (v5 & 8) != 0 )
v6 = 5i64;
else
v6 = v5 & 7;
LODWORD(v7) = MiSearchNumaNodeTable((PVOID)(Pfn1 - PfnDb));
v8 = *(unsigned int *)(v7 + 8);
if( *(&stru_140C4DB30 + 28) )
v9 = MiPageToChannel(v3);
else
v9 = 0;
v10 = (_QWORD *)(*(_QWORD *)(v4 + 16) + 4544 * v8 + 24 * (v6 + 8i64 * v9));
++v10[407];
v11 = v10[409];
if( v11 == 0xFFFFFFFFFi64 )
{
v10[408] = v3;
}
else
{
v12 = &PfnDb[v11];
v13 = (v12->u1.$976DF529DAC3D73085C9E386D94B91E6::$E228DCF3D8940E384DBC5EFCA756D8B6::_bf_0 ^ (v3 << 28)) & 0xFFFFFFFFFi64;
v12->ViewCount = v3;
v12->u1.$976DF529DAC3D73085C9E386D94B91E6::$E228DCF3D8940E384DBC5EFCA756D8B6::_bf_0 = (v3 << 28) ^ v13;
}
Pfn1->u1.$976DF529DAC3D73085C9E386D94B91E6::$E228DCF3D8940E384DBC5EFCA756D8B6::_bf_0 |= 0xFFFFFFF000000000ui64;
Pfn1->NodeBlinkLow = v11;
v14 = (Pfn1->u2._bf_0 ^ (v11 << 20)) & 0xFFFFF000000000i64;
Pfn1->ViewCount = -1;
Pfn1->u2._bf_0 ^= v14;
v10[409] = v3;
}Referenced by:
MiInsertProtectedStandbyPage
MiReplaceNumaStandbyPage
MiSwapNumaStandbyPage