rerun 'make idl' after drsuapi.idl changes
authorStefan Metzmacher <metze@samba.org>
Wed, 16 Jul 2008 13:26:55 +0000 (15:26 +0200)
committerStefan Metzmacher <metze@samba.org>
Wed, 16 Jul 2008 13:28:04 +0000 (15:28 +0200)
metze

source/librpc/gen_ndr/drsuapi.h
source/librpc/gen_ndr/ndr_drsuapi.c
source/librpc/gen_ndr/ndr_drsuapi.h

index 0f810071b37de21e1b25b2f8ab31bbc8970e372f..7b2acf001b34cb603a46f0832ce01c32a74e7095 100644 (file)
@@ -135,10 +135,10 @@ struct drsuapi_DsReplicaCursor {
 }/* [public] */;
 
 struct drsuapi_DsReplicaCursorCtrEx {
-       uint32_t u1;
-       uint32_t u2;
+       uint32_t version;/* [value] */
+       uint32_t reserved1;/* [value(0)] */
        uint32_t count;/* [range(0,0x100000)] */
-       uint32_t u3;
+       uint32_t reserved2;/* [value(0)] */
        struct drsuapi_DsReplicaCursor *cursors;/* [size_is(count)] */
 };
 
@@ -159,6 +159,74 @@ struct drsuapi_DsReplicaCursorCtrEx {
 #define DRSUAPI_DS_REPLICA_NEIGHBOUR_NO_CHANGE_NOTIFICATIONS ( 0x20000000 )
 #define DRSUAPI_DS_REPLICA_NEIGHBOUR_PARTIAL_ATTRIBUTE_SET ( 0x40000000 )
 
+enum drsuapi_DsExtendedOperation
+#ifndef USE_UINT_ENUMS
+ {
+       DRSUAPI_EXOP_NONE=0x00000000,
+       DRSUAPI_EXOP_FSMO_REQ_ROLE=0x00000001,
+       DRSUAPI_EXOP_FSMO_RID_ALLOC=0x00000002,
+       DRSUAPI_EXOP_FSMO_RID_REQ_ROLE=0x00000003,
+       DRSUAPI_EXOP_FSMO_REQ_PDC=0x00000004,
+       DRSUAPI_EXOP_FSMO_ABANDON_ROLE=0x00000005,
+       DRSUAPI_EXOP_REPL_OBJ=0x00000006,
+       DRSUAPI_EXOP_REPL_SECRET=0x00000007
+}
+#else
+ { __donnot_use_enum_drsuapi_DsExtendedOperation=0x7FFFFFFF}
+#define DRSUAPI_EXOP_NONE ( 0x00000000 )
+#define DRSUAPI_EXOP_FSMO_REQ_ROLE ( 0x00000001 )
+#define DRSUAPI_EXOP_FSMO_RID_ALLOC ( 0x00000002 )
+#define DRSUAPI_EXOP_FSMO_RID_REQ_ROLE ( 0x00000003 )
+#define DRSUAPI_EXOP_FSMO_REQ_PDC ( 0x00000004 )
+#define DRSUAPI_EXOP_FSMO_ABANDON_ROLE ( 0x00000005 )
+#define DRSUAPI_EXOP_REPL_OBJ ( 0x00000006 )
+#define DRSUAPI_EXOP_REPL_SECRET ( 0x00000007 )
+#endif
+;
+
+enum drsuapi_DsExtendedError
+#ifndef USE_UINT_ENUMS
+ {
+       DRSUAPI_EXOP_ERR_NONE=0x00000000,
+       DRSUAPI_EXOP_ERR_SUCCESS=0x00000001,
+       DRSUAPI_EXOP_ERR_UNKNOWN_OP=0x00000002,
+       DRSUAPI_EXOP_ERR_FSMO_NOT_OWNER=0x00000003,
+       DRSUAPI_EXOP_ERR_UPDATE_ERR=0x00000004,
+       DRSUAPI_EXOP_ERR_EXCEPTION=0x00000005,
+       DRSUAPI_EXOP_ERR_UNKNOWN_CALLER=0x00000006,
+       DRSUAPI_EXOP_ERR_RID_ALLOC=0x00000007,
+       DRSUAPI_EXOP_ERR_FSMO_OWNER_DELETED=0x00000008,
+       DRSUAPI_EXOP_ERR_FMSO_PENDING_OP=0x00000009,
+       DRSUAPI_EXOP_ERR_MISMATCH=0x0000000A,
+       DRSUAPI_EXOP_ERR_COULDNT_CONTACT=0x0000000B,
+       DRSUAPI_EXOP_ERR_FSMO_REFUSING_ROLES=0x0000000C,
+       DRSUAPI_EXOP_ERR_DIR_ERROR=0x0000000D,
+       DRSUAPI_EXOP_ERR_FSMO_MISSING_SETTINGS=0x0000000E,
+       DRSUAPI_EXOP_ERR_ACCESS_DENIED=0x0000000F,
+       DRSUAPI_EXOP_ERR_PARAM_ERROR=0x00000010
+}
+#else
+ { __donnot_use_enum_drsuapi_DsExtendedError=0x7FFFFFFF}
+#define DRSUAPI_EXOP_ERR_NONE ( 0x00000000 )
+#define DRSUAPI_EXOP_ERR_SUCCESS ( 0x00000001 )
+#define DRSUAPI_EXOP_ERR_UNKNOWN_OP ( 0x00000002 )
+#define DRSUAPI_EXOP_ERR_FSMO_NOT_OWNER ( 0x00000003 )
+#define DRSUAPI_EXOP_ERR_UPDATE_ERR ( 0x00000004 )
+#define DRSUAPI_EXOP_ERR_EXCEPTION ( 0x00000005 )
+#define DRSUAPI_EXOP_ERR_UNKNOWN_CALLER ( 0x00000006 )
+#define DRSUAPI_EXOP_ERR_RID_ALLOC ( 0x00000007 )
+#define DRSUAPI_EXOP_ERR_FSMO_OWNER_DELETED ( 0x00000008 )
+#define DRSUAPI_EXOP_ERR_FMSO_PENDING_OP ( 0x00000009 )
+#define DRSUAPI_EXOP_ERR_MISMATCH ( 0x0000000A )
+#define DRSUAPI_EXOP_ERR_COULDNT_CONTACT ( 0x0000000B )
+#define DRSUAPI_EXOP_ERR_FSMO_REFUSING_ROLES ( 0x0000000C )
+#define DRSUAPI_EXOP_ERR_DIR_ERROR ( 0x0000000D )
+#define DRSUAPI_EXOP_ERR_FSMO_MISSING_SETTINGS ( 0x0000000E )
+#define DRSUAPI_EXOP_ERR_ACCESS_DENIED ( 0x0000000F )
+#define DRSUAPI_EXOP_ERR_PARAM_ERROR ( 0x00000010 )
+#endif
+;
+
 struct drsuapi_DsGetNCChangesRequest5 {
        struct GUID destination_dsa_guid;
        struct GUID source_dsa_invocation_id;
@@ -168,8 +236,8 @@ struct drsuapi_DsGetNCChangesRequest5 {
        uint32_t replica_flags;
        uint32_t max_object_count;
        uint32_t max_ndr_size;
-       uint32_t unknown4;
-       uint64_t h1;
+       enum drsuapi_DsExtendedOperation extended_op;
+       uint64_t fsmo_info;
 };
 
 struct drsuapi_DsReplicaOID {
@@ -333,6 +401,13 @@ enum drsuapi_DsAttributeId
 #endif
 ;
 
+struct drsuapi_DsPartialAttributeSet {
+       uint32_t version;/* [value] */
+       uint32_t reserved1;/* [value(0)] */
+       uint32_t num_attids;/* [range(1,0x100000)] */
+       enum drsuapi_DsAttributeId *attids;/* [size_is(num_attids)] */
+};
+
 struct drsuapi_DsGetNCChangesRequest8 {
        struct GUID destination_dsa_guid;
        struct GUID source_dsa_invocation_id;
@@ -342,10 +417,10 @@ struct drsuapi_DsGetNCChangesRequest8 {
        uint32_t replica_flags;
        uint32_t max_object_count;
        uint32_t max_ndr_size;
-       uint32_t unknown4;
-       uint64_t h1;
-       uint32_t unique_ptr1;
-       uint32_t unique_ptr2;
+       enum drsuapi_DsExtendedOperation extended_op;
+       uint64_t fsmo_info;
+       struct drsuapi_DsPartialAttributeSet *partial_attribute_set;/* [unique] */
+       struct drsuapi_DsPartialAttributeSet *partial_attribute_set_ex;/* [unique] */
        struct drsuapi_DsReplicaOIDMapping_Ctr mapping_ctr;
 };
 
@@ -361,10 +436,10 @@ struct drsuapi_DsReplicaCursor2 {
 }/* [public] */;
 
 struct drsuapi_DsReplicaCursor2CtrEx {
-       uint32_t u1;
-       uint32_t u2;
+       uint32_t version;/* [value(2)] */
+       uint32_t reserved1;/* [value(0)] */
        uint32_t count;/* [range(0,0x100000)] */
-       uint32_t u3;
+       uint32_t reserved2;/* [value(0)] */
        struct drsuapi_DsReplicaCursor2 *cursors;/* [size_is(count)] */
 };
 
@@ -408,9 +483,14 @@ struct drsuapi_DsReplicaAttributeCtr {
        struct drsuapi_DsReplicaAttribute *attributes;/* [unique,size_is(num_attributes)] */
 };
 
+/* bitmap drsuapi_DsReplicaObjectFlags */
+#define DRSUAPI_DS_REPLICA_OBJECT_FROM_MASTER ( 0x00000001 )
+#define DRSUAPI_DS_REPLICA_OBJECT_DYNAMIC ( 0x00000002 )
+#define DRSUAPI_DS_REPLICA_OBJECT_REMOTE_MODIFY ( 0x00010000 )
+
 struct drsuapi_DsReplicaObject {
        struct drsuapi_DsReplicaObjectIdentifier *identifier;/* [unique] */
-       uint32_t unknown1;
+       uint32_t flags;
        struct drsuapi_DsReplicaAttributeCtr attribute_ctr;
 }/* [public] */;
 
@@ -429,7 +509,7 @@ struct drsuapi_DsReplicaMetaDataCtr {
 struct drsuapi_DsReplicaObjectListItemEx {
        struct drsuapi_DsReplicaObjectListItemEx *next_object;/* [unique] */
        struct drsuapi_DsReplicaObject object;
-       uint32_t unknown1;
+       uint32_t is_nc_prefix;
        struct GUID *parent_object_guid;/* [unique] */
        struct drsuapi_DsReplicaMetaDataCtr *meta_data_ctr;/* [unique] */
 }/* [noprint,public] */;
@@ -442,11 +522,11 @@ struct drsuapi_DsGetNCChangesCtr1 {
        struct drsuapi_DsReplicaHighWaterMark new_highwatermark;
        struct drsuapi_DsReplicaCursorCtrEx *uptodateness_vector;/* [unique] */
        struct drsuapi_DsReplicaOIDMapping_Ctr mapping_ctr;
-       uint32_t total_object_count;
+       enum drsuapi_DsExtendedError extended_ret;
        uint32_t object_count;
        uint32_t __ndr_size;/* [value(ndr_size_drsuapi_DsGetNCChangesCtr1(r,ndr->flags)+55)] */
        struct drsuapi_DsReplicaObjectListItemEx *first_object;/* [unique] */
-       uint32_t unknown4;
+       uint32_t more_data;
 }/* [gensize,public] */;
 
 /* bitmap drsuapi_DsLinkedAttributeFlags */
@@ -469,16 +549,16 @@ struct drsuapi_DsGetNCChangesCtr6 {
        struct drsuapi_DsReplicaHighWaterMark new_highwatermark;
        struct drsuapi_DsReplicaCursor2CtrEx *uptodateness_vector;/* [unique] */
        struct drsuapi_DsReplicaOIDMapping_Ctr mapping_ctr;
-       uint32_t total_object_count;
+       enum drsuapi_DsExtendedError extended_ret;
        uint32_t object_count;
        uint32_t __ndr_size;/* [value(ndr_size_drsuapi_DsGetNCChangesCtr6(r,ndr->flags)+55)] */
        struct drsuapi_DsReplicaObjectListItemEx *first_object;/* [unique] */
-       uint32_t unknown4;
-       uint32_t unknown5;
-       uint32_t unknown6;
+       uint32_t more_data;
+       uint32_t nc_object_count;
+       uint32_t nc_linked_attributes_count;
        uint32_t linked_attributes_count;/* [range(0,1048576)] */
        struct drsuapi_DsReplicaLinkedAttribute *linked_attributes;/* [unique,size_is(linked_attributes_count)] */
-       uint32_t unknown7;
+       WERROR drs_error;
 }/* [gensize,public] */;
 
 struct drsuapi_DsGetNCChangesMSZIPCtr1 {
@@ -496,13 +576,13 @@ struct drsuapi_DsGetNCChangesMSZIPCtr6 {
 struct drsuapi_DsGetNCChangesXPRESSCtr1 {
        uint32_t decompressed_length;
        uint32_t compressed_length;
-       DATA_BLOB *decompressed;/* [unique,compression(NDR_COMPRESSION_XPRESS,compressed_length,decompressed_length),subcontext_size(compressed_length),subcontext(4),flag(LIBNDR_FLAG_REMAINING)] */
+       struct drsuapi_DsGetNCChangesCtr1 *ctr1;/* [unique,compression(NDR_COMPRESSION_XPRESS,compressed_length,decompressed_length),subcontext_size(compressed_length),subcontext(4)] */
 };
 
 struct drsuapi_DsGetNCChangesXPRESSCtr6 {
        uint32_t decompressed_length;
        uint32_t compressed_length;
-       DATA_BLOB *decompressed;/* [unique,compression(NDR_COMPRESSION_XPRESS,compressed_length,decompressed_length),subcontext_size(compressed_length),subcontext(4),flag(LIBNDR_FLAG_REMAINING)] */
+       struct drsuapi_DsGetNCChangesCtr6 *ctr6;/* [unique,compression(NDR_COMPRESSION_XPRESS,compressed_length,decompressed_length),subcontext_size(compressed_length),subcontext(4)] */
 };
 
 enum drsuapi_DsGetNCChangesCompressionType
index 657055fcd473b89e01a4cb8d2311f4c8792d623b..105ed84b4ec63cb62df5f0b267c54fb322eb0bb5 100644 (file)
@@ -692,10 +692,10 @@ static enum ndr_err_code ndr_push_drsuapi_DsReplicaCursorCtrEx(struct ndr_push *
        if (ndr_flags & NDR_SCALARS) {
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
                NDR_CHECK(ndr_push_align(ndr, 8));
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u1));
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u2));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 1));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u3));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
                for (cntr_cursors_0 = 0; cntr_cursors_0 < r->count; cntr_cursors_0++) {
                        NDR_CHECK(ndr_push_drsuapi_DsReplicaCursor(ndr, NDR_SCALARS, &r->cursors[cntr_cursors_0]));
                }
@@ -712,13 +712,13 @@ static enum ndr_err_code ndr_pull_drsuapi_DsReplicaCursorCtrEx(struct ndr_pull *
        if (ndr_flags & NDR_SCALARS) {
                NDR_CHECK(ndr_pull_array_size(ndr, &r->cursors));
                NDR_CHECK(ndr_pull_align(ndr, 8));
-               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u1));
-               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u2));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved1));
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
                if (r->count < 0 || r->count > 0x100000) {
                        return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
                }
