PopSetSystemAwayMode
INT64 __stdcall PopSetSystemAwayMode(UINT64 Enter){
UINT64 v1;
UINT8 v2;
UINT8 v3;
unsigned int v4;
UINT8 v5;
IRP *Timeout;
v4 = 0;
if( (_DWORD)Enter )
{
if( !byte_140C23D11 )
{
if( byte_140C23D10 )
{
KeResetEvent(&PopUserPresentCompletedEvent, v1, v2, v3, Timeout);
_InterlockedExchange(&dword_140C23D14, 1);
if( _InterlockedCompareExchange(&PopUserPresentSetStatus, 0, 0) )
KeWaitForSingleObject(&PopUserPresentCompletedEvent, Executive, 0, 0, 0i64);
KeInitializeDpc(&PopAwayModeUserPresenceDpcObject, PopAwayModeUserPresenceDpc, &dword_140C23D14);
KiSetTimerEx(
(_KTIMER *)&PopAwayModeUserPresenceTimer,
(_LARGE_INTEGER)-30000000i64,
0i64,
0,
&PopAwayModeUserPresenceDpcObject);
PopDiagTraceEventNoPayload((EVENT_DESCRIPTOR *)&POP_ETW_EVENT_AWAYMODE);
PopSetAwayModeStatus(1u);
}
else
{
return(unsigned int)-1073741811;
}
}
}
else if( byte_140C23D11 )
{
PopSetAwayModeStatus(0);
PopNotifyConsoleUserPresent(0, v5, PopAwaymodeExitReason);
}
return v4;
}Referenced by:
PopIssueActionRequest