PspAllocateRateControl

CHAR *__fastcall PspAllocateRateControl(INT64 a1){
  INT64 RateControlSize; 
  _POOL_TYPE v2; 
  int v3; 
  _QWORD *PoolWithTag; 
  INT64 v5; 
  RateControlSize = PspGetRateControlSize(a1);
  v2 = NonPagedPoolNx;
  if( v3 != 2 )
    v2 = PagedPool;
  PoolWithTag = ExAllocatePoolWithTag(v2, RateControlSize, 0x624A7350ui64);
  if( PoolWithTag )
  {
    v5 = PsChargeSharedPoolQuota(*((_QWORD *)KeGetCurrentThread() + 23), RateControlSize, 0i64);
    if( v5 )
    {
      memset((INT64)PoolWithTag, 0i64);
      *PoolWithTag = v5;
    }
    else
    {
      ExFreePoolWithTag(PoolWithTag, 0x624A7350u);
      return 0i64;
    }
  }
  return(CHAR *)PoolWithTag;
}

Referenced by:

NtSetInformationJobObject
PspAddSchedulingGroupToJobChain
PspSetJobRateControl