PpmPerfUpdateDomainPolicy
VOID __stdcall PpmPerfUpdateDomainPolicy(CHAR a1){
INT64 v1;
CHAR v2;
char v3;
char v4;
char v5;
int v6;
unsigned int v7;
int *v8;
char v9;
__int64 v10;
int v11;
int v12;
unsigned int v13;
INT64 v14;
bool v15;
NPTEXTMETRIC *v16;
int v17;
INT64 v19;
v1 = PpmPerfDomainHead;
v2 = a1;
v3 = 0;
v4 = 0;
if( (INT64 *)PpmPerfDomainHead == &PpmPerfDomainHead )
{
if( PpmPerfVmQosSupported )
{
v5 = 1;
v17 = 0;
}
else
{
v5 = 0;
v17 = 128;
}
LODWORD(v19) = v17;
}
else
{
v5 = 0;
LODWORD(v19) = 0;
v6 = 0;
if( (INT64 *)PpmPerfDomainHead != &PpmPerfDomainHead )
{
do
{
if( PpmPerfCalculateQosClassPolicies(v1) )
v3 = 1;
if( (*(_BYTE *)(v1 + 528) & 0xF) == 0 )
v4 = 1;
if( *(_BYTE *)(v1 + 546) )
{
v5 = 1;
}
else
{
v7 = 0;
v8 = (int *)(v1 + 520);
v9 = 1;
v10 = 4i64;
do
{
v11 = *v8;
v12 = *v8++;
v7 |= v11;
v9 = (v12 & 2) != 0 ? v9 : 0;
--v10;
}
while( v10 );
v13 = v7 & 0xFFFFFFFD;
if( v9 )
v13 = v7;
v6 |= v13;
}
v1 = *(_QWORD *)v1;
}
while( (INT64 *)v1 != &PpmPerfDomainHead );
v2 = a1;
if( v5 )
v6 = 0;
LODWORD(v19) = v6;
}
}
v15 = PpmPerfUpdateQosDisableReasons(&v19) != 0;
if( v5 != PpmPerfQosEnabled )
{
PpmPerfQosEnabled = v5;
v2 = 1;
v15 = 1;
}
*(&stru_140C23628 + 3532) = v4;
if( v15 )
PpmEventQosSupport(0, v14, v16);
if( v3 || v2 )
{
PpmPerfSetAllDomainsToUpdate();
PpmCheckCustomRun((PPM_CHECK_PIPELINE_ID)((v2 != 0) + 1));
}
else
{
PpmReleaseLock((INT64 *)&stru_140C23628 + 131);
}
}Referenced by:
PopPerfBoostPowerRequest
PopPowerInformationInternal
PpmReapplyPerfPolicy
PpmRegisterPerfStates
PpmUpdatePerfStates