build: re-run make samba3-idl.
[ira/wip.git] / source3 / librpc / gen_ndr / ndr_srvsvc.c
index 8f577c6e8fc98d8c0d6aff5a51b4c0a582b79e25..9ac3aa82c9125c35e5b02389556192025b12a73d 100644 (file)
@@ -136,7 +136,7 @@ _PUBLIC_ void ndr_print_srvsvc_NetCharDevCtr0(struct ndr_print *ndr, const char
        ndr_print_ptr(ndr, "array", r->array);
        ndr->depth++;
        if (r->array) {
-               ndr->print(ndr, "%s: ARRAY(%d)", "array", r->count);
+               ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
                ndr->depth++;
                for (cntr_array_1=0;cntr_array_1<r->count;cntr_array_1++) {
                        char *idx_1=NULL;
@@ -321,7 +321,7 @@ _PUBLIC_ void ndr_print_srvsvc_NetCharDevCtr1(struct ndr_print *ndr, const char
        ndr_print_ptr(ndr, "array", r->array);
        ndr->depth++;
        if (r->array) {
-               ndr->print(ndr, "%s: ARRAY(%d)", "array", r->count);
+               ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
                ndr->depth++;
                for (cntr_array_1=0;cntr_array_1<r->count;cntr_array_1++) {
                        char *idx_1=NULL;
@@ -612,6 +612,44 @@ _PUBLIC_ void ndr_print_srvsvc_NetCharDevCtr(struct ndr_print *ndr, const char *
        }
 }
 
+static enum ndr_err_code ndr_push_srvsvc_NetCharDevInfoCtr(struct ndr_push *ndr, int ndr_flags, const struct srvsvc_NetCharDevInfoCtr *r)
+{
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_push_align(ndr, 4));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
+               NDR_CHECK(ndr_push_set_switch_value(ndr, &r->ctr, r->level));
+               NDR_CHECK(ndr_push_srvsvc_NetCharDevCtr(ndr, NDR_SCALARS, &r->ctr));
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+               NDR_CHECK(ndr_push_srvsvc_NetCharDevCtr(ndr, NDR_BUFFERS, &r->ctr));
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_srvsvc_NetCharDevInfoCtr(struct ndr_pull *ndr, int ndr_flags, struct srvsvc_NetCharDevInfoCtr *r)
+{
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_pull_align(ndr, 4));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
+               NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->ctr, r->level));
+               NDR_CHECK(ndr_pull_srvsvc_NetCharDevCtr(ndr, NDR_SCALARS, &r->ctr));
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+               NDR_CHECK(ndr_pull_srvsvc_NetCharDevCtr(ndr, NDR_BUFFERS, &r->ctr));
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_srvsvc_NetCharDevInfoCtr(struct ndr_print *ndr, const char *name, const struct srvsvc_NetCharDevInfoCtr *r)
+{
+       ndr_print_struct(ndr, name, "srvsvc_NetCharDevInfoCtr");
+       ndr->depth++;
+       ndr_print_uint32(ndr, "level", r->level);
+       ndr_print_set_switch_value(ndr, &r->ctr, r->level);
+       ndr_print_srvsvc_NetCharDevCtr(ndr, "ctr", &r->ctr);
+       ndr->depth--;
+}
+
 static enum ndr_err_code ndr_push_srvsvc_NetCharDevQInfo0(struct ndr_push *ndr, int ndr_flags, const struct srvsvc_NetCharDevQInfo0 *r)
 {
        if (ndr_flags & NDR_SCALARS) {
@@ -743,7 +781,7 @@ _PUBLIC_ void ndr_print_srvsvc_NetCharDevQCtr0(struct ndr_print *ndr, const char
        ndr_print_ptr(ndr, "array", r->array);
        ndr->depth++;
        if (r->array) {
-               ndr->print(ndr, "%s: ARRAY(%d)", "array", r->count);
+               ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
                ndr->depth++;
                for (cntr_array_1=0;cntr_array_1<r->count;cntr_array_1++) {
                        char *idx_1=NULL;
@@ -931,7 +969,7 @@ _PUBLIC_ void ndr_print_srvsvc_NetCharDevQCtr1(struct ndr_print *ndr, const char
        ndr_print_ptr(ndr, "array", r->array);
        ndr->depth++;
        if (r->array) {
-               ndr->print(ndr, "%s: ARRAY(%d)", "array", r->count);
+               ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
                ndr->depth++;
                for (cntr_array_1=0;cntr_array_1<r->count;cntr_array_1++) {
                        char *idx_1=NULL;
@@ -1222,6 +1260,44 @@ _PUBLIC_ void ndr_print_srvsvc_NetCharDevQCtr(struct ndr_print *ndr, const char
        }
 }
 
+static enum ndr_err_code ndr_push_srvsvc_NetCharDevQInfoCtr(struct ndr_push *ndr, int ndr_flags, const struct srvsvc_NetCharDevQInfoCtr *r)
+{
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_push_align(ndr, 4));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
+               NDR_CHECK(ndr_push_set_switch_value(ndr, &r->ctr, r->level));
+               NDR_CHECK(ndr_push_srvsvc_NetCharDevQCtr(ndr, NDR_SCALARS, &r->ctr));
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+               NDR_CHECK(ndr_push_srvsvc_NetCharDevQCtr(ndr, NDR_BUFFERS, &r->ctr));
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_srvsvc_NetCharDevQInfoCtr(struct ndr_pull *ndr, int ndr_flags, struct srvsvc_NetCharDevQInfoCtr *r)
+{
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_pull_align(ndr, 4));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
+               NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->ctr, r->level));
+               NDR_CHECK(ndr_pull_srvsvc_NetCharDevQCtr(ndr, NDR_SCALARS, &r->ctr));
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+               NDR_CHECK(ndr_pull_srvsvc_NetCharDevQCtr(ndr, NDR_BUFFERS, &r->ctr));
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_srvsvc_NetCharDevQInfoCtr(struct ndr_print *ndr, const char *name, const struct srvsvc_NetCharDevQInfoCtr *r)
+{
+       ndr_print_struct(ndr, name, "srvsvc_NetCharDevQInfoCtr");
+       ndr->depth++;
+       ndr_print_uint32(ndr, "level", r->level);
+       ndr_print_set_switch_value(ndr, &r->ctr, r->level);
+       ndr_print_srvsvc_NetCharDevQCtr(ndr, "ctr", &r->ctr);
+       ndr->depth--;
+}
+
 static enum ndr_err_code ndr_push_srvsvc_NetConnInfo0(struct ndr_push *ndr, int ndr_flags, const struct srvsvc_NetConnInfo0 *r)
 {
        if (ndr_flags & NDR_SCALARS) {
@@ -1317,7 +1393,7 @@ _PUBLIC_ void ndr_print_srvsvc_NetConnCtr0(struct ndr_print *ndr, const char *na
        ndr_print_ptr(ndr, "array", r->array);
        ndr->depth++;
        if (r->array) {
-               ndr->print(ndr, "%s: ARRAY(%d)", "array", r->count);
+               ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
                ndr->depth++;
                for (cntr_array_1=0;cntr_array_1<r->count;cntr_array_1++) {
                        char *idx_1=NULL;
@@ -1511,7 +1587,7 @@ _PUBLIC_ void ndr_print_srvsvc_NetConnCtr1(struct ndr_print *ndr, const char *na
        ndr_print_ptr(ndr, "array", r->array);
        ndr->depth++;
        if (r->array) {
-               ndr->print(ndr, "%s: ARRAY(%d)", "array", r->count);
+               ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
                ndr->depth++;
                for (cntr_array_1=0;cntr_array_1<r->count;cntr_array_1++) {
                        char *idx_1=NULL;
@@ -1664,6 +1740,44 @@ _PUBLIC_ void ndr_print_srvsvc_NetConnCtr(struct ndr_print *ndr, const char *nam
        }
 }
 
+static enum ndr_err_code ndr_push_srvsvc_NetConnInfoCtr(struct ndr_push *ndr, int ndr_flags, const struct srvsvc_NetConnInfoCtr *r)
+{
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_push_align(ndr, 4));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
+               NDR_CHECK(ndr_push_set_switch_value(ndr, &r->ctr, r->level));
+               NDR_CHECK(ndr_push_srvsvc_NetConnCtr(ndr, NDR_SCALARS, &r->ctr));
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+               NDR_CHECK(ndr_push_srvsvc_NetConnCtr(ndr, NDR_BUFFERS, &r->ctr));
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_srvsvc_NetConnInfoCtr(struct ndr_pull *ndr, int ndr_flags, struct srvsvc_NetConnInfoCtr *r)
+{
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_pull_align(ndr, 4));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
+               NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->ctr, r->level));
+               NDR_CHECK(ndr_pull_srvsvc_NetConnCtr(ndr, NDR_SCALARS, &r->ctr));
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+               NDR_CHECK(ndr_pull_srvsvc_NetConnCtr(ndr, NDR_BUFFERS, &r->ctr));
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_srvsvc_NetConnInfoCtr(struct ndr_print *ndr, const char *name, const struct srvsvc_NetConnInfoCtr *r)
+{
+       ndr_print_struct(ndr, name, "srvsvc_NetConnInfoCtr");
+       ndr->depth++;
+       ndr_print_uint32(ndr, "level", r->level);
+       ndr_print_set_switch_value(ndr, &r->ctr, r->level);
+       ndr_print_srvsvc_NetConnCtr(ndr, "ctr", &r->ctr);
+       ndr->depth--;
+}
+
 static enum ndr_err_code ndr_push_srvsvc_NetFileInfo2(struct ndr_push *ndr, int ndr_flags, const struct srvsvc_NetFileInfo2 *r)
 {
        if (ndr_flags & NDR_SCALARS) {
@@ -1759,7 +1873,7 @@ _PUBLIC_ void ndr_print_srvsvc_NetFileCtr2(struct ndr_print *ndr, const char *na
        ndr_print_ptr(ndr, "array", r->array);
        ndr->depth++;
        if (r->array) {
-               ndr->print(ndr, "%s: ARRAY(%d)", "array", r->count);
+               ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
                ndr->depth++;
                for (cntr_array_1=0;cntr_array_1<r->count;cntr_array_1++) {
                        char *idx_1=NULL;
@@ -1947,7 +2061,7 @@ _PUBLIC_ void ndr_print_srvsvc_NetFileCtr3(struct ndr_print *ndr, const char *na
        ndr_print_ptr(ndr, "array", r->array);
        ndr->depth++;
        if (r->array) {
-               ndr->print(ndr, "%s: ARRAY(%d)", "array", r->count);
+               ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
                ndr->depth++;
                for (cntr_array_1=0;cntr_array_1<r->count;cntr_array_1++) {
                        char *idx_1=NULL;
@@ -2238,6 +2352,44 @@ _PUBLIC_ void ndr_print_srvsvc_NetFileCtr(struct ndr_print *ndr, const char *nam
        }
 }
 
+static enum ndr_err_code ndr_push_srvsvc_NetFileInfoCtr(struct ndr_push *ndr, int ndr_flags, const struct srvsvc_NetFileInfoCtr *r)
+{
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_push_align(ndr, 4));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
+               NDR_CHECK(ndr_push_set_switch_value(ndr, &r->ctr, r->level));
+               NDR_CHECK(ndr_push_srvsvc_NetFileCtr(ndr, NDR_SCALARS, &r->ctr));
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+               NDR_CHECK(ndr_push_srvsvc_NetFileCtr(ndr, NDR_BUFFERS, &r->ctr));
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_srvsvc_NetFileInfoCtr(struct ndr_pull *ndr, int ndr_flags, struct srvsvc_NetFileInfoCtr *r)
+{
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_pull_align(ndr, 4));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
+               NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->ctr, r->level));
+               NDR_CHECK(ndr_pull_srvsvc_NetFileCtr(ndr, NDR_SCALARS, &r->ctr));
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+               NDR_CHECK(ndr_pull_srvsvc_NetFileCtr(ndr, NDR_BUFFERS, &r->ctr));
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_srvsvc_NetFileInfoCtr(struct ndr_print *ndr, const char *name, const struct srvsvc_NetFileInfoCtr *r)
+{
+       ndr_print_struct(ndr, name, "srvsvc_NetFileInfoCtr");
+       ndr->depth++;
+       ndr_print_uint32(ndr, "level", r->level);
+       ndr_print_set_switch_value(ndr, &r->ctr, r->level);
+       ndr_print_srvsvc_NetFileCtr(ndr, "ctr", &r->ctr);
+       ndr->depth--;
+}
+
 static enum ndr_err_code ndr_push_srvsvc_NetSessInfo0(struct ndr_push *ndr, int ndr_flags, const struct srvsvc_NetSessInfo0 *r)
 {
        if (ndr_flags & NDR_SCALARS) {
@@ -2369,7 +2521,7 @@ _PUBLIC_ void ndr_print_srvsvc_NetSessCtr0(struct ndr_print *ndr, const char *na
        ndr_print_ptr(ndr, "array", r->array);
        ndr->depth++;
        if (r->array) {
-               ndr->print(ndr, "%s: ARRAY(%d)", "array", r->count);
+               ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
                ndr->depth++;
                for (cntr_array_1=0;cntr_array_1<r->count;cntr_array_1++) {
                        char *idx_1=NULL;
@@ -2560,7 +2712,7 @@ _PUBLIC_ void ndr_print_srvsvc_NetSessCtr1(struct ndr_print *ndr, const char *na
        ndr_print_ptr(ndr, "array", r->array);
        ndr->depth++;
        if (r->array) {
-               ndr->print(ndr, "%s: ARRAY(%d)", "array", r->count);
+               ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
                ndr->depth++;
                for (cntr_array_1=0;cntr_array_1<r->count;cntr_array_1++) {
                        char *idx_1=NULL;
@@ -2784,7 +2936,7 @@ _PUBLIC_ void ndr_print_srvsvc_NetSessCtr2(struct ndr_print *ndr, const char *na
        ndr_print_ptr(ndr, "array", r->array);
        ndr->depth++;
        if (r->array) {
-               ndr->print(ndr, "%s: ARRAY(%d)", "array", r->count);
+               ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
                ndr->depth++;
                for (cntr_array_1=0;cntr_array_1<r->count;cntr_array_1++) {
                        char *idx_1=NULL;
@@ -2969,7 +3121,7 @@ _PUBLIC_ void ndr_print_srvsvc_NetSessCtr10(struct ndr_print *ndr, const char *n
        ndr_print_ptr(ndr, "array", r->array);
        ndr->depth++;
        if (r->array) {
-               ndr->print(ndr, "%s: ARRAY(%d)", "array", r->count);
+               ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
                ndr->depth++;
                for (cntr_array_1=0;cntr_array_1<r->count;cntr_array_1++) {
                        char *idx_1=NULL;
@@ -3226,7 +3378,7 @@ _PUBLIC_ void ndr_print_srvsvc_NetSessCtr502(struct ndr_print *ndr, const char *
        ndr_print_ptr(ndr, "array", r->array);
        ndr->depth++;
        if (r->array) {
-               ndr->print(ndr, "%s: ARRAY(%d)", "array", r->count);
+               ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
                ndr->depth++;
                for (cntr_array_1=0;cntr_array_1<r->count;cntr_array_1++) {
                        char *idx_1=NULL;
@@ -3496,6 +3648,44 @@ _PUBLIC_ void ndr_print_srvsvc_NetSessCtr(struct ndr_print *ndr, const char *nam
        }
 }
 
+static enum ndr_err_code ndr_push_srvsvc_NetSessInfoCtr(struct ndr_push *ndr, int ndr_flags, const struct srvsvc_NetSessInfoCtr *r)
+{
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_push_align(ndr, 4));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
+               NDR_CHECK(ndr_push_set_switch_value(ndr, &r->ctr, r->level));
+               NDR_CHECK(ndr_push_srvsvc_NetSessCtr(ndr, NDR_SCALARS, &r->ctr));
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+               NDR_CHECK(ndr_push_srvsvc_NetSessCtr(ndr, NDR_BUFFERS, &r->ctr));
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_srvsvc_NetSessInfoCtr(struct ndr_pull *ndr, int ndr_flags, struct srvsvc_NetSessInfoCtr *r)
+{
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_pull_align(ndr, 4));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
+               NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->ctr, r->level));
+               NDR_CHECK(ndr_pull_srvsvc_NetSessCtr(ndr, NDR_SCALARS, &r->ctr));
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+               NDR_CHECK(ndr_pull_srvsvc_NetSessCtr(ndr, NDR_BUFFERS, &r->ctr));
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_srvsvc_NetSessInfoCtr(struct ndr_print *ndr, const char *name, const struct srvsvc_NetSessInfoCtr *r)
+{
+       ndr_print_struct(ndr, name, "srvsvc_NetSessInfoCtr");
+       ndr->depth++;
+       ndr_print_uint32(ndr, "level", r->level);
+       ndr_print_set_switch_value(ndr, &r->ctr, r->level);
+       ndr_print_srvsvc_NetSessCtr(ndr, "ctr", &r->ctr);
+       ndr->depth--;
+}
+
 static enum ndr_err_code ndr_push_srvsvc_ShareType(struct ndr_push *ndr, int ndr_flags, enum srvsvc_ShareType r)
 {
        {
@@ -3677,7 +3867,7 @@ _PUBLIC_ void ndr_print_srvsvc_NetShareCtr0(struct ndr_print *ndr, const char *n
        ndr_print_ptr(ndr, "array", r->array);
        ndr->depth++;
        if (r->array) {
-               ndr->print(ndr, "%s: ARRAY(%d)", "array", r->count);
+               ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
                ndr->depth++;
                for (cntr_array_1=0;cntr_array_1<r->count;cntr_array_1++) {
                        char *idx_1=NULL;
@@ -3859,7 +4049,7 @@ _PUBLIC_ void ndr_print_srvsvc_NetShareCtr1(struct ndr_print *ndr, const char *n
        ndr_print_ptr(ndr, "array", r->array);
        ndr->depth++;
        if (r->array) {
-               ndr->print(ndr, "%s: ARRAY(%d)", "array", r->count);
+               ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
                ndr->depth++;
                for (cntr_array_1=0;cntr_array_1<r->count;cntr_array_1++) {
                        char *idx_1=NULL;
@@ -4116,7 +4306,7 @@ _PUBLIC_ void ndr_print_srvsvc_NetShareCtr2(struct ndr_print *ndr, const char *n
        ndr_print_ptr(ndr, "array", r->array);
        ndr->depth++;
        if (r->array) {
-               ndr->print(ndr, "%s: ARRAY(%d)", "array", r->count);
+               ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
                ndr->depth++;
                for (cntr_array_1=0;cntr_array_1<r->count;cntr_array_1++) {
                        char *idx_1=NULL;
@@ -4301,7 +4491,7 @@ _PUBLIC_ void ndr_print_srvsvc_NetShareCtr501(struct ndr_print *ndr, const char
        ndr_print_ptr(ndr, "array", r->array);
        ndr->depth++;
        if (r->array) {
-               ndr->print(ndr, "%s: ARRAY(%d)", "array", r->count);
+               ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
                ndr->depth++;
                for (cntr_array_1=0;cntr_array_1<r->count;cntr_array_1++) {
                        char *idx_1=NULL;
@@ -4324,12 +4514,11 @@ static enum ndr_err_code ndr_push_srvsvc_NetShareInfo502(struct ndr_push *ndr, i
                NDR_CHECK(ndr_push_srvsvc_ShareType(ndr, NDR_SCALARS, r->type));
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->comment));
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->permissions));
-               NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->max_users));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_users));
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->current_users));
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->path));
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->password));
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown));
-               NDR_CHECK(ndr_push_unique_ptr(ndr, r->sd));
+               NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sd_buf));
        }
        if (ndr_flags & NDR_BUFFERS) {
                if (r->name) {
@@ -4356,14 +4545,7 @@ static enum ndr_err_code ndr_push_srvsvc_NetShareInfo502(struct ndr_push *ndr, i
                        NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->password, CH_UTF16)));
                        NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->password, ndr_charset_length(r->password, CH_UTF16), sizeof(uint16_t), CH_UTF16));
                }
-               if (r->sd) {
-                       {
-                               struct ndr_push *_ndr_sd;
-                               NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_sd, 4, -1));
-                               NDR_CHECK(ndr_push_security_descriptor(_ndr_sd, NDR_SCALARS|NDR_BUFFERS, r->sd));
-                               NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_sd, 4, -1));
-                       }
-               }
+               NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd_buf));
        }
        return NDR_ERR_SUCCESS;
 }
@@ -4378,8 +4560,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetShareInfo502(struct ndr_pull *ndr, i
        TALLOC_CTX *_mem_save_path_0;
        uint32_t _ptr_password;
        TALLOC_CTX *_mem_save_password_0;
-       uint32_t _ptr_sd;
-       TALLOC_CTX *_mem_save_sd_0;
        if (ndr_flags & NDR_SCALARS) {
                NDR_CHECK(ndr_pull_align(ndr, 4));
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
@@ -4396,7 +4576,7 @@ static enum ndr_err_code ndr_pull_srvsvc_NetShareInfo502(struct ndr_pull *ndr, i
                        r->comment = NULL;
                }
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->permissions));
-               NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->max_users));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_users));
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->current_users));
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_path));
                if (_ptr_path) {
@@ -4410,13 +4590,7 @@ static enum ndr_err_code ndr_pull_srvsvc_NetShareInfo502(struct ndr_pull *ndr, i
                } else {
                        r->password = NULL;
                }
-               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown));
-               NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sd));
-               if (_ptr_sd) {
-                       NDR_PULL_ALLOC(ndr, r->sd);
-               } else {
-                       r->sd = NULL;
-               }
+               NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sd_buf));
        }
        if (ndr_flags & NDR_BUFFERS) {
                if (r->name) {
@@ -4467,17 +4641,7 @@ static enum ndr_err_code ndr_pull_srvsvc_NetShareInfo502(struct ndr_pull *ndr, i
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->password, ndr_get_array_length(ndr, &r->password), sizeof(uint16_t), CH_UTF16));
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0);
                }
-               if (r->sd) {
-                       _mem_save_sd_0 = NDR_PULL_GET_MEM_CTX(ndr);
-                       NDR_PULL_SET_MEM_CTX(ndr, r->sd, 0);
-                       {
-                               struct ndr_pull *_ndr_sd;
-                               NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_sd, 4, -1));
-                               NDR_CHECK(ndr_pull_security_descriptor(_ndr_sd, NDR_SCALARS|NDR_BUFFERS, r->sd));
-                               NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_sd, 4, -1));
-                       }
-                       NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sd_0, 0);
-               }
+               NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd_buf));
        }
        return NDR_ERR_SUCCESS;
 }
