PpmIdleUpdateConcurrency
void __fastcall PpmIdleUpdateConcurrency(PKSPIN_LOCK SpinLock, KSPIN_LOCK a2, char a3, char a4){
KSPIN_LOCK v8;
__int64 v9;
KSPIN_LOCK v10;
int v11;
__int16 v12;
_disable();
KxAcquireSpinLock(SpinLock);
v8 = SpinLock[2];
v9 = *((unsigned int *)SpinLock + 3);
if( a2 > v8 )
{
SpinLock[2] = a2;
v10 = a2 - v8;
if( a4 )
{
SpinLock[3] += v10;
SpinLock[v9 + 4] += v10;
}
}
v11 = v9 + 1;
if( a3 )
v11 = v9 - 1;
*((_DWORD *)SpinLock + 3) = v11;
KxReleaseSpinLock(SpinLock);
if( (v12 & 0x200) != 0 )
_enable();
}Referenced by:
PpmIdleExecuteTransition
PpmIdleInstallConcurrency
PpmIdleRemoveConcurrency