-               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u3));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
                NDR_PULL_ALLOC_N(ndr, r->cursors, ndr_get_array_size(ndr, &r->cursors));
                _mem_save_cursors_0 = NDR_PULL_GET_MEM_CTX(ndr);
                NDR_PULL_SET_MEM_CTX(ndr, r->cursors, 0);
@@ -740,10 +740,10 @@ _PUBLIC_ void ndr_print_drsuapi_DsReplicaCursorCtrEx(struct ndr_print *ndr, cons
        uint32_t cntr_cursors_0;
        ndr_print_struct(ndr, name, "drsuapi_DsReplicaCursorCtrEx");
        ndr->depth++;
-       ndr_print_uint32(ndr, "u1", r->u1);
-       ndr_print_uint32(ndr, "u2", r->u2);
+       ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?1:r->version);
+       ndr_print_uint32(ndr, "reserved1", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->reserved1);
        ndr_print_uint32(ndr, "count", r->count);
-       ndr_print_uint32(ndr, "u3", r->u3);
+       ndr_print_uint32(ndr, "reserved2", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->reserved2);
        ndr->print(ndr, "%s: ARRAY(%d)", "cursors", r->count);
        ndr->depth++;
        for (cntr_cursors_0=0;cntr_cursors_0<r->count;cntr_cursors_0++) {
@@ -793,6 +793,107 @@ _PUBLIC_ void ndr_print_drsuapi_DsReplicaNeighbourFlags(struct ndr_print *ndr, c
        ndr->depth--;
 }
 
+static enum ndr_err_code ndr_push_drsuapi_DsExtendedOperation(struct ndr_push *ndr, int ndr_flags, enum drsuapi_DsExtendedOperation r)
+{
+       {
+               uint32_t _flags_save_ENUM = ndr->flags;
+               ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
+               ndr->flags = _flags_save_ENUM;
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_drsuapi_DsExtendedOperation(struct ndr_pull *ndr, int ndr_flags, enum drsuapi_DsExtendedOperation *r)
+{
+       uint32_t v;
+       {
+               uint32_t _flags_save_ENUM = ndr->flags;
+               ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
+               *r = v;
+               ndr->flags = _flags_save_ENUM;
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_drsuapi_DsExtendedOperation(struct ndr_print *ndr, const char *name, enum drsuapi_DsExtendedOperation r)
+{
+       const char *val = NULL;
+
+       {
+               uint32_t _flags_save_ENUM = ndr->flags;
+               ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
+               switch (r) {
+                       case DRSUAPI_EXOP_NONE: val = "DRSUAPI_EXOP_NONE"; break;
+                       case DRSUAPI_EXOP_FSMO_REQ_ROLE: val = "DRSUAPI_EXOP_FSMO_REQ_ROLE"; break;
+                       case DRSUAPI_EXOP_FSMO_RID_ALLOC: val = "DRSUAPI_EXOP_FSMO_RID_ALLOC"; break;
+                       case DRSUAPI_EXOP_FSMO_RID_REQ_ROLE: val = "DRSUAPI_EXOP_FSMO_RID_REQ_ROLE"; break;
+                       case DRSUAPI_EXOP_FSMO_REQ_PDC: val = "DRSUAPI_EXOP_FSMO_REQ_PDC"; break;
+                       case DRSUAPI_EXOP_FSMO_ABANDON_ROLE: val = "DRSUAPI_EXOP_FSMO_ABANDON_ROLE"; break;
+                       case DRSUAPI_EXOP_REPL_OBJ: val = "DRSUAPI_EXOP_REPL_OBJ"; break;
+                       case DRSUAPI_EXOP_REPL_SECRET: val = "DRSUAPI_EXOP_REPL_SECRET"; break;
+               }
+               ndr_print_enum(ndr, name, "ENUM", val, r);
+               ndr->flags = _flags_save_ENUM;
+       }
+}
+
+static enum ndr_err_code ndr_push_drsuapi_DsExtendedError(struct ndr_push *ndr, int ndr_flags, enum drsuapi_DsExtendedError r)
+{
+       {
+               uint32_t _flags_save_ENUM = ndr->flags;
+               ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
+               ndr->flags = _flags_save_ENUM;
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_drsuapi_DsExtendedError(struct ndr_pull *ndr, int ndr_flags, enum drsuapi_DsExtendedError *r)
+{
+       uint32_t v;
+       {
+               uint32_t _flags_save_ENUM = ndr->flags;
+               ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
+               *r = v;
+               ndr->flags = _flags_save_ENUM;
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_drsuapi_DsExtendedError(struct ndr_print *ndr, const char *name, enum drsuapi_DsExtendedError r)
+{
+       const char *val = NULL;
+
+       {
+               uint32_t _flags_save_ENUM = ndr->flags;
+               ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
+               switch (r) {
+                       case DRSUAPI_EXOP_ERR_NONE: val = "DRSUAPI_EXOP_ERR_NONE"; break;
+                       case DRSUAPI_EXOP_ERR_SUCCESS: val = "DRSUAPI_EXOP_ERR_SUCCESS"; break;
+                       case DRSUAPI_EXOP_ERR_UNKNOWN_OP: val = "DRSUAPI_EXOP_ERR_UNKNOWN_OP"; break;
+                       case DRSUAPI_EXOP_ERR_FSMO_NOT_OWNER: val = "DRSUAPI_EXOP_ERR_FSMO_NOT_OWNER"; break;
+                       case DRSUAPI_EXOP_ERR_UPDATE_ERR: val = "DRSUAPI_EXOP_ERR_UPDATE_ERR"; break;
+                       case DRSUAPI_EXOP_ERR_EXCEPTION: val = "DRSUAPI_EXOP_ERR_EXCEPTION"; break;
+                       case DRSUAPI_EXOP_ERR_UNKNOWN_CALLER: val = "DRSUAPI_EXOP_ERR_UNKNOWN_CALLER"; break;
+                       case DRSUAPI_EXOP_ERR_RID_ALLOC: val = "DRSUAPI_EXOP_ERR_RID_ALLOC"; break;
+                       case DRSUAPI_EXOP_ERR_FSMO_OWNER_DELETED: val = "DRSUAPI_EXOP_ERR_FSMO_OWNER_DELETED"; break;
+                       case DRSUAPI_EXOP_ERR_FMSO_PENDING_OP: val = "DRSUAPI_EXOP_ERR_FMSO_PENDING_OP"; break;
+                       case DRSUAPI_EXOP_ERR_MISMATCH: val = "DRSUAPI_EXOP_ERR_MISMATCH"; break;
+                       case DRSUAPI_EXOP_ERR_COULDNT_CONTACT: val = "DRSUAPI_EXOP_ERR_COULDNT_CONTACT"; break;
+                       case DRSUAPI_EXOP_ERR_FSMO_REFUSING_ROLES: val = "DRSUAPI_EXOP_ERR_FSMO_REFUSING_ROLES"; break;
+                       case DRSUAPI_EXOP_ERR_DIR_ERROR: val = "DRSUAPI_EXOP_ERR_DIR_ERROR"; break;
+                       case DRSUAPI_EXOP_ERR_FSMO_MISSING_SETTINGS: val = "DRSUAPI_EXOP_ERR_FSMO_MISSING_SETTINGS"; break;
+                       case DRSUAPI_EXOP_ERR_ACCESS_DENIED: val = "DRSUAPI_EXOP_ERR_ACCESS_DENIED"; break;
+                       case DRSUAPI_EXOP_ERR_PARAM_ERROR: val = "DRSUAPI_EXOP_ERR_PARAM_ERROR"; break;
+               }
+               ndr_print_enum(ndr, name, "ENUM", val, r);
+               ndr->flags = _flags_save_ENUM;
+       }
+}
+
 static enum ndr_err_code ndr_push_drsuapi_DsGetNCChangesRequest5(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetNCChangesRequest5 *r)
 {
        if (ndr_flags & NDR_SCALARS) {
@@ -808,8 +909,8 @@ static enum ndr_err_code ndr_push_drsuapi_DsGetNCChangesRequest5(struct ndr_push
                NDR_CHECK(ndr_push_drsuapi_DsReplicaNeighbourFlags(ndr, NDR_SCALARS, r->replica_flags));
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_object_count));
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_ndr_size));
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown4));
-               NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->h1));
+               NDR_CHECK(ndr_push_drsuapi_DsExtendedOperation(ndr, NDR_SCALARS, r->extended_op));
+               NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->fsmo_info));
        }
        if (ndr_flags & NDR_BUFFERS) {
                NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
@@ -846,8 +947,8 @@ static enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesRequest5(struct ndr_pull
                NDR_CHECK(ndr_pull_drsuapi_DsReplicaNeighbourFlags(ndr, NDR_SCALARS, &r->replica_flags));
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_object_count));
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_ndr_size));
-               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown4));
-               NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->h1));
+               NDR_CHECK(ndr_pull_drsuapi_DsExtendedOperation(ndr, NDR_SCALARS, &r->extended_op));
+               NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->fsmo_info));
        }
        if (ndr_flags & NDR_BUFFERS) {
                _mem_save_naming_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
@@ -884,8 +985,8 @@ _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesRequest5(struct ndr_print *ndr, co
        ndr_print_drsuapi_DsReplicaNeighbourFlags(ndr, "replica_flags", r->replica_flags);
        ndr_print_uint32(ndr, "max_object_count", r->max_object_count);
        ndr_print_uint32(ndr, "max_ndr_size", r->max_ndr_size);
-       ndr_print_uint32(ndr, "unknown4", r->unknown4);
-       ndr_print_hyper(ndr, "h1", r->h1);
+       ndr_print_drsuapi_DsExtendedOperation(ndr, "extended_op", r->extended_op);
+       ndr_print_hyper(ndr, "fsmo_info", r->fsmo_info);
        ndr->depth--;
 }
 
@@ -1126,6 +1227,74 @@ _PUBLIC_ void ndr_print_drsuapi_DsAttributeId(struct ndr_print *ndr, const char
        }
 }
 
