PopPepReleaseActivityLink
__int64 __fastcall PopPepReleaseActivityLink(__int64 a1, INT64 *a2, char a3, unsigned __int8 a4){
unsigned __int64 v4;
unsigned int v6;
_QWORD *v7;
__int64 result;
v4 = a4;
if( a3 == 1 )
{
v6 = 0;
v7 = (_QWORD *)(a1 + 72);
while( !*v7 || !*(_DWORD *)*v7 )
{
++v6;
++v7;
if( v6 >= 6 )
{
if( *(_BYTE *)(a1 + 136) )
*(_BYTE *)(a1 + 125) = 0;
break;
}
}
ExReleaseSpinLockExclusiveFromDpcLevel((INT64 *)(a1 + 64));
}
else
{
ExReleaseSpinLockExclusiveFromDpcLevel(a2);
ExReleaseSpinLockSharedFromDpcLevel((PEX_SPIN_LOCK)(a1 + 64));
}
result = (unsigned int)KiIrqlFlags;
__writecr8(v4);
return result;
}Referenced by:
PopPepCompleteComponentIdleState
PopPepComponentSetLatency
PopPepComponentSetResidency
PopPepComponentSetWakeHint
PopPepProcessEvent
PopPepSurprisePowerOn
PopPepTryPowerDownDevice
PopPepUpdateConstraints