PopMonitorProcessLoop
VOID __stdcall PopMonitorProcessLoop(){
GUID *v0;
__int64 Data;
UINT64 BufferLength;
_OBJECT_ATTRIBUTES v3;
int Src[20];
_ALPC_PORT_ATTRIBUTES PortAttributes;
_PORT_MESSAGE ReceiveMessage;
int v7;
int v8;
memset(&v3, 0, sizeof(v3));
memset(&PortAttributes, 0i64, sizeof(PortAttributes));
while( 1 )
{
BufferLength = 48i64;
if( ZwAlpcSendWaitReceivePort(
(VOID *)PopAlpcMonitorServerPort,
0i64,
0i64,
0i64,
(PORT_MESSAGE *)&ReceiveMessage.u1.DataLength,
&BufferLength,
0i64,
0i64) )
{
break;
}
if( LOBYTE(ReceiveMessage.u2.Type) == 3 )
{
LODWORD(Data) = v8;
if( v7 )
{
if( v7 == 2 )
{
memset(Src, 0i64, 0x48u);
Src[0] = 11;
Src[2] = v8;
PopUmpoSendPowerMessage(Src, 0x48u, 0);
}
else if( v7 == 3 )
{
v0 = &GUID_VIDEO_CURRENT_MONITOR_BRIGHTNESS;
goto LABEL_18;
}
}
else
{
v0 = &GUID_DEVICE_POWER_POLICY_VIDEO_BRIGHTNESS;
LABEL_18:
PopSetPowerSettingValueAcDc((_LPCGUID)v0, 4ui64, &Data);
}
}
else if( LOBYTE(ReceiveMessage.u2.Type) > 4u )
{
if( LOBYTE(ReceiveMessage.u2.Type) <= 6u )
{
ZwClose(PopAlpcMonitorClientPort);
PopAlpcMonitorClientPort = 0i64;
}
else if( LOBYTE(ReceiveMessage.u2.Type) == 10 )
{
if( PopAlpcMonitorClientPort )
{
ZwClose(PopAlpcMonitorClientPort);
PopAlpcMonitorClientPort = 0i64;
}
memset(&PortAttributes, 0i64, sizeof(PortAttributes));
PortAttributes.Flags = 0x100000;
PortAttributes.MaxMessageLength = 256i64;
v3.Length = 48;
*(_OWORD *)&v3.RootDirectory = 0ui64;
v3.Attributes = 512;
*(_OWORD *)&v3.SecurityDescriptor = 0i64;
if( ZwAlpcAcceptConnectPort(
(VOID **)&PopAlpcMonitorClientPort,
(VOID *)PopAlpcMonitorServerPort,
0i64,
&v3,
&PortAttributes,
0i64,
&ReceiveMessage,
0i64,
1u) < 0 )
ZwAlpcAcceptConnectPort(
(VOID **)&PopAlpcMonitorClientPort,
(VOID *)PopAlpcMonitorServerPort,
0i64,
&v3,
&PortAttributes,
0i64,
&ReceiveMessage,
0i64,
0);
}
}
}
}Referenced by:
PopMonitorAlpcCallback
PopUmpoInitializeMonitorChannel