Changes the naming attribute of an eDirectory object or its alias in the eDirectory tree.
#include <nwnet.h> or #include <nwdsdsa.h> N_EXTERN_LIBRARY (NWDSCCODE) NWDSModifyRDN ( NWDSContextHandle context, pnstr8 objectName, pnstr8 newDN, nbool8 deleteOldRDN);
uses netwin32 Function NWDSModifyRDN (context : NWDSContextHandle; objectName : pnstr8; newDN : pnstr8; deleteOldRDN : nbool8 ) : NWDSCCODE;
(IN) Specifies the NDS context for the request.
(IN) Points to the object’s current name.
(IN) Points to the object’s new name.
(IN) Specifies whether to discard the old RDN. If FALSE, the old RDN is retained as an additional attribute value. If TRUE, the old RDN is deleted.
These are common return values.
0x0000 0000 |
SUCCESSFUL |
0x8996 |
SERVER_OUT_OF_MEMORY |
0x89E2 |
TOO_FEW_FRAGMENTS |
0x89E3 |
TOO_MANY_FRAGMENTS |
0x89E4 |
PROTOCOL_VIOLATION |
0x89E5 |
SIZE_LIMIT_EXCEEDED |
0x89FD |
UNKNOWN_REQUEST |
0x89FD |
INVALID_PACKET_LENGTH |
0x89FE |
BAD_PACKET |
0x89FF |
Failure not related to eDirectory |
nonzero value |
Nonzero values indicate errors. See |
NWDSModifyRDN does not move an object to a new location in the eDirectory tree.
NWDSModifyRDN changes only the least significant (left-most) name in a leaf object’s distinguished name. It does not change an object’s more significant names, since changing those names changes the location of the object in the eDirectory tree. For example, if the object’s name is
CN=Hector.OU=Graphics.O=WimpleMakers
you can change the common name "CN=Hector" to "CN=Duke" since it is a leaf object. However, you cannot change the "OU=Graphics" to "OU=Marketing" since that would change the location of the object (Hector) within the eDirectory tree. (To move an object, call NWDSMoveObject or NWDSModifyDN.)
You cannot change the name of an object that is not a leaf node. For example, in the above case you cannot change the name of
OU=Graphics.O=WimpleMakers
to
OU=Presentation Graphics.O=WimpleMakers
because Graphics is not a leaf node; it contains the subordinate object named Hector.
The objectName parameter identifies the object whose name is to be modified. Aliases in the name are not dereferenced.
The newDN parameter specifies the new name of the object. If an attribute value in the new RDN does not already exist in the object, it is added. If it cannot be added, an error is returned.
If deleteOldRDN is TRUE, all old attribute values in the RDN are deleted. If FALSE, old values remain in the object (but not as a part of the DN). If the naming attribute is single valued, this flag must be TRUE.
If NWDSModifyRDN removes the last attribute value of an attribute while identifying a new attribute for the DN, the old attribute is deleted.
Aliases are never dereferenced by NWDSModifyRDN. The context flag associated with DCV_DEREF_ALIASES is not relevant to NWDSModifyRDN and is ignored.
NWDSModifyDN, NWDSModifyObject, NWDSGetContext, NWDSSetContext