3.2.6.3.1 QueueManager
The MQDS client MUST perform the following actions:
The arguments supplied to the Read Directory (section 3.2.6.3) 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.
At least one of the iDirectoryObject.ComputerName or iDirectoryObject.Identifier attributes MUST be populated.
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.
If the attribute name DirectoryServerType appears in iAttributeList, the attribute name DirectoryServer MUST be added to iAttributeList if it is not already present.
The aProp argument for the S_DSGetProps (section 3.1.4.7) method or the S_DSGetPropsGuid (section 3.1.4.8) method MUST be computed. For each QueueManager attribute listed in the following table that appears in iAttributeList, add the corresponding property identifier to aProp. QueueManager attributes that appear in iAttributeList but are not listed in the following table MUST be ignored.
QueueManager attribute
Property identifier
Attribute value computation
Identifier
PROPID_QM_MACHINE_ID ([MS-MQMQ] section 2.3.2.2)
GUID copied from property.
ComputerName
PROPID_QM_PATHNAME ([MS-MQMQ] section 2.3.2.3)
Unicode string copied from property.
ConnectedNetworkIdentifierList
PROPID_QM_CNS ([MS-MQMQ] section 2.3.2.6)
List of GUIDs copied from property.
OutRoutingServerIdentifierList
PROPID_QM_OUTFRS ([MS-MQMQ] section 2.3.2.7)
List of GUIDs copied from property.
InRoutingServerIdentifierList
PROPID_QM_INFRS ([MS-MQMQ] section 2.3.2.8)
List of GUIDs copied from property.
RemoteAccessServer
PROPID_QM_SERVICE ([MS-MQMQ] section 2.3.2.9)
If bit 0x00000010 of property is set, RemoteAccessServer is TRUE; Else, if bit 0x00000010 is not set, RemoteAccessServer is FALSE.
DirectoryServerType
PROPID_QM_SERVICE ([MS-MQMQ] section 2.3.2.9)
Computed from property; see section 3.2.6.3.1.1.
QueueManagerQuota
PROPID_QM_QUOTA ([MS-MQMQ] section 2.3.2.10)
Integer copied from property.
JournalQuota
PROPID_QM_JOURNAL_QUOTA ([MS-MQMQ] section 2.3.2.14)
Integer copied from property.
QueueManagerVersion
PROPID_QM_MACHINE_TYPE ([MS-MQMQ] section 2.3.2.15)
Unicode string copied from property.
CreateTime
PROPID_QM_CREATE_TIME ([MS-MQMQ] section 2.3.2.16)
Integer copied from property.
ModifyTime
PROPID_QM_MODIFY_TIME ([MS-MQMQ] section 2.3.2.17)
Integer copied from property.
ForeignSystem
PROPID_QM_FOREIGN ([MS-MQMQ] section 2.3.2.18)
If property equals 0x01, ForeignSystem is TRUE; Else, if property equals 0x00, ForeignSystem is FALSE.
OperatingSystemType
PROPID_QM_OS ([MS-MQMQ] section 2.3.2.19)
Computed from property. See section 3.2.6.3.1.2.
Security
PROPID_QM_SECURITY ([MS-MQMQ] section 2.3.2.36)
Security descriptor copied from property.
PublicSigningKeyList
PROPID_QM_SIGN_PKS ([MS-MQMQ] section 2.3.2.33)
MQDSPUBLICKEYS structure ([MS-MQMQ] section 2.2.2) copied from property.
PublicEncryptionKeyList
PROPID_QM_ENCRYPT_PKS ([MS-MQMQ] section 2.3.2.32)
MQDSPUBLICKEYS structure copied from property.
FullPath
PROPID_QM_FULL_PATH ([MS-MQMQ] section 2.3.2.20)
Unicode string copied from property.
SiteIdentifierList
PROPID_QM_SITE_IDS ([MS-MQMQ] section 2.3.2.21)
List of GUIDs copied from property.
OutRoutingServerFullPathList
PROPID_QM_OUTFRS_DN ([MS-MQMQ] section 2.3.2.22)
List of Unicode strings copied from property.
InRoutingServerFullPathList
PROPID_QM_INFRS_DN ([MS-MQMQ] section 2.3.2.23)
List of Unicode strings copied from property.
RoutingServer
PROPID_QM_SERVICE_ROUTING ([MS-MQMQ] section 2.3.2.24)
If property equals 0x01, RoutingServer is TRUE; Else, if property equals 0x00, RoutingServer is FALSE.
DirectoryServer
PROPID_QM_SERVICE_DSSERVER ([MS-MQMQ] section 2.3.2.25)
If property equals 0x01, DirectoryServer is TRUE; Else, if property equals 0x00, DirectoryServer is FALSE.
SupportingServer
PROPID_QM_SERVICE_DEPCLIENTS ([MS-MQMQ] section 2.3.2.26)
If property equals 0x01, SupportingServer is TRUE; Else, if property equals 0x00, SupportingServer is FALSE.
QualifiedComputerName
PROPID_QM_PATHNAME_DNS ([MS-MQMQ] section 2.3.2.29)
Unicode string copied from property.
Clustered
PROPID_QM_GROUP_IN_CLUSTER ([MS-MQMQ] section 2.3.2.35)
If property equals 1, Clustered is TRUE; Else, if property equals 0, Clustered is FALSE.
Other input arguments for the S_DSGetProps or S_DSGetPropsGuid method MUST be computed:
dwObjectType MUST be MQDS_MACHINE.
Other arguments MUST be set up as described in section 3.1.4.7 or 3.1.4.8, depending on which method will be used in the following steps.
If the attribute-filter expression ([MS-MQDMPR] section 3.1.7.1.20) in iFilter is of the form "ComputerName" EQUALS someName, the S_DSGetProps method MUST be called with pwcsPathname set to point to a buffer that contains someName and the other given arguments. Otherwise, the common steps for the Read Directory event ensure that the attribute-filter expression in iFilter is of the form "Identifier" EQUALS someGuid, and the S_DSGetPropsGuid method MUST be called with pGuid set to point to a buffer that contains someGuid and the other given arguments.
If the return value is MQDS_OBJECT_NOT_FOUND, processing MUST end. rStatus MUST be set to DirectoryOperationResult.ObjectNotFound and rDirectoryObject is undefined.
If the return value is not MQ_OK, processing MUST end. rStatus MUST be set to DirectoryOperationResult.GenericError and rDirectoryObject is undefined.
A QueueManager data element MUST be created. rDirectoryObject MUST be set to this new QueueManager data element. The attributes listed in iAttributeList MUST be computed according to the table above and set on rDirectoryObject.
Processing MUST end. rStatus MUST be set to DirectoryOperationResult.Success.