PspAllocateRateControl
_JOB_RATE_CONTROL_HEADER *__stdcall PspAllocateRateControl(PSP_JOB_RATE_CONTROL_TYPE Type){
UINT64 RateControlSize;
unsigned int v2;
int v3;
_JOB_RATE_CONTROL_HEADER *PoolWithTag;
VOID *v5;
RateControlSize = PspGetRateControlSize(Type);
v2 = 512;
if( v3 != 2 )
v2 = 1;
PoolWithTag = (_JOB_RATE_CONTROL_HEADER *)ExAllocatePoolWithTag(v2, RateControlSize, 1649046352i64);
if( PoolWithTag )
{
v5 = PsChargeSharedPoolQuota(KeGetCurrentThread()->ApcState.Process, RateControlSize, 0i64);
if( v5 )
{
memset(PoolWithTag, 0i64, RateControlSize);
PoolWithTag->RateControlQuotaReference = v5;
}
else
{
ExFreePoolWithTag(PoolWithTag, 0x624A7350u);
return 0i64;
}
}
return PoolWithTag;
}Referenced by:
NtSetInformationJobObject
PspSetJobRateControl