librpc/gen_ndr
[metze/samba/wip.git] / source3 / librpc / gen_ndr / ndr_frsapi.c
diff --git a/source3/librpc/gen_ndr/ndr_frsapi.c b/source3/librpc/gen_ndr/ndr_frsapi.c
new file mode 100644 (file)
index 0000000..821165b
--- /dev/null
@@ -0,0 +1,1076 @@
+/* parser auto-generated by pidl */
+
+#include "includes.h"
+#include "librpc/gen_ndr/ndr_frsapi.h"
+
+#include "librpc/gen_ndr/ndr_misc.h"
+static enum ndr_err_code ndr_push_frsapi_InfoEnum(struct ndr_push *ndr, int ndr_flags, enum frsapi_InfoEnum r)
+{
+       NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
+       return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_frsapi_InfoEnum(struct ndr_pull *ndr, int ndr_flags, enum frsapi_InfoEnum *r)
+{
+       uint32_t v;
+       NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
+       *r = v;
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_frsapi_InfoEnum(struct ndr_print *ndr, const char *name, enum frsapi_InfoEnum r)
+{
+       const char *val = NULL;
+
+       switch (r) {
+               case FRSAPI_INFO_VERSION: val = "FRSAPI_INFO_VERSION"; break;
+               case FRSAPI_INFO_SETS: val = "FRSAPI_INFO_SETS"; break;
+               case FRSAPI_INFO_DS: val = "FRSAPI_INFO_DS"; break;
+               case FRSAPI_INFO_MEMORY: val = "FRSAPI_INFO_MEMORY"; break;
+               case FRSAPI_INFO_IDTABLE: val = "FRSAPI_INFO_IDTABLE"; break;
+               case FRSAPI_INFO_OUTLOG: val = "FRSAPI_INFO_OUTLOG"; break;
+               case FRSAPI_INFO_INLOG: val = "FRSAPI_INFO_INLOG"; break;
+               case FRSAPI_INFO_THREADS: val = "FRSAPI_INFO_THREADS"; break;
+               case FRSAPI_INFO_STAGE: val = "FRSAPI_INFO_STAGE"; break;
+               case FRSAPI_INFO_CONFIGTABLE: val = "FRSAPI_INFO_CONFIGTABLE"; break;
+       }
+       ndr_print_enum(ndr, name, "ENUM", val, r);
+}
+
+static enum ndr_err_code ndr_push_frsapi_Info(struct ndr_push *ndr, int ndr_flags, const struct frsapi_Info *r)
+{
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_push_align(ndr, 4));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
+               NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->guid));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length2));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1));
+               NDR_CHECK(ndr_push_frsapi_InfoEnum(ndr, NDR_SCALARS, r->level));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->query_counter));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->offset));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->blob_len));
+               {
+                       uint32_t _flags_save_DATA_BLOB = ndr->flags;
+                       ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
+                       {
+                               struct ndr_push *_ndr_blob;
+                               NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_blob, 0, r->length - r->offset));
+                               NDR_CHECK(ndr_push_DATA_BLOB(_ndr_blob, NDR_SCALARS, r->blob));
+                               NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_blob, 0, r->length - r->offset));
+                       }
+                       ndr->flags = _flags_save_DATA_BLOB;
+               }
+               NDR_CHECK(ndr_push_trailer_align(ndr, 4));
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_frsapi_Info(struct ndr_pull *ndr, int ndr_flags, struct frsapi_Info *r)
+{
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_pull_align(ndr, 4));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
+               NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->guid));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length2));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
+               NDR_CHECK(ndr_pull_frsapi_InfoEnum(ndr, NDR_SCALARS, &r->level));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->query_counter));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->offset));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->blob_len));
+               {
+                       uint32_t _flags_save_DATA_BLOB = ndr->flags;
+                       ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
+                       {
+                               struct ndr_pull *_ndr_blob;
+                               NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_blob, 0, r->length - r->offset));
+                               NDR_CHECK(ndr_pull_DATA_BLOB(_ndr_blob, NDR_SCALARS, &r->blob));
+                               NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_blob, 0, r->length - r->offset));
+                       }
+                       ndr->flags = _flags_save_DATA_BLOB;
+               }
+               NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_frsapi_Info(struct ndr_print *ndr, const char *name, const struct frsapi_Info *r)
+{
+       ndr_print_struct(ndr, name, "frsapi_Info");
+       ndr->depth++;
+       ndr_print_uint32(ndr, "length", r->length);
+       ndr_print_GUID(ndr, "guid", &r->guid);
+       ndr_print_uint32(ndr, "length2", r->length2);
+       ndr_print_uint32(ndr, "unknown1", r->unknown1);
+       ndr_print_frsapi_InfoEnum(ndr, "level", r->level);
+       ndr_print_uint32(ndr, "query_counter", r->query_counter);
+       ndr_print_uint32(ndr, "unknown2", r->unknown2);
+       ndr_print_uint32(ndr, "offset", r->offset);
+       ndr_print_uint32(ndr, "blob_len", r->blob_len);
+       ndr_print_DATA_BLOB(ndr, "blob", r->blob);
+       ndr->depth--;
+}
+
+static enum ndr_err_code ndr_push_frsapi_ReplicaSetType(struct ndr_push *ndr, int ndr_flags, enum frsapi_ReplicaSetType r)
+{
+       NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
+       return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_frsapi_ReplicaSetType(struct ndr_pull *ndr, int ndr_flags, enum frsapi_ReplicaSetType *r)
+{
+       uint32_t v;
+       NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
+       *r = v;
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_frsapi_ReplicaSetType(struct ndr_print *ndr, const char *name, enum frsapi_ReplicaSetType r)
+{
+       const char *val = NULL;
+
+       switch (r) {
+               case FRSAPI_REPLICA_SET_TYPE_0: val = "FRSAPI_REPLICA_SET_TYPE_0"; break;
+               case FRSAPI_REPLICA_SET_TYPE_DOMAIN: val = "FRSAPI_REPLICA_SET_TYPE_DOMAIN"; break;
+               case FRSAPI_REPLICA_SET_TYPE_DFS: val = "FRSAPI_REPLICA_SET_TYPE_DFS"; break;
+       }
+       ndr_print_enum(ndr, name, "ENUM", val, r);
+}
+
+static enum ndr_err_code ndr_push_frsapi_WriterCommandsValues(struct ndr_push *ndr, int ndr_flags, enum frsapi_WriterCommandsValues r)
+{
+       NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
+       return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_frsapi_WriterCommandsValues(struct ndr_pull *ndr, int ndr_flags, enum frsapi_WriterCommandsValues *r)
+{
+       uint32_t v;
+       NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
+       *r = v;
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_frsapi_WriterCommandsValues(struct ndr_print *ndr, const char *name, enum frsapi_WriterCommandsValues r)
+{
+       const char *val = NULL;
+
+       switch (r) {
+               case FRSAPI_WRITER_COMMAND_FREEZE: val = "FRSAPI_WRITER_COMMAND_FREEZE"; break;
+               case FRSAPI_WRITER_COMMAND_THAW: val = "FRSAPI_WRITER_COMMAND_THAW"; break;
+       }
+       ndr_print_enum(ndr, name, "ENUM", val, r);
+}
+
+static enum ndr_err_code ndr_push_FRSAPI_VERIFY_PROMOTION(struct ndr_push *ndr, int flags, const struct FRSAPI_VERIFY_PROMOTION *r)
+{
+       if (flags & NDR_IN) {
+       }
+       if (flags & NDR_OUT) {
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_FRSAPI_VERIFY_PROMOTION(struct ndr_pull *ndr, int flags, struct FRSAPI_VERIFY_PROMOTION *r)
+{
+       if (flags & NDR_IN) {
+       }
+       if (flags & NDR_OUT) {
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_FRSAPI_VERIFY_PROMOTION(struct ndr_print *ndr, const char *name, int flags, const struct FRSAPI_VERIFY_PROMOTION *r)
+{
+       ndr_print_struct(ndr, name, "FRSAPI_VERIFY_PROMOTION");
+       ndr->depth++;
+       if (flags & NDR_SET_VALUES) {
+               ndr->flags |= LIBNDR_PRINT_SET_VALUES;
+       }
+       if (flags & NDR_IN) {
+               ndr_print_struct(ndr, "in", "FRSAPI_VERIFY_PROMOTION");
+               ndr->depth++;
+               ndr->depth--;
+       }
+       if (flags & NDR_OUT) {
+               ndr_print_struct(ndr, "out", "FRSAPI_VERIFY_PROMOTION");
+               ndr->depth++;
+               ndr->depth--;
+       }
+       ndr->depth--;
+}
+
+static enum ndr_err_code ndr_push_FRSAPI_PROMOTION_STATUS(struct ndr_push *ndr, int flags, const struct FRSAPI_PROMOTION_STATUS *r)
+{
+       if (flags & NDR_IN) {
+       }
+       if (flags & NDR_OUT) {
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_FRSAPI_PROMOTION_STATUS(struct ndr_pull *ndr, int flags, struct FRSAPI_PROMOTION_STATUS *r)
+{
+       if (flags & NDR_IN) {
+       }
+       if (flags & NDR_OUT) {
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_FRSAPI_PROMOTION_STATUS(struct ndr_print *ndr, const char *name, int flags, const struct FRSAPI_PROMOTION_STATUS *r)
+{
+       ndr_print_struct(ndr, name, "FRSAPI_PROMOTION_STATUS");
+       ndr->depth++;
+       if (flags & NDR_SET_VALUES) {
+               ndr->flags |= LIBNDR_PRINT_SET_VALUES;
+       }
+       if (flags & NDR_IN) {
+               ndr_print_struct(ndr, "in", "FRSAPI_PROMOTION_STATUS");
+               ndr->depth++;
+               ndr->depth--;
+       }
+       if (flags & NDR_OUT) {
+               ndr_print_struct(ndr, "out", "FRSAPI_PROMOTION_STATUS");
+               ndr->depth++;
+               ndr->depth--;
+       }
+       ndr->depth--;
+}
+
+static enum ndr_err_code ndr_push_FRSAPI_START_DEMOTION(struct ndr_push *ndr, int flags, const struct FRSAPI_START_DEMOTION *r)
+{
+       if (flags & NDR_IN) {
+       }
+       if (flags & NDR_OUT) {
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_FRSAPI_START_DEMOTION(struct ndr_pull *ndr, int flags, struct FRSAPI_START_DEMOTION *r)
+{
+       if (flags & NDR_IN) {
+       }
+       if (flags & NDR_OUT) {
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_FRSAPI_START_DEMOTION(struct ndr_print *ndr, const char *name, int flags, const struct FRSAPI_START_DEMOTION *r)
+{
+       ndr_print_struct(ndr, name, "FRSAPI_START_DEMOTION");
+       ndr->depth++;
+       if (flags & NDR_SET_VALUES) {
+               ndr->flags |= LIBNDR_PRINT_SET_VALUES;
+       }
+       if (flags & NDR_IN) {
+               ndr_print_struct(ndr, "in", "FRSAPI_START_DEMOTION");
+               ndr->depth++;
+               ndr->depth--;
+       }
+       if (flags & NDR_OUT) {
+               ndr_print_struct(ndr, "out", "FRSAPI_START_DEMOTION");
+               ndr->depth++;
+               ndr->depth--;
+       }
+       ndr->depth--;
+}
+
+static enum ndr_err_code ndr_push_FRSAPI_COMMIT_DEMOTION(struct ndr_push *ndr, int flags, const struct FRSAPI_COMMIT_DEMOTION *r)
+{
+       if (flags & NDR_IN) {
+       }
+       if (flags & NDR_OUT) {
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_FRSAPI_COMMIT_DEMOTION(struct ndr_pull *ndr, int flags, struct FRSAPI_COMMIT_DEMOTION *r)
+{
+       if (flags & NDR_IN) {
+       }
+       if (flags & NDR_OUT) {
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_FRSAPI_COMMIT_DEMOTION(struct ndr_print *ndr, const char *name, int flags, const struct FRSAPI_COMMIT_DEMOTION *r)
+{
+       ndr_print_struct(ndr, name, "FRSAPI_COMMIT_DEMOTION");
+       ndr->depth++;
+       if (flags & NDR_SET_VALUES) {
+               ndr->flags |= LIBNDR_PRINT_SET_VALUES;
+       }
+       if (flags & NDR_IN) {
+               ndr_print_struct(ndr, "in", "FRSAPI_COMMIT_DEMOTION");
+               ndr->depth++;
+               ndr->depth--;
+       }
+       if (flags & NDR_OUT) {
+               ndr_print_struct(ndr, "out", "FRSAPI_COMMIT_DEMOTION");
+               ndr->depth++;
+               ndr->depth--;
+       }
+       ndr->depth--;
+}
+
+static enum ndr_err_code ndr_push_frsapi_SetDsPollingIntervalW(struct ndr_push *ndr, int flags, const struct frsapi_SetDsPollingIntervalW *r)
+{
+       if (flags & NDR_IN) {
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.CurrentInterval));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.DsPollingLongInterval));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.DsPollingShortInterval));
+       }
+       if (flags & NDR_OUT) {
+               NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_frsapi_SetDsPollingIntervalW(struct ndr_pull *ndr, int flags, struct frsapi_SetDsPollingIntervalW *r)
+{
+       if (flags & NDR_IN) {
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.CurrentInterval));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.DsPollingLongInterval));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.DsPollingShortInterval));
+       }
+       if (flags & NDR_OUT) {
+               NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_frsapi_SetDsPollingIntervalW(struct ndr_print *ndr, const char *name, int flags, const struct frsapi_SetDsPollingIntervalW *r)
+{
+       ndr_print_struct(ndr, name, "frsapi_SetDsPollingIntervalW");
+       ndr->depth++;
+       if (flags & NDR_SET_VALUES) {
+               ndr->flags |= LIBNDR_PRINT_SET_VALUES;
+       }
+       if (flags & NDR_IN) {
+               ndr_print_struct(ndr, "in", "frsapi_SetDsPollingIntervalW");
+               ndr->depth++;
+               ndr_print_uint32(ndr, "CurrentInterval", r->in.CurrentInterval);
+               ndr_print_uint32(ndr, "DsPollingLongInterval", r->in.DsPollingLongInterval);
+               ndr_print_uint32(ndr, "DsPollingShortInterval", r->in.DsPollingShortInterval);
+               ndr->depth--;
+       }
+       if (flags & NDR_OUT) {
+               ndr_print_struct(ndr, "out", "frsapi_SetDsPollingIntervalW");
+               ndr->depth++;
+               ndr_print_WERROR(ndr, "result", r->out.result);
+               ndr->depth--;
+       }
+       ndr->depth--;
+}
+
+static enum ndr_err_code ndr_push_frsapi_GetDsPollingIntervalW(struct ndr_push *ndr, int flags, const struct frsapi_GetDsPollingIntervalW *r)
+{
+       if (flags & NDR_IN) {
+       }
+       if (flags & NDR_OUT) {
+               if (r->out.CurrentInterval == NULL) {
+                       return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
+               }
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.CurrentInterval));
+               if (r->out.DsPollingLongInterval == NULL) {
+                       return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
+               }
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.DsPollingLongInterval));
+               if (r->out.DsPollingShortInterval == NULL) {
+                       return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
+               }
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.DsPollingShortInterval));
+               NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_frsapi_GetDsPollingIntervalW(struct ndr_pull *ndr, int flags, struct frsapi_GetDsPollingIntervalW *r)
+{
+       TALLOC_CTX *_mem_save_CurrentInterval_0;
+       TALLOC_CTX *_mem_save_DsPollingLongInterval_0;
+       TALLOC_CTX *_mem_save_DsPollingShortInterval_0;
+       if (flags & NDR_IN) {
+               ZERO_STRUCT(r->out);
+
+               NDR_PULL_ALLOC(ndr, r->out.CurrentInterval);
+               ZERO_STRUCTP(r->out.CurrentInterval);
+               NDR_PULL_ALLOC(ndr, r->out.DsPollingLongInterval);
+               ZERO_STRUCTP(r->out.DsPollingLongInterval);
+               NDR_PULL_ALLOC(ndr, r->out.DsPollingShortInterval);
+               ZERO_STRUCTP(r->out.DsPollingShortInterval);
+       }
+       if (flags & NDR_OUT) {
+               if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
+                       NDR_PULL_ALLOC(ndr, r->out.CurrentInterval);
+               }
+               _mem_save_CurrentInterval_0 = NDR_PULL_GET_MEM_CTX(ndr);
+               NDR_PULL_SET_MEM_CTX(ndr, r->out.CurrentInterval, LIBNDR_FLAG_REF_ALLOC);
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.CurrentInterval));
+               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_CurrentInterval_0, LIBNDR_FLAG_REF_ALLOC);
+               if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
+                       NDR_PULL_ALLOC(ndr, r->out.DsPollingLongInterval);
+               }
+               _mem_save_DsPollingLongInterval_0 = NDR_PULL_GET_MEM_CTX(ndr);
+               NDR_PULL_SET_MEM_CTX(ndr, r->out.DsPollingLongInterval, LIBNDR_FLAG_REF_ALLOC);
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.DsPollingLongInterval));
+               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_DsPollingLongInterval_0, LIBNDR_FLAG_REF_ALLOC);
+               if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
+                       NDR_PULL_ALLOC(ndr, r->out.DsPollingShortInterval);
+               }
+               _mem_save_DsPollingShortInterval_0 = NDR_PULL_GET_MEM_CTX(ndr);
+               NDR_PULL_SET_MEM_CTX(ndr, r->out.DsPollingShortInterval, LIBNDR_FLAG_REF_ALLOC);
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.DsPollingShortInterval));
+               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_DsPollingShortInterval_0, LIBNDR_FLAG_REF_ALLOC);
+               NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_frsapi_GetDsPollingIntervalW(struct ndr_print *ndr, const char *name, int flags, const struct frsapi_GetDsPollingIntervalW *r)
+{
+       ndr_print_struct(ndr, name, "frsapi_GetDsPollingIntervalW");
+       ndr->depth++;
+       if (flags & NDR_SET_VALUES) {
+               ndr->flags |= LIBNDR_PRINT_SET_VALUES;
+       }
+       if (flags & NDR_IN) {
+               ndr_print_struct(ndr, "in", "frsapi_GetDsPollingIntervalW");
+               ndr->depth++;
+               ndr->depth--;
+       }
+       if (flags & NDR_OUT) {
+               ndr_print_struct(ndr, "out", "frsapi_GetDsPollingIntervalW");
+               ndr->depth++;
+               ndr_print_ptr(ndr, "CurrentInterval", r->out.CurrentInterval);
+               ndr->depth++;
+               ndr_print_uint32(ndr, "CurrentInterval", *r->out.CurrentInterval);
+               ndr->depth--;
+               ndr_print_ptr(ndr, "DsPollingLongInterval", r->out.DsPollingLongInterval);
+               ndr->depth++;
+               ndr_print_uint32(ndr, "DsPollingLongInterval", *r->out.DsPollingLongInterval);
+               ndr->depth--;
+               ndr_print_ptr(ndr, "DsPollingShortInterval", r->out.DsPollingShortInterval);
+               ndr->depth++;
+               ndr_print_uint32(ndr, "DsPollingShortInterval", *r->out.DsPollingShortInterval);
+               ndr->depth--;
+               ndr_print_WERROR(ndr, "result", r->out.result);
+               ndr->depth--;
+       }
+       ndr->depth--;
+}
+
+static enum ndr_err_code ndr_push_FRSAPI_VERIFY_PROMOTION_W(struct ndr_push *ndr, int flags, const struct FRSAPI_VERIFY_PROMOTION_W *r)
+{
+       if (flags & NDR_IN) {
+       }
+       if (flags & NDR_OUT) {
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_FRSAPI_VERIFY_PROMOTION_W(struct ndr_pull *ndr, int flags, struct FRSAPI_VERIFY_PROMOTION_W *r)
+{
+       if (flags & NDR_IN) {
+       }
+       if (flags & NDR_OUT) {
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_FRSAPI_VERIFY_PROMOTION_W(struct ndr_print *ndr, const char *name, int flags, const struct FRSAPI_VERIFY_PROMOTION_W *r)
+{
+       ndr_print_struct(ndr, name, "FRSAPI_VERIFY_PROMOTION_W");
+       ndr->depth++;
+       if (flags & NDR_SET_VALUES) {
+               ndr->flags |= LIBNDR_PRINT_SET_VALUES;
+       }
+       if (flags & NDR_IN) {
+               ndr_print_struct(ndr, "in", "FRSAPI_VERIFY_PROMOTION_W");
+               ndr->depth++;
+               ndr->depth--;
+       }
+       if (flags & NDR_OUT) {
+               ndr_print_struct(ndr, "out", "FRSAPI_VERIFY_PROMOTION_W");
+               ndr->depth++;
+               ndr->depth--;
+       }
+       ndr->depth--;
+}
+
+static enum ndr_err_code ndr_push_frsapi_InfoW(struct ndr_push *ndr, int flags, const struct frsapi_InfoW *r)
+{
+       if (flags & NDR_IN) {
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.length));
+               NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.info));
+               if (r->in.info) {
+                       NDR_CHECK(ndr_push_frsapi_Info(ndr, NDR_SCALARS, r->in.info));
+               }
+       }
+       if (flags & NDR_OUT) {
+               NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
+               if (r->out.info) {
+                       NDR_CHECK(ndr_push_frsapi_Info(ndr, NDR_SCALARS, r->out.info));
+               }
+               NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_frsapi_InfoW(struct ndr_pull *ndr, int flags, struct frsapi_InfoW *r)
+{
+       uint32_t _ptr_info;
+       TALLOC_CTX *_mem_save_info_0;
+       if (flags & NDR_IN) {
+               ZERO_STRUCT(r->out);
+
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.length));
+               if (r->in.length > 0x10000) {
+                       return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
+               }
+               NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
+               if (_ptr_info) {
+                       NDR_PULL_ALLOC(ndr, r->in.info);
+               } else {
+                       r->in.info = NULL;
+               }
+               if (r->in.info) {
+                       _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
+                       NDR_PULL_SET_MEM_CTX(ndr, r->in.info, 0);
+                       NDR_CHECK(ndr_pull_frsapi_Info(ndr, NDR_SCALARS, r->in.info));
+                       NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
+               }
+       }
+       if (flags & NDR_OUT) {
+               NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
+               if (_ptr_info) {
+                       NDR_PULL_ALLOC(ndr, r->out.info);
+               } else {
+                       r->out.info = NULL;
+               }
+               if (r->out.info) {
+                       _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
+                       NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
+                       NDR_CHECK(ndr_pull_frsapi_Info(ndr, NDR_SCALARS, r->out.info));
+                       NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
+               }
+               NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_frsapi_InfoW(struct ndr_print *ndr, const char *name, int flags, const struct frsapi_InfoW *r)
+{
+       ndr_print_struct(ndr, name, "frsapi_InfoW");
+       ndr->depth++;
+       if (flags & NDR_SET_VALUES) {
+               ndr->flags |= LIBNDR_PRINT_SET_VALUES;
+       }
+       if (flags & NDR_IN) {
+               ndr_print_struct(ndr, "in", "frsapi_InfoW");
+               ndr->depth++;
+               ndr_print_uint32(ndr, "length", r->in.length);
+               ndr_print_ptr(ndr, "info", r->in.info);
+               ndr->depth++;
+               if (r->in.info) {
+                       ndr_print_frsapi_Info(ndr, "info", r->in.info);
+               }
+               ndr->depth--;
+               ndr->depth--;
+       }
+       if (flags & NDR_OUT) {
+               ndr_print_struct(ndr, "out", "frsapi_InfoW");
+               ndr->depth++;
+               ndr_print_ptr(ndr, "info", r->out.info);
+               ndr->depth++;
+               if (r->out.info) {
+                       ndr_print_frsapi_Info(ndr, "info", r->out.info);
+               }
+               ndr->depth--;
+               ndr_print_WERROR(ndr, "result", r->out.result);
+               ndr->depth--;
+       }
+       ndr->depth--;
+}
+
+static enum ndr_err_code ndr_push_frsapi_IsPathReplicated(struct ndr_push *ndr, int flags, const struct frsapi_IsPathReplicated *r)
+{
+       if (flags & NDR_IN) {
+               NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.path));
+               if (r->in.path) {
+                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.path, CH_UTF16)));
+                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
+                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.path, CH_UTF16)));
+                       NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.path, ndr_charset_length(r->in.path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
+               }
+               NDR_CHECK(ndr_push_frsapi_ReplicaSetType(ndr, NDR_SCALARS, r->in.replica_set_type));
+       }
+       if (flags & NDR_OUT) {
+               if (r->out.replicated == NULL) {
+                       return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
+               }
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.replicated));
+               if (r->out.primary == NULL) {
+                       return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
+               }
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.primary));
+               if (r->out.root == NULL) {
+                       return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
+               }
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.root));
+               if (r->out.replica_set_guid == NULL) {
+                       return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
+               }
+               NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, r->out.replica_set_guid));
+               NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_frsapi_IsPathReplicated(struct ndr_pull *ndr, int flags, struct frsapi_IsPathReplicated *r)
+{
+       uint32_t _ptr_path;
+       TALLOC_CTX *_mem_save_path_0;
+       TALLOC_CTX *_mem_save_replicated_0;
+       TALLOC_CTX *_mem_save_primary_0;
+       TALLOC_CTX *_mem_save_root_0;
+       TALLOC_CTX *_mem_save_replica_set_guid_0;
+       if (flags & NDR_IN) {
+               ZERO_STRUCT(r->out);
+
+               NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_path));
+               if (_ptr_path) {
+                       NDR_PULL_ALLOC(ndr, r->in.path);
+               } else {
+                       r->in.path = NULL;
+               }
+               if (r->in.path) {
+                       _mem_save_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
+                       NDR_PULL_SET_MEM_CTX(ndr, r->in.path, 0);
+                       NDR_CHECK(ndr_pull_array_size(ndr, &r->in.path));
+                       NDR_CHECK(ndr_pull_array_length(ndr, &r->in.path));
+                       if (ndr_get_array_length(ndr, &r->in.path) > ndr_get_array_size(ndr, &r->in.path)) {
+                               return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.path), ndr_get_array_length(ndr, &r->in.path));
+                       }
+                       NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.path), sizeof(uint16_t)));
+                       NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.path, ndr_get_array_length(ndr, &r->in.path), sizeof(uint16_t), CH_UTF16));
+                       NDR_PULL_SET_MEM_CTX(ndr, _mem_save_path_0, 0);
+               }
+               NDR_CHECK(ndr_pull_frsapi_ReplicaSetType(ndr, NDR_SCALARS, &r->in.replica_set_type));
+               NDR_PULL_ALLOC(ndr, r->out.replicated);
+               ZERO_STRUCTP(r->out.replicated);
+               NDR_PULL_ALLOC(ndr, r->out.primary);
+               ZERO_STRUCTP(r->out.primary);
+               NDR_PULL_ALLOC(ndr, r->out.root);
+               ZERO_STRUCTP(r->out.root);
+               NDR_PULL_ALLOC(ndr, r->out.replica_set_guid);
+               ZERO_STRUCTP(r->out.replica_set_guid);
+       }
+       if (flags & NDR_OUT) {
+               if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
+                       NDR_PULL_ALLOC(ndr, r->out.replicated);
+               }
+               _mem_save_replicated_0 = NDR_PULL_GET_MEM_CTX(ndr);
+               NDR_PULL_SET_MEM_CTX(ndr, r->out.replicated, LIBNDR_FLAG_REF_ALLOC);
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.replicated));
+               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_replicated_0, LIBNDR_FLAG_REF_ALLOC);
+               if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
+                       NDR_PULL_ALLOC(ndr, r->out.primary);
+               }
+               _mem_save_primary_0 = NDR_PULL_GET_MEM_CTX(ndr);
+               NDR_PULL_SET_MEM_CTX(ndr, r->out.primary, LIBNDR_FLAG_REF_ALLOC);
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.primary));
+               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_primary_0, LIBNDR_FLAG_REF_ALLOC);
+               if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
+                       NDR_PULL_ALLOC(ndr, r->out.root);
+               }
+               _mem_save_root_0 = NDR_PULL_GET_MEM_CTX(ndr);
+               NDR_PULL_SET_MEM_CTX(ndr, r->out.root, LIBNDR_FLAG_REF_ALLOC);
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.root));
+               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_root_0, LIBNDR_FLAG_REF_ALLOC);
+               if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
+                       NDR_PULL_ALLOC(ndr, r->out.replica_set_guid);
+               }
+               _mem_save_replica_set_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
+               NDR_PULL_SET_MEM_CTX(ndr, r->out.replica_set_guid, LIBNDR_FLAG_REF_ALLOC);
+               NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, r->out.replica_set_guid));
+               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_replica_set_guid_0, LIBNDR_FLAG_REF_ALLOC);
+               NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_frsapi_IsPathReplicated(struct ndr_print *ndr, const char *name, int flags, const struct frsapi_IsPathReplicated *r)
+{
+       ndr_print_struct(ndr, name, "frsapi_IsPathReplicated");
+       ndr->depth++;
+       if (flags & NDR_SET_VALUES) {
+               ndr->flags |= LIBNDR_PRINT_SET_VALUES;
+       }
+       if (flags & NDR_IN) {
+               ndr_print_struct(ndr, "in", "frsapi_IsPathReplicated");
+               ndr->depth++;
+               ndr_print_ptr(ndr, "path", r->in.path);
+               ndr->depth++;
+               if (r->in.path) {
+                       ndr_print_string(ndr, "path", r->in.path);
+               }
+               ndr->depth--;
+               ndr_print_frsapi_ReplicaSetType(ndr, "replica_set_type", r->in.replica_set_type);
+               ndr->depth--;
+       }
+       if (flags & NDR_OUT) {
+               ndr_print_struct(ndr, "out", "frsapi_IsPathReplicated");
+               ndr->depth++;
+               ndr_print_ptr(ndr, "replicated", r->out.replicated);
+               ndr->depth++;
+               ndr_print_uint32(ndr, "replicated", *r->out.replicated);
+               ndr->depth--;
+               ndr_print_ptr(ndr, "primary", r->out.primary);
+               ndr->depth++;
+               ndr_print_uint32(ndr, "primary", *r->out.primary);
+               ndr->depth--;
+               ndr_print_ptr(ndr, "root", r->out.root);
+               ndr->depth++;
+               ndr_print_uint32(ndr, "root", *r->out.root);
+               ndr->depth--;
+               ndr_print_ptr(ndr, "replica_set_guid", r->out.replica_set_guid);
+               ndr->depth++;
+               ndr_print_GUID(ndr, "replica_set_guid", r->out.replica_set_guid);
+               ndr->depth--;
+               ndr_print_WERROR(ndr, "result", r->out.result);
+               ndr->depth--;
+       }
+       ndr->depth--;
+}
+
+static enum ndr_err_code ndr_push_frsapi_WriterCommand(struct ndr_push *ndr, int flags, const struct frsapi_WriterCommand *r)
+{
+       if (flags & NDR_IN) {
+               NDR_CHECK(ndr_push_frsapi_WriterCommandsValues(ndr, NDR_SCALARS, r->in.command));
+       }
+       if (flags & NDR_OUT) {
+               NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_frsapi_WriterCommand(struct ndr_pull *ndr, int flags, struct frsapi_WriterCommand *r)
+{
+       if (flags & NDR_IN) {
+               NDR_CHECK(ndr_pull_frsapi_WriterCommandsValues(ndr, NDR_SCALARS, &r->in.command));
+       }
+       if (flags & NDR_OUT) {
+               NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_frsapi_WriterCommand(struct ndr_print *ndr, const char *name, int flags, const struct frsapi_WriterCommand *r)
+{
+       ndr_print_struct(ndr, name, "frsapi_WriterCommand");
+       ndr->depth++;
+       if (flags & NDR_SET_VALUES) {
+               ndr->flags |= LIBNDR_PRINT_SET_VALUES;
+       }
+       if (flags & NDR_IN) {
+               ndr_print_struct(ndr, "in", "frsapi_WriterCommand");
+               ndr->depth++;
+               ndr_print_frsapi_WriterCommandsValues(ndr, "command", r->in.command);
+               ndr->depth--;
+       }
+       if (flags & NDR_OUT) {
+               ndr_print_struct(ndr, "out", "frsapi_WriterCommand");
+               ndr->depth++;
+               ndr_print_WERROR(ndr, "result", r->out.result);
+               ndr->depth--;
+       }
+       ndr->depth--;
+}
+
+static enum ndr_err_code ndr_push_frsapi_ForceReplication(struct ndr_push *ndr, int flags, const struct frsapi_ForceReplication *r)
+{
+       if (flags & NDR_IN) {
+               NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.replica_set_guid));
+               if (r->in.replica_set_guid) {
+                       NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, r->in.replica_set_guid));
+               }
+               NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.connection_guid));
+               if (r->in.connection_guid) {
+                       NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, r->in.connection_guid));
+               }
+               NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.replica_set_name));
+               if (r->in.replica_set_name) {
+                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.replica_set_name, CH_UTF16)));
+                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
+                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.replica_set_name, CH_UTF16)));
+                       NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.replica_set_name, ndr_charset_length(r->in.replica_set_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
+               }
+               NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.partner_dns_name));
+               if (r->in.partner_dns_name) {
+                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.partner_dns_name, CH_UTF16)));
+                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
+                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.partner_dns_name, CH_UTF16)));
+                       NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.partner_dns_name, ndr_charset_length(r->in.partner_dns_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
+               }
+       }
+       if (flags & NDR_OUT) {
+               NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_frsapi_ForceReplication(struct ndr_pull *ndr, int flags, struct frsapi_ForceReplication *r)
+{
+       uint32_t _ptr_replica_set_guid;
+       uint32_t _ptr_connection_guid;
+       uint32_t _ptr_replica_set_name;
+       uint32_t _ptr_partner_dns_name;
+       TALLOC_CTX *_mem_save_replica_set_guid_0;
+       TALLOC_CTX *_mem_save_connection_guid_0;
+       TALLOC_CTX *_mem_save_replica_set_name_0;
+       TALLOC_CTX *_mem_save_partner_dns_name_0;
+       if (flags & NDR_IN) {
+               NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_replica_set_guid));
+               if (_ptr_replica_set_guid) {
+                       NDR_PULL_ALLOC(ndr, r->in.replica_set_guid);
+               } else {
+                       r->in.replica_set_guid = NULL;
+               }
+               if (r->in.replica_set_guid) {
+                       _mem_save_replica_set_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
+                       NDR_PULL_SET_MEM_CTX(ndr, r->in.replica_set_guid, 0);
+                       NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, r->in.replica_set_guid));
+                       NDR_PULL_SET_MEM_CTX(ndr, _mem_save_replica_set_guid_0, 0);
+               }
+               NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_connection_guid));
+               if (_ptr_connection_guid) {
+                       NDR_PULL_ALLOC(ndr, r->in.connection_guid);
+               } else {
+                       r->in.connection_guid = NULL;
+               }
+               if (r->in.connection_guid) {
+                       _mem_save_connection_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
+                       NDR_PULL_SET_MEM_CTX(ndr, r->in.connection_guid, 0);
+                       NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, r->in.connection_guid));
+                       NDR_PULL_SET_MEM_CTX(ndr, _mem_save_connection_guid_0, 0);
+               }
+               NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_replica_set_name));
+               if (_ptr_replica_set_name) {
+                       NDR_PULL_ALLOC(ndr, r->in.replica_set_name);
+               } else {
+                       r->in.replica_set_name = NULL;
+               }
+               if (r->in.replica_set_name) {
+                       _mem_save_replica_set_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
+                       NDR_PULL_SET_MEM_CTX(ndr, r->in.replica_set_name, 0);
+                       NDR_CHECK(ndr_pull_array_size(ndr, &r->in.replica_set_name));
+                       NDR_CHECK(ndr_pull_array_length(ndr, &r->in.replica_set_name));
+                       if (ndr_get_array_length(ndr, &r->in.replica_set_name) > ndr_get_array_size(ndr, &r->in.replica_set_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->in.replica_set_name), ndr_get_array_length(ndr, &r->in.replica_set_name));
+                       }
+                       NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.replica_set_name), sizeof(uint16_t)));
+                       NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.replica_set_name, ndr_get_array_length(ndr, &r->in.replica_set_name), sizeof(uint16_t), CH_UTF16));
+                       NDR_PULL_SET_MEM_CTX(ndr, _mem_save_replica_set_name_0, 0);
+               }
+               NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_partner_dns_name));
+               if (_ptr_partner_dns_name) {
+                       NDR_PULL_ALLOC(ndr, r->in.partner_dns_name);
+               } else {
+                       r->in.partner_dns_name = NULL;
+               }
+               if (r->in.partner_dns_name) {
+                       _mem_save_partner_dns_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
+                       NDR_PULL_SET_MEM_CTX(ndr, r->in.partner_dns_name, 0);
+                       NDR_CHECK(ndr_pull_array_size(ndr, &r->in.partner_dns_name));
+                       NDR_CHECK(ndr_pull_array_length(ndr, &r->in.partner_dns_name));
+                       if (ndr_get_array_length(ndr, &r->in.partner_dns_name) > ndr_get_array_size(ndr, &r->in.partner_dns_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->in.partner_dns_name), ndr_get_array_length(ndr, &r->in.partner_dns_name));
+                       }
+                       NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.partner_dns_name), sizeof(uint16_t)));
+                       NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.partner_dns_name, ndr_get_array_length(ndr, &r->in.partner_dns_name), sizeof(uint16_t), CH_UTF16));
+                       NDR_PULL_SET_MEM_CTX(ndr, _mem_save_partner_dns_name_0, 0);
+               }
+       }
+       if (flags & NDR_OUT) {
+               NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_frsapi_ForceReplication(struct ndr_print *ndr, const char *name, int flags, const struct frsapi_ForceReplication *r)
+{
+       ndr_print_struct(ndr, name, "frsapi_ForceReplication");
+       ndr->depth++;
+       if (flags & NDR_SET_VALUES) {
+               ndr->flags |= LIBNDR_PRINT_SET_VALUES;
+       }
+       if (flags & NDR_IN) {
+               ndr_print_struct(ndr, "in", "frsapi_ForceReplication");
+               ndr->depth++;
+               ndr_print_ptr(ndr, "replica_set_guid", r->in.replica_set_guid);
+               ndr->depth++;
+               if (r->in.replica_set_guid) {
+                       ndr_print_GUID(ndr, "replica_set_guid", r->in.replica_set_guid);
+               }
+               ndr->depth--;
+               ndr_print_ptr(ndr, "connection_guid", r->in.connection_guid);
+               ndr->depth++;
+               if (r->in.connection_guid) {
+                       ndr_print_GUID(ndr, "connection_guid", r->in.connection_guid);
+               }
+               ndr->depth--;
+               ndr_print_ptr(ndr, "replica_set_name", r->in.replica_set_name);
+               ndr->depth++;
+               if (r->in.replica_set_name) {
+                       ndr_print_string(ndr, "replica_set_name", r->in.replica_set_name);
+               }
+               ndr->depth--;
+               ndr_print_ptr(ndr, "partner_dns_name", r->in.partner_dns_name);
+               ndr->depth++;
+               if (r->in.partner_dns_name) {
+                       ndr_print_string(ndr, "partner_dns_name", r->in.partner_dns_name);
+               }
+               ndr->depth--;
+               ndr->depth--;
+       }
+       if (flags & NDR_OUT) {
+               ndr_print_struct(ndr, "out", "frsapi_ForceReplication");
+               ndr->depth++;
+               ndr_print_WERROR(ndr, "result", r->out.result);
+               ndr->depth--;
+       }
+       ndr->depth--;
+}
+
+static const struct ndr_interface_call frsapi_calls[] = {
+       {
+               "FRSAPI_VERIFY_PROMOTION",
+               sizeof(struct FRSAPI_VERIFY_PROMOTION),
+               (ndr_push_flags_fn_t) ndr_push_FRSAPI_VERIFY_PROMOTION,
+               (ndr_pull_flags_fn_t) ndr_pull_FRSAPI_VERIFY_PROMOTION,
+               (ndr_print_function_t) ndr_print_FRSAPI_VERIFY_PROMOTION,
+               false,
+       },
+       {
+               "FRSAPI_PROMOTION_STATUS",
+               sizeof(struct FRSAPI_PROMOTION_STATUS),
+               (ndr_push_flags_fn_t) ndr_push_FRSAPI_PROMOTION_STATUS,
+               (ndr_pull_flags_fn_t) ndr_pull_FRSAPI_PROMOTION_STATUS,
+               (ndr_print_function_t) ndr_print_FRSAPI_PROMOTION_STATUS,
+               false,
+       },
+       {
+               "FRSAPI_START_DEMOTION",
+               sizeof(struct FRSAPI_START_DEMOTION),
+               (ndr_push_flags_fn_t) ndr_push_FRSAPI_START_DEMOTION,
+               (ndr_pull_flags_fn_t) ndr_pull_FRSAPI_START_DEMOTION,
+               (ndr_print_function_t) ndr_print_FRSAPI_START_DEMOTION,
+               false,
+       },
+       {
+               "FRSAPI_COMMIT_DEMOTION",
+               sizeof(struct FRSAPI_COMMIT_DEMOTION),
+               (ndr_push_flags_fn_t) ndr_push_FRSAPI_COMMIT_DEMOTION,
+               (ndr_pull_flags_fn_t) ndr_pull_FRSAPI_COMMIT_DEMOTION,
+               (ndr_print_function_t) ndr_print_FRSAPI_COMMIT_DEMOTION,
+               false,
+       },
+       {
+               "frsapi_SetDsPollingIntervalW",
+               sizeof(struct frsapi_SetDsPollingIntervalW),
+               (ndr_push_flags_fn_t) ndr_push_frsapi_SetDsPollingIntervalW,
+               (ndr_pull_flags_fn_t) ndr_pull_frsapi_SetDsPollingIntervalW,
+               (ndr_print_function_t) ndr_print_frsapi_SetDsPollingIntervalW,
+               false,
+       },
+       {
+               "frsapi_GetDsPollingIntervalW",
+               sizeof(struct frsapi_GetDsPollingIntervalW),
+               (ndr_push_flags_fn_t) ndr_push_frsapi_GetDsPollingIntervalW,
+               (ndr_pull_flags_fn_t) ndr_pull_frsapi_GetDsPollingIntervalW,
+               (ndr_print_function_t) ndr_print_frsapi_GetDsPollingIntervalW,
+               false,
+       },
+       {
+               "FRSAPI_VERIFY_PROMOTION_W",
+               sizeof(struct FRSAPI_VERIFY_PROMOTION_W),
+               (ndr_push_flags_fn_t) ndr_push_FRSAPI_VERIFY_PROMOTION_W,
+               (ndr_pull_flags_fn_t) ndr_pull_FRSAPI_VERIFY_PROMOTION_W,
+               (ndr_print_function_t) ndr_print_FRSAPI_VERIFY_PROMOTION_W,
+               false,
+       },
+       {
+               "frsapi_InfoW",
+               sizeof(struct frsapi_InfoW),
+               (ndr_push_flags_fn_t) ndr_push_frsapi_InfoW,
+               (ndr_pull_flags_fn_t) ndr_pull_frsapi_InfoW,
+               (ndr_print_function_t) ndr_print_frsapi_InfoW,
+               false,
+       },
+       {
+               "frsapi_IsPathReplicated",
+               sizeof(struct frsapi_IsPathReplicated),
+               (ndr_push_flags_fn_t) ndr_push_frsapi_IsPathReplicated,
+               (ndr_pull_flags_fn_t) ndr_pull_frsapi_IsPathReplicated,
+               (ndr_print_function_t) ndr_print_frsapi_IsPathReplicated,
+               false,
+       },
+       {
+               "frsapi_WriterCommand",
+               sizeof(struct frsapi_WriterCommand),
+               (ndr_push_flags_fn_t) ndr_push_frsapi_WriterCommand,
+               (ndr_pull_flags_fn_t) ndr_pull_frsapi_WriterCommand,
+               (ndr_print_function_t) ndr_print_frsapi_WriterCommand,
+               false,
+       },
+       {
+               "frsapi_ForceReplication",
+               sizeof(struct frsapi_ForceReplication),
+               (ndr_push_flags_fn_t) ndr_push_frsapi_ForceReplication,
+               (ndr_pull_flags_fn_t) ndr_pull_frsapi_ForceReplication,
+               (ndr_print_function_t) ndr_print_frsapi_ForceReplication,
+               false,
+       },
+       { NULL, 0, NULL, NULL, NULL, false }
+};
+
+static const char * const frsapi_endpoint_strings[] = {
+       "ncacn_ip_tcp:", 
+       "ncalrpc:", 
+};
+
+static const struct ndr_interface_string_array frsapi_endpoints = {
+       .count  = 2,
+       .names  = frsapi_endpoint_strings
+};
+
+static const char * const frsapi_authservice_strings[] = {
+       "host", 
+};
+
+static const struct ndr_interface_string_array frsapi_authservices = {
+       .count  = 1,
+       .names  = frsapi_authservice_strings
+};
+
+
+const struct ndr_interface_table ndr_table_frsapi = {
+       .name           = "frsapi",
+       .syntax_id      = {
+               {0xd049b186,0x814f,0x11d1,{0x9a,0x3c},{0x00,0xc0,0x4f,0xc9,0xb2,0x32}},
+               NDR_FRSAPI_VERSION
+       },
+       .helpstring     = NDR_FRSAPI_HELPSTRING,
+       .num_calls      = 11,
+       .calls          = frsapi_calls,
+       .endpoints      = &frsapi_endpoints,
+       .authservices   = &frsapi_authservices
+};
+