+static enum ndr_err_code ndr_push_drsuapi_DsPartialAttributeSet(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsPartialAttributeSet *r)
+{
+       uint32_t cntr_attids_0;
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_attids));
+               NDR_CHECK(ndr_push_align(ndr, 4));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 1));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_attids));
+               for (cntr_attids_0 = 0; cntr_attids_0 < r->num_attids; cntr_attids_0++) {
+                       NDR_CHECK(ndr_push_drsuapi_DsAttributeId(ndr, NDR_SCALARS, r->attids[cntr_attids_0]));
+               }
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_drsuapi_DsPartialAttributeSet(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsPartialAttributeSet *r)
+{
+       uint32_t cntr_attids_0;
+       TALLOC_CTX *_mem_save_attids_0;
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_pull_array_size(ndr, &r->attids));
+               NDR_CHECK(ndr_pull_align(ndr, 4));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved1));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_attids));
+               if (r->num_attids < 1 || r->num_attids > 0x100000) {
+                       return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
+               }
+               NDR_PULL_ALLOC_N(ndr, r->attids, ndr_get_array_size(ndr, &r->attids));
+               _mem_save_attids_0 = NDR_PULL_GET_MEM_CTX(ndr);
+               NDR_PULL_SET_MEM_CTX(ndr, r->attids, 0);
+               for (cntr_attids_0 = 0; cntr_attids_0 < r->num_attids; cntr_attids_0++) {
+                       NDR_CHECK(ndr_pull_drsuapi_DsAttributeId(ndr, NDR_SCALARS, &r->attids[cntr_attids_0]));
+               }
+               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_attids_0, 0);
+               if (r->attids) {
+                       NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->attids, r->num_attids));
+               }
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_drsuapi_DsPartialAttributeSet(struct ndr_print *ndr, const char *name, const struct drsuapi_DsPartialAttributeSet *r)
+{
+       uint32_t cntr_attids_0;
+       ndr_print_struct(ndr, name, "drsuapi_DsPartialAttributeSet");
+       ndr->depth++;
+       ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?1:r->version);
+       ndr_print_uint32(ndr, "reserved1", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->reserved1);
+       ndr_print_uint32(ndr, "num_attids", r->num_attids);
+       ndr->print(ndr, "%s: ARRAY(%d)", "attids", r->num_attids);
+       ndr->depth++;
+       for (cntr_attids_0=0;cntr_attids_0<r->num_attids;cntr_attids_0++) {
+               char *idx_0=NULL;
+               if (asprintf(&idx_0, "[%d]", cntr_attids_0) != -1) {
+                       ndr_print_drsuapi_DsAttributeId(ndr, "attids", r->attids[cntr_attids_0]);
+                       free(idx_0);
+               }
+       }
+       ndr->depth--;
+       ndr->depth--;
+}
+
 static enum ndr_err_code ndr_push_drsuapi_DsGetNCChangesRequest8(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetNCChangesRequest8 *r)
 {
        if (ndr_flags & NDR_SCALARS) {
@@ -1141,10 +1310,10 @@ static enum ndr_err_code ndr_push_drsuapi_DsGetNCChangesRequest8(struct ndr_push
                NDR_CHECK(ndr_push_drsuapi_DsReplicaNeighbourFlags(ndr, NDR_SCALARS, r->replica_flags));
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_object_count));
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_ndr_size));
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown4));
-               NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->h1));
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unique_ptr1));
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unique_ptr2));
+               NDR_CHECK(ndr_push_drsuapi_DsExtendedOperation(ndr, NDR_SCALARS, r->extended_op));
+               NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->fsmo_info));
+               NDR_CHECK(ndr_push_unique_ptr(ndr, r->partial_attribute_set));
+               NDR_CHECK(ndr_push_unique_ptr(ndr, r->partial_attribute_set_ex));
                NDR_CHECK(ndr_push_drsuapi_DsReplicaOIDMapping_Ctr(ndr, NDR_SCALARS, &r->mapping_ctr));
        }
        if (ndr_flags & NDR_BUFFERS) {
@@ -1152,6 +1321,12 @@ static enum ndr_err_code ndr_push_drsuapi_DsGetNCChangesRequest8(struct ndr_push
                if (r->uptodateness_vector) {
                        NDR_CHECK(ndr_push_drsuapi_DsReplicaCursorCtrEx(ndr, NDR_SCALARS, r->uptodateness_vector));
                }
+               if (r->partial_attribute_set) {
+                       NDR_CHECK(ndr_push_drsuapi_DsPartialAttributeSet(ndr, NDR_SCALARS, r->partial_attribute_set));
+               }
+               if (r->partial_attribute_set_ex) {
+                       NDR_CHECK(ndr_push_drsuapi_DsPartialAttributeSet(ndr, NDR_SCALARS, r->partial_attribute_set_ex));
+               }
                NDR_CHECK(ndr_push_drsuapi_DsReplicaOIDMapping_Ctr(ndr, NDR_BUFFERS, &r->mapping_ctr));
        }
        return NDR_ERR_SUCCESS;
@@ -1163,6 +1338,10 @@ static enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesRequest8(struct ndr_pull
        TALLOC_CTX *_mem_save_naming_context_0;
        uint32_t _ptr_uptodateness_vector;
        TALLOC_CTX *_mem_save_uptodateness_vector_0;
+       uint32_t _ptr_partial_attribute_set;
+       TALLOC_CTX *_mem_save_partial_attribute_set_0;
+       uint32_t _ptr_partial_attribute_set_ex;
+       TALLOC_CTX *_mem_save_partial_attribute_set_ex_0;
        if (ndr_flags & NDR_SCALARS) {
                NDR_CHECK(ndr_pull_align(ndr, 8));
                NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->destination_dsa_guid));
@@ -1183,10 +1362,20 @@ static enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesRequest8(struct ndr_pull
                NDR_CHECK(ndr_pull_drsuapi_DsReplicaNeighbourFlags(ndr, NDR_SCALARS, &r->replica_flags));
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_object_count));
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_ndr_size));
-               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown4));
-               NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->h1));
-               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unique_ptr1));
-               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unique_ptr2));
+               NDR_CHECK(ndr_pull_drsuapi_DsExtendedOperation(ndr, NDR_SCALARS, &r->extended_op));
+               NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->fsmo_info));
+               NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_partial_attribute_set));
+               if (_ptr_partial_attribute_set) {
+                       NDR_PULL_ALLOC(ndr, r->partial_attribute_set);
+               } else {
+                       r->partial_attribute_set = NULL;
+               }
+               NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_partial_attribute_set_ex));
+               if (_ptr_partial_attribute_set_ex) {
+                       NDR_PULL_ALLOC(ndr, r->partial_attribute_set_ex);
+               } else {
+                       r->partial_attribute_set_ex = NULL;
+               }
                NDR_CHECK(ndr_pull_drsuapi_DsReplicaOIDMapping_Ctr(ndr, NDR_SCALARS, &r->mapping_ctr));
        }
        if (ndr_flags & NDR_BUFFERS) {
@@ -1200,6 +1389,18 @@ static enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesRequest8(struct ndr_pull
                        NDR_CHECK(ndr_pull_drsuapi_DsReplicaCursorCtrEx(ndr, NDR_SCALARS, r->uptodateness_vector));
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_uptodateness_vector_0, 0);
                }