@@ -4500,7 +4664,7 @@ _PUBLIC_ void ndr_print_srvsvc_NetShareInfo502(struct ndr_print *ndr, const char
        }
        ndr->depth--;
        ndr_print_uint32(ndr, "permissions", r->permissions);
-       ndr_print_int32(ndr, "max_users", r->max_users);
+       ndr_print_uint32(ndr, "max_users", r->max_users);
        ndr_print_uint32(ndr, "current_users", r->current_users);
        ndr_print_ptr(ndr, "path", r->path);
        ndr->depth++;
@@ -4514,13 +4678,7 @@ _PUBLIC_ void ndr_print_srvsvc_NetShareInfo502(struct ndr_print *ndr, const char
                ndr_print_string(ndr, "password", r->password);
        }
        ndr->depth--;
-       ndr_print_uint32(ndr, "unknown", r->unknown);
-       ndr_print_ptr(ndr, "sd", r->sd);
-       ndr->depth++;
-       if (r->sd) {
-               ndr_print_security_descriptor(ndr, "sd", r->sd);
-       }
-       ndr->depth--;
+       ndr_print_sec_desc_buf(ndr, "sd_buf", &r->sd_buf);
        ndr->depth--;
 }
 
@@ -4595,7 +4753,7 @@ _PUBLIC_ void ndr_print_srvsvc_NetShareCtr502(struct ndr_print *ndr, const char
        ndr_print_ptr(ndr, "array", r->array);
        ndr->depth++;
        if (r->array) {
-               ndr->print(ndr, "%s: ARRAY(%d)", "array", r->count);
+               ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
                ndr->depth++;
                for (cntr_array_1=0;cntr_array_1<r->count;cntr_array_1++) {
                        char *idx_1=NULL;
@@ -4741,7 +4899,7 @@ _PUBLIC_ void ndr_print_srvsvc_NetShareCtr1004(struct ndr_print *ndr, const char
        ndr_print_ptr(ndr, "array", r->array);
        ndr->depth++;
        if (r->array) {
-               ndr->print(ndr, "%s: ARRAY(%d)", "array", r->count);
+               ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
                ndr->depth++;
                for (cntr_array_1=0;cntr_array_1<r->count;cntr_array_1++) {
                        char *idx_1=NULL;
@@ -4874,7 +5032,7 @@ _PUBLIC_ void ndr_print_srvsvc_NetShareCtr1005(struct ndr_print *ndr, const char
        ndr_print_ptr(ndr, "array", r->array);
        ndr->depth++;
        if (r->array) {
-               ndr->print(ndr, "%s: ARRAY(%d)", "array", r->count);
+               ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
                ndr->depth++;
                for (cntr_array_1=0;cntr_array_1<r->count;cntr_array_1++) {
                        char *idx_1=NULL;
@@ -4893,7 +5051,7 @@ static enum ndr_err_code ndr_push_srvsvc_NetShareInfo1006(struct ndr_push *ndr,
 {
        if (ndr_flags & NDR_SCALARS) {
                NDR_CHECK(ndr_push_align(ndr, 4));
-               NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->max_users));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_users));
        }
        if (ndr_flags & NDR_BUFFERS) {
        }
@@ -4904,7 +5062,7 @@ static enum ndr_err_code ndr_pull_srvsvc_NetShareInfo1006(struct ndr_pull *ndr,
 {
        if (ndr_flags & NDR_SCALARS) {
                NDR_CHECK(ndr_pull_align(ndr, 4));
-               NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->max_users));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_users));
        }
        if (ndr_flags & NDR_BUFFERS) {
        }
@@ -4915,7 +5073,7 @@ _PUBLIC_ void ndr_print_srvsvc_NetShareInfo1006(struct ndr_print *ndr, const cha
 {
        ndr_print_struct(ndr, name, "srvsvc_NetShareInfo1006");
        ndr->depth++;
-       ndr_print_int32(ndr, "max_users", r->max_users);
+       ndr_print_uint32(ndr, "max_users", r->max_users);
        ndr->depth--;
 }
 
@@ -4984,7 +5142,7 @@ _PUBLIC_ void ndr_print_srvsvc_NetShareCtr1006(struct ndr_print *ndr, const char
        ndr_print_ptr(ndr, "array", r->array);
        ndr->depth++;
        if (r->array) {
-               ndr->print(ndr, "%s: ARRAY(%d)", "array", r->count);
+               ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
                ndr->depth++;
                for (cntr_array_1=0;cntr_array_1<r->count;cntr_array_1++) {
                        char *idx_1=NULL;
@@ -5133,7 +5291,7 @@ _PUBLIC_ void ndr_print_srvsvc_NetShareCtr1007(struct ndr_print *ndr, const char
        ndr_print_ptr(ndr, "array", r->array);
        ndr->depth++;
        if (r->array) {
-               ndr->print(ndr, "%s: ARRAY(%d)", "array", r->count);
+               ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
                ndr->depth++;
                for (cntr_array_1=0;cntr_array_1<r->count;cntr_array_1++) {
                        char *idx_1=NULL;
@@ -5219,7 +5377,7 @@ _PUBLIC_ void ndr_print_srvsvc_NetShareCtr1501(struct ndr_print *ndr, const char
        ndr_print_ptr(ndr, "array", r->array);
        ndr->depth++;
        if (r->array) {
-               ndr->print(ndr, "%s: ARRAY(%d)", "array", r->count);
+               ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
                ndr->depth++;
                for (cntr_array_1=0;cntr_array_1<r->count;cntr_array_1++) {
                        char *idx_1=NULL;
@@ -6547,6 +6705,7 @@ static enum ndr_err_code ndr_push_srvsvc_NetSrvInfo402(struct ndr_push *ndr, int
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sessreqs));
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->opensearch));
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->activelocks));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->numreqbufs));
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sizereqbufs));
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->numbigbufs));
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->numfiletasks));
@@ -6621,6 +6780,7 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo402(struct ndr_pull *ndr, int
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sessreqs));
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->opensearch));
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->activelocks));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->numreqbufs));
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sizereqbufs));
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->numbigbufs));
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->numfiletasks));
@@ -6712,6 +6872,7 @@ _PUBLIC_ void ndr_print_srvsvc_NetSrvInfo402(struct ndr_print *ndr, const char *
        ndr_print_uint32(ndr, "sessreqs", r->sessreqs);
        ndr_print_uint32(ndr, "opensearch", r->opensearch);
        ndr_print_uint32(ndr, "activelocks", r->activelocks);
+       ndr_print_uint32(ndr, "numreqbufs", r->numreqbufs);
        ndr_print_uint32(ndr, "sizereqbufs", r->sizereqbufs);
        ndr_print_uint32(ndr, "numbigbufs", r->numbigbufs);
        ndr_print_uint32(ndr, "numfiletasks", r->numfiletasks);
@@ -6754,11 +6915,12 @@ static enum ndr_err_code ndr_push_srvsvc_NetSrvInfo403(struct ndr_push *ndr, int
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sessreqs));
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->opensearch));
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->activelocks));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->numreqbufs));
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sizereqbufs));
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->numbigbufs));
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->numfiletasks));
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->alertsched));
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->eroralert));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->erroralert));
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logonalert));
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->accessalert));
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->diskalert));
@@ -6839,11 +7001,12 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo403(struct ndr_pull *ndr, int
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sessreqs));
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->opensearch));
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->activelocks));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->numreqbufs));
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sizereqbufs));
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->numbigbufs));
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->numfiletasks));
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->alertsched));
-               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->eroralert));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->erroralert));
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logonalert));
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->accessalert));
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->diskalert));
@@ -6950,11 +7113,12 @@ _PUBLIC_ void ndr_print_srvsvc_NetSrvInfo403(struct ndr_print *ndr, const char *
        ndr_print_uint32(ndr, "sessreqs", r->sessreqs);
        ndr_print_uint32(ndr, "opensearch", r->opensearch);
        ndr_print_uint32(ndr, "activelocks", r->activelocks);
+       ndr_print_uint32(ndr, "numreqbufs", r->numreqbufs);
        ndr_print_uint32(ndr, "sizereqbufs", r->sizereqbufs);
        ndr_print_uint32(ndr, "numbigbufs", r->numbigbufs);
        ndr_print_uint32(ndr, "numfiletasks", r->numfiletasks);
        ndr_print_uint32(ndr, "alertsched", r->alertsched);
-       ndr_print_uint32(ndr, "eroralert", r->eroralert);
+       ndr_print_uint32(ndr, "erroralert", r->erroralert);
        ndr_print_uint32(ndr, "logonalert", r->logonalert);
        ndr_print_uint32(ndr, "accessalert", r->accessalert);
        ndr_print_uint32(ndr, "diskalert", r->diskalert);
@@ -11388,12 +11552,9 @@ static enum ndr_err_code ndr_push_srvsvc_NetDiskInfo0(struct ndr_push *ndr, int
 {
        if (ndr_flags & NDR_SCALARS) {
                NDR_CHECK(ndr_push_align(ndr, 4));
-               {
-                       uint32_t _flags_save_string = ndr->flags;
-                       ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_LEN4);
-                       NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->disk));
-                       ndr->flags = _flags_save_string;
-               }
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, strlen(r->disk) + 1));
+               NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->disk, strlen(r->disk) + 1, sizeof(uint16_t), CH_UTF16));
        }
        if (ndr_flags & NDR_BUFFERS) {
        }
