PopSessionWinlogonNotification
VOID __stdcall PopSessionWinlogonNotification(UINT64 SessionId, POWER_SESSION_WINLOGON *SessionWinlogon){
BOOLEAN Locked;
unsigned int v3;
BOOLEAN Console;
const _EVENT_DESCRIPTOR *v5;
unsigned int v6;
POWER_MONITOR_REQUEST_REASON v7;
UINT64 v8;
unsigned int LockConsoleTimeoutUnsafe;
_POP_SESSION_VALUE Data;
Locked = SessionWinlogon->Locked;
v3 = SessionId;
Console = SessionWinlogon->Console;
v5 = (const _EVENT_DESCRIPTOR *)POP_ETW_ADPM_SESSION_LOCKED;
v6 = 0;
Data = 0i64;
if( !Locked )
v5 = &POP_ETW_ADPM_SESSION_UNLOCKED;
PopDiagTraceSessionStates(v5, v3, Console);
PopPrintEx(3ui64, (INT8 *)"PopAdaptive:>>>>> %s session %u is %s\n");
if( Console )
{
PopAcquireAdaptiveLock(0);
if( Locked )
{
BYTE4(xmmword_140C203D0) = 1;
LockConsoleTimeoutUnsafe = PopGetLockConsoleTimeoutUnsafe(v8);
Data.Timeout = LockConsoleTimeoutUnsafe;
if( LockConsoleTimeoutUnsafe && !BYTE5(xmmword_140C203D0) )
{
BYTE6(xmmword_140C203D0) = 1;
HIDWORD(PopLazyContext) = LockConsoleTimeoutUnsafe;
BYTE1(qword_140C203B0) = 1;
PopUpdateTimeouts(v3, &Data, 0i64);
}
}
else
{
BYTE4(xmmword_140C203D0) = 0;
if( BYTE6(xmmword_140C203D0) )
{
BYTE6(xmmword_140C203D0) = 0;
PopLazySensorActiveInput(v3, v7);
}
}
PopReleaseAdaptiveLock();
LOBYTE(v6) = Locked != 0;
Data.Timeout = v6;
PopSetPowerSettingValueAcDc((_LPCGUID)&GUID_CONSOLE_LOCKED, 4ui64, &Data);
}
}Referenced by:
NtPowerInformation