PopReleaseAdaptiveLock
VOID __stdcall PopReleaseAdaptiveLock(){
UINT8 v0;
__int128 v1;
unsigned int v2;
int v3;
__int128 TimeOut;
__int64 MonitorOnReason;
int v6;
__int128 v7;
__int64 v8;
PopAdpmLockThread = 0i64;
v7 = 0i64;
v8 = 0i64;
TimeOut = 0i64;
MonitorOnReason = 0i64;
if( (_BYTE)PopLazyContext )
{
v1 = PopLazyContext;
LOBYTE(PopLazyContext) = 0;
TimeOut = v1;
MonitorOnReason = qword_140C203B0;
}
ExReleaseResourceLite(&PopAdpmLock);
KeLeaveCriticalRegionThread((__int64)KeGetCurrentThread());
if( (_BYTE)TimeOut )
{
if( BYTE2(MonitorOnReason) )
{
PopNotifyConsoleUserPresent(0, v0, SHIDWORD(MonitorOnReason));
v3 = DWORD1(TimeOut);
PopSetWin32kDisplayTimeout(DWORD1(TimeOut), HIDWORD(TimeOut));
v2 = DWORD2(TimeOut);
PopSetWin32kInputTimeout(DWORD1(TimeOut), DWORD2(TimeOut));
}
else
{
v2 = DWORD2(TimeOut);
v3 = DWORD1(TimeOut);
if( (_BYTE)MonitorOnReason )
PopSetWin32kInputTimeout(DWORD1(TimeOut), DWORD2(TimeOut));
if( BYTE1(MonitorOnReason) )
PopSetWin32kDisplayTimeout(DWORD1(TimeOut), HIDWORD(TimeOut));
}
v6 = v3;
LODWORD(v8) = 7;
PopDispatchStateCallout(&v7, (__int64)&v6);
if( BYTE3(MonitorOnReason) )
PopSetWin32kInputTimeout(0xFFFFFFFFui64, v2);
}
}Referenced by:
PopActiveLockScreenPowerRequest
PopAdaptivePowerSettingCallback
PopIsLockConsoleTimeoutActive
PopSessionConnectionChange
PopSessionInputChange
PopSessionWinlogonNotification
PopSetDisplayStatus
PopUserPresentOverride