@@ -11404,12 +11565,9 @@ static enum ndr_err_code ndr_pull_srvsvc_NetDiskInfo0(struct ndr_pull *ndr, int
 {
        if (ndr_flags & NDR_SCALARS) {
                NDR_CHECK(ndr_pull_align(ndr, 4));
-               {
-                       uint32_t _flags_save_string = ndr->flags;
-                       ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_LEN4);
-                       NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->disk));
-                       ndr->flags = _flags_save_string;
-               }
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->__disk_offset));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->__disk_length));
+               NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->disk, r->__disk_length, sizeof(uint16_t), CH_UTF16));
        }
        if (ndr_flags & NDR_BUFFERS) {
        }
@@ -11420,6 +11578,8 @@ _PUBLIC_ void ndr_print_srvsvc_NetDiskInfo0(struct ndr_print *ndr, const char *n
 {
        ndr_print_struct(ndr, name, "srvsvc_NetDiskInfo0");
        ndr->depth++;
+       ndr_print_uint32(ndr, "__disk_offset", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->__disk_offset);
+       ndr_print_uint32(ndr, "__disk_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?strlen(r->disk) + 1:r->__disk_length);
        ndr_print_string(ndr, "disk", r->disk);
        ndr->depth--;
 }
@@ -11498,7 +11658,7 @@ _PUBLIC_ void ndr_print_srvsvc_NetDiskInfo(struct ndr_print *ndr, const char *na
        ndr_print_ptr(ndr, "disks", r->disks);
        ndr->depth++;
        if (r->disks) {
-               ndr->print(ndr, "%s: ARRAY(%d)", "disks", r->count);
+               ndr->print(ndr, "%s: ARRAY(%d)", "disks", (int)r->count);
                ndr->depth++;
                for (cntr_disks_1=0;cntr_disks_1<r->count;cntr_disks_1++) {
                        char *idx_1=NULL;
@@ -11791,7 +11951,7 @@ _PUBLIC_ void ndr_print_srvsvc_NetTransportCtr0(struct ndr_print *ndr, const cha
        ndr_print_ptr(ndr, "array", r->array);
        ndr->depth++;
        if (r->array) {
-               ndr->print(ndr, "%s: ARRAY(%d)", "array", r->count);
+               ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
                ndr->depth++;
                for (cntr_array_1=0;cntr_array_1<r->count;cntr_array_1++) {
                        char *idx_1=NULL;
@@ -12039,7 +12199,7 @@ _PUBLIC_ void ndr_print_srvsvc_NetTransportCtr1(struct ndr_print *ndr, const cha
        ndr_print_ptr(ndr, "array", r->array);
        ndr->depth++;
        if (r->array) {
-               ndr->print(ndr, "%s: ARRAY(%d)", "array", r->count);
+               ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
                ndr->depth++;
                for (cntr_array_1=0;cntr_array_1<r->count;cntr_array_1++) {
                        char *idx_1=NULL;
@@ -12290,7 +12450,7 @@ _PUBLIC_ void ndr_print_srvsvc_NetTransportCtr2(struct ndr_print *ndr, const cha
        ndr_print_ptr(ndr, "array", r->array);
        ndr->depth++;
        if (r->array) {
-               ndr->print(ndr, "%s: ARRAY(%d)", "array", r->count);
+               ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
                ndr->depth++;
                for (cntr_array_1=0;cntr_array_1<r->count;cntr_array_1++) {
                        char *idx_1=NULL;
@@ -12547,7 +12707,7 @@ _PUBLIC_ void ndr_print_srvsvc_NetTransportCtr3(struct ndr_print *ndr, const cha
        ndr_print_ptr(ndr, "array", r->array);
        ndr->depth++;
        if (r->array) {
-               ndr->print(ndr, "%s: ARRAY(%d)", "array", r->count);
+               ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
                ndr->depth++;
                for (cntr_array_1=0;cntr_array_1<r->count;cntr_array_1++) {
                        char *idx_1=NULL;
@@ -12778,6 +12938,44 @@ _PUBLIC_ void ndr_print_srvsvc_NetTransportCtr(struct ndr_print *ndr, const char
        }
 }
 
+static enum ndr_err_code ndr_push_srvsvc_NetTransportInfoCtr(struct ndr_push *ndr, int ndr_flags, const struct srvsvc_NetTransportInfoCtr *r)
+{
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_push_align(ndr, 4));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
+               NDR_CHECK(ndr_push_set_switch_value(ndr, &r->ctr, r->level));
+               NDR_CHECK(ndr_push_srvsvc_NetTransportCtr(ndr, NDR_SCALARS, &r->ctr));
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+               NDR_CHECK(ndr_push_srvsvc_NetTransportCtr(ndr, NDR_BUFFERS, &r->ctr));
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_srvsvc_NetTransportInfoCtr(struct ndr_pull *ndr, int ndr_flags, struct srvsvc_NetTransportInfoCtr *r)
+{
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_pull_align(ndr, 4));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
+               NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->ctr, r->level));
+               NDR_CHECK(ndr_pull_srvsvc_NetTransportCtr(ndr, NDR_SCALARS, &r->ctr));
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+               NDR_CHECK(ndr_pull_srvsvc_NetTransportCtr(ndr, NDR_BUFFERS, &r->ctr));
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_srvsvc_NetTransportInfoCtr(struct ndr_print *ndr, const char *name, const struct srvsvc_NetTransportInfoCtr *r)
+{
+       ndr_print_struct(ndr, name, "srvsvc_NetTransportInfoCtr");
+       ndr->depth++;
+       ndr_print_uint32(ndr, "level", r->level);
+       ndr_print_set_switch_value(ndr, &r->ctr, r->level);
+       ndr_print_srvsvc_NetTransportCtr(ndr, "ctr", &r->ctr);
+       ndr->depth--;
+}
+
 static enum ndr_err_code ndr_push_srvsvc_NetRemoteTODInfo(struct ndr_push *ndr, int ndr_flags, const struct srvsvc_NetRemoteTODInfo *r)
 {
        if (ndr_flags & NDR_SCALARS) {
@@ -12986,15 +13184,10 @@ static enum ndr_err_code ndr_push_srvsvc_NetCharDevEnum(struct ndr_push *ndr, in
                        NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
                        NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_unc, ndr_charset_length(r->in.server_unc, CH_UTF16), sizeof(uint16_t), CH_UTF16));
                }
-               if (r->in.level == NULL) {
-                       return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
-               }
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.level));
-               if (r->in.ctr == NULL) {
+               if (r->in.info_ctr == NULL) {
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
                }
-               NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.ctr, *r->in.level));
-               NDR_CHECK(ndr_push_srvsvc_NetCharDevCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
+               NDR_CHECK(ndr_push_srvsvc_NetCharDevInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.max_buffer));
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.resume_handle));
                if (r->in.resume_handle) {
@@ -13002,15 +13195,10 @@ static enum ndr_err_code ndr_push_srvsvc_NetCharDevEnum(struct ndr_push *ndr, in
                }
        }
        if (flags & NDR_OUT) {
-               if (r->out.level == NULL) {
-                       return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
-               }
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.level));
-               if (r->out.ctr == NULL) {
+               if (r->out.info_ctr == NULL) {
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
                }
-               NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.ctr, *r->out.level));
-               NDR_CHECK(ndr_push_srvsvc_NetCharDevCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
+               NDR_CHECK(ndr_push_srvsvc_NetCharDevInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info_ctr));
                if (r->out.totalentries == NULL) {
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
                }
@@ -13029,8 +13217,7 @@ static enum ndr_err_code ndr_pull_srvsvc_NetCharDevEnum(struct ndr_pull *ndr, in
        uint32_t _ptr_server_unc;
        uint32_t _ptr_resume_handle;
        TALLOC_CTX *_mem_save_server_unc_0;
-       TALLOC_CTX *_mem_save_level_0;
-       TALLOC_CTX *_mem_save_ctr_0;
+       TALLOC_CTX *_mem_save_info_ctr_0;
        TALLOC_CTX *_mem_save_totalentries_0;
        TALLOC_CTX *_mem_save_resume_handle_0;
        if (flags & NDR_IN) {
@@ -13055,20 +13242,12 @@ static enum ndr_err_code ndr_pull_srvsvc_NetCharDevEnum(struct ndr_pull *ndr, in
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0);
                }
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
-                       NDR_PULL_ALLOC(ndr, r->in.level);
-               }
-               _mem_save_level_0 = NDR_PULL_GET_MEM_CTX(ndr);
-               NDR_PULL_SET_MEM_CTX(ndr, r->in.level, LIBNDR_FLAG_REF_ALLOC);
-               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.level));
-               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level_0, LIBNDR_FLAG_REF_ALLOC);
-               if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
-                       NDR_PULL_ALLOC(ndr, r->in.ctr);
+                       NDR_PULL_ALLOC(ndr, r->in.info_ctr);
                }
-               _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
-               NDR_PULL_SET_MEM_CTX(ndr, r->in.ctr, LIBNDR_FLAG_REF_ALLOC);
-               NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.ctr, *r->in.level));
-               NDR_CHECK(ndr_pull_srvsvc_NetCharDevCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
-               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
+               _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
+               NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
+               NDR_CHECK(ndr_pull_srvsvc_NetCharDevInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
+               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.max_buffer));
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_resume_handle));
                if (_ptr_resume_handle) {
@@ -13082,29 +13261,19 @@ static enum ndr_err_code ndr_pull_srvsvc_NetCharDevEnum(struct ndr_pull *ndr, in
                        NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.resume_handle));
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_resume_handle_0, 0);
                }
