3.2.6.4.2 Queue
The MQDS client MUST perform the following actions:
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.
The value of iAttributeList MUST be copied to ReadIterator.AttributeList.
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
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)
The list of property identifiers in the aCol field of the MQCOLUMNSET structure MUST be copied to ReadIterator.PropidList.
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:
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.
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.
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.
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:
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.
The dwOrder field MUST be set to QUERY_SORTASCEND if SortAscending is TRUE, or to QUERY_SORTDESCEND if SortAscending is FALSE.
Other input arguments for the S_DSLookupBegin method MUST be computed as described in section 3.1.4.17.
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.
Processing MUST end. rStatus MUST be set to DirectoryOperationResult.Success. rQueryHandle MUST be set to the PCONTEXT_HANDLE_TYPE returned by S_DSLookupBegin.