PopPepCompleteComponentIdleState
VOID __fastcall PopPepCompleteComponentIdleState(PEPHANDLE__ *DpmContext, UINT64 ComponentIndex){
unsigned int v2;
PEPHANDLE__ *v3;
CHAR v5;
__int64 v6;
CHAR v7;
INT64 v8;
unsigned int ready;
unsigned int v10;
INT64 v11;
UINT8 v12;
v2 = ComponentIndex;
v12 = 0;
v3 = DpmContext + 50 * (unsigned int)ComponentIndex + 46;
v5 = PopPepLockActivityLink((INT64)DpmContext, (volatile INT64 *)v3, 6ui64, 1ui64, &v12);
v6 = *((_QWORD *)v3 + 8);
v7 = v5;
if( *(_DWORD *)(v6 + 12) == 1 )
{
*(_DWORD *)(v6 + 12) = 2;
PopPepCountReadyActivities((UINT64 *)DpmContext, (INT64)v3, 2i64);
**((_DWORD **)v3 + 8) |= 8u;
_InterlockedIncrement((volatile signed __int32 *)v3 + 26);
ready = PopPepCountReadyActivities((UINT64 *)DpmContext, (INT64)v3, v8);
PopPepRequestWork(v10, ready);
PopPepReleaseActivityLink((INT64)DpmContext, (volatile INT64 *)v3, v7, v12);
}
else
{
PopPepReleaseActivityLink((INT64)DpmContext, (volatile INT64 *)v3, v5, v12);
PopPepProcessEvent((INT64)DpmContext, (volatile INT64 *)v3, 1i64, 6ui64, v11, 0i64);
PopPlNotifyDeviceFState(*((_QWORD *)DpmContext + 4), v2, *((unsigned int *)v3 + 45), *((unsigned int *)v3 + 44), 1);
}
}Referenced by:
PopFxProcessWork