+               if (r->partial_attribute_set) {
+                       _mem_save_partial_attribute_set_0 = NDR_PULL_GET_MEM_CTX(ndr);
+                       NDR_PULL_SET_MEM_CTX(ndr, r->partial_attribute_set, 0);
+                       NDR_CHECK(ndr_pull_drsuapi_DsPartialAttributeSet(ndr, NDR_SCALARS, r->partial_attribute_set));
+                       NDR_PULL_SET_MEM_CTX(ndr, _mem_save_partial_attribute_set_0, 0);
+               }
+               if (r->partial_attribute_set_ex) {
+                       _mem_save_partial_attribute_set_ex_0 = NDR_PULL_GET_MEM_CTX(ndr);
+                       NDR_PULL_SET_MEM_CTX(ndr, r->partial_attribute_set_ex, 0);
+                       NDR_CHECK(ndr_pull_drsuapi_DsPartialAttributeSet(ndr, NDR_SCALARS, r->partial_attribute_set_ex));
+                       NDR_PULL_SET_MEM_CTX(ndr, _mem_save_partial_attribute_set_ex_0, 0);
+               }
                NDR_CHECK(ndr_pull_drsuapi_DsReplicaOIDMapping_Ctr(ndr, NDR_BUFFERS, &r->mapping_ctr));
        }
        return NDR_ERR_SUCCESS;
@@ -1225,10 +1426,20 @@ _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesRequest8(struct ndr_print *ndr, co
        ndr_print_drsuapi_DsReplicaNeighbourFlags(ndr, "replica_flags", r->replica_flags);
        ndr_print_uint32(ndr, "max_object_count", r->max_object_count);
        ndr_print_uint32(ndr, "max_ndr_size", r->max_ndr_size);
-       ndr_print_uint32(ndr, "unknown4", r->unknown4);
-       ndr_print_hyper(ndr, "h1", r->h1);
-       ndr_print_uint32(ndr, "unique_ptr1", r->unique_ptr1);
-       ndr_print_uint32(ndr, "unique_ptr2", r->unique_ptr2);
+       ndr_print_drsuapi_DsExtendedOperation(ndr, "extended_op", r->extended_op);
+       ndr_print_hyper(ndr, "fsmo_info", r->fsmo_info);
+       ndr_print_ptr(ndr, "partial_attribute_set", r->partial_attribute_set);
+       ndr->depth++;
+       if (r->partial_attribute_set) {
+               ndr_print_drsuapi_DsPartialAttributeSet(ndr, "partial_attribute_set", r->partial_attribute_set);
+       }
+       ndr->depth--;
+       ndr_print_ptr(ndr, "partial_attribute_set_ex", r->partial_attribute_set_ex);
+       ndr->depth++;
+       if (r->partial_attribute_set_ex) {
+               ndr_print_drsuapi_DsPartialAttributeSet(ndr, "partial_attribute_set_ex", r->partial_attribute_set_ex);
+       }
+       ndr->depth--;
        ndr_print_drsuapi_DsReplicaOIDMapping_Ctr(ndr, "mapping_ctr", &r->mapping_ctr);
        ndr->depth--;
 }
@@ -1370,10 +1581,10 @@ static enum ndr_err_code ndr_push_drsuapi_DsReplicaCursor2CtrEx(struct ndr_push
        if (ndr_flags & NDR_SCALARS) {
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
                NDR_CHECK(ndr_push_align(ndr, 8));
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u1));
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u2));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u3));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
                for (cntr_cursors_0 = 0; cntr_cursors_0 < r->count; cntr_cursors_0++) {
                        NDR_CHECK(ndr_push_drsuapi_DsReplicaCursor2(ndr, NDR_SCALARS, &r->cursors[cntr_cursors_0]));
                }
@@ -1390,13 +1601,13 @@ static enum ndr_err_code ndr_pull_drsuapi_DsReplicaCursor2CtrEx(struct ndr_pull
        if (ndr_flags & NDR_SCALARS) {
                NDR_CHECK(ndr_pull_array_size(ndr, &r->cursors));
                NDR_CHECK(ndr_pull_align(ndr, 8));
-               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u1));
-               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u2));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved1));
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
                if (r->count < 0 || r->count > 0x100000) {
                        return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
                }
-               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u3));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
                NDR_PULL_ALLOC_N(ndr, r->cursors, ndr_get_array_size(ndr, &r->cursors));
                _mem_save_cursors_0 = NDR_PULL_GET_MEM_CTX(ndr);
                NDR_PULL_SET_MEM_CTX(ndr, r->cursors, 0);
@@ -1418,10 +1629,10 @@ _PUBLIC_ void ndr_print_drsuapi_DsReplicaCursor2CtrEx(struct ndr_print *ndr, con
        uint32_t cntr_cursors_0;
        ndr_print_struct(ndr, name, "drsuapi_DsReplicaCursor2CtrEx");
        ndr->depth++;
-       ndr_print_uint32(ndr, "u1", r->u1);
-       ndr_print_uint32(ndr, "u2", r->u2);
+       ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
+       ndr_print_uint32(ndr, "reserved1", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->reserved1);
        ndr_print_uint32(ndr, "count", r->count);
-       ndr_print_uint32(ndr, "u3", r->u3);
+       ndr_print_uint32(ndr, "reserved2", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->reserved2);
        ndr->print(ndr, "%s: ARRAY(%d)", "cursors", r->count);
        ndr->depth++;
        for (cntr_cursors_0=0;cntr_cursors_0<r->count;cntr_cursors_0++) {
@@ -1825,12 +2036,36 @@ _PUBLIC_ void ndr_print_drsuapi_DsReplicaAttributeCtr(struct ndr_print *ndr, con
        ndr->depth--;
 }
 
+_PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsReplicaObjectFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
+{
+       NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsReplicaObjectFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
+{
+       uint32_t v;
+       NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
+       *r = v;
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_drsuapi_DsReplicaObjectFlags(struct ndr_print *ndr, const char *name, uint32_t r)
+{
+       ndr_print_uint32(ndr, name, r);
+       ndr->depth++;
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_OBJECT_FROM_MASTER", DRSUAPI_DS_REPLICA_OBJECT_FROM_MASTER, r);
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_OBJECT_DYNAMIC", DRSUAPI_DS_REPLICA_OBJECT_DYNAMIC, r);
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_OBJECT_REMOTE_MODIFY", DRSUAPI_DS_REPLICA_OBJECT_REMOTE_MODIFY, r);
+       ndr->depth--;
+}
+
 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsReplicaObject(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaObject *r)
 {
        if (ndr_flags & NDR_SCALARS) {
                NDR_CHECK(ndr_push_align(ndr, 4));
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->identifier));
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1));
+               NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectFlags(ndr, NDR_SCALARS, r->flags));
                NDR_CHECK(ndr_push_drsuapi_DsReplicaAttributeCtr(ndr, NDR_SCALARS, &r->attribute_ctr));
        }
        if (ndr_flags & NDR_BUFFERS) {
@@ -1854,7 +2089,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsReplicaObject(struct ndr_pull *ndr
                } else {
                        r->identifier = NULL;
                }
-               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
+               NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectFlags(ndr, NDR_SCALARS, &r->flags));
                NDR_CHECK(ndr_pull_drsuapi_DsReplicaAttributeCtr(ndr, NDR_SCALARS, &r->attribute_ctr));
        }
        if (ndr_flags & NDR_BUFFERS) {
@@ -1879,7 +2114,7 @@ _PUBLIC_ void ndr_print_drsuapi_DsReplicaObject(struct ndr_print *ndr, const cha
                ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "identifier", r->identifier);
        }
        ndr->depth--;
-       ndr_print_uint32(ndr, "unknown1", r->unknown1);
+       ndr_print_drsuapi_DsReplicaObjectFlags(ndr, "flags", r->flags);
        ndr_print_drsuapi_DsReplicaAttributeCtr(ndr, "attribute_ctr", &r->attribute_ctr);
        ndr->depth--;
 }
@@ -1991,7 +2226,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsReplicaObjectListItemEx(struct ndr
                NDR_CHECK(ndr_push_align(ndr, 4));
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->next_object));
                NDR_CHECK(ndr_push_drsuapi_DsReplicaObject(ndr, NDR_SCALARS, &r->object));
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->is_nc_prefix));
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->parent_object_guid));
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->meta_data_ctr));
        }
