PspIncrementJobChainProcessCounts
VOID __fastcall PspIncrementJobChainProcessCounts(INT64 a1, INT64 a2, INT64 a3, INT16 a4){
_EJOB *v6;
int v7;
int v8;
v6 = (_EJOB *)a1;
if( a1 != a2 )
{
v7 = a4 & 0x8000;
do
{
v8 = *(_DWORD *)(a1 + 212);
if( v8 != -1 )
*(_DWORD *)(a1 + 212) = v8 + 1;
++*(_DWORD *)(a1 + 216);
++*(_DWORD *)(a1 + 1224);
if( v7 || (*(_DWORD *)(a3 + 2172) & 0x20) != 0 )
++*(_DWORD *)(a1 + 1228);
a1 = *(_QWORD *)(a1 + 1072);
}
while( a1 != a2 );
}
while( v6 != (_EJOB *)a2 )
{
_InterlockedAnd((volatile signed __int32 *)&v6->1320, 0xFFDFFFFF);
if( v6->CompletionPort )
{
if( (v6->CompletionFilter & 0x40) != 0 )
PspSendJobNotification(v6, 6ui64, *(PVOID *)(a3 + 1088), 0);
}
v6 = v6->ParentJob;
}
}Referenced by:
PspAssignProcessToJob
PspImplicitAssignProcessToJob