MiUpdateWorkingSetPrivateSize
VOID __fastcall MiUpdateWorkingSetPrivateSize(INT64 a1, UINT64 a2, INT64 a3, INT64 a4){
int v4;
WORK_QUEUE_TYPE v8;
PVOID v9;
struct _KLOCK_QUEUE_HANDLE LockHandle;
v4 = a4;
memset(&LockHandle, 0, sizeof(LockHandle));
if( !(_DWORD)a4 )
{
LockHandle.LockQueue.Next = 0i64;
LockHandle.LockQueue.Lock = (unsigned __int64 *volatile)(MiGetSharedVm(a1) + 8);
KxAcquireQueuedSpinLock((PIO_WORKITEM)&LockHandle, (PIO_WORKITEM_ROUTINE)LockHandle.LockQueue.Lock, v8, v9);
}
*(_QWORD *)(a1 + 144) += a3;
if( a2 < (unsigned __int64)MmGetPteBase() || a2 > (unsigned __int64)MmGetPteLimit() )
*(_QWORD *)(a1 + 128) += a3;
if( !v4 )
KeReleaseInStackQueuedSpinLockFromDpcLevel(&LockHandle);
}Referenced by:
MiBuildForkPte
MiConvertPrivateToProto
MiDemoteCombinedPte