PopPepDeviceStarted

VOID __fastcall PopPepDeviceStarted(INT64 a1){
  unsigned __int64 v2; 
  _ETHREAD *CurrentThread; 
  v2 = ExAcquireSpinLockExclusive((PEX_SPIN_LOCK)(a1 + 64));
  *(_DWORD *)(a1 + 172) = 1;
  ExReleaseSpinLockExclusiveFromDpcLevel((INT64 *)(a1 + 64));
  __writecr8(v2);
  CurrentThread = (_ETHREAD *)KeGetCurrentThread();
  --*((_WORD *)CurrentThread + 242);
  ExAcquirePushLockSharedEx((UINT64)&PopPepDeviceListLock, 0i64);
  if( PopPepPlatformState )
    PopPepInitializeVetoMasks(a1, *(unsigned int *)PpmPlatformStates);
  if( _InterlockedCompareExchange64((volatile signed __int64 *)&PopPepDeviceListLock, 0i64, 17i64) != 17 )
    ExfReleasePushLockShared((INT64 *)&PopPepDeviceListLock);
  KeAbPostRelease(&PopPepDeviceListLock);
  KeLeaveCriticalRegionThread((__int64)KeGetCurrentThread());
}

Referenced by:

PoFxStartDevicePowerManagement