PpmIdleLockProcessor
NTSTATUS __stdcall PpmIdleLockProcessor(PPM_IDLE_SYNCHRONIZATION_STATE *IdleSynchronization){
NTSTATUS v1;
unsigned int AsLong;
unsigned int v3;
v1 = -1073741782;
_m_prefetchw(IdleSynchronization);
AsLong = IdleSynchronization->AsLong;
while( HIBYTE(AsLong) - 4 <= 1u )
{
v3 = AsLong;
AsLong = _InterlockedCompareExchange(
&IdleSynchronization->AsLong,
((AsLong & 0xFFFFFF | 0x5000000) ^ ((AsLong & 0xFFFFFF | 0x5000000) + 1)) & 0xFFFFFF ^ (AsLong & 0xFFFFFF | 0x5000000),
AsLong);
if( AsLong == v3 )
return 0;
}
return v1;
}Referenced by:
PpmTestAndLockProcessor