MmGetNodeFastLargePageCounts
NTSTATUS __stdcall MmGetNodeFastLargePageCounts(INT64 a1, UINT64 a2){
__int64 v2;
__int64 v3;
__int64 *v4;
__int64 v5;
_QWORD *v6;
__int64 *v7;
unsigned __int64 i;
v2 = (unsigned int)a2;
if( (unsigned int)a2 >= (unsigned __int16)KeNumberNodes )
return 0;
v3 = ((unsigned __int64)KeFeatureBits & 0x2000000000i64) == 0;
v4 = &MiLargePageSizes[v3];
do
{
if( *v4 == 512 )
break;
v3 = (unsigned int)(v3 + 1);
++v4;
}
while( (unsigned int)v3 < 3 );
if( (_DWORD)v3 == 3 )
return 0;
LODWORD(v5) = MiPartitionObjectToPartition((PVOID)0xFFFFFFFFFFFFFFFFi64);
if( !v5 )
return 0;
v6 = (_QWORD *)(*(_QWORD *)(v5 + 16) + 4544 * v2 + 1072i64 * (unsigned int)v3);
v7 = &MiLargePageSizes[v3];
for( i = ((unsigned __int64)*v7 >> 9) * (*v6 + v6[1]); (_DWORD)v3; LODWORD(v3) = v3 - 1 )
{
v6 -= 134;
i += ((unsigned __int64)*--v7 >> 9) * (*v6 + v6[1]);
}
return i;
}Referenced by:
VmpAccessFaultBatchResolve