Using the Extension-Data Attribute

Every directory object can store two kinds of data: standard configuration data provided by the Microsoft Exchange Server Administrator program, and extension (custom) data provided by an Administrator extension DLL. Extension data is stored in the Extension-Data attribute. You can use extension data on any individual object in the directory, including your application's object and other objects it may interact with.

You should implement extension data when your application needs to expose information about itself that is outside the application's schema. A common example is the use of extension data to configure an application's general behavior. For example, any application that processes messages could store the following as extension data:

The Extension-Data attribute is a multivalued, binary attribute available on all directory objects. Each value in the attribute has a maximum size of 64K. It is used to associate application-specific custom data with a Microsoft Exchange Server directory object.

Because more than one application can associate its custom data with the same object, the Administrator extension functions allow each binary part of the Extension-Data attribute to be assigned a unique owner tag. An owner tag is a null-terminated Unicode string added to the start of each Extension-Data binary part. This Unicode string must be in Intel (little-endian) byte order.

The following diagram shows a directory object with an Extension-Data attribute. The Extension-Data attribute has two binary parts, which are identified by their owner tags, Ext1 and Ext2.

Extension Data attribute on a directory object

The following diagram shows the value whose owner tag is Ext2. Within this value, the data in the data fields that follow can be of varying types.

The Extension Data attribute consists of an owner tag and a data section