Directory Services

ADSI Service Providers

ADSI includes the following service providers.

Service provider Description For more information
LDAP This is a namespace implementation that is compatible with Lightweight Directory Access Protocol (LDAP). ADSI LDAP Provider
WinNT This is a namespace implementation that is compatible with Windows NT®/Windows® 2000. ADSI WinNT Provider
NDS This is a namespace implementation that is compatible with Novell NetWare Directory Service (NDS). ADSI NDS Provider
NWCOMPAT This is a namespace implementation that is compatible with Novell NetWare 3.x. ADSI NWCOMPAT Provider

In addition to these service providers, there are other service providers that are included as part of products other than ADSI. The following are the ADSI service providers that are implemented by Microsoft.

Service provider For more information
IIS Using ADSI to Manage IIS

The methods and property methods exposed by ADSI interfaces are not supported by every service provider. Because different directory services vary in the types of objects and properties stored, use different protocols, and authentication, ADSI is designed to work seamlessly with supported service providers. For this reason, there are interfaces, methods, and property methods that work with one service provider, such as LDAP, that may not work on another, such as WinNT.

This section contains provider-specific information, such as the ADsPath format, a listing of ADSI objects used for that service provider, and data type and syntax information for the service providers that are included with ADSI. There is also a summary description of ADSI interfaces supported by each provider included with ADSI.

In ADSI, different providers are associated with different DLLs. The LDAP provider is associated with Adsldp.dll, Adsldpc.dll, and Adsmsext.dll. WinNT is associated with Adsnt.dll, NDS with Adsnds.dll, and NWCOMPAT with Adsnw.dll. ROUTER is associated with Activeds.dll.

Note  Do not assume that default ADSI providers are thread-safe. Multi-threaded application developers should coordinate access between threads through the proper use of synchronization objects such as semaphores, mutexes, critical sections, and so on.

For more information about ADSI service providers, see ADSI Router and Provider Support of ADSI interfaces.