PspSendProcessNotificationToJobChain
VOID __stdcall PspSendProcessNotificationToJobChain(
_EPROCESS *Process,
UINT64 NotificationId,
VOID *NotificationContext){
_ETHREAD *CurrentThread;
_EJOB *i;
_EJOB *ExceptionList;
_EJOB *Job;
CurrentThread = (_ETHREAD *)KeGetCurrentThread();
Job = 0i64;
ExceptionList = 0i64;
PspLockRootJobFromProcess(Process, CurrentThread, &Job, &ExceptionList);
for( i = Job; i; i = (_EJOB *)*((_QWORD *)i + 134) )
{
PspLockJobConditionally(i, &ExceptionList);
if( *((_QWORD *)i + 57) && ((1 << NotificationId) & *((_DWORD *)i + 219)) != 0 )
PspSendJobNotification(i, NotificationId, NotificationContext, 0);
PspUnlockJobConditionally(i, &ExceptionList);
}
PspUnlockJob(ExceptionList, CurrentThread);
}Referenced by:
PspRundownSingleProcess