TtmpSetDisplayRequestEnded
VOID __fastcall TtmpSetDisplayRequestEnded(INT64 rcx0, INT64 a2){
char v3;
_QWORD **v4;
_QWORD *v5;
_QWORD *v6;
_QWORD *v7;
int TerminalById;
__int64 v9;
int v10;
int v11;
INT64 v12;
__int64 a1;
v12 = 0i64;
a1 = 0i64;
v3 = 0;
if( !TtmpFindPowerRequestEntryById(rcx0, a2, &v12) )
return;
v4 = (_QWORD **)(v12 + 48);
while( 1 )
{
v5 = *v4;
if( *v4 == v4 )
break;
if( (_QWORD **)v5[1] != v4 || (v6 = (_QWORD *)*v5, *(_QWORD **)(*v5 + 8i64) != v5) )
__fastfail(3u);
*v4 = v6;
v7 = v5 - 1;
v6[1] = v4;
TerminalById = TtmiGetTerminalById(&a1, rcx0, *((unsigned int *)v5 - 2));
if( TerminalById < 0 )
{
TtmiLogError((PSTR)"TtmpSetDisplayRequestEnded", 736i64, (unsigned int)TerminalById, 0xFFFFFFFFi64);
goto LABEL_13;
}
v9 = a1;
if( *(_DWORD *)(a1 + 24) != 1416459348 )
goto LABEL_13;
v10 = *(_DWORD *)(a1 + 32);
if( v10 )
{
v11 = v10 - 1;
*(_DWORD *)(a1 + 32) = v11;
if( !v11 )
{
*(_DWORD *)(v9 + 36) |= 0x24u;
v3 = 1;
}
LABEL_13:
ExFreePoolWithTag(v7, 0x52507454u);
}
else
{
TtmiLogError((PSTR)"TtmpSetDisplayRequestEnded", 718i64, 3221225485i64, 0xFFFFFFFFi64);
}
}
if( v3 )
TtmiScheduleSessionWorker(rcx0, 2);
}Referenced by:
TtmpUpdateDisplayRequiredPowerRequest