PopPowerSourceChangeCallback
NTSTATUS __stdcall PopPowerSourceChangeCallback(INT64 *a1, INT64 *a2, INT64 a3){
INT64 v3;
INT64 v6;
NTSTATUS v7;
bool v8;
char v9;
INT64 v10;
INT64 v11;
unsigned int v12;
int v13;
INT64 v15;
char v16;
unsigned int SessionId;
GUID InputBuffer;
int v19;
v19 = 0;
v3 = *a1;
InputBuffer = 0i64;
v6 = *(_QWORD *)&GUID_ACDC_POWER_SOURCE.Data1 - v3;
if( *(_QWORD *)&GUID_ACDC_POWER_SOURCE.Data1 == v3 )
v6 = *(_QWORD *)GUID_ACDC_POWER_SOURCE.Data4 - a1[1];
v7 = 0;
if( v6 )
{
v15 = *(_QWORD *)&GUID_BATTERY_COUNT.Data1 - v3;
if( *(_QWORD *)&GUID_BATTERY_COUNT.Data1 == v3 )
v15 = *(_QWORD *)GUID_BATTERY_COUNT.Data4 - a1[1];
if( v15 )
return -1073741811;
}
if( (_DWORD)a3 != 4 || !a2 )
return -1073741811;
v8 = 1;
v9 = 0;
if( !PopLidOpened && !(_BYTE)PopConsoleExternalDisplayConnected )
v9 = 1;
v10 = *(_QWORD *)&GUID_ACDC_POWER_SOURCE.Data1 - v3;
if( *(_QWORD *)&GUID_ACDC_POWER_SOURCE.Data1 == v3 )
v10 = *(_QWORD *)GUID_ACDC_POWER_SOURCE.Data4 - a1[1];
if( !v10 && PopPlatformAoAc )
{
v16 = v9;
if( *(_DWORD *)a2 == 1 )
v16 = 1;
v9 = v16;
if( *(&stru_140C23628 + 1261) )
v9 = 1;
}
v11 = *(_QWORD *)&GUID_BATTERY_COUNT.Data1 - *a1;
if( !v11 )
v11 = *(_QWORD *)GUID_BATTERY_COUNT.Data4 - a1[1];
if( !v11 )
{
if( !v9 )
InputBuffer = GUID_BATTERY_COUNT;
v8 = v9 == 0;
v12 = v9 != 0 ? 46 : 16;
v13 = v9 != 0 ? 49 : 16;
LABEL_16:
if( !v8 )
goto LABEL_18;
goto LABEL_17;
}
if( !v9 )
{
v12 = 5;
v13 = 5;
InputBuffer = GUID_ACDC_POWER_SOURCE;
goto LABEL_16;
}
v12 = 43;
InputBuffer = GUID_ACDC_DISPLAY_BURST_SUPPRESS;
v13 = 28;
LABEL_17:
v19 = *(_DWORD *)a2;
PopBroadcastSessionInfo(PowerInfo_PolicyChange, 0x14ui64, &InputBuffer);
LABEL_18:
if( v9 )
{
PopAcquirePolicyLock();
PopPowerAggregatorForceSessionSwitch(v12);
PopReleasePolicyLock();
}
else if( TtmIsEnabled() )
{
SessionId = PopGetSessionId();
TtmNotifySessionDisplayBurst(SessionId, (POWER_MONITOR_REQUEST_REASON)v13);
}
return v7;
}Referenced by:
No references.