PpmIdleSetSynchronizationState

UINT8 __stdcall PpmIdleSetSynchronizationState(_PPM_IDLE_SYNCHRONIZATION_STATE *IdleSynchronization, UINT8 NewState){
  unsigned int AsLong; 
  unsigned int v3; 

  _m_prefetchw(IdleSynchronization);
  AsLong = IdleSynchronization->AsLong;
  do
  {
    v3 = AsLong;
    AsLong = _InterlockedCompareExchange(&IdleSynchronization->AsLong, (NewState << 24) | AsLong & 0xFFFFFF, AsLong);
  }
  while( AsLong != v3 );
  return HIBYTE(AsLong);
}

Referenced by:

PpmIdleExecuteTransition
PpmIdleSelectStates