-               NDR_PULL_ALLOC(ndr, r->out.level);
-               *r->out.level = *r->in.level;
-               NDR_PULL_ALLOC(ndr, r->out.ctr);
-               *r->out.ctr = *r->in.ctr;
+               NDR_PULL_ALLOC(ndr, r->out.info_ctr);
+               *r->out.info_ctr = *r->in.info_ctr;
                NDR_PULL_ALLOC(ndr, r->out.totalentries);
                ZERO_STRUCTP(r->out.totalentries);
        }
        if (flags & NDR_OUT) {
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
-                       NDR_PULL_ALLOC(ndr, r->out.level);
-               }
-               _mem_save_level_0 = NDR_PULL_GET_MEM_CTX(ndr);
-               NDR_PULL_SET_MEM_CTX(ndr, r->out.level, LIBNDR_FLAG_REF_ALLOC);
-               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.level));
-               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level_0, LIBNDR_FLAG_REF_ALLOC);
-               if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
-                       NDR_PULL_ALLOC(ndr, r->out.ctr);
+                       NDR_PULL_ALLOC(ndr, r->out.info_ctr);
                }
-               _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
-               NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
-               NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.ctr, *r->out.level));
-               NDR_CHECK(ndr_pull_srvsvc_NetCharDevCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
-               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
+               _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
+               NDR_PULL_SET_MEM_CTX(ndr, r->out.info_ctr, LIBNDR_FLAG_REF_ALLOC);
+               NDR_CHECK(ndr_pull_srvsvc_NetCharDevInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info_ctr));
+               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
                        NDR_PULL_ALLOC(ndr, r->out.totalentries);
                }
@@ -13145,14 +13314,9 @@ _PUBLIC_ void ndr_print_srvsvc_NetCharDevEnum(struct ndr_print *ndr, const char
                        ndr_print_string(ndr, "server_unc", r->in.server_unc);
                }
                ndr->depth--;
-               ndr_print_ptr(ndr, "level", r->in.level);
-               ndr->depth++;
-               ndr_print_uint32(ndr, "level", *r->in.level);
-               ndr->depth--;
-               ndr_print_ptr(ndr, "ctr", r->in.ctr);
+               ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
                ndr->depth++;
-               ndr_print_set_switch_value(ndr, r->in.ctr, *r->in.level);
-               ndr_print_srvsvc_NetCharDevCtr(ndr, "ctr", r->in.ctr);
+               ndr_print_srvsvc_NetCharDevInfoCtr(ndr, "info_ctr", r->in.info_ctr);
                ndr->depth--;
                ndr_print_uint32(ndr, "max_buffer", r->in.max_buffer);
                ndr_print_ptr(ndr, "resume_handle", r->in.resume_handle);
