MmQueryWorkingSetInformation
INT64 __fastcall MmQueryWorkingSetInformation(
UINT64 *PeakWorkingSetSize,
UINT64 *WorkingSetSize,
UINT64 *PrivateWorkingSetSize,
UINT64 *MinimumWorkingSetSize,
UINT64 *MaximumWorkingSetSize,
UINT *HardEnforcementFlags){
INT64 v10;
UINT8 v11;
char v12;
*HardEnforcementFlags = 0;
v10 = *((_QWORD *)KeGetCurrentThread() + 23) + 1664i64;
v11 = MiLockWorkingSetShared(v10);
*PeakWorkingSetSize = *(_QWORD *)(v10 + 160) << 12;
*WorkingSetSize = *(_QWORD *)(v10 + 120) << 12;
*PrivateWorkingSetSize = *(_QWORD *)(v10 + 128) << 12;
*MinimumWorkingSetSize = *(_QWORD *)(v10 + 112) << 12;
*MaximumWorkingSetSize = *(_QWORD *)(v10 + 152) << 12;
v12 = *(_BYTE *)(v10 + 184);
if( v12 < 0 )
{
*HardEnforcementFlags |= 4u;
v12 = *(_BYTE *)(v10 + 184);
}
if( (v12 & 0x40) != 0 )
*HardEnforcementFlags |= 1u;
MiUnlockWorkingSetShared(v10, v11);
return 0i64;
}Referenced by:
NtQueryInformationProcess
PspQueryQuotaLimits
SmKmVirtualLockContextIncreaseWsMin
SmKmVirtualLockCtxMemoryUnlocked