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