MiGenerateRandomPte
CHAR *__fastcall MiGenerateRandomPte(INT64 a1){
__int64 v1;
__int64 v2;
unsigned __int64 v3;
__int64 v4;
__int64 v6;
_QWORD a2[5];
MiInitializeWalkBounds(a1, a2);
v1 = (unsigned int)ExGenRandom(1i64);
v2 = (unsigned int)ExGenRandom(1i64);
v3 = a2[1] - a2[0] + 1i64;
v4 = v1 | (v2 << 32);
if( _BitScanReverse64((unsigned __int64 *)&v6, v3) )
v3 = 1i64 << v6;
return(char *)MmGetPteBase() + (((a2[0] + (v4 & (v3 - 1))) >> 9) & 0x7FFFFFFFF8i64);
}Referenced by:
MiAgeWorkingSet
MiSimpleAging
MiTrimWorkingSet