@@ -13166,14 +13330,9 @@ _PUBLIC_ void ndr_print_srvsvc_NetCharDevEnum(struct ndr_print *ndr, const char
        if (flags & NDR_OUT) {
                ndr_print_struct(ndr, "out", "srvsvc_NetCharDevEnum");
                ndr->depth++;
-               ndr_print_ptr(ndr, "level", r->out.level);
-               ndr->depth++;
-               ndr_print_uint32(ndr, "level", *r->out.level);
-               ndr->depth--;
-               ndr_print_ptr(ndr, "ctr", r->out.ctr);
+               ndr_print_ptr(ndr, "info_ctr", r->out.info_ctr);
                ndr->depth++;
-               ndr_print_set_switch_value(ndr, r->out.ctr, *r->out.level);
-               ndr_print_srvsvc_NetCharDevCtr(ndr, "ctr", r->out.ctr);
+               ndr_print_srvsvc_NetCharDevInfoCtr(ndr, "info_ctr", r->out.info_ctr);
                ndr->depth--;
                ndr_print_ptr(ndr, "totalentries", r->out.totalentries);
                ndr->depth++;
@@ -13409,15 +13568,10 @@ static enum ndr_err_code ndr_push_srvsvc_NetCharDevQEnum(struct ndr_push *ndr, i
                        NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.user, CH_UTF16)));
                        NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.user, ndr_charset_length(r->in.user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
                }
-               if (r->in.level == NULL) {
-                       return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
-               }
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.level));
-               if (r->in.ctr == NULL) {
+               if (r->in.info_ctr == NULL) {
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
                }
-               NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.ctr, *r->in.level));
-               NDR_CHECK(ndr_push_srvsvc_NetCharDevQCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
+               NDR_CHECK(ndr_push_srvsvc_NetCharDevQInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.max_buffer));
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.resume_handle));
                if (r->in.resume_handle) {
@@ -13425,15 +13579,10 @@ static enum ndr_err_code ndr_push_srvsvc_NetCharDevQEnum(struct ndr_push *ndr, i
                }
        }
        if (flags & NDR_OUT) {
-               if (r->out.level == NULL) {
-                       return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
-               }
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.level));
-               if (r->out.ctr == NULL) {
+               if (r->out.info_ctr == NULL) {
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
                }
-               NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.ctr, *r->out.level));
-               NDR_CHECK(ndr_push_srvsvc_NetCharDevQCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
+               NDR_CHECK(ndr_push_srvsvc_NetCharDevQInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info_ctr));
                if (r->out.totalentries == NULL) {
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
                }
@@ -13454,8 +13603,7 @@ static enum ndr_err_code ndr_pull_srvsvc_NetCharDevQEnum(struct ndr_pull *ndr, i
        uint32_t _ptr_resume_handle;
        TALLOC_CTX *_mem_save_server_unc_0;
        TALLOC_CTX *_mem_save_user_0;
-       TALLOC_CTX *_mem_save_level_0;
-       TALLOC_CTX *_mem_save_ctr_0;
+       TALLOC_CTX *_mem_save_info_ctr_0;
        TALLOC_CTX *_mem_save_totalentries_0;
        TALLOC_CTX *_mem_save_resume_handle_0;
        if (flags & NDR_IN) {
@@ -13498,20 +13646,12 @@ static enum ndr_err_code ndr_pull_srvsvc_NetCharDevQEnum(struct ndr_pull *ndr, i
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
                }
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
-                       NDR_PULL_ALLOC(ndr, r->in.level);
-               }
-               _mem_save_level_0 = NDR_PULL_GET_MEM_CTX(ndr);
-               NDR_PULL_SET_MEM_CTX(ndr, r->in.level, LIBNDR_FLAG_REF_ALLOC);
-               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.level));
-               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level_0, LIBNDR_FLAG_REF_ALLOC);
-               if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
-                       NDR_PULL_ALLOC(ndr, r->in.ctr);
+                       NDR_PULL_ALLOC(ndr, r->in.info_ctr);
                }
-               _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
-               NDR_PULL_SET_MEM_CTX(ndr, r->in.ctr, LIBNDR_FLAG_REF_ALLOC);
-               NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.ctr, *r->in.level));
-               NDR_CHECK(ndr_pull_srvsvc_NetCharDevQCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
-               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
+               _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
+               NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
+               NDR_CHECK(ndr_pull_srvsvc_NetCharDevQInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
+               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.max_buffer));
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_resume_handle));
                if (_ptr_resume_handle) {
@@ -13525,29 +13665,19 @@ static enum ndr_err_code ndr_pull_srvsvc_NetCharDevQEnum(struct ndr_pull *ndr, i
                        NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.resume_handle));
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_resume_handle_0, 0);
                }
-               NDR_PULL_ALLOC(ndr, r->out.level);
-               *r->out.level = *r->in.level;
-               NDR_PULL_ALLOC(ndr, r->out.ctr);
-               *r->out.ctr = *r->in.ctr;
+               NDR_PULL_ALLOC(ndr, r->out.info_ctr);
+               *r->out.info_ctr = *r->in.info_ctr;
                NDR_PULL_ALLOC(ndr, r->out.totalentries);
                ZERO_STRUCTP(r->out.totalentries);
        }
        if (flags & NDR_OUT) {
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
-                       NDR_PULL_ALLOC(ndr, r->out.level);
-               }
-               _mem_save_level_0 = NDR_PULL_GET_MEM_CTX(ndr);
-               NDR_PULL_SET_MEM_CTX(ndr, r->out.level, LIBNDR_FLAG_REF_ALLOC);
-               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.level));
-               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level_0, LIBNDR_FLAG_REF_ALLOC);
-               if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
-                       NDR_PULL_ALLOC(ndr, r->out.ctr);
+                       NDR_PULL_ALLOC(ndr, r->out.info_ctr);
                }
-               _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
-               NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
-               NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.ctr, *r->out.level));
-               NDR_CHECK(ndr_pull_srvsvc_NetCharDevQCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
-               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
+               _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
+               NDR_PULL_SET_MEM_CTX(ndr, r->out.info_ctr, LIBNDR_FLAG_REF_ALLOC);
+               NDR_CHECK(ndr_pull_srvsvc_NetCharDevQInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info_ctr));
+               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
                        NDR_PULL_ALLOC(ndr, r->out.totalentries);
                }
@@ -13594,14 +13724,9 @@ _PUBLIC_ void ndr_print_srvsvc_NetCharDevQEnum(struct ndr_print *ndr, const char
                        ndr_print_string(ndr, "user", r->in.user);
                }
                ndr->depth--;
-               ndr_print_ptr(ndr, "level", r->in.level);
-               ndr->depth++;
-               ndr_print_uint32(ndr, "level", *r->in.level);
-               ndr->depth--;
-               ndr_print_ptr(ndr, "ctr", r->in.ctr);
+               ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
                ndr->depth++;
-               ndr_print_set_switch_value(ndr, r->in.ctr, *r->in.level);
-               ndr_print_srvsvc_NetCharDevQCtr(ndr, "ctr", r->in.ctr);
+               ndr_print_srvsvc_NetCharDevQInfoCtr(ndr, "info_ctr", r->in.info_ctr);
                ndr->depth--;
                ndr_print_uint32(ndr, "max_buffer", r->in.max_buffer);
                ndr_print_ptr(ndr, "resume_handle", r->in.resume_handle);
@@ -13615,14 +13740,9 @@ _PUBLIC_ void ndr_print_srvsvc_NetCharDevQEnum(struct ndr_print *ndr, const char
        if (flags & NDR_OUT) {
                ndr_print_struct(ndr, "out", "srvsvc_NetCharDevQEnum");
                ndr->depth++;
-               ndr_print_ptr(ndr, "level", r->out.level);
-               ndr->depth++;
-               ndr_print_uint32(ndr, "level", *r->out.level);
-               ndr->depth--;
-               ndr_print_ptr(ndr, "ctr", r->out.ctr);
+               ndr_print_ptr(ndr, "info_ctr", r->out.info_ctr);
                ndr->depth++;
-               ndr_print_set_switch_value(ndr, r->out.ctr, *r->out.level);
-               ndr_print_srvsvc_NetCharDevQCtr(ndr, "ctr", r->out.ctr);
+               ndr_print_srvsvc_NetCharDevQInfoCtr(ndr, "info_ctr", r->out.info_ctr);
                ndr->depth--;
                ndr_print_ptr(ndr, "totalentries", r->out.totalentries);
                ndr->depth++;
@@ -14108,15 +14228,10 @@ static enum ndr_err_code ndr_push_srvsvc_NetConnEnum(struct ndr_push *ndr, int f
                        NDR_CHECK(ndr_push_uint32(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));
                }
-               if (r->in.level == NULL) {
-                       return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
-               }
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.level));
-               if (r->in.ctr == NULL) {
+               if (r->in.info_ctr == NULL) {
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
                }
-               NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.ctr, *r->in.level));
-               NDR_CHECK(ndr_push_srvsvc_NetConnCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
+               NDR_CHECK(ndr_push_srvsvc_NetConnInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.max_buffer));
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.resume_handle));
                if (r->in.resume_handle) {
@@ -14124,15 +14239,10 @@ static enum ndr_err_code ndr_push_srvsvc_NetConnEnum(struct ndr_push *ndr, int f
                }
        }
        if (flags & NDR_OUT) {
-               if (r->out.level == NULL) {
-                       return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
-               }
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.level));
-               if (r->out.ctr == NULL) {
+               if (r->out.info_ctr == NULL) {
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
                }
-               NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.ctr, *r->out.level));
-               NDR_CHECK(ndr_push_srvsvc_NetConnCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
+               NDR_CHECK(ndr_push_srvsvc_NetConnInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info_ctr));
                if (r->out.totalentries == NULL) {
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
                }
@@ -14153,8 +14263,7 @@ static enum ndr_err_code ndr_pull_srvsvc_NetConnEnum(struct ndr_pull *ndr, int f
        uint32_t _ptr_resume_handle;
        TALLOC_CTX *_mem_save_server_unc_0;
        TALLOC_CTX *_mem_save_path_0;
-       TALLOC_CTX *_mem_save_level_0;
-       TALLOC_CTX *_mem_save_ctr_0;
+       TALLOC_CTX *_mem_save_info_ctr_0;
        TALLOC_CTX *_mem_save_totalentries_0;
        TALLOC_CTX *_mem_save_resume_handle_0;
        if (flags & NDR_IN) {
@@ -14197,20 +14306,12 @@ static enum ndr_err_code ndr_pull_srvsvc_NetConnEnum(struct ndr_pull *ndr, int f
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_path_0, 0);
                }
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
-                       NDR_PULL_ALLOC(ndr, r->in.level);
-               }
-               _mem_save_level_0 = NDR_PULL_GET_MEM_CTX(ndr);
-               NDR_PULL_SET_MEM_CTX(ndr, r->in.level, LIBNDR_FLAG_REF_ALLOC);
-               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.level));
-               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level_0, LIBNDR_FLAG_REF_ALLOC);
-               if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
-                       NDR_PULL_ALLOC(ndr, r->in.ctr);
+                       NDR_PULL_ALLOC(ndr, r->in.info_ctr);
                }