@@ -2027,7 +2262,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsReplicaObjectListItemEx(struct ndr
                        r->next_object = NULL;
                }
                NDR_CHECK(ndr_pull_drsuapi_DsReplicaObject(ndr, NDR_SCALARS, &r->object));
-               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->is_nc_prefix));
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parent_object_guid));
                if (_ptr_parent_object_guid) {
                        NDR_PULL_ALLOC(ndr, r->parent_object_guid);
@@ -2076,11 +2311,11 @@ _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsGetNCChangesCtr1(struct ndr_push *
                NDR_CHECK(ndr_push_drsuapi_DsReplicaHighWaterMark(ndr, NDR_SCALARS, &r->new_highwatermark));
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->uptodateness_vector));
                NDR_CHECK(ndr_push_drsuapi_DsReplicaOIDMapping_Ctr(ndr, NDR_SCALARS, &r->mapping_ctr));
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_object_count));
+               NDR_CHECK(ndr_push_drsuapi_DsExtendedError(ndr, NDR_SCALARS, r->extended_ret));
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->object_count));
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_drsuapi_DsGetNCChangesCtr1(r, ndr->flags) + 55));
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->first_object));
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown4));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->more_data));
        }
        if (ndr_flags & NDR_BUFFERS) {
                if (r->naming_context) {
@@ -2124,7 +2359,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesCtr1(struct ndr_pull *
                        r->uptodateness_vector = NULL;
                }
                NDR_CHECK(ndr_pull_drsuapi_DsReplicaOIDMapping_Ctr(ndr, NDR_SCALARS, &r->mapping_ctr));
-               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_object_count));
+               NDR_CHECK(ndr_pull_drsuapi_DsExtendedError(ndr, NDR_SCALARS, &r->extended_ret));
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->object_count));
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->__ndr_size));
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_first_object));
@@ -2133,7 +2368,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesCtr1(struct ndr_pull *
                } else {
                        r->first_object = NULL;
                }
-               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown4));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->more_data));
        }
        if (ndr_flags & NDR_BUFFERS) {
                if (r->naming_context) {
@@ -2180,7 +2415,7 @@ _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesCtr1(struct ndr_print *ndr, const
        }
        ndr->depth--;
        ndr_print_drsuapi_DsReplicaOIDMapping_Ctr(ndr, "mapping_ctr", &r->mapping_ctr);
-       ndr_print_uint32(ndr, "total_object_count", r->total_object_count);
+       ndr_print_drsuapi_DsExtendedError(ndr, "extended_ret", r->extended_ret);
        ndr_print_uint32(ndr, "object_count", r->object_count);
        ndr_print_uint32(ndr, "__ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_drsuapi_DsGetNCChangesCtr1(r, ndr->flags) + 55:r->__ndr_size);
        ndr_print_ptr(ndr, "first_object", r->first_object);
@@ -2189,7 +2424,7 @@ _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesCtr1(struct ndr_print *ndr, const
                ndr_print_drsuapi_DsReplicaObjectListItemEx(ndr, "first_object", r->first_object);
        }
        ndr->depth--;
-       ndr_print_uint32(ndr, "unknown4", r->unknown4);
+       ndr_print_uint32(ndr, "more_data", r->more_data);
        ndr->depth--;
 }
 
@@ -2300,16 +2535,16 @@ _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsGetNCChangesCtr6(struct ndr_push *
                NDR_CHECK(ndr_push_drsuapi_DsReplicaHighWaterMark(ndr, NDR_SCALARS, &r->new_highwatermark));
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->uptodateness_vector));
                NDR_CHECK(ndr_push_drsuapi_DsReplicaOIDMapping_Ctr(ndr, NDR_SCALARS, &r->mapping_ctr));
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_object_count));
+               NDR_CHECK(ndr_push_drsuapi_DsExtendedError(ndr, NDR_SCALARS, r->extended_ret));
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->object_count));
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_drsuapi_DsGetNCChangesCtr6(r, ndr->flags) + 55));
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->first_object));
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown4));
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->more_data));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->nc_object_count));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->nc_linked_attributes_count));
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->linked_attributes_count));
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->linked_attributes));
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
+               NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->drs_error));
        }
        if (ndr_flags & NDR_BUFFERS) {
                if (r->naming_context) {
@@ -2366,7 +2601,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesCtr6(struct ndr_pull *
                        r->uptodateness_vector = NULL;
                }
                NDR_CHECK(ndr_pull_drsuapi_DsReplicaOIDMapping_Ctr(ndr, NDR_SCALARS, &r->mapping_ctr));
-               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_object_count));
+               NDR_CHECK(ndr_pull_drsuapi_DsExtendedError(ndr, NDR_SCALARS, &r->extended_ret));
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->object_count));
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->__ndr_size));
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_first_object));
@@ -2375,9 +2610,9 @@ _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesCtr6(struct ndr_pull *
                } else {
                        r->first_object = NULL;
                }
-               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown4));
-               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
-               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->more_data));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->nc_object_count));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->nc_linked_attributes_count));
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->linked_attributes_count));
                if (r->linked_attributes_count < 0 || r->linked_attributes_count > 1048576) {
                        return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
@@ -2388,7 +2623,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesCtr6(struct ndr_pull *
                } else {
                        r->linked_attributes = NULL;
                }
-               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
+               NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->drs_error));
        }
        if (ndr_flags & NDR_BUFFERS) {
                if (r->naming_context) {
@@ -2455,7 +2690,7 @@ _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesCtr6(struct ndr_print *ndr, const
        }
        ndr->depth--;
        ndr_print_drsuapi_DsReplicaOIDMapping_Ctr(ndr, "mapping_ctr", &r->mapping_ctr);
-       ndr_print_uint32(ndr, "total_object_count", r->total_object_count);
+       ndr_print_drsuapi_DsExtendedError(ndr, "extended_ret", r->extended_ret);
        ndr_print_uint32(ndr, "object_count", r->object_count);
        ndr_print_uint32(ndr, "__ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_drsuapi_DsGetNCChangesCtr6(r, ndr->flags) + 55:r->__ndr_size);
        ndr_print_ptr(ndr, "first_object", r->first_object);
@@ -2464,9 +2699,9 @@ _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesCtr6(struct ndr_print *ndr, const
                ndr_print_drsuapi_DsReplicaObjectListItemEx(ndr, "first_object", r->first_object);
        }
        ndr->depth--;
-       ndr_print_uint32(ndr, "unknown4", r->unknown4);
-       ndr_print_uint32(ndr, "unknown5", r->unknown5);
-       ndr_print_uint32(ndr, "unknown6", r->unknown6);
+       ndr_print_uint32(ndr, "more_data", r->more_data);
+       ndr_print_uint32(ndr, "nc_object_count", r->nc_object_count);
+       ndr_print_uint32(ndr, "nc_linked_attributes_count", r->nc_linked_attributes_count);
        ndr_print_uint32(ndr, "linked_attributes_count", r->linked_attributes_count);
        ndr_print_ptr(ndr, "linked_attributes", r->linked_attributes);
        ndr->depth++;
@@ -2483,7 +2718,7 @@ _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesCtr6(struct ndr_print *ndr, const
                ndr->depth--;
        }
        ndr->depth--;
-       ndr_print_uint32(ndr, "unknown7", r->unknown7);
+       ndr_print_WERROR(ndr, "drs_error", r->drs_error);
        ndr->depth--;
 }
 
@@ -2652,31 +2887,21 @@ static enum ndr_err_code ndr_push_drsuapi_DsGetNCChangesXPRESSCtr1(struct ndr_pu
                NDR_CHECK(ndr_push_align(ndr, 4));
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->decompressed_length));
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->compressed_length));
-               {
-                       uint32_t _flags_save_DATA_BLOB = ndr->flags;
-                       ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
-                       NDR_CHECK(ndr_push_unique_ptr(ndr, r->decompressed));
-                       ndr->flags = _flags_save_DATA_BLOB;
-               }
+               NDR_CHECK(ndr_push_unique_ptr(ndr, r->ctr1));
        }
        if (ndr_flags & NDR_BUFFERS) {
-               {
-                       uint32_t _flags_save_DATA_BLOB = ndr->flags;
-                       ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
-                       if (r->decompressed) {
+               if (r->ctr1) {
+                       {
+                               struct ndr_push *_ndr_ctr1;
+                               NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_ctr1, 4, r->compressed_length));
                                {
-                                       struct ndr_push *_ndr_decompressed;
-                                       NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_decompressed, 4, r->compressed_length));
-                                       {
-                                               struct ndr_push *_ndr_decompressed_compressed;
-                                               NDR_CHECK(ndr_push_compression_start(_ndr_decompressed, &_ndr_decompressed_compressed, NDR_COMPRESSION_XPRESS, r->decompressed_length));
-                                               NDR_CHECK(ndr_push_DATA_BLOB(_ndr_decompressed_compressed, NDR_SCALARS, *r->decompressed));
-                                               NDR_CHECK(ndr_push_compression_end(_ndr_decompressed, _ndr_decompressed_compressed, NDR_COMPRESSION_XPRESS, r->decompressed_length));
-                                       }
-                                       NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_decompressed, 4, r->compressed_length));
+                                       struct ndr_push *_ndr_ctr1_compressed;
+                                       NDR_CHECK(ndr_push_compression_start(_ndr_ctr1, &_ndr_ctr1_compressed, NDR_COMPRESSION_XPRESS, r->decompressed_length));
+                                       NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesCtr1(_ndr_ctr1_compressed, NDR_SCALARS|NDR_BUFFERS, r->ctr1));
+                                       NDR_CHECK(ndr_push_compression_end(_ndr_ctr1, _ndr_ctr1_compressed, NDR_COMPRESSION_XPRESS, r->decompressed_length));
                                }
