PspRequestProcessExecutionState
INT64 __fastcall PspRequestProcessExecutionState(INT64 a1, INT64 a2, CHAR a3){
int v3;
INT64 result;
int v5;
int v6;
int v7;
bool v8;
if( (*(_DWORD *)(a1 + 2172) & 1) == 0 || (v8 = (a3 & 1) == 0, v3 = 0x10000000, !v8) )
v3 = 805306368;
LODWORD(result) = *(_DWORD *)(a1 + 1120);
v5 = v3 & ((_DWORD)a2 << 28);
v6 = ~v3;
do
{
v7 = result;
result = (unsigned int)_InterlockedCompareExchange((volatile signed __int32 *)(a1 + 1120), v5 | result & v6, result);
}
while( (_DWORD)result != v7 );
return result;
}Referenced by:
PsSwapProcessWorkingSet
PspApplyJobChainLimitsToProcess
PspRemoveProcessFromJobChain
PspSetProcessFreezeStateCallback