3.1.6.3 Read Directory

This event MUST be generated with the following arguments:

  • iDirectoryObjectType: A string that specifies the name of the sub-type of DirectoryObject ADM element to be read from the directory.

  • iFilter: An array of attribute-filter expressions ([MS-MQDMPR] section 3.1.7.1.20) where the valid attributes are the set of directory ADM attributes associated with a DirectoryObject ADM element instance of type iDirectoryObjectType. Each DirectoryObject ADM element instance that is returned by the read operation MUST satisfy all attribute-filter expressions in this array.

  • iAttributeList (Optional): An array of strings containing the names of the directory attributes associated with a DirectoryObject ADM element instance of type iDirectoryObjectType to be read from the directory and included in the rDirectoryObject return value. If this argument is not supplied, all directory ADM attributes are read.

Return Values:

  • rStatus: A DirectoryOperationResult that indicates the result of this directory operation.

  • rDirectoryObject: A DirectoryObject ADM element instance of type iDirectoryObjectType populated with the attributes specified in iAttributeList, the attributes of which match the expression specified by iFilter. This value is undefined if rStatus does not equal DirectoryOperationResult.Success.

The algorithm MUST perform the following operations to process this event:

  1. If the iFilter specified contains more than one element, or if it contains one element and that element is not of any of the forms listed in the following table, perform the steps specified in section 3.1.6.3.1 and return the rStatus value specified in that section. The directory contents MUST NOT be modified by this operation.

    iFilter form

    "Identifier" EQUALS aGuid

    "FullPath" EQUALS aDistinguishedName

  2. Let UseDN be a string variable initialized to be empty. If the single element in iFilter is of the form "FullPath" EQUALS aDistinguishedName, set the value of UseDN to aDistinguishedName.

  3. Let UseGuid be a GUID variable initialized to be empty. If the single element in iFilter is of the form "Identifier" EQUALS aGuid, set the value of UseGuid to aGuid.

  4. If iDirectoryObjectType has the value ConnectedNetwork, rStatus MUST be set to DirectoryOperationResult.GenericError, rDirectoryObject is undefined, and processing MUST end.

  5. Perform the steps of the read operation for the type of ADM element indicated by iDirectoryObjectType, as specified in the following sections, and return the rStatus and rDirectoryObject values specified in that section. The directory contents must NOT be modified by this operation.