rap: let the rap print function be autogenerated again.
[kai/samba-autobuild/.git] / librpc / gen_ndr / ndr_drsuapi.c
index f09affcfb53d9361f419243c41674ddbbd99cd96..d233afef6094c9bc0b25e4ae89bd95be11eeeead 100644 (file)
@@ -5,6 +5,7 @@
 
 #include "librpc/gen_ndr/ndr_security.h"
 #include "librpc/gen_ndr/ndr_misc.h"
+#include "librpc/gen_ndr/ndr_lsa.h"
 #include "librpc/gen_ndr/ndr_samr.h"
 #include "librpc/ndr/ndr_compression.h"
 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DrsOptions(struct ndr_push *ndr, int ndr_flags, uint32_t r)
@@ -27,6 +28,7 @@ _PUBLIC_ void ndr_print_drsuapi_DrsOptions(struct ndr_print *ndr, const char *na
        ndr->depth++;
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_ASYNC_OP", DRSUAPI_DRS_ASYNC_OP, r);
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_GETCHG_CHECK", DRSUAPI_DRS_GETCHG_CHECK, r);
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_UPDATE_NOTIFICATION", DRSUAPI_DRS_UPDATE_NOTIFICATION, r);
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_ADD_REF", DRSUAPI_DRS_ADD_REF, r);
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_SYNC_ALL", DRSUAPI_DRS_SYNC_ALL, r);
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_DEL_REF", DRSUAPI_DRS_DEL_REF, r);
@@ -41,13 +43,21 @@ _PUBLIC_ void ndr_print_drsuapi_DrsOptions(struct ndr_print *ndr, const char *na
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_GET_ANC", DRSUAPI_DRS_GET_ANC, r);
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_GET_NC_SIZE", DRSUAPI_DRS_GET_NC_SIZE, r);
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_LOCAL_ONLY", DRSUAPI_DRS_LOCAL_ONLY, r);
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_NONGC_RO_REP", DRSUAPI_DRS_NONGC_RO_REP, r);
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_SYNC_BYNAME", DRSUAPI_DRS_SYNC_BYNAME, r);
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_REF_OK", DRSUAPI_DRS_REF_OK, r);
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_FULL_SYNC_NOW", DRSUAPI_DRS_FULL_SYNC_NOW, r);
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_NO_SOURCE", DRSUAPI_DRS_NO_SOURCE, r);
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_FULL_SYNC_IN_PROGRESS", DRSUAPI_DRS_FULL_SYNC_IN_PROGRESS, r);
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_FULL_SYNC_PACKET", DRSUAPI_DRS_FULL_SYNC_PACKET, r);
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_SYNC_REQUEUE", DRSUAPI_DRS_SYNC_REQUEUE, r);
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_SYNC_URGENT", DRSUAPI_DRS_SYNC_URGENT, r);
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_REF_GCSPN", DRSUAPI_DRS_REF_GCSPN, r);
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_NO_DISCARD", DRSUAPI_DRS_NO_DISCARD, r);
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_NEVER_SYNCED", DRSUAPI_DRS_NEVER_SYNCED, r);
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_SPECIAL_SECRET_PROCESSING", DRSUAPI_DRS_SPECIAL_SECRET_PROCESSING, r);
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_INIT_SYNC_NOW", DRSUAPI_DRS_INIT_SYNC_NOW, r);
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_PREEMPTED", DRSUAPI_DRS_PREEMPTED, r);
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_SYNC_FORCED", DRSUAPI_DRS_SYNC_FORCED, r);
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_DISABLE_AUTO_SYNC", DRSUAPI_DRS_DISABLE_AUTO_SYNC, r);
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_DISABLE_PERIODIC_SYNC", DRSUAPI_DRS_DISABLE_PERIODIC_SYNC, r);
@@ -83,7 +93,7 @@ _PUBLIC_ void ndr_print_drsuapi_SupportedExtensions(struct ndr_print *ndr, const
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_GETCHG_COMPRESS", DRSUAPI_SUPPORTED_EXTENSION_GETCHG_COMPRESS, r);
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V1", DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V1, r);
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_RESTORE_USN_OPTIMIZATION", DRSUAPI_SUPPORTED_EXTENSION_RESTORE_USN_OPTIMIZATION, r);
-       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_00000080", DRSUAPI_SUPPORTED_EXTENSION_00000080, r);
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY", DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY, r);
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_KCC_EXECUTE", DRSUAPI_SUPPORTED_EXTENSION_KCC_EXECUTE, r);
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY_V2", DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY_V2, r);
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_LINKED_VALUE_REPLICATION", DRSUAPI_SUPPORTED_EXTENSION_LINKED_VALUE_REPLICATION, r);
@@ -96,7 +106,7 @@ _PUBLIC_ void ndr_print_drsuapi_SupportedExtensions(struct ndr_print *ndr, const
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_TRANSITIVE_MEMBERSHIP", DRSUAPI_SUPPORTED_EXTENSION_TRANSITIVE_MEMBERSHIP, r);
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_ADD_SID_HISTORY", DRSUAPI_SUPPORTED_EXTENSION_ADD_SID_HISTORY, r);
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_POST_BETA3", DRSUAPI_SUPPORTED_EXTENSION_POST_BETA3, r);
-       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_00100000", DRSUAPI_SUPPORTED_EXTENSION_00100000, r);
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V5", DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V5, r);
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_GET_MEMBERSHIPS2", DRSUAPI_SUPPORTED_EXTENSION_GET_MEMBERSHIPS2, r);
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V6", DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V6, r);
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_NONDOMAIN_NCS", DRSUAPI_SUPPORTED_EXTENSION_NONDOMAIN_NCS, r);
@@ -107,9 +117,9 @@ _PUBLIC_ void ndr_print_drsuapi_SupportedExtensions(struct ndr_print *ndr, const
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V7", DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V7, r);
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_VERIFY_OBJECT", DRSUAPI_SUPPORTED_EXTENSION_VERIFY_OBJECT, r);
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_XPRESS_COMPRESS", DRSUAPI_SUPPORTED_EXTENSION_XPRESS_COMPRESS, r);
-       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_20000000", DRSUAPI_SUPPORTED_EXTENSION_20000000, r);
-       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_40000000", DRSUAPI_SUPPORTED_EXTENSION_40000000, r);
-       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_80000000", DRSUAPI_SUPPORTED_EXTENSION_80000000, r);
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V10", DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V10, r);
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_RESERVED_PART2", DRSUAPI_SUPPORTED_EXTENSION_RESERVED_PART2, r);
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_RESERVED_PART3", DRSUAPI_SUPPORTED_EXTENSION_RESERVED_PART3, r);
        ndr->depth--;
 }
 
@@ -133,6 +143,7 @@ _PUBLIC_ void ndr_print_drsuapi_SupportedExtensionsExt(struct ndr_print *ndr, co
        ndr->depth++;
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_ADAM", DRSUAPI_SUPPORTED_EXTENSION_ADAM, r);
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_LH_BETA2", DRSUAPI_SUPPORTED_EXTENSION_LH_BETA2, r);
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_RECYCLE_BIN", DRSUAPI_SUPPORTED_EXTENSION_RECYCLE_BIN, r);
        ndr->depth--;
 }
 
@@ -557,75 +568,31 @@ _PUBLIC_ size_t ndr_size_drsuapi_DsReplicaObjectIdentifier(const struct drsuapi_
        return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_drsuapi_DsReplicaObjectIdentifier, ic);
 }
 
-_PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsReplicaSyncOptions(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_DsReplicaSyncOptions(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_DsReplicaSyncOptions(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_SYNC_ASYNCHRONOUS_OPERATION", DRSUAPI_DS_REPLICA_SYNC_ASYNCHRONOUS_OPERATION, r);
-       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_WRITEABLE", DRSUAPI_DS_REPLICA_SYNC_WRITEABLE, r);
-       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_PERIODIC", DRSUAPI_DS_REPLICA_SYNC_PERIODIC, r);
-       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_INTERSITE_MESSAGING", DRSUAPI_DS_REPLICA_SYNC_INTERSITE_MESSAGING, r);
-       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_ALL_SOURCES", DRSUAPI_DS_REPLICA_SYNC_ALL_SOURCES, r);
-       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_FULL", DRSUAPI_DS_REPLICA_SYNC_FULL, r);
-       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_URGENT", DRSUAPI_DS_REPLICA_SYNC_URGENT, r);
-       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_NO_DISCARD", DRSUAPI_DS_REPLICA_SYNC_NO_DISCARD, r);
-       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_FORCE", DRSUAPI_DS_REPLICA_SYNC_FORCE, r);
-       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_ADD_REFERENCE", DRSUAPI_DS_REPLICA_SYNC_ADD_REFERENCE, r);
-       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_NEVER_COMPLETED", DRSUAPI_DS_REPLICA_SYNC_NEVER_COMPLETED, r);
-       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_TWO_WAY", DRSUAPI_DS_REPLICA_SYNC_TWO_WAY, r);
-       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_NEVER_NOTIFY", DRSUAPI_DS_REPLICA_SYNC_NEVER_NOTIFY, r);
-       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_INITIAL", DRSUAPI_DS_REPLICA_SYNC_INITIAL, r);
-       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_USE_COMPRESSION", DRSUAPI_DS_REPLICA_SYNC_USE_COMPRESSION, r);
-       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_ABANDONED", DRSUAPI_DS_REPLICA_SYNC_ABANDONED, r);
-       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_INITIAL_IN_PROGRESS", DRSUAPI_DS_REPLICA_SYNC_INITIAL_IN_PROGRESS, r);
-       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_PARTIAL_ATTRIBUTE_SET", DRSUAPI_DS_REPLICA_SYNC_PARTIAL_ATTRIBUTE_SET, r);
-       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_REQUEUE", DRSUAPI_DS_REPLICA_SYNC_REQUEUE, r);
-       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_NOTIFICATION", DRSUAPI_DS_REPLICA_SYNC_NOTIFICATION, r);
-       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_ASYNCHRONOUS_REPLICA", DRSUAPI_DS_REPLICA_SYNC_ASYNCHRONOUS_REPLICA, r);
-       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_CRITICAL", DRSUAPI_DS_REPLICA_SYNC_CRITICAL, r);
-       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_FULL_IN_PROGRESS", DRSUAPI_DS_REPLICA_SYNC_FULL_IN_PROGRESS, r);
-       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_PREEMPTED", DRSUAPI_DS_REPLICA_SYNC_PREEMPTED, r);
-       ndr->depth--;
-}
-
 static enum ndr_err_code ndr_push_drsuapi_DsReplicaSyncRequest1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaSyncRequest1 *r)
 {
        if (ndr_flags & NDR_SCALARS) {
                NDR_CHECK(ndr_push_align(ndr, 5));
-               NDR_CHECK(ndr_push_unique_ptr(ndr, r->naming_context));
+               if (r->naming_context == NULL) {
+                       return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
+               }
+               NDR_CHECK(ndr_push_ref_ptr(ndr));
                NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->source_dsa_guid));
                {
                        uint32_t _flags_save_string = ndr->flags;
                        ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
-                       NDR_CHECK(ndr_push_unique_ptr(ndr, r->other_info));
+                       NDR_CHECK(ndr_push_unique_ptr(ndr, r->source_dsa_dns));
                        ndr->flags = _flags_save_string;
                }
-               NDR_CHECK(ndr_push_drsuapi_DsReplicaSyncOptions(ndr, NDR_SCALARS, r->options));
+               NDR_CHECK(ndr_push_drsuapi_DrsOptions(ndr, NDR_SCALARS, r->options));
                NDR_CHECK(ndr_push_trailer_align(ndr, 5));
        }
        if (ndr_flags & NDR_BUFFERS) {
-               if (r->naming_context) {
-                       NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
-               }
+               NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
                {
                        uint32_t _flags_save_string = ndr->flags;
                        ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
-                       if (r->other_info) {
-                               NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->other_info));
+                       if (r->source_dsa_dns) {
+                               NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->source_dsa_dns));
                        }
                        ndr->flags = _flags_save_string;
                }
@@ -637,11 +604,11 @@ static enum ndr_err_code ndr_pull_drsuapi_DsReplicaSyncRequest1(struct ndr_pull
 {
        uint32_t _ptr_naming_context;
        TALLOC_CTX *_mem_save_naming_context_0;
-       uint32_t _ptr_other_info;
-       TALLOC_CTX *_mem_save_other_info_0;
+       uint32_t _ptr_source_dsa_dns;
+       TALLOC_CTX *_mem_save_source_dsa_dns_0;
        if (ndr_flags & NDR_SCALARS) {
                NDR_CHECK(ndr_pull_align(ndr, 5));
-               NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_naming_context));
+               NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_naming_context));
                if (_ptr_naming_context) {
                        NDR_PULL_ALLOC(ndr, r->naming_context);
                } else {
@@ -651,32 +618,30 @@ static enum ndr_err_code ndr_pull_drsuapi_DsReplicaSyncRequest1(struct ndr_pull
                {
                        uint32_t _flags_save_string = ndr->flags;
                        ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
-                       NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_other_info));
-                       if (_ptr_other_info) {
-                               NDR_PULL_ALLOC(ndr, r->other_info);
+                       NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_source_dsa_dns));
+                       if (_ptr_source_dsa_dns) {
+                               NDR_PULL_ALLOC(ndr, r->source_dsa_dns);
                        } else {
-                               r->other_info = NULL;
+                               r->source_dsa_dns = NULL;
                        }
                        ndr->flags = _flags_save_string;
                }
-               NDR_CHECK(ndr_pull_drsuapi_DsReplicaSyncOptions(ndr, NDR_SCALARS, &r->options));
+               NDR_CHECK(ndr_pull_drsuapi_DrsOptions(ndr, NDR_SCALARS, &r->options));
                NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
        }
        if (ndr_flags & NDR_BUFFERS) {
-               if (r->naming_context) {
-                       _mem_save_naming_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
-                       NDR_PULL_SET_MEM_CTX(ndr, r->naming_context, 0);
-                       NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
-                       NDR_PULL_SET_MEM_CTX(ndr, _mem_save_naming_context_0, 0);
-               }
+               _mem_save_naming_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
+               NDR_PULL_SET_MEM_CTX(ndr, r->naming_context, 0);
+               NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
+               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_naming_context_0, 0);
                {
                        uint32_t _flags_save_string = ndr->flags;
                        ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
-                       if (r->other_info) {
-                               _mem_save_other_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
-                               NDR_PULL_SET_MEM_CTX(ndr, r->other_info, 0);
-                               NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->other_info));
-                               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_other_info_0, 0);
+                       if (r->source_dsa_dns) {
+                               _mem_save_source_dsa_dns_0 = NDR_PULL_GET_MEM_CTX(ndr);
+                               NDR_PULL_SET_MEM_CTX(ndr, r->source_dsa_dns, 0);
+                               NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->source_dsa_dns));
+                               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_source_dsa_dns_0, 0);
                        }
                        ndr->flags = _flags_save_string;
                }
@@ -690,18 +655,16 @@ _PUBLIC_ void ndr_print_drsuapi_DsReplicaSyncRequest1(struct ndr_print *ndr, con
        ndr->depth++;
        ndr_print_ptr(ndr, "naming_context", r->naming_context);
        ndr->depth++;
-       if (r->naming_context) {
-               ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "naming_context", r->naming_context);
-       }
+       ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "naming_context", r->naming_context);
        ndr->depth--;
        ndr_print_GUID(ndr, "source_dsa_guid", &r->source_dsa_guid);
-       ndr_print_ptr(ndr, "other_info", r->other_info);
+       ndr_print_ptr(ndr, "source_dsa_dns", r->source_dsa_dns);
        ndr->depth++;
-       if (r->other_info) {
-               ndr_print_string(ndr, "other_info", r->other_info);
+       if (r->source_dsa_dns) {
+               ndr_print_string(ndr, "source_dsa_dns", r->source_dsa_dns);
        }
        ndr->depth--;
-       ndr_print_drsuapi_DsReplicaSyncOptions(ndr, "options", r->options);
+       ndr_print_drsuapi_DrsOptions(ndr, "options", r->options);
        ndr->depth--;
 }
 
