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