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