+                               NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_ctr1, 4, r->compressed_length));
                        }
-                       ndr->flags = _flags_save_DATA_BLOB;
                }
        }
        return NDR_ERR_SUCCESS;
@@ -2684,45 +2909,35 @@ static enum ndr_err_code ndr_push_drsuapi_DsGetNCChangesXPRESSCtr1(struct ndr_pu
 
 static enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesXPRESSCtr1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetNCChangesXPRESSCtr1 *r)
 {
-       uint32_t _ptr_decompressed;
-       TALLOC_CTX *_mem_save_decompressed_0;
+       uint32_t _ptr_ctr1;
+       TALLOC_CTX *_mem_save_ctr1_0;
        if (ndr_flags & NDR_SCALARS) {
                NDR_CHECK(ndr_pull_align(ndr, 4));
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->decompressed_length));
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->compressed_length));
-               {
-                       uint32_t _flags_save_DATA_BLOB = ndr->flags;
-                       ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
-                       NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_decompressed));
-                       if (_ptr_decompressed) {
-                               NDR_PULL_ALLOC(ndr, r->decompressed);
-                       } else {
-                               r->decompressed = NULL;
-                       }
-                       ndr->flags = _flags_save_DATA_BLOB;
+               NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr1));
+               if (_ptr_ctr1) {
+                       NDR_PULL_ALLOC(ndr, r->ctr1);
+               } else {
+                       r->ctr1 = NULL;
                }
        }
        if (ndr_flags & NDR_BUFFERS) {
-               {
-                       uint32_t _flags_save_DATA_BLOB = ndr->flags;
-                       ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
-                       if (r->decompressed) {
-                               _mem_save_decompressed_0 = NDR_PULL_GET_MEM_CTX(ndr);
-                               NDR_PULL_SET_MEM_CTX(ndr, r->decompressed, 0);
+               if (r->ctr1) {
+                       _mem_save_ctr1_0 = NDR_PULL_GET_MEM_CTX(ndr);
+                       NDR_PULL_SET_MEM_CTX(ndr, r->ctr1, 0);
+                       {
+                               struct ndr_pull *_ndr_ctr1;
+                               NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_ctr1, 4, r->compressed_length));
                                {
-                                       struct ndr_pull *_ndr_decompressed;
-                                       NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_decompressed, 4, r->compressed_length));
-                                       {
-                                               struct ndr_pull *_ndr_decompressed_compressed;
-                                               NDR_CHECK(ndr_pull_compression_start(_ndr_decompressed, &_ndr_decompressed_compressed, NDR_COMPRESSION_XPRESS, r->decompressed_length));
-                                               NDR_CHECK(ndr_pull_DATA_BLOB(_ndr_decompressed_compressed, NDR_SCALARS, r->decompressed));
-                                               NDR_CHECK(ndr_pull_compression_end(_ndr_decompressed, _ndr_decompressed_compressed, NDR_COMPRESSION_XPRESS, r->decompressed_length));
-                                       }
-                                       NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_decompressed, 4, r->compressed_length));
+                                       struct ndr_pull *_ndr_ctr1_compressed;
+                                       NDR_CHECK(ndr_pull_compression_start(_ndr_ctr1, &_ndr_ctr1_compressed, NDR_COMPRESSION_XPRESS, r->decompressed_length));
+                                       NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCtr1(_ndr_ctr1_compressed, NDR_SCALARS|NDR_BUFFERS, r->ctr1));
+                                       NDR_CHECK(ndr_pull_compression_end(_ndr_ctr1, _ndr_ctr1_compressed, NDR_COMPRESSION_XPRESS, r->decompressed_length));
                                }
-                               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_decompressed_0, 0);
+                               NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_ctr1, 4, r->compressed_length));
                        }
-                       ndr->flags = _flags_save_DATA_BLOB;
+                       NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr1_0, 0);
                }
        }
        return NDR_ERR_SUCCESS;
@@ -2734,10 +2949,10 @@ _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesXPRESSCtr1(struct ndr_print *ndr,
        ndr->depth++;
        ndr_print_uint32(ndr, "decompressed_length", r->decompressed_length);
        ndr_print_uint32(ndr, "compressed_length", r->compressed_length);
-       ndr_print_ptr(ndr, "decompressed", r->decompressed);
+       ndr_print_ptr(ndr, "ctr1", r->ctr1);
        ndr->depth++;
-       if (r->decompressed) {
-               ndr_print_DATA_BLOB(ndr, "decompressed", *r->decompressed);
+       if (r->ctr1) {
+               ndr_print_drsuapi_DsGetNCChangesCtr1(ndr, "ctr1", r->ctr1);
        }
        ndr->depth--;
        ndr->depth--;
@@ -2749,31 +2964,21 @@ static enum ndr_err_code ndr_push_drsuapi_DsGetNCChangesXPRESSCtr6(struct ndr_pu
                NDR_CHECK(ndr_push_align(ndr, 4));
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->decompressed_length));
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->compressed_length));
-               {
-                       uint32_t _flags_save_DATA_BLOB = ndr->flags;
-                       ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
-                       NDR_CHECK(ndr_push_unique_ptr(ndr, r->decompressed));
-                       ndr->flags = _flags_save_DATA_BLOB;
-               }
+               NDR_CHECK(ndr_push_unique_ptr(ndr, r->ctr6));
        }
        if (ndr_flags & NDR_BUFFERS) {
-               {
-                       uint32_t _flags_save_DATA_BLOB = ndr->flags;
-                       ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
-                       if (r->decompressed) {
+               if (r->ctr6) {
+                       {
+                               struct ndr_push *_ndr_ctr6;
+                               NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_ctr6, 4, r->compressed_length));
                                {
-                                       struct ndr_push *_ndr_decompressed;
-                                       NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_decompressed, 4, r->compressed_length));
-                                       {
-                                               struct ndr_push *_ndr_decompressed_compressed;
-                                               NDR_CHECK(ndr_push_compression_start(_ndr_decompressed, &_ndr_decompressed_compressed, NDR_COMPRESSION_XPRESS, r->decompressed_length));
-                                               NDR_CHECK(ndr_push_DATA_BLOB(_ndr_decompressed_compressed, NDR_SCALARS, *r->decompressed));
-                                               NDR_CHECK(ndr_push_compression_end(_ndr_decompressed, _ndr_decompressed_compressed, NDR_COMPRESSION_XPRESS, r->decompressed_length));
-                                       }
-                                       NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_decompressed, 4, r->compressed_length));
+                                       struct ndr_push *_ndr_ctr6_compressed;
+                                       NDR_CHECK(ndr_push_compression_start(_ndr_ctr6, &_ndr_ctr6_compressed, NDR_COMPRESSION_XPRESS, r->decompressed_length));
+                                       NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesCtr6(_ndr_ctr6_compressed, NDR_SCALARS|NDR_BUFFERS, r->ctr6));
+                                       NDR_CHECK(ndr_push_compression_end(_ndr_ctr6, _ndr_ctr6_compressed, NDR_COMPRESSION_XPRESS, r->decompressed_length));
                                }