@@ -709,7 +672,7 @@ static enum ndr_err_code ndr_push_drsuapi_DsReplicaSyncRequest(struct ndr_push *
 {
        if (ndr_flags & NDR_SCALARS) {
                int level = ndr_push_get_switch_value(ndr, r);
-               NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, level));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
                NDR_CHECK(ndr_push_union_align(ndr, 5));
                switch (level) {
                        case 1: {
@@ -737,10 +700,10 @@ static enum ndr_err_code ndr_push_drsuapi_DsReplicaSyncRequest(struct ndr_push *
 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaSyncRequest(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsReplicaSyncRequest *r)
 {
        int level;
-       int32_t _level;
+       uint32_t _level;
        level = ndr_pull_get_switch_value(ndr, r);
        if (ndr_flags & NDR_SCALARS) {
-               NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &_level));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
                if (_level != level) {
                        return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
                }
@@ -928,46 +891,6 @@ _PUBLIC_ void ndr_print_drsuapi_DsReplicaCursorCtrEx(struct ndr_print *ndr, cons
        ndr->depth--;
 }
 
-_PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsReplicaNeighbourFlags(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_DsReplicaNeighbourFlags(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_DsReplicaNeighbourFlags(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_NEIGHBOUR_WRITEABLE", DRSUAPI_DS_REPLICA_NEIGHBOUR_WRITEABLE, r);
-       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_NEIGHBOUR_SYNC_ON_STARTUP", DRSUAPI_DS_REPLICA_NEIGHBOUR_SYNC_ON_STARTUP, r);
-       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_NEIGHBOUR_DO_SCHEDULED_SYNCS", DRSUAPI_DS_REPLICA_NEIGHBOUR_DO_SCHEDULED_SYNCS, r);
-       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_NEIGHBOUR_USE_ASYNC_INTERSIDE_TRANSPORT", DRSUAPI_DS_REPLICA_NEIGHBOUR_USE_ASYNC_INTERSIDE_TRANSPORT, r);
-       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_NEIGHBOUR_ASYNC_REP", DRSUAPI_DS_REPLICA_NEIGHBOUR_ASYNC_REP, r);
-       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_NEIGHBOUR_IGNORE_ERROR", DRSUAPI_DS_REPLICA_NEIGHBOUR_IGNORE_ERROR, r);
-       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_NEIGHBOUR_TWO_WAY_SYNC", DRSUAPI_DS_REPLICA_NEIGHBOUR_TWO_WAY_SYNC, r);
-       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_NEIGHBOUR_CRITICAL_ONLY", DRSUAPI_DS_REPLICA_NEIGHBOUR_CRITICAL_ONLY, r);
-       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_NEIGHBOUR_RETURN_OBJECT_PARENTS", DRSUAPI_DS_REPLICA_NEIGHBOUR_RETURN_OBJECT_PARENTS, r);
-       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_NEIGHBOUR_FULL_IN_PROGRESS", DRSUAPI_DS_REPLICA_NEIGHBOUR_FULL_IN_PROGRESS, r);
-       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_NEIGHBOUR_FULL_SYNC_PACKET", DRSUAPI_DS_REPLICA_NEIGHBOUR_FULL_SYNC_PACKET, r);
-       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_NEIGHBOUR_NEVER_SYNCED", DRSUAPI_DS_REPLICA_NEIGHBOUR_NEVER_SYNCED, r);
-       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_NEIGHBOUR_SPECIAL_SECRET_PROCESSING", DRSUAPI_DS_REPLICA_NEIGHBOUR_SPECIAL_SECRET_PROCESSING, r);
-       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_NEIGHBOUR_PREEMPTED", DRSUAPI_DS_REPLICA_NEIGHBOUR_PREEMPTED, r);
-       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_NEIGHBOUR_IGNORE_CHANGE_NOTIFICATIONS", DRSUAPI_DS_REPLICA_NEIGHBOUR_IGNORE_CHANGE_NOTIFICATIONS, r);
-       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_NEIGHBOUR_DISABLE_SCHEDULED_SYNC", DRSUAPI_DS_REPLICA_NEIGHBOUR_DISABLE_SCHEDULED_SYNC, r);
-       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_NEIGHBOUR_COMPRESS_CHANGES", DRSUAPI_DS_REPLICA_NEIGHBOUR_COMPRESS_CHANGES, r);
-       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_NEIGHBOUR_NO_CHANGE_NOTIFICATIONS", DRSUAPI_DS_REPLICA_NEIGHBOUR_NO_CHANGE_NOTIFICATIONS, r);
-       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_NEIGHBOUR_PARTIAL_ATTRIBUTE_SET", DRSUAPI_DS_REPLICA_NEIGHBOUR_PARTIAL_ATTRIBUTE_SET, r);
-       ndr->depth--;
-}
-
 static enum ndr_err_code ndr_push_drsuapi_DsExtendedOperation(struct ndr_push *ndr, int ndr_flags, enum drsuapi_DsExtendedOperation r)
 {
        {
@@ -1081,7 +1004,7 @@ static enum ndr_err_code ndr_push_drsuapi_DsGetNCChangesRequest5(struct ndr_push
                NDR_CHECK(ndr_push_ref_ptr(ndr));
                NDR_CHECK(ndr_push_drsuapi_DsReplicaHighWaterMark(ndr, NDR_SCALARS, &r->highwatermark));
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->uptodateness_vector));
-               NDR_CHECK(ndr_push_drsuapi_DsReplicaNeighbourFlags(ndr, NDR_SCALARS, r->replica_flags));
+               NDR_CHECK(ndr_push_drsuapi_DrsOptions(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_drsuapi_DsExtendedOperation(ndr, NDR_SCALARS, r->extended_op));
@@ -1120,7 +1043,7 @@ static enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesRequest5(struct ndr_pull
                } else {
                        r->uptodateness_vector = NULL;
                }
-               NDR_CHECK(ndr_pull_drsuapi_DsReplicaNeighbourFlags(ndr, NDR_SCALARS, &r->replica_flags));
+               NDR_CHECK(ndr_pull_drsuapi_DrsOptions(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_drsuapi_DsExtendedOperation(ndr, NDR_SCALARS, &r->extended_op));
@@ -1159,7 +1082,7 @@ _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesRequest5(struct ndr_print *ndr, co
                ndr_print_drsuapi_DsReplicaCursorCtrEx(ndr, "uptodateness_vector", r->uptodateness_vector);
        }
        ndr->depth--;
-       ndr_print_drsuapi_DsReplicaNeighbourFlags(ndr, "replica_flags", r->replica_flags);
+       ndr_print_drsuapi_DrsOptions(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_drsuapi_DsExtendedOperation(ndr, "extended_op", r->extended_op);
@@ -1379,6 +1302,7 @@ _PUBLIC_ void ndr_print_drsuapi_DsAttributeId(struct ndr_print *ndr, const char
                ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
                switch (r) {
                        case DRSUAPI_ATTRIBUTE_objectClass: val = "DRSUAPI_ATTRIBUTE_objectClass"; break;
+                       case DRSUAPI_ATTRIBUTE_cn: val = "DRSUAPI_ATTRIBUTE_cn"; break;
                        case DRSUAPI_ATTRIBUTE_description: val = "DRSUAPI_ATTRIBUTE_description"; break;
                        case DRSUAPI_ATTRIBUTE_member: val = "DRSUAPI_ATTRIBUTE_member"; break;
                        case DRSUAPI_ATTRIBUTE_instanceType: val = "DRSUAPI_ATTRIBUTE_instanceType"; break;
@@ -1389,6 +1313,7 @@ _PUBLIC_ void ndr_print_drsuapi_DsAttributeId(struct ndr_print *ndr, const char
                        case DRSUAPI_ATTRIBUTE_governsID: val = "DRSUAPI_ATTRIBUTE_governsID"; break;
                        case DRSUAPI_ATTRIBUTE_mustContain: val = "DRSUAPI_ATTRIBUTE_mustContain"; break;
                        case DRSUAPI_ATTRIBUTE_mayContain: val = "DRSUAPI_ATTRIBUTE_mayContain"; break;
+                       case DRSUAPI_ATTRIBUTE_rDNAttId: val = "DRSUAPI_ATTRIBUTE_rDNAttId"; break;
                        case DRSUAPI_ATTRIBUTE_attributeID: val = "DRSUAPI_ATTRIBUTE_attributeID"; break;
                        case DRSUAPI_ATTRIBUTE_attributeSyntax: val = "DRSUAPI_ATTRIBUTE_attributeSyntax"; break;
                        case DRSUAPI_ATTRIBUTE_isSingleValued: val = "DRSUAPI_ATTRIBUTE_isSingleValued"; break;
@@ -1427,8 +1352,10 @@ _PUBLIC_ void ndr_print_drsuapi_DsAttributeId(struct ndr_print *ndr, const char
                        case DRSUAPI_ATTRIBUTE_systemPossSuperiors: val = "DRSUAPI_ATTRIBUTE_systemPossSuperiors"; break;
                        case DRSUAPI_ATTRIBUTE_systemMayContain: val = "DRSUAPI_ATTRIBUTE_systemMayContain"; break;
                        case DRSUAPI_ATTRIBUTE_systemMustContain: val = "DRSUAPI_ATTRIBUTE_systemMustContain"; break;
+                       case DRSUAPI_ATTRIBUTE_systemAuxiliaryClass: val = "DRSUAPI_ATTRIBUTE_systemAuxiliaryClass"; break;
                        case DRSUAPI_ATTRIBUTE_sAMAccountName: val = "DRSUAPI_ATTRIBUTE_sAMAccountName"; break;
                        case DRSUAPI_ATTRIBUTE_sAMAccountType: val = "DRSUAPI_ATTRIBUTE_sAMAccountType"; break;
+                       case DRSUAPI_ATTRIBUTE_options: val = "DRSUAPI_ATTRIBUTE_options"; break;
                        case DRSUAPI_ATTRIBUTE_fSMORoleOwner: val = "DRSUAPI_ATTRIBUTE_fSMORoleOwner"; break;
                        case DRSUAPI_ATTRIBUTE_systemFlags: val = "DRSUAPI_ATTRIBUTE_systemFlags"; break;
                        case DRSUAPI_ATTRIBUTE_serverReference: val = "DRSUAPI_ATTRIBUTE_serverReference"; break;
@@ -1443,10 +1370,12 @@ _PUBLIC_ void ndr_print_drsuapi_DsAttributeId(struct ndr_print *ndr, const char
                        case DRSUAPI_ATTRIBUTE_servicePrincipalName: val = "DRSUAPI_ATTRIBUTE_servicePrincipalName"; break;
                        case DRSUAPI_ATTRIBUTE_objectCategory: val = "DRSUAPI_ATTRIBUTE_objectCategory"; break;
                        case DRSUAPI_ATTRIBUTE_gPLink: val = "DRSUAPI_ATTRIBUTE_gPLink"; break;
+                       case DRSUAPI_ATTRIBUTE_transportAddressAttribute: val = "DRSUAPI_ATTRIBUTE_transportAddressAttribute"; break;
                        case DRSUAPI_ATTRIBUTE_msDS_Behavior_Version: val = "DRSUAPI_ATTRIBUTE_msDS_Behavior_Version"; break;
                        case DRSUAPI_ATTRIBUTE_msDS_KeyVersionNumber: val = "DRSUAPI_ATTRIBUTE_msDS_KeyVersionNumber"; break;
                        case DRSUAPI_ATTRIBUTE_msDS_HasDomainNCs: val = "DRSUAPI_ATTRIBUTE_msDS_HasDomainNCs"; break;
                        case DRSUAPI_ATTRIBUTE_msDS_hasMasterNCs: val = "DRSUAPI_ATTRIBUTE_msDS_hasMasterNCs"; break;
+                       case DRSUAPI_ATTRIBUTE_NONE: val = "DRSUAPI_ATTRIBUTE_NONE"; break;
                }
                ndr_print_enum(ndr, name, "ENUM", val, r);
                ndr->flags = _flags_save_ENUM;
@@ -1535,7 +1464,7 @@ static enum ndr_err_code ndr_push_drsuapi_DsGetNCChangesRequest8(struct ndr_push
                NDR_CHECK(ndr_push_ref_ptr(ndr));
                NDR_CHECK(ndr_push_drsuapi_DsReplicaHighWaterMark(ndr, NDR_SCALARS, &r->highwatermark));
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->uptodateness_vector));
-               NDR_CHECK(ndr_push_drsuapi_DsReplicaNeighbourFlags(ndr, NDR_SCALARS, r->replica_flags));
+               NDR_CHECK(ndr_push_drsuapi_DrsOptions(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_drsuapi_DsExtendedOperation(ndr, NDR_SCALARS, r->extended_op));
@@ -1588,7 +1517,7 @@ static enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesRequest8(struct ndr_pull
                } else {
                        r->uptodateness_vector = NULL;
                }
-               NDR_CHECK(ndr_pull_drsuapi_DsReplicaNeighbourFlags(ndr, NDR_SCALARS, &r->replica_flags));
+               NDR_CHECK(ndr_pull_drsuapi_DrsOptions(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_drsuapi_DsExtendedOperation(ndr, NDR_SCALARS, &r->extended_op));
@@ -1653,7 +1582,7 @@ _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesRequest8(struct ndr_print *ndr, co
                ndr_print_drsuapi_DsReplicaCursorCtrEx(ndr, "uptodateness_vector", r->uptodateness_vector);
        }
        ndr->depth--;
-       ndr_print_drsuapi_DsReplicaNeighbourFlags(ndr, "replica_flags", r->replica_flags);
+       ndr_print_drsuapi_DrsOptions(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_drsuapi_DsExtendedOperation(ndr, "extended_op", r->extended_op);
@@ -1686,7 +1615,7 @@ static enum ndr_err_code ndr_push_drsuapi_DsGetNCChangesRequest10(struct ndr_pus
                NDR_CHECK(ndr_push_ref_ptr(ndr));
                NDR_CHECK(ndr_push_drsuapi_DsReplicaHighWaterMark(ndr, NDR_SCALARS, &r->highwatermark));
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->uptodateness_vector));
-               NDR_CHECK(ndr_push_drsuapi_DsReplicaNeighbourFlags(ndr, NDR_SCALARS, r->replica_flags));
+               NDR_CHECK(ndr_push_drsuapi_DrsOptions(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_drsuapi_DsExtendedOperation(ndr, NDR_SCALARS, r->extended_op));
@@ -1740,7 +1669,7 @@ static enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesRequest10(struct ndr_pul
                } else {
                        r->uptodateness_vector = NULL;
                }
-               NDR_CHECK(ndr_pull_drsuapi_DsReplicaNeighbourFlags(ndr, NDR_SCALARS, &r->replica_flags));
+               NDR_CHECK(ndr_pull_drsuapi_DrsOptions(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_drsuapi_DsExtendedOperation(ndr, NDR_SCALARS, &r->extended_op));
@@ -1806,7 +1735,7 @@ _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesRequest10(struct ndr_print *ndr, c
                ndr_print_drsuapi_DsReplicaCursorCtrEx(ndr, "uptodateness_vector", r->uptodateness_vector);
        }
        ndr->depth--;
-       ndr_print_drsuapi_DsReplicaNeighbourFlags(ndr, "replica_flags", r->replica_flags);
+       ndr_print_drsuapi_DrsOptions(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_drsuapi_DsExtendedOperation(ndr, "extended_op", r->extended_op);
@@ -1832,7 +1761,7 @@ static enum ndr_err_code ndr_push_drsuapi_DsGetNCChangesRequest(struct ndr_push
 {
        if (ndr_flags & NDR_SCALARS) {
                int level = ndr_push_get_switch_value(ndr, r);
-               NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, level));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
                NDR_CHECK(ndr_push_union_align(ndr, 8));
                switch (level) {
                        case 5: {
@@ -1876,10 +1805,10 @@ static enum ndr_err_code ndr_push_drsuapi_DsGetNCChangesRequest(struct ndr_push
 static enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesRequest(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsGetNCChangesRequest *r)
 {
        int level;
-       int32_t _level;
+       uint32_t _level;
        level = ndr_pull_get_switch_value(ndr, r);
        if (ndr_flags & NDR_SCALARS) {
-               NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &_level));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
                if (_level != level) {
                        return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
                }
@@ -2264,7 +2193,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsReplicaObjectIdentifier3Binary(str
 {
        if (ndr_flags & NDR_SCALARS) {
                NDR_CHECK(ndr_push_align(ndr, 4));
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_drsuapi_DsReplicaObjectIdentifier3(r, ndr->iconv_convenience, ndr->flags)));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_drsuapi_DsReplicaObjectIdentifier3Binary_without_Binary(r, ndr->iconv_convenience, ndr->flags)));
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_dom_sid28(&r->sid, ndr->flags)));
                NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->guid));
                NDR_CHECK(ndr_push_dom_sid28(ndr, NDR_SCALARS, &r->sid));
@@ -2314,7 +2243,7 @@ _PUBLIC_ void ndr_print_drsuapi_DsReplicaObjectIdentifier3Binary(struct ndr_prin
 {
        ndr_print_struct(ndr, name, "drsuapi_DsReplicaObjectIdentifier3Binary");
        ndr->depth++;
-       ndr_print_uint32(ndr, "__ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_drsuapi_DsReplicaObjectIdentifier3(r, ndr->iconv_convenience, ndr->flags):r->__ndr_size);
+       ndr_print_uint32(ndr, "__ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_drsuapi_DsReplicaObjectIdentifier3Binary_without_Binary(r, ndr->iconv_convenience, ndr->flags):r->__ndr_size);
        ndr_print_uint32(ndr, "__ndr_size_sid", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_dom_sid28(&r->sid, ndr->flags):r->__ndr_size_sid);
        ndr_print_GUID(ndr, "guid", &r->guid);
        ndr_print_dom_sid28(ndr, "sid", &r->sid);
@@ -2325,11 +2254,6 @@ _PUBLIC_ void ndr_print_drsuapi_DsReplicaObjectIdentifier3Binary(struct ndr_prin
        ndr->depth--;
 }
 
-_PUBLIC_ size_t ndr_size_drsuapi_DsReplicaObjectIdentifier3Binary(const struct drsuapi_DsReplicaObjectIdentifier3Binary *r, struct smb_iconv_convenience *ic, int flags)
-{
-       return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_drsuapi_DsReplicaObjectIdentifier3Binary, ic);
-}
-
 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsReplicaAttribute(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaAttribute *r)
 {
        if (ndr_flags & NDR_SCALARS) {
@@ -3664,7 +3588,7 @@ static enum ndr_err_code ndr_push_drsuapi_DsGetNCChangesCtr7(struct ndr_push *nd
 {
        if (ndr_flags & NDR_SCALARS) {
                NDR_CHECK(ndr_push_align(ndr, 5));
-               NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->level));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
                NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesCompressionType(ndr, NDR_SCALARS, r->type));
                NDR_CHECK(ndr_push_set_switch_value(ndr, &r->ctr, r->level | (r->type << 16)));
                NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesCompressedCtr(ndr, NDR_SCALARS, &r->ctr));
@@ -3680,8 +3604,8 @@ static enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesCtr7(struct ndr_pull *nd
 {
        if (ndr_flags & NDR_SCALARS) {
                NDR_CHECK(ndr_pull_align(ndr, 5));
-               NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->level));
-               if (r->level < 0 || r->level > 6) {
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
+               if (r->level > 6) {
                        return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
                }
                NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCompressionType(ndr, NDR_SCALARS, &r->type));
@@ -3702,7 +3626,7 @@ _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesCtr7(struct ndr_print *ndr, const
 {
        ndr_print_struct(ndr, name, "drsuapi_DsGetNCChangesCtr7");
        ndr->depth++;
-       ndr_print_int32(ndr, "level", r->level);
+       ndr_print_uint32(ndr, "level", r->level);
        ndr_print_drsuapi_DsGetNCChangesCompressionType(ndr, "type", r->type);
        ndr_print_set_switch_value(ndr, &r->ctr, r->level | (r->type << 16));
        ndr_print_drsuapi_DsGetNCChangesCompressedCtr(ndr, "ctr", &r->ctr);
@@ -3713,7 +3637,7 @@ static enum ndr_err_code ndr_push_drsuapi_DsGetNCChangesCtr(struct ndr_push *ndr
 {
        if (ndr_flags & NDR_SCALARS) {
                int level = ndr_push_get_switch_value(ndr, r);
-               NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, level));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
                NDR_CHECK(ndr_push_union_align(ndr, 8));
                switch (level) {
                        case 1: {
@@ -3765,10 +3689,10 @@ static enum ndr_err_code ndr_push_drsuapi_DsGetNCChangesCtr(struct ndr_push *ndr
 static enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesCtr(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsGetNCChangesCtr *r)
 {
        int level;
-       int32_t _level;
+       uint32_t _level;
        level = ndr_pull_get_switch_value(ndr, r);
        if (ndr_flags & NDR_SCALARS) {
-               NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &_level));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
                if (_level != level) {
                        return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
                }
@@ -3846,32 +3770,6 @@ _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesCtr(struct ndr_print *ndr, const c
        }
 }
 
-static enum ndr_err_code ndr_push_drsuapi_DsReplicaUpdateRefsOptions(struct ndr_push *ndr, int ndr_flags, uint32_t r)
-{
-       NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
-       return NDR_ERR_SUCCESS;
-}
-
-static enum ndr_err_code ndr_pull_drsuapi_DsReplicaUpdateRefsOptions(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_DsReplicaUpdateRefsOptions(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_UPDATE_ASYNCHRONOUS_OPERATION", DRSUAPI_DS_REPLICA_UPDATE_ASYNCHRONOUS_OPERATION, r);
-       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_UPDATE_GETCHG_CHECK", DRSUAPI_DS_REPLICA_UPDATE_GETCHG_CHECK, r);
-       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_UPDATE_ADD_REFERENCE", DRSUAPI_DS_REPLICA_UPDATE_ADD_REFERENCE, r);
-       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_UPDATE_DELETE_REFERENCE", DRSUAPI_DS_REPLICA_UPDATE_DELETE_REFERENCE, r);
-       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_UPDATE_WRITEABLE", DRSUAPI_DS_REPLICA_UPDATE_WRITEABLE, r);
-       ndr->depth--;
-}
-
 static enum ndr_err_code ndr_push_drsuapi_DsReplicaUpdateRefsRequest1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaUpdateRefsRequest1 *r)
 {
        if (ndr_flags & NDR_SCALARS) {
@@ -3885,7 +3783,7 @@ static enum ndr_err_code ndr_push_drsuapi_DsReplicaUpdateRefsRequest1(struct ndr
                }
                NDR_CHECK(ndr_push_ref_ptr(ndr));
                NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->dest_dsa_guid));
-               NDR_CHECK(ndr_push_drsuapi_DsReplicaUpdateRefsOptions(ndr, NDR_SCALARS, r->options));
+               NDR_CHECK(ndr_push_drsuapi_DrsOptions(ndr, NDR_SCALARS, r->options));
                NDR_CHECK(ndr_push_trailer_align(ndr, 5));
        }
        if (ndr_flags & NDR_BUFFERS) {
@@ -3918,7 +3816,7 @@ static enum ndr_err_code ndr_pull_drsuapi_DsReplicaUpdateRefsRequest1(struct ndr
                        r->dest_dsa_dns_name = NULL;
                }
                NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->dest_dsa_guid));
-               NDR_CHECK(ndr_pull_drsuapi_DsReplicaUpdateRefsOptions(ndr, NDR_SCALARS, &r->options));
+               NDR_CHECK(ndr_pull_drsuapi_DrsOptions(ndr, NDR_SCALARS, &r->options));
                NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
        }
        if (ndr_flags & NDR_BUFFERS) {
@@ -3950,7 +3848,7 @@ _PUBLIC_ void ndr_print_drsuapi_DsReplicaUpdateRefsRequest1(struct ndr_print *nd
        ndr_print_string(ndr, "dest_dsa_dns_name", r->dest_dsa_dns_name);
        ndr->depth--;
        ndr_print_GUID(ndr, "dest_dsa_guid", &r->dest_dsa_guid);
-       ndr_print_drsuapi_DsReplicaUpdateRefsOptions(ndr, "options", r->options);
+       ndr_print_drsuapi_DrsOptions(ndr, "options", r->options);
        ndr->depth--;
 }
 
@@ -3958,7 +3856,7 @@ static enum ndr_err_code ndr_push_drsuapi_DsReplicaUpdateRefsRequest(struct ndr_
 {
        if (ndr_flags & NDR_SCALARS) {
                int level = ndr_push_get_switch_value(ndr, r);
-               NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, level));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
                NDR_CHECK(ndr_push_union_align(ndr, 5));
                switch (level) {
                        case 1: {
@@ -3986,10 +3884,10 @@ static enum ndr_err_code ndr_push_drsuapi_DsReplicaUpdateRefsRequest(struct ndr_
 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaUpdateRefsRequest(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsReplicaUpdateRefsRequest *r)
 {
        int level;
-       int32_t _level;
+       uint32_t _level;
        level = ndr_pull_get_switch_value(ndr, r);
        if (ndr_flags & NDR_SCALARS) {
-               NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &_level));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
                if (_level != level) {
                        return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
                }
@@ -4031,29 +3929,6 @@ _PUBLIC_ void ndr_print_drsuapi_DsReplicaUpdateRefsRequest(struct ndr_print *ndr
        }
 }
 
-static enum ndr_err_code ndr_push_drsuapi_DsReplicaAddOptions(struct ndr_push *ndr, int ndr_flags, uint32_t r)
-{
-       NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
-       return NDR_ERR_SUCCESS;
-}
-
-static enum ndr_err_code ndr_pull_drsuapi_DsReplicaAddOptions(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_DsReplicaAddOptions(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_ADD_ASYNCHRONOUS_OPERATION", DRSUAPI_DS_REPLICA_ADD_ASYNCHRONOUS_OPERATION, r);
-       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_ADD_WRITEABLE", DRSUAPI_DS_REPLICA_ADD_WRITEABLE, r);
-       ndr->depth--;
-}
-
 static enum ndr_err_code ndr_push_drsuapi_DsReplicaAddRequest1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaAddRequest1 *r)
 {
        if (ndr_flags & NDR_SCALARS) {
@@ -4064,7 +3939,7 @@ static enum ndr_err_code ndr_push_drsuapi_DsReplicaAddRequest1(struct ndr_push *
                NDR_CHECK(ndr_push_ref_ptr(ndr));
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->source_dsa_address));
                NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->schedule, 84));
-               NDR_CHECK(ndr_push_drsuapi_DsReplicaAddOptions(ndr, NDR_SCALARS, r->options));
+               NDR_CHECK(ndr_push_drsuapi_DrsOptions(ndr, NDR_SCALARS, r->options));
                NDR_CHECK(ndr_push_trailer_align(ndr, 5));
        }
        if (ndr_flags & NDR_BUFFERS) {
@@ -4100,7 +3975,7 @@ static enum ndr_err_code ndr_pull_drsuapi_DsReplicaAddRequest1(struct ndr_pull *
                        r->source_dsa_address = NULL;
                }
                NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->schedule, 84));
-               NDR_CHECK(ndr_pull_drsuapi_DsReplicaAddOptions(ndr, NDR_SCALARS, &r->options));
+               NDR_CHECK(ndr_pull_drsuapi_DrsOptions(ndr, NDR_SCALARS, &r->options));
                NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
        }
        if (ndr_flags & NDR_BUFFERS) {
@@ -4139,7 +4014,7 @@ _PUBLIC_ void ndr_print_drsuapi_DsReplicaAddRequest1(struct ndr_print *ndr, cons
        }
        ndr->depth--;
        ndr_print_array_uint8(ndr, "schedule", r->schedule, 84);
-       ndr_print_drsuapi_DsReplicaAddOptions(ndr, "options", r->options);
+       ndr_print_drsuapi_DrsOptions(ndr, "options", r->options);
        ndr->depth--;
 }
 
@@ -4155,7 +4030,7 @@ static enum ndr_err_code ndr_push_drsuapi_DsReplicaAddRequest2(struct ndr_push *
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->transport_dn));
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->source_dsa_address));
                NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->schedule, 84));
-               NDR_CHECK(ndr_push_drsuapi_DsReplicaAddOptions(ndr, NDR_SCALARS, r->options));
+               NDR_CHECK(ndr_push_drsuapi_DrsOptions(ndr, NDR_SCALARS, r->options));
                NDR_CHECK(ndr_push_trailer_align(ndr, 5));
        }
        if (ndr_flags & NDR_BUFFERS) {
@@ -4213,7 +4088,7 @@ static enum ndr_err_code ndr_pull_drsuapi_DsReplicaAddRequest2(struct ndr_pull *
                        r->source_dsa_address = NULL;
                }
                NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->schedule, 84));
-               NDR_CHECK(ndr_pull_drsuapi_DsReplicaAddOptions(ndr, NDR_SCALARS, &r->options));
+               NDR_CHECK(ndr_pull_drsuapi_DrsOptions(ndr, NDR_SCALARS, &r->options));
                NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
        }
        if (ndr_flags & NDR_BUFFERS) {
@@ -4276,7 +4151,7 @@ _PUBLIC_ void ndr_print_drsuapi_DsReplicaAddRequest2(struct ndr_print *ndr, cons
        }
        ndr->depth--;
        ndr_print_array_uint8(ndr, "schedule", r->schedule, 84);
-       ndr_print_drsuapi_DsReplicaAddOptions(ndr, "options", r->options);
+       ndr_print_drsuapi_DrsOptions(ndr, "options", r->options);
        ndr->depth--;
 }
 
@@ -4284,7 +4159,7 @@ static enum ndr_err_code ndr_push_drsuapi_DsReplicaAddRequest(struct ndr_push *n
 {
        if (ndr_flags & NDR_SCALARS) {
                int level = ndr_push_get_switch_value(ndr, r);
-               NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, level));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
                NDR_CHECK(ndr_push_union_align(ndr, 5));
                switch (level) {
                        case 1: {
@@ -4320,10 +4195,10 @@ static enum ndr_err_code ndr_push_drsuapi_DsReplicaAddRequest(struct ndr_push *n
 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaAddRequest(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsReplicaAddRequest *r)
 {
        int level;
-       int32_t _level;
+       uint32_t _level;
        level = ndr_pull_get_switch_value(ndr, r);
        if (ndr_flags & NDR_SCALARS) {
-               NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &_level));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
                if (_level != level) {
                        return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
                }
@@ -4377,29 +4252,6 @@ _PUBLIC_ void ndr_print_drsuapi_DsReplicaAddRequest(struct ndr_print *ndr, const
        }
 }
 
-static enum ndr_err_code ndr_push_drsuapi_DsReplicaDeleteOptions(struct ndr_push *ndr, int ndr_flags, uint32_t r)
-{
-       NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
-       return NDR_ERR_SUCCESS;
-}
-
-static enum ndr_err_code ndr_pull_drsuapi_DsReplicaDeleteOptions(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_DsReplicaDeleteOptions(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_ADD_ASYNCHRONOUS_OPERATION", DRSUAPI_DS_REPLICA_ADD_ASYNCHRONOUS_OPERATION, r);
-       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_ADD_WRITEABLE", DRSUAPI_DS_REPLICA_ADD_WRITEABLE, r);
-       ndr->depth--;
-}
-
 static enum ndr_err_code ndr_push_drsuapi_DsReplicaDelRequest1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaDelRequest1 *r)
 {
        if (ndr_flags & NDR_SCALARS) {
@@ -4409,7 +4261,7 @@ static enum ndr_err_code ndr_push_drsuapi_DsReplicaDelRequest1(struct ndr_push *
                }
                NDR_CHECK(ndr_push_ref_ptr(ndr));
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->source_dsa_address));
-               NDR_CHECK(ndr_push_drsuapi_DsReplicaDeleteOptions(ndr, NDR_SCALARS, r->options));
+               NDR_CHECK(ndr_push_drsuapi_DrsOptions(ndr, NDR_SCALARS, r->options));
                NDR_CHECK(ndr_push_trailer_align(ndr, 5));
        }
        if (ndr_flags & NDR_BUFFERS) {
@@ -4444,7 +4296,7 @@ static enum ndr_err_code ndr_pull_drsuapi_DsReplicaDelRequest1(struct ndr_pull *
                } else {
                        r->source_dsa_address = NULL;
                }
-               NDR_CHECK(ndr_pull_drsuapi_DsReplicaDeleteOptions(ndr, NDR_SCALARS, &r->options));
+               NDR_CHECK(ndr_pull_drsuapi_DrsOptions(ndr, NDR_SCALARS, &r->options));
                NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
        }
        if (ndr_flags & NDR_BUFFERS) {
@@ -4482,7 +4334,7 @@ _PUBLIC_ void ndr_print_drsuapi_DsReplicaDelRequest1(struct ndr_print *ndr, cons
                ndr_print_string(ndr, "source_dsa_address", r->source_dsa_address);
        }
        ndr->depth--;
-       ndr_print_drsuapi_DsReplicaDeleteOptions(ndr, "options", r->options);
+       ndr_print_drsuapi_DrsOptions(ndr, "options", r->options);
        ndr->depth--;
 }
 
@@ -4490,7 +4342,7 @@ static enum ndr_err_code ndr_push_drsuapi_DsReplicaDelRequest(struct ndr_push *n
 {
        if (ndr_flags & NDR_SCALARS) {
                int level = ndr_push_get_switch_value(ndr, r);
-               NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, level));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
                NDR_CHECK(ndr_push_union_align(ndr, 5));
                switch (level) {
                        case 1: {
@@ -4518,10 +4370,10 @@ static enum ndr_err_code ndr_push_drsuapi_DsReplicaDelRequest(struct ndr_push *n
 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaDelRequest(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsReplicaDelRequest *r)
 {
        int level;
-       int32_t _level;
+       uint32_t _level;
        level = ndr_pull_get_switch_value(ndr, r);
        if (ndr_flags & NDR_SCALARS) {
-               NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &_level));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
                if (_level != level) {
                        return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
                }
@@ -4563,29 +4415,6 @@ _PUBLIC_ void ndr_print_drsuapi_DsReplicaDelRequest(struct ndr_print *ndr, const
        }
 }
 
-static enum ndr_err_code ndr_push_drsuapi_DsReplicaModifyOptions(struct ndr_push *ndr, int ndr_flags, uint32_t r)
-{
-       NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
-       return NDR_ERR_SUCCESS;
-}
-
-static enum ndr_err_code ndr_pull_drsuapi_DsReplicaModifyOptions(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_DsReplicaModifyOptions(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_ADD_ASYNCHRONOUS_OPERATION", DRSUAPI_DS_REPLICA_ADD_ASYNCHRONOUS_OPERATION, r);
-       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_ADD_WRITEABLE", DRSUAPI_DS_REPLICA_ADD_WRITEABLE, r);
-       ndr->depth--;
-}
-
 static enum ndr_err_code ndr_push_drsuapi_DsReplicaModRequest1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaModRequest1 *r)
 {
        if (ndr_flags & NDR_SCALARS) {
@@ -4599,7 +4428,7 @@ static enum ndr_err_code ndr_push_drsuapi_DsReplicaModRequest1(struct ndr_push *
                NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->schedule, 84));
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->replica_flags));
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->modify_fields));
-               NDR_CHECK(ndr_push_drsuapi_DsReplicaModifyOptions(ndr, NDR_SCALARS, r->options));
+               NDR_CHECK(ndr_push_drsuapi_DrsOptions(ndr, NDR_SCALARS, r->options));
                NDR_CHECK(ndr_push_trailer_align(ndr, 5));
        }
        if (ndr_flags & NDR_BUFFERS) {
@@ -4638,7 +4467,7 @@ static enum ndr_err_code ndr_pull_drsuapi_DsReplicaModRequest1(struct ndr_pull *
                NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->schedule, 84));
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->replica_flags));
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->modify_fields));
-               NDR_CHECK(ndr_pull_drsuapi_DsReplicaModifyOptions(ndr, NDR_SCALARS, &r->options));
+               NDR_CHECK(ndr_pull_drsuapi_DrsOptions(ndr, NDR_SCALARS, &r->options));
                NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
        }
        if (ndr_flags & NDR_BUFFERS) {
@@ -4680,7 +4509,7 @@ _PUBLIC_ void ndr_print_drsuapi_DsReplicaModRequest1(struct ndr_print *ndr, cons
        ndr_print_array_uint8(ndr, "schedule", r->schedule, 84);
        ndr_print_uint32(ndr, "replica_flags", r->replica_flags);
        ndr_print_uint32(ndr, "modify_fields", r->modify_fields);
-       ndr_print_drsuapi_DsReplicaModifyOptions(ndr, "options", r->options);
+       ndr_print_drsuapi_DrsOptions(ndr, "options", r->options);
        ndr->depth--;
 }
 
@@ -4688,7 +4517,7 @@ static enum ndr_err_code ndr_push_drsuapi_DsReplicaModRequest(struct ndr_push *n
 {
        if (ndr_flags & NDR_SCALARS) {
                int level = ndr_push_get_switch_value(ndr, r);
-               NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, level));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
                NDR_CHECK(ndr_push_union_align(ndr, 5));
                switch (level) {
                        case 1: {
@@ -4716,10 +4545,10 @@ static enum ndr_err_code ndr_push_drsuapi_DsReplicaModRequest(struct ndr_push *n
 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaModRequest(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsReplicaModRequest *r)
 {
        int level;
-       int32_t _level;
+       uint32_t _level;
        level = ndr_pull_get_switch_value(ndr, r);
        if (ndr_flags & NDR_SCALARS) {
-               NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &_level));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
                if (_level != level) {
                        return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
                }
@@ -5037,7 +4866,7 @@ static enum ndr_err_code ndr_push_drsuapi_DsGetMembershipsCtr(struct ndr_push *n
 {
        if (ndr_flags & NDR_SCALARS) {
                int level = ndr_push_get_switch_value(ndr, r);
-               NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, level));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
                NDR_CHECK(ndr_push_union_align(ndr, 5));
                switch (level) {
                        case 1: {
@@ -5065,10 +4894,10 @@ static enum ndr_err_code ndr_push_drsuapi_DsGetMembershipsCtr(struct ndr_push *n
 static enum ndr_err_code ndr_pull_drsuapi_DsGetMembershipsCtr(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsGetMembershipsCtr *r)
 {
        int level;
-       int32_t _level;
+       uint32_t _level;
        level = ndr_pull_get_switch_value(ndr, r);
        if (ndr_flags & NDR_SCALARS) {
-               NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &_level));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
                if (_level != level) {
                        return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
                }
@@ -5164,6 +4993,9 @@ static enum ndr_err_code ndr_pull_drsuapi_DsGetMembershipsRequest1(struct ndr_pu
                }
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
                NDR_CHECK(ndr_pull_drsuapi_DsMembershipType(ndr, NDR_SCALARS, &r->type));
+               if (r->type < 1 || r->type > 7) {
+                       return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
+               }
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
                if (_ptr_domain) {
                        NDR_PULL_ALLOC(ndr, r->domain);
@@ -5253,7 +5085,7 @@ static enum ndr_err_code ndr_push_drsuapi_DsGetMembershipsRequest(struct ndr_pus
 {
        if (ndr_flags & NDR_SCALARS) {
                int level = ndr_push_get_switch_value(ndr, r);
-               NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, level));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
                NDR_CHECK(ndr_push_union_align(ndr, 5));
                switch (level) {
                        case 1: {
@@ -5281,10 +5113,10 @@ static enum ndr_err_code ndr_push_drsuapi_DsGetMembershipsRequest(struct ndr_pus
 static enum ndr_err_code ndr_pull_drsuapi_DsGetMembershipsRequest(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsGetMembershipsRequest *r)
 {
        int level;
-       int32_t _level;
+       uint32_t _level;
        level = ndr_pull_get_switch_value(ndr, r);
        if (ndr_flags & NDR_SCALARS) {
-               NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &_level));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
                if (_level != level) {
                        return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
                }
@@ -5326,20 +5158,43 @@ _PUBLIC_ void ndr_print_drsuapi_DsGetMembershipsRequest(struct ndr_print *ndr, c
        }
 }
 
+static enum ndr_err_code ndr_push_drsuapi_DsGetNT4ChangeLogFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
+{
+       NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
+       return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_drsuapi_DsGetNT4ChangeLogFlags(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_DsGetNT4ChangeLogFlags(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_NT4_CHANGELOG_GET_CHANGELOG", DRSUAPI_NT4_CHANGELOG_GET_CHANGELOG, r);
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_NT4_CHANGELOG_GET_SERIAL_NUMBERS", DRSUAPI_NT4_CHANGELOG_GET_SERIAL_NUMBERS, r);
+       ndr->depth--;
+}
+
 static enum ndr_err_code ndr_push_drsuapi_DsGetNT4ChangeLogRequest1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetNT4ChangeLogRequest1 *r)
 {
        if (ndr_flags & NDR_SCALARS) {
                NDR_CHECK(ndr_push_align(ndr, 5));
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1));
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
-               NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
+               NDR_CHECK(ndr_push_drsuapi_DsGetNT4ChangeLogFlags(ndr, NDR_SCALARS, r->flags));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->preferred_maximum_length));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->restart_length));
+               NDR_CHECK(ndr_push_unique_ptr(ndr, r->restart_data));
                NDR_CHECK(ndr_push_trailer_align(ndr, 5));
        }
        if (ndr_flags & NDR_BUFFERS) {
-               if (r->data) {
-                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->length));
-                       NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, r->length));
+               if (r->restart_data) {
+                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->restart_length));
+                       NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->restart_data, r->restart_length));
                }
        }
        return NDR_ERR_SUCCESS;
@@ -5347,35 +5202,35 @@ static enum ndr_err_code ndr_push_drsuapi_DsGetNT4ChangeLogRequest1(struct ndr_p
 
 static enum ndr_err_code ndr_pull_drsuapi_DsGetNT4ChangeLogRequest1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetNT4ChangeLogRequest1 *r)
 {
-       uint32_t _ptr_data;
-       TALLOC_CTX *_mem_save_data_0;
+       uint32_t _ptr_restart_data;
+       TALLOC_CTX *_mem_save_restart_data_0;
        if (ndr_flags & NDR_SCALARS) {
                NDR_CHECK(ndr_pull_align(ndr, 5));
-               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
-               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
-               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
-               if (r->length > 0x00A00000) {
+               NDR_CHECK(ndr_pull_drsuapi_DsGetNT4ChangeLogFlags(ndr, NDR_SCALARS, &r->flags));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->preferred_maximum_length));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->restart_length));
+               if (r->restart_length > 0x00A00000) {
                        return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
                }
-               NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
-               if (_ptr_data) {
-                       NDR_PULL_ALLOC(ndr, r->data);
+               NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_restart_data));
+               if (_ptr_restart_data) {
+                       NDR_PULL_ALLOC(ndr, r->restart_data);
                } else {
-                       r->data = NULL;
+                       r->restart_data = NULL;
                }
                NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
        }
        if (ndr_flags & NDR_BUFFERS) {
-               if (r->data) {
-                       _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
-                       NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
-                       NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
-                       NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
-                       NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, ndr_get_array_size(ndr, &r->data)));
-                       NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
+               if (r->restart_data) {
+                       _mem_save_restart_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
+                       NDR_PULL_SET_MEM_CTX(ndr, r->restart_data, 0);
+                       NDR_CHECK(ndr_pull_array_size(ndr, &r->restart_data));
+                       NDR_PULL_ALLOC_N(ndr, r->restart_data, ndr_get_array_size(ndr, &r->restart_data));
+                       NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->restart_data, ndr_get_array_size(ndr, &r->restart_data)));
+                       NDR_PULL_SET_MEM_CTX(ndr, _mem_save_restart_data_0, 0);
                }
-               if (r->data) {
-                       NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->length));
+               if (r->restart_data) {
+                       NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->restart_data, r->restart_length));
                }
        }
        return NDR_ERR_SUCCESS;
@@ -5385,13 +5240,13 @@ _PUBLIC_ void ndr_print_drsuapi_DsGetNT4ChangeLogRequest1(struct ndr_print *ndr,
 {
        ndr_print_struct(ndr, name, "drsuapi_DsGetNT4ChangeLogRequest1");
        ndr->depth++;
-       ndr_print_uint32(ndr, "unknown1", r->unknown1);
-       ndr_print_uint32(ndr, "unknown2", r->unknown2);
-       ndr_print_uint32(ndr, "length", r->length);
-       ndr_print_ptr(ndr, "data", r->data);
+       ndr_print_drsuapi_DsGetNT4ChangeLogFlags(ndr, "flags", r->flags);
+       ndr_print_uint32(ndr, "preferred_maximum_length", r->preferred_maximum_length);
+       ndr_print_uint32(ndr, "restart_length", r->restart_length);
+       ndr_print_ptr(ndr, "restart_data", r->restart_data);
        ndr->depth++;
-       if (r->data) {
-               ndr_print_array_uint8(ndr, "data", r->data, r->length);
+       if (r->restart_data) {
+               ndr_print_array_uint8(ndr, "restart_data", r->restart_data, r->restart_length);
        }
        ndr->depth--;
        ndr->depth--;
@@ -5478,27 +5333,27 @@ static enum ndr_err_code ndr_push_drsuapi_DsGetNT4ChangeLogInfo1(struct ndr_push
 {
        if (ndr_flags & NDR_SCALARS) {
                NDR_CHECK(ndr_push_align(ndr, 8));
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length1));
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length2));
-               NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->unknown1));
-               NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->time2));
-               NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->unknown3));
-               NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->time4));
-               NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->unknown5));
-               NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->time6));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->restart_length));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->log_length));
+               NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->sam_serial_number));
+               NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->sam_creation_time));
+               NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->builtin_serial_number));
+               NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->builtin_creation_time));
+               NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->lsa_serial_number));
+               NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->lsa_creation_time));
                NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->status));
-               NDR_CHECK(ndr_push_unique_ptr(ndr, r->data1));
-               NDR_CHECK(ndr_push_unique_ptr(ndr, r->data2));
+               NDR_CHECK(ndr_push_unique_ptr(ndr, r->restart_data));
+               NDR_CHECK(ndr_push_unique_ptr(ndr, r->log_data));
                NDR_CHECK(ndr_push_trailer_align(ndr, 8));
        }
        if (ndr_flags & NDR_BUFFERS) {
-               if (r->data1) {
-                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->length1));
-                       NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data1, r->length1));
+               if (r->restart_data) {
+                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->restart_length));
+                       NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->restart_data, r->restart_length));
                }
-               if (r->data2) {
-                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->length2));
-                       NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data2, r->length2));
+               if (r->log_data) {
+                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->log_length));
+                       NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->log_data, r->log_length));
                }
        }
        return NDR_ERR_SUCCESS;
@@ -5506,63 +5361,63 @@ static enum ndr_err_code ndr_push_drsuapi_DsGetNT4ChangeLogInfo1(struct ndr_push
 
 static enum ndr_err_code ndr_pull_drsuapi_DsGetNT4ChangeLogInfo1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetNT4ChangeLogInfo1 *r)
 {
-       uint32_t _ptr_data1;
-       TALLOC_CTX *_mem_save_data1_0;
-       uint32_t _ptr_data2;
-       TALLOC_CTX *_mem_save_data2_0;
+       uint32_t _ptr_restart_data;
+       TALLOC_CTX *_mem_save_restart_data_0;
+       uint32_t _ptr_log_data;
+       TALLOC_CTX *_mem_save_log_data_0;
        if (ndr_flags & NDR_SCALARS) {
                NDR_CHECK(ndr_pull_align(ndr, 8));
-               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length1));
-               if (r->length1 > 0x00A00000) {
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->restart_length));
+               if (r->restart_length > 0x00A00000) {
                        return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
                }
-               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length2));
-               if (r->length2 > 0x00A00000) {
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->log_length));
+               if (r->log_length > 0x00A00000) {
                        return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
                }
-               NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->unknown1));
-               NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->time2));
-               NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->unknown3));
-               NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->time4));
-               NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->unknown5));
-               NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->time6));
+               NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->sam_serial_number));
+               NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->sam_creation_time));
+               NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->builtin_serial_number));
+               NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->builtin_creation_time));
+               NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->lsa_serial_number));
+               NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->lsa_creation_time));
                NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->status));
-               NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data1));
-               if (_ptr_data1) {
-                       NDR_PULL_ALLOC(ndr, r->data1);
+               NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_restart_data));
+               if (_ptr_restart_data) {
+                       NDR_PULL_ALLOC(ndr, r->restart_data);
                } else {
-                       r->data1 = NULL;
+                       r->restart_data = NULL;
                }
-               NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data2));
-               if (_ptr_data2) {
-                       NDR_PULL_ALLOC(ndr, r->data2);
+               NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_log_data));
+               if (_ptr_log_data) {
+                       NDR_PULL_ALLOC(ndr, r->log_data);
                } else {
-                       r->data2 = NULL;
+                       r->log_data = NULL;
                }
                NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
        }
        if (ndr_flags & NDR_BUFFERS) {
-               if (r->data1) {
-                       _mem_save_data1_0 = NDR_PULL_GET_MEM_CTX(ndr);
-                       NDR_PULL_SET_MEM_CTX(ndr, r->data1, 0);
-                       NDR_CHECK(ndr_pull_array_size(ndr, &r->data1));
-                       NDR_PULL_ALLOC_N(ndr, r->data1, ndr_get_array_size(ndr, &r->data1));
-                       NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data1, ndr_get_array_size(ndr, &r->data1)));
-                       NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data1_0, 0);
+               if (r->restart_data) {
+                       _mem_save_restart_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
+                       NDR_PULL_SET_MEM_CTX(ndr, r->restart_data, 0);
+                       NDR_CHECK(ndr_pull_array_size(ndr, &r->restart_data));
+                       NDR_PULL_ALLOC_N(ndr, r->restart_data, ndr_get_array_size(ndr, &r->restart_data));
+                       NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->restart_data, ndr_get_array_size(ndr, &r->restart_data)));
+                       NDR_PULL_SET_MEM_CTX(ndr, _mem_save_restart_data_0, 0);
                }
-               if (r->data2) {
-                       _mem_save_data2_0 = NDR_PULL_GET_MEM_CTX(ndr);
-                       NDR_PULL_SET_MEM_CTX(ndr, r->data2, 0);
-                       NDR_CHECK(ndr_pull_array_size(ndr, &r->data2));
-                       NDR_PULL_ALLOC_N(ndr, r->data2, ndr_get_array_size(ndr, &r->data2));
-                       NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data2, ndr_get_array_size(ndr, &r->data2)));
-                       NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data2_0, 0);
+               if (r->log_data) {
+                       _mem_save_log_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
+                       NDR_PULL_SET_MEM_CTX(ndr, r->log_data, 0);
+                       NDR_CHECK(ndr_pull_array_size(ndr, &r->log_data));
+                       NDR_PULL_ALLOC_N(ndr, r->log_data, ndr_get_array_size(ndr, &r->log_data));
+                       NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->log_data, ndr_get_array_size(ndr, &r->log_data)));
+                       NDR_PULL_SET_MEM_CTX(ndr, _mem_save_log_data_0, 0);
                }
-               if (r->data1) {
-                       NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data1, r->length1));
+               if (r->restart_data) {
+                       NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->restart_data, r->restart_length));
                }
-               if (r->data2) {
-                       NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data2, r->length2));
+               if (r->log_data) {
+                       NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->log_data, r->log_length));
                }
        }
        return NDR_ERR_SUCCESS;
@@ -5572,25 +5427,25 @@ _PUBLIC_ void ndr_print_drsuapi_DsGetNT4ChangeLogInfo1(struct ndr_print *ndr, co
 {
        ndr_print_struct(ndr, name, "drsuapi_DsGetNT4ChangeLogInfo1");
        ndr->depth++;
-       ndr_print_uint32(ndr, "length1", r->length1);
-       ndr_print_uint32(ndr, "length2", r->length2);
-       ndr_print_hyper(ndr, "unknown1", r->unknown1);
-       ndr_print_NTTIME(ndr, "time2", r->time2);
-       ndr_print_hyper(ndr, "unknown3", r->unknown3);
-       ndr_print_NTTIME(ndr, "time4", r->time4);
-       ndr_print_hyper(ndr, "unknown5", r->unknown5);
-       ndr_print_NTTIME(ndr, "time6", r->time6);
+       ndr_print_uint32(ndr, "restart_length", r->restart_length);
+       ndr_print_uint32(ndr, "log_length", r->log_length);
+       ndr_print_hyper(ndr, "sam_serial_number", r->sam_serial_number);
+       ndr_print_NTTIME(ndr, "sam_creation_time", r->sam_creation_time);
+       ndr_print_hyper(ndr, "builtin_serial_number", r->builtin_serial_number);
+       ndr_print_NTTIME(ndr, "builtin_creation_time", r->builtin_creation_time);
+       ndr_print_hyper(ndr, "lsa_serial_number", r->lsa_serial_number);
+       ndr_print_NTTIME(ndr, "lsa_creation_time", r->lsa_creation_time);
        ndr_print_NTSTATUS(ndr, "status", r->status);
-       ndr_print_ptr(ndr, "data1", r->data1);
+       ndr_print_ptr(ndr, "restart_data", r->restart_data);
        ndr->depth++;
-       if (r->data1) {
-               ndr_print_array_uint8(ndr, "data1", r->data1, r->length1);
+       if (r->restart_data) {
+               ndr_print_array_uint8(ndr, "restart_data", r->restart_data, r->restart_length);
        }
        ndr->depth--;
-       ndr_print_ptr(ndr, "data2", r->data2);
+       ndr_print_ptr(ndr, "log_data", r->log_data);
        ndr->depth++;
-       if (r->data2) {
-               ndr_print_array_uint8(ndr, "data2", r->data2, r->length2);
+       if (r->log_data) {
+               ndr_print_array_uint8(ndr, "log_data", r->log_data, r->log_length);
        }
        ndr->depth--;
        ndr->depth--;
@@ -5938,7 +5793,7 @@ static enum ndr_err_code ndr_push_drsuapi_DsNameRequest(struct ndr_push *ndr, in
 {
        if (ndr_flags & NDR_SCALARS) {
                int level = ndr_push_get_switch_value(ndr, r);
-               NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, level));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
                NDR_CHECK(ndr_push_union_align(ndr, 5));
                switch (level) {
                        case 1: {
@@ -5966,10 +5821,10 @@ static enum ndr_err_code ndr_push_drsuapi_DsNameRequest(struct ndr_push *ndr, in
 static enum ndr_err_code ndr_pull_drsuapi_DsNameRequest(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsNameRequest *r)
 {
        int level;
-       int32_t _level;
+       uint32_t _level;
        level = ndr_pull_get_switch_value(ndr, r);
        if (ndr_flags & NDR_SCALARS) {
-               NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &_level));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
                if (_level != level) {
                        return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
                }
@@ -6201,7 +6056,7 @@ static enum ndr_err_code ndr_push_drsuapi_DsNameCtr(struct ndr_push *ndr, int nd
 {
        if (ndr_flags & NDR_SCALARS) {
                int level = ndr_push_get_switch_value(ndr, r);
-               NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, level));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
                NDR_CHECK(ndr_push_union_align(ndr, 5));
                switch (level) {
                        case 1: {
@@ -6231,11 +6086,11 @@ static enum ndr_err_code ndr_push_drsuapi_DsNameCtr(struct ndr_push *ndr, int nd
 static enum ndr_err_code ndr_pull_drsuapi_DsNameCtr(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsNameCtr *r)
 {
        int level;
-       int32_t _level;
+       uint32_t _level;
        TALLOC_CTX *_mem_save_ctr1_0;
        level = ndr_pull_get_switch_value(ndr, r);
        if (ndr_flags & NDR_SCALARS) {
-               NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &_level));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
                if (_level != level) {
                        return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
                }
@@ -6453,7 +6308,7 @@ static enum ndr_err_code ndr_push_drsuapi_DsWriteAccountSpnRequest(struct ndr_pu
 {
        if (ndr_flags & NDR_SCALARS) {
                int level = ndr_push_get_switch_value(ndr, r);
-               NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, level));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
                NDR_CHECK(ndr_push_union_align(ndr, 5));
                switch (level) {
                        case 1: {
@@ -6481,10 +6336,10 @@ static enum ndr_err_code ndr_push_drsuapi_DsWriteAccountSpnRequest(struct ndr_pu
 static enum ndr_err_code ndr_pull_drsuapi_DsWriteAccountSpnRequest(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsWriteAccountSpnRequest *r)
 {
        int level;
-       int32_t _level;
+       uint32_t _level;
        level = ndr_pull_get_switch_value(ndr, r);
        if (ndr_flags & NDR_SCALARS) {
-               NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &_level));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
                if (_level != level) {
                        return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
                }
@@ -6562,7 +6417,7 @@ static enum ndr_err_code ndr_push_drsuapi_DsWriteAccountSpnResult(struct ndr_pus
 {
        if (ndr_flags & NDR_SCALARS) {
                int level = ndr_push_get_switch_value(ndr, r);
-               NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, level));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
                NDR_CHECK(ndr_push_union_align(ndr, 4));
                switch (level) {
                        case 1: {
@@ -6589,10 +6444,10 @@ static enum ndr_err_code ndr_push_drsuapi_DsWriteAccountSpnResult(struct ndr_pus
 static enum ndr_err_code ndr_pull_drsuapi_DsWriteAccountSpnResult(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsWriteAccountSpnResult *r)
 {
        int level;
-       int32_t _level;
+       uint32_t _level;
        level = ndr_pull_get_switch_value(ndr, r);
        if (ndr_flags & NDR_SCALARS) {
-               NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &_level));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
                if (_level != level) {
                        return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
                }
@@ -6735,7 +6590,7 @@ static enum ndr_err_code ndr_push_drsuapi_DsRemoveDSServerRequest(struct ndr_pus
 {
        if (ndr_flags & NDR_SCALARS) {
                int level = ndr_push_get_switch_value(ndr, r);
-               NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, level));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
                NDR_CHECK(ndr_push_union_align(ndr, 5));
                switch (level) {
                        case 1: {
@@ -6763,10 +6618,10 @@ static enum ndr_err_code ndr_push_drsuapi_DsRemoveDSServerRequest(struct ndr_pus
 static enum ndr_err_code ndr_pull_drsuapi_DsRemoveDSServerRequest(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsRemoveDSServerRequest *r)
 {
        int level;
-       int32_t _level;
+       uint32_t _level;
        level = ndr_pull_get_switch_value(ndr, r);
        if (ndr_flags & NDR_SCALARS) {
-               NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &_level));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
                if (_level != level) {
                        return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
                }
@@ -6844,7 +6699,7 @@ static enum ndr_err_code ndr_push_drsuapi_DsRemoveDSServerResult(struct ndr_push
 {
        if (ndr_flags & NDR_SCALARS) {
                int level = ndr_push_get_switch_value(ndr, r);
-               NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, level));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
                NDR_CHECK(ndr_push_union_align(ndr, 4));
                switch (level) {
                        case 1: {
@@ -6871,10 +6726,10 @@ static enum ndr_err_code ndr_push_drsuapi_DsRemoveDSServerResult(struct ndr_push
 static enum ndr_err_code ndr_pull_drsuapi_DsRemoveDSServerResult(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsRemoveDSServerResult *r)
 {
        int level;
-       int32_t _level;
+       uint32_t _level;
        level = ndr_pull_get_switch_value(ndr, r);
        if (ndr_flags & NDR_SCALARS) {
-               NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &_level));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
                if (_level != level) {
                        return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
                }
@@ -8457,6 +8312,37 @@ _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsReplicaObjectListItem(struct ndr_p
        return NDR_ERR_SUCCESS;
 }
 
+static enum ndr_err_code ndr_push_drsuapi_DsAddEntry_DirErr(struct ndr_push *ndr, int ndr_flags, enum drsuapi_DsAddEntry_DirErr r)
+{
+       NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
+       return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_drsuapi_DsAddEntry_DirErr(struct ndr_pull *ndr, int ndr_flags, enum drsuapi_DsAddEntry_DirErr *r)
+{
+       uint32_t v;
+       NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
+       *r = v;
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_drsuapi_DsAddEntry_DirErr(struct ndr_print *ndr, const char *name, enum drsuapi_DsAddEntry_DirErr r)
+{
+       const char *val = NULL;
+
+       switch (r) {
+               case DRSUAPI_DIRERR_OK: val = "DRSUAPI_DIRERR_OK"; break;
+               case DRSUAPI_DIRERR_ATTRIBUTE: val = "DRSUAPI_DIRERR_ATTRIBUTE"; break;
+               case DRSUAPI_DIRERR_NAME: val = "DRSUAPI_DIRERR_NAME"; break;
+               case DRSUAPI_DIRERR_REFERRAL: val = "DRSUAPI_DIRERR_REFERRAL"; break;
+               case DRSUAPI_DIRERR_SECURITY: val = "DRSUAPI_DIRERR_SECURITY"; break;
+               case DRSUAPI_DIRERR_SERVICE: val = "DRSUAPI_DIRERR_SERVICE"; break;
+               case DRSUAPI_DIRERR_UPDATE: val = "DRSUAPI_DIRERR_UPDATE"; break;
+               case DRSUAPI_DIRERR_SYSTEM: val = "DRSUAPI_DIRERR_SYSTEM"; break;
+       }
+       ndr_print_enum(ndr, name, "ENUM", val, r);
+}
+
 static enum ndr_err_code ndr_push_drsuapi_DsAddEntryRequest2(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsAddEntryRequest2 *r)
 {
        if (ndr_flags & NDR_SCALARS) {
@@ -8491,17 +8377,255 @@ _PUBLIC_ void ndr_print_drsuapi_DsAddEntryRequest2(struct ndr_print *ndr, const
        ndr->depth--;
 }
 
+static enum ndr_err_code ndr_push_drsuapi_SecBufferType(struct ndr_push *ndr, int ndr_flags, enum drsuapi_SecBufferType r)
+{
+       NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
+       return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_drsuapi_SecBufferType(struct ndr_pull *ndr, int ndr_flags, enum drsuapi_SecBufferType *r)
+{
+       uint32_t v;
+       NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
+       *r = v;
+       return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_push_drsuapi_SecBuffer(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_SecBuffer *r)
+{
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_push_align(ndr, 5));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->buf_size));
+               NDR_CHECK(ndr_push_drsuapi_SecBufferType(ndr, NDR_SCALARS, r->buf_type));
+               NDR_CHECK(ndr_push_unique_ptr(ndr, r->buffer));
+               NDR_CHECK(ndr_push_trailer_align(ndr, 5));
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+               if (r->buffer) {
+                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->buf_size));
+                       NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->buffer, r->buf_size));
+               }
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_drsuapi_SecBuffer(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_SecBuffer *r)
+{
+       uint32_t _ptr_buffer;
+       TALLOC_CTX *_mem_save_buffer_0;
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_pull_align(ndr, 5));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->buf_size));
+               if (r->buf_size > 10000) {
+                       return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
+               }
+               NDR_CHECK(ndr_pull_drsuapi_SecBufferType(ndr, NDR_SCALARS, &r->buf_type));
+               NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
+               if (_ptr_buffer) {
+                       NDR_PULL_ALLOC(ndr, r->buffer);
+               } else {
+                       r->buffer = NULL;
+               }
+               NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+               if (r->buffer) {
+                       _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
+                       NDR_PULL_SET_MEM_CTX(ndr, r->buffer, 0);
+                       NDR_CHECK(ndr_pull_array_size(ndr, &r->buffer));
+                       NDR_PULL_ALLOC_N(ndr, r->buffer, ndr_get_array_size(ndr, &r->buffer));
+                       NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->buffer, ndr_get_array_size(ndr, &r->buffer)));
+                       NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
+               }
+               if (r->buffer) {
+                       NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->buffer, r->buf_size));
+               }
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_drsuapi_SecBuffer(struct ndr_print *ndr, const char *name, const struct drsuapi_SecBuffer *r)
+{
+       ndr_print_struct(ndr, name, "drsuapi_SecBuffer");
+       ndr->depth++;
+       ndr_print_uint32(ndr, "buf_size", r->buf_size);
+       ndr_print_drsuapi_SecBufferType(ndr, "buf_type", r->buf_type);
+       ndr_print_ptr(ndr, "buffer", r->buffer);
+       ndr->depth++;
+       if (r->buffer) {
+               ndr_print_array_uint8(ndr, "buffer", r->buffer, r->buf_size);
+       }
+       ndr->depth--;
+       ndr->depth--;
+}
+
+static enum ndr_err_code ndr_push_drsuapi_SecBufferDesc(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_SecBufferDesc *r)
+{
+       uint32_t cntr_buffers_1;
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_push_align(ndr, 5));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->buff_count));
+               NDR_CHECK(ndr_push_unique_ptr(ndr, r->buffers));
+               NDR_CHECK(ndr_push_trailer_align(ndr, 5));
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+               if (r->buffers) {
+                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->buff_count));
+                       for (cntr_buffers_1 = 0; cntr_buffers_1 < r->buff_count; cntr_buffers_1++) {
+                               NDR_CHECK(ndr_push_drsuapi_SecBuffer(ndr, NDR_SCALARS, &r->buffers[cntr_buffers_1]));
+                       }
+                       for (cntr_buffers_1 = 0; cntr_buffers_1 < r->buff_count; cntr_buffers_1++) {
+                               NDR_CHECK(ndr_push_drsuapi_SecBuffer(ndr, NDR_BUFFERS, &r->buffers[cntr_buffers_1]));
+                       }
+               }
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_drsuapi_SecBufferDesc(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_SecBufferDesc *r)
+{
+       uint32_t _ptr_buffers;
+       uint32_t cntr_buffers_1;
+       TALLOC_CTX *_mem_save_buffers_0;
+       TALLOC_CTX *_mem_save_buffers_1;
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_pull_align(ndr, 5));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->buff_count));
+               if (r->buff_count > 10000) {
+                       return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
+               }
+               NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffers));
+               if (_ptr_buffers) {
+                       NDR_PULL_ALLOC(ndr, r->buffers);
+               } else {
+                       r->buffers = NULL;
+               }
+               NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+               if (r->buffers) {
+                       _mem_save_buffers_0 = NDR_PULL_GET_MEM_CTX(ndr);
+                       NDR_PULL_SET_MEM_CTX(ndr, r->buffers, 0);
+                       NDR_CHECK(ndr_pull_array_size(ndr, &r->buffers));
+                       NDR_PULL_ALLOC_N(ndr, r->buffers, ndr_get_array_size(ndr, &r->buffers));
+                       _mem_save_buffers_1 = NDR_PULL_GET_MEM_CTX(ndr);
+                       NDR_PULL_SET_MEM_CTX(ndr, r->buffers, 0);
+                       for (cntr_buffers_1 = 0; cntr_buffers_1 < r->buff_count; cntr_buffers_1++) {
+                               NDR_CHECK(ndr_pull_drsuapi_SecBuffer(ndr, NDR_SCALARS, &r->buffers[cntr_buffers_1]));
+                       }
+                       for (cntr_buffers_1 = 0; cntr_buffers_1 < r->buff_count; cntr_buffers_1++) {
+                               NDR_CHECK(ndr_pull_drsuapi_SecBuffer(ndr, NDR_BUFFERS, &r->buffers[cntr_buffers_1]));
+                       }
+                       NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffers_1, 0);
+                       NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffers_0, 0);
+               }
+               if (r->buffers) {
+                       NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->buffers, r->buff_count));
+               }
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_drsuapi_SecBufferDesc(struct ndr_print *ndr, const char *name, const struct drsuapi_SecBufferDesc *r)
+{
+       uint32_t cntr_buffers_1;
+       ndr_print_struct(ndr, name, "drsuapi_SecBufferDesc");
+       ndr->depth++;
+       ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->version);
+       ndr_print_uint32(ndr, "buff_count", r->buff_count);
+       ndr_print_ptr(ndr, "buffers", r->buffers);
+       ndr->depth++;
+       if (r->buffers) {
+               ndr->print(ndr, "%s: ARRAY(%d)", "buffers", (int)r->buff_count);
+               ndr->depth++;
+               for (cntr_buffers_1=0;cntr_buffers_1<r->buff_count;cntr_buffers_1++) {
+                       char *idx_1=NULL;
+                       if (asprintf(&idx_1, "[%d]", cntr_buffers_1) != -1) {
+                               ndr_print_drsuapi_SecBuffer(ndr, "buffers", &r->buffers[cntr_buffers_1]);
+                               free(idx_1);
+                       }
+               }
+               ndr->depth--;
+       }
+       ndr->depth--;
+       ndr->depth--;
+}
+
+static enum ndr_err_code ndr_push_drsuapi_DsAddEntryRequest3(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsAddEntryRequest3 *r)
+{
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_push_align(ndr, 5));
+               NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectListItem(ndr, NDR_SCALARS, &r->first_object));
+               NDR_CHECK(ndr_push_unique_ptr(ndr, r->client_creds));
+               NDR_CHECK(ndr_push_trailer_align(ndr, 5));
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+               NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectListItem(ndr, NDR_BUFFERS, &r->first_object));
+               if (r->client_creds) {
+                       NDR_CHECK(ndr_push_drsuapi_SecBufferDesc(ndr, NDR_SCALARS|NDR_BUFFERS, r->client_creds));
+               }
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_drsuapi_DsAddEntryRequest3(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsAddEntryRequest3 *r)
+{
+       uint32_t _ptr_client_creds;
+       TALLOC_CTX *_mem_save_client_creds_0;
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_pull_align(ndr, 5));
+               NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectListItem(ndr, NDR_SCALARS, &r->first_object));
+               NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client_creds));
+               if (_ptr_client_creds) {
+                       NDR_PULL_ALLOC(ndr, r->client_creds);
+               } else {
+                       r->client_creds = NULL;
+               }
+               NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+               NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectListItem(ndr, NDR_BUFFERS, &r->first_object));
+               if (r->client_creds) {
+                       _mem_save_client_creds_0 = NDR_PULL_GET_MEM_CTX(ndr);
+                       NDR_PULL_SET_MEM_CTX(ndr, r->client_creds, 0);
+                       NDR_CHECK(ndr_pull_drsuapi_SecBufferDesc(ndr, NDR_SCALARS|NDR_BUFFERS, r->client_creds));
+                       NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_creds_0, 0);
+               }
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_drsuapi_DsAddEntryRequest3(struct ndr_print *ndr, const char *name, const struct drsuapi_DsAddEntryRequest3 *r)
+{
+       ndr_print_struct(ndr, name, "drsuapi_DsAddEntryRequest3");
+       ndr->depth++;
+       ndr_print_drsuapi_DsReplicaObjectListItem(ndr, "first_object", &r->first_object);
+       ndr_print_ptr(ndr, "client_creds", r->client_creds);
+       ndr->depth++;
+       if (r->client_creds) {
+               ndr_print_drsuapi_SecBufferDesc(ndr, "client_creds", r->client_creds);
+       }
+       ndr->depth--;
+       ndr->depth--;
+}
+
 static enum ndr_err_code ndr_push_drsuapi_DsAddEntryRequest(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsAddEntryRequest *r)
 {
        if (ndr_flags & NDR_SCALARS) {
                int level = ndr_push_get_switch_value(ndr, r);
-               NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, level));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
                NDR_CHECK(ndr_push_union_align(ndr, 5));
                switch (level) {
                        case 2: {
                                NDR_CHECK(ndr_push_drsuapi_DsAddEntryRequest2(ndr, NDR_SCALARS, &r->req2));
                        break; }
 
+                       case 3: {
+                               NDR_CHECK(ndr_push_drsuapi_DsAddEntryRequest3(ndr, NDR_SCALARS, &r->req3));
+                       break; }
+
                        default:
                                return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
                }
@@ -8513,6 +8637,10 @@ static enum ndr_err_code ndr_push_drsuapi_DsAddEntryRequest(struct ndr_push *ndr
                                NDR_CHECK(ndr_push_drsuapi_DsAddEntryRequest2(ndr, NDR_BUFFERS, &r->req2));
                        break;
 
+                       case 3:
+                               NDR_CHECK(ndr_push_drsuapi_DsAddEntryRequest3(ndr, NDR_BUFFERS, &r->req3));
+                       break;
+
                        default:
                                return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
                }
@@ -8523,10 +8651,10 @@ static enum ndr_err_code ndr_push_drsuapi_DsAddEntryRequest(struct ndr_push *ndr
 static enum ndr_err_code ndr_pull_drsuapi_DsAddEntryRequest(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsAddEntryRequest *r)
 {
        int level;
-       int32_t _level;
+       uint32_t _level;
        level = ndr_pull_get_switch_value(ndr, r);
        if (ndr_flags & NDR_SCALARS) {
-               NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &_level));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
                if (_level != level) {
                        return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
                }
@@ -8536,6 +8664,10 @@ static enum ndr_err_code ndr_pull_drsuapi_DsAddEntryRequest(struct ndr_pull *ndr
                                NDR_CHECK(ndr_pull_drsuapi_DsAddEntryRequest2(ndr, NDR_SCALARS, &r->req2));
                        break; }
 
+                       case 3: {
+                               NDR_CHECK(ndr_pull_drsuapi_DsAddEntryRequest3(ndr, NDR_SCALARS, &r->req3));
+                       break; }
+
                        default:
                                return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
                }
@@ -8546,6 +8678,10 @@ static enum ndr_err_code ndr_pull_drsuapi_DsAddEntryRequest(struct ndr_pull *ndr
                                NDR_CHECK(ndr_pull_drsuapi_DsAddEntryRequest2(ndr, NDR_BUFFERS, &r->req2));
                        break;
 
+                       case 3:
+                               NDR_CHECK(ndr_pull_drsuapi_DsAddEntryRequest3(ndr, NDR_BUFFERS, &r->req3));
+                       break;
+
                        default:
                                return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
                }
@@ -8563,6 +8699,10 @@ _PUBLIC_ void ndr_print_drsuapi_DsAddEntryRequest(struct ndr_print *ndr, const c
                        ndr_print_drsuapi_DsAddEntryRequest2(ndr, "req2", &r->req2);
                break;
 
+               case 3:
+                       ndr_print_drsuapi_DsAddEntryRequest3(ndr, "req3", &r->req3);
+               break;
+
                default:
                        ndr_print_bad_level(ndr, name, level);
        }
@@ -8572,10 +8712,10 @@ static enum ndr_err_code ndr_push_drsuapi_DsAddEntryErrorInfoX(struct ndr_push *
 {
        if (ndr_flags & NDR_SCALARS) {
                NDR_CHECK(ndr_push_align(ndr, 4));
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1));
-               NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->status));
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
-               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->unknown3));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dsid));
+               NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->extended_err));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->extended_data));
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->problem));
                NDR_CHECK(ndr_push_trailer_align(ndr, 4));
        }
        if (ndr_flags & NDR_BUFFERS) {
@@ -8587,10 +8727,10 @@ static enum ndr_err_code ndr_pull_drsuapi_DsAddEntryErrorInfoX(struct ndr_pull *
 {
        if (ndr_flags & NDR_SCALARS) {
                NDR_CHECK(ndr_pull_align(ndr, 4));
-               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
-               NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->status));
-               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
-               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->unknown3));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dsid));
+               NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->extended_err));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->extended_data));
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->problem));
                NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
        }
        if (ndr_flags & NDR_BUFFERS) {
@@ -8602,139 +8742,83 @@ _PUBLIC_ void ndr_print_drsuapi_DsAddEntryErrorInfoX(struct ndr_print *ndr, cons
 {
        ndr_print_struct(ndr, name, "drsuapi_DsAddEntryErrorInfoX");
        ndr->depth++;
-       ndr_print_uint32(ndr, "unknown1", r->unknown1);
-       ndr_print_WERROR(ndr, "status", r->status);
-       ndr_print_uint32(ndr, "unknown2", r->unknown2);
-       ndr_print_uint16(ndr, "unknown3", r->unknown3);
-       ndr->depth--;
-}
-
-static enum ndr_err_code ndr_push_drsuapi_DsAddEntryExtraErrorBuffer(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsAddEntryExtraErrorBuffer *r)
-{
-       if (ndr_flags & NDR_SCALARS) {
-               NDR_CHECK(ndr_push_align(ndr, 5));
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
-               NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
-               NDR_CHECK(ndr_push_trailer_align(ndr, 5));
-       }
-       if (ndr_flags & NDR_BUFFERS) {
-               if (r->data) {
-                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->size));
-                       NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, r->size));
-               }
-       }
-       return NDR_ERR_SUCCESS;
-}
-
-static enum ndr_err_code ndr_pull_drsuapi_DsAddEntryExtraErrorBuffer(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsAddEntryExtraErrorBuffer *r)
-{
-       uint32_t _ptr_data;
-       TALLOC_CTX *_mem_save_data_0;
-       if (ndr_flags & NDR_SCALARS) {
-               NDR_CHECK(ndr_pull_align(ndr, 5));
-               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
-               if (r->size > 10485760) {
-                       return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
-               }
-               NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
-               if (_ptr_data) {
-                       NDR_PULL_ALLOC(ndr, r->data);
-               } else {
-                       r->data = NULL;
-               }
-               NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
-       }
-       if (ndr_flags & NDR_BUFFERS) {
-               if (r->data) {
-                       _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
-                       NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
-                       NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
-                       NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
-                       NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, ndr_get_array_size(ndr, &r->data)));
-                       NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
-               }
-               if (r->data) {
-                       NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->size));
-               }
-       }
-       return NDR_ERR_SUCCESS;
-}
-
-_PUBLIC_ void ndr_print_drsuapi_DsAddEntryExtraErrorBuffer(struct ndr_print *ndr, const char *name, const struct drsuapi_DsAddEntryExtraErrorBuffer *r)
-{
-       ndr_print_struct(ndr, name, "drsuapi_DsAddEntryExtraErrorBuffer");
-       ndr->depth++;
-       ndr_print_uint32(ndr, "size", r->size);
-       ndr_print_ptr(ndr, "data", r->data);
-       ndr->depth++;
-       if (r->data) {
-               ndr_print_array_uint8(ndr, "data", r->data, r->size);
-       }
-       ndr->depth--;
+       ndr_print_uint32(ndr, "dsid", r->dsid);
+       ndr_print_WERROR(ndr, "extended_err", r->extended_err);
+       ndr_print_uint32(ndr, "extended_data", r->extended_data);
+       ndr_print_uint16(ndr, "problem", r->problem);
        ndr->depth--;
 }
 
