PfpMemoryListQuery
NTSTATUS __stdcall PfpMemoryListQuery(_SUPERFETCH_INFORMATION *Info, INT8 PreviousMode, UINT64 *OutSize){
NTSTATUS v6;
__int64 v7;
UINT64 SystemInformationLength[22];
memset(SystemInformationLength, 0i64, sizeof(SystemInformationLength));
v6 = 0;
if( (unsigned int)Info[6] < 0x40 )
{
v6 = -1073741789;
}
else
{
MmQueryMemoryListInformation((VOID *)0xFFFFFFFFFFFFFFFFi64, (UINT64)SystemInformationLength, (UINT64 *)0xB0);
v7 = *((_QWORD *)Info + 2);
if( PreviousMode )
ProbeForWrite(*((_QWORD *)Info + 2), (unsigned int)Info[6], 8i64);
*(_DWORD *)v7 = 1;
*(_DWORD *)(v7 + 4) = 64;
*(_DWORD *)(v7 + 8) = 1;
*(_QWORD *)(v7 + 16) &= 0xFFFFFFFFFFFFFF00ui64;
*(_QWORD *)(v7 + 24) = SystemInformationLength[8]
+ SystemInformationLength[7]
+ SystemInformationLength[6]
+ SystemInformationLength[5]
+ SystemInformationLength[9];
*(_QWORD *)(v7 + 32) = SystemInformationLength[10];
*(_QWORD *)(v7 + 40) = SystemInformationLength[12] + SystemInformationLength[11];
*(_QWORD *)(v7 + 48) = SystemInformationLength[0] + SystemInformationLength[1];
*(_QWORD *)(v7 + 56) = SystemInformationLength[3] + SystemInformationLength[2];
}
*(_DWORD *)OutSize = 64;
return v6;
}Referenced by:
PfQuerySuperfetchInformation