4.1.10.6.7 PerformModifyOperation

 procedure PerformModifyOperation(
   data: ENTINF,
   updateObject: DSNAME,
   prefixTable: PrefixTable): integer

The PerformModifyOperation procedure performs a modify operation with the given ENTINF to modify updateObject, an existing object in the directory. For more details, see [MS-ADTS] section 3.1.1.5.3.

This operation modifies the object whose DSNAME is updateObject. If the DN in data.pName.StringName is not equal to the DN of updateObject in updateObject.StringName, then let newParentName be the DSNAME of the parent object identified in data.pName.StringName, let newRDN be the RDN identified in data.pName.StringName, and call PerformModifyDNOperation(updateObject!distinguishedName, newParentName, newRDN). The PerformModifyDNOperation procedure call is NOT to be performed as an originating update.

For each ATTR attr in data.AttrBlock, let attribute be the ATTRTYP returned by LocalAttidFromRemoteAttid(prefixTable, attr.attrType). Then on the object modified by PerformModifyOperation, if the attribute whose ATTRTYP is attribute is present, all previous values are removed and replaced with the values attr.AttrVal.pAVal[0... attr.AttrVal.valCount]. If the attribute whose ATTRTYP is attribute is not present, it is added with the values attr.AttrVal.pAVal[0... attr.AttrVal.valCount].

The PerformModifyOperation procedure is NOT to be performed as an originating update. The AttributeAndStamp values associated with the modifed attributes must not be touched by this procedure. For more details about originating updates, see [MS-ADTS] section 3.1.1.1.9.

If the modify operation succeeds, the procedure returns 0. If the modify operation fails, the procedure returns a Windows error code.

Show: