PspEnforceLimitsJobPreCallback
NTSTATUS __fastcall PspEnforceLimitsJobPreCallback(_EJOB *Job, _LIST_ENTRY **a2){
NTSTATUS v2;
UINT64 *v5;
int Type;
__int64 v7;
__int64 v8;
unsigned int v9;
v2 = 0;
*((_DWORD *)Job + 308) = PspEnforcementSequenceNumber;
if( (*((_DWORD *)Job + 212) & 6) != 0 || *((_DWORD *)Job + 217) || (*((_DWORD *)Job + 330) & 0x800) != 0 )
{
v5 = (UINT64 *)((char *)a2 + 44);
*a2 = (_LIST_ENTRY *)*((_QWORD *)Job + 98);
Type = 0;
v7 = 60i64;
a2[1] = (_LIST_ENTRY *)*((_QWORD *)Job + 103);
a2[2] = 0i64;
do
{
v8 = *((_QWORD *)Job + 123);
if( !v8 || (v9 = *(_DWORD *)(v7 + v8)) == 0 )
v9 = 1;
PspQueryRateControlHistory(Job, v9, 0, v5, (_PSP_JOB_RATE_CONTROL_TYPE)Type);
*(_DWORD *)((char *)a2 + v7 - 28) = v9;
++Type;
v7 += 4i64;
v5 = (UINT64 *)((char *)v5 + 4);
}
while( Type < 3 );
}
else
{
memset((char *)Job + 1120, 0i64, 0x68u);
_InterlockedAnd((volatile signed __int32 *)Job + 330, 0xFFBFFFFF);
return -1073741536;
}
return v2;
}Referenced by:
No references.