s4/idl: add DRSUAPI_SUPPORTED_EXTENSION_RECYCLE_BIN ext. flag for DRSUAPI
[ira/wip.git] / librpc / idl / drsuapi.idl
index 54abcbd52df072d8f75856301c83871a9608041d..0a3c6a42b7b67fa8e863ce4946e5ec0358c7389e 100644 (file)
@@ -15,6 +15,48 @@ interface drsuapi
 {
        typedef bitmap samr_GroupAttrs samr_GroupAttrs;
 
+       /* see MS-DRSR section 5.39 */
+       typedef [public,bitmap32bit] bitmap {
+               DRSUAPI_DRS_ASYNC_OP                  = 0x00000001,
+               DRSUAPI_DRS_GETCHG_CHECK              = 0x00000002,
+               DRSUAPI_DRS_UPDATE_NOTIFICATION       = 0x00000002,
+               DRSUAPI_DRS_ADD_REF                   = 0x00000004,
+               DRSUAPI_DRS_SYNC_ALL                  = 0x00000008,
+               DRSUAPI_DRS_DEL_REF                   = 0x00000008,
+               DRSUAPI_DRS_WRIT_REP                  = 0x00000010,
+               DRSUAPI_DRS_INIT_SYNC                 = 0x00000020,
+               DRSUAPI_DRS_PER_SYNC                  = 0x00000040,
+               DRSUAPI_DRS_MAIL_REP                  = 0x00000080,
+               DRSUAPI_DRS_ASYNC_REP                 = 0x00000100,
+               DRSUAPI_DRS_IGNORE_ERROR              = 0x00000100,
+               DRSUAPI_DRS_TWOWAY_SYNC               = 0x00000200,
+               DRSUAPI_DRS_CRITICAL_ONLY             = 0x00000400,
+               DRSUAPI_DRS_GET_ANC                   = 0x00000800,
+               DRSUAPI_DRS_GET_NC_SIZE               = 0x00001000,
+               DRSUAPI_DRS_LOCAL_ONLY                = 0x00001000,
+               DRSUAPI_DRS_SYNC_BYNAME               = 0x00004000,
+               DRSUAPI_DRS_REF_OK                    = 0x00004000,
+               DRSUAPI_DRS_FULL_SYNC_NOW             = 0x00008000,
+               DRSUAPI_DRS_NO_SOURCE                 = 0x00008000,
+               DRSUAPI_DRS_FULL_SYNC_IN_PROGRESS     = 0x00010000,
+               DRSUAPI_DRS_FULL_SYNC_PACKET          = 0x00020000,
+               DRSUAPI_DRS_SYNC_REQUEUE              = 0x00040000,
+               DRSUAPI_DRS_SYNC_URGENT               = 0x00080000,
+               DRSUAPI_DRS_REF_GCSPN                 = 0x00100000,
+               DRSUAPI_DRS_NO_DISCARD                = 0x00100000,
+               DRSUAPI_DRS_NEVER_SYNCED              = 0x00200000,
+               DRSUAPI_DRS_SPECIAL_SECRET_PROCESSING = 0x00400000,
+               DRSUAPI_DRS_INIT_SYNC_NOW             = 0x00800000,
+               DRSUAPI_DRS_PREEMPTED                 = 0x01000000,
+               DRSUAPI_DRS_SYNC_FORCED               = 0x02000000,
+               DRSUAPI_DRS_DISABLE_AUTO_SYNC         = 0x04000000,
+               DRSUAPI_DRS_DISABLE_PERIODIC_SYNC     = 0x08000000,
+               DRSUAPI_DRS_USE_COMPRESSION           = 0x10000000,
+               DRSUAPI_DRS_NEVER_NOTIFY              = 0x20000000,
+               DRSUAPI_DRS_SYNC_PAS                  = 0x40000000,
+               DRSUAPI_DRS_GET_ALL_GROUP_MEMBERSHIP  = 0x80000000
+       } drsuapi_DrsOptions;
+
        /*****************/
         /* Function 0x00 */
         typedef [bitmap32bit] bitmap {
@@ -25,7 +67,7 @@ interface drsuapi
                DRSUAPI_SUPPORTED_EXTENSION_GETCHG_COMPRESS             = 0x00000010,
                DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V1                   = 0x00000020,
                DRSUAPI_SUPPORTED_EXTENSION_RESTORE_USN_OPTIMIZATION    = 0x00000040,
-               DRSUAPI_SUPPORTED_EXTENSION_00000080                    = 0x00000080,
+               DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY                    = 0x00000080,
                DRSUAPI_SUPPORTED_EXTENSION_KCC_EXECUTE                 = 0x00000100,
                DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY_V2                 = 0x00000200,
                DRSUAPI_SUPPORTED_EXTENSION_LINKED_VALUE_REPLICATION    = 0x00000400,
@@ -38,7 +80,7 @@ interface drsuapi
                DRSUAPI_SUPPORTED_EXTENSION_TRANSITIVE_MEMBERSHIP       = 0x00020000,
                DRSUAPI_SUPPORTED_EXTENSION_ADD_SID_HISTORY             = 0x00040000,
                DRSUAPI_SUPPORTED_EXTENSION_POST_BETA3                  = 0x00080000,
-               DRSUAPI_SUPPORTED_EXTENSION_00100000                    = 0x00100000,
+               DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V5                = 0x00100000,
                DRSUAPI_SUPPORTED_EXTENSION_GET_MEMBERSHIPS2            = 0x00200000,
                DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V6                = 0x00400000,
                DRSUAPI_SUPPORTED_EXTENSION_NONDOMAIN_NCS               = 0x00800000,
@@ -53,14 +95,15 @@ interface drsuapi
                DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V7              = 0x08000000,
                DRSUAPI_SUPPORTED_EXTENSION_VERIFY_OBJECT               = 0x08000000,
                DRSUAPI_SUPPORTED_EXTENSION_XPRESS_COMPRESS             = 0x10000000,
-               DRSUAPI_SUPPORTED_EXTENSION_20000000                    = 0x20000000,
+               DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V10               = 0x20000000,
                DRSUAPI_SUPPORTED_EXTENSION_40000000                    = 0x40000000,
                DRSUAPI_SUPPORTED_EXTENSION_80000000                    = 0x80000000
        } drsuapi_SupportedExtensions;
 
        typedef [bitmap32bit] bitmap {
                DRSUAPI_SUPPORTED_EXTENSION_ADAM                        = 0x00000001,
-               DRSUAPI_SUPPORTED_EXTENSION_LH_BETA2                    = 0x00000002
+               DRSUAPI_SUPPORTED_EXTENSION_LH_BETA2                    = 0x00000002,
+               DRSUAPI_SUPPORTED_EXTENSION_RECYCLE_BIN                 = 0x00000004
        } drsuapi_SupportedExtensionsExt;
 
        /* this is used by w2k */
@@ -181,7 +224,7 @@ interface drsuapi
                drsuapi_DsReplicaObjectIdentifier *naming_context;
                GUID source_dsa_guid;
                astring *other_info; /* I assume this is related to the repsFromTo1OtherInfo dns_name */
-               drsuapi_DsReplicaSyncOptions options;
+               drsuapi_DrsOptions options;
        } drsuapi_DsReplicaSyncRequest1;
 
        typedef [switch_type(int32)] union {
@@ -215,37 +258,6 @@ interface drsuapi
                [size_is(count)] drsuapi_DsReplicaCursor cursors[];
        } drsuapi_DsReplicaCursorCtrEx;
 
