3.1.6.1.3.2 Creation

  1. If iAttributeList was not provided as an argument, an iAttributeList MUST be constructed that MUST contain the names of all Site ADM element attributes listed in section 3.1.6.20.4, except PrimarySiteController and PublicSigningKey.

  2. Let SiteAttributeList be a list of site attribute names, initialized to be empty. For each site attribute listed in the following table, if the corresponding Site ADM element attribute name appears in iAttributeList and that attribute is populated in iDirectoryObject, add the site attribute name to SiteAttributeList and compute the value of the attribute as shown. Site ADM element attribute names that appear in iAttributeList but do not appear in the following table or in subsections referenced by the table MUST be ignored.

    site attribute

    Attribute value computation

    mSMQInterval1 ([MS-ADA2] section 2.545)

    Integer copied from iDirectoryObject.IntraSiteReplicationInterval.

    mSMQInterval2 ([MS-ADA2] section 2.546)

    Integer copied from iDirectoryObject.InterSiteReplicationInterval.

    mSMQSiteForeign ([MS-ADA2] section 2.576)

    If iDirectoryObject.ForeignSite is TRUE,

    mSMQSiteForeign is 0x01

    Else

    mSMQSiteForeign is 0x00.

    mSMQNt4Stub ([MS-ADA2] section 2.555)

    If iDirectoryObject.MigratedFromMsmq10 is TRUE,

    mSMQNt4Stub is 0x01

    Else

    mSMQNt4Stub is 0x00.

    nTSecurityDescriptor ([MS-ADA3] section 2.37)

    See section 3.1.6.1.3.4.

  3. A Create Object Using LDAP (section 3.1.6.12) event MUST be generated with the following arguments:

    • iParentPath := "CN=Services, CN=Configuration, <root>", where <root> is as specified in section 2.2.1.

    • iChildName := iDirectoryObject.Name

    • iObjectClass := "site"

    • iAttributes := a list of name-value pairs consisting of the attribute names in SiteAttributeList and the corresponding values, as computed in step 2.

  4. If the Create Object Using LDAP event returns an rStatus that is not DirectoryOperationResult.Success, rStatus MUST be set to the rStatus returned by the Create Object Using LDAP event, rObjectGUID is undefined, and processing MUST end. Otherwise, rObjectGuid is set to the rObjectGuid returned by the Create Object Using LDAP event.

  5. rStatus MUST be set to DirectoryOperationResult.Success, and processing MUST end.