PopPepReleaseActivityLink
INT64 __fastcall PopPepReleaseActivityLink(INT64 a1, volatile INT64 *a2, CHAR a3, UINT8 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((INT64 *)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