-               _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
-               NDR_PULL_SET_MEM_CTX(ndr, r->in.ctr, LIBNDR_FLAG_REF_ALLOC);
-               NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.ctr, *r->in.level));
-               NDR_CHECK(ndr_pull_srvsvc_NetConnCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
-               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
+               _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
+               NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
+               NDR_CHECK(ndr_pull_srvsvc_NetConnInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
+               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.max_buffer));
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_resume_handle));
                if (_ptr_resume_handle) {
@@ -14224,29 +14325,19 @@ static enum ndr_err_code ndr_pull_srvsvc_NetConnEnum(struct ndr_pull *ndr, int f
                        NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.resume_handle));
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_resume_handle_0, 0);
                }
-               NDR_PULL_ALLOC(ndr, r->out.level);
-               *r->out.level = *r->in.level;
-               NDR_PULL_ALLOC(ndr, r->out.ctr);
-               *r->out.ctr = *r->in.ctr;
+               NDR_PULL_ALLOC(ndr, r->out.info_ctr);
+               *r->out.info_ctr = *r->in.info_ctr;
                NDR_PULL_ALLOC(ndr, r->out.totalentries);
                ZERO_STRUCTP(r->out.totalentries);
        }
        if (flags & NDR_OUT) {
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
-                       NDR_PULL_ALLOC(ndr, r->out.level);
-               }
-               _mem_save_level_0 = NDR_PULL_GET_MEM_CTX(ndr);
-               NDR_PULL_SET_MEM_CTX(ndr, r->out.level, LIBNDR_FLAG_REF_ALLOC);
-               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.level));
-               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level_0, LIBNDR_FLAG_REF_ALLOC);
-               if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
-                       NDR_PULL_ALLOC(ndr, r->out.ctr);
+                       NDR_PULL_ALLOC(ndr, r->out.info_ctr);
                }
-               _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
-               NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
-               NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.ctr, *r->out.level));
-               NDR_CHECK(ndr_pull_srvsvc_NetConnCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
-               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
+               _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
+               NDR_PULL_SET_MEM_CTX(ndr, r->out.info_ctr, LIBNDR_FLAG_REF_ALLOC);
+               NDR_CHECK(ndr_pull_srvsvc_NetConnInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info_ctr));
+               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
                        NDR_PULL_ALLOC(ndr, r->out.totalentries);
                }
@@ -14293,14 +14384,9 @@ _PUBLIC_ void ndr_print_srvsvc_NetConnEnum(struct ndr_print *ndr, const char *na
                        ndr_print_string(ndr, "path", r->in.path);
                }
                ndr->depth--;
-               ndr_print_ptr(ndr, "level", r->in.level);
-               ndr->depth++;
-               ndr_print_uint32(ndr, "level", *r->in.level);
-               ndr->depth--;
-               ndr_print_ptr(ndr, "ctr", r->in.ctr);
+               ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
                ndr->depth++;
-               ndr_print_set_switch_value(ndr, r->in.ctr, *r->in.level);
-               ndr_print_srvsvc_NetConnCtr(ndr, "ctr", r->in.ctr);
+               ndr_print_srvsvc_NetConnInfoCtr(ndr, "info_ctr", r->in.info_ctr);
                ndr->depth--;
                ndr_print_uint32(ndr, "max_buffer", r->in.max_buffer);
                ndr_print_ptr(ndr, "resume_handle", r->in.resume_handle);
@@ -14314,14 +14400,9 @@ _PUBLIC_ void ndr_print_srvsvc_NetConnEnum(struct ndr_print *ndr, const char *na
        if (flags & NDR_OUT) {
                ndr_print_struct(ndr, "out", "srvsvc_NetConnEnum");
                ndr->depth++;
-               ndr_print_ptr(ndr, "level", r->out.level);
-               ndr->depth++;
-               ndr_print_uint32(ndr, "level", *r->out.level);
-               ndr->depth--;
-               ndr_print_ptr(ndr, "ctr", r->out.ctr);
+               ndr_print_ptr(ndr, "info_ctr", r->out.info_ctr);
                ndr->depth++;
-               ndr_print_set_switch_value(ndr, r->out.ctr, *r->out.level);
-               ndr_print_srvsvc_NetConnCtr(ndr, "ctr", r->out.ctr);
+               ndr_print_srvsvc_NetConnInfoCtr(ndr, "info_ctr", r->out.info_ctr);
                ndr->depth--;
                ndr_print_ptr(ndr, "totalentries", r->out.totalentries);
                ndr->depth++;
@@ -14363,15 +14444,10 @@ static enum ndr_err_code ndr_push_srvsvc_NetFileEnum(struct ndr_push *ndr, int f
                        NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.user, CH_UTF16)));
                        NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.user, ndr_charset_length(r->in.user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
                }
-               if (r->in.level == NULL) {
-                       return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
-               }
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.level));
-               if (r->in.ctr == NULL) {
+               if (r->in.info_ctr == NULL) {
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
                }
-               NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.ctr, *r->in.level));
-               NDR_CHECK(ndr_push_srvsvc_NetFileCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
+               NDR_CHECK(ndr_push_srvsvc_NetFileInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.max_buffer));
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.resume_handle));
                if (r->in.resume_handle) {
@@ -14379,15 +14455,10 @@ static enum ndr_err_code ndr_push_srvsvc_NetFileEnum(struct ndr_push *ndr, int f
                }
        }
        if (flags & NDR_OUT) {
-               if (r->out.level == NULL) {
-                       return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
-               }
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.level));
-               if (r->out.ctr == NULL) {
+               if (r->out.info_ctr == NULL) {
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
                }
-               NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.ctr, *r->out.level));
-               NDR_CHECK(ndr_push_srvsvc_NetFileCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
+               NDR_CHECK(ndr_push_srvsvc_NetFileInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info_ctr));
                if (r->out.totalentries == NULL) {
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
                }
@@ -14410,8 +14481,7 @@ static enum ndr_err_code ndr_pull_srvsvc_NetFileEnum(struct ndr_pull *ndr, int f
        TALLOC_CTX *_mem_save_server_unc_0;
        TALLOC_CTX *_mem_save_path_0;
        TALLOC_CTX *_mem_save_user_0;
-       TALLOC_CTX *_mem_save_level_0;
-       TALLOC_CTX *_mem_save_ctr_0;
+       TALLOC_CTX *_mem_save_info_ctr_0;
        TALLOC_CTX *_mem_save_totalentries_0;
        TALLOC_CTX *_mem_save_resume_handle_0;
        if (flags & NDR_IN) {
@@ -14472,20 +14542,12 @@ static enum ndr_err_code ndr_pull_srvsvc_NetFileEnum(struct ndr_pull *ndr, int f
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
                }
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
-                       NDR_PULL_ALLOC(ndr, r->in.level);
-               }
-               _mem_save_level_0 = NDR_PULL_GET_MEM_CTX(ndr);
-               NDR_PULL_SET_MEM_CTX(ndr, r->in.level, LIBNDR_FLAG_REF_ALLOC);
-               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.level));
-               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level_0, LIBNDR_FLAG_REF_ALLOC);
-               if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
-                       NDR_PULL_ALLOC(ndr, r->in.ctr);
+                       NDR_PULL_ALLOC(ndr, r->in.info_ctr);
                }
-               _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
-               NDR_PULL_SET_MEM_CTX(ndr, r->in.ctr, LIBNDR_FLAG_REF_ALLOC);
-               NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.ctr, *r->in.level));
-               NDR_CHECK(ndr_pull_srvsvc_NetFileCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
-               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
+               _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
+               NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
+               NDR_CHECK(ndr_pull_srvsvc_NetFileInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
+               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.max_buffer));
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_resume_handle));
                if (_ptr_resume_handle) {
@@ -14499,29 +14561,19 @@ static enum ndr_err_code ndr_pull_srvsvc_NetFileEnum(struct ndr_pull *ndr, int f
                        NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.resume_handle));
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_resume_handle_0, 0);
                }
-               NDR_PULL_ALLOC(ndr, r->out.level);
-               *r->out.level = *r->in.level;
-               NDR_PULL_ALLOC(ndr, r->out.ctr);
-               *r->out.ctr = *r->in.ctr;
+               NDR_PULL_ALLOC(ndr, r->out.info_ctr);
+               *r->out.info_ctr = *r->in.info_ctr;
                NDR_PULL_ALLOC(ndr, r->out.totalentries);
                ZERO_STRUCTP(r->out.totalentries);
        }
        if (flags & NDR_OUT) {
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
-                       NDR_PULL_ALLOC(ndr, r->out.level);
-               }
-               _mem_save_level_0 = NDR_PULL_GET_MEM_CTX(ndr);
-               NDR_PULL_SET_MEM_CTX(ndr, r->out.level, LIBNDR_FLAG_REF_ALLOC);
-               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.level));
-               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level_0, LIBNDR_FLAG_REF_ALLOC);
-               if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
-                       NDR_PULL_ALLOC(ndr, r->out.ctr);
+                       NDR_PULL_ALLOC(ndr, r->out.info_ctr);
                }
-               _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
-               NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
-               NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.ctr, *r->out.level));
-               NDR_CHECK(ndr_pull_srvsvc_NetFileCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
-               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
+               _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
+               NDR_PULL_SET_MEM_CTX(ndr, r->out.info_ctr, LIBNDR_FLAG_REF_ALLOC);
+               NDR_CHECK(ndr_pull_srvsvc_NetFileInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info_ctr));
+               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
                        NDR_PULL_ALLOC(ndr, r->out.totalentries);
                }
@@ -14574,14 +14626,9 @@ _PUBLIC_ void ndr_print_srvsvc_NetFileEnum(struct ndr_print *ndr, const char *na
                        ndr_print_string(ndr, "user", r->in.user);
                }
                ndr->depth--;
-               ndr_print_ptr(ndr, "level", r->in.level);
-               ndr->depth++;
-               ndr_print_uint32(ndr, "level", *r->in.level);
-               ndr->depth--;
-               ndr_print_ptr(ndr, "ctr", r->in.ctr);
+               ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
                ndr->depth++;
-               ndr_print_set_switch_value(ndr, r->in.ctr, *r->in.level);
-               ndr_print_srvsvc_NetFileCtr(ndr, "ctr", r->in.ctr);
+               ndr_print_srvsvc_NetFileInfoCtr(ndr, "info_ctr", r->in.info_ctr);
                ndr->depth--;
                ndr_print_uint32(ndr, "max_buffer", r->in.max_buffer);
                ndr_print_ptr(ndr, "resume_handle", r->in.resume_handle);
@@ -14595,14 +14642,9 @@ _PUBLIC_ void ndr_print_srvsvc_NetFileEnum(struct ndr_print *ndr, const char *na
        if (flags & NDR_OUT) {
                ndr_print_struct(ndr, "out", "srvsvc_NetFileEnum");
                ndr->depth++;
-               ndr_print_ptr(ndr, "level", r->out.level);
-               ndr->depth++;
-               ndr_print_uint32(ndr, "level", *r->out.level);
-               ndr->depth--;
-               ndr_print_ptr(ndr, "ctr", r->out.ctr);
+               ndr_print_ptr(ndr, "info_ctr", r->out.info_ctr);
                ndr->depth++;
-               ndr_print_set_switch_value(ndr, r->out.ctr, *r->out.level);
-               ndr_print_srvsvc_NetFileCtr(ndr, "ctr", r->out.ctr);
+               ndr_print_srvsvc_NetFileInfoCtr(ndr, "info_ctr", r->out.info_ctr);
                ndr->depth--;
                ndr_print_ptr(ndr, "totalentries", r->out.totalentries);
                ndr->depth++;
@@ -14824,15 +14866,10 @@ static enum ndr_err_code ndr_push_srvsvc_NetSessEnum(struct ndr_push *ndr, int f
                        NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.user, CH_UTF16)));
                        NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.user, ndr_charset_length(r->in.user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
                }
