PspLockJobsAndProcessExclusive
VOID __stdcall PspLockJobsAndProcessExclusive(
_PSP_JOB_LOCK_HIERARCHY *JobHierarchy,
_EPROCESS *Process,
_ETHREAD *CurrentThread){
unsigned int i;
_EJOB *v5;
--CurrentThread->Tcb.SpecialApcDisable;
if( Process )
ExAcquirePushLockExclusiveEx(&Process->ProcessLock, 0i64);
for( i = 0; i < *JobHierarchy; ++i )
{
v5 = *(_EJOB **)&JobHierarchy[4 * i + 2];
if( LOBYTE(JobHierarchy[4 * i + 4]) )
PspLockJobChain(v5, 0i64);
else
ExAcquireResourceExclusiveLite((UINT64)v5 + 56, 1, (INT64)CurrentThread);
}
}Referenced by:
PspAssignProcessToJob
PspJobDelete