3.2.6.4.2 Queue

 The MQDS client MUST perform the following actions:

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

  2. The value of iAttributeList MUST be copied to ReadIterator.AttributeList.

  3. The pColumns argument for the S_DSLookupBegin method (section 3.1.4.17) MUST be computed. For each Queue attribute listed in the following table that appears in iAttributeList, the corresponding property identifier MUST be added to the aCol field of the MQCOLUMNSET structure unless it is already present. (aCol MUST not contain duplicates.) Queue attributes that appear in iAttributeList but are not listed in the following table MUST be ignored, and the corresponding entry in iAttributeSortOrder, if any, MUST be removed.

    Queue attribute

    Property identifier

    Identifier

    PROPID_Q_INSTANCE ([MS-MQMQ] section 2.3.1.1)

    Type

    PROPID_Q_TYPE ([MS-MQMQ] section 2.3.1.2)

    Pathname

    PROPID_Q_PATHNAME ([MS-MQMQ] section 2.3.1.3)

    Journaling

    PROPID_Q_JOURNAL ([MS-MQMQ] section 2.3.1.4)

    Quota

    PROPID_Q_QUOTA ([MS-MQMQ] section 2.3.1.5)

    BasePriority

    PROPID_Q_BASEPRIORITY ([MS-MQMQ] section 2.3.1.6)

    JournalQuota

    PROPID_Q_JOURNAL_QUOTA ([MS-MQMQ] section 2.3.1.7)

    Label

    PROPID_Q_LABEL ([MS-MQMQ] section 2.3.1.8)

    CreateTime

    PROPID_Q_CREATE_TIME ([MS-MQMQ] section 2.3.1.9)

    ModifyTime

    PROPID_Q_MODIFY_TIME ([MS-MQMQ] section 2.3.1.10)

    Authentication

    PROPID_Q_AUTHENTICATE ([MS-MQMQ] section 2.3.1.11)

    PrivacyLevel

    PROPID_Q_PRIV_LEVEL ([MS-MQMQ] section 2.3.1.12)

    Transactional

    PROPID_Q_TRANSACTION ([MS-MQMQ] section 2.3.1.13)

    PartitionIdentifier

    PROPID_Q_PARTITIONID ([MS-MQMQ] section 2.3.1.16)

    Security

    PROPID_Q_SECURITY ([MS-MQMQ] section 2.3.1.25)

    FullPath

    PROPID_Q_FULL_PATH ([MS-MQMQ] section 2.3.1.20)

    QualifiedPathname

    PROPID_Q_PATHNAME_DNS ([MS-MQMQ] section 2.3.1.22)

    Scope

    PROPID_Q_SCOPE ([MS-MQMQ] section 2.3.1.14)

  4. The list of property identifiers in the aCol field of the MQCOLUMNSET structure MUST be copied to ReadIterator.PropidList.

  5. The pRestriction argument for the S_DSLookupBegin method MUST be computed. For each attribute-filter expression that appears in iFilter, an MQPROPERTYRESTRICTION structure (section 2.2.11) MUST be added to the paPropRes field of the MQRESTRICTION structure. The MQPROPERTYRESTRICTION structure MUST be initialized as follows:

    1. The value of the rel field MUST be computed from the operator in the attribute-filter expression according to the table in section 2.2.11.

    2. The value of the prop field MUST be set to the property identifier that corresponds to the Queue attribute specified in the attribute-filter expression according to the table above.

    3. The value of the prval field MUST be computed from the value in the original expression according to the following table.

      Filtering on attribute

      Filtering value computation

      Identifier

      copy

      Type

      copy

      Pathname

      copy

      Journaling

      TRUE converts to 1; FALSE converts to 0.

      Quota

      copy

      BasePriority

      copy

      JournalQuota

      copy

      Label

      copy

      CreateTime

      copy

      ModifyTime

      copy

      Authentication

      TRUE converts to 1; FALSE converts to 0.

      PrivacyLevel

      See the table in section 3.2.6.3.2.1

      Transactional

      TRUE converts to 1; FALSE converts to 0.

      PartitionIdentifier

      copy

      Security

      copy

      FullPath

      copy

      QualifiedPathname

      copy

      Scope

      Enterprise converts to 1; Site converts to 0.

  6. The pSort argument for the S_DSLookupBegin method MUST be computed. For each attribute-sort-order expression that appears in iAttributeSortOrder that has a nonzero SortPriority, an MQSORTKEY structure (section 2.2.14) MUST be added to the aCol field of the MQSORTSET structure. The attribute-sort-order expressions MUST be processed in priority order according to the SortPriority, highest priority first. Each MQSORTKEY structure MUST be initialized as follows:

    1. The propColumn field MUST be set to the property identifier that corresponds to the Queue attribute indicated by the attribute-sort-order expression, according to the first table in this section.

    2. The dwOrder field MUST be set to QUERY_SORTASCEND if SortAscending is TRUE, or to QUERY_SORTDESCEND if SortAscending is FALSE.

  7. Other input arguments for the S_DSLookupBegin method MUST be computed as described in section 3.1.4.17.

  8. The S_DSLookupBegin method MUST be called with the given arguments. If the return value is not MQ_OK, processing MUST end. rStatus MUST be set to DirectoryOperationResult.GenericError and rQueryHandle is undefined.

  9. Processing MUST end. rStatus MUST be set to DirectoryOperationResult.Success. rQueryHandle MUST be set to the PCONTEXT_HANDLE_TYPE returned by S_DSLookupBegin.