PspSendProcessNotificationToJobChain
void __fastcall PspSendProcessNotificationToJobChain(__int64 a1, __int64 a2, __int64 a3){
_ETHREAD *CurrentThread;
_EJOB *i;
_EJOB *ExceptionList;
_EJOB *Job;
CurrentThread = (_ETHREAD *)KeGetCurrentThread();
Job = 0i64;
ExceptionList = 0i64;
PspLockRootJobFromProcess((_EPROCESS *)a1, CurrentThread, &Job, &ExceptionList);
for( i = Job; i; i = i->ParentJob )
{
PspLockJobConditionally(i, &ExceptionList);
if( i->CompletionPort && ((1 << a2) & i->CompletionFilter) != 0 )
PspSendJobNotification(i, a2, (PVOID)a3, 0);
PspUnlockJobConditionally(i, &ExceptionList);
}
PspUnlockJob((__int64)ExceptionList, (__int64)CurrentThread);
}Referenced by:
PspRundownSingleProcess