PopEvaluateInputSuppressionAction
VOID __stdcall PopEvaluateInputSuppressionAction(){
char v0;
bool v1;
bool v2;
bool v3;
int v4;
INT64 v5;
INT64 v6;
INT64 v7;
INT64 v8;
INT64 v9;
INT64 v10;
BOOL v11;
INT64 v12[2];
BOOL v13;
v13 = 0;
*(_OWORD *)v12 = 0i64;
PopAcquirePolicyLock();
PopAcquireRwLockExclusive(&PopInputSuppressionLock);
v0 = PopConsoleExternalDisplayConnected;
v1 = PopLidOpened == 0;
v2 = dword_140C23D0C == 1;
v3 = PopConsoleDisplayState == 0;
if( PopErrataReportingIncorrectLidState
|| !PopIgnoreLidStateForInputSuppression && PopLidOpened
|| dword_140C23D0C != 1
|| (_BYTE)PopConsoleExternalDisplayConnected
|| (v4 = 1, PopConsoleDisplayState) )
{
v4 = 0;
}
if( !PopEnableInputSuppression && v4 == 1 )
v4 = 2;
PopReleasePolicyLock();
if( PopInputSuppressionRequired != v4 )
{
LODWORD(v10) = v4;
LOBYTE(v8) = v0;
LOBYTE(v7) = v2;
LOBYTE(v5) = v1;
PopInputSuppressionRequired = v4;
PopTraceInputSuppressionActionUpdate(v6, v5, v7, v8, v3, v9, v10);
ZwUpdateWnfStateData();
if( PopEnableInputSuppression )
{
if( (unsigned int)PopInputSuppressionRequired <= 1 )
_InterlockedIncrement(&PopInputSuppressionActionCount);
v11 = PopInputSuppressionRequired == 1;
ZwUpdateWnfStateData();
v13 = v11;
*(GUID *)v12 = GUID_INPUT_SUPPRESS_REQUESTED;
PopBroadcastSessionInfo(0i64, 20i64, (INT64)v12);
}
}
PopReleaseRwLock((UINT64)&PopInputSuppressionLock);
}Referenced by:
PopBroadcastInputSuppressionCallback
PopExternalMonitorUpdatedWorker