PopFindPowerSettingConfiguration

_POP_POWER_SETTING_CONFIGURATION *__stdcall PopFindPowerSettingConfiguration(_GUID *Guid, UINT64 SessionId){
  int v2; 
  _LIST_ENTRY *ListHead; 
  _LIST_ENTRY *Flink; 
  char *v6; 

  v2 = SessionId;
  ListHead = PopGetListHead(Guid);
  Flink = ListHead->Flink;
  if( PopStateIsSessionSpecific(Guid) )
  {
    while( Flink != ListHead )
    {
      if( LODWORD(Flink[3].Flink) == v2 && (HIDWORD(Flink[3].Flink) & 4) == 0 )
        return(_POP_POWER_SETTING_CONFIGURATION *)Flink;
      Flink = Flink->Flink;
    }
  }
  else
  {
    while( Flink != ListHead )
    {
      v6 = (char *)Flink[2].Flink - *(_QWORD *)&Guid->Data1;
      if( !v6 )
        v6 = (char *)Flink[2].Blink - *(_QWORD *)Guid->Data4;
      if( !v6 )
        return(_POP_POWER_SETTING_CONFIGURATION *)Flink;
      Flink = Flink->Flink;
    }
  }
  return 0i64;
}

Referenced by:

PoRegisterPowerSettingCallback
PopGetPowerSettingValue
PopGetSettingNotificationName
PopGetSettingValue
PopInitilizeAcDcSettings
PopQueryPowerSettingUlong
PopSetPowerSettingValue