MiQueryPfn
CHAR __fastcall MiQueryPfn(INT64 a1, INT64 a2){
INT64 v2;
_MMPFN *PfnDb;
INT64 v4;
int PfnPriority;
__int64 v6;
__int64 v7;
__int64 v8;
__int64 v9;
__int64 v10;
CHAR result;
v2 = a2;
PfnDb = MmGetPfnDb();
v4 = (INT64)PfnDb + 48 * a1;
if( (*(_BYTE *)(v4 + 35) & 0x40) != 0 || MiIsPageOnBadList((INT64)PfnDb + 48 * a1) )
*(_QWORD *)(v2 + 8) |= 0x80000000ui64;
PfnPriority = MiGetPfnPriority(v4);
v9 = v8 ^ ((unsigned int)v8 ^ (PfnPriority << 24)) & 0x7000000;
*(_QWORD *)(v6 + 8) = v9;
result = *(_BYTE *)(v10 + 34) & 7;
if( result == 3 )
v7 = 0x8000000i64;
*(_QWORD *)(v6 + 8) = v9 & 0xFFFFFFFFF77FFFFFui64 | v7 & 0xFFFFFFFFFF7FFFFFui64 | 0x400000;
return result;
}Referenced by:
MiGetWorkingSetInfoList