PopSessionInputChange
VOID __stdcall PopSessionInputChange(
_DEVICE_OBJECT *SessionId,
POWER_SESSION_RIT_STATE *SessionInput,
POWER_SESSION_TIMEOUTS *SessionTimeouts,
UINT64 *a4){
BOOLEAN Active;
ULONG LastInputTime;
unsigned int v6;
bool v8;
const _EVENT_DESCRIPTOR *v9;
POWER_SESSION_TIMEOUTS *v10;
Active = SessionInput->Active;
LastInputTime = SessionInput->LastInputTime;
v6 = (unsigned int)SessionId;
PopPrintEx(3ui64, (INT8 *)"PopAdaptive:>>>>> %s session %u input is %s\n");
v8 = (_DWORD)PopConsoleContext == v6 && v6 != -1;
v9 = (const _EVENT_DESCRIPTOR *)POP_ETW_ADPM_ACTIVE_INPUT;
if( !Active )
v9 = &POP_ETW_ADPM_PASSIVE_INPUT;
PopDiagTraceSessionStates(v9, v6, v8);
PopAcquireAdaptiveLock(1u);
if( Active )
{
if( v8 )
PopConsoleSessionActiveInput(v6, LastInputTime, SessionTimeouts);
else
PopRemoteSessionActiveInput(v6, v10, (POWER_SESSION_TIMEOUTS)SessionTimeouts);
}
else if( v8 )
{
PopConsoleSessionPassiveInput(v6, LastInputTime, SessionTimeouts);
}
else
{
PopSetSessionUserStatus(v6, PowerUserInactive);
SessionTimeouts->DisplayTimeout = PopGetDisplayTimeout(v6);
SessionTimeouts->InputTimeout = PopInputTimeout;
}
PopReleaseAdaptiveLock();
}Referenced by:
NtPowerInformation