The MQDS client MUST perform the following actions:

  1. Input arguments for the S_DSLookupNext method (section MUST be computed:

    1. Handle MUST be the value of ReadIterator.Handle.

    2. Other arguments MUST be set up as described in section

  2. The S_DSLookupNext method MUST be called. If the return value is not MQ_OK, processing MUST end. rStatus MUST be set to DirectoryOperationResult.GenericError and rDirectoryObject is undefined.

  3. If dwOutSize is 0, processing MUST end. rStatus MUST be set to DirectoryOperationResult.EndOfData and rDirectoryObject is undefined.

  4. A User data element MUST be created. rDirectoryObject MUST be set to this new User data element. The attributes listed in ReadIterator.AttributeList MUST be set on rDirectoryObject according to the following table. The property values required are in the PROPVARIANT array pointed to by pbBuffer and are in the same order as the property identifiers in ReadIterator.PropidList.

    User attribute

    Property identifier

    Attribute value computation


    PROPID_U_SID ([MS-MQMQ] section

    SID ([MS-DTYP] section 2.4.2) copied from property.



    MQUSERSIGNCERTS structure ([MS-MQMQ] section 2.2.21) copied from property.



    List of GUIDs copied from property.


    PROPID_U_ID ([MS-MQMQ] section

    GUID copied from property.

  5. Processing MUST end. rStatus MUST be set to DirectoryOperationResult.Success.