PopDirectedDripsNotifyAppsAndServices
CHAR __stdcall PopDirectedDripsNotifyAppsAndServices(INT64 a1, INT64 a2, UINT8 a3){
__int64 v3;
__int64 v7;
int v8;
__int64 v9;
__int64 v10;
__int64 v11;
__int64 v12;
__int64 v13;
__int64 v14;
__int64 v15;
__int64 v16;
UINT64 SessionId;
_InterlockedOr((volatile signed __int32 *)a1, 0);
v7 = *(_QWORD *)&KUSER_SHARED_DATA.InterruptTime.LowPart;
if( a3 )
{
MiLockPagableImageSection(ExPageLockHandle, 1u);
*(_DWORD *)(a2 + 48) = *(_DWORD *)a2;
*(_DWORD *)(a2 + 40) = 2;
*(_DWORD *)(a2 + 44) = 5;
*(_DWORD *)(a2 + 56) = 21;
v8 = PoBlockConsoleSwitch((_WIN32_POWERSTATE_PARAMETERS *)(a2 + 36));
LOBYTE(v9) = 1;
*(_DWORD *)(a2 + 32) = v8;
PopDirectedDripsSendSuspendResumeNotification(1, v9, v10, v11);
LOBYTE(v12) = 1;
PopDirectedDripsSendSuspendResumeNotification(0, v12, v13, v14);
_InterlockedOr((volatile signed __int32 *)a1, 8u);
*(_DWORD *)(a1 + 116) = 0;
}
else
{
PopDirectedDripsSendSuspendResumeNotification(0, 0i64, a3, v3);
PopDirectedDripsSendSuspendResumeNotification(1, 0i64, v15, v16);
LODWORD(SessionId) = *(_DWORD *)(a2 + 32);
*(_DWORD *)(a2 + 52) = 7;
PopDispatchStateCallout((VOID *)(a2 + 36), &SessionId);
MmUnlockPagableImageSection(ExPageLockHandle);
_InterlockedAnd((volatile signed __int32 *)a1, 0xFFFFFFF7);
}
return PopDiagTraceDirectedDripsNotifyAppsAndServices(
a3,
(*(_QWORD *)&KUSER_SHARED_DATA.InterruptTime.LowPart - v7) / 0x2710ui64,
(NPTEXTMETRIC *)((*(_QWORD *)&KUSER_SHARED_DATA.InterruptTime.LowPart - v7) / 0x2710ui64));
}Referenced by:
PopDirectedDripsEngage
PopDirectedDripsNotify