PspIncrementJobChainProcessCounts
VOID __fastcall PspIncrementJobChainProcessCounts(_EJOB *Job, _EJOB *a2, INT64 a3, INT16 a4){
_EJOB *v6;
int v7;
int v8;
v6 = Job;
if( Job != a2 )
{
v7 = a4 & 0x8000;
do
{
v8 = *((_DWORD *)Job + 53);
if( v8 != -1 )
*((_DWORD *)Job + 53) = v8 + 1;
++*((_DWORD *)Job + 54);
++*((_DWORD *)Job + 306);
if( v7 || (*(_DWORD *)(a3 + 2172) & 0x20) != 0 )
++*((_DWORD *)Job + 307);
Job = (_EJOB *)*((_QWORD *)Job + 134);
}
while( Job != a2 );
}
while( v6 != a2 )
{
_InterlockedAnd((volatile signed __int32 *)v6 + 330, 0xFFDFFFFF);
if( *((_QWORD *)v6 + 57) )
{
if( (*((_DWORD *)v6 + 219) & 0x40) != 0 )
PspSendJobNotification(v6, 6ui64, *(VOID **)(a3 + 1088), 0);
}
v6 = (_EJOB *)*((_QWORD *)v6 + 134);
}
}Referenced by:
PspAssignProcessToJob
PspImplicitAssignProcessToJob