3.2.6.7.1 QueueManager

 The MQDS client MUST perform the following actions:

  1. The arguments supplied to the Write Directory event MUST meet the following conditions. If any of these conditions is violated, processing of the event MUST end. rStatus MUST be set to DirectoryOperationResult.GenericError and rObjectGUID is undefined.

    • At least one of the iDirectoryObject.ComputerName or iDirectoryObject.Identifier attributes MUST be populated.

  2. If iAttributeList was not provided as an argument, then an iAttributeList MUST be constructed that MUST contain the names of all QueueManager directory attributes listed in [MS-MQDMPR] section 3.1.1.1.

  3. The aProp and apVar arguments for the S_DSSetProps method (section 3.1.4.9) or S_DSSetPropsGuid method (section 3.1.4.10) MUST be computed. For each property identifier listed in the following table, if the corresponding QueueManager attribute name appears in iAttributeList and that attribute is populated in iDirectoryObject, add the property identifier to aProp, add a PROPVARIANT to apVar that is set to the correct type for the property and contains in the correct field the computed value for the property, as shown in the following table. QueueManager attribute names that appear in iAttributeList but do not appear in the following table or subsections referenced by the table MUST be ignored.

    Property identifier

    Property value computation

    PROPID_QM_CNS ([MS-MQMQ] section 2.3.2.6)

    List of GUIDs copied from iDirectoryObject.ConnectedNetworkIdentifierList.

    PROPID_QM_OUTFRS ([MS-MQMQ] section 2.3.2.7)

    List of GUIDs copied from iDirectoryObject.OutRoutingServerIdentifierList.

    PROPID_QM_INFRS ([MS-MQMQ] section 2.3.2.8)

    List of GUIDs copied from iDirectoryObject.InRoutingServerIdentifierList.

    PROPID_QM_SERVICE ([MS-MQMQ] section 2.3.2.9)

    Computed from iDirectoryObject.DirectoryServer, iDirectoryObject.DirectoryServerType, iDirectoryObject.RemoteAccessServer, and iDirectoryObject.RoutingServer. See section 3.2.6.1.1.1.

    PROPID_QM_QUOTA ([MS-MQMQ] section 2.3.2.10)

    Integer copied from iDirectoryObject.QueueManagerQuota.

    PROPID_QM_JOURNAL_QUOTA ([MS-MQMQ] section 2.3.2.14)

    Integer copied from iDirectoryObject.JournalQuota.

    PROPID_QM_MACHINE_TYPE ([MS-MQMQ] section 2.3.2.15)

    Unicode string copied from iDirectoryObject.QueueManagerVersion.

    PROPID_QM_FOREIGN ([MS-MQMQ] section 2.3.2.18)

    If iDirectoryObject.ForeignSystem is TRUE, set to 0x01; Else, set to 0x00.

    PROPID_QM_OS ([MS-MQMQ] section 2.3.2.19)

    Computed from iDirectoryObject.OperatingSystemType. See section 3.2.6.1.1.2.

    PROPID_QM_SIGN_PKS ([MS-MQMQ] section 2.3.2.33)

    MQDSPUBLICKEYS structure ([MS-MQMQ] section 2.2.2) copied from iDirectoryObject.PublicSigningKeyList.

    PROPID_QM_ENCRYPT_PKS ([MS-MQMQ] section 2.3.2.32)

    MQDSPUBLICKEYS structure copied from iDirectoryObject.PublicEncryptionKeyList.

    PROPID_QM_SITE_IDS ([MS-MQMQ] section 2.3.2.21)

    List of GUIDs copied from iDirectoryObject.SiteIdentifierList.

    PROPID_QM_SERVICE_ROUTING ([MS-MQMQ] section 2.3.2.24)

    If iDirectoryObject.RoutingServer is TRUE, set to 0x01; Else, set to 0x00.

    PROPID_QM_SERVICE_DSSERVER ([MS-MQMQ] section 2.3.2.25)

    If iDirectoryObject.DirectoryServer is TRUE, set to 0x01; Else, set to 0x00.

    PROPID_QM_SERVICE_DEPCLIENTS ([MS-MQMQ] section 2.3.2.26)

    If iDirectoryObject.SupportingServer is TRUE, set to 0x01; Else, set to 0x00.

  4. Other input arguments for the S_DSSetProps or S_DSSetPropsGuid method MUST be computed:

    1. dwObjectType MUST be MQDS_MACHINE.

    2.  Other arguments MUST be set up as described in section 3.1.4.9 or 3.1.4.10, depending on which method will be used in the following steps.

  5. If iDirectoryObject.ComputerName attribute is populated, the S_DSSetProps method MUST be called with pwcsPathname set to point to a buffer that contains the value of iDirectoryObject.ComputerName and the other given arguments. Otherwise, the iDirectoryObject.Identifier attribute MUST be populated, and the S_DSSetPropsGuid method MUST be called with pGuid set to point to a buffer that contains the value of iDirectoryObject.Identifier and the other given arguments. If the return value is not MQ_OK, processing MUST end. rStatus MUST be set to DirectoryOperationResult.GenericError.

  6. Processing MUST end. rStatus MUST be set to DirectoryOperationResult.Success.