-               if (r->in.level == NULL) {
-                       return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
-               }
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.level));
-               if (r->in.ctr == NULL) {
+               if (r->in.info_ctr == NULL) {
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
                }
-               NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.ctr, *r->in.level));
-               NDR_CHECK(ndr_push_srvsvc_NetSessCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
+               NDR_CHECK(ndr_push_srvsvc_NetSessInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.max_buffer));
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.resume_handle));
                if (r->in.resume_handle) {
@@ -14840,15 +14877,10 @@ static enum ndr_err_code ndr_push_srvsvc_NetSessEnum(struct ndr_push *ndr, int f
                }
        }
        if (flags & NDR_OUT) {
-               if (r->out.level == NULL) {
-                       return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
-               }
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.level));
-               if (r->out.ctr == NULL) {
+               if (r->out.info_ctr == NULL) {
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
                }
-               NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.ctr, *r->out.level));
-               NDR_CHECK(ndr_push_srvsvc_NetSessCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
+               NDR_CHECK(ndr_push_srvsvc_NetSessInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info_ctr));
                if (r->out.totalentries == NULL) {
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
                }
@@ -14871,8 +14903,7 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSessEnum(struct ndr_pull *ndr, int f
        TALLOC_CTX *_mem_save_server_unc_0;
        TALLOC_CTX *_mem_save_client_0;
        TALLOC_CTX *_mem_save_user_0;
-       TALLOC_CTX *_mem_save_level_0;
-       TALLOC_CTX *_mem_save_ctr_0;
+       TALLOC_CTX *_mem_save_info_ctr_0;
        TALLOC_CTX *_mem_save_totalentries_0;
        TALLOC_CTX *_mem_save_resume_handle_0;
        if (flags & NDR_IN) {
@@ -14933,20 +14964,12 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSessEnum(struct ndr_pull *ndr, int f
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
                }
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
-                       NDR_PULL_ALLOC(ndr, r->in.level);
-               }
-               _mem_save_level_0 = NDR_PULL_GET_MEM_CTX(ndr);
-               NDR_PULL_SET_MEM_CTX(ndr, r->in.level, LIBNDR_FLAG_REF_ALLOC);
-               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.level));
-               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level_0, LIBNDR_FLAG_REF_ALLOC);
-               if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
-                       NDR_PULL_ALLOC(ndr, r->in.ctr);
+                       NDR_PULL_ALLOC(ndr, r->in.info_ctr);
                }
-               _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
-               NDR_PULL_SET_MEM_CTX(ndr, r->in.ctr, LIBNDR_FLAG_REF_ALLOC);
-               NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.ctr, *r->in.level));
-               NDR_CHECK(ndr_pull_srvsvc_NetSessCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
-               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
+               _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
+               NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
+               NDR_CHECK(ndr_pull_srvsvc_NetSessInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
+               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.max_buffer));
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_resume_handle));
                if (_ptr_resume_handle) {
@@ -14960,29 +14983,19 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSessEnum(struct ndr_pull *ndr, int f
                        NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.resume_handle));
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_resume_handle_0, 0);
                }
-               NDR_PULL_ALLOC(ndr, r->out.level);
-               *r->out.level = *r->in.level;
-               NDR_PULL_ALLOC(ndr, r->out.ctr);
-               *r->out.ctr = *r->in.ctr;
+               NDR_PULL_ALLOC(ndr, r->out.info_ctr);
+               *r->out.info_ctr = *r->in.info_ctr;
                NDR_PULL_ALLOC(ndr, r->out.totalentries);
                ZERO_STRUCTP(r->out.totalentries);
        }
        if (flags & NDR_OUT) {
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
-                       NDR_PULL_ALLOC(ndr, r->out.level);
-               }
-               _mem_save_level_0 = NDR_PULL_GET_MEM_CTX(ndr);
-               NDR_PULL_SET_MEM_CTX(ndr, r->out.level, LIBNDR_FLAG_REF_ALLOC);
-               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.level));
-               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level_0, LIBNDR_FLAG_REF_ALLOC);
-               if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
-                       NDR_PULL_ALLOC(ndr, r->out.ctr);
+                       NDR_PULL_ALLOC(ndr, r->out.info_ctr);
                }
-               _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
-               NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
-               NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.ctr, *r->out.level));
-               NDR_CHECK(ndr_pull_srvsvc_NetSessCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
-               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
+               _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
+               NDR_PULL_SET_MEM_CTX(ndr, r->out.info_ctr, LIBNDR_FLAG_REF_ALLOC);
+               NDR_CHECK(ndr_pull_srvsvc_NetSessInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info_ctr));
+               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
                        NDR_PULL_ALLOC(ndr, r->out.totalentries);
                }
@@ -15035,14 +15048,9 @@ _PUBLIC_ void ndr_print_srvsvc_NetSessEnum(struct ndr_print *ndr, const char *na
                        ndr_print_string(ndr, "user", r->in.user);
                }
                ndr->depth--;
-               ndr_print_ptr(ndr, "level", r->in.level);
-               ndr->depth++;
-               ndr_print_uint32(ndr, "level", *r->in.level);
-               ndr->depth--;
-               ndr_print_ptr(ndr, "ctr", r->in.ctr);
+               ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
                ndr->depth++;
-               ndr_print_set_switch_value(ndr, r->in.ctr, *r->in.level);
-               ndr_print_srvsvc_NetSessCtr(ndr, "ctr", r->in.ctr);
+               ndr_print_srvsvc_NetSessInfoCtr(ndr, "info_ctr", r->in.info_ctr);
                ndr->depth--;
                ndr_print_uint32(ndr, "max_buffer", r->in.max_buffer);
                ndr_print_ptr(ndr, "resume_handle", r->in.resume_handle);
@@ -15056,14 +15064,9 @@ _PUBLIC_ void ndr_print_srvsvc_NetSessEnum(struct ndr_print *ndr, const char *na
        if (flags & NDR_OUT) {
                ndr_print_struct(ndr, "out", "srvsvc_NetSessEnum");
                ndr->depth++;
-               ndr_print_ptr(ndr, "level", r->out.level);
-               ndr->depth++;
-               ndr_print_uint32(ndr, "level", *r->out.level);
-               ndr->depth--;
-               ndr_print_ptr(ndr, "ctr", r->out.ctr);
+               ndr_print_ptr(ndr, "info_ctr", r->out.info_ctr);
                ndr->depth++;
-               ndr_print_set_switch_value(ndr, r->out.ctr, *r->out.level);
-               ndr_print_srvsvc_NetSessCtr(ndr, "ctr", r->out.ctr);
+               ndr_print_srvsvc_NetSessInfoCtr(ndr, "info_ctr", r->out.info_ctr);
                ndr->depth--;
                ndr_print_ptr(ndr, "totalentries", r->out.totalentries);
                ndr->depth++;
@@ -16540,7 +16543,10 @@ static enum ndr_err_code ndr_push_srvsvc_NetServerStatisticsGet(struct ndr_push
                if (r->out.stats == NULL) {
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
                }
-               NDR_CHECK(ndr_push_srvsvc_Statistics(ndr, NDR_SCALARS, r->out.stats));
+               NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.stats));
+               if (*r->out.stats) {
+                       NDR_CHECK(ndr_push_srvsvc_Statistics(ndr, NDR_SCALARS, *r->out.stats));
+               }
                NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
        }
        return NDR_ERR_SUCCESS;
@@ -16550,9 +16556,11 @@ static enum ndr_err_code ndr_pull_srvsvc_NetServerStatisticsGet(struct ndr_pull
 {
        uint32_t _ptr_server_unc;
        uint32_t _ptr_service;
+       uint32_t _ptr_stats;
        TALLOC_CTX *_mem_save_server_unc_0;
        TALLOC_CTX *_mem_save_service_0;
        TALLOC_CTX *_mem_save_stats_0;
+       TALLOC_CTX *_mem_save_stats_1;
        if (flags & NDR_IN) {
                ZERO_STRUCT(r->out);
 
@@ -16603,7 +16611,18 @@ static enum ndr_err_code ndr_pull_srvsvc_NetServerStatisticsGet(struct ndr_pull
                }
                _mem_save_stats_0 = NDR_PULL_GET_MEM_CTX(ndr);
                NDR_PULL_SET_MEM_CTX(ndr, r->out.stats, LIBNDR_FLAG_REF_ALLOC);
-               NDR_CHECK(ndr_pull_srvsvc_Statistics(ndr, NDR_SCALARS, r->out.stats));
+               NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_stats));
+               if (_ptr_stats) {
+                       NDR_PULL_ALLOC(ndr, *r->out.stats);
+               } else {
+                       *r->out.stats = NULL;
+               }
+               if (*r->out.stats) {
+                       _mem_save_stats_1 = NDR_PULL_GET_MEM_CTX(ndr);
+                       NDR_PULL_SET_MEM_CTX(ndr, *r->out.stats, 0);
+                       NDR_CHECK(ndr_pull_srvsvc_Statistics(ndr, NDR_SCALARS, *r->out.stats));
+                       NDR_PULL_SET_MEM_CTX(ndr, _mem_save_stats_1, 0);
+               }
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_stats_0, LIBNDR_FLAG_REF_ALLOC);
                NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
        }
@@ -16641,7 +16660,12 @@ _PUBLIC_ void ndr_print_srvsvc_NetServerStatisticsGet(struct ndr_print *ndr, con
                ndr->depth++;
                ndr_print_ptr(ndr, "stats", r->out.stats);
                ndr->depth++;
-               ndr_print_srvsvc_Statistics(ndr, "stats", r->out.stats);
+               ndr_print_ptr(ndr, "stats", *r->out.stats);
+               ndr->depth++;
+               if (*r->out.stats) {
+                       ndr_print_srvsvc_Statistics(ndr, "stats", *r->out.stats);
+               }
+               ndr->depth--;
                ndr->depth--;
                ndr_print_WERROR(ndr, "result", r->out.result);
                ndr->depth--;
@@ -16742,15 +16766,10 @@ static enum ndr_err_code ndr_push_srvsvc_NetTransportEnum(struct ndr_push *ndr,
                        NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
                        NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_unc, ndr_charset_length(r->in.server_unc, CH_UTF16), sizeof(uint16_t), CH_UTF16));
                }
-               if (r->in.level == NULL) {
-                       return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
-               }
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.level));
                if (r->in.transports == NULL) {
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
                }
