MiEmptyTargetedWorkingSet
INT64 __fastcall MiEmptyTargetedWorkingSet(INT64 a1){
_QWORD *v2;
__int64 v3;
_QWORD *v4;
INT64 result;
struct _KLOCK_QUEUE_HANDLE LockHandle;
memset(&LockHandle, 0, sizeof(LockHandle));
KeAcquireInStackQueuedSpinLock(&WorkerRoutine, &LockHandle);
v2 = (_QWORD *)(a1 + 24);
v3 = *(_QWORD *)(a1 + 24);
if( v3 )
{
v4 = *(_QWORD **)(a1 + 32);
if( *(_QWORD **)(v3 + 8) != v2 || (_QWORD *)*v4 != v2 )
__fastfail(3u);
*v4 = v3;
*(_QWORD *)(v3 + 8) = v4;
*v2 = 0i64;
*(_BYTE *)(a1 + 185) = *(_BYTE *)(a1 + 185) & 0xF9 | 2;
KeReleaseInStackQueuedSpinLockFromDpcLevel(&LockHandle);
__writecr8(LockHandle.OldIrql);
MiEmptyWorkingSetInitiate(a1, 0, 0i64, -1i64);
KeAcquireInStackQueuedSpinLock(&WorkerRoutine, &LockHandle);
*(_BYTE *)(a1 + 185) &= 0xF9u;
MiReturnWsToExpansionList((_MMSUPPORT_INSTANCE *)a1, 0i64);
}
KeReleaseInStackQueuedSpinLockFromDpcLevel(&LockHandle);
result = (unsigned int)KiIrqlFlags;
__writecr8(LockHandle.OldIrql);
return result;
}Referenced by:
MiTrimAllSystemPagableMemory