-static enum ndr_err_code ndr_push_drsuapi_DsAddEntryExtraError1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsAddEntryExtraError1 *r)
+static enum ndr_err_code ndr_push_drsuapi_DsAddEntry_AttrErr_V1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsAddEntry_AttrErr_V1 *r)
 {
        if (ndr_flags & NDR_SCALARS) {
                NDR_CHECK(ndr_push_align(ndr, 5));
-               NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorInfoX(ndr, NDR_SCALARS, &r->error));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dsid));
+               NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->extended_err));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->extended_data));
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->problem));
                NDR_CHECK(ndr_push_drsuapi_DsAttributeId(ndr, NDR_SCALARS, r->attid));
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
-               NDR_CHECK(ndr_push_drsuapi_DsAddEntryExtraErrorBuffer(ndr, NDR_SCALARS, &r->buffer));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->is_val_returned));
+               NDR_CHECK(ndr_push_drsuapi_DsAttributeValue(ndr, NDR_SCALARS, &r->attr_val));
                NDR_CHECK(ndr_push_trailer_align(ndr, 5));
        }
        if (ndr_flags & NDR_BUFFERS) {
-               NDR_CHECK(ndr_push_drsuapi_DsAddEntryExtraErrorBuffer(ndr, NDR_BUFFERS, &r->buffer));
+               NDR_CHECK(ndr_push_drsuapi_DsAttributeValue(ndr, NDR_BUFFERS, &r->attr_val));
        }
        return NDR_ERR_SUCCESS;
 }
 
-static enum ndr_err_code ndr_pull_drsuapi_DsAddEntryExtraError1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsAddEntryExtraError1 *r)
+static enum ndr_err_code ndr_pull_drsuapi_DsAddEntry_AttrErr_V1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsAddEntry_AttrErr_V1 *r)
 {
        if (ndr_flags & NDR_SCALARS) {
                NDR_CHECK(ndr_pull_align(ndr, 5));
-               NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorInfoX(ndr, NDR_SCALARS, &r->error));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dsid));
+               NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->extended_err));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->extended_data));
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->problem));
                NDR_CHECK(ndr_pull_drsuapi_DsAttributeId(ndr, NDR_SCALARS, &r->attid));
-               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
-               NDR_CHECK(ndr_pull_drsuapi_DsAddEntryExtraErrorBuffer(ndr, NDR_SCALARS, &r->buffer));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->is_val_returned));
+               NDR_CHECK(ndr_pull_drsuapi_DsAttributeValue(ndr, NDR_SCALARS, &r->attr_val));
                NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
        }
        if (ndr_flags & NDR_BUFFERS) {
-               NDR_CHECK(ndr_pull_drsuapi_DsAddEntryExtraErrorBuffer(ndr, NDR_BUFFERS, &r->buffer));
+               NDR_CHECK(ndr_pull_drsuapi_DsAttributeValue(ndr, NDR_BUFFERS, &r->attr_val));
        }
        return NDR_ERR_SUCCESS;
 }
 
-_PUBLIC_ void ndr_print_drsuapi_DsAddEntryExtraError1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsAddEntryExtraError1 *r)
+_PUBLIC_ void ndr_print_drsuapi_DsAddEntry_AttrErr_V1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsAddEntry_AttrErr_V1 *r)
 {
-       ndr_print_struct(ndr, name, "drsuapi_DsAddEntryExtraError1");
+       ndr_print_struct(ndr, name, "drsuapi_DsAddEntry_AttrErr_V1");
        ndr->depth++;
-       ndr_print_drsuapi_DsAddEntryErrorInfoX(ndr, "error", &r->error);
+       ndr_print_uint32(ndr, "dsid", r->dsid);
+       ndr_print_WERROR(ndr, "extended_err", r->extended_err);
+       ndr_print_uint32(ndr, "extended_data", r->extended_data);
+       ndr_print_uint16(ndr, "problem", r->problem);
        ndr_print_drsuapi_DsAttributeId(ndr, "attid", r->attid);
-       ndr_print_uint32(ndr, "unknown2", r->unknown2);
-       ndr_print_drsuapi_DsAddEntryExtraErrorBuffer(ndr, "buffer", &r->buffer);
+       ndr_print_uint32(ndr, "is_val_returned", r->is_val_returned);
+       ndr_print_drsuapi_DsAttributeValue(ndr, "attr_val", &r->attr_val);
        ndr->depth--;
 }
 
-static enum ndr_err_code ndr_push_drsuapi_DsAddEntryErrorListItem1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsAddEntryErrorListItem1 *r)
+static enum ndr_err_code ndr_push_drsuapi_DsAddEntry_AttrErrListItem_V1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsAddEntry_AttrErrListItem_V1 *r)
 {
        if (ndr_flags & NDR_SCALARS) {
                NDR_CHECK(ndr_push_align(ndr, 5));
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->next));
-               NDR_CHECK(ndr_push_drsuapi_DsAddEntryExtraError1(ndr, NDR_SCALARS, &r->error));
+               NDR_CHECK(ndr_push_drsuapi_DsAddEntry_AttrErr_V1(ndr, NDR_SCALARS, &r->err_data));
                NDR_CHECK(ndr_push_trailer_align(ndr, 5));
        }
        if (ndr_flags & NDR_BUFFERS) {
                if (r->next) {
-                       NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorListItem1(ndr, NDR_SCALARS|NDR_BUFFERS, r->next));
+                       NDR_CHECK(ndr_push_drsuapi_DsAddEntry_AttrErrListItem_V1(ndr, NDR_SCALARS|NDR_BUFFERS, r->next));
                }
-               NDR_CHECK(ndr_push_drsuapi_DsAddEntryExtraError1(ndr, NDR_BUFFERS, &r->error));
+               NDR_CHECK(ndr_push_drsuapi_DsAddEntry_AttrErr_V1(ndr, NDR_BUFFERS, &r->err_data));
        }
        return NDR_ERR_SUCCESS;
 }
 
-static enum ndr_err_code ndr_pull_drsuapi_DsAddEntryErrorListItem1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsAddEntryErrorListItem1 *r)
+static enum ndr_err_code ndr_pull_drsuapi_DsAddEntry_AttrErrListItem_V1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsAddEntry_AttrErrListItem_V1 *r)
 {
        uint32_t _ptr_next;
        TALLOC_CTX *_mem_save_next_0;
@@ -8746,54 +8830,40 @@ static enum ndr_err_code ndr_pull_drsuapi_DsAddEntryErrorListItem1(struct ndr_pu
                } else {
                        r->next = NULL;
                }
-               NDR_CHECK(ndr_pull_drsuapi_DsAddEntryExtraError1(ndr, NDR_SCALARS, &r->error));
+               NDR_CHECK(ndr_pull_drsuapi_DsAddEntry_AttrErr_V1(ndr, NDR_SCALARS, &r->err_data));
                NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
        }
        if (ndr_flags & NDR_BUFFERS) {
                if (r->next) {
                        _mem_save_next_0 = NDR_PULL_GET_MEM_CTX(ndr);
                        NDR_PULL_SET_MEM_CTX(ndr, r->next, 0);
-                       NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorListItem1(ndr, NDR_SCALARS|NDR_BUFFERS, r->next));
+                       NDR_CHECK(ndr_pull_drsuapi_DsAddEntry_AttrErrListItem_V1(ndr, NDR_SCALARS|NDR_BUFFERS, r->next));
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_next_0, 0);
                }
-               NDR_CHECK(ndr_pull_drsuapi_DsAddEntryExtraError1(ndr, NDR_BUFFERS, &r->error));
+               NDR_CHECK(ndr_pull_drsuapi_DsAddEntry_AttrErr_V1(ndr, NDR_BUFFERS, &r->err_data));
        }
        return NDR_ERR_SUCCESS;
 }
 
-_PUBLIC_ void ndr_print_drsuapi_DsAddEntryErrorListItem1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsAddEntryErrorListItem1 *r)
-{
-       ndr_print_struct(ndr, name, "drsuapi_DsAddEntryErrorListItem1");
-       ndr->depth++;
-       ndr_print_ptr(ndr, "next", r->next);
-       ndr->depth++;
-       if (r->next) {
-               ndr_print_drsuapi_DsAddEntryErrorListItem1(ndr, "next", r->next);
-       }
-       ndr->depth--;
-       ndr_print_drsuapi_DsAddEntryExtraError1(ndr, "error", &r->error);
-       ndr->depth--;
-}
-
-static enum ndr_err_code ndr_push_drsuapi_DsAddEntryErrorInfo1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsAddEntryErrorInfo1 *r)
+static enum ndr_err_code ndr_push_drsuapi_DsAddEntryErrorInfo_Attr_V1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsAddEntryErrorInfo_Attr_V1 *r)
 {
        if (ndr_flags & NDR_SCALARS) {
                NDR_CHECK(ndr_push_align(ndr, 5));
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->id));
-               NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->status));
-               NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorListItem1(ndr, NDR_SCALARS, &r->first));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
+               NDR_CHECK(ndr_push_drsuapi_DsAddEntry_AttrErrListItem_V1(ndr, NDR_SCALARS, &r->first));
                NDR_CHECK(ndr_push_trailer_align(ndr, 5));
        }
        if (ndr_flags & NDR_BUFFERS) {
                if (r->id) {
                        NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->id));
                }
-               NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorListItem1(ndr, NDR_BUFFERS, &r->first));
+               NDR_CHECK(ndr_push_drsuapi_DsAddEntry_AttrErrListItem_V1(ndr, NDR_BUFFERS, &r->first));
        }
        return NDR_ERR_SUCCESS;
 }
 
-static enum ndr_err_code ndr_pull_drsuapi_DsAddEntryErrorInfo1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsAddEntryErrorInfo1 *r)
+static enum ndr_err_code ndr_pull_drsuapi_DsAddEntryErrorInfo_Attr_V1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsAddEntryErrorInfo_Attr_V1 *r)
 {
        uint32_t _ptr_id;
        TALLOC_CTX *_mem_save_id_0;
@@ -8805,8 +8875,8 @@ static enum ndr_err_code ndr_pull_drsuapi_DsAddEntryErrorInfo1(struct ndr_pull *
                } else {
                        r->id = NULL;
                }
-               NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->status));
-               NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorListItem1(ndr, NDR_SCALARS, &r->first));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
+               NDR_CHECK(ndr_pull_drsuapi_DsAddEntry_AttrErrListItem_V1(ndr, NDR_SCALARS, &r->first));
                NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
        }
        if (ndr_flags & NDR_BUFFERS) {
@@ -8816,14 +8886,14 @@ static enum ndr_err_code ndr_pull_drsuapi_DsAddEntryErrorInfo1(struct ndr_pull *
                        NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->id));
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_id_0, 0);
                }
-               NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorListItem1(ndr, NDR_BUFFERS, &r->first));
+               NDR_CHECK(ndr_pull_drsuapi_DsAddEntry_AttrErrListItem_V1(ndr, NDR_BUFFERS, &r->first));
        }
        return NDR_ERR_SUCCESS;
 }
 
-_PUBLIC_ void ndr_print_drsuapi_DsAddEntryErrorInfo1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsAddEntryErrorInfo1 *r)
+_PUBLIC_ void ndr_print_drsuapi_DsAddEntryErrorInfo_Attr_V1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsAddEntryErrorInfo_Attr_V1 *r)
 {
-       ndr_print_struct(ndr, name, "drsuapi_DsAddEntryErrorInfo1");
+       ndr_print_struct(ndr, name, "drsuapi_DsAddEntryErrorInfo_Attr_V1");
        ndr->depth++;
        ndr_print_ptr(ndr, "id", r->id);
        ndr->depth++;
@@ -8831,36 +8901,442 @@ _PUBLIC_ void ndr_print_drsuapi_DsAddEntryErrorInfo1(struct ndr_print *ndr, cons
                ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "id", r->id);
        }
        ndr->depth--;
-       ndr_print_WERROR(ndr, "status", r->status);
-       ndr_print_drsuapi_DsAddEntryErrorListItem1(ndr, "first", &r->first);
+       ndr_print_uint32(ndr, "count", r->count);
+       ndr_print_drsuapi_DsAddEntry_AttrErrListItem_V1(ndr, "first", &r->first);
        ndr->depth--;
 }
 
