PopSetNewPolicyValue
NTSTATUS __stdcall PopSetNewPolicyValue(POWER_SETTING_UPDATE *PolicyChange){
_GUID *v1;
NTSTATUS v3;
__int64 v4;
__int64 v6;
UINT64 ValueLength;
_UNICODE_STRING UnicodeString;
v1 = (_GUID *)(PolicyChange + 5);
v3 = 0;
UnicodeString = 0i64;
if( RtlStringFromGUIDEx((_GUID *)(PolicyChange + 5), &UnicodeString, 1u) >= 0 )
RtlFreeAnsiString(&UnicodeString);
if( !PopStateIsSessionSpecific(v1) )
{
v4 = *(_QWORD *)(PolicyChange + 9) - *(_QWORD *)&GUID_PROCESSOR_SETTINGS_SUBGROUP.Data1;
if( !v4 )
v4 = *(_QWORD *)(PolicyChange + 11) - *(_QWORD *)GUID_PROCESSOR_SETTINGS_SUBGROUP.Data4;
if( v4 )
return PopSetPowerSettingValue((_LPCGUID)v1, (VOID *)0xFFFFFFFFi64);
LODWORD(ValueLength) = PolicyChange[14];
v3 = PpmSetProfilePolicySetting(
(_GUID *)(PolicyChange + 1),
v1,
PolicyChange[13],
(UINT8 *)PolicyChange + 60,
ValueLength);
if( v3 == -1073741275 )
v3 = 0;
v6 = *(_QWORD *)(PolicyChange + 1) - *(_QWORD *)&NullGuid.Data1;
if( !v6 )
v6 = *(_QWORD *)(PolicyChange + 3) - *(_QWORD *)NullGuid.Data4;
if( !v6 )
return PopSetPowerSettingValue((_LPCGUID)v1, (VOID *)0xFFFFFFFFi64);
}
return v3;
}Referenced by:
PopUmpoProcessPowerMessage