Directory Services


The LDAPControl structure is used to represent both client-side and server controls.

typedef struct ldapcontrol {
PWCHAR ldctl_oid;
struct berval ldctl_value;
BOOLEAN ldctl_iscritical; } LDAPControl,


A pointer to a wide, null-terminated string that indicates control type, such as "1.2.840.113556.1.4.805".
The data associated with the control, if any. If no data is associated with the control, this member should be set to NULL.
Indicates whether the control is critical, called the Criticality field.


Effective with LDAP 3, you can extend LDAP operations through the use of controls. Server controls can be sent to the server or returned to the client with any LDAP message. Client controls extend the behavior of the LDAP API on the client side only and are never sent to the server. A supported control is stored as an object identifier (OID) in the Directory Service root.

The ldctl_iscritical member enables an extended operation to succeed when the server or client does not support the control. If the value of this field is zero, the server and/or client ignores the control if it is not supported and carries out the operation. If the value is nonzero the operation is carried out only if the control is recognized by the server and/or client.

For more information, and a list of the supported LDAP extended controls and their descriptions, see Extended Controls.


Client: Included in Windows XP and Windows 2000 Professional.
Server: Included in Windows Server 2003 and Windows 2000 Server.
Redistributable: Requires Active Directory Client Extension on Windows NT 4.0 SP6a and Windows 95/98/Me.
Unicode: Declared as Unicode and ANSI structures.
Header: Declared in Winldap.h.

See Also

Data Structures, LDAPMessage, Using Controls