PpmProcessSettingsFromQueryTable
UINT8 __stdcall PpmProcessSettingsFromQueryTable(
_GUID *ProfileGuid,
_SYSTEM_POWER_CONDITION PowerCondition,
_RTL_QUERY_REGISTRY_TABLE *QueryTable){
__int64 v3;
void **p_EntryContext;
__int64 v5;
UINT8 v6;
__int64 v7;
const wchar_t *v8;
wchar_t **v9;
unsigned int v10;
__int64 v11;
__int64 v12;
__int64 v13;
UINT64 ValueLength;
UINT8 NewValue[4];
_SYSTEM_POWER_CONDITION PowerConditiona;
_GUID *ProfileGuida;
_GUID SettingGuid;
PowerConditiona = PowerCondition;
SettingGuid = 0i64;
v3 = 0i64;
p_EntryContext = &QueryTable->EntryContext;
v5 = 0i64;
v6 = 0;
ProfileGuida = ProfileGuid;
v7 = 20i64;
do
{
v8 = (const wchar_t *)*(p_EntryContext - 1);
v9 = &PpmPolicyAliasList;
v10 = 0;
while( wcsicmp(v8, *v9) )
{
++v10;
v9 += 2;
if( v10 >= 0x14 )
goto LABEL_7;
}
SettingGuid = *(_GUID *)v9[1];
v3 = *(_QWORD *)SettingGuid.Data4;
v5 = *(_QWORD *)&SettingGuid.Data1;
LABEL_7:
*(_DWORD *)NewValue = *(_DWORD *)*p_EntryContext;
if( *(_DWORD *)NewValue != -1 )
{
v11 = v5 - *(_QWORD *)&GUID_PROCESSOR_PERF_INCREASE_HISTORY.Data1;
if( v5 == *(_QWORD *)&GUID_PROCESSOR_PERF_INCREASE_HISTORY.Data1 )
v11 = v3 - *(_QWORD *)GUID_PROCESSOR_PERF_INCREASE_HISTORY.Data4;
if( v11 )
{
v12 = v5 - *(_QWORD *)&GUID_PROCESSOR_PERF_DECREASE_HISTORY.Data1;
if( v5 == *(_QWORD *)&GUID_PROCESSOR_PERF_DECREASE_HISTORY.Data1 )
v12 = v3 - *(_QWORD *)GUID_PROCESSOR_PERF_DECREASE_HISTORY.Data4;
if( v12 )
{
v13 = v5 - *(_QWORD *)&GUID_PROCESSOR_PERF_CORE_PARKING_HISTORY.Data1;
if( v5 == *(_QWORD *)&GUID_PROCESSOR_PERF_CORE_PARKING_HISTORY.Data1 )
v13 = v3 - *(_QWORD *)GUID_PROCESSOR_PERF_CORE_PARKING_HISTORY.Data4;
if( v13 )
{
v6 = 1;
LODWORD(ValueLength) = 4;
PpmSetProfilePolicySetting(ProfileGuida, &SettingGuid, PowerConditiona, NewValue, ValueLength);
v3 = *(_QWORD *)SettingGuid.Data4;
v5 = *(_QWORD *)&SettingGuid.Data1;
}
else
{
PpmProfileStatus |= 0x10u;
}
}
else
{
PpmProfileStatus |= 8u;
}
}
else
{
PpmProfileStatus |= 4u;
}
}
p_EntryContext += 7;
--v7;
}
while( v7 );
return v6;
}Referenced by:
PpmRegisterSpmSettings