PopSessionWinlogonNotification
VOID __stdcall PopSessionWinlogonNotification(UINT64 SessionId, POWER_SESSION_WINLOGON *SessionWinlogon){
BOOLEAN Locked;
unsigned int v3;
BOOLEAN Console;
_EVENT_DESCRIPTOR *v5;
int v6;
POWER_MONITOR_REQUEST_REASON v7;
UINT64 v8;
int LockConsoleTimeoutUnsafe;
__int64 Data;
Locked = SessionWinlogon->Locked;
v3 = SessionId;
Console = SessionWinlogon->Console;
v5 = (_EVENT_DESCRIPTOR *)POP_ETW_ADPM_SESSION_LOCKED;
v6 = 0;
Data = 0i64;
if( !Locked )
v5 = (_EVENT_DESCRIPTOR *)&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);
LODWORD(Data) = LockConsoleTimeoutUnsafe;
if( LockConsoleTimeoutUnsafe && !BYTE5(xmmword_140C203D0) )
{
BYTE6(xmmword_140C203D0) = 1;
HIDWORD(PopLazyContext) = LockConsoleTimeoutUnsafe;
BYTE1(qword_140C203B0) = 1;
PopUpdateTimeouts(v3, (int *)&Data, 0i64);
}
}
else
{
BYTE4(xmmword_140C203D0) = 0;
if( BYTE6(xmmword_140C203D0) )
{
BYTE6(xmmword_140C203D0) = 0;
PopLazySensorActiveInput(v3, v7);
}
}
PopReleaseAdaptiveLock();
LOBYTE(v6) = Locked != 0;
LODWORD(Data) = v6;
PopSetPowerSettingValueAcDc(&GUID_CONSOLE_LOCKED, 4ui64, &Data);
}
}Referenced by:
NtPowerInformation