-static enum ndr_err_code ndr_push_drsuapi_DsAddEntryErrorInfo(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsAddEntryErrorInfo *r)
+static enum ndr_err_code ndr_push_drsuapi_DsAddEntryErrorInfo_Name_V1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsAddEntryErrorInfo_Name_V1 *r)
 {
        if (ndr_flags & NDR_SCALARS) {
-               int level = ndr_push_get_switch_value(ndr, r);
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
-               NDR_CHECK(ndr_push_union_align(ndr, 5));
-               switch (level) {
-                       case 1: {
-                               NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorInfo1(ndr, NDR_SCALARS, &r->error1));
-                       break; }
-
-                       case 4: {
-                               NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorInfoX(ndr, NDR_SCALARS, &r->errorX));
-                       break; }
-
-                       case 5: {
-                               NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorInfoX(ndr, NDR_SCALARS, &r->errorX));
-                       break; }
+               NDR_CHECK(ndr_push_align(ndr, 5));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dsid));
+               NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->extended_err));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->extended_data));
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->problem));
+               NDR_CHECK(ndr_push_unique_ptr(ndr, r->id_matched));
+               NDR_CHECK(ndr_push_trailer_align(ndr, 5));
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+               if (r->id_matched) {
+                       NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->id_matched));
+               }
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_drsuapi_DsAddEntryErrorInfo_Name_V1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsAddEntryErrorInfo_Name_V1 *r)
+{
+       uint32_t _ptr_id_matched;
+       TALLOC_CTX *_mem_save_id_matched_0;
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_pull_align(ndr, 5));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dsid));
+               NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->extended_err));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->extended_data));
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->problem));
+               NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_id_matched));
+               if (_ptr_id_matched) {
+                       NDR_PULL_ALLOC(ndr, r->id_matched);
+               } else {
+                       r->id_matched = NULL;
+               }
+               NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+               if (r->id_matched) {
+                       _mem_save_id_matched_0 = NDR_PULL_GET_MEM_CTX(ndr);
+                       NDR_PULL_SET_MEM_CTX(ndr, r->id_matched, 0);
+                       NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->id_matched));
+                       NDR_PULL_SET_MEM_CTX(ndr, _mem_save_id_matched_0, 0);
+               }
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_drsuapi_DsAddEntryErrorInfo_Name_V1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsAddEntryErrorInfo_Name_V1 *r)
+{
+       ndr_print_struct(ndr, name, "drsuapi_DsAddEntryErrorInfo_Name_V1");
+       ndr->depth++;
+       ndr_print_uint32(ndr, "dsid", r->dsid);
+       ndr_print_WERROR(ndr, "extended_err", r->extended_err);
+       ndr_print_uint32(ndr, "extended_data", r->extended_data);
+       ndr_print_uint16(ndr, "problem", r->problem);
+       ndr_print_ptr(ndr, "id_matched", r->id_matched);
+       ndr->depth++;
+       if (r->id_matched) {
+               ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "id_matched", r->id_matched);
+       }
+       ndr->depth--;
+       ndr->depth--;
+}
+
+static enum ndr_err_code ndr_push_drsuapi_NameResOp_V1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_NameResOp_V1 *r)
+{
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_push_align(ndr, 2));
+               NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, 83));
+               NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, 0));
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, 0));
+               NDR_CHECK(ndr_push_trailer_align(ndr, 2));
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_drsuapi_NameResOp_V1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_NameResOp_V1 *r)
+{
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_pull_align(ndr, 2));
+               NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->name_res));
+               NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->unused_pad));
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->next_rdn));
+               NDR_CHECK(ndr_pull_trailer_align(ndr, 2));
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_drsuapi_NameResOp_V1(struct ndr_print *ndr, const char *name, const struct drsuapi_NameResOp_V1 *r)
+{
+       ndr_print_struct(ndr, name, "drsuapi_NameResOp_V1");
+       ndr->depth++;
+       ndr_print_uint8(ndr, "name_res", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?83:r->name_res);
+       ndr_print_uint8(ndr, "unused_pad", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->unused_pad);
+       ndr_print_uint16(ndr, "next_rdn", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->next_rdn);
+       ndr->depth--;
+}
+
+static enum ndr_err_code ndr_push_drsuapi_DsAddEntry_RefType(struct ndr_push *ndr, int ndr_flags, enum drsuapi_DsAddEntry_RefType r)
+{
+       NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
+       return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_drsuapi_DsAddEntry_RefType(struct ndr_pull *ndr, int ndr_flags, enum drsuapi_DsAddEntry_RefType *r)
+{
+       uint16_t v;
+       NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
+       *r = v;
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_drsuapi_DsAddEntry_RefType(struct ndr_print *ndr, const char *name, enum drsuapi_DsAddEntry_RefType r)
+{
+       const char *val = NULL;
+
+       switch (r) {
+               case DRSUAPI_CH_REFTYPE_SUPERIOR: val = "DRSUAPI_CH_REFTYPE_SUPERIOR"; break;
+               case DRSUAPI_CH_REFTYPE_SUBORDINATE: val = "DRSUAPI_CH_REFTYPE_SUBORDINATE"; break;
+               case DRSUAPI_CH_REFTYPE_NSSR: val = "DRSUAPI_CH_REFTYPE_NSSR"; break;
+               case DRSUAPI_CH_REFTYPE_CROSS: val = "DRSUAPI_CH_REFTYPE_CROSS"; break;
+       }
+       ndr_print_enum(ndr, name, "ENUM", val, r);
+}
+
+static enum ndr_err_code ndr_push_drsuapi_DsAddEntry_ChoiceType(struct ndr_push *ndr, int ndr_flags, enum drsuapi_DsAddEntry_ChoiceType r)
+{
+       NDR_CHECK(ndr_push_enum_uint8(ndr, NDR_SCALARS, r));
+       return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_drsuapi_DsAddEntry_ChoiceType(struct ndr_pull *ndr, int ndr_flags, enum drsuapi_DsAddEntry_ChoiceType *r)
+{
+       uint8_t v;
+       NDR_CHECK(ndr_pull_enum_uint8(ndr, NDR_SCALARS, &v));
+       *r = v;
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_drsuapi_DsAddEntry_ChoiceType(struct ndr_print *ndr, const char *name, enum drsuapi_DsAddEntry_ChoiceType r)
+{
+       const char *val = NULL;
+
+       switch (r) {
+               case DRSUAPI_SE_CHOICE_BASE_ONLY: val = "DRSUAPI_SE_CHOICE_BASE_ONLY"; break;
+               case DRSUAPI_SE_CHOICE_IMMED_CHLDRN: val = "DRSUAPI_SE_CHOICE_IMMED_CHLDRN"; break;
+               case DRSUAPI_SE_CHOICE_WHOLE_SUBTREE: val = "DRSUAPI_SE_CHOICE_WHOLE_SUBTREE"; break;
+       }
+       ndr_print_enum(ndr, name, "ENUM", val, r);
+}
+
+static enum ndr_err_code ndr_push_drsuapi_DsaAddressListItem_V1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsaAddressListItem_V1 *r)
+{
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_push_align(ndr, 5));
+               NDR_CHECK(ndr_push_unique_ptr(ndr, r->next));
+               NDR_CHECK(ndr_push_unique_ptr(ndr, r->address));
+               NDR_CHECK(ndr_push_trailer_align(ndr, 5));
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+               if (r->next) {
+                       NDR_CHECK(ndr_push_drsuapi_DsaAddressListItem_V1(ndr, NDR_SCALARS|NDR_BUFFERS, r->next));
+               }
+               if (r->address) {
+                       NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->address));
+               }
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_drsuapi_DsaAddressListItem_V1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsaAddressListItem_V1 *r)
+{
+       uint32_t _ptr_next;
+       TALLOC_CTX *_mem_save_next_0;
+       uint32_t _ptr_address;
+       TALLOC_CTX *_mem_save_address_0;
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_pull_align(ndr, 5));
+               NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_next));
+               if (_ptr_next) {
+                       NDR_PULL_ALLOC(ndr, r->next);
+               } else {
+                       r->next = NULL;
+               }
+               NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_address));
+               if (_ptr_address) {
+                       NDR_PULL_ALLOC(ndr, r->address);
+               } else {
+                       r->address = NULL;
+               }
+               NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+               if (r->next) {
+                       _mem_save_next_0 = NDR_PULL_GET_MEM_CTX(ndr);
+                       NDR_PULL_SET_MEM_CTX(ndr, r->next, 0);
+                       NDR_CHECK(ndr_pull_drsuapi_DsaAddressListItem_V1(ndr, NDR_SCALARS|NDR_BUFFERS, r->next));
+                       NDR_PULL_SET_MEM_CTX(ndr, _mem_save_next_0, 0);
+               }
+               if (r->address) {
+                       _mem_save_address_0 = NDR_PULL_GET_MEM_CTX(ndr);
+                       NDR_PULL_SET_MEM_CTX(ndr, r->address, 0);
+                       NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->address));
+                       NDR_PULL_SET_MEM_CTX(ndr, _mem_save_address_0, 0);
+               }
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_drsuapi_DsaAddressListItem_V1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsaAddressListItem_V1 *r)
+{
+       ndr_print_struct(ndr, name, "drsuapi_DsaAddressListItem_V1");
+       ndr->depth++;
+       ndr_print_ptr(ndr, "next", r->next);
+       ndr->depth++;
+       if (r->next) {
+               ndr_print_drsuapi_DsaAddressListItem_V1(ndr, "next", r->next);
+       }
+       ndr->depth--;
+       ndr_print_ptr(ndr, "address", r->address);
+       ndr->depth++;
+       if (r->address) {
+               ndr_print_lsa_String(ndr, "address", r->address);
+       }
+       ndr->depth--;
+       ndr->depth--;
+}
+
+static enum ndr_err_code ndr_push_drsuapi_DsAddEntry_RefErrListItem_V1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsAddEntry_RefErrListItem_V1 *r)
+{
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_push_align(ndr, 5));
+               NDR_CHECK(ndr_push_unique_ptr(ndr, r->id_target));
+               NDR_CHECK(ndr_push_drsuapi_NameResOp_V1(ndr, NDR_SCALARS, &r->op_state));
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, 0));
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, 0));
+               NDR_CHECK(ndr_push_drsuapi_DsAddEntry_RefType(ndr, NDR_SCALARS, r->ref_type));
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->addr_list_count));
+               NDR_CHECK(ndr_push_unique_ptr(ndr, r->addr_list));
+               NDR_CHECK(ndr_push_unique_ptr(ndr, r->next));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->is_choice_set));
+               NDR_CHECK(ndr_push_drsuapi_DsAddEntry_ChoiceType(ndr, NDR_SCALARS, r->choice));
+               NDR_CHECK(ndr_push_trailer_align(ndr, 5));
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+               if (r->id_target) {
+                       NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->id_target));
+               }
+               if (r->addr_list) {
+                       NDR_CHECK(ndr_push_drsuapi_DsaAddressListItem_V1(ndr, NDR_SCALARS|NDR_BUFFERS, r->addr_list));
+               }
+               if (r->next) {
+                       NDR_CHECK(ndr_push_drsuapi_DsAddEntry_RefErrListItem_V1(ndr, NDR_SCALARS|NDR_BUFFERS, r->next));
+               }
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_drsuapi_DsAddEntry_RefErrListItem_V1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsAddEntry_RefErrListItem_V1 *r)
+{
+       uint32_t _ptr_id_target;
+       TALLOC_CTX *_mem_save_id_target_0;
+       uint32_t _ptr_addr_list;
+       TALLOC_CTX *_mem_save_addr_list_0;
+       uint32_t _ptr_next;
+       TALLOC_CTX *_mem_save_next_0;
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_pull_align(ndr, 5));
+               NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_id_target));
+               if (_ptr_id_target) {
+                       NDR_PULL_ALLOC(ndr, r->id_target);
+               } else {
+                       r->id_target = NULL;
+               }
+               NDR_CHECK(ndr_pull_drsuapi_NameResOp_V1(ndr, NDR_SCALARS, &r->op_state));
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->rdn_alias));
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->rdn_internal));
+               NDR_CHECK(ndr_pull_drsuapi_DsAddEntry_RefType(ndr, NDR_SCALARS, &r->ref_type));
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->addr_list_count));
+               NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_addr_list));
+               if (_ptr_addr_list) {
+                       NDR_PULL_ALLOC(ndr, r->addr_list);
+               } else {
+                       r->addr_list = NULL;
+               }
+               NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_next));
+               if (_ptr_next) {
+                       NDR_PULL_ALLOC(ndr, r->next);
+               } else {
+                       r->next = NULL;
+               }
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->is_choice_set));
+               NDR_CHECK(ndr_pull_drsuapi_DsAddEntry_ChoiceType(ndr, NDR_SCALARS, &r->choice));
+               NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+               if (r->id_target) {
+                       _mem_save_id_target_0 = NDR_PULL_GET_MEM_CTX(ndr);
+                       NDR_PULL_SET_MEM_CTX(ndr, r->id_target, 0);
+                       NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->id_target));
+                       NDR_PULL_SET_MEM_CTX(ndr, _mem_save_id_target_0, 0);
+               }
+               if (r->addr_list) {
+                       _mem_save_addr_list_0 = NDR_PULL_GET_MEM_CTX(ndr);
+                       NDR_PULL_SET_MEM_CTX(ndr, r->addr_list, 0);
+                       NDR_CHECK(ndr_pull_drsuapi_DsaAddressListItem_V1(ndr, NDR_SCALARS|NDR_BUFFERS, r->addr_list));
+                       NDR_PULL_SET_MEM_CTX(ndr, _mem_save_addr_list_0, 0);
+               }
+               if (r->next) {
+                       _mem_save_next_0 = NDR_PULL_GET_MEM_CTX(ndr);
+                       NDR_PULL_SET_MEM_CTX(ndr, r->next, 0);
+                       NDR_CHECK(ndr_pull_drsuapi_DsAddEntry_RefErrListItem_V1(ndr, NDR_SCALARS|NDR_BUFFERS, r->next));
+                       NDR_PULL_SET_MEM_CTX(ndr, _mem_save_next_0, 0);
+               }
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_drsuapi_DsAddEntry_RefErrListItem_V1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsAddEntry_RefErrListItem_V1 *r)
+{
+       ndr_print_struct(ndr, name, "drsuapi_DsAddEntry_RefErrListItem_V1");
+       ndr->depth++;
+       ndr_print_ptr(ndr, "id_target", r->id_target);
+       ndr->depth++;
+       if (r->id_target) {
+               ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "id_target", r->id_target);
+       }
+       ndr->depth--;
+       ndr_print_drsuapi_NameResOp_V1(ndr, "op_state", &r->op_state);
+       ndr_print_uint16(ndr, "rdn_alias", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->rdn_alias);
+       ndr_print_uint16(ndr, "rdn_internal", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->rdn_internal);
+       ndr_print_drsuapi_DsAddEntry_RefType(ndr, "ref_type", r->ref_type);
+       ndr_print_uint16(ndr, "addr_list_count", r->addr_list_count);
+       ndr_print_ptr(ndr, "addr_list", r->addr_list);
+       ndr->depth++;
+       if (r->addr_list) {
+               ndr_print_drsuapi_DsaAddressListItem_V1(ndr, "addr_list", r->addr_list);
+       }
+       ndr->depth--;
+       ndr_print_ptr(ndr, "next", r->next);
+       ndr->depth++;
+       if (r->next) {
+               ndr_print_drsuapi_DsAddEntry_RefErrListItem_V1(ndr, "next", r->next);
+       }
+       ndr->depth--;
+       ndr_print_uint32(ndr, "is_choice_set", r->is_choice_set);
+       ndr_print_drsuapi_DsAddEntry_ChoiceType(ndr, "choice", r->choice);
+       ndr->depth--;
+}
+
+static enum ndr_err_code ndr_push_drsuapi_DsAddEntryErrorInfo_Referr_V1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsAddEntryErrorInfo_Referr_V1 *r)
+{
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_push_align(ndr, 5));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dsid));
+               NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->extended_err));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->extended_data));
+               NDR_CHECK(ndr_push_drsuapi_DsAddEntry_RefErrListItem_V1(ndr, NDR_SCALARS, &r->refer));
+               NDR_CHECK(ndr_push_trailer_align(ndr, 5));
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+               NDR_CHECK(ndr_push_drsuapi_DsAddEntry_RefErrListItem_V1(ndr, NDR_BUFFERS, &r->refer));
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_drsuapi_DsAddEntryErrorInfo_Referr_V1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsAddEntryErrorInfo_Referr_V1 *r)
+{
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_pull_align(ndr, 5));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dsid));
+               NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->extended_err));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->extended_data));
+               NDR_CHECK(ndr_pull_drsuapi_DsAddEntry_RefErrListItem_V1(ndr, NDR_SCALARS, &r->refer));
+               NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+               NDR_CHECK(ndr_pull_drsuapi_DsAddEntry_RefErrListItem_V1(ndr, NDR_BUFFERS, &r->refer));
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_drsuapi_DsAddEntryErrorInfo_Referr_V1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsAddEntryErrorInfo_Referr_V1 *r)
+{
+       ndr_print_struct(ndr, name, "drsuapi_DsAddEntryErrorInfo_Referr_V1");
+       ndr->depth++;
+       ndr_print_uint32(ndr, "dsid", r->dsid);
+       ndr_print_WERROR(ndr, "extended_err", r->extended_err);
+       ndr_print_uint32(ndr, "extended_data", r->extended_data);
+       ndr_print_drsuapi_DsAddEntry_RefErrListItem_V1(ndr, "refer", &r->refer);
+       ndr->depth--;
+}
+
+static enum ndr_err_code ndr_push_drsuapi_DsAddEntryErrorInfo(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsAddEntryErrorInfo *r)
+{
+       if (ndr_flags & NDR_SCALARS) {
+               int level = ndr_push_get_switch_value(ndr, r);
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
+               NDR_CHECK(ndr_push_union_align(ndr, 5));
+               switch (level) {
+                       case 1: {
+                               NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorInfo_Attr_V1(ndr, NDR_SCALARS, &r->attr_err));
+                       break; }
+
+                       case 2: {
+                               NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorInfo_Name_V1(ndr, NDR_SCALARS, &r->name_err));
+                       break; }
+
+                       case 3: {
+                               NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorInfo_Referr_V1(ndr, NDR_SCALARS, &r->referral_err));
+                       break; }
+
+                       case 4: {
+                               NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorInfoX(ndr, NDR_SCALARS, &r->security_err));
+                       break; }
+
+                       case 5: {
+                               NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorInfoX(ndr, NDR_SCALARS, &r->service_err));
+                       break; }
 
                        case 6: {
-                               NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorInfoX(ndr, NDR_SCALARS, &r->errorX));
+                               NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorInfoX(ndr, NDR_SCALARS, &r->update_err));
                        break; }
 
                        case 7: {
-                               NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorInfoX(ndr, NDR_SCALARS, &r->errorX));
+                               NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorInfoX(ndr, NDR_SCALARS, &r->system_err));
                        break; }
 
                        default:
@@ -8871,7 +9347,15 @@ static enum ndr_err_code ndr_push_drsuapi_DsAddEntryErrorInfo(struct ndr_push *n
                int level = ndr_push_get_switch_value(ndr, r);
                switch (level) {
                        case 1:
-                               NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorInfo1(ndr, NDR_BUFFERS, &r->error1));
+                               NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorInfo_Attr_V1(ndr, NDR_BUFFERS, &r->attr_err));
+                       break;
+
+                       case 2:
+                               NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorInfo_Name_V1(ndr, NDR_BUFFERS, &r->name_err));
+                       break;
+
+                       case 3:
+                               NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorInfo_Referr_V1(ndr, NDR_BUFFERS, &r->referral_err));
                        break;
 
                        case 4:
@@ -8906,23 +9390,31 @@ static enum ndr_err_code ndr_pull_drsuapi_DsAddEntryErrorInfo(struct ndr_pull *n
                NDR_CHECK(ndr_pull_union_align(ndr, 5));
                switch (level) {
                        case 1: {
-                               NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorInfo1(ndr, NDR_SCALARS, &r->error1));
+                               NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorInfo_Attr_V1(ndr, NDR_SCALARS, &r->attr_err));
+                       break; }
+
+                       case 2: {
+                               NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorInfo_Name_V1(ndr, NDR_SCALARS, &r->name_err));
+                       break; }
+
+                       case 3: {
+                               NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorInfo_Referr_V1(ndr, NDR_SCALARS, &r->referral_err));
                        break; }
 
                        case 4: {
-                               NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorInfoX(ndr, NDR_SCALARS, &r->errorX));
+                               NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorInfoX(ndr, NDR_SCALARS, &r->security_err));
                        break; }
 
                        case 5: {
-                               NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorInfoX(ndr, NDR_SCALARS, &r->errorX));
+                               NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorInfoX(ndr, NDR_SCALARS, &r->service_err));
                        break; }
 
                        case 6: {
-                               NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorInfoX(ndr, NDR_SCALARS, &r->errorX));
+                               NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorInfoX(ndr, NDR_SCALARS, &r->update_err));
                        break; }
 
                        case 7: {
-                               NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorInfoX(ndr, NDR_SCALARS, &r->errorX));
+                               NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorInfoX(ndr, NDR_SCALARS, &r->system_err));
                        break; }
 
                        default:
@@ -8932,7 +9424,15 @@ static enum ndr_err_code ndr_pull_drsuapi_DsAddEntryErrorInfo(struct ndr_pull *n
        if (ndr_flags & NDR_BUFFERS) {
                switch (level) {
                        case 1:
-                               NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorInfo1(ndr, NDR_BUFFERS, &r->error1));
+                               NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorInfo_Attr_V1(ndr, NDR_BUFFERS, &r->attr_err));
+                       break;
+
+                       case 2:
+                               NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorInfo_Name_V1(ndr, NDR_BUFFERS, &r->name_err));
+                       break;
+
+                       case 3:
+                               NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorInfo_Referr_V1(ndr, NDR_BUFFERS, &r->referral_err));
                        break;
 
                        case 4:
@@ -8961,23 +9461,31 @@ _PUBLIC_ void ndr_print_drsuapi_DsAddEntryErrorInfo(struct ndr_print *ndr, const
        ndr_print_union(ndr, name, level, "drsuapi_DsAddEntryErrorInfo");
        switch (level) {
                case 1:
-                       ndr_print_drsuapi_DsAddEntryErrorInfo1(ndr, "error1", &r->error1);
+                       ndr_print_drsuapi_DsAddEntryErrorInfo_Attr_V1(ndr, "attr_err", &r->attr_err);
+               break;
+
+               case 2:
+                       ndr_print_drsuapi_DsAddEntryErrorInfo_Name_V1(ndr, "name_err", &r->name_err);
+               break;
+
+               case 3:
+                       ndr_print_drsuapi_DsAddEntryErrorInfo_Referr_V1(ndr, "referral_err", &r->referral_err);
                break;
 
                case 4:
-                       ndr_print_drsuapi_DsAddEntryErrorInfoX(ndr, "errorX", &r->errorX);
+                       ndr_print_drsuapi_DsAddEntryErrorInfoX(ndr, "security_err", &r->security_err);
                break;
 
                case 5:
-                       ndr_print_drsuapi_DsAddEntryErrorInfoX(ndr, "errorX", &r->errorX);
+                       ndr_print_drsuapi_DsAddEntryErrorInfoX(ndr, "service_err", &r->service_err);
                break;
 
                case 6:
-                       ndr_print_drsuapi_DsAddEntryErrorInfoX(ndr, "errorX", &r->errorX);
+                       ndr_print_drsuapi_DsAddEntryErrorInfoX(ndr, "update_err", &r->update_err);
                break;
 
                case 7:
-                       ndr_print_drsuapi_DsAddEntryErrorInfoX(ndr, "errorX", &r->errorX);
+                       ndr_print_drsuapi_DsAddEntryErrorInfoX(ndr, "system_err", &r->system_err);
                break;
 
                default:
@@ -8985,32 +9493,32 @@ _PUBLIC_ void ndr_print_drsuapi_DsAddEntryErrorInfo(struct ndr_print *ndr, const
        }
 }
 
-static enum ndr_err_code ndr_push_drsuapi_DsAddEntryError1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsAddEntryError1 *r)
+static enum ndr_err_code ndr_push_drsuapi_DsAddEntry_ErrData_V1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsAddEntry_ErrData_V1 *r)
 {
        if (ndr_flags & NDR_SCALARS) {
                NDR_CHECK(ndr_push_align(ndr, 5));
                NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->status));
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
+               NDR_CHECK(ndr_push_drsuapi_DsAddEntry_DirErr(ndr, NDR_SCALARS, r->dir_err));
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->info));
                NDR_CHECK(ndr_push_trailer_align(ndr, 5));
        }
        if (ndr_flags & NDR_BUFFERS) {
                if (r->info) {
-                       NDR_CHECK(ndr_push_set_switch_value(ndr, r->info, r->level));
+                       NDR_CHECK(ndr_push_set_switch_value(ndr, r->info, r->dir_err));
                        NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info));
                }
        }
        return NDR_ERR_SUCCESS;
 }
 
-static enum ndr_err_code ndr_pull_drsuapi_DsAddEntryError1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsAddEntryError1 *r)
+static enum ndr_err_code ndr_pull_drsuapi_DsAddEntry_ErrData_V1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsAddEntry_ErrData_V1 *r)
 {
        uint32_t _ptr_info;
        TALLOC_CTX *_mem_save_info_0;
        if (ndr_flags & NDR_SCALARS) {
                NDR_CHECK(ndr_pull_align(ndr, 5));
                NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->status));
-               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
+               NDR_CHECK(ndr_pull_drsuapi_DsAddEntry_DirErr(ndr, NDR_SCALARS, &r->dir_err));
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
                if (_ptr_info) {
                        NDR_PULL_ALLOC(ndr, r->info);
@@ -9023,7 +9531,7 @@ static enum ndr_err_code ndr_pull_drsuapi_DsAddEntryError1(struct ndr_pull *ndr,
                if (r->info) {
                        _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
                        NDR_PULL_SET_MEM_CTX(ndr, r->info, 0);
-                       NDR_CHECK(ndr_pull_set_switch_value(ndr, r->info, r->level));
+                       NDR_CHECK(ndr_pull_set_switch_value(ndr, r->info, r->dir_err));
                        NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info));
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
                }
@@ -9031,23 +9539,23 @@ static enum ndr_err_code ndr_pull_drsuapi_DsAddEntryError1(struct ndr_pull *ndr,
        return NDR_ERR_SUCCESS;
 }
 
-_PUBLIC_ void ndr_print_drsuapi_DsAddEntryError1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsAddEntryError1 *r)
+_PUBLIC_ void ndr_print_drsuapi_DsAddEntry_ErrData_V1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsAddEntry_ErrData_V1 *r)
 {
-       ndr_print_struct(ndr, name, "drsuapi_DsAddEntryError1");
+       ndr_print_struct(ndr, name, "drsuapi_DsAddEntry_ErrData_V1");
        ndr->depth++;
        ndr_print_WERROR(ndr, "status", r->status);
-       ndr_print_uint32(ndr, "level", r->level);
+       ndr_print_drsuapi_DsAddEntry_DirErr(ndr, "dir_err", r->dir_err);
        ndr_print_ptr(ndr, "info", r->info);
        ndr->depth++;
        if (r->info) {
-               ndr_print_set_switch_value(ndr, r->info, r->level);
+               ndr_print_set_switch_value(ndr, r->info, r->dir_err);
                ndr_print_drsuapi_DsAddEntryErrorInfo(ndr, "info", r->info);
        }
        ndr->depth--;
        ndr->depth--;
 }
 
-static enum ndr_err_code ndr_push_drsuapi_DsAddEntryError(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsAddEntryError *r)
+static enum ndr_err_code ndr_push_drsuapi_DsAddEntry_ErrData(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsAddEntry_ErrData *r)
 {
        if (ndr_flags & NDR_SCALARS) {
                int level = ndr_push_get_switch_value(ndr, r);
@@ -9055,7 +9563,7 @@ static enum ndr_err_code ndr_push_drsuapi_DsAddEntryError(struct ndr_push *ndr,
                NDR_CHECK(ndr_push_union_align(ndr, 5));
                switch (level) {
                        case 1: {
-                               NDR_CHECK(ndr_push_drsuapi_DsAddEntryError1(ndr, NDR_SCALARS, &r->info1));
+                               NDR_CHECK(ndr_push_drsuapi_DsAddEntry_ErrData_V1(ndr, NDR_SCALARS, &r->v1));
                        break; }
 
                        default:
@@ -9066,7 +9574,7 @@ static enum ndr_err_code ndr_push_drsuapi_DsAddEntryError(struct ndr_push *ndr,
                int level = ndr_push_get_switch_value(ndr, r);
                switch (level) {
                        case 1:
-                               NDR_CHECK(ndr_push_drsuapi_DsAddEntryError1(ndr, NDR_BUFFERS, &r->info1));
+                               NDR_CHECK(ndr_push_drsuapi_DsAddEntry_ErrData_V1(ndr, NDR_BUFFERS, &r->v1));
                        break;
 
                        default:
@@ -9076,7 +9584,7 @@ static enum ndr_err_code ndr_push_drsuapi_DsAddEntryError(struct ndr_push *ndr,
        return NDR_ERR_SUCCESS;
 }
 
-static enum ndr_err_code ndr_pull_drsuapi_DsAddEntryError(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsAddEntryError *r)
+static enum ndr_err_code ndr_pull_drsuapi_DsAddEntry_ErrData(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsAddEntry_ErrData *r)
 {
        int level;
        uint32_t _level;
@@ -9089,7 +9597,7 @@ static enum ndr_err_code ndr_pull_drsuapi_DsAddEntryError(struct ndr_pull *ndr,
                NDR_CHECK(ndr_pull_union_align(ndr, 5));
                switch (level) {
                        case 1: {
-                               NDR_CHECK(ndr_pull_drsuapi_DsAddEntryError1(ndr, NDR_SCALARS, &r->info1));
+                               NDR_CHECK(ndr_pull_drsuapi_DsAddEntry_ErrData_V1(ndr, NDR_SCALARS, &r->v1));
                        break; }
 
                        default:
@@ -9099,7 +9607,7 @@ static enum ndr_err_code ndr_pull_drsuapi_DsAddEntryError(struct ndr_pull *ndr,
        if (ndr_flags & NDR_BUFFERS) {
                switch (level) {
                        case 1:
-                               NDR_CHECK(ndr_pull_drsuapi_DsAddEntryError1(ndr, NDR_BUFFERS, &r->info1));
+                               NDR_CHECK(ndr_pull_drsuapi_DsAddEntry_ErrData_V1(ndr, NDR_BUFFERS, &r->v1));
                        break;
 
                        default:
@@ -9109,14 +9617,14 @@ static enum ndr_err_code ndr_pull_drsuapi_DsAddEntryError(struct ndr_pull *ndr,
        return NDR_ERR_SUCCESS;
 }
 
-_PUBLIC_ void ndr_print_drsuapi_DsAddEntryError(struct ndr_print *ndr, const char *name, const union drsuapi_DsAddEntryError *r)
+_PUBLIC_ void ndr_print_drsuapi_DsAddEntry_ErrData(struct ndr_print *ndr, const char *name, const union drsuapi_DsAddEntry_ErrData *r)
 {
        int level;
        level = ndr_print_get_switch_value(ndr, r);
-       ndr_print_union(ndr, name, level, "drsuapi_DsAddEntryError");
+       ndr_print_union(ndr, name, level, "drsuapi_DsAddEntry_ErrData");
        switch (level) {
                case 1:
-                       ndr_print_drsuapi_DsAddEntryError1(ndr, "info1", &r->info1);
+                       ndr_print_drsuapi_DsAddEntry_ErrData_V1(ndr, "v1", &r->v1);
                break;
 
                default:
@@ -9167,8 +9675,11 @@ static enum ndr_err_code ndr_push_drsuapi_DsAddEntryCtr2(struct ndr_push *ndr, i
        if (ndr_flags & NDR_SCALARS) {
                NDR_CHECK(ndr_push_align(ndr, 5));
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->id));
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1));
-               NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorInfoX(ndr, NDR_SCALARS, &r->error));
+               NDR_CHECK(ndr_push_drsuapi_DsAddEntry_DirErr(ndr, NDR_SCALARS, r->dir_err));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dsid));
+               NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->extended_err));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->extended_data));
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->problem));
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->objects));
                NDR_CHECK(ndr_push_trailer_align(ndr, 5));
@@ -9206,8 +9717,11 @@ static enum ndr_err_code ndr_pull_drsuapi_DsAddEntryCtr2(struct ndr_pull *ndr, i
                } else {
                        r->id = NULL;
                }
-               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
-               NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorInfoX(ndr, NDR_SCALARS, &r->error));
+               NDR_CHECK(ndr_pull_drsuapi_DsAddEntry_DirErr(ndr, NDR_SCALARS, &r->dir_err));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dsid));
+               NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->extended_err));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->extended_data));
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->problem));
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
                if (r->count > 10000) {
                        return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
@@ -9261,8 +9775,11 @@ _PUBLIC_ void ndr_print_drsuapi_DsAddEntryCtr2(struct ndr_print *ndr, const char
                ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "id", r->id);
        }
        ndr->depth--;
-       ndr_print_uint32(ndr, "unknown1", r->unknown1);
-       ndr_print_drsuapi_DsAddEntryErrorInfoX(ndr, "error", &r->error);
+       ndr_print_drsuapi_DsAddEntry_DirErr(ndr, "dir_err", r->dir_err);
+       ndr_print_uint32(ndr, "dsid", r->dsid);
+       ndr_print_WERROR(ndr, "extended_err", r->extended_err);
+       ndr_print_uint32(ndr, "extended_data", r->extended_data);
+       ndr_print_uint16(ndr, "problem", r->problem);
        ndr_print_uint32(ndr, "count", r->count);
        ndr_print_ptr(ndr, "objects", r->objects);
        ndr->depth++;
@@ -9288,8 +9805,8 @@ static enum ndr_err_code ndr_push_drsuapi_DsAddEntryCtr3(struct ndr_push *ndr, i
        if (ndr_flags & NDR_SCALARS) {
                NDR_CHECK(ndr_push_align(ndr, 5));
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->id));
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
-               NDR_CHECK(ndr_push_unique_ptr(ndr, r->error));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->err_ver));
+               NDR_CHECK(ndr_push_unique_ptr(ndr, r->err_data));
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->objects));
                NDR_CHECK(ndr_push_trailer_align(ndr, 5));
@@ -9298,9 +9815,9 @@ static enum ndr_err_code ndr_push_drsuapi_DsAddEntryCtr3(struct ndr_push *ndr, i
                if (r->id) {
                        NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->id));
                }
-               if (r->error) {
-                       NDR_CHECK(ndr_push_set_switch_value(ndr, r->error, r->level));
-                       NDR_CHECK(ndr_push_drsuapi_DsAddEntryError(ndr, NDR_SCALARS|NDR_BUFFERS, r->error));
+               if (r->err_data) {
+                       NDR_CHECK(ndr_push_set_switch_value(ndr, r->err_data, r->err_ver));
+                       NDR_CHECK(ndr_push_drsuapi_DsAddEntry_ErrData(ndr, NDR_SCALARS|NDR_BUFFERS, r->err_data));
                }
                if (r->objects) {
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
@@ -9319,8 +9836,8 @@ static enum ndr_err_code ndr_pull_drsuapi_DsAddEntryCtr3(struct ndr_pull *ndr, i
 {
        uint32_t _ptr_id;
        TALLOC_CTX *_mem_save_id_0;
-       uint32_t _ptr_error;
-       TALLOC_CTX *_mem_save_error_0;
+       uint32_t _ptr_err_data;
+       TALLOC_CTX *_mem_save_err_data_0;
        uint32_t _ptr_objects;
        uint32_t cntr_objects_1;
        TALLOC_CTX *_mem_save_objects_0;
@@ -9333,12 +9850,12 @@ static enum ndr_err_code ndr_pull_drsuapi_DsAddEntryCtr3(struct ndr_pull *ndr, i
                } else {
                        r->id = NULL;
                }
-               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
-               NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_error));
-               if (_ptr_error) {
-                       NDR_PULL_ALLOC(ndr, r->error);
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->err_ver));
+               NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_err_data));
+               if (_ptr_err_data) {
+                       NDR_PULL_ALLOC(ndr, r->err_data);
                } else {
-                       r->error = NULL;
+                       r->err_data = NULL;
                }
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
                if (r->count > 10000) {
@@ -9359,12 +9876,12 @@ static enum ndr_err_code ndr_pull_drsuapi_DsAddEntryCtr3(struct ndr_pull *ndr, i
                        NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->id));
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_id_0, 0);
                }