+                               NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_ctr6, 4, r->compressed_length));
                        }
-                       ndr->flags = _flags_save_DATA_BLOB;
                }
        }
        return NDR_ERR_SUCCESS;
@@ -2781,45 +2986,35 @@ static enum ndr_err_code ndr_push_drsuapi_DsGetNCChangesXPRESSCtr6(struct ndr_pu
 
 static enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesXPRESSCtr6(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetNCChangesXPRESSCtr6 *r)
 {
-       uint32_t _ptr_decompressed;
-       TALLOC_CTX *_mem_save_decompressed_0;
+       uint32_t _ptr_ctr6;
+       TALLOC_CTX *_mem_save_ctr6_0;
        if (ndr_flags & NDR_SCALARS) {
                NDR_CHECK(ndr_pull_align(ndr, 4));
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->decompressed_length));
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->compressed_length));
-               {
-                       uint32_t _flags_save_DATA_BLOB = ndr->flags;
-                       ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
-                       NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_decompressed));
-                       if (_ptr_decompressed) {
-                               NDR_PULL_ALLOC(ndr, r->decompressed);
-                       } else {
-                               r->decompressed = NULL;
-                       }
-                       ndr->flags = _flags_save_DATA_BLOB;
+               NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr6));
+               if (_ptr_ctr6) {
+                       NDR_PULL_ALLOC(ndr, r->ctr6);
+               } else {
+                       r->ctr6 = NULL;
                }
        }
        if (ndr_flags & NDR_BUFFERS) {
-               {
-                       uint32_t _flags_save_DATA_BLOB = ndr->flags;
-                       ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
-                       if (r->decompressed) {
-                               _mem_save_decompressed_0 = NDR_PULL_GET_MEM_CTX(ndr);
-                               NDR_PULL_SET_MEM_CTX(ndr, r->decompressed, 0);
+               if (r->ctr6) {
+                       _mem_save_ctr6_0 = NDR_PULL_GET_MEM_CTX(ndr);
+                       NDR_PULL_SET_MEM_CTX(ndr, r->ctr6, 0);
+                       {
+                               struct ndr_pull *_ndr_ctr6;
+                               NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_ctr6, 4, r->compressed_length));
                                {
-                                       struct ndr_pull *_ndr_decompressed;
-                                       NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_decompressed, 4, r->compressed_length));
-                                       {
-                                               struct ndr_pull *_ndr_decompressed_compressed;
-                                               NDR_CHECK(ndr_pull_compression_start(_ndr_decompressed, &_ndr_decompressed_compressed, NDR_COMPRESSION_XPRESS, r->decompressed_length));
-                                               NDR_CHECK(ndr_pull_DATA_BLOB(_ndr_decompressed_compressed, NDR_SCALARS, r->decompressed));
-                                               NDR_CHECK(ndr_pull_compression_end(_ndr_decompressed, _ndr_decompressed_compressed, NDR_COMPRESSION_XPRESS, r->decompressed_length));
-                                       }
-                                       NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_decompressed, 4, r->compressed_length));
+                                       struct ndr_pull *_ndr_ctr6_compressed;
+                                       NDR_CHECK(ndr_pull_compression_start(_ndr_ctr6, &_ndr_ctr6_compressed, NDR_COMPRESSION_XPRESS, r->decompressed_length));
+                                       NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCtr6(_ndr_ctr6_compressed, NDR_SCALARS|NDR_BUFFERS, r->ctr6));
+                                       NDR_CHECK(ndr_pull_compression_end(_ndr_ctr6, _ndr_ctr6_compressed, NDR_COMPRESSION_XPRESS, r->decompressed_length));
                                }
-                               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_decompressed_0, 0);
+                               NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_ctr6, 4, r->compressed_length));
                        }
-                       ndr->flags = _flags_save_DATA_BLOB;
+                       NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr6_0, 0);
                }
        }
        return NDR_ERR_SUCCESS;
@@ -2831,10 +3026,10 @@ _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesXPRESSCtr6(struct ndr_print *ndr,
        ndr->depth++;
        ndr_print_uint32(ndr, "decompressed_length", r->decompressed_length);
        ndr_print_uint32(ndr, "compressed_length", r->compressed_length);
-       ndr_print_ptr(ndr, "decompressed", r->decompressed);
+       ndr_print_ptr(ndr, "ctr6", r->ctr6);
        ndr->depth++;
-       if (r->decompressed) {
-               ndr_print_DATA_BLOB(ndr, "decompressed", *r->decompressed);
+       if (r->ctr6) {
+               ndr_print_drsuapi_DsGetNCChangesCtr6(ndr, "ctr6", r->ctr6);
        }
        ndr->depth--;
        ndr->depth--;
index 9d10ccd7b8343c53f2c2e776a0fe28b1201be5b2..11cc3f298a8b5daae1d206d4c7eb24e611630024 100644 (file)
@@ -88,6 +88,8 @@ void ndr_print_drsuapi_DsReplicaCursorCtrEx(struct ndr_print *ndr, const char *n
 enum ndr_err_code ndr_push_drsuapi_DsReplicaNeighbourFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r);
 enum ndr_err_code ndr_pull_drsuapi_DsReplicaNeighbourFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r);
 void ndr_print_drsuapi_DsReplicaNeighbourFlags(struct ndr_print *ndr, const char *name, uint32_t r);
+void ndr_print_drsuapi_DsExtendedOperation(struct ndr_print *ndr, const char *name, enum drsuapi_DsExtendedOperation r);
+void ndr_print_drsuapi_DsExtendedError(struct ndr_print *ndr, const char *name, enum drsuapi_DsExtendedError r);
 void ndr_print_drsuapi_DsGetNCChangesRequest5(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetNCChangesRequest5 *r);
 enum ndr_err_code ndr_push_drsuapi_DsReplicaOID(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaOID *r);
 enum ndr_err_code ndr_pull_drsuapi_DsReplicaOID(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaOID *r);
@@ -99,6 +101,7 @@ void ndr_print_drsuapi_DsReplicaOIDMapping_Ctr(struct ndr_print *ndr, const char
 enum ndr_err_code ndr_push_drsuapi_DsAttributeId(struct ndr_push *ndr, int ndr_flags, enum drsuapi_DsAttributeId r);
 enum ndr_err_code ndr_pull_drsuapi_DsAttributeId(struct ndr_pull *ndr, int ndr_flags, enum drsuapi_DsAttributeId *r);
 void ndr_print_drsuapi_DsAttributeId(struct ndr_print *ndr, const char *name, enum drsuapi_DsAttributeId r);
+void ndr_print_drsuapi_DsPartialAttributeSet(struct ndr_print *ndr, const char *name, const struct drsuapi_DsPartialAttributeSet *r);
 void ndr_print_drsuapi_DsGetNCChangesRequest8(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetNCChangesRequest8 *r);
 void ndr_print_drsuapi_DsGetNCChangesRequest(struct ndr_print *ndr, const char *name, const union drsuapi_DsGetNCChangesRequest *r);
 enum ndr_err_code ndr_push_drsuapi_DsReplicaCursor2(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaCursor2 *r);
@@ -119,6 +122,9 @@ enum ndr_err_code ndr_push_drsuapi_DsReplicaAttribute(struct ndr_push *ndr, int
 enum ndr_err_code ndr_pull_drsuapi_DsReplicaAttribute(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaAttribute *r);
 void ndr_print_drsuapi_DsReplicaAttribute(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaAttribute *r);
 void ndr_print_drsuapi_DsReplicaAttributeCtr(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaAttributeCtr *r);
+enum ndr_err_code ndr_push_drsuapi_DsReplicaObjectFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r);
+enum ndr_err_code ndr_pull_drsuapi_DsReplicaObjectFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r);
+void ndr_print_drsuapi_DsReplicaObjectFlags(struct ndr_print *ndr, const char *name, uint32_t r);
 enum ndr_err_code ndr_push_drsuapi_DsReplicaObject(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaObject *r);
 enum ndr_err_code ndr_pull_drsuapi_DsReplicaObject(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaObject *r);
 void ndr_print_drsuapi_DsReplicaObject(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaObject *r);