-               NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.transports, *r->in.level));
-               NDR_CHECK(ndr_push_srvsvc_NetTransportCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.transports));
+               NDR_CHECK(ndr_push_srvsvc_NetTransportInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.transports));
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.max_buffer));
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.resume_handle));
                if (r->in.resume_handle) {
@@ -16758,15 +16777,10 @@ static enum ndr_err_code ndr_push_srvsvc_NetTransportEnum(struct ndr_push *ndr,
                }
        }
        if (flags & NDR_OUT) {
-               if (r->out.level == NULL) {
-                       return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
-               }
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.level));
                if (r->out.transports == NULL) {
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
                }
-               NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.transports, *r->out.level));
-               NDR_CHECK(ndr_push_srvsvc_NetTransportCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.transports));
+               NDR_CHECK(ndr_push_srvsvc_NetTransportInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.transports));
                if (r->out.totalentries == NULL) {
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
                }
@@ -16785,7 +16799,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetTransportEnum(struct ndr_pull *ndr,
        uint32_t _ptr_server_unc;
        uint32_t _ptr_resume_handle;
        TALLOC_CTX *_mem_save_server_unc_0;
-       TALLOC_CTX *_mem_save_level_0;
        TALLOC_CTX *_mem_save_transports_0;
        TALLOC_CTX *_mem_save_totalentries_0;
        TALLOC_CTX *_mem_save_resume_handle_0;
@@ -16810,20 +16823,12 @@ static enum ndr_err_code ndr_pull_srvsvc_NetTransportEnum(struct ndr_pull *ndr,
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t), CH_UTF16));
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0);
                }
-               if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
-                       NDR_PULL_ALLOC(ndr, r->in.level);
-               }
-               _mem_save_level_0 = NDR_PULL_GET_MEM_CTX(ndr);
-               NDR_PULL_SET_MEM_CTX(ndr, r->in.level, LIBNDR_FLAG_REF_ALLOC);
-               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.level));
-               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level_0, LIBNDR_FLAG_REF_ALLOC);
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
                        NDR_PULL_ALLOC(ndr, r->in.transports);
                }
                _mem_save_transports_0 = NDR_PULL_GET_MEM_CTX(ndr);
                NDR_PULL_SET_MEM_CTX(ndr, r->in.transports, LIBNDR_FLAG_REF_ALLOC);
-               NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.transports, *r->in.level));
-               NDR_CHECK(ndr_pull_srvsvc_NetTransportCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.transports));
+               NDR_CHECK(ndr_pull_srvsvc_NetTransportInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.transports));
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_transports_0, LIBNDR_FLAG_REF_ALLOC);
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.max_buffer));
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_resume_handle));
@@ -16838,28 +16843,18 @@ static enum ndr_err_code ndr_pull_srvsvc_NetTransportEnum(struct ndr_pull *ndr,
                        NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.resume_handle));
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_resume_handle_0, 0);
                }
-               NDR_PULL_ALLOC(ndr, r->out.level);
-               *r->out.level = *r->in.level;
                NDR_PULL_ALLOC(ndr, r->out.transports);
                *r->out.transports = *r->in.transports;
                NDR_PULL_ALLOC(ndr, r->out.totalentries);
                ZERO_STRUCTP(r->out.totalentries);
        }
        if (flags & NDR_OUT) {
-               if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
-                       NDR_PULL_ALLOC(ndr, r->out.level);
-               }
-               _mem_save_level_0 = NDR_PULL_GET_MEM_CTX(ndr);
-               NDR_PULL_SET_MEM_CTX(ndr, r->out.level, LIBNDR_FLAG_REF_ALLOC);
-               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.level));
-               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level_0, LIBNDR_FLAG_REF_ALLOC);
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
                        NDR_PULL_ALLOC(ndr, r->out.transports);
                }
                _mem_save_transports_0 = NDR_PULL_GET_MEM_CTX(ndr);
                NDR_PULL_SET_MEM_CTX(ndr, r->out.transports, LIBNDR_FLAG_REF_ALLOC);
-               NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.transports, *r->out.level));
-               NDR_CHECK(ndr_pull_srvsvc_NetTransportCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.transports));
+               NDR_CHECK(ndr_pull_srvsvc_NetTransportInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.transports));
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_transports_0, LIBNDR_FLAG_REF_ALLOC);
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
                        NDR_PULL_ALLOC(ndr, r->out.totalentries);
@@ -16901,14 +16896,9 @@ _PUBLIC_ void ndr_print_srvsvc_NetTransportEnum(struct ndr_print *ndr, const cha
                        ndr_print_string(ndr, "server_unc", r->in.server_unc);
                }
                ndr->depth--;
-               ndr_print_ptr(ndr, "level", r->in.level);
-               ndr->depth++;
-               ndr_print_uint32(ndr, "level", *r->in.level);
-               ndr->depth--;
                ndr_print_ptr(ndr, "transports", r->in.transports);
                ndr->depth++;
-               ndr_print_set_switch_value(ndr, r->in.transports, *r->in.level);
-               ndr_print_srvsvc_NetTransportCtr(ndr, "transports", r->in.transports);
+               ndr_print_srvsvc_NetTransportInfoCtr(ndr, "transports", r->in.transports);
                ndr->depth--;
                ndr_print_uint32(ndr, "max_buffer", r->in.max_buffer);
                ndr_print_ptr(ndr, "resume_handle", r->in.resume_handle);
@@ -16922,14 +16912,9 @@ _PUBLIC_ void ndr_print_srvsvc_NetTransportEnum(struct ndr_print *ndr, const cha
        if (flags & NDR_OUT) {
                ndr_print_struct(ndr, "out", "srvsvc_NetTransportEnum");
                ndr->depth++;
-               ndr_print_ptr(ndr, "level", r->out.level);
-               ndr->depth++;
-               ndr_print_uint32(ndr, "level", *r->out.level);
-               ndr->depth--;
                ndr_print_ptr(ndr, "transports", r->out.transports);
                ndr->depth++;
-               ndr_print_set_switch_value(ndr, r->out.transports, *r->out.level);
-               ndr_print_srvsvc_NetTransportCtr(ndr, "transports", r->out.transports);
+               ndr_print_srvsvc_NetTransportInfoCtr(ndr, "transports", r->out.transports);
                ndr->depth--;
                ndr_print_ptr(ndr, "totalentries", r->out.totalentries);
                ndr->depth++;
@@ -16957,8 +16942,11 @@ static enum ndr_err_code ndr_push_srvsvc_NetTransportDel(struct ndr_push *ndr, i
                        NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
                        NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_unc, ndr_charset_length(r->in.server_unc, CH_UTF16), sizeof(uint16_t), CH_UTF16));
                }
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown));
-               NDR_CHECK(ndr_push_srvsvc_NetTransportInfo0(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.transport));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
+               if (r->in.info0 == NULL) {
+                       return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
+               }
+               NDR_CHECK(ndr_push_srvsvc_NetTransportInfo0(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info0));
        }
        if (flags & NDR_OUT) {
                NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
@@ -16970,6 +16958,7 @@ static enum ndr_err_code ndr_pull_srvsvc_NetTransportDel(struct ndr_pull *ndr, i
 {
        uint32_t _ptr_server_unc;
        TALLOC_CTX *_mem_save_server_unc_0;
+       TALLOC_CTX *_mem_save_info0_0;
        if (flags & NDR_IN) {
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_unc));
                if (_ptr_server_unc) {
@@ -16989,8 +16978,14 @@ static enum ndr_err_code ndr_pull_srvsvc_NetTransportDel(struct ndr_pull *ndr, i
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t), CH_UTF16));
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0);
                }
-               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown));
-               NDR_CHECK(ndr_pull_srvsvc_NetTransportInfo0(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.transport));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
+               if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
+                       NDR_PULL_ALLOC(ndr, r->in.info0);
+               }
+               _mem_save_info0_0 = NDR_PULL_GET_MEM_CTX(ndr);
+               NDR_PULL_SET_MEM_CTX(ndr, r->in.info0, LIBNDR_FLAG_REF_ALLOC);
+               NDR_CHECK(ndr_pull_srvsvc_NetTransportInfo0(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info0));
+               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info0_0, LIBNDR_FLAG_REF_ALLOC);
        }
        if (flags & NDR_OUT) {
                NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
@@ -17014,8 +17009,11 @@ _PUBLIC_ void ndr_print_srvsvc_NetTransportDel(struct ndr_print *ndr, const char
                        ndr_print_string(ndr, "server_unc", r->in.server_unc);
                }
                ndr->depth--;
-               ndr_print_uint32(ndr, "unknown", r->in.unknown);
-               ndr_print_srvsvc_NetTransportInfo0(ndr, "transport", &r->in.transport);
+               ndr_print_uint32(ndr, "level", r->in.level);
+               ndr_print_ptr(ndr, "info0", r->in.info0);
+               ndr->depth++;
+               ndr_print_srvsvc_NetTransportInfo0(ndr, "info0", r->in.info0);
+               ndr->depth--;
                ndr->depth--;
        }
        if (flags & NDR_OUT) {
@@ -18048,7 +18046,7 @@ static enum ndr_err_code ndr_push_srvsvc_NetShareDelStart(struct ndr_push *ndr,
        if (flags & NDR_OUT) {
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.hnd));
                if (r->out.hnd) {
-                       NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.hnd));
+                       NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.hnd));
                }
                NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
        }
@@ -18101,7 +18099,7 @@ static enum ndr_err_code ndr_pull_srvsvc_NetShareDelStart(struct ndr_pull *ndr,
                if (r->out.hnd) {
                        _mem_save_hnd_0 = NDR_PULL_GET_MEM_CTX(ndr);
                        NDR_PULL_SET_MEM_CTX(ndr, r->out.hnd, 0);
-                       NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.hnd));
+                       NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.hnd));
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hnd_0, 0);
                }
                NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
@@ -18149,13 +18147,13 @@ static enum ndr_err_code ndr_push_srvsvc_NetShareDelCommit(struct ndr_push *ndr,
        if (flags & NDR_IN) {
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.hnd));
                if (r->in.hnd) {
-                       NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.hnd));
+                       NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.hnd));
                }
        }
        if (flags & NDR_OUT) {
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.hnd));
                if (r->out.hnd) {
-                       NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.hnd));
+                       NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.hnd));
                }
                NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
        }
@@ -18178,7 +18176,7 @@ static enum ndr_err_code ndr_pull_srvsvc_NetShareDelCommit(struct ndr_pull *ndr,
                if (r->in.hnd) {
                        _mem_save_hnd_0 = NDR_PULL_GET_MEM_CTX(ndr);
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.hnd, 0);
-                       NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.hnd));
+                       NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.hnd));
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hnd_0, 0);
                }
        }
@@ -18192,7 +18190,7 @@ static enum ndr_err_code ndr_pull_srvsvc_NetShareDelCommit(struct ndr_pull *ndr,
                if (r->out.hnd) {
                        _mem_save_hnd_0 = NDR_PULL_GET_MEM_CTX(ndr);
                        NDR_PULL_SET_MEM_CTX(ndr, r->out.hnd, 0);
-                       NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.hnd));
+                       NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.hnd));
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hnd_0, 0);
                }
                NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
@@ -19669,7 +19667,7 @@ static const char * const srvsvc_authservice_strings[] = {
 };
 
 static const struct ndr_interface_string_array srvsvc_authservices = {
-       .count  = 3,
+       .count  = 1,
        .names  = srvsvc_authservice_strings
 };