PopGetSettingValue

NTSTATUS __stdcall PopGetSettingValue(const _GUID *Guid, PVOID OutputBuffer, UINT64 OutputBufferLength){
  int v3; 
  unsigned int ProcessSessionId; 
  _POP_POWER_SETTING_CONFIGURATION *PowerSettingConfiguration; 
  NTSTATUS v9; 

  v3 = OutputBufferLength;
  ExAcquireFastMutex((PFAST_MUTEX)((char *)&stru_140C23628 + 3000));
  ProcessSessionId = PsGetProcessSessionIdEx((INT64)KeGetCurrentThread()->ApcState.Process);
  PowerSettingConfiguration = PopFindPowerSettingConfiguration((_GUID *)Guid, ProcessSessionId);
  if( PowerSettingConfiguration )
  {
    v9 = PopMarshalSettingValues(
           PowerSettingConfiguration,
           (char *)OutputBuffer + 4,
           (unsigned int)(v3 - 4),
           (UINT64 *)OutputBuffer);
    KeReleaseGuardedMutex((PKGUARDED_MUTEX)((char *)&stru_140C23628 + 3000));
    return v9;
  }
  else
  {
    KeReleaseGuardedMutex((PKGUARDED_MUTEX)((char *)&stru_140C23628 + 3000));
    return -1073741811;
  }
}

Referenced by:

NtPowerInformation