PopFindPowerSettingConfiguration
LIST_ENTRY *__fastcall PopFindPowerSettingConfiguration(GUID *SettingGuid, INT64 a2){
UINT64 v2;
INT64 v3;
int v4;
LIST_ENTRY *v6;
LIST_ENTRY *v7;
LIST_ENTRY *Flink;
__int64 v9;
v4 = a2;
LOBYTE(v6) = PopGetListHead((INT64)SettingGuid, (const WCHAR *)a2, v2, v3);
v7 = v6;
Flink = v6->Flink;
if( PopStateIsSessionSpecific(SettingGuid) )
{
while( Flink != v7 )
{
if( LODWORD(Flink[3].Flink) == v4 && (HIDWORD(Flink[3].Flink) & 4) == 0 )
return Flink;
Flink = Flink->Flink;
}
}
else
{
while( Flink != v7 )
{
v9 = (__int64)Flink[2].Flink - *(_QWORD *)&SettingGuid->Data1;
if( !v9 )
v9 = (__int64)Flink[2].Blink - *(_QWORD *)SettingGuid->Data4;
if( !v9 )
return Flink;
Flink = Flink->Flink;
}
}
return 0i64;
}Referenced by:
PoRegisterPowerSettingCallback
PopGetPowerSettingValue
PopGetSettingNotificationName
PopGetSettingValue
PopInitilizeAcDcSettings
PopQueryPowerSettingUlong
PopSetPowerSettingValue