PopDirectedDripsSendSuspendResumeNotification
int __fastcall PopDirectedDripsSendSuspendResumeNotification(char a1, __int64 a2, __int64 a3, __int64 a4){
unsigned __int8 v4;
_EPROCESS *NextSession;
_EPROCESS *i;
_EPROCESS *v7;
__int128 v9;
POWER_SUSPEND_RESUME SuspendResumeInput;
v4 = a2;
if( a1 )
{
for( i = 0i64; ; i = v7 )
{
NextSession = (_EPROCESS *)MmGetNextSession(i);
v7 = NextSession;
if( !NextSession )
break;
SuspendResumeInput = 0i64;
SuspendResumeInput.SessionId = MmGetSessionId(NextSession);
SuspendResumeInput.Suspend = v4;
*(_WORD *)&SuspendResumeInput.Apps = 1;
PopSuspendResumeInvocation(&SuspendResumeInput);
}
}
else
{
SuspendResumeInput = 0i64;
SuspendResumeInput.Suspend = a2;
PopSuspendResumeInvocation(&SuspendResumeInput);
v9 = 0i64;
if( v4 )
{
*(_QWORD *)&v9 = 0x400000000i64;
WORD6(v9) = 256;
}
else
{
*(_QWORD *)&v9 = 0x1200000003i64;
WORD6(v9) = 1;
PopUmpoSendLegacyEvent(&v9);
DWORD1(v9) = 7;
}
LODWORD(NextSession) = PopUmpoSendLegacyEvent(&v9);
}
return(int)NextSession;
}Referenced by:
PopDirectedDripsNotifyAppsAndServices