PspUnlockJobMemoryLimitsExclusive
VOID __stdcall PspUnlockJobMemoryLimitsExclusive(_EJOB *Job, _EJOB *Exception, _ETHREAD *CurrentThread){
_EX_PUSH_LOCK *p_MemoryLimitsLock;
if( Job != Exception )
{
p_MemoryLimitsLock = &Job->MemoryLimitsLock;
if( (_InterlockedExchangeAdd64((volatile signed __int64 *)&Job->MemoryLimitsLock, 0xFFFFFFFFFFFFFFFFui64) & 6) == 2 )
ExfTryToWakePushLock((volatile INT64 *)&Job->MemoryLimitsLock);
KeAbPostRelease(p_MemoryLimitsLock);
}
if( CurrentThread )
KiLeaveGuardedRegionUnsafe((__int64)CurrentThread);
}Referenced by:
NtSetInformationJobObject
PspChangeJobMemoryUsageByProcess
PspJobClose