-       typedef [public] bitmap {
-               /* the _WRITEABLE flag indicates a replication with all attributes
-                *
-                * --metze
-                */
-               DRSUAPI_DS_REPLICA_NEIGHBOUR_WRITEABLE                          = 0x00000010,
-               DRSUAPI_DS_REPLICA_NEIGHBOUR_SYNC_ON_STARTUP                    = 0x00000020,
-               DRSUAPI_DS_REPLICA_NEIGHBOUR_DO_SCHEDULED_SYNCS                 = 0x00000040,
-               DRSUAPI_DS_REPLICA_NEIGHBOUR_USE_ASYNC_INTERSIDE_TRANSPORT      = 0x00000080,
-               DRSUAPI_DS_REPLICA_NEIGHBOUR_TWO_WAY_SYNC                       = 0x00000200,
-               DRSUAPI_DS_REPLICA_NEIGHBOUR_RETURN_OBJECT_PARENTS              = 0x00000800,
-               DRSUAPI_DS_REPLICA_NEIGHBOUR_FULL_IN_PROGRESS                   = 0x00001000, /* was 0x00010000, */
-               DRSUAPI_DS_REPLICA_NEIGHBOUR_FULL_NEXT_PACKET                   = 0x00002000, /* was 0x00020000, */
-               DRSUAPI_DS_REPLICA_NEIGHBOUR_NEVER_SYNCED                       = 0x00200000,
-               DRSUAPI_DS_REPLICA_NEIGHBOUR_PREEMPTED                          = 0x01000000,
-               DRSUAPI_DS_REPLICA_NEIGHBOUR_IGNORE_CHANGE_NOTIFICATIONS        = 0x04000000,
-               DRSUAPI_DS_REPLICA_NEIGHBOUR_DISABLE_SCHEDULED_SYNC             = 0x08000000,
-               /*
-                * the following NOTE applies to DsGetNCChangesRequest5:
-                *  - the data is only compressed when 10 or more objects are replicated
-                *  - but there could also be a size limit of 35 KBytes or something like that
-                *  - the reply is DsGetNCChangesCtr2
-                *  - maybe the same applies to DsGetNCChangesRequest8...
-                *
-                *  --metze
-                */
-               DRSUAPI_DS_REPLICA_NEIGHBOUR_COMPRESS_CHANGES                   = 0x10000000,
-               DRSUAPI_DS_REPLICA_NEIGHBOUR_NO_CHANGE_NOTIFICATIONS            = 0x20000000,
-               DRSUAPI_DS_REPLICA_NEIGHBOUR_PARTIAL_ATTRIBUTE_SET              = 0x40000000
-       } drsuapi_DsReplicaNeighbourFlags;
-
        typedef [flag(NDR_PAHEX),v1_enum] enum {
                DRSUAPI_EXOP_NONE                               = 0x00000000,
                DRSUAPI_EXOP_FSMO_REQ_ROLE                      = 0x00000001,
@@ -283,7 +295,7 @@ interface drsuapi
                [ref] drsuapi_DsReplicaObjectIdentifier *naming_context;
                drsuapi_DsReplicaHighWaterMark highwatermark;
                drsuapi_DsReplicaCursorCtrEx *uptodateness_vector;
-               drsuapi_DsReplicaNeighbourFlags replica_flags;
+               drsuapi_DrsOptions replica_flags;
                uint32 max_object_count; /* w2k3 uses min(133,max(100,max_object_count)) */
                uint32 max_ndr_size; /* w2k3 seems to ignore this */
                drsuapi_DsExtendedOperation extended_op;
@@ -374,9 +386,9 @@ interface drsuapi
         *
         * 2.5.5.17     => dom_sid
         */
-       typedef [nopush,nopull] struct {
-               [range(0,10000),value(ndr_size_drsuapi_DsReplicaOID_oid(oid, 0))] uint32 __ndr_size;
-               [size_is(__ndr_size),charset(DOS)] uint8 *oid; /* it's encoded with asn1_write_OID_String() */
+       typedef [noprint] struct {
+               [range(0,10000)] uint32 length;
+               [size_is(length)] uint8 *binary_oid; /* partial-binary-OID encoded with asn1_write_partial_OID_String() */
        } drsuapi_DsReplicaOID;
 
        typedef struct {
@@ -397,6 +409,7 @@ interface drsuapi
 
        typedef [flag(NDR_PAHEX),v1_enum,public] enum {
                DRSUAPI_ATTRIBUTE_objectClass                   = 0x00000000,
+               DRSUAPI_ATTRIBUTE_cn                            = 0x00000003,
                DRSUAPI_ATTRIBUTE_description                   = 0x0000000d,
                DRSUAPI_ATTRIBUTE_member                        = 0x0000001f,
                DRSUAPI_ATTRIBUTE_instanceType                  = 0x00020001,
@@ -407,6 +420,7 @@ interface drsuapi
                DRSUAPI_ATTRIBUTE_governsID                     = 0x00020016,
                DRSUAPI_ATTRIBUTE_mustContain                   = 0x00020018,
                DRSUAPI_ATTRIBUTE_mayContain                    = 0x00020019,
+               DRSUAPI_ATTRIBUTE_rDNAttId                      = 0x0002001A,
                DRSUAPI_ATTRIBUTE_attributeID                   = 0x0002001e,
                DRSUAPI_ATTRIBUTE_attributeSyntax               = 0x00020020,
                DRSUAPI_ATTRIBUTE_isSingleValued                = 0x00020021,
@@ -445,6 +459,7 @@ interface drsuapi
                DRSUAPI_ATTRIBUTE_systemPossSuperiors           = 0x000900c3,
                DRSUAPI_ATTRIBUTE_systemMayContain              = 0x000900c4,
                DRSUAPI_ATTRIBUTE_systemMustContain             = 0x000900c5,
+               DRSUAPI_ATTRIBUTE_systemAuxiliaryClass          = 0x000900c6,
                DRSUAPI_ATTRIBUTE_sAMAccountName                = 0x000900dd,
                DRSUAPI_ATTRIBUTE_sAMAccountType                = 0x0009012e,
                DRSUAPI_ATTRIBUTE_fSMORoleOwner                 = 0x00090171,
@@ -461,10 +476,12 @@ interface drsuapi
                DRSUAPI_ATTRIBUTE_servicePrincipalName          = 0x00090303,
                DRSUAPI_ATTRIBUTE_objectCategory                = 0x0009030e,
                DRSUAPI_ATTRIBUTE_gPLink                        = 0x0009037b,
+               DRSUAPI_ATTRIBUTE_transportAddressAttribute     = 0x0009037f,
                DRSUAPI_ATTRIBUTE_msDS_Behavior_Version         = 0x000905b3,
                DRSUAPI_ATTRIBUTE_msDS_KeyVersionNumber         = 0x000906f6,
                DRSUAPI_ATTRIBUTE_msDS_HasDomainNCs             = 0x0009071c,
-               DRSUAPI_ATTRIBUTE_msDS_hasMasterNCs             = 0x0009072c
+               DRSUAPI_ATTRIBUTE_msDS_hasMasterNCs             = 0x0009072c,           
+               DRSUAPI_ATTRIBUTE_NONE                          = 0xFFFFFFFF
        } drsuapi_DsAttributeId;
 
        typedef struct {
@@ -480,7 +497,7 @@ interface drsuapi
                [ref] drsuapi_DsReplicaObjectIdentifier *naming_context;
                drsuapi_DsReplicaHighWaterMark highwatermark;
                drsuapi_DsReplicaCursorCtrEx *uptodateness_vector;
-               drsuapi_DsReplicaNeighbourFlags replica_flags;
+               drsuapi_DrsOptions replica_flags;
                uint32 max_object_count; /* w2k3 uses min(133,max(100,max_object_count)) */
                uint32 max_ndr_size; /* w2k3 seems to ignore this */
                drsuapi_DsExtendedOperation extended_op;
@@ -496,7 +513,7 @@ interface drsuapi
                [ref] drsuapi_DsReplicaObjectIdentifier *naming_context;
                drsuapi_DsReplicaHighWaterMark highwatermark;
                drsuapi_DsReplicaCursorCtrEx *uptodateness_vector;
-               drsuapi_DsReplicaNeighbourFlags replica_flags;
+               drsuapi_DrsOptions replica_flags;
                uint32 max_object_count; /* w2k3 uses min(133,max(100,max_object_count)) */
                uint32 max_ndr_size; /* w2k3 seems to ignore this */
                drsuapi_DsExtendedOperation extended_op;
@@ -548,8 +565,8 @@ interface drsuapi
                [charset(UTF16)] uint16 dn[__ndr_size_dn+1];
        } drsuapi_DsReplicaObjectIdentifier3;
 
-       typedef [public,gensize] struct {
-               [value(ndr_size_drsuapi_DsReplicaObjectIdentifier3Binary(r, ndr->iconv_convenience, ndr->flags))] uint32 __ndr_size;
+       typedef [public] struct {
+               [value(ndr_size_drsuapi_DsReplicaObjectIdentifier3Binary_without_Binary(r, ndr->iconv_convenience, ndr->flags))] uint32 __ndr_size;
                [value(ndr_size_dom_sid28(&sid,ndr->flags))]  uint32 __ndr_size_sid;
                GUID guid;
                dom_sid28 sid;
@@ -736,19 +753,12 @@ interface drsuapi
        /*****************/
         /* Function 0x04 */
        /* [MS-DRSR] 4.1.26 */
-       typedef bitmap {
-               DRSUAPI_DS_REPLICA_UPDATE_ASYNCHRONOUS_OPERATION        = 0x00000001,
-               DRSUAPI_DS_REPLICA_UPDATE_GETCHG_CHECK                  = 0x00000002,
-               DRSUAPI_DS_REPLICA_UPDATE_ADD_REFERENCE                 = 0x00000004,
-               DRSUAPI_DS_REPLICA_UPDATE_DELETE_REFERENCE              = 0x00000008,
-               DRSUAPI_DS_REPLICA_UPDATE_WRITEABLE                     = 0x00000010
-       } drsuapi_DsReplicaUpdateRefsOptions;
 
        typedef struct {
                [ref] drsuapi_DsReplicaObjectIdentifier *naming_context;
                [ref,charset(DOS),string] uint8 *dest_dsa_dns_name;
                GUID dest_dsa_guid;
-               drsuapi_DsReplicaUpdateRefsOptions options;
+               drsuapi_DrsOptions options;
        } drsuapi_DsReplicaUpdateRefsRequest1;
 
        typedef [switch_type(int32)] union {
@@ -763,18 +773,12 @@ interface drsuapi
 
        /*****************/
         /* Function 0x05 */
-       typedef bitmap {
-               DRSUAPI_DS_REPLICA_ADD_ASYNCHRONOUS_OPERATION   = 0x00000001,
-               DRSUAPI_DS_REPLICA_ADD_WRITEABLE                = 0x00000002
-               /* TODO ... */
-       } drsuapi_DsReplicaAddOptions;
-
 
        typedef struct {
                [ref] drsuapi_DsReplicaObjectIdentifier *naming_context;
                [charset(UTF16),string] uint16 *source_dsa_address;
                uint8 schedule[84];
-               drsuapi_DsReplicaAddOptions options;
+               drsuapi_DrsOptions options;
        } drsuapi_DsReplicaAddRequest1;
 
        typedef struct {
@@ -783,7 +787,7 @@ interface drsuapi
                drsuapi_DsReplicaObjectIdentifier *transport_dn;
                [charset(UTF16),string] uint16 *source_dsa_address;
                uint8 schedule[84];
-               drsuapi_DsReplicaAddOptions options;
+               drsuapi_DrsOptions options;
        } drsuapi_DsReplicaAddRequest2;
 
        typedef [switch_type(int32)] union {
@@ -800,17 +804,10 @@ interface drsuapi
 
        /*****************/
         /* Function 0x06 */
-       typedef bitmap {
-               DRSUAPI_DS_REPLICA_ADD_ASYNCHRONOUS_OPERATION   = 0x00000001,
-               DRSUAPI_DS_REPLICA_ADD_WRITEABLE                = 0x00000002
-               /* TODO ... */
-       } drsuapi_DsReplicaDeleteOptions;
-
-
        typedef struct {
                [ref] drsuapi_DsReplicaObjectIdentifier *naming_context;
                [charset(UTF16),string] uint16 *source_dsa_address;
-               drsuapi_DsReplicaDeleteOptions options;
+               drsuapi_DrsOptions options;
        } drsuapi_DsReplicaDelRequest1;
 
        typedef [switch_type(int32)] union {
@@ -825,12 +822,6 @@ interface drsuapi
 
        /*****************/
         /* Function 0x07 */
-       typedef bitmap {
-               DRSUAPI_DS_REPLICA_ADD_ASYNCHRONOUS_OPERATION   = 0x00000001,
-               DRSUAPI_DS_REPLICA_ADD_WRITEABLE                = 0x00000002
-               /* TODO ... */
-       } drsuapi_DsReplicaModifyOptions;
-
 
        typedef struct {
                [ref] drsuapi_DsReplicaObjectIdentifier *naming_context;
@@ -839,7 +830,7 @@ interface drsuapi
                uint8 schedule[84];
                uint32 replica_flags;
                uint32 modify_fields;
-               drsuapi_DsReplicaModifyOptions options;
+               drsuapi_DrsOptions options;
        } drsuapi_DsReplicaModRequest1;
 
        typedef [switch_type(int32)] union {
@@ -1389,10 +1380,10 @@ interface drsuapi
                drsuapi_DsReplicaInfoType info_type;
                [charset(UTF16),string] uint16 *object_dn;
                GUID guid1;
-               uint32 unknown1;
+               uint32 flags;
                [charset(UTF16),string] uint16 *string1;
                [charset(UTF16),string] uint16 *string2;
-               uint32 unknown2;
+               uint32 enumeration_context;
        } drsuapi_DsReplicaGetInfoRequest2;
 
        typedef [switch_type(drsuapi_DsReplicaGetInfoLevel)] union {
@@ -1405,7 +1396,7 @@ interface drsuapi
                [charset(UTF16),string] uint16 *source_dsa_obj_dn;
                [charset(UTF16),string] uint16 *source_dsa_address;
                [charset(UTF16),string] uint16 *transport_obj_dn;
-               drsuapi_DsReplicaNeighbourFlags replica_flags;
+               drsuapi_DrsOptions replica_flags;
                uint32 reserved;
                GUID naming_context_obj_guid;
                GUID source_dsa_obj_guid;
@@ -1468,21 +1459,12 @@ interface drsuapi
                DRSUAPI_DS_REPLICA_OP_TYPE_UPDATE_REFS  = 4
        } drsuapi_DsReplicaOpType;
 
-       typedef [switch_type(drsuapi_DsReplicaOpType)] union {
-               [case(DRSUAPI_DS_REPLICA_OP_TYPE_SYNC)]         drsuapi_DsReplicaSyncOptions sync;
-               [case(DRSUAPI_DS_REPLICA_OP_TYPE_ADD)]          drsuapi_DsReplicaAddOptions add;
-               [case(DRSUAPI_DS_REPLICA_OP_TYPE_DELETE)]       drsuapi_DsReplicaDeleteOptions op_delete;
-               [case(DRSUAPI_DS_REPLICA_OP_TYPE_MODIFY)]       drsuapi_DsReplicaModifyOptions modify;
-               [case(DRSUAPI_DS_REPLICA_OP_TYPE_UPDATE_REFS)]  drsuapi_DsReplicaUpdateRefsOptions update_refs;
-               [default] uint32 unknown;
-       } drsuapi_DsRplicaOpOptions;
-
        typedef struct {
                NTTIME operation_start;
                uint32 serial_num; /* unique till reboot */
                uint32 priority;
                drsuapi_DsReplicaOpType operation_type;
-               [switch_is(operation_type)] drsuapi_DsRplicaOpOptions options;
+               drsuapi_DrsOptions options;
                [charset(UTF16),string] uint16 *nc_dn;
                [charset(UTF16),string] uint16 *remote_dsa_obj_dn;
                [charset(UTF16),string] uint16 *remote_dsa_address;
@@ -1512,13 +1494,13 @@ interface drsuapi
 
        typedef struct {
                uint32 count;
-               int32 enumeration_context;
+               uint32 enumeration_context;
                [size_is(count)] drsuapi_DsReplicaAttrValMetaData array[];
        } drsuapi_DsReplicaAttrValMetaDataCtr;
 
        typedef struct {
                uint32 count;
-               int32 enumeration_context;
+               uint32 enumeration_context;
                [size_is(count)] drsuapi_DsReplicaCursor2 array[];
        } drsuapi_DsReplicaCursor2Ctr;
 
@@ -1531,7 +1513,7 @@ interface drsuapi
 
        typedef struct {
                uint32 count;
-               int32 enumeration_context;
+               uint32 enumeration_context;
                [size_is(count)] drsuapi_DsReplicaCursor3 array[];
        } drsuapi_DsReplicaCursor3Ctr;
 
@@ -1547,7 +1529,7 @@ interface drsuapi
 
        typedef struct {
                uint32 count;
-               int32 enumeration_context;
+               uint32 enumeration_context;
                [size_is(count)] drsuapi_DsReplicaObjMetaData2 array[];
        } drsuapi_DsReplicaObjMetaData2Ctr;
 
@@ -1568,7 +1550,7 @@ interface drsuapi
 
        typedef struct {
                uint32 count;
-               int32 enumeration_context;
+               uint32 enumeration_context;
                [size_is(count)] drsuapi_DsReplicaAttrValMetaData2 array[];
        } drsuapi_DsReplicaAttrValMetaData2Ctr;