-               if (r->error) {
-                       _mem_save_error_0 = NDR_PULL_GET_MEM_CTX(ndr);
-                       NDR_PULL_SET_MEM_CTX(ndr, r->error, 0);
-                       NDR_CHECK(ndr_pull_set_switch_value(ndr, r->error, r->level));
-                       NDR_CHECK(ndr_pull_drsuapi_DsAddEntryError(ndr, NDR_SCALARS|NDR_BUFFERS, r->error));
-                       NDR_PULL_SET_MEM_CTX(ndr, _mem_save_error_0, 0);
+               if (r->err_data) {
+                       _mem_save_err_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
+                       NDR_PULL_SET_MEM_CTX(ndr, r->err_data, 0);
+                       NDR_CHECK(ndr_pull_set_switch_value(ndr, r->err_data, r->err_ver));
+                       NDR_CHECK(ndr_pull_drsuapi_DsAddEntry_ErrData(ndr, NDR_SCALARS|NDR_BUFFERS, r->err_data));
+                       NDR_PULL_SET_MEM_CTX(ndr, _mem_save_err_data_0, 0);
                }
                if (r->objects) {
                        _mem_save_objects_0 = NDR_PULL_GET_MEM_CTX(ndr);
@@ -9400,12 +9917,12 @@ _PUBLIC_ void ndr_print_drsuapi_DsAddEntryCtr3(struct ndr_print *ndr, const char
                ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "id", r->id);
        }
        ndr->depth--;
-       ndr_print_uint32(ndr, "level", r->level);
-       ndr_print_ptr(ndr, "error", r->error);
+       ndr_print_uint32(ndr, "err_ver", r->err_ver);
+       ndr_print_ptr(ndr, "err_data", r->err_data);
        ndr->depth++;
-       if (r->error) {
-               ndr_print_set_switch_value(ndr, r->error, r->level);
-               ndr_print_drsuapi_DsAddEntryError(ndr, "error", r->error);
+       if (r->err_data) {
+               ndr_print_set_switch_value(ndr, r->err_data, r->err_ver);
+               ndr_print_drsuapi_DsAddEntry_ErrData(ndr, "err_data", r->err_data);
        }
        ndr->depth--;
        ndr_print_uint32(ndr, "count", r->count);
@@ -9431,7 +9948,7 @@ static enum ndr_err_code ndr_push_drsuapi_DsAddEntryCtr(struct ndr_push *ndr, in
 {
        if (ndr_flags & NDR_SCALARS) {
                int level = ndr_push_get_switch_value(ndr, r);
-               NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, level));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
                NDR_CHECK(ndr_push_union_align(ndr, 5));
                switch (level) {
                        case 2: {
@@ -9467,10 +9984,10 @@ static enum ndr_err_code ndr_push_drsuapi_DsAddEntryCtr(struct ndr_push *ndr, in
 static enum ndr_err_code ndr_pull_drsuapi_DsAddEntryCtr(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsAddEntryCtr *r)
 {
        int level;
-       int32_t _level;
+       uint32_t _level;
        level = ndr_pull_get_switch_value(ndr, r);
        if (ndr_flags & NDR_SCALARS) {
-               NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &_level));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
                if (_level != level) {
                        return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
                }
@@ -9712,10 +10229,10 @@ _PUBLIC_ void ndr_print_drsuapi_DsReplicaInfoType(struct ndr_print *ndr, const c
                case DRSUAPI_DS_REPLICA_INFO_CURSORS3: val = "DRSUAPI_DS_REPLICA_INFO_CURSORS3"; break;
                case DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2: val = "DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2"; break;
                case DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2: val = "DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2"; break;
-               case DRSUAPI_DS_REPLICA_INFO_NEIGHBORS02: val = "DRSUAPI_DS_REPLICA_INFO_NEIGHBORS02"; break;
-               case DRSUAPI_DS_REPLICA_INFO_CONNECTIONS04: val = "DRSUAPI_DS_REPLICA_INFO_CONNECTIONS04"; break;
-               case DRSUAPI_DS_REPLICA_INFO_CURSORS05: val = "DRSUAPI_DS_REPLICA_INFO_CURSORS05"; break;
-               case DRSUAPI_DS_REPLICA_INFO_06: val = "DRSUAPI_DS_REPLICA_INFO_06"; break;
+               case DRSUAPI_DS_REPLICA_INFO_REPSTO: val = "DRSUAPI_DS_REPLICA_INFO_REPSTO"; break;
+               case DRSUAPI_DS_REPLICA_INFO_CLIENT_CONTEXTS: val = "DRSUAPI_DS_REPLICA_INFO_CLIENT_CONTEXTS"; break;
+               case DRSUAPI_DS_REPLICA_INFO_UPTODATE_VECTOR_V1: val = "DRSUAPI_DS_REPLICA_INFO_UPTODATE_VECTOR_V1"; break;
+               case DRSUAPI_DS_REPLICA_INFO_SERVER_OUTGOING_CALLS: val = "DRSUAPI_DS_REPLICA_INFO_SERVER_OUTGOING_CALLS"; break;
        }
        ndr_print_enum(ndr, name, "ENUM", val, r);
 }
@@ -9726,7 +10243,7 @@ static enum ndr_err_code ndr_push_drsuapi_DsReplicaGetInfoRequest1(struct ndr_pu
                NDR_CHECK(ndr_push_align(ndr, 5));
                NDR_CHECK(ndr_push_drsuapi_DsReplicaInfoType(ndr, NDR_SCALARS, r->info_type));
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->object_dn));
-               NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->guid1));
+               NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->source_dsa_guid));
                NDR_CHECK(ndr_push_trailer_align(ndr, 5));
        }
        if (ndr_flags & NDR_BUFFERS) {
@@ -9753,7 +10270,7 @@ static enum ndr_err_code ndr_pull_drsuapi_DsReplicaGetInfoRequest1(struct ndr_pu
                } else {
                        r->object_dn = NULL;
                }
-               NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->guid1));
+               NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->source_dsa_guid));
                NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
        }
        if (ndr_flags & NDR_BUFFERS) {
@@ -9784,7 +10301,7 @@ _PUBLIC_ void ndr_print_drsuapi_DsReplicaGetInfoRequest1(struct ndr_print *ndr,
                ndr_print_string(ndr, "object_dn", r->object_dn);
        }
        ndr->depth--;
-       ndr_print_GUID(ndr, "guid1", &r->guid1);
+       ndr_print_GUID(ndr, "source_dsa_guid", &r->source_dsa_guid);
        ndr->depth--;
 }
 
@@ -9794,11 +10311,11 @@ static enum ndr_err_code ndr_push_drsuapi_DsReplicaGetInfoRequest2(struct ndr_pu
                NDR_CHECK(ndr_push_align(ndr, 5));
                NDR_CHECK(ndr_push_drsuapi_DsReplicaInfoType(ndr, NDR_SCALARS, r->info_type));
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->object_dn));
-               NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->guid1));
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1));
-               NDR_CHECK(ndr_push_unique_ptr(ndr, r->string1));
-               NDR_CHECK(ndr_push_unique_ptr(ndr, r->string2));
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
+               NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->source_dsa_guid));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
+               NDR_CHECK(ndr_push_unique_ptr(ndr, r->attribute_name));
+               NDR_CHECK(ndr_push_unique_ptr(ndr, r->value_dn_str));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->enumeration_context));
                NDR_CHECK(ndr_push_trailer_align(ndr, 5));
        }
        if (ndr_flags & NDR_BUFFERS) {
@@ -9808,17 +10325,17 @@ static enum ndr_err_code ndr_push_drsuapi_DsReplicaGetInfoRequest2(struct ndr_pu
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->object_dn, CH_UTF16)));
                        NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->object_dn, ndr_charset_length(r->object_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
                }
-               if (r->string1) {
-                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->string1, CH_UTF16)));
+               if (r->attribute_name) {
+                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->attribute_name, CH_UTF16)));
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
-                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->string1, CH_UTF16)));
-                       NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->string1, ndr_charset_length(r->string1, CH_UTF16), sizeof(uint16_t), CH_UTF16));
+                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->attribute_name, CH_UTF16)));
+                       NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->attribute_name, ndr_charset_length(r->attribute_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
                }
-               if (r->string2) {
-                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->string2, CH_UTF16)));
+               if (r->value_dn_str) {
+                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->value_dn_str, CH_UTF16)));
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
-                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->string2, CH_UTF16)));
-                       NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->string2, ndr_charset_length(r->string2, CH_UTF16), sizeof(uint16_t), CH_UTF16));
+                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->value_dn_str, CH_UTF16)));
+                       NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->value_dn_str, ndr_charset_length(r->value_dn_str, CH_UTF16), sizeof(uint16_t), CH_UTF16));
                }
        }
        return NDR_ERR_SUCCESS;
@@ -9828,10 +10345,10 @@ static enum ndr_err_code ndr_pull_drsuapi_DsReplicaGetInfoRequest2(struct ndr_pu
 {
        uint32_t _ptr_object_dn;
        TALLOC_CTX *_mem_save_object_dn_0;
-       uint32_t _ptr_string1;
-       TALLOC_CTX *_mem_save_string1_0;
-       uint32_t _ptr_string2;
-       TALLOC_CTX *_mem_save_string2_0;
+       uint32_t _ptr_attribute_name;
+       TALLOC_CTX *_mem_save_attribute_name_0;
+       uint32_t _ptr_value_dn_str;
+       TALLOC_CTX *_mem_save_value_dn_str_0;
        if (ndr_flags & NDR_SCALARS) {
                NDR_CHECK(ndr_pull_align(ndr, 5));
                NDR_CHECK(ndr_pull_drsuapi_DsReplicaInfoType(ndr, NDR_SCALARS, &r->info_type));
@@ -9841,21 +10358,21 @@ static enum ndr_err_code ndr_pull_drsuapi_DsReplicaGetInfoRequest2(struct ndr_pu
                } else {
                        r->object_dn = NULL;
                }
-               NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->guid1));
-               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
-               NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_string1));
-               if (_ptr_string1) {
-                       NDR_PULL_ALLOC(ndr, r->string1);
+               NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->source_dsa_guid));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
+               NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_attribute_name));
+               if (_ptr_attribute_name) {
+                       NDR_PULL_ALLOC(ndr, r->attribute_name);
                } else {
-                       r->string1 = NULL;
+                       r->attribute_name = NULL;
                }
-               NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_string2));
-               if (_ptr_string2) {
-                       NDR_PULL_ALLOC(ndr, r->string2);
+               NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_value_dn_str));
+               if (_ptr_value_dn_str) {
+                       NDR_PULL_ALLOC(ndr, r->value_dn_str);
                } else {
-                       r->string2 = NULL;
+                       r->value_dn_str = NULL;
                }
-               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->enumeration_context));
                NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
        }
        if (ndr_flags & NDR_BUFFERS) {
@@ -9871,29 +10388,29 @@ static enum ndr_err_code ndr_pull_drsuapi_DsReplicaGetInfoRequest2(struct ndr_pu
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->object_dn, ndr_get_array_length(ndr, &r->object_dn), sizeof(uint16_t), CH_UTF16));
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_object_dn_0, 0);
                }
-               if (r->string1) {
-                       _mem_save_string1_0 = NDR_PULL_GET_MEM_CTX(ndr);
-                       NDR_PULL_SET_MEM_CTX(ndr, r->string1, 0);
-                       NDR_CHECK(ndr_pull_array_size(ndr, &r->string1));
-                       NDR_CHECK(ndr_pull_array_length(ndr, &r->string1));
-                       if (ndr_get_array_length(ndr, &r->string1) > ndr_get_array_size(ndr, &r->string1)) {
-                               return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->string1), ndr_get_array_length(ndr, &r->string1));
+               if (r->attribute_name) {
+                       _mem_save_attribute_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
+                       NDR_PULL_SET_MEM_CTX(ndr, r->attribute_name, 0);
+                       NDR_CHECK(ndr_pull_array_size(ndr, &r->attribute_name));
+                       NDR_CHECK(ndr_pull_array_length(ndr, &r->attribute_name));
+                       if (ndr_get_array_length(ndr, &r->attribute_name) > ndr_get_array_size(ndr, &r->attribute_name)) {
+                               return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->attribute_name), ndr_get_array_length(ndr, &r->attribute_name));
                        }
-                       NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->string1), sizeof(uint16_t)));
-                       NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->string1, ndr_get_array_length(ndr, &r->string1), sizeof(uint16_t), CH_UTF16));
-                       NDR_PULL_SET_MEM_CTX(ndr, _mem_save_string1_0, 0);
+                       NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->attribute_name), sizeof(uint16_t)));
+                       NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->attribute_name, ndr_get_array_length(ndr, &r->attribute_name), sizeof(uint16_t), CH_UTF16));
+                       NDR_PULL_SET_MEM_CTX(ndr, _mem_save_attribute_name_0, 0);
                }
-               if (r->string2) {
-                       _mem_save_string2_0 = NDR_PULL_GET_MEM_CTX(ndr);
-                       NDR_PULL_SET_MEM_CTX(ndr, r->string2, 0);
-                       NDR_CHECK(ndr_pull_array_size(ndr, &r->string2));
-                       NDR_CHECK(ndr_pull_array_length(ndr, &r->string2));
-                       if (ndr_get_array_length(ndr, &r->string2) > ndr_get_array_size(ndr, &r->string2)) {
-                               return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->string2), ndr_get_array_length(ndr, &r->string2));
+               if (r->value_dn_str) {
+                       _mem_save_value_dn_str_0 = NDR_PULL_GET_MEM_CTX(ndr);
+                       NDR_PULL_SET_MEM_CTX(ndr, r->value_dn_str, 0);
+                       NDR_CHECK(ndr_pull_array_size(ndr, &r->value_dn_str));
+                       NDR_CHECK(ndr_pull_array_length(ndr, &r->value_dn_str));
+                       if (ndr_get_array_length(ndr, &r->value_dn_str) > ndr_get_array_size(ndr, &r->value_dn_str)) {
+                               return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->value_dn_str), ndr_get_array_length(ndr, &r->value_dn_str));
                        }
-                       NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->string2), sizeof(uint16_t)));
-                       NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->string2, ndr_get_array_length(ndr, &r->string2), sizeof(uint16_t), CH_UTF16));
-                       NDR_PULL_SET_MEM_CTX(ndr, _mem_save_string2_0, 0);
+                       NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->value_dn_str), sizeof(uint16_t)));
+                       NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->value_dn_str, ndr_get_array_length(ndr, &r->value_dn_str), sizeof(uint16_t), CH_UTF16));
+                       NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_dn_str_0, 0);
                }
        }
        return NDR_ERR_SUCCESS;
@@ -9910,21 +10427,21 @@ _PUBLIC_ void ndr_print_drsuapi_DsReplicaGetInfoRequest2(struct ndr_print *ndr,
                ndr_print_string(ndr, "object_dn", r->object_dn);
        }
        ndr->depth--;
-       ndr_print_GUID(ndr, "guid1", &r->guid1);
-       ndr_print_uint32(ndr, "unknown1", r->unknown1);
-       ndr_print_ptr(ndr, "string1", r->string1);
+       ndr_print_GUID(ndr, "source_dsa_guid", &r->source_dsa_guid);
+       ndr_print_uint32(ndr, "flags", r->flags);
+       ndr_print_ptr(ndr, "attribute_name", r->attribute_name);
        ndr->depth++;
-       if (r->string1) {
-               ndr_print_string(ndr, "string1", r->string1);
+       if (r->attribute_name) {
+               ndr_print_string(ndr, "attribute_name", r->attribute_name);
        }
        ndr->depth--;
-       ndr_print_ptr(ndr, "string2", r->string2);
+       ndr_print_ptr(ndr, "value_dn_str", r->value_dn_str);
        ndr->depth++;
-       if (r->string2) {
-               ndr_print_string(ndr, "string2", r->string2);
+       if (r->value_dn_str) {
+               ndr_print_string(ndr, "value_dn_str", r->value_dn_str);
        }
        ndr->depth--;
-       ndr_print_uint32(ndr, "unknown2", r->unknown2);
+       ndr_print_uint32(ndr, "enumeration_context", r->enumeration_context);
        ndr->depth--;
 }
 
@@ -10033,7 +10550,7 @@ static enum ndr_err_code ndr_push_drsuapi_DsReplicaNeighbour(struct ndr_push *nd
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->source_dsa_obj_dn));
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->source_dsa_address));
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->transport_obj_dn));
-               NDR_CHECK(ndr_push_drsuapi_DsReplicaNeighbourFlags(ndr, NDR_SCALARS, r->replica_flags));
+               NDR_CHECK(ndr_push_drsuapi_DrsOptions(ndr, NDR_SCALARS, r->replica_flags));
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
                NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->naming_context_obj_guid));
                NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->source_dsa_obj_guid));
@@ -10112,7 +10629,7 @@ static enum ndr_err_code ndr_pull_drsuapi_DsReplicaNeighbour(struct ndr_pull *nd
                } else {
                        r->transport_obj_dn = NULL;
                }
-               NDR_CHECK(ndr_pull_drsuapi_DsReplicaNeighbourFlags(ndr, NDR_SCALARS, &r->replica_flags));
+               NDR_CHECK(ndr_pull_drsuapi_DrsOptions(ndr, NDR_SCALARS, &r->replica_flags));
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
                NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->naming_context_obj_guid));
                NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->source_dsa_obj_guid));
@@ -10207,7 +10724,7 @@ _PUBLIC_ void ndr_print_drsuapi_DsReplicaNeighbour(struct ndr_print *ndr, const
                ndr_print_string(ndr, "transport_obj_dn", r->transport_obj_dn);
        }
        ndr->depth--;
-       ndr_print_drsuapi_DsReplicaNeighbourFlags(ndr, "replica_flags", r->replica_flags);
+       ndr_print_drsuapi_DrsOptions(ndr, "replica_flags", r->replica_flags);
        ndr_print_uint32(ndr, "reserved", r->reserved);
        ndr_print_GUID(ndr, "naming_context_obj_guid", &r->naming_context_obj_guid);
        ndr_print_GUID(ndr, "source_dsa_obj_guid", &r->source_dsa_obj_guid);
@@ -10636,207 +11153,52 @@ static enum ndr_err_code ndr_pull_drsuapi_DsReplicaKccDsaFailuresCtr(struct ndr_
        return NDR_ERR_SUCCESS;
 }
 
-_PUBLIC_ void ndr_print_drsuapi_DsReplicaKccDsaFailuresCtr(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaKccDsaFailuresCtr *r)
-{
-       uint32_t cntr_array_0;
-       ndr_print_struct(ndr, name, "drsuapi_DsReplicaKccDsaFailuresCtr");
-       ndr->depth++;
-       ndr_print_uint32(ndr, "count", r->count);
-       ndr_print_uint32(ndr, "reserved", r->reserved);
-       ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
-       ndr->depth++;
-       for (cntr_array_0=0;cntr_array_0<r->count;cntr_array_0++) {
-               char *idx_0=NULL;
-               if (asprintf(&idx_0, "[%d]", cntr_array_0) != -1) {
-                       ndr_print_drsuapi_DsReplicaKccDsaFailure(ndr, "array", &r->array[cntr_array_0]);
-                       free(idx_0);
-               }
-       }
-       ndr->depth--;
-       ndr->depth--;
-}
-
-static enum ndr_err_code ndr_push_drsuapi_DsReplicaOpType(struct ndr_push *ndr, int ndr_flags, enum drsuapi_DsReplicaOpType r)
-{
-       NDR_CHECK(ndr_push_enum_uint1632(ndr, NDR_SCALARS, r));
-       return NDR_ERR_SUCCESS;
-}
-
-static enum ndr_err_code ndr_pull_drsuapi_DsReplicaOpType(struct ndr_pull *ndr, int ndr_flags, enum drsuapi_DsReplicaOpType *r)
-{
-       uint16_t v;
-       NDR_CHECK(ndr_pull_enum_uint1632(ndr, NDR_SCALARS, &v));
-       *r = v;
-       return NDR_ERR_SUCCESS;
-}
-
-_PUBLIC_ void ndr_print_drsuapi_DsReplicaOpType(struct ndr_print *ndr, const char *name, enum drsuapi_DsReplicaOpType r)
-{
-       const char *val = NULL;
-
-       switch (r) {
-               case DRSUAPI_DS_REPLICA_OP_TYPE_SYNC: val = "DRSUAPI_DS_REPLICA_OP_TYPE_SYNC"; break;
-               case DRSUAPI_DS_REPLICA_OP_TYPE_ADD: val = "DRSUAPI_DS_REPLICA_OP_TYPE_ADD"; break;
-               case DRSUAPI_DS_REPLICA_OP_TYPE_DELETE: val = "DRSUAPI_DS_REPLICA_OP_TYPE_DELETE"; break;
-               case DRSUAPI_DS_REPLICA_OP_TYPE_MODIFY: val = "DRSUAPI_DS_REPLICA_OP_TYPE_MODIFY"; break;
-               case DRSUAPI_DS_REPLICA_OP_TYPE_UPDATE_REFS: val = "DRSUAPI_DS_REPLICA_OP_TYPE_UPDATE_REFS"; break;
-       }
-       ndr_print_enum(ndr, name, "ENUM", val, r);
-}
-
-static enum ndr_err_code ndr_push_drsuapi_DsRplicaOpOptions(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsRplicaOpOptions *r)
-{
-       if (ndr_flags & NDR_SCALARS) {
-               int level = ndr_push_get_switch_value(ndr, r);
-               NDR_CHECK(ndr_push_drsuapi_DsReplicaOpType(ndr, NDR_SCALARS, level));
-               NDR_CHECK(ndr_push_union_align(ndr, 4));
-               switch (level) {
-                       case DRSUAPI_DS_REPLICA_OP_TYPE_SYNC: {
-                               NDR_CHECK(ndr_push_drsuapi_DsReplicaSyncOptions(ndr, NDR_SCALARS, r->sync));
-                       break; }
-
-                       case DRSUAPI_DS_REPLICA_OP_TYPE_ADD: {
-                               NDR_CHECK(ndr_push_drsuapi_DsReplicaAddOptions(ndr, NDR_SCALARS, r->add));
-                       break; }
-
-                       case DRSUAPI_DS_REPLICA_OP_TYPE_DELETE: {
-                               NDR_CHECK(ndr_push_drsuapi_DsReplicaDeleteOptions(ndr, NDR_SCALARS, r->op_delete));
-                       break; }
-
-                       case DRSUAPI_DS_REPLICA_OP_TYPE_MODIFY: {
-                               NDR_CHECK(ndr_push_drsuapi_DsReplicaModifyOptions(ndr, NDR_SCALARS, r->modify));
-                       break; }
-
-                       case DRSUAPI_DS_REPLICA_OP_TYPE_UPDATE_REFS: {
-                               NDR_CHECK(ndr_push_drsuapi_DsReplicaUpdateRefsOptions(ndr, NDR_SCALARS, r->update_refs));
-                       break; }
-
-                       default: {
-                               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown));
-                       break; }
-
-               }
-       }
-       if (ndr_flags & NDR_BUFFERS) {
-               int level = ndr_push_get_switch_value(ndr, r);
-               switch (level) {
-                       case DRSUAPI_DS_REPLICA_OP_TYPE_SYNC:
-                       break;
-
-                       case DRSUAPI_DS_REPLICA_OP_TYPE_ADD:
-                       break;
-
-                       case DRSUAPI_DS_REPLICA_OP_TYPE_DELETE:
-                       break;
-
-                       case DRSUAPI_DS_REPLICA_OP_TYPE_MODIFY:
-                       break;
-
-                       case DRSUAPI_DS_REPLICA_OP_TYPE_UPDATE_REFS:
-                       break;
-
-                       default:
-                       break;
-
-               }
-       }
-       return NDR_ERR_SUCCESS;
-}
-
-static enum ndr_err_code ndr_pull_drsuapi_DsRplicaOpOptions(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsRplicaOpOptions *r)
+_PUBLIC_ void ndr_print_drsuapi_DsReplicaKccDsaFailuresCtr(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaKccDsaFailuresCtr *r)
 {
-       int level;
-       uint16_t _level;
-       level = ndr_pull_get_switch_value(ndr, r);
-       if (ndr_flags & NDR_SCALARS) {
-               NDR_CHECK(ndr_pull_uint1632(ndr, NDR_SCALARS, &_level));
-               if (_level != level) {
-                       return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
-               }
-               NDR_CHECK(ndr_pull_union_align(ndr, 4));
-               switch (level) {
-                       case DRSUAPI_DS_REPLICA_OP_TYPE_SYNC: {
-                               NDR_CHECK(ndr_pull_drsuapi_DsReplicaSyncOptions(ndr, NDR_SCALARS, &r->sync));
-                       break; }
-
-                       case DRSUAPI_DS_REPLICA_OP_TYPE_ADD: {
-                               NDR_CHECK(ndr_pull_drsuapi_DsReplicaAddOptions(ndr, NDR_SCALARS, &r->add));
-                       break; }
-
-                       case DRSUAPI_DS_REPLICA_OP_TYPE_DELETE: {
-                               NDR_CHECK(ndr_pull_drsuapi_DsReplicaDeleteOptions(ndr, NDR_SCALARS, &r->op_delete));
-                       break; }
-
-                       case DRSUAPI_DS_REPLICA_OP_TYPE_MODIFY: {
-                               NDR_CHECK(ndr_pull_drsuapi_DsReplicaModifyOptions(ndr, NDR_SCALARS, &r->modify));
-                       break; }
-
-                       case DRSUAPI_DS_REPLICA_OP_TYPE_UPDATE_REFS: {
-                               NDR_CHECK(ndr_pull_drsuapi_DsReplicaUpdateRefsOptions(ndr, NDR_SCALARS, &r->update_refs));
-                       break; }
-
-                       default: {
-                               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown));
-                       break; }
-
+       uint32_t cntr_array_0;
+       ndr_print_struct(ndr, name, "drsuapi_DsReplicaKccDsaFailuresCtr");
+       ndr->depth++;
+       ndr_print_uint32(ndr, "count", r->count);
+       ndr_print_uint32(ndr, "reserved", r->reserved);
+       ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
+       ndr->depth++;
+       for (cntr_array_0=0;cntr_array_0<r->count;cntr_array_0++) {
+               char *idx_0=NULL;
+               if (asprintf(&idx_0, "[%d]", cntr_array_0) != -1) {
+                       ndr_print_drsuapi_DsReplicaKccDsaFailure(ndr, "array", &r->array[cntr_array_0]);
+                       free(idx_0);
                }
        }
-       if (ndr_flags & NDR_BUFFERS) {
-               switch (level) {
-                       case DRSUAPI_DS_REPLICA_OP_TYPE_SYNC:
-                       break;
-
-                       case DRSUAPI_DS_REPLICA_OP_TYPE_ADD:
-                       break;
-
-                       case DRSUAPI_DS_REPLICA_OP_TYPE_DELETE:
-                       break;
-
-                       case DRSUAPI_DS_REPLICA_OP_TYPE_MODIFY:
-                       break;
-
-                       case DRSUAPI_DS_REPLICA_OP_TYPE_UPDATE_REFS:
-                       break;
-
-                       default:
-                       break;
+       ndr->depth--;
+       ndr->depth--;
+}
 
-               }
-       }
+static enum ndr_err_code ndr_push_drsuapi_DsReplicaOpType(struct ndr_push *ndr, int ndr_flags, enum drsuapi_DsReplicaOpType r)
+{
+       NDR_CHECK(ndr_push_enum_uint1632(ndr, NDR_SCALARS, r));
        return NDR_ERR_SUCCESS;
 }
 
-_PUBLIC_ void ndr_print_drsuapi_DsRplicaOpOptions(struct ndr_print *ndr, const char *name, const union drsuapi_DsRplicaOpOptions *r)
+static enum ndr_err_code ndr_pull_drsuapi_DsReplicaOpType(struct ndr_pull *ndr, int ndr_flags, enum drsuapi_DsReplicaOpType *r)
 {
-       int level;
-       level = ndr_print_get_switch_value(ndr, r);
-       ndr_print_union(ndr, name, level, "drsuapi_DsRplicaOpOptions");
-       switch (level) {
-               case DRSUAPI_DS_REPLICA_OP_TYPE_SYNC:
-                       ndr_print_drsuapi_DsReplicaSyncOptions(ndr, "sync", r->sync);
-               break;
-
-               case DRSUAPI_DS_REPLICA_OP_TYPE_ADD:
-                       ndr_print_drsuapi_DsReplicaAddOptions(ndr, "add", r->add);
-               break;
-
-               case DRSUAPI_DS_REPLICA_OP_TYPE_DELETE:
-                       ndr_print_drsuapi_DsReplicaDeleteOptions(ndr, "op_delete", r->op_delete);
-               break;
-
-               case DRSUAPI_DS_REPLICA_OP_TYPE_MODIFY:
-                       ndr_print_drsuapi_DsReplicaModifyOptions(ndr, "modify", r->modify);
-               break;
-
-               case DRSUAPI_DS_REPLICA_OP_TYPE_UPDATE_REFS:
-                       ndr_print_drsuapi_DsReplicaUpdateRefsOptions(ndr, "update_refs", r->update_refs);
-               break;
+       uint16_t v;
+       NDR_CHECK(ndr_pull_enum_uint1632(ndr, NDR_SCALARS, &v));
+       *r = v;
+       return NDR_ERR_SUCCESS;
+}
 
-               default:
-                       ndr_print_uint32(ndr, "unknown", r->unknown);
-               break;
+_PUBLIC_ void ndr_print_drsuapi_DsReplicaOpType(struct ndr_print *ndr, const char *name, enum drsuapi_DsReplicaOpType r)
+{
+       const char *val = NULL;
 
+       switch (r) {
+               case DRSUAPI_DS_REPLICA_OP_TYPE_SYNC: val = "DRSUAPI_DS_REPLICA_OP_TYPE_SYNC"; break;
+               case DRSUAPI_DS_REPLICA_OP_TYPE_ADD: val = "DRSUAPI_DS_REPLICA_OP_TYPE_ADD"; break;
+               case DRSUAPI_DS_REPLICA_OP_TYPE_DELETE: val = "DRSUAPI_DS_REPLICA_OP_TYPE_DELETE"; break;
+               case DRSUAPI_DS_REPLICA_OP_TYPE_MODIFY: val = "DRSUAPI_DS_REPLICA_OP_TYPE_MODIFY"; break;
+               case DRSUAPI_DS_REPLICA_OP_TYPE_UPDATE_REFS: val = "DRSUAPI_DS_REPLICA_OP_TYPE_UPDATE_REFS"; break;
        }
+       ndr_print_enum(ndr, name, "ENUM", val, r);
 }
 
 static enum ndr_err_code ndr_push_drsuapi_DsReplicaOp(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaOp *r)
@@ -10847,8 +11209,7 @@ static enum ndr_err_code ndr_push_drsuapi_DsReplicaOp(struct ndr_push *ndr, int
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->serial_num));
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
                NDR_CHECK(ndr_push_drsuapi_DsReplicaOpType(ndr, NDR_SCALARS, r->operation_type));
