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