ObAdjustSecurityQuota

NTSTATUS __stdcall ObAdjustSecurityQuota(VOID *Object, UINT64 NewSize){
  _OBJECT_HEADER *v2; 
  unsigned int v3; 
  _OBJECT_HEADER_QUOTA_INFO *v4; 
  VOID *v5; 
  VOID *SecurityDescriptorQuotaBlock; 

  v2 = (_OBJECT_HEADER *)((char *)Object - 48);
  v3 = NewSize;
  if( v2->ObjectCreateInfo == (_OBJECT_CREATE_INFORMATION *)1 )
    return 0;
  v4 = OBJECT_HEADER_TO_QUOTA_INFO(v2);
  v5 = PsChargeSharedPoolQuota(KeGetCurrentThread()->ApcState.Process, v3, 0i64);
  if( v5 )
  {
    SecurityDescriptorQuotaBlock = v4->SecurityDescriptorQuotaBlock;
    if( SecurityDescriptorQuotaBlock )
      PsReturnSharedPoolQuota(SecurityDescriptorQuotaBlock, v4->SecurityDescriptorCharge, 0);
    v4->SecurityDescriptorCharge = v3;
    v4->SecurityDescriptorQuotaBlock = v5;
    return 0;
  }
  return -1073741756;
}

Referenced by:

ObSetSecurityDescriptorInfo