DS_REPL_ATTR_META_DATA_BLOB structure

The DS_REPL_ATTR_META_DATA_BLOB structure is used to contain replication state data for an object attribute. This structure is similar to the DS_REPL_ATTR_META_DATA_2 structure, but is obtained from the Lightweight Directory Access Protocol API functions when obtaining binary data for the msDS-ReplAttributeMetaData attribute.

Syntax


typedef struct {
  DWORD    oszAttributeName;
  DWORD    dwVersion;
  FILETIME ftimeLastOriginatingChange;
  UUID     uuidLastOriginatingDsaInvocationID;
  USN      usnOriginatingChange;
  USN      usnLocalChange;
  DWORD    oszLastOriginatingDsaDN;
} DS_REPL_ATTR_META_DATA_BLOB;

Members

oszAttributeName

Contains the offset, in bytes, from the address of this structure to a null-terminated Unicode string that contains the LDAP display name of the attribute corresponding to this metadata. A value of zero indicates an empty or NULL string.

dwVersion

Contains the version of this attribute. Each originating modification of the attribute increases this value by one. Replication of a modification does not affect the version.

ftimeLastOriginatingChange

Contains the time at which the last originating change was made to this attribute. Replication of the change does not affect this value.

uuidLastOriginatingDsaInvocationID

Contains the invocation identification of the server on which the last change was made to this attribute. Replication of the change does not affect this value.

usnOriginatingChange

Contains the update sequence number (USN) on the originating server at which the last change to this attribute was made. Replication of the change does not affect this value.

usnLocalChange

Contains the USN on the destination server (the server from which the DsReplicaGetInfo function retrieved the metadata) at which the last change to this attribute was applied. This value typically is different on all servers.

oszLastOriginatingDsaDN

Contains the offset, in bytes, from the address of this structure to a null-terminated Unicode string that contains the distinguished name of the directory system agent server that originated the last replication. A value of zero indicates an empty or NULL string.

Examples

The following code example shows how to access strings in this structure using the offset members.


void GetNames(DS_REPL_ATTR_META_DATA_BLOB *pdsReplAttrMetaDataBlob
            WCHAR** ppDisplayName,
            WCHAR** ppDistinguishedName)
{
    // Pre-condition: Valid arguments
    ASSERT(0 != pdsReplAttrMetaDataBlob, L"DS_REPL_ATTR_META_DATA_BLOB* parameter invalid");
    ASSERT(0 != ppDisplayName, L"ppDisplayName parameter invalid");
    ASSERT(0 != ppDistinguishedName, L"ppDistinguishedName parameter invalid");

    // Dereference LDAP Display name
    DWORD dwAttributeNameOffset = pdsReplAttrMetaDataBlob->oszAttributeName;
    (*ppDisplayName) = (LPWSTR)((LPBYTE)pdsReplAttrMetaDataBlob + dwAttributeNameOffset);

    // Dereference Distinguished name
    DWORD dwDistinguishedNameOffset = pdsReplAttrMetaDataBlob->oszLastOriginatingDsaDN;
    (*ppDistinguishedName) = (0 != dwDistinguishedNameOffset)
                     ? (LPWSTR)((LPBYTE)pdsReplAttrMetaDataBlob + dwDistinguishedNameOffset)
                     : (LPWSTR)NULL;
    
    return;
}


Requirements

Minimum supported client

Windows Vista

Minimum supported server

Windows Server 2008

Header

Ntdsapi.h

See also

DS_REPL_ATTR_META_DATA_2
Lightweight Directory Access Protocol API

 

 

Show: