ADSI Simple Data Types

Active Directory Service Interfaces (ADSI) defines and uses the following simple data types.

typedef DWORD ADS_BOOLEAN, *PADS_BOOLEAN;
typedef LPWSTR ADS_CASE_EXACT_STRING, *PADS_CASE_EXACT_STRING;
typedef LPWSTR ADS_CASE_IGNORE_STRING, *PADS_CASE_IGNORE_STRING;
typedef LPWSTR ADS_DN_STRING, *PADS_DN_STRING;
typedef DWORD ADS_INTEGER, *PADS_INTEGER;
typedef LARGE_INTEGER ADS_LARGE_INTEGER, *PADS_LARGE_INTEGER;
typedef LPWSTR ADS_NUMERIC_STRING, *PADS_NUMERIC_STRING;
typedef LPWSTR ADS_OBJECT_CLASS, *PADS_OBJECT_CLASS;
typedef LPWSTR ADS_PRINTABLE_STRING, *PADS_PRINTABLE_STRING;
typedef HANDLE ADS_SEARCH_HANDLE, *PADS_SEARCH_HANDLE;
typedef SYSTEMTIME ADS_UTC_TIME, *PADS_UTC_TIME;

ADS_BOOLEAN

DWORD

ADS_CASE_EXACT_STRING

LPWSTR

ADS_CASE_IGNORE_STRING

LPWSTR

ADS_DN_STRING

LPWSTR

ADS_INTEGER

DWORD

ADS_LARGE_INTEGER

LARGE_INTEGER

ADS_NUMERIC_STRING

LPWSTR

ADS_OBJECT_CLASS

LPWSTR

ADS_PRINTABLE_STRING

LPWSTR

ADS_SEARCH_HANDLE

HANDLE

ADS_UTC_TIME

SYSTEMTIME

Remarks

When ADSI reads an attribute that has been defined as an INTEGER in the LDAP schema, it will always handle the integer as a 32-bit value and may truncate the data. This is only a concern for LDAP servers that allow arbitrary sized integer values. If the attribute is a custom attribute defined by extending the schema, this problem can be avoided by defining the custom attribute as a string.

Requirements

Requirement Value
Minimum supported client
Windows Vista
Minimum supported server
Windows Server 2008
Header
Iads.h