3.1.6.4.2.2 Read Begin
If iAttributeList was not provided as an argument, then an iAttributeList MUST be constructed that MUST contain the names of all Queue ADM element attributes listed in section 3.1.6.20.2.
The value of iAttributeList MUST be copied to ReadIterator.AttributeList.
A Create LDAP Attribute List (section 3.1.6.10) event MUST be generated with the following arguments:
iDirectoryObjectType := "Queue"
iADMAttributeList := iAttributeList
Let QueueAttributeList be a list of mSMQQueue attribute names, initialized to be the LDAP attribute names returned in rLDAPAttributeList by the Create LDAP Attribute List event. The populated QueueAttributeList MUST be copied to ReadIterator.LDAPAttributeList. If any ADM attribute present in iAttributeList does not appear in the rLDAPAttributesList returned by the Create LDAP Attribute List event, the entry in iAttributeSortOrder corresponding to that iAttributeList entry, if any, MUST be removed.
Let QueueFilterList be a list of attribute-filter expressions modified to refer to mSMQQueue attributes and values, initialized to be empty. For each expression in iFilter, add an expression to QueueFilterList that consists of:
The mSMQQueue attribute that corresponds to the Queue ADM element attribute in the original expression, as shown in the following table.
The same operator as the original expression.
A value transformed from the value in the original expression as shown in the following table.
If the Queue ADM element attribute in the original expression does not appear in the following table, the expression MUST be ignored.
Queue ADM element attribute
mSMQQueue attribute
Value transformation
Identifier
Copy
Label
Copy
CreateTime
whenCreated ([MS-ADA3] section 2.371)
Converts to midnight (00:00:00), January 1, 1970 UTC + CreateTime seconds.
ModifyTime
whenChanged ([MS-ADA3] section 2.370)
Converts to midnight (00:00:00), January 1, 1970 UTC + ModifyTime seconds.
Type
mSMQQueueType ([MS-ADA2] section 2.565)
Copy
Journaling
mSMQJournal ([MS-ADA2] section 2.547)
TRUE converts to 1; FALSE converts to 0.
Quota
mSMQQueueQuota ([MS-ADA2] section 2.564)
Copy
JournalQuota
mSMQQueueJournalQuota ([MS-ADA2] section 2.548)
Copy
Authentication
mSMQAuthenticate ([MS-ADA2] section 2.530)
TRUE converts to 1; FALSE converts to 0.
PrivacyLevel
mSMQPrivacyLevel ([MS-ADA2] section 2.560)
See the table in section 3.1.6.1.2.4.
Transactional
mSMQTransactional ([MS-ADA2] section 2.583)
TRUE converts to 1; FALSE converts to 0.
MulticastAddress
MSMQ-MulticastAddress ([MS-ADA2] section 2.527)
Copy
Security
nTSecurityDescriptor ([MS-ADA3] section 2.37)
Copy
BasePriority
mSMQBasePriority ([MS-ADA2] section 2.531)
Copy
FullPath
Copy
A Search Using LDAP (section 3.1.6.15) event MUST be generated with the following arguments:
iObjectClass := mSMQQueue
iFilter := QueueFilterList
iAttributes := QueueAttributeList
If the Search Using LDAP event returns an rStatus that is not DirectoryOperationResult.Success and rStatus is set to DirectoryOperationResult.ObjectNotFound, ReadIterator.LDAPState MUST be set to an empty list, rStatus MUST be set to DirectoryOperationResult.Success, and processing MUST end.
If the search fails for any other reason, rStatus MUST be set to the rStatus returned by the Search Using LDAP event, and processing MUST end.