-               NDR_CHECK(ndr_push_set_switch_value(ndr, &r->options, r->operation_type));
-               NDR_CHECK(ndr_push_drsuapi_DsRplicaOpOptions(ndr, NDR_SCALARS, &r->options));
+               NDR_CHECK(ndr_push_drsuapi_DrsOptions(ndr, NDR_SCALARS, r->options));
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->nc_dn));
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->remote_dsa_obj_dn));
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->remote_dsa_address));
@@ -10893,8 +11254,7 @@ static enum ndr_err_code ndr_pull_drsuapi_DsReplicaOp(struct ndr_pull *ndr, int
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->serial_num));
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
                NDR_CHECK(ndr_pull_drsuapi_DsReplicaOpType(ndr, NDR_SCALARS, &r->operation_type));
-               NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->options, r->operation_type));
-               NDR_CHECK(ndr_pull_drsuapi_DsRplicaOpOptions(ndr, NDR_SCALARS, &r->options));
+               NDR_CHECK(ndr_pull_drsuapi_DrsOptions(ndr, NDR_SCALARS, &r->options));
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_nc_dn));
                if (_ptr_nc_dn) {
                        NDR_PULL_ALLOC(ndr, r->nc_dn);
@@ -10966,8 +11326,7 @@ _PUBLIC_ void ndr_print_drsuapi_DsReplicaOp(struct ndr_print *ndr, const char *n
        ndr_print_uint32(ndr, "serial_num", r->serial_num);
        ndr_print_uint32(ndr, "priority", r->priority);
        ndr_print_drsuapi_DsReplicaOpType(ndr, "operation_type", r->operation_type);
-       ndr_print_set_switch_value(ndr, &r->options, r->operation_type);
-       ndr_print_drsuapi_DsRplicaOpOptions(ndr, "options", &r->options);
+       ndr_print_drsuapi_DrsOptions(ndr, "options", r->options);
        ndr_print_ptr(ndr, "nc_dn", r->nc_dn);
        ndr->depth++;
        if (r->nc_dn) {
@@ -11214,7 +11573,7 @@ static enum ndr_err_code ndr_push_drsuapi_DsReplicaAttrValMetaDataCtr(struct ndr
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
                NDR_CHECK(ndr_push_align(ndr, 8));
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
-               NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->enumeration_context));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->enumeration_context));
                for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
                        NDR_CHECK(ndr_push_drsuapi_DsReplicaAttrValMetaData(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
                }
@@ -11236,7 +11595,7 @@ static enum ndr_err_code ndr_pull_drsuapi_DsReplicaAttrValMetaDataCtr(struct ndr
                NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
                NDR_CHECK(ndr_pull_align(ndr, 8));
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
-               NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->enumeration_context));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->enumeration_context));
                NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array));
                _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
                NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
@@ -11266,7 +11625,7 @@ _PUBLIC_ void ndr_print_drsuapi_DsReplicaAttrValMetaDataCtr(struct ndr_print *nd
        ndr_print_struct(ndr, name, "drsuapi_DsReplicaAttrValMetaDataCtr");
        ndr->depth++;
        ndr_print_uint32(ndr, "count", r->count);
-       ndr_print_int32(ndr, "enumeration_context", r->enumeration_context);
+       ndr_print_uint32(ndr, "enumeration_context", r->enumeration_context);
        ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
        ndr->depth++;
        for (cntr_array_0=0;cntr_array_0<r->count;cntr_array_0++) {
@@ -11287,7 +11646,7 @@ static enum ndr_err_code ndr_push_drsuapi_DsReplicaCursor2Ctr(struct ndr_push *n
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
                NDR_CHECK(ndr_push_align(ndr, 8));
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
-               NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->enumeration_context));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->enumeration_context));
                for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
                        NDR_CHECK(ndr_push_drsuapi_DsReplicaCursor2(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
                }
@@ -11306,7 +11665,7 @@ static enum ndr_err_code ndr_pull_drsuapi_DsReplicaCursor2Ctr(struct ndr_pull *n
                NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
                NDR_CHECK(ndr_pull_align(ndr, 8));
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
-               NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->enumeration_context));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->enumeration_context));
                NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array));
                _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
                NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
@@ -11330,7 +11689,7 @@ _PUBLIC_ void ndr_print_drsuapi_DsReplicaCursor2Ctr(struct ndr_print *ndr, const
        ndr_print_struct(ndr, name, "drsuapi_DsReplicaCursor2Ctr");
        ndr->depth++;
        ndr_print_uint32(ndr, "count", r->count);
-       ndr_print_int32(ndr, "enumeration_context", r->enumeration_context);
+       ndr_print_uint32(ndr, "enumeration_context", r->enumeration_context);
        ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
        ndr->depth++;
        for (cntr_array_0=0;cntr_array_0<r->count;cntr_array_0++) {
@@ -11422,7 +11781,7 @@ static enum ndr_err_code ndr_push_drsuapi_DsReplicaCursor3Ctr(struct ndr_push *n
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
                NDR_CHECK(ndr_push_align(ndr, 8));
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
-               NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->enumeration_context));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->enumeration_context));
                for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
                        NDR_CHECK(ndr_push_drsuapi_DsReplicaCursor3(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
                }
@@ -11444,7 +11803,7 @@ static enum ndr_err_code ndr_pull_drsuapi_DsReplicaCursor3Ctr(struct ndr_pull *n
                NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
                NDR_CHECK(ndr_pull_align(ndr, 8));
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
-               NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->enumeration_context));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->enumeration_context));
                NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array));
                _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
                NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
@@ -11474,7 +11833,7 @@ _PUBLIC_ void ndr_print_drsuapi_DsReplicaCursor3Ctr(struct ndr_print *ndr, const
        ndr_print_struct(ndr, name, "drsuapi_DsReplicaCursor3Ctr");
        ndr->depth++;
        ndr_print_uint32(ndr, "count", r->count);
-       ndr_print_int32(ndr, "enumeration_context", r->enumeration_context);
+       ndr_print_uint32(ndr, "enumeration_context", r->enumeration_context);
        ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
        ndr->depth++;
        for (cntr_array_0=0;cntr_array_0<r->count;cntr_array_0++) {
@@ -11605,7 +11964,7 @@ static enum ndr_err_code ndr_push_drsuapi_DsReplicaObjMetaData2Ctr(struct ndr_pu
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
                NDR_CHECK(ndr_push_align(ndr, 8));
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
-               NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->enumeration_context));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->enumeration_context));
                for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
                        NDR_CHECK(ndr_push_drsuapi_DsReplicaObjMetaData2(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
                }
@@ -11627,7 +11986,7 @@ static enum ndr_err_code ndr_pull_drsuapi_DsReplicaObjMetaData2Ctr(struct ndr_pu
                NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
                NDR_CHECK(ndr_pull_align(ndr, 8));
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
-               NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->enumeration_context));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->enumeration_context));
                NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array));
                _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
                NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
@@ -11657,7 +12016,7 @@ _PUBLIC_ void ndr_print_drsuapi_DsReplicaObjMetaData2Ctr(struct ndr_print *ndr,
        ndr_print_struct(ndr, name, "drsuapi_DsReplicaObjMetaData2Ctr");
        ndr->depth++;
        ndr_print_uint32(ndr, "count", r->count);
-       ndr_print_int32(ndr, "enumeration_context", r->enumeration_context);
+       ndr_print_uint32(ndr, "enumeration_context", r->enumeration_context);
        ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
        ndr->depth++;
        for (cntr_array_0=0;cntr_array_0<r->count;cntr_array_0++) {
@@ -11854,7 +12213,7 @@ static enum ndr_err_code ndr_push_drsuapi_DsReplicaAttrValMetaData2Ctr(struct nd
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
                NDR_CHECK(ndr_push_align(ndr, 8));
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
-               NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->enumeration_context));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->enumeration_context));
                for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
                        NDR_CHECK(ndr_push_drsuapi_DsReplicaAttrValMetaData2(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
                }
@@ -11876,7 +12235,7 @@ static enum ndr_err_code ndr_pull_drsuapi_DsReplicaAttrValMetaData2Ctr(struct nd
                NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
                NDR_CHECK(ndr_pull_align(ndr, 8));
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
-               NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->enumeration_context));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->enumeration_context));
                NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array));
                _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
                NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
@@ -11906,7 +12265,7 @@ _PUBLIC_ void ndr_print_drsuapi_DsReplicaAttrValMetaData2Ctr(struct ndr_print *n
        ndr_print_struct(ndr, name, "drsuapi_DsReplicaAttrValMetaData2Ctr");
        ndr->depth++;
        ndr_print_uint32(ndr, "count", r->count);
-       ndr_print_int32(ndr, "enumeration_context", r->enumeration_context);
+       ndr_print_uint32(ndr, "enumeration_context", r->enumeration_context);
        ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
        ndr->depth++;
        for (cntr_array_0=0;cntr_array_0<r->count;cntr_array_0++) {
@@ -12257,20 +12616,20 @@ static enum ndr_err_code ndr_push_drsuapi_DsReplicaInfo(struct ndr_push *ndr, in
                                NDR_CHECK(ndr_push_unique_ptr(ndr, r->attrvalmetadata2));
                        break; }
 
-                       case DRSUAPI_DS_REPLICA_INFO_NEIGHBORS02: {
-                               NDR_CHECK(ndr_push_unique_ptr(ndr, r->neighbours02));
+                       case DRSUAPI_DS_REPLICA_INFO_REPSTO: {
+                               NDR_CHECK(ndr_push_unique_ptr(ndr, r->repsto));
                        break; }
 
-                       case DRSUAPI_DS_REPLICA_INFO_CONNECTIONS04: {
-                               NDR_CHECK(ndr_push_unique_ptr(ndr, r->connections04));
+                       case DRSUAPI_DS_REPLICA_INFO_CLIENT_CONTEXTS: {
+                               NDR_CHECK(ndr_push_unique_ptr(ndr, r->clientctx));
                        break; }
 
-                       case DRSUAPI_DS_REPLICA_INFO_CURSORS05: {
-                               NDR_CHECK(ndr_push_unique_ptr(ndr, r->cursors05));
+                       case DRSUAPI_DS_REPLICA_INFO_UPTODATE_VECTOR_V1: {
+                               NDR_CHECK(ndr_push_unique_ptr(ndr, r->udv1));
                        break; }
 
-                       case DRSUAPI_DS_REPLICA_INFO_06: {
-                               NDR_CHECK(ndr_push_unique_ptr(ndr, r->i06));
+                       case DRSUAPI_DS_REPLICA_INFO_SERVER_OUTGOING_CALLS: {
+                               NDR_CHECK(ndr_push_unique_ptr(ndr, r->srvoutgoingcalls));
                        break; }
 
                        default:
@@ -12346,27 +12705,27 @@ static enum ndr_err_code ndr_push_drsuapi_DsReplicaInfo(struct ndr_push *ndr, in
                                }
                        break;
 
-                       case DRSUAPI_DS_REPLICA_INFO_NEIGHBORS02:
-                               if (r->neighbours02) {
-                                       NDR_CHECK(ndr_push_drsuapi_DsReplicaNeighbourCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->neighbours02));
+                       case DRSUAPI_DS_REPLICA_INFO_REPSTO:
+                               if (r->repsto) {
+                                       NDR_CHECK(ndr_push_drsuapi_DsReplicaNeighbourCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->repsto));
                                }
                        break;
 
-                       case DRSUAPI_DS_REPLICA_INFO_CONNECTIONS04:
-                               if (r->connections04) {
-                                       NDR_CHECK(ndr_push_drsuapi_DsReplicaConnection04Ctr(ndr, NDR_SCALARS, r->connections04));
+                       case DRSUAPI_DS_REPLICA_INFO_CLIENT_CONTEXTS:
+                               if (r->clientctx) {
+                                       NDR_CHECK(ndr_push_drsuapi_DsReplicaConnection04Ctr(ndr, NDR_SCALARS, r->clientctx));
                                }
                        break;
 
-                       case DRSUAPI_DS_REPLICA_INFO_CURSORS05:
-                               if (r->cursors05) {
-                                       NDR_CHECK(ndr_push_drsuapi_DsReplicaCursorCtrEx(ndr, NDR_SCALARS, r->cursors05));
+                       case DRSUAPI_DS_REPLICA_INFO_UPTODATE_VECTOR_V1:
+                               if (r->udv1) {
+                                       NDR_CHECK(ndr_push_drsuapi_DsReplicaCursorCtrEx(ndr, NDR_SCALARS, r->udv1));
                                }
                        break;
 
-                       case DRSUAPI_DS_REPLICA_INFO_06:
-                               if (r->i06) {
-                                       NDR_CHECK(ndr_push_drsuapi_DsReplica06Ctr(ndr, NDR_SCALARS|NDR_BUFFERS, r->i06));
+                       case DRSUAPI_DS_REPLICA_INFO_SERVER_OUTGOING_CALLS:
+                               if (r->srvoutgoingcalls) {
+                                       NDR_CHECK(ndr_push_drsuapi_DsReplica06Ctr(ndr, NDR_SCALARS|NDR_BUFFERS, r->srvoutgoingcalls));
                                }
                        break;
 
@@ -12392,10 +12751,10 @@ static enum ndr_err_code ndr_pull_drsuapi_DsReplicaInfo(struct ndr_pull *ndr, in
        TALLOC_CTX *_mem_save_cursors3_0;
        TALLOC_CTX *_mem_save_objmetadata2_0;
        TALLOC_CTX *_mem_save_attrvalmetadata2_0;
-       TALLOC_CTX *_mem_save_neighbours02_0;
-       TALLOC_CTX *_mem_save_connections04_0;
-       TALLOC_CTX *_mem_save_cursors05_0;
-       TALLOC_CTX *_mem_save_i06_0;
+       TALLOC_CTX *_mem_save_repsto_0;
+       TALLOC_CTX *_mem_save_clientctx_0;
+       TALLOC_CTX *_mem_save_udv1_0;
+       TALLOC_CTX *_mem_save_srvoutgoingcalls_0;
        level = ndr_pull_get_switch_value(ndr, r);
        if (ndr_flags & NDR_SCALARS) {
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
@@ -12514,43 +12873,43 @@ static enum ndr_err_code ndr_pull_drsuapi_DsReplicaInfo(struct ndr_pull *ndr, in
                                }
                        break; }
 
-                       case DRSUAPI_DS_REPLICA_INFO_NEIGHBORS02: {
-                               uint32_t _ptr_neighbours02;
-                               NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_neighbours02));
-                               if (_ptr_neighbours02) {
-                                       NDR_PULL_ALLOC(ndr, r->neighbours02);
+                       case DRSUAPI_DS_REPLICA_INFO_REPSTO: {
+                               uint32_t _ptr_repsto;
+                               NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_repsto));
+                               if (_ptr_repsto) {
+                                       NDR_PULL_ALLOC(ndr, r->repsto);
                                } else {
-                                       r->neighbours02 = NULL;
+                                       r->repsto = NULL;
                                }
                        break; }
 
-                       case DRSUAPI_DS_REPLICA_INFO_CONNECTIONS04: {
-                               uint32_t _ptr_connections04;
-                               NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_connections04));
-                               if (_ptr_connections04) {
-                                       NDR_PULL_ALLOC(ndr, r->connections04);
+                       case DRSUAPI_DS_REPLICA_INFO_CLIENT_CONTEXTS: {
+                               uint32_t _ptr_clientctx;
+                               NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_clientctx));
+                               if (_ptr_clientctx) {
+                                       NDR_PULL_ALLOC(ndr, r->clientctx);
                                } else {
-                                       r->connections04 = NULL;
+                                       r->clientctx = NULL;
                                }
                        break; }
 
-                       case DRSUAPI_DS_REPLICA_INFO_CURSORS05: {
-                               uint32_t _ptr_cursors05;
-                               NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_cursors05));
-                               if (_ptr_cursors05) {
-                                       NDR_PULL_ALLOC(ndr, r->cursors05);
+                       case DRSUAPI_DS_REPLICA_INFO_UPTODATE_VECTOR_V1: {
+                               uint32_t _ptr_udv1;
+                               NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_udv1));
+                               if (_ptr_udv1) {
+                                       NDR_PULL_ALLOC(ndr, r->udv1);
                                } else {
-                                       r->cursors05 = NULL;
+                                       r->udv1 = NULL;
                                }
                        break; }
 
-                       case DRSUAPI_DS_REPLICA_INFO_06: {
-                               uint32_t _ptr_i06;
-                               NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_i06));
-                               if (_ptr_i06) {
-                                       NDR_PULL_ALLOC(ndr, r->i06);
+                       case DRSUAPI_DS_REPLICA_INFO_SERVER_OUTGOING_CALLS: {
+                               uint32_t _ptr_srvoutgoingcalls;
+                               NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_srvoutgoingcalls));
+                               if (_ptr_srvoutgoingcalls) {
+                                       NDR_PULL_ALLOC(ndr, r->srvoutgoingcalls);
                                } else {
-                                       r->i06 = NULL;
+                                       r->srvoutgoingcalls = NULL;
                                }
                        break; }
 
@@ -12659,39 +13018,39 @@ static enum ndr_err_code ndr_pull_drsuapi_DsReplicaInfo(struct ndr_pull *ndr, in
                                }
                        break;
 
-                       case DRSUAPI_DS_REPLICA_INFO_NEIGHBORS02:
-                               if (r->neighbours02) {
-                                       _mem_save_neighbours02_0 = NDR_PULL_GET_MEM_CTX(ndr);
-                                       NDR_PULL_SET_MEM_CTX(ndr, r->neighbours02, 0);
-                                       NDR_CHECK(ndr_pull_drsuapi_DsReplicaNeighbourCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->neighbours02));
-                                       NDR_PULL_SET_MEM_CTX(ndr, _mem_save_neighbours02_0, 0);
+                       case DRSUAPI_DS_REPLICA_INFO_REPSTO:
+                               if (r->repsto) {
+                                       _mem_save_repsto_0 = NDR_PULL_GET_MEM_CTX(ndr);
+                                       NDR_PULL_SET_MEM_CTX(ndr, r->repsto, 0);
+                                       NDR_CHECK(ndr_pull_drsuapi_DsReplicaNeighbourCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->repsto));
+                                       NDR_PULL_SET_MEM_CTX(ndr, _mem_save_repsto_0, 0);
                                }
                        break;
 
-                       case DRSUAPI_DS_REPLICA_INFO_CONNECTIONS04:
-                               if (r->connections04) {
-                                       _mem_save_connections04_0 = NDR_PULL_GET_MEM_CTX(ndr);
-                                       NDR_PULL_SET_MEM_CTX(ndr, r->connections04, 0);
-                                       NDR_CHECK(ndr_pull_drsuapi_DsReplicaConnection04Ctr(ndr, NDR_SCALARS, r->connections04));
-                                       NDR_PULL_SET_MEM_CTX(ndr, _mem_save_connections04_0, 0);
+                       case DRSUAPI_DS_REPLICA_INFO_CLIENT_CONTEXTS:
+                               if (r->clientctx) {
+                                       _mem_save_clientctx_0 = NDR_PULL_GET_MEM_CTX(ndr);
+                                       NDR_PULL_SET_MEM_CTX(ndr, r->clientctx, 0);
+                                       NDR_CHECK(ndr_pull_drsuapi_DsReplicaConnection04Ctr(ndr, NDR_SCALARS, r->clientctx));
+                                       NDR_PULL_SET_MEM_CTX(ndr, _mem_save_clientctx_0, 0);
                                }
                        break;
 
-                       case DRSUAPI_DS_REPLICA_INFO_CURSORS05:
-                               if (r->cursors05) {
-                                       _mem_save_cursors05_0 = NDR_PULL_GET_MEM_CTX(ndr);
-                                       NDR_PULL_SET_MEM_CTX(ndr, r->cursors05, 0);
-                                       NDR_CHECK(ndr_pull_drsuapi_DsReplicaCursorCtrEx(ndr, NDR_SCALARS, r->cursors05));
-                                       NDR_PULL_SET_MEM_CTX(ndr, _mem_save_cursors05_0, 0);
+                       case DRSUAPI_DS_REPLICA_INFO_UPTODATE_VECTOR_V1:
+                               if (r->udv1) {
+                                       _mem_save_udv1_0 = NDR_PULL_GET_MEM_CTX(ndr);
+                                       NDR_PULL_SET_MEM_CTX(ndr, r->udv1, 0);
+                                       NDR_CHECK(ndr_pull_drsuapi_DsReplicaCursorCtrEx(ndr, NDR_SCALARS, r->udv1));
+                                       NDR_PULL_SET_MEM_CTX(ndr, _mem_save_udv1_0, 0);
                                }
                        break;
 
-                       case DRSUAPI_DS_REPLICA_INFO_06:
-                               if (r->i06) {
-                                       _mem_save_i06_0 = NDR_PULL_GET_MEM_CTX(ndr);
-                                       NDR_PULL_SET_MEM_CTX(ndr, r->i06, 0);
-                                       NDR_CHECK(ndr_pull_drsuapi_DsReplica06Ctr(ndr, NDR_SCALARS|NDR_BUFFERS, r->i06));
-                                       NDR_PULL_SET_MEM_CTX(ndr, _mem_save_i06_0, 0);
+                       case DRSUAPI_DS_REPLICA_INFO_SERVER_OUTGOING_CALLS:
+                               if (r->srvoutgoingcalls) {
+                                       _mem_save_srvoutgoingcalls_0 = NDR_PULL_GET_MEM_CTX(ndr);
+                                       NDR_PULL_SET_MEM_CTX(ndr, r->srvoutgoingcalls, 0);
+                                       NDR_CHECK(ndr_pull_drsuapi_DsReplica06Ctr(ndr, NDR_SCALARS|NDR_BUFFERS, r->srvoutgoingcalls));
+                                       NDR_PULL_SET_MEM_CTX(ndr, _mem_save_srvoutgoingcalls_0, 0);
                                }
                        break;
 
@@ -12807,38 +13166,38 @@ _PUBLIC_ void ndr_print_drsuapi_DsReplicaInfo(struct ndr_print *ndr, const char
                        ndr->depth--;
                break;
 
-               case DRSUAPI_DS_REPLICA_INFO_NEIGHBORS02:
-                       ndr_print_ptr(ndr, "neighbours02", r->neighbours02);
+               case DRSUAPI_DS_REPLICA_INFO_REPSTO:
+                       ndr_print_ptr(ndr, "repsto", r->repsto);
                        ndr->depth++;
-                       if (r->neighbours02) {
-                               ndr_print_drsuapi_DsReplicaNeighbourCtr(ndr, "neighbours02", r->neighbours02);
+                       if (r->repsto) {
+                               ndr_print_drsuapi_DsReplicaNeighbourCtr(ndr, "repsto", r->repsto);
                        }
                        ndr->depth--;
                break;
 
-               case DRSUAPI_DS_REPLICA_INFO_CONNECTIONS04:
-                       ndr_print_ptr(ndr, "connections04", r->connections04);
+               case DRSUAPI_DS_REPLICA_INFO_CLIENT_CONTEXTS:
+                       ndr_print_ptr(ndr, "clientctx", r->clientctx);
                        ndr->depth++;
-                       if (r->connections04) {
-                               ndr_print_drsuapi_DsReplicaConnection04Ctr(ndr, "connections04", r->connections04);
+                       if (r->clientctx) {
+                               ndr_print_drsuapi_DsReplicaConnection04Ctr(ndr, "clientctx", r->clientctx);
                        }
                        ndr->depth--;
                break;
 
-               case DRSUAPI_DS_REPLICA_INFO_CURSORS05:
-                       ndr_print_ptr(ndr, "cursors05", r->cursors05);
+               case DRSUAPI_DS_REPLICA_INFO_UPTODATE_VECTOR_V1:
+                       ndr_print_ptr(ndr, "udv1", r->udv1);
                        ndr->depth++;
-                       if (r->cursors05) {
-                               ndr_print_drsuapi_DsReplicaCursorCtrEx(ndr, "cursors05", r->cursors05);
+                       if (r->udv1) {
+                               ndr_print_drsuapi_DsReplicaCursorCtrEx(ndr, "udv1", r->udv1);
                        }
                        ndr->depth--;
                break;
 
-               case DRSUAPI_DS_REPLICA_INFO_06:
-                       ndr_print_ptr(ndr, "i06", r->i06);
+               case DRSUAPI_DS_REPLICA_INFO_SERVER_OUTGOING_CALLS:
+                       ndr_print_ptr(ndr, "srvoutgoingcalls", r->srvoutgoingcalls);
                        ndr->depth++;
-                       if (r->i06) {
-                               ndr_print_drsuapi_DsReplica06Ctr(ndr, "i06", r->i06);
+                       if (r->srvoutgoingcalls) {
+                               ndr_print_drsuapi_DsReplica06Ctr(ndr, "srvoutgoingcalls", r->srvoutgoingcalls);
                        }
                        ndr->depth--;
                break;
@@ -12852,7 +13211,7 @@ static enum ndr_err_code ndr_push_drsuapi_DsGetMemberships2Ctr(struct ndr_push *
 {
        if (ndr_flags & NDR_SCALARS) {
                int level = ndr_push_get_switch_value(ndr, r);
-               NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, level));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
                NDR_CHECK(ndr_push_union_align(ndr, 5));
                switch (level) {
                        case 1: {
@@ -12880,10 +13239,10 @@ static enum ndr_err_code ndr_push_drsuapi_DsGetMemberships2Ctr(struct ndr_push *
 static enum ndr_err_code ndr_pull_drsuapi_DsGetMemberships2Ctr(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsGetMemberships2Ctr *r)
 {
        int level;
-       int32_t _level;
+       uint32_t _level;
        level = ndr_pull_get_switch_value(ndr, r);
        if (ndr_flags & NDR_SCALARS) {
-               NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &_level));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
                if (_level != level) {
                        return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
                }
@@ -13038,7 +13397,7 @@ static enum ndr_err_code ndr_push_drsuapi_DsGetMemberships2Request(struct ndr_pu
 {
        if (ndr_flags & NDR_SCALARS) {
                int level = ndr_push_get_switch_value(ndr, r);
-               NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, level));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
                NDR_CHECK(ndr_push_union_align(ndr, 5));
                switch (level) {
                        case 1: {
@@ -13066,10 +13425,10 @@ static enum ndr_err_code ndr_push_drsuapi_DsGetMemberships2Request(struct ndr_pu
 static enum ndr_err_code ndr_pull_drsuapi_DsGetMemberships2Request(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsGetMemberships2Request *r)
 {
        int level;
-       int32_t _level;
+       uint32_t _level;
        level = ndr_pull_get_switch_value(ndr, r);
        if (ndr_flags & NDR_SCALARS) {
-               NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &_level));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
                if (_level != level) {
                        return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
                }
@@ -13153,7 +13512,7 @@ static enum ndr_err_code ndr_push_drsuapi_QuerySitesByCostCtr1(struct ndr_push *
                NDR_CHECK(ndr_push_align(ndr, 5));
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_info));
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->info));
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
                NDR_CHECK(ndr_push_trailer_align(ndr, 5));
        }
        if (ndr_flags & NDR_BUFFERS) {
@@ -13185,7 +13544,7 @@ static enum ndr_err_code ndr_pull_drsuapi_QuerySitesByCostCtr1(struct ndr_pull *
                } else {
                        r->info = NULL;
                }
-               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags_reserved));
                NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
        }
        if (ndr_flags & NDR_BUFFERS) {
@@ -13230,7 +13589,7 @@ _PUBLIC_ void ndr_print_drsuapi_QuerySitesByCostCtr1(struct ndr_print *ndr, cons
                ndr->depth--;
        }
        ndr->depth--;
-       ndr_print_uint32(ndr, "unknown", r->unknown);
+       ndr_print_uint32(ndr, "flags_reserved", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->flags_reserved);
        ndr->depth--;
 }
 
@@ -13238,7 +13597,7 @@ static enum ndr_err_code ndr_push_drsuapi_QuerySitesByCostCtr(struct ndr_push *n
 {
        if (ndr_flags & NDR_SCALARS) {
                int level = ndr_push_get_switch_value(ndr, r);
-               NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, level));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
                NDR_CHECK(ndr_push_union_align(ndr, 5));
                switch (level) {
                        case 1: {
@@ -13266,10 +13625,10 @@ static enum ndr_err_code ndr_push_drsuapi_QuerySitesByCostCtr(struct ndr_push *n
 static enum ndr_err_code ndr_pull_drsuapi_QuerySitesByCostCtr(struct ndr_pull *ndr, int ndr_flags, union drsuapi_QuerySitesByCostCtr *r)
 {
        int level;
-       int32_t _level;
+       uint32_t _level;
        level = ndr_pull_get_switch_value(ndr, r);
        if (ndr_flags & NDR_SCALARS) {
-               NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &_level));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
                if (_level != level) {
                        return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
                }
@@ -13469,7 +13828,7 @@ static enum ndr_err_code ndr_push_drsuapi_QuerySitesByCostRequest(struct ndr_pus
 {
        if (ndr_flags & NDR_SCALARS) {
                int level = ndr_push_get_switch_value(ndr, r);
-               NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, level));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
                NDR_CHECK(ndr_push_union_align(ndr, 5));
                switch (level) {
                        case 1: {
@@ -13497,10 +13856,10 @@ static enum ndr_err_code ndr_push_drsuapi_QuerySitesByCostRequest(struct ndr_pus
 static enum ndr_err_code ndr_pull_drsuapi_QuerySitesByCostRequest(struct ndr_pull *ndr, int ndr_flags, union drsuapi_QuerySitesByCostRequest *r)
 {
        int level;
-       int32_t _level;
+       uint32_t _level;
        level = ndr_pull_get_switch_value(ndr, r);
        if (ndr_flags & NDR_SCALARS) {
-               NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &_level));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
                if (_level != level) {
                        return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
                }
@@ -13756,9 +14115,12 @@ static enum ndr_err_code ndr_push_drsuapi_DsReplicaSync(struct ndr_push *ndr, in
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
                }
                NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
-               NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->in.level));
-               NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.req, r->in.level));
-               NDR_CHECK(ndr_push_drsuapi_DsReplicaSyncRequest(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.req));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
+               if (r->in.req == NULL) {
+                       return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
+               }
+               NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.req, r->in.level));
+               NDR_CHECK(ndr_push_drsuapi_DsReplicaSyncRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
        }
        if (flags & NDR_OUT) {
                NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
@@ -13769,6 +14131,7 @@ static enum ndr_err_code ndr_push_drsuapi_DsReplicaSync(struct ndr_push *ndr, in
 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaSync(struct ndr_pull *ndr, int flags, struct drsuapi_DsReplicaSync *r)
 {
        TALLOC_CTX *_mem_save_bind_handle_0;
+       TALLOC_CTX *_mem_save_req_0;
        if (flags & NDR_IN) {
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
                        NDR_PULL_ALLOC(ndr, r->in.bind_handle);
@@ -13777,9 +14140,15 @@ static enum ndr_err_code ndr_pull_drsuapi_DsReplicaSync(struct ndr_pull *ndr, in
                NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
                NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
-               NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->in.level));
-               NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.req, r->in.level));
-               NDR_CHECK(ndr_pull_drsuapi_DsReplicaSyncRequest(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.req));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
+               if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
+                       NDR_PULL_ALLOC(ndr, r->in.req);
+               }
+               _mem_save_req_0 = NDR_PULL_GET_MEM_CTX(ndr);
+               NDR_PULL_SET_MEM_CTX(ndr, r->in.req, LIBNDR_FLAG_REF_ALLOC);
+               NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.req, r->in.level));
+               NDR_CHECK(ndr_pull_drsuapi_DsReplicaSyncRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
+               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_req_0, LIBNDR_FLAG_REF_ALLOC);
        }
        if (flags & NDR_OUT) {
                NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
@@ -13801,9 +14170,12 @@ _PUBLIC_ void ndr_print_drsuapi_DsReplicaSync(struct ndr_print *ndr, const char
                ndr->depth++;
                ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
                ndr->depth--;
-               ndr_print_int32(ndr, "level", r->in.level);
-               ndr_print_set_switch_value(ndr, &r->in.req, r->in.level);
-               ndr_print_drsuapi_DsReplicaSyncRequest(ndr, "req", &r->in.req);
+               ndr_print_uint32(ndr, "level", r->in.level);
+               ndr_print_ptr(ndr, "req", r->in.req);
+               ndr->depth++;
+               ndr_print_set_switch_value(ndr, r->in.req, r->in.level);
+               ndr_print_drsuapi_DsReplicaSyncRequest(ndr, "req", r->in.req);
+               ndr->depth--;
                ndr->depth--;
        }
        if (flags & NDR_OUT) {
@@ -13822,7 +14194,7 @@ static enum ndr_err_code ndr_push_drsuapi_DsGetNCChanges(struct ndr_push *ndr, i
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
                }
                NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
-               NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->in.level));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
                if (r->in.req == NULL) {
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
                }
@@ -13833,7 +14205,7 @@ static enum ndr_err_code ndr_push_drsuapi_DsGetNCChanges(struct ndr_push *ndr, i
                if (r->out.level_out == NULL) {
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
                }
-               NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, *r->out.level_out));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.level_out));
                if (r->out.ctr == NULL) {
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
                }
@@ -13860,7 +14232,7 @@ static enum ndr_err_code ndr_pull_drsuapi_DsGetNCChanges(struct ndr_pull *ndr, i
                NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
                NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
-               NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->in.level));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
                        NDR_PULL_ALLOC(ndr, r->in.req);
                }
@@ -13880,7 +14252,7 @@ static enum ndr_err_code ndr_pull_drsuapi_DsGetNCChanges(struct ndr_pull *ndr, i
                }
                _mem_save_level_out_0 = NDR_PULL_GET_MEM_CTX(ndr);
                NDR_PULL_SET_MEM_CTX(ndr, r->out.level_out, LIBNDR_FLAG_REF_ALLOC);
-               NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, r->out.level_out));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.level_out));
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level_out_0, LIBNDR_FLAG_REF_ALLOC);
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
                        NDR_PULL_ALLOC(ndr, r->out.ctr);
@@ -13909,7 +14281,7 @@ _PUBLIC_ void ndr_print_drsuapi_DsGetNCChanges(struct ndr_print *ndr, const char
                ndr->depth++;
                ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
                ndr->depth--;
-               ndr_print_int32(ndr, "level", r->in.level);
+               ndr_print_uint32(ndr, "level", r->in.level);
                ndr_print_ptr(ndr, "req", r->in.req);
                ndr->depth++;
                ndr_print_set_switch_value(ndr, r->in.req, r->in.level);
@@ -13922,7 +14294,7 @@ _PUBLIC_ void ndr_print_drsuapi_DsGetNCChanges(struct ndr_print *ndr, const char
                ndr->depth++;
                ndr_print_ptr(ndr, "level_out", r->out.level_out);
                ndr->depth++;
-               ndr_print_int32(ndr, "level_out", *r->out.level_out);
+               ndr_print_uint32(ndr, "level_out", *r->out.level_out);
                ndr->depth--;
                ndr_print_ptr(ndr, "ctr", r->out.ctr);
                ndr->depth++;
@@ -13942,7 +14314,7 @@ static enum ndr_err_code ndr_push_drsuapi_DsReplicaUpdateRefs(struct ndr_push *n
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
                }
                NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
-               NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->in.level));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
                NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.req, r->in.level));
                NDR_CHECK(ndr_push_drsuapi_DsReplicaUpdateRefsRequest(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.req));
        }
@@ -13963,7 +14335,7 @@ static enum ndr_err_code ndr_pull_drsuapi_DsReplicaUpdateRefs(struct ndr_pull *n
                NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
                NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
-               NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->in.level));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
                NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.req, r->in.level));
                NDR_CHECK(ndr_pull_drsuapi_DsReplicaUpdateRefsRequest(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.req));
        }
@@ -13987,7 +14359,7 @@ _PUBLIC_ void ndr_print_drsuapi_DsReplicaUpdateRefs(struct ndr_print *ndr, const
                ndr->depth++;
                ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
                ndr->depth--;
-               ndr_print_int32(ndr, "level", r->in.level);
+               ndr_print_uint32(ndr, "level", r->in.level);
                ndr_print_set_switch_value(ndr, &r->in.req, r->in.level);
                ndr_print_drsuapi_DsReplicaUpdateRefsRequest(ndr, "req", &r->in.req);
                ndr->depth--;
@@ -14008,7 +14380,7 @@ static enum ndr_err_code ndr_push_drsuapi_DsReplicaAdd(struct ndr_push *ndr, int
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
                }
                NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
-               NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->in.level));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
                NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.req, r->in.level));
                NDR_CHECK(ndr_push_drsuapi_DsReplicaAddRequest(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.req));
        }
@@ -14029,7 +14401,7 @@ static enum ndr_err_code ndr_pull_drsuapi_DsReplicaAdd(struct ndr_pull *ndr, int
                NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
                NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
-               NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->in.level));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
                NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.req, r->in.level));
                NDR_CHECK(ndr_pull_drsuapi_DsReplicaAddRequest(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.req));
        }
@@ -14053,7 +14425,7 @@ _PUBLIC_ void ndr_print_drsuapi_DsReplicaAdd(struct ndr_print *ndr, const char *
                ndr->depth++;
                ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
                ndr->depth--;
-               ndr_print_int32(ndr, "level", r->in.level);
+               ndr_print_uint32(ndr, "level", r->in.level);
                ndr_print_set_switch_value(ndr, &r->in.req, r->in.level);
                ndr_print_drsuapi_DsReplicaAddRequest(ndr, "req", &r->in.req);
                ndr->depth--;
@@ -14074,7 +14446,7 @@ static enum ndr_err_code ndr_push_drsuapi_DsReplicaDel(struct ndr_push *ndr, int
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
                }
                NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
-               NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->in.level));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
                NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.req, r->in.level));
                NDR_CHECK(ndr_push_drsuapi_DsReplicaDelRequest(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.req));
        }
@@ -14095,7 +14467,7 @@ static enum ndr_err_code ndr_pull_drsuapi_DsReplicaDel(struct ndr_pull *ndr, int
                NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
                NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
-               NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->in.level));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
                NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.req, r->in.level));
                NDR_CHECK(ndr_pull_drsuapi_DsReplicaDelRequest(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.req));
        }
@@ -14119,7 +14491,7 @@ _PUBLIC_ void ndr_print_drsuapi_DsReplicaDel(struct ndr_print *ndr, const char *
                ndr->depth++;
                ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
                ndr->depth--;
-               ndr_print_int32(ndr, "level", r->in.level);
+               ndr_print_uint32(ndr, "level", r->in.level);
                ndr_print_set_switch_value(ndr, &r->in.req, r->in.level);
                ndr_print_drsuapi_DsReplicaDelRequest(ndr, "req", &r->in.req);
                ndr->depth--;
@@ -14140,7 +14512,7 @@ static enum ndr_err_code ndr_push_drsuapi_DsReplicaMod(struct ndr_push *ndr, int
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
                }
                NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
-               NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->in.level));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
                NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.req, r->in.level));
                NDR_CHECK(ndr_push_drsuapi_DsReplicaModRequest(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.req));
        }
@@ -14161,7 +14533,7 @@ static enum ndr_err_code ndr_pull_drsuapi_DsReplicaMod(struct ndr_pull *ndr, int
                NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
                NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
-               NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->in.level));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
                NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.req, r->in.level));
                NDR_CHECK(ndr_pull_drsuapi_DsReplicaModRequest(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.req));
        }
@@ -14185,7 +14557,7 @@ _PUBLIC_ void ndr_print_drsuapi_DsReplicaMod(struct ndr_print *ndr, const char *
                ndr->depth++;
                ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
                ndr->depth--;
-               ndr_print_int32(ndr, "level", r->in.level);
+               ndr_print_uint32(ndr, "level", r->in.level);
                ndr_print_set_switch_value(ndr, &r->in.req, r->in.level);
                ndr_print_drsuapi_DsReplicaModRequest(ndr, "req", &r->in.req);
                ndr->depth--;
@@ -14247,7 +14619,7 @@ static enum ndr_err_code ndr_push_drsuapi_DsGetMemberships(struct ndr_push *ndr,
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
                }
                NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
-               NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->in.level));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
                if (r->in.req == NULL) {
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
                }
@@ -14258,7 +14630,7 @@ static enum ndr_err_code ndr_push_drsuapi_DsGetMemberships(struct ndr_push *ndr,
                if (r->out.level_out == NULL) {
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
                }
-               NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, *r->out.level_out));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.level_out));
                if (r->out.ctr == NULL) {
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
                }
@@ -14285,7 +14657,7 @@ static enum ndr_err_code ndr_pull_drsuapi_DsGetMemberships(struct ndr_pull *ndr,
                NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
                NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
-               NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->in.level));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
                        NDR_PULL_ALLOC(ndr, r->in.req);
                }
@@ -14305,7 +14677,7 @@ static enum ndr_err_code ndr_pull_drsuapi_DsGetMemberships(struct ndr_pull *ndr,
                }
                _mem_save_level_out_0 = NDR_PULL_GET_MEM_CTX(ndr);
                NDR_PULL_SET_MEM_CTX(ndr, r->out.level_out, LIBNDR_FLAG_REF_ALLOC);
-               NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, r->out.level_out));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.level_out));
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level_out_0, LIBNDR_FLAG_REF_ALLOC);
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
                        NDR_PULL_ALLOC(ndr, r->out.ctr);
@@ -14334,7 +14706,7 @@ _PUBLIC_ void ndr_print_drsuapi_DsGetMemberships(struct ndr_print *ndr, const ch
                ndr->depth++;
                ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
                ndr->depth--;
-               ndr_print_int32(ndr, "level", r->in.level);
+               ndr_print_uint32(ndr, "level", r->in.level);
                ndr_print_ptr(ndr, "req", r->in.req);
                ndr->depth++;
                ndr_print_set_switch_value(ndr, r->in.req, r->in.level);
@@ -14347,7 +14719,7 @@ _PUBLIC_ void ndr_print_drsuapi_DsGetMemberships(struct ndr_print *ndr, const ch
                ndr->depth++;
                ndr_print_ptr(ndr, "level_out", r->out.level_out);
                ndr->depth++;
-               ndr_print_int32(ndr, "level_out", *r->out.level_out);
+               ndr_print_uint32(ndr, "level_out", *r->out.level_out);
                ndr->depth--;
                ndr_print_ptr(ndr, "ctr", r->out.ctr);
                ndr->depth++;
@@ -14528,7 +14900,7 @@ static enum ndr_err_code ndr_push_drsuapi_DsCrackNames(struct ndr_push *ndr, int
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
                }
                NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
-               NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->in.level));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
                if (r->in.req == NULL) {
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
                }
@@ -14539,7 +14911,7 @@ static enum ndr_err_code ndr_push_drsuapi_DsCrackNames(struct ndr_push *ndr, int
                if (r->out.level_out == NULL) {
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
                }
-               NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, *r->out.level_out));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.level_out));
                if (r->out.ctr == NULL) {
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
                }
@@ -14566,7 +14938,7 @@ static enum ndr_err_code ndr_pull_drsuapi_DsCrackNames(struct ndr_pull *ndr, int
                NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
                NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
-               NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->in.level));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
                        NDR_PULL_ALLOC(ndr, r->in.req);
                }
@@ -14586,7 +14958,7 @@ static enum ndr_err_code ndr_pull_drsuapi_DsCrackNames(struct ndr_pull *ndr, int
                }
                _mem_save_level_out_0 = NDR_PULL_GET_MEM_CTX(ndr);
                NDR_PULL_SET_MEM_CTX(ndr, r->out.level_out, LIBNDR_FLAG_REF_ALLOC);
-               NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, r->out.level_out));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.level_out));
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level_out_0, LIBNDR_FLAG_REF_ALLOC);
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
                        NDR_PULL_ALLOC(ndr, r->out.ctr);
@@ -14615,7 +14987,7 @@ _PUBLIC_ void ndr_print_drsuapi_DsCrackNames(struct ndr_print *ndr, const char *
                ndr->depth++;
                ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
                ndr->depth--;
-               ndr_print_int32(ndr, "level", r->in.level);
+               ndr_print_uint32(ndr, "level", r->in.level);
                ndr_print_ptr(ndr, "req", r->in.req);
                ndr->depth++;
                ndr_print_set_switch_value(ndr, r->in.req, r->in.level);
@@ -14628,7 +15000,7 @@ _PUBLIC_ void ndr_print_drsuapi_DsCrackNames(struct ndr_print *ndr, const char *
                ndr->depth++;
                ndr_print_ptr(ndr, "level_out", r->out.level_out);
                ndr->depth++;
-               ndr_print_int32(ndr, "level_out", *r->out.level_out);
+               ndr_print_uint32(ndr, "level_out", *r->out.level_out);
                ndr->depth--;
                ndr_print_ptr(ndr, "ctr", r->out.ctr);
                ndr->depth++;
@@ -14648,7 +15020,7 @@ static enum ndr_err_code ndr_push_drsuapi_DsWriteAccountSpn(struct ndr_push *ndr
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
                }
                NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
-               NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->in.level));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
                if (r->in.req == NULL) {
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
                }
@@ -14659,7 +15031,7 @@ static enum ndr_err_code ndr_push_drsuapi_DsWriteAccountSpn(struct ndr_push *ndr
                if (r->out.level_out == NULL) {
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
                }
-               NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, *r->out.level_out));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.level_out));
                if (r->out.res == NULL) {
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
                }
@@ -14686,7 +15058,7 @@ static enum ndr_err_code ndr_pull_drsuapi_DsWriteAccountSpn(struct ndr_pull *ndr
                NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
                NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
-               NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->in.level));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
                        NDR_PULL_ALLOC(ndr, r->in.req);
                }
@@ -14706,7 +15078,7 @@ static enum ndr_err_code ndr_pull_drsuapi_DsWriteAccountSpn(struct ndr_pull *ndr
                }
                _mem_save_level_out_0 = NDR_PULL_GET_MEM_CTX(ndr);
                NDR_PULL_SET_MEM_CTX(ndr, r->out.level_out, LIBNDR_FLAG_REF_ALLOC);
-               NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, r->out.level_out));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.level_out));
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level_out_0, LIBNDR_FLAG_REF_ALLOC);
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
                        NDR_PULL_ALLOC(ndr, r->out.res);
@@ -14735,7 +15107,7 @@ _PUBLIC_ void ndr_print_drsuapi_DsWriteAccountSpn(struct ndr_print *ndr, const c
                ndr->depth++;
                ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
                ndr->depth--;
-               ndr_print_int32(ndr, "level", r->in.level);
+               ndr_print_uint32(ndr, "level", r->in.level);
                ndr_print_ptr(ndr, "req", r->in.req);
                ndr->depth++;
                ndr_print_set_switch_value(ndr, r->in.req, r->in.level);
@@ -14748,7 +15120,7 @@ _PUBLIC_ void ndr_print_drsuapi_DsWriteAccountSpn(struct ndr_print *ndr, const c
                ndr->depth++;
                ndr_print_ptr(ndr, "level_out", r->out.level_out);
                ndr->depth++;
-               ndr_print_int32(ndr, "level_out", *r->out.level_out);
+               ndr_print_uint32(ndr, "level_out", *r->out.level_out);
                ndr->depth--;
                ndr_print_ptr(ndr, "res", r->out.res);
                ndr->depth++;
@@ -14768,7 +15140,7 @@ static enum ndr_err_code ndr_push_drsuapi_DsRemoveDSServer(struct ndr_push *ndr,
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
                }
                NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
-               NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->in.level));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
                if (r->in.req == NULL) {
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
                }
@@ -14779,7 +15151,7 @@ static enum ndr_err_code ndr_push_drsuapi_DsRemoveDSServer(struct ndr_push *ndr,
                if (r->out.level_out == NULL) {
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
                }
-               NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, *r->out.level_out));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.level_out));
                if (r->out.res == NULL) {
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
                }
@@ -14806,7 +15178,7 @@ static enum ndr_err_code ndr_pull_drsuapi_DsRemoveDSServer(struct ndr_pull *ndr,
                NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
                NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
-               NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->in.level));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
                        NDR_PULL_ALLOC(ndr, r->in.req);
                }
@@ -14826,7 +15198,7 @@ static enum ndr_err_code ndr_pull_drsuapi_DsRemoveDSServer(struct ndr_pull *ndr,
                }
                _mem_save_level_out_0 = NDR_PULL_GET_MEM_CTX(ndr);
                NDR_PULL_SET_MEM_CTX(ndr, r->out.level_out, LIBNDR_FLAG_REF_ALLOC);
-               NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, r->out.level_out));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.level_out));
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level_out_0, LIBNDR_FLAG_REF_ALLOC);
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
                        NDR_PULL_ALLOC(ndr, r->out.res);
@@ -14855,7 +15227,7 @@ _PUBLIC_ void ndr_print_drsuapi_DsRemoveDSServer(struct ndr_print *ndr, const ch
                ndr->depth++;
                ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
                ndr->depth--;
-               ndr_print_int32(ndr, "level", r->in.level);
+               ndr_print_uint32(ndr, "level", r->in.level);
                ndr_print_ptr(ndr, "req", r->in.req);
                ndr->depth++;
                ndr_print_set_switch_value(ndr, r->in.req, r->in.level);
@@ -14868,7 +15240,7 @@ _PUBLIC_ void ndr_print_drsuapi_DsRemoveDSServer(struct ndr_print *ndr, const ch
                ndr->depth++;
                ndr_print_ptr(ndr, "level_out", r->out.level_out);
                ndr->depth++;
-               ndr_print_int32(ndr, "level_out", *r->out.level_out);
+               ndr_print_uint32(ndr, "level_out", *r->out.level_out);
                ndr->depth--;
                ndr_print_ptr(ndr, "res", r->out.res);
                ndr->depth++;
@@ -15049,7 +15421,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsAddEntry(struct ndr_push *ndr, int
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
                }
                NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
-               NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->in.level));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
                if (r->in.req == NULL) {
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
                }
@@ -15060,7 +15432,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsAddEntry(struct ndr_push *ndr, int
                if (r->out.level_out == NULL) {
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
                }
-               NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, *r->out.level_out));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.level_out));
                if (r->out.ctr == NULL) {
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
                }
@@ -15087,7 +15459,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsAddEntry(struct ndr_pull *ndr, int
                NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
                NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
-               NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->in.level));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
                        NDR_PULL_ALLOC(ndr, r->in.req);
                }
@@ -15107,7 +15479,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsAddEntry(struct ndr_pull *ndr, int
                }
                _mem_save_level_out_0 = NDR_PULL_GET_MEM_CTX(ndr);
                NDR_PULL_SET_MEM_CTX(ndr, r->out.level_out, LIBNDR_FLAG_REF_ALLOC);
-               NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, r->out.level_out));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.level_out));
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level_out_0, LIBNDR_FLAG_REF_ALLOC);
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
                        NDR_PULL_ALLOC(ndr, r->out.ctr);
@@ -15136,7 +15508,7 @@ _PUBLIC_ void ndr_print_drsuapi_DsAddEntry(struct ndr_print *ndr, const char *na
                ndr->depth++;
                ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
                ndr->depth--;
-               ndr_print_int32(ndr, "level", r->in.level);
+               ndr_print_uint32(ndr, "level", r->in.level);
                ndr_print_ptr(ndr, "req", r->in.req);
                ndr->depth++;
                ndr_print_set_switch_value(ndr, r->in.req, r->in.level);
@@ -15149,7 +15521,7 @@ _PUBLIC_ void ndr_print_drsuapi_DsAddEntry(struct ndr_print *ndr, const char *na
                ndr->depth++;
                ndr_print_ptr(ndr, "level_out", r->out.level_out);
                ndr->depth++;
-               ndr_print_int32(ndr, "level_out", *r->out.level_out);
+               ndr_print_uint32(ndr, "level_out", *r->out.level_out);
                ndr->depth--;
                ndr_print_ptr(ndr, "ctr", r->out.ctr);
                ndr->depth++;
@@ -15409,7 +15781,7 @@ static enum ndr_err_code ndr_push_drsuapi_DsGetMemberships2(struct ndr_push *ndr
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
                }
                NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
-               NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->in.level));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
                if (r->in.req == NULL) {
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
                }
@@ -15420,7 +15792,7 @@ static enum ndr_err_code ndr_push_drsuapi_DsGetMemberships2(struct ndr_push *ndr
                if (r->out.level_out == NULL) {
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
                }
-               NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, *r->out.level_out));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.level_out));
                if (r->out.ctr == NULL) {
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
                }
@@ -15447,7 +15819,7 @@ static enum ndr_err_code ndr_pull_drsuapi_DsGetMemberships2(struct ndr_pull *ndr
                NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
                NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
-               NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->in.level));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
                        NDR_PULL_ALLOC(ndr, r->in.req);
                }
@@ -15467,7 +15839,7 @@ static enum ndr_err_code ndr_pull_drsuapi_DsGetMemberships2(struct ndr_pull *ndr
                }
                _mem_save_level_out_0 = NDR_PULL_GET_MEM_CTX(ndr);
                NDR_PULL_SET_MEM_CTX(ndr, r->out.level_out, LIBNDR_FLAG_REF_ALLOC);
-               NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, r->out.level_out));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.level_out));
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level_out_0, LIBNDR_FLAG_REF_ALLOC);
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
                        NDR_PULL_ALLOC(ndr, r->out.ctr);
@@ -15496,7 +15868,7 @@ _PUBLIC_ void ndr_print_drsuapi_DsGetMemberships2(struct ndr_print *ndr, const c
                ndr->depth++;
                ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
                ndr->depth--;
-               ndr_print_int32(ndr, "level", r->in.level);
+               ndr_print_uint32(ndr, "level", r->in.level);
                ndr_print_ptr(ndr, "req", r->in.req);
                ndr->depth++;
                ndr_print_set_switch_value(ndr, r->in.req, r->in.level);
@@ -15509,7 +15881,7 @@ _PUBLIC_ void ndr_print_drsuapi_DsGetMemberships2(struct ndr_print *ndr, const c
                ndr->depth++;
                ndr_print_ptr(ndr, "level_out", r->out.level_out);
                ndr->depth++;
-               ndr_print_int32(ndr, "level_out", *r->out.level_out);
+               ndr_print_uint32(ndr, "level_out", *r->out.level_out);
                ndr->depth--;
                ndr_print_ptr(ndr, "ctr", r->out.ctr);
                ndr->depth++;
@@ -15611,7 +15983,7 @@ static enum ndr_err_code ndr_push_drsuapi_QuerySitesByCost(struct ndr_push *ndr,
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
                }
                NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
-               NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->in.level));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
                if (r->in.req == NULL) {
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
                }
@@ -15622,7 +15994,7 @@ static enum ndr_err_code ndr_push_drsuapi_QuerySitesByCost(struct ndr_push *ndr,
                if (r->out.level_out == NULL) {
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
                }
-               NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, *r->out.level_out));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.level_out));
                if (r->out.ctr == NULL) {
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
                }
@@ -15649,7 +16021,7 @@ static enum ndr_err_code ndr_pull_drsuapi_QuerySitesByCost(struct ndr_pull *ndr,
                NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
                NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
-               NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->in.level));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
                        NDR_PULL_ALLOC(ndr, r->in.req);
                }
@@ -15669,7 +16041,7 @@ static enum ndr_err_code ndr_pull_drsuapi_QuerySitesByCost(struct ndr_pull *ndr,
                }
                _mem_save_level_out_0 = NDR_PULL_GET_MEM_CTX(ndr);
                NDR_PULL_SET_MEM_CTX(ndr, r->out.level_out, LIBNDR_FLAG_REF_ALLOC);
-               NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, r->out.level_out));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.level_out));
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level_out_0, LIBNDR_FLAG_REF_ALLOC);
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
                        NDR_PULL_ALLOC(ndr, r->out.ctr);
@@ -15698,7 +16070,7 @@ _PUBLIC_ void ndr_print_drsuapi_QuerySitesByCost(struct ndr_print *ndr, const ch
                ndr->depth++;
                ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
                ndr->depth--;
-               ndr_print_int32(ndr, "level", r->in.level);
+               ndr_print_uint32(ndr, "level", r->in.level);
                ndr_print_ptr(ndr, "req", r->in.req);
                ndr->depth++;
                ndr_print_set_switch_value(ndr, r->in.req, r->in.level);
@@ -15711,7 +16083,7 @@ _PUBLIC_ void ndr_print_drsuapi_QuerySitesByCost(struct ndr_print *ndr, const ch
                ndr->depth++;
                ndr_print_ptr(ndr, "level_out", r->out.level_out);
                ndr->depth++;
-               ndr_print_int32(ndr, "level_out", *r->out.level_out);
+               ndr_print_uint32(ndr, "level_out", *r->out.level_out);
                ndr->depth--;
                ndr_print_ptr(ndr, "ctr", r->out.ctr);
                ndr->depth++;