internal static RawAcl ParseSddlForm(string sddlForm, bool isDacl, ref ControlFlags sdFlags, ref int pos) { ParseFlags(sddlForm, isDacl, ref sdFlags, ref pos); byte revision = GenericAcl.AclRevision; List <GenericAce> aces = new List <GenericAce>(); while (pos < sddlForm.Length && sddlForm[pos] == '(') { GenericAce ace = GenericAce.CreateFromSddlForm( sddlForm, ref pos); if ((ace as ObjectAce) != null) { revision = GenericAcl.AclRevisionDS; } aces.Add(ace); } return(new RawAcl(revision, aces)); }