s4-idl: added generated files from rap.idl
[kai/samba-autobuild/.git] / librpc / gen_ndr / ndr_rap.c
diff --git a/librpc/gen_ndr/ndr_rap.c b/librpc/gen_ndr/ndr_rap.c
new file mode 100644 (file)
index 0000000..aece68b
--- /dev/null
@@ -0,0 +1,1860 @@
+/* parser auto-generated by pidl */
+
+#include "includes.h"
+#include "../librpc/gen_ndr/ndr_rap.h"
+
+static enum ndr_err_code ndr_push_rap_share_info_0(struct ndr_push *ndr, int ndr_flags, const struct rap_share_info_0 *r)
+{
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_push_align(ndr, 1));
+               NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->share_name, 13));
+               NDR_CHECK(ndr_push_trailer_align(ndr, 1));
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_rap_share_info_0(struct ndr_pull *ndr, int ndr_flags, struct rap_share_info_0 *r)
+{
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_pull_align(ndr, 1));
+               NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->share_name, 13));
+               NDR_CHECK(ndr_pull_trailer_align(ndr, 1));
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_rap_share_info_0(struct ndr_print *ndr, const char *name, const struct rap_share_info_0 *r)
+{
+       ndr_print_struct(ndr, name, "rap_share_info_0");
+       ndr->depth++;
+       ndr_print_array_uint8(ndr, "share_name", r->share_name, 13);
+       ndr->depth--;
+}
+
+static enum ndr_err_code ndr_push_rap_share_info_1(struct ndr_push *ndr, int ndr_flags, const struct rap_share_info_1 *r)
+{
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_push_align(ndr, 5));
+               NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->share_name, 13));
+               NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->reserved1));
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->share_type));
+               NDR_CHECK(ndr_push_unique_ptr(ndr, r->comment));
+               NDR_CHECK(ndr_push_trailer_align(ndr, 5));
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+               if (r->comment) {
+                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_DOS)));
+                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
+                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_DOS)));
+                       NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->comment, ndr_charset_length(r->comment, CH_DOS), sizeof(uint8_t), CH_DOS));
+               }
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_rap_share_info_1(struct ndr_pull *ndr, int ndr_flags, struct rap_share_info_1 *r)
+{
+       uint32_t _ptr_comment;
+       TALLOC_CTX *_mem_save_comment_0;
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_pull_align(ndr, 5));
+               NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->share_name, 13));
+               NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->reserved1));
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->share_type));
+               NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
+               if (_ptr_comment) {
+                       NDR_PULL_ALLOC(ndr, r->comment);
+               } else {
+                       r->comment = NULL;
+               }
+               NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+               if (r->comment) {
+                       _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
+                       NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
+                       NDR_CHECK(ndr_pull_array_size(ndr, &r->comment));
+                       NDR_CHECK(ndr_pull_array_length(ndr, &r->comment));
+                       if (ndr_get_array_length(ndr, &r->comment) > ndr_get_array_size(ndr, &r->comment)) {
+                               return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->comment), ndr_get_array_length(ndr, &r->comment));
+                       }
+                       NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->comment), sizeof(uint8_t)));
+                       NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, ndr_get_array_length(ndr, &r->comment), sizeof(uint8_t), CH_DOS));
+                       NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
+               }
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_rap_share_info_1(struct ndr_print *ndr, const char *name, const struct rap_share_info_1 *r)
+{
+       ndr_print_struct(ndr, name, "rap_share_info_1");
+       ndr->depth++;
+       ndr_print_array_uint8(ndr, "share_name", r->share_name, 13);
+       ndr_print_uint8(ndr, "reserved1", r->reserved1);
+       ndr_print_uint16(ndr, "share_type", r->share_type);
+       ndr_print_ptr(ndr, "comment", r->comment);
+       ndr->depth++;
+       if (r->comment) {
+               ndr_print_string(ndr, "comment", r->comment);
+       }
+       ndr->depth--;
+       ndr->depth--;
+}
+
+static enum ndr_err_code ndr_push_rap_share_info_2(struct ndr_push *ndr, int ndr_flags, const struct rap_share_info_2 *r)
+{
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_push_align(ndr, 5));
+               NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->share_name, 13));
+               NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->reserved1));
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->share_type));
+               NDR_CHECK(ndr_push_unique_ptr(ndr, r->comment));
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->perms));
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->maximum_users));
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->active_users));
+               NDR_CHECK(ndr_push_unique_ptr(ndr, r->path));
+               NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->password, 9));
+               NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->reserved2));
+               NDR_CHECK(ndr_push_trailer_align(ndr, 5));
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+               if (r->comment) {
+                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_DOS)));
+                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
+                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_DOS)));
+                       NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->comment, ndr_charset_length(r->comment, CH_DOS), sizeof(uint8_t), CH_DOS));
+               }
+               if (r->path) {
+                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->path, CH_DOS)));
+                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
+                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->path, CH_DOS)));
+                       NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->path, ndr_charset_length(r->path, CH_DOS), sizeof(uint8_t), CH_DOS));
+               }
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_rap_share_info_2(struct ndr_pull *ndr, int ndr_flags, struct rap_share_info_2 *r)
+{
+       uint32_t _ptr_comment;
+       TALLOC_CTX *_mem_save_comment_0;
+       uint32_t _ptr_path;
+       TALLOC_CTX *_mem_save_path_0;
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_pull_align(ndr, 5));
+               NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->share_name, 13));
+               NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->reserved1));
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->share_type));
+               NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
+               if (_ptr_comment) {
+                       NDR_PULL_ALLOC(ndr, r->comment);
+               } else {
+                       r->comment = NULL;
+               }
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->perms));
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->maximum_users));
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->active_users));
+               NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_path));
+               if (_ptr_path) {
+                       NDR_PULL_ALLOC(ndr, r->path);
+               } else {
+                       r->path = NULL;
+               }
+               NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->password, 9));
+               NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->reserved2));
+               NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+               if (r->comment) {
+                       _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
+                       NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
+                       NDR_CHECK(ndr_pull_array_size(ndr, &r->comment));
+                       NDR_CHECK(ndr_pull_array_length(ndr, &r->comment));
+                       if (ndr_get_array_length(ndr, &r->comment) > ndr_get_array_size(ndr, &r->comment)) {
+                               return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->comment), ndr_get_array_length(ndr, &r->comment));
+                       }
+                       NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->comment), sizeof(uint8_t)));
+                       NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, ndr_get_array_length(ndr, &r->comment), sizeof(uint8_t), CH_DOS));
+                       NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
+               }
+               if (r->path) {
+                       _mem_save_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
+                       NDR_PULL_SET_MEM_CTX(ndr, r->path, 0);
+                       NDR_CHECK(ndr_pull_array_size(ndr, &r->path));
+                       NDR_CHECK(ndr_pull_array_length(ndr, &r->path));
+                       if (ndr_get_array_length(ndr, &r->path) > ndr_get_array_size(ndr, &r->path)) {
+                               return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->path), ndr_get_array_length(ndr, &r->path));
+                       }
+                       NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->path), sizeof(uint8_t)));
+                       NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->path, ndr_get_array_length(ndr, &r->path), sizeof(uint8_t), CH_DOS));
+                       NDR_PULL_SET_MEM_CTX(ndr, _mem_save_path_0, 0);
+               }
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_rap_share_info_2(struct ndr_print *ndr, const char *name, const struct rap_share_info_2 *r)
+{
+       ndr_print_struct(ndr, name, "rap_share_info_2");
+       ndr->depth++;
+       ndr_print_array_uint8(ndr, "share_name", r->share_name, 13);
+       ndr_print_uint8(ndr, "reserved1", r->reserved1);
+       ndr_print_uint16(ndr, "share_type", r->share_type);
+       ndr_print_ptr(ndr, "comment", r->comment);
+       ndr->depth++;
+       if (r->comment) {
+               ndr_print_string(ndr, "comment", r->comment);
+       }
+       ndr->depth--;
+       ndr_print_uint16(ndr, "perms", r->perms);
+       ndr_print_uint16(ndr, "maximum_users", r->maximum_users);
+       ndr_print_uint16(ndr, "active_users", r->active_users);
+       ndr_print_ptr(ndr, "path", r->path);
+       ndr->depth++;
+       if (r->path) {
+               ndr_print_string(ndr, "path", r->path);
+       }
+       ndr->depth--;
+       ndr_print_array_uint8(ndr, "password", r->password, 9);
+       ndr_print_uint8(ndr, "reserved2", r->reserved2);
+       ndr->depth--;
+}
+
+static enum ndr_err_code ndr_push_rap_share_info(struct ndr_push *ndr, int ndr_flags, const union rap_share_info *r)
+{
+       if (ndr_flags & NDR_SCALARS) {
+               int level = ndr_push_get_switch_value(ndr, r);
+               NDR_CHECK(ndr_push_union_align(ndr, 5));
+               switch (level) {
+                       case 0: {
+                               NDR_CHECK(ndr_push_rap_share_info_0(ndr, NDR_SCALARS, &r->info0));
+                       break; }
+
+                       case 1: {
+                               NDR_CHECK(ndr_push_rap_share_info_1(ndr, NDR_SCALARS, &r->info1));
+                       break; }
+
+                       case 2: {
+                               NDR_CHECK(ndr_push_rap_share_info_2(ndr, NDR_SCALARS, &r->info2));
+                       break; }
+
+                       default:
+                               return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
+               }
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+               int level = ndr_push_get_switch_value(ndr, r);
+               switch (level) {
+                       case 0:
+                       break;
+
+                       case 1:
+                               NDR_CHECK(ndr_push_rap_share_info_1(ndr, NDR_BUFFERS, &r->info1));
+                       break;
+
+                       case 2:
+                               NDR_CHECK(ndr_push_rap_share_info_2(ndr, NDR_BUFFERS, &r->info2));
+                       break;
+
+                       default:
+                               return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
+               }
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_rap_share_info(struct ndr_pull *ndr, int ndr_flags, union rap_share_info *r)
+{
+       int level;
+       level = ndr_pull_get_switch_value(ndr, r);
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_pull_union_align(ndr, 5));
+               switch (level) {
+                       case 0: {
+                               NDR_CHECK(ndr_pull_rap_share_info_0(ndr, NDR_SCALARS, &r->info0));
+                       break; }
+
+                       case 1: {
+                               NDR_CHECK(ndr_pull_rap_share_info_1(ndr, NDR_SCALARS, &r->info1));
+                       break; }
+
+                       case 2: {
+                               NDR_CHECK(ndr_pull_rap_share_info_2(ndr, NDR_SCALARS, &r->info2));
+                       break; }
+
+                       default:
+                               return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
+               }
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+               switch (level) {
+                       case 0:
+                       break;
+
+                       case 1:
+                               NDR_CHECK(ndr_pull_rap_share_info_1(ndr, NDR_BUFFERS, &r->info1));
+                       break;
+
+                       case 2:
+                               NDR_CHECK(ndr_pull_rap_share_info_2(ndr, NDR_BUFFERS, &r->info2));
+                       break;
+
+                       default:
+                               return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
+               }
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_rap_share_info(struct ndr_print *ndr, const char *name, const union rap_share_info *r)
+{
+       int level;
+       level = ndr_print_get_switch_value(ndr, r);
+       ndr_print_union(ndr, name, level, "rap_share_info");
+       switch (level) {
+               case 0:
+                       ndr_print_rap_share_info_0(ndr, "info0", &r->info0);
+               break;
+
+               case 1:
+                       ndr_print_rap_share_info_1(ndr, "info1", &r->info1);
+               break;
+
+               case 2:
+                       ndr_print_rap_share_info_2(ndr, "info2", &r->info2);
+               break;
+
+               default:
+                       ndr_print_bad_level(ndr, name, level);
+       }
+}
+
+static enum ndr_err_code ndr_push_rap_server_info_0(struct ndr_push *ndr, int ndr_flags, const struct rap_server_info_0 *r)
+{
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_push_align(ndr, 1));
+               NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->name, 16));
+               NDR_CHECK(ndr_push_trailer_align(ndr, 1));
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_rap_server_info_0(struct ndr_pull *ndr, int ndr_flags, struct rap_server_info_0 *r)
+{
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_pull_align(ndr, 1));
+               NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->name, 16));
+               NDR_CHECK(ndr_pull_trailer_align(ndr, 1));
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_rap_server_info_0(struct ndr_print *ndr, const char *name, const struct rap_server_info_0 *r)
+{
+       ndr_print_struct(ndr, name, "rap_server_info_0");
+       ndr->depth++;
+       ndr_print_array_uint8(ndr, "name", r->name, 16);
+       ndr->depth--;
+}
+
+static enum ndr_err_code ndr_push_rap_server_info_1(struct ndr_push *ndr, int ndr_flags, const struct rap_server_info_1 *r)
+{
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_push_align(ndr, 5));
+               NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->name, 16));
+               NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->version_major));
+               NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->version_minor));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->servertype));
+               NDR_CHECK(ndr_push_unique_ptr(ndr, r->comment));
+               NDR_CHECK(ndr_push_trailer_align(ndr, 5));
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+               if (r->comment) {
+                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_DOS)));
+                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
+                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_DOS)));
+                       NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->comment, ndr_charset_length(r->comment, CH_DOS), sizeof(uint8_t), CH_DOS));
+               }
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_rap_server_info_1(struct ndr_pull *ndr, int ndr_flags, struct rap_server_info_1 *r)
+{
+       uint32_t _ptr_comment;
+       TALLOC_CTX *_mem_save_comment_0;
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_pull_align(ndr, 5));
+               NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->name, 16));
+               NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->version_major));
+               NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->version_minor));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->servertype));
+               NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
+               if (_ptr_comment) {
+                       NDR_PULL_ALLOC(ndr, r->comment);
+               } else {
+                       r->comment = NULL;
+               }
+               NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+               if (r->comment) {
+                       _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
+                       NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
+                       NDR_CHECK(ndr_pull_array_size(ndr, &r->comment));
+                       NDR_CHECK(ndr_pull_array_length(ndr, &r->comment));
+                       if (ndr_get_array_length(ndr, &r->comment) > ndr_get_array_size(ndr, &r->comment)) {
+                               return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->comment), ndr_get_array_length(ndr, &r->comment));
+                       }
+                       NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->comment), sizeof(uint8_t)));
+                       NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, ndr_get_array_length(ndr, &r->comment), sizeof(uint8_t), CH_DOS));
+                       NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
+               }
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_rap_server_info_1(struct ndr_print *ndr, const char *name, const struct rap_server_info_1 *r)
+{
+       ndr_print_struct(ndr, name, "rap_server_info_1");
+       ndr->depth++;
+       ndr_print_array_uint8(ndr, "name", r->name, 16);
+       ndr_print_uint8(ndr, "version_major", r->version_major);
+       ndr_print_uint8(ndr, "version_minor", r->version_minor);
+       ndr_print_uint32(ndr, "servertype", r->servertype);
+       ndr_print_ptr(ndr, "comment", r->comment);
+       ndr->depth++;
+       if (r->comment) {
+               ndr_print_string(ndr, "comment", r->comment);
+       }
+       ndr->depth--;
+       ndr->depth--;
+}
+
+static enum ndr_err_code ndr_push_rap_server_info(struct ndr_push *ndr, int ndr_flags, const union rap_server_info *r)
+{
+       if (ndr_flags & NDR_SCALARS) {
+               int level = ndr_push_get_switch_value(ndr, r);
+               NDR_CHECK(ndr_push_union_align(ndr, 5));
+               switch (level) {
+                       case 0: {
+                               NDR_CHECK(ndr_push_rap_server_info_0(ndr, NDR_SCALARS, &r->info0));
+                       break; }
+
+                       case 1: {
+                               NDR_CHECK(ndr_push_rap_server_info_1(ndr, NDR_SCALARS, &r->info1));
+                       break; }
+
+                       default:
+                               return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
+               }
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+               int level = ndr_push_get_switch_value(ndr, r);
+               switch (level) {
+                       case 0:
+                       break;
+
+                       case 1:
+                               NDR_CHECK(ndr_push_rap_server_info_1(ndr, NDR_BUFFERS, &r->info1));
+                       break;
+
+                       default:
+                               return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
+               }
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_rap_server_info(struct ndr_pull *ndr, int ndr_flags, union rap_server_info *r)
+{
+       int level;
+       level = ndr_pull_get_switch_value(ndr, r);
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_pull_union_align(ndr, 5));
+               switch (level) {
+                       case 0: {
+                               NDR_CHECK(ndr_pull_rap_server_info_0(ndr, NDR_SCALARS, &r->info0));
+                       break; }
+
+                       case 1: {
+                               NDR_CHECK(ndr_pull_rap_server_info_1(ndr, NDR_SCALARS, &r->info1));
+                       break; }
+
+                       default:
+                               return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
+               }
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+               switch (level) {
+                       case 0:
+                       break;
+
+                       case 1:
+                               NDR_CHECK(ndr_pull_rap_server_info_1(ndr, NDR_BUFFERS, &r->info1));
+                       break;
+
+                       default:
+                               return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
+               }
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_rap_server_info(struct ndr_print *ndr, const char *name, const union rap_server_info *r)
+{
+       int level;
+       level = ndr_print_get_switch_value(ndr, r);
+       ndr_print_union(ndr, name, level, "rap_server_info");
+       switch (level) {
+               case 0:
+                       ndr_print_rap_server_info_0(ndr, "info0", &r->info0);
+               break;
+
+               case 1:
+                       ndr_print_rap_server_info_1(ndr, "info1", &r->info1);
+               break;
+
+               default:
+                       ndr_print_bad_level(ndr, name, level);
+       }
+}
+
+_PUBLIC_ enum ndr_err_code ndr_push_rap_PrintQStatusCode(struct ndr_push *ndr, int ndr_flags, enum rap_PrintQStatusCode r)
+{
+       NDR_CHECK(ndr_push_enum_uint1632(ndr, NDR_SCALARS, r));
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ enum ndr_err_code ndr_pull_rap_PrintQStatusCode(struct ndr_pull *ndr, int ndr_flags, enum rap_PrintQStatusCode *r)
+{
+       uint16_t v;
+       NDR_CHECK(ndr_pull_enum_uint1632(ndr, NDR_SCALARS, &v));
+       *r = v;
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_rap_PrintQStatusCode(struct ndr_print *ndr, const char *name, enum rap_PrintQStatusCode r)
+{
+       const char *val = NULL;
+
+       switch (r) {
+               case PRQ_ACTIVE: val = "PRQ_ACTIVE"; break;
+               case PRQ_PAUSE: val = "PRQ_PAUSE"; break;
+               case PRQ_ERROR: val = "PRQ_ERROR"; break;
+               case PRQ_PENDING: val = "PRQ_PENDING"; break;
+       }
+       ndr_print_enum(ndr, name, "ENUM", val, r);
+}
+
+static enum ndr_err_code ndr_push_rap_PrintQueue0(struct ndr_push *ndr, int ndr_flags, const struct rap_PrintQueue0 *r)
+{
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_push_align(ndr, 1));
+               NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->PrintQName, 13));
+               NDR_CHECK(ndr_push_trailer_align(ndr, 1));
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_rap_PrintQueue0(struct ndr_pull *ndr, int ndr_flags, struct rap_PrintQueue0 *r)
+{
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_pull_align(ndr, 1));
+               NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->PrintQName, 13));
+               NDR_CHECK(ndr_pull_trailer_align(ndr, 1));
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_rap_PrintQueue0(struct ndr_print *ndr, const char *name, const struct rap_PrintQueue0 *r)
+{
+       ndr_print_struct(ndr, name, "rap_PrintQueue0");
+       ndr->depth++;
+       ndr_print_array_uint8(ndr, "PrintQName", r->PrintQName, 13);
+       ndr->depth--;
+}
+
+static enum ndr_err_code ndr_push_rap_PrintQueue1(struct ndr_push *ndr, int ndr_flags, const struct rap_PrintQueue1 *r)
+{
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_push_align(ndr, 5));
+               NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->PrintQName, 13));
+               NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->Pad1));
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->Priority));
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->StartTime));
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->UntilTime));
+               NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->SeparatorPageFilename));
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->SeparatorPageFilenameHigh));
+               NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->PrintProcessorDllName));
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->PrintProcessorDllNameHigh));
+               NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->PrintDestinationsName));
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->PrintDestinationsNameHigh));
+               NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->PrintParameterString));
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->PrintParameterStringHigh));
+               NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->CommentString));
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->CommentStringHigh));
+               NDR_CHECK(ndr_push_rap_PrintQStatusCode(ndr, NDR_SCALARS, r->PrintQStatus));
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->PrintJobCount));
+               NDR_CHECK(ndr_push_trailer_align(ndr, 5));
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+               if (r->SeparatorPageFilename) {
+                       NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->SeparatorPageFilename));
+                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->SeparatorPageFilename, CH_DOS)));
+                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
+                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->SeparatorPageFilename, CH_DOS)));
+                       NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->SeparatorPageFilename, ndr_charset_length(r->SeparatorPageFilename, CH_DOS), sizeof(uint8_t), CH_DOS));
+               }
+               if (r->PrintProcessorDllName) {
+                       NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->PrintProcessorDllName));
+                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->PrintProcessorDllName, CH_DOS)));
+                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
+                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->PrintProcessorDllName, CH_DOS)));
+                       NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->PrintProcessorDllName, ndr_charset_length(r->PrintProcessorDllName, CH_DOS), sizeof(uint8_t), CH_DOS));
+               }
+               if (r->PrintDestinationsName) {
+                       NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->PrintDestinationsName));
+                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->PrintDestinationsName, CH_DOS)));
+                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
+                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->PrintDestinationsName, CH_DOS)));
+                       NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->PrintDestinationsName, ndr_charset_length(r->PrintDestinationsName, CH_DOS), sizeof(uint8_t), CH_DOS));
+               }
+               if (r->PrintParameterString) {
+                       NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->PrintParameterString));
+                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->PrintParameterString, CH_DOS)));
+                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
+                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->PrintParameterString, CH_DOS)));
+                       NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->PrintParameterString, ndr_charset_length(r->PrintParameterString, CH_DOS), sizeof(uint8_t), CH_DOS));
+               }
+               if (r->CommentString) {
+                       NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->CommentString));
+                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->CommentString, CH_DOS)));
+                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
+                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->CommentString, CH_DOS)));
+                       NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->CommentString, ndr_charset_length(r->CommentString, CH_DOS), sizeof(uint8_t), CH_DOS));
+               }
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_rap_PrintQueue1(struct ndr_pull *ndr, int ndr_flags, struct rap_PrintQueue1 *r)
+{
+       uint16_t _ptr_SeparatorPageFilename;
+       TALLOC_CTX *_mem_save_SeparatorPageFilename_0;
+       uint16_t _ptr_PrintProcessorDllName;
+       TALLOC_CTX *_mem_save_PrintProcessorDllName_0;
+       uint16_t _ptr_PrintDestinationsName;
+       TALLOC_CTX *_mem_save_PrintDestinationsName_0;
+       uint16_t _ptr_PrintParameterString;
+       TALLOC_CTX *_mem_save_PrintParameterString_0;
+       uint16_t _ptr_CommentString;
+       TALLOC_CTX *_mem_save_CommentString_0;
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_pull_align(ndr, 5));
+               NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->PrintQName, 13));
+               NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->Pad1));
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->Priority));
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->StartTime));
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->UntilTime));
+               NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_SeparatorPageFilename));
+               if (_ptr_SeparatorPageFilename) {
+                       NDR_PULL_ALLOC(ndr, r->SeparatorPageFilename);
+                       NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->SeparatorPageFilename, _ptr_SeparatorPageFilename));
+               } else {
+                       r->SeparatorPageFilename = NULL;
+               }
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->SeparatorPageFilenameHigh));
+               NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_PrintProcessorDllName));
+               if (_ptr_PrintProcessorDllName) {
+                       NDR_PULL_ALLOC(ndr, r->PrintProcessorDllName);
+                       NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->PrintProcessorDllName, _ptr_PrintProcessorDllName));
+               } else {
+                       r->PrintProcessorDllName = NULL;
+               }
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->PrintProcessorDllNameHigh));
+               NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_PrintDestinationsName));
+               if (_ptr_PrintDestinationsName) {
+                       NDR_PULL_ALLOC(ndr, r->PrintDestinationsName);
+                       NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->PrintDestinationsName, _ptr_PrintDestinationsName));
+               } else {
+                       r->PrintDestinationsName = NULL;
+               }
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->PrintDestinationsNameHigh));
+               NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_PrintParameterString));
+               if (_ptr_PrintParameterString) {
+                       NDR_PULL_ALLOC(ndr, r->PrintParameterString);
+                       NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->PrintParameterString, _ptr_PrintParameterString));
+               } else {
+                       r->PrintParameterString = NULL;
+               }
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->PrintParameterStringHigh));
+               NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_CommentString));
+               if (_ptr_CommentString) {
+                       NDR_PULL_ALLOC(ndr, r->CommentString);
+                       NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->CommentString, _ptr_CommentString));
+               } else {
+                       r->CommentString = NULL;
+               }
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->CommentStringHigh));
+               NDR_CHECK(ndr_pull_rap_PrintQStatusCode(ndr, NDR_SCALARS, &r->PrintQStatus));
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->PrintJobCount));
+               NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+               if (r->SeparatorPageFilename) {
+                       uint32_t _relative_save_offset;
+                       _relative_save_offset = ndr->offset;
+                       NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->SeparatorPageFilename));
+                       _mem_save_SeparatorPageFilename_0 = NDR_PULL_GET_MEM_CTX(ndr);
+                       NDR_PULL_SET_MEM_CTX(ndr, r->SeparatorPageFilename, 0);
+                       NDR_CHECK(ndr_pull_array_size(ndr, &r->SeparatorPageFilename));
+                       NDR_CHECK(ndr_pull_array_length(ndr, &r->SeparatorPageFilename));
+                       if (ndr_get_array_length(ndr, &r->SeparatorPageFilename) > ndr_get_array_size(ndr, &r->SeparatorPageFilename)) {
+                               return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->SeparatorPageFilename), ndr_get_array_length(ndr, &r->SeparatorPageFilename));
+                       }
+                       NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->SeparatorPageFilename), sizeof(uint8_t)));
+                       NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->SeparatorPageFilename, ndr_get_array_length(ndr, &r->SeparatorPageFilename), sizeof(uint8_t), CH_DOS));
+                       NDR_PULL_SET_MEM_CTX(ndr, _mem_save_SeparatorPageFilename_0, 0);
+               }
+               if (r->PrintProcessorDllName) {
+                       uint32_t _relative_save_offset;
+                       _relative_save_offset = ndr->offset;
+                       NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->PrintProcessorDllName));
+                       _mem_save_PrintProcessorDllName_0 = NDR_PULL_GET_MEM_CTX(ndr);
+                       NDR_PULL_SET_MEM_CTX(ndr, r->PrintProcessorDllName, 0);
+                       NDR_CHECK(ndr_pull_array_size(ndr, &r->PrintProcessorDllName));
+                       NDR_CHECK(ndr_pull_array_length(ndr, &r->PrintProcessorDllName));
+                       if (ndr_get_array_length(ndr, &r->PrintProcessorDllName) > ndr_get_array_size(ndr, &r->PrintProcessorDllName)) {
+                               return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->PrintProcessorDllName), ndr_get_array_length(ndr, &r->PrintProcessorDllName));
+                       }
+                       NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->PrintProcessorDllName), sizeof(uint8_t)));
+                       NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->PrintProcessorDllName, ndr_get_array_length(ndr, &r->PrintProcessorDllName), sizeof(uint8_t), CH_DOS));
+                       NDR_PULL_SET_MEM_CTX(ndr, _mem_save_PrintProcessorDllName_0, 0);
+               }
+               if (r->PrintDestinationsName) {
+                       uint32_t _relative_save_offset;
+                       _relative_save_offset = ndr->offset;
+                       NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->PrintDestinationsName));
+                       _mem_save_PrintDestinationsName_0 = NDR_PULL_GET_MEM_CTX(ndr);
+                       NDR_PULL_SET_MEM_CTX(ndr, r->PrintDestinationsName, 0);
+                       NDR_CHECK(ndr_pull_array_size(ndr, &r->PrintDestinationsName));
+                       NDR_CHECK(ndr_pull_array_length(ndr, &r->PrintDestinationsName));
+                       if (ndr_get_array_length(ndr, &r->PrintDestinationsName) > ndr_get_array_size(ndr, &r->PrintDestinationsName)) {
+                               return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->PrintDestinationsName), ndr_get_array_length(ndr, &r->PrintDestinationsName));
+                       }
+                       NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->PrintDestinationsName), sizeof(uint8_t)));
+                       NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->PrintDestinationsName, ndr_get_array_length(ndr, &r->PrintDestinationsName), sizeof(uint8_t), CH_DOS));
+                       NDR_PULL_SET_MEM_CTX(ndr, _mem_save_PrintDestinationsName_0, 0);
+               }
+               if (r->PrintParameterString) {
+                       uint32_t _relative_save_offset;
+                       _relative_save_offset = ndr->offset;
+                       NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->PrintParameterString));
+                       _mem_save_PrintParameterString_0 = NDR_PULL_GET_MEM_CTX(ndr);
+                       NDR_PULL_SET_MEM_CTX(ndr, r->PrintParameterString, 0);
+                       NDR_CHECK(ndr_pull_array_size(ndr, &r->PrintParameterString));
+                       NDR_CHECK(ndr_pull_array_length(ndr, &r->PrintParameterString));
+                       if (ndr_get_array_length(ndr, &r->PrintParameterString) > ndr_get_array_size(ndr, &r->PrintParameterString)) {
+                               return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->PrintParameterString), ndr_get_array_length(ndr, &r->PrintParameterString));
+                       }
+                       NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->PrintParameterString), sizeof(uint8_t)));
+                       NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->PrintParameterString, ndr_get_array_length(ndr, &r->PrintParameterString), sizeof(uint8_t), CH_DOS));
+                       NDR_PULL_SET_MEM_CTX(ndr, _mem_save_PrintParameterString_0, 0);
+               }
+               if (r->CommentString) {
+                       uint32_t _relative_save_offset;
+                       _relative_save_offset = ndr->offset;
+                       NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->CommentString));
+                       _mem_save_CommentString_0 = NDR_PULL_GET_MEM_CTX(ndr);
+                       NDR_PULL_SET_MEM_CTX(ndr, r->CommentString, 0);
+                       NDR_CHECK(ndr_pull_array_size(ndr, &r->CommentString));
+                       NDR_CHECK(ndr_pull_array_length(ndr, &r->CommentString));
+                       if (ndr_get_array_length(ndr, &r->CommentString) > ndr_get_array_size(ndr, &r->CommentString)) {
+                               return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->CommentString), ndr_get_array_length(ndr, &r->CommentString));
+                       }
+                       NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->CommentString), sizeof(uint8_t)));
+                       NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->CommentString, ndr_get_array_length(ndr, &r->CommentString), sizeof(uint8_t), CH_DOS));
+                       NDR_PULL_SET_MEM_CTX(ndr, _mem_save_CommentString_0, 0);
+               }
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_rap_PrintQueue1(struct ndr_print *ndr, const char *name, const struct rap_PrintQueue1 *r)
+{
+       ndr_print_struct(ndr, name, "rap_PrintQueue1");
+       ndr->depth++;
+       ndr_print_array_uint8(ndr, "PrintQName", r->PrintQName, 13);
+       ndr_print_uint8(ndr, "Pad1", r->Pad1);
+       ndr_print_uint16(ndr, "Priority", r->Priority);
+       ndr_print_uint16(ndr, "StartTime", r->StartTime);
+       ndr_print_uint16(ndr, "UntilTime", r->UntilTime);
+       ndr_print_ptr(ndr, "SeparatorPageFilename", r->SeparatorPageFilename);
+       ndr->depth++;
+       if (r->SeparatorPageFilename) {
+               ndr_print_string(ndr, "SeparatorPageFilename", r->SeparatorPageFilename);
+       }
+       ndr->depth--;
+       ndr_print_uint16(ndr, "SeparatorPageFilenameHigh", r->SeparatorPageFilenameHigh);
+       ndr_print_ptr(ndr, "PrintProcessorDllName", r->PrintProcessorDllName);
+       ndr->depth++;
+       if (r->PrintProcessorDllName) {
+               ndr_print_string(ndr, "PrintProcessorDllName", r->PrintProcessorDllName);
+       }
+       ndr->depth--;
+       ndr_print_uint16(ndr, "PrintProcessorDllNameHigh", r->PrintProcessorDllNameHigh);
+       ndr_print_ptr(ndr, "PrintDestinationsName", r->PrintDestinationsName);
+       ndr->depth++;
+       if (r->PrintDestinationsName) {
+               ndr_print_string(ndr, "PrintDestinationsName", r->PrintDestinationsName);
+       }
+       ndr->depth--;
+       ndr_print_uint16(ndr, "PrintDestinationsNameHigh", r->PrintDestinationsNameHigh);
+       ndr_print_ptr(ndr, "PrintParameterString", r->PrintParameterString);
+       ndr->depth++;
+       if (r->PrintParameterString) {
+               ndr_print_string(ndr, "PrintParameterString", r->PrintParameterString);
+       }
+       ndr->depth--;
+       ndr_print_uint16(ndr, "PrintParameterStringHigh", r->PrintParameterStringHigh);
+       ndr_print_ptr(ndr, "CommentString", r->CommentString);
+       ndr->depth++;
+       if (r->CommentString) {
+               ndr_print_string(ndr, "CommentString", r->CommentString);
+       }
+       ndr->depth--;
+       ndr_print_uint16(ndr, "CommentStringHigh", r->CommentStringHigh);
+       ndr_print_rap_PrintQStatusCode(ndr, "PrintQStatus", r->PrintQStatus);
+       ndr_print_uint16(ndr, "PrintJobCount", r->PrintJobCount);
+       ndr->depth--;
+}
+
+static enum ndr_err_code ndr_push_rap_PrintQueue2(struct ndr_push *ndr, int ndr_flags, const struct rap_PrintQueue2 *r)
+{
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_push_align(ndr, 1));
+               NDR_CHECK(ndr_push_trailer_align(ndr, 1));
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_rap_PrintQueue2(struct ndr_pull *ndr, int ndr_flags, struct rap_PrintQueue2 *r)
+{
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_pull_align(ndr, 1));
+               NDR_CHECK(ndr_pull_trailer_align(ndr, 1));
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_rap_PrintQueue2(struct ndr_print *ndr, const char *name, const struct rap_PrintQueue2 *r)
+{
+       ndr_print_struct(ndr, name, "rap_PrintQueue2");
+       ndr->depth++;
+       ndr->depth--;
+}
+
+static enum ndr_err_code ndr_push_rap_PrintQueue3(struct ndr_push *ndr, int ndr_flags, const struct rap_PrintQueue3 *r)
+{
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_push_align(ndr, 5));
+               NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->PrintQueueName));
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->PrintQueueNameHigh));
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->Priority));
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->StartTime));
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->UntilTime));
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->Pad));
+               NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->SeparatorPageFilename));
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->SeparatorPageFilenameHigh));
+               NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->PrintProcessorDllName));
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->PrintProcessorDllNameHigh));
+               NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->PrintParameterString));
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->PrintParameterStringHigh));
+               NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->CommentString));
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->CommentStringHigh));
+               NDR_CHECK(ndr_push_rap_PrintQStatusCode(ndr, NDR_SCALARS, r->PrintQStatus));
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->PrintJobCount));
+               NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->Printers));
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->PrintersHigh));
+               NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->DriverName));
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->DriverNameHigh));
+               NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->PrintDriverData));
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->PrintDriverDataHigh));
+               NDR_CHECK(ndr_push_trailer_align(ndr, 5));
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+               if (r->PrintQueueName) {
+                       NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->PrintQueueName));
+                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->PrintQueueName, CH_DOS)));
+                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
+                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->PrintQueueName, CH_DOS)));
+                       NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->PrintQueueName, ndr_charset_length(r->PrintQueueName, CH_DOS), sizeof(uint8_t), CH_DOS));
+               }
+               if (r->SeparatorPageFilename) {
+                       NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->SeparatorPageFilename));
+                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->SeparatorPageFilename, CH_DOS)));
+                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
+                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->SeparatorPageFilename, CH_DOS)));
+                       NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->SeparatorPageFilename, ndr_charset_length(r->SeparatorPageFilename, CH_DOS), sizeof(uint8_t), CH_DOS));
+               }
+               if (r->PrintProcessorDllName) {
+                       NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->PrintProcessorDllName));
+                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->PrintProcessorDllName, CH_DOS)));
+                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
+                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->PrintProcessorDllName, CH_DOS)));
+                       NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->PrintProcessorDllName, ndr_charset_length(r->PrintProcessorDllName, CH_DOS), sizeof(uint8_t), CH_DOS));
+               }
+               if (r->PrintParameterString) {
+                       NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->PrintParameterString));
+                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->PrintParameterString, CH_DOS)));
+                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
+                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->PrintParameterString, CH_DOS)));
+                       NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->PrintParameterString, ndr_charset_length(r->PrintParameterString, CH_DOS), sizeof(uint8_t), CH_DOS));
+               }
+               if (r->CommentString) {
+                       NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->CommentString));
+                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->CommentString, CH_DOS)));
+                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
+                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->CommentString, CH_DOS)));
+                       NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->CommentString, ndr_charset_length(r->CommentString, CH_DOS), sizeof(uint8_t), CH_DOS));
+               }
+               if (r->Printers) {
+                       NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->Printers));
+                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->Printers, CH_DOS)));
+                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
+                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->Printers, CH_DOS)));
+                       NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->Printers, ndr_charset_length(r->Printers, CH_DOS), sizeof(uint8_t), CH_DOS));
+               }
+               if (r->DriverName) {
+                       NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->DriverName));
+                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->DriverName, CH_DOS)));
+                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
+                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->DriverName, CH_DOS)));
+                       NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->DriverName, ndr_charset_length(r->DriverName, CH_DOS), sizeof(uint8_t), CH_DOS));
+               }
+               if (r->PrintDriverData) {
+                       NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->PrintDriverData));
+                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->PrintDriverData, CH_DOS)));
+                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
+                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->PrintDriverData, CH_DOS)));
+                       NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->PrintDriverData, ndr_charset_length(r->PrintDriverData, CH_DOS), sizeof(uint8_t), CH_DOS));
+               }
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_rap_PrintQueue3(struct ndr_pull *ndr, int ndr_flags, struct rap_PrintQueue3 *r)
+{
+       uint16_t _ptr_PrintQueueName;
+       TALLOC_CTX *_mem_save_PrintQueueName_0;
+       uint16_t _ptr_SeparatorPageFilename;
+       TALLOC_CTX *_mem_save_SeparatorPageFilename_0;
+       uint16_t _ptr_PrintProcessorDllName;
+       TALLOC_CTX *_mem_save_PrintProcessorDllName_0;
+       uint16_t _ptr_PrintParameterString;
+       TALLOC_CTX *_mem_save_PrintParameterString_0;
+       uint16_t _ptr_CommentString;
+       TALLOC_CTX *_mem_save_CommentString_0;
+       uint16_t _ptr_Printers;
+       TALLOC_CTX *_mem_save_Printers_0;
+       uint16_t _ptr_DriverName;
+       TALLOC_CTX *_mem_save_DriverName_0;
+       uint16_t _ptr_PrintDriverData;
+       TALLOC_CTX *_mem_save_PrintDriverData_0;
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_pull_align(ndr, 5));
+               NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_PrintQueueName));
+               if (_ptr_PrintQueueName) {
+                       NDR_PULL_ALLOC(ndr, r->PrintQueueName);
+                       NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->PrintQueueName, _ptr_PrintQueueName));
+               } else {
+                       r->PrintQueueName = NULL;
+               }
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->PrintQueueNameHigh));
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->Priority));
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->StartTime));
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->UntilTime));
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->Pad));
+               NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_SeparatorPageFilename));
+               if (_ptr_SeparatorPageFilename) {
+                       NDR_PULL_ALLOC(ndr, r->SeparatorPageFilename);
+                       NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->SeparatorPageFilename, _ptr_SeparatorPageFilename));
+               } else {
+                       r->SeparatorPageFilename = NULL;
+               }
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->SeparatorPageFilenameHigh));
+               NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_PrintProcessorDllName));
+               if (_ptr_PrintProcessorDllName) {
+                       NDR_PULL_ALLOC(ndr, r->PrintProcessorDllName);
+                       NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->PrintProcessorDllName, _ptr_PrintProcessorDllName));
+               } else {
+                       r->PrintProcessorDllName = NULL;
+               }
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->PrintProcessorDllNameHigh));
+               NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_PrintParameterString));
+               if (_ptr_PrintParameterString) {
+                       NDR_PULL_ALLOC(ndr, r->PrintParameterString);
+                       NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->PrintParameterString, _ptr_PrintParameterString));
+               } else {
+                       r->PrintParameterString = NULL;
+               }
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->PrintParameterStringHigh));
+               NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_CommentString));
+               if (_ptr_CommentString) {
+                       NDR_PULL_ALLOC(ndr, r->CommentString);
+                       NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->CommentString, _ptr_CommentString));
+               } else {
+                       r->CommentString = NULL;
+               }
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->CommentStringHigh));
+               NDR_CHECK(ndr_pull_rap_PrintQStatusCode(ndr, NDR_SCALARS, &r->PrintQStatus));
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->PrintJobCount));
+               NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_Printers));
+               if (_ptr_Printers) {
+                       NDR_PULL_ALLOC(ndr, r->Printers);
+                       NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->Printers, _ptr_Printers));
+               } else {
+                       r->Printers = NULL;
+               }
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->PrintersHigh));
+               NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_DriverName));
+               if (_ptr_DriverName) {
+                       NDR_PULL_ALLOC(ndr, r->DriverName);
+                       NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->DriverName, _ptr_DriverName));
+               } else {
+                       r->DriverName = NULL;
+               }
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->DriverNameHigh));
+               NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_PrintDriverData));
+               if (_ptr_PrintDriverData) {
+                       NDR_PULL_ALLOC(ndr, r->PrintDriverData);
+                       NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->PrintDriverData, _ptr_PrintDriverData));
+               } else {
+                       r->PrintDriverData = NULL;
+               }
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->PrintDriverDataHigh));
+               NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+               if (r->PrintQueueName) {
+                       uint32_t _relative_save_offset;
+                       _relative_save_offset = ndr->offset;
+                       NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->PrintQueueName));
+                       _mem_save_PrintQueueName_0 = NDR_PULL_GET_MEM_CTX(ndr);
+                       NDR_PULL_SET_MEM_CTX(ndr, r->PrintQueueName, 0);
+                       NDR_CHECK(ndr_pull_array_size(ndr, &r->PrintQueueName));
+                       NDR_CHECK(ndr_pull_array_length(ndr, &r->PrintQueueName));
+                       if (ndr_get_array_length(ndr, &r->PrintQueueName) > ndr_get_array_size(ndr, &r->PrintQueueName)) {
+                               return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->PrintQueueName), ndr_get_array_length(ndr, &r->PrintQueueName));
+                       }
+                       NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->PrintQueueName), sizeof(uint8_t)));
+                       NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->PrintQueueName, ndr_get_array_length(ndr, &r->PrintQueueName), sizeof(uint8_t), CH_DOS));
+                       NDR_PULL_SET_MEM_CTX(ndr, _mem_save_PrintQueueName_0, 0);
+               }
+               if (r->SeparatorPageFilename) {
+                       uint32_t _relative_save_offset;
+                       _relative_save_offset = ndr->offset;
+                       NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->SeparatorPageFilename));
+                       _mem_save_SeparatorPageFilename_0 = NDR_PULL_GET_MEM_CTX(ndr);
+                       NDR_PULL_SET_MEM_CTX(ndr, r->SeparatorPageFilename, 0);
+                       NDR_CHECK(ndr_pull_array_size(ndr, &r->SeparatorPageFilename));
+                       NDR_CHECK(ndr_pull_array_length(ndr, &r->SeparatorPageFilename));
+                       if (ndr_get_array_length(ndr, &r->SeparatorPageFilename) > ndr_get_array_size(ndr, &r->SeparatorPageFilename)) {
+                               return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->SeparatorPageFilename), ndr_get_array_length(ndr, &r->SeparatorPageFilename));
+                       }
+                       NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->SeparatorPageFilename), sizeof(uint8_t)));
+                       NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->SeparatorPageFilename, ndr_get_array_length(ndr, &r->SeparatorPageFilename), sizeof(uint8_t), CH_DOS));
+                       NDR_PULL_SET_MEM_CTX(ndr, _mem_save_SeparatorPageFilename_0, 0);
+               }
+               if (r->PrintProcessorDllName) {
+                       uint32_t _relative_save_offset;
+                       _relative_save_offset = ndr->offset;
+                       NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->PrintProcessorDllName));
+                       _mem_save_PrintProcessorDllName_0 = NDR_PULL_GET_MEM_CTX(ndr);
+                       NDR_PULL_SET_MEM_CTX(ndr, r->PrintProcessorDllName, 0);
+                       NDR_CHECK(ndr_pull_array_size(ndr, &r->PrintProcessorDllName));
+                       NDR_CHECK(ndr_pull_array_length(ndr, &r->PrintProcessorDllName));
+                       if (ndr_get_array_length(ndr, &r->PrintProcessorDllName) > ndr_get_array_size(ndr, &r->PrintProcessorDllName)) {
+                               return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->PrintProcessorDllName), ndr_get_array_length(ndr, &r->PrintProcessorDllName));
+                       }
+                       NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->PrintProcessorDllName), sizeof(uint8_t)));
+                       NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->PrintProcessorDllName, ndr_get_array_length(ndr, &r->PrintProcessorDllName), sizeof(uint8_t), CH_DOS));
+                       NDR_PULL_SET_MEM_CTX(ndr, _mem_save_PrintProcessorDllName_0, 0);
+               }
+               if (r->PrintParameterString) {
+                       uint32_t _relative_save_offset;
+                       _relative_save_offset = ndr->offset;
+                       NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->PrintParameterString));
+                       _mem_save_PrintParameterString_0 = NDR_PULL_GET_MEM_CTX(ndr);
+                       NDR_PULL_SET_MEM_CTX(ndr, r->PrintParameterString, 0);
+                       NDR_CHECK(ndr_pull_array_size(ndr, &r->PrintParameterString));
+                       NDR_CHECK(ndr_pull_array_length(ndr, &r->PrintParameterString));
+                       if (ndr_get_array_length(ndr, &r->PrintParameterString) > ndr_get_array_size(ndr, &r->PrintParameterString)) {
+                               return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->PrintParameterString), ndr_get_array_length(ndr, &r->PrintParameterString));
+                       }
+                       NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->PrintParameterString), sizeof(uint8_t)));
+                       NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->PrintParameterString, ndr_get_array_length(ndr, &r->PrintParameterString), sizeof(uint8_t), CH_DOS));
+                       NDR_PULL_SET_MEM_CTX(ndr, _mem_save_PrintParameterString_0, 0);
+               }
+               if (r->CommentString) {
+                       uint32_t _relative_save_offset;
+                       _relative_save_offset = ndr->offset;
+                       NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->CommentString));
+                       _mem_save_CommentString_0 = NDR_PULL_GET_MEM_CTX(ndr);
+                       NDR_PULL_SET_MEM_CTX(ndr, r->CommentString, 0);
+                       NDR_CHECK(ndr_pull_array_size(ndr, &r->CommentString));
+                       NDR_CHECK(ndr_pull_array_length(ndr, &r->CommentString));
+                       if (ndr_get_array_length(ndr, &r->CommentString) > ndr_get_array_size(ndr, &r->CommentString)) {
+                               return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->CommentString), ndr_get_array_length(ndr, &r->CommentString));
+                       }
+                       NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->CommentString), sizeof(uint8_t)));
+                       NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->CommentString, ndr_get_array_length(ndr, &r->CommentString), sizeof(uint8_t), CH_DOS));
+                       NDR_PULL_SET_MEM_CTX(ndr, _mem_save_CommentString_0, 0);
+               }
+               if (r->Printers) {
+                       uint32_t _relative_save_offset;
+                       _relative_save_offset = ndr->offset;
+                       NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->Printers));
+                       _mem_save_Printers_0 = NDR_PULL_GET_MEM_CTX(ndr);
+                       NDR_PULL_SET_MEM_CTX(ndr, r->Printers, 0);
+                       NDR_CHECK(ndr_pull_array_size(ndr, &r->Printers));
+                       NDR_CHECK(ndr_pull_array_length(ndr, &r->Printers));
+                       if (ndr_get_array_length(ndr, &r->Printers) > ndr_get_array_size(ndr, &r->Printers)) {
+                               return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->Printers), ndr_get_array_length(ndr, &r->Printers));
+                       }
+                       NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->Printers), sizeof(uint8_t)));
+                       NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->Printers, ndr_get_array_length(ndr, &r->Printers), sizeof(uint8_t), CH_DOS));
+                       NDR_PULL_SET_MEM_CTX(ndr, _mem_save_Printers_0, 0);
+               }
+               if (r->DriverName) {
+                       uint32_t _relative_save_offset;
+                       _relative_save_offset = ndr->offset;
+                       NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->DriverName));
+                       _mem_save_DriverName_0 = NDR_PULL_GET_MEM_CTX(ndr);
+                       NDR_PULL_SET_MEM_CTX(ndr, r->DriverName, 0);
+                       NDR_CHECK(ndr_pull_array_size(ndr, &r->DriverName));
+                       NDR_CHECK(ndr_pull_array_length(ndr, &r->DriverName));
+                       if (ndr_get_array_length(ndr, &r->DriverName) > ndr_get_array_size(ndr, &r->DriverName)) {
+                               return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->DriverName), ndr_get_array_length(ndr, &r->DriverName));
+                       }
+                       NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->DriverName), sizeof(uint8_t)));
+                       NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->DriverName, ndr_get_array_length(ndr, &r->DriverName), sizeof(uint8_t), CH_DOS));
+                       NDR_PULL_SET_MEM_CTX(ndr, _mem_save_DriverName_0, 0);
+               }
+               if (r->PrintDriverData) {
+                       uint32_t _relative_save_offset;
+                       _relative_save_offset = ndr->offset;
+                       NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->PrintDriverData));
+                       _mem_save_PrintDriverData_0 = NDR_PULL_GET_MEM_CTX(ndr);
+                       NDR_PULL_SET_MEM_CTX(ndr, r->PrintDriverData, 0);
+                       NDR_CHECK(ndr_pull_array_size(ndr, &r->PrintDriverData));
+                       NDR_CHECK(ndr_pull_array_length(ndr, &r->PrintDriverData));
+                       if (ndr_get_array_length(ndr, &r->PrintDriverData) > ndr_get_array_size(ndr, &r->PrintDriverData)) {
+                               return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->PrintDriverData), ndr_get_array_length(ndr, &r->PrintDriverData));
+                       }
+                       NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->PrintDriverData), sizeof(uint8_t)));
+                       NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->PrintDriverData, ndr_get_array_length(ndr, &r->PrintDriverData), sizeof(uint8_t), CH_DOS));
+                       NDR_PULL_SET_MEM_CTX(ndr, _mem_save_PrintDriverData_0, 0);
+               }
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_rap_PrintQueue3(struct ndr_print *ndr, const char *name, const struct rap_PrintQueue3 *r)
+{
+       ndr_print_struct(ndr, name, "rap_PrintQueue3");
+       ndr->depth++;
+       ndr_print_ptr(ndr, "PrintQueueName", r->PrintQueueName);
+       ndr->depth++;
+       if (r->PrintQueueName) {
+               ndr_print_string(ndr, "PrintQueueName", r->PrintQueueName);
+       }
+       ndr->depth--;
+       ndr_print_uint16(ndr, "PrintQueueNameHigh", r->PrintQueueNameHigh);
+       ndr_print_uint16(ndr, "Priority", r->Priority);
+       ndr_print_uint16(ndr, "StartTime", r->StartTime);
+       ndr_print_uint16(ndr, "UntilTime", r->UntilTime);
+       ndr_print_uint16(ndr, "Pad", r->Pad);
+       ndr_print_ptr(ndr, "SeparatorPageFilename", r->SeparatorPageFilename);
+       ndr->depth++;
+       if (r->SeparatorPageFilename) {
+               ndr_print_string(ndr, "SeparatorPageFilename", r->SeparatorPageFilename);
+       }
+       ndr->depth--;
+       ndr_print_uint16(ndr, "SeparatorPageFilenameHigh", r->SeparatorPageFilenameHigh);
+       ndr_print_ptr(ndr, "PrintProcessorDllName", r->PrintProcessorDllName);
+       ndr->depth++;
+       if (r->PrintProcessorDllName) {
+               ndr_print_string(ndr, "PrintProcessorDllName", r->PrintProcessorDllName);
+       }
+       ndr->depth--;
+       ndr_print_uint16(ndr, "PrintProcessorDllNameHigh", r->PrintProcessorDllNameHigh);
+       ndr_print_ptr(ndr, "PrintParameterString", r->PrintParameterString);
+       ndr->depth++;
+       if (r->PrintParameterString) {
+               ndr_print_string(ndr, "PrintParameterString", r->PrintParameterString);
+       }
+       ndr->depth--;
+       ndr_print_uint16(ndr, "PrintParameterStringHigh", r->PrintParameterStringHigh);
+       ndr_print_ptr(ndr, "CommentString", r->CommentString);
+       ndr->depth++;
+       if (r->CommentString) {
+               ndr_print_string(ndr, "CommentString", r->CommentString);
+       }
+       ndr->depth--;
+       ndr_print_uint16(ndr, "CommentStringHigh", r->CommentStringHigh);
+       ndr_print_rap_PrintQStatusCode(ndr, "PrintQStatus", r->PrintQStatus);
+       ndr_print_uint16(ndr, "PrintJobCount", r->PrintJobCount);
+       ndr_print_ptr(ndr, "Printers", r->Printers);
+       ndr->depth++;
+       if (r->Printers) {
+               ndr_print_string(ndr, "Printers", r->Printers);
+       }
+       ndr->depth--;
+       ndr_print_uint16(ndr, "PrintersHigh", r->PrintersHigh);
+       ndr_print_ptr(ndr, "DriverName", r->DriverName);
+       ndr->depth++;
+       if (r->DriverName) {
+               ndr_print_string(ndr, "DriverName", r->DriverName);
+       }
+       ndr->depth--;
+       ndr_print_uint16(ndr, "DriverNameHigh", r->DriverNameHigh);
+       ndr_print_ptr(ndr, "PrintDriverData", r->PrintDriverData);
+       ndr->depth++;
+       if (r->PrintDriverData) {
+               ndr_print_string(ndr, "PrintDriverData", r->PrintDriverData);
+       }
+       ndr->depth--;
+       ndr_print_uint16(ndr, "PrintDriverDataHigh", r->PrintDriverDataHigh);
+       ndr->depth--;
+}
+
+static enum ndr_err_code ndr_push_rap_PrintQueue4(struct ndr_push *ndr, int ndr_flags, const struct rap_PrintQueue4 *r)
+{
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_push_align(ndr, 1));
+               NDR_CHECK(ndr_push_trailer_align(ndr, 1));
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_rap_PrintQueue4(struct ndr_pull *ndr, int ndr_flags, struct rap_PrintQueue4 *r)
+{
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_pull_align(ndr, 1));
+               NDR_CHECK(ndr_pull_trailer_align(ndr, 1));
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_rap_PrintQueue4(struct ndr_print *ndr, const char *name, const struct rap_PrintQueue4 *r)
+{
+       ndr_print_struct(ndr, name, "rap_PrintQueue4");
+       ndr->depth++;
+       ndr->depth--;
+}
+
+static enum ndr_err_code ndr_push_rap_PrintQueue5(struct ndr_push *ndr, int ndr_flags, const struct rap_PrintQueue5 *r)
+{
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_push_align(ndr, 5));
+               NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->PrintQueueName));
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->PrintQueueNameHigh));
+               NDR_CHECK(ndr_push_trailer_align(ndr, 5));
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+               if (r->PrintQueueName) {
+                       NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->PrintQueueName));
+                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->PrintQueueName, CH_DOS)));
+                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
+                       NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->PrintQueueName, CH_DOS)));
+                       NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->PrintQueueName, ndr_charset_length(r->PrintQueueName, CH_DOS), sizeof(uint8_t), CH_DOS));
+               }
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_rap_PrintQueue5(struct ndr_pull *ndr, int ndr_flags, struct rap_PrintQueue5 *r)
+{
+       uint16_t _ptr_PrintQueueName;
+       TALLOC_CTX *_mem_save_PrintQueueName_0;
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_pull_align(ndr, 5));
+               NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_PrintQueueName));
+               if (_ptr_PrintQueueName) {
+                       NDR_PULL_ALLOC(ndr, r->PrintQueueName);
+                       NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->PrintQueueName, _ptr_PrintQueueName));
+               } else {
+                       r->PrintQueueName = NULL;
+               }
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->PrintQueueNameHigh));
+               NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+               if (r->PrintQueueName) {
+                       uint32_t _relative_save_offset;
+                       _relative_save_offset = ndr->offset;
+                       NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->PrintQueueName));
+                       _mem_save_PrintQueueName_0 = NDR_PULL_GET_MEM_CTX(ndr);
+                       NDR_PULL_SET_MEM_CTX(ndr, r->PrintQueueName, 0);
+                       NDR_CHECK(ndr_pull_array_size(ndr, &r->PrintQueueName));
+                       NDR_CHECK(ndr_pull_array_length(ndr, &r->PrintQueueName));
+                       if (ndr_get_array_length(ndr, &r->PrintQueueName) > ndr_get_array_size(ndr, &r->PrintQueueName)) {
+                               return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->PrintQueueName), ndr_get_array_length(ndr, &r->PrintQueueName));
+                       }
+                       NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->PrintQueueName), sizeof(uint8_t)));
+                       NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->PrintQueueName, ndr_get_array_length(ndr, &r->PrintQueueName), sizeof(uint8_t), CH_DOS));
+                       NDR_PULL_SET_MEM_CTX(ndr, _mem_save_PrintQueueName_0, 0);
+               }
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_rap_PrintQueue5(struct ndr_print *ndr, const char *name, const struct rap_PrintQueue5 *r)
+{
+       ndr_print_struct(ndr, name, "rap_PrintQueue5");
+       ndr->depth++;
+       ndr_print_ptr(ndr, "PrintQueueName", r->PrintQueueName);
+       ndr->depth++;
+       if (r->PrintQueueName) {
+               ndr_print_string(ndr, "PrintQueueName", r->PrintQueueName);
+       }
+       ndr->depth--;
+       ndr_print_uint16(ndr, "PrintQueueNameHigh", r->PrintQueueNameHigh);
+       ndr->depth--;
+}
+
+static enum ndr_err_code ndr_push_rap_printq_info(struct ndr_push *ndr, int ndr_flags, const union rap_printq_info *r)
+{
+       if (ndr_flags & NDR_SCALARS) {
+               int level = ndr_push_get_switch_value(ndr, r);
+               NDR_CHECK(ndr_push_union_align(ndr, 5));
+               switch (level) {
+                       case 0: {
+                               NDR_CHECK(ndr_push_rap_PrintQueue0(ndr, NDR_SCALARS, &r->info0));
+                       break; }
+
+                       case 1: {
+                               NDR_CHECK(ndr_push_rap_PrintQueue1(ndr, NDR_SCALARS, &r->info1));
+                       break; }
+
+                       case 2: {
+                               NDR_CHECK(ndr_push_rap_PrintQueue2(ndr, NDR_SCALARS, &r->info2));
+                       break; }
+
+                       case 3: {
+                               NDR_CHECK(ndr_push_rap_PrintQueue3(ndr, NDR_SCALARS, &r->info3));
+                       break; }
+
+                       case 4: {
+                               NDR_CHECK(ndr_push_rap_PrintQueue4(ndr, NDR_SCALARS, &r->info4));
+                       break; }
+
+                       case 5: {
+                               NDR_CHECK(ndr_push_rap_PrintQueue5(ndr, NDR_SCALARS, &r->info5));
+                       break; }
+
+                       default:
+                               return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
+               }
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+               int level = ndr_push_get_switch_value(ndr, r);
+               switch (level) {
+                       case 0:
+                       break;
+
+                       case 1:
+                               NDR_CHECK(ndr_push_rap_PrintQueue1(ndr, NDR_BUFFERS, &r->info1));
+                       break;
+
+                       case 2:
+                       break;
+
+                       case 3:
+                               NDR_CHECK(ndr_push_rap_PrintQueue3(ndr, NDR_BUFFERS, &r->info3));
+                       break;
+
+                       case 4:
+                       break;
+
+                       case 5:
+                               NDR_CHECK(ndr_push_rap_PrintQueue5(ndr, NDR_BUFFERS, &r->info5));
+                       break;
+
+                       default:
+                               return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
+               }
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_rap_printq_info(struct ndr_pull *ndr, int ndr_flags, union rap_printq_info *r)
+{
+       int level;
+       level = ndr_pull_get_switch_value(ndr, r);
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_pull_union_align(ndr, 5));
+               switch (level) {
+                       case 0: {
+                               NDR_CHECK(ndr_pull_rap_PrintQueue0(ndr, NDR_SCALARS, &r->info0));
+                       break; }
+
+                       case 1: {
+                               NDR_CHECK(ndr_pull_rap_PrintQueue1(ndr, NDR_SCALARS, &r->info1));
+                       break; }
+
+                       case 2: {
+                               NDR_CHECK(ndr_pull_rap_PrintQueue2(ndr, NDR_SCALARS, &r->info2));
+                       break; }
+
+                       case 3: {
+                               NDR_CHECK(ndr_pull_rap_PrintQueue3(ndr, NDR_SCALARS, &r->info3));
+                       break; }
+
+                       case 4: {
+                               NDR_CHECK(ndr_pull_rap_PrintQueue4(ndr, NDR_SCALARS, &r->info4));
+                       break; }
+
+                       case 5: {
+                               NDR_CHECK(ndr_pull_rap_PrintQueue5(ndr, NDR_SCALARS, &r->info5));
+                       break; }
+
+                       default:
+                               return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
+               }
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+               switch (level) {
+                       case 0:
+                       break;
+
+                       case 1:
+                               NDR_CHECK(ndr_pull_rap_PrintQueue1(ndr, NDR_BUFFERS, &r->info1));
+                       break;
+
+                       case 2:
+                       break;
+
+                       case 3:
+                               NDR_CHECK(ndr_pull_rap_PrintQueue3(ndr, NDR_BUFFERS, &r->info3));
+                       break;
+
+                       case 4:
+                       break;
+
+                       case 5:
+                               NDR_CHECK(ndr_pull_rap_PrintQueue5(ndr, NDR_BUFFERS, &r->info5));
+                       break;
+
+                       default:
+                               return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
+               }
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_rap_printq_info(struct ndr_print *ndr, const char *name, const union rap_printq_info *r)
+{
+       int level;
+       level = ndr_print_get_switch_value(ndr, r);
+       ndr_print_union(ndr, name, level, "rap_printq_info");
+       switch (level) {
+               case 0:
+                       ndr_print_rap_PrintQueue0(ndr, "info0", &r->info0);
+               break;
+
+               case 1:
+                       ndr_print_rap_PrintQueue1(ndr, "info1", &r->info1);
+               break;
+
+               case 2:
+                       ndr_print_rap_PrintQueue2(ndr, "info2", &r->info2);
+               break;
+
+               case 3:
+                       ndr_print_rap_PrintQueue3(ndr, "info3", &r->info3);
+               break;
+
+               case 4:
+                       ndr_print_rap_PrintQueue4(ndr, "info4", &r->info4);
+               break;
+
+               case 5:
+                       ndr_print_rap_PrintQueue5(ndr, "info5", &r->info5);
+               break;
+
+               default:
+                       ndr_print_bad_level(ndr, name, level);
+       }
+}
+
+_PUBLIC_ enum ndr_err_code ndr_push_rap_PrintJStatusCode(struct ndr_push *ndr, int ndr_flags, enum rap_PrintJStatusCode r)
+{
+       NDR_CHECK(ndr_push_enum_uint1632(ndr, NDR_SCALARS, r));
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ enum ndr_err_code ndr_pull_rap_PrintJStatusCode(struct ndr_pull *ndr, int ndr_flags, enum rap_PrintJStatusCode *r)
+{
+       uint16_t v;
+       NDR_CHECK(ndr_pull_enum_uint1632(ndr, NDR_SCALARS, &v));
+       *r = v;
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_rap_PrintJStatusCode(struct ndr_print *ndr, const char *name, enum rap_PrintJStatusCode r)
+{
+       const char *val = NULL;
+
+       switch (r) {
+               case PRJ_QS_QUEUED: val = "PRJ_QS_QUEUED"; break;
+               case PRJ_QS_PAUSED: val = "PRJ_QS_PAUSED"; break;
+               case PRJ_QS_SPOOLING: val = "PRJ_QS_SPOOLING"; break;
+               case PRJ_QS_PRINTING: val = "PRJ_QS_PRINTING"; break;
+               case PRJ_QS_ERROR: val = "PRJ_QS_ERROR"; break;
+       }
+       ndr_print_enum(ndr, name, "ENUM", val, r);
+}
+
+_PUBLIC_ enum ndr_err_code ndr_push_rap_NetShareEnum(struct ndr_push *ndr, int flags, const struct rap_NetShareEnum *r)
+{
+       if (flags & NDR_IN) {
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.level));
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.bufsize));
+       }
+       if (flags & NDR_OUT) {
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.status));
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.convert));
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.count));
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.available));
+               if (r->out.info == NULL) {
+                       return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
+               }
+               NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.info, r->in.level));
+               NDR_CHECK(ndr_push_rap_share_info(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ enum ndr_err_code ndr_pull_rap_NetShareEnum(struct ndr_pull *ndr, int flags, struct rap_NetShareEnum *r)
+{
+       TALLOC_CTX *_mem_save_info_0;
+       if (flags & NDR_IN) {
+               ZERO_STRUCT(r->out);
+
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.level));
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.bufsize));
+               NDR_PULL_ALLOC(ndr, r->out.info);
+               ZERO_STRUCTP(r->out.info);
+       }
+       if (flags & NDR_OUT) {
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.status));
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.convert));
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.count));
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.available));
+               if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
+                       NDR_PULL_ALLOC(ndr, r->out.info);
+               }
+               _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
+               NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
+               NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.info, r->in.level));
+               NDR_CHECK(ndr_pull_rap_share_info(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
+               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_rap_NetShareEnum(struct ndr_print *ndr, const char *name, int flags, const struct rap_NetShareEnum *r)
+{
+       ndr_print_struct(ndr, name, "rap_NetShareEnum");
+       ndr->depth++;
+       if (flags & NDR_SET_VALUES) {
+               ndr->flags |= LIBNDR_PRINT_SET_VALUES;
+       }
+       if (flags & NDR_IN) {
+               ndr_print_struct(ndr, "in", "rap_NetShareEnum");
+               ndr->depth++;
+               ndr_print_uint16(ndr, "level", r->in.level);
+               ndr_print_uint16(ndr, "bufsize", r->in.bufsize);
+               ndr->depth--;
+       }
+       if (flags & NDR_OUT) {
+               ndr_print_struct(ndr, "out", "rap_NetShareEnum");
+               ndr->depth++;
+               ndr_print_uint16(ndr, "status", r->out.status);
+               ndr_print_uint16(ndr, "convert", r->out.convert);
+               ndr_print_uint16(ndr, "count", r->out.count);
+               ndr_print_uint16(ndr, "available", r->out.available);
+               ndr_print_ptr(ndr, "info", r->out.info);
+               ndr->depth++;
+               ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
+               ndr_print_rap_share_info(ndr, "info", r->out.info);
+               ndr->depth--;
+               ndr->depth--;
+       }
+       ndr->depth--;
+}
+
+_PUBLIC_ enum ndr_err_code ndr_push_rap_NetServerEnum2(struct ndr_push *ndr, int flags, const struct rap_NetServerEnum2 *r)
+{
+       if (flags & NDR_IN) {
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.level));
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.bufsize));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.servertype));
+               if (r->in.domain == NULL) {
+                       return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
+               }
+               NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain, CH_DOS)));
+               NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
+               NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain, CH_DOS)));
+               NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domain, ndr_charset_length(r->in.domain, CH_DOS), sizeof(uint8_t), CH_DOS));
+       }
+       if (flags & NDR_OUT) {
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.status));
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.convert));
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.count));
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.available));
+               if (r->out.info == NULL) {
+                       return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
+               }
+               NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.info, r->in.level));
+               NDR_CHECK(ndr_push_rap_server_info(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ enum ndr_err_code ndr_pull_rap_NetServerEnum2(struct ndr_pull *ndr, int flags, struct rap_NetServerEnum2 *r)
+{
+       TALLOC_CTX *_mem_save_info_0;
+       if (flags & NDR_IN) {
+               ZERO_STRUCT(r->out);
+
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.level));
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.bufsize));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.servertype));
+               NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain));
+               NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain));
+               if (ndr_get_array_length(ndr, &r->in.domain) > ndr_get_array_size(ndr, &r->in.domain)) {
+                       return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.domain), ndr_get_array_length(ndr, &r->in.domain));
+               }
+               NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain), sizeof(uint8_t)));
+               NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domain, ndr_get_array_length(ndr, &r->in.domain), sizeof(uint8_t), CH_DOS));
+               NDR_PULL_ALLOC(ndr, r->out.info);
+               ZERO_STRUCTP(r->out.info);
+       }
+       if (flags & NDR_OUT) {
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.status));
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.convert));
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.count));
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.available));
+               if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
+                       NDR_PULL_ALLOC(ndr, r->out.info);
+               }
+               _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
+               NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
+               NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.info, r->in.level));
+               NDR_CHECK(ndr_pull_rap_server_info(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
+               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_rap_NetServerEnum2(struct ndr_print *ndr, const char *name, int flags, const struct rap_NetServerEnum2 *r)
+{
+       ndr_print_struct(ndr, name, "rap_NetServerEnum2");
+       ndr->depth++;
+       if (flags & NDR_SET_VALUES) {
+               ndr->flags |= LIBNDR_PRINT_SET_VALUES;
+       }
+       if (flags & NDR_IN) {
+               ndr_print_struct(ndr, "in", "rap_NetServerEnum2");
+               ndr->depth++;
+               ndr_print_uint16(ndr, "level", r->in.level);
+               ndr_print_uint16(ndr, "bufsize", r->in.bufsize);
+               ndr_print_uint32(ndr, "servertype", r->in.servertype);
+               ndr_print_ptr(ndr, "domain", r->in.domain);
+               ndr->depth++;
+               ndr_print_string(ndr, "domain", r->in.domain);
+               ndr->depth--;
+               ndr->depth--;
+       }
+       if (flags & NDR_OUT) {
+               ndr_print_struct(ndr, "out", "rap_NetServerEnum2");
+               ndr->depth++;
+               ndr_print_uint16(ndr, "status", r->out.status);
+               ndr_print_uint16(ndr, "convert", r->out.convert);
+               ndr_print_uint16(ndr, "count", r->out.count);
+               ndr_print_uint16(ndr, "available", r->out.available);
+               ndr_print_ptr(ndr, "info", r->out.info);
+               ndr->depth++;
+               ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
+               ndr_print_rap_server_info(ndr, "info", r->out.info);
+               ndr->depth--;
+               ndr->depth--;
+       }
+       ndr->depth--;
+}
+
+_PUBLIC_ enum ndr_err_code ndr_push_rap_WserverGetInfo(struct ndr_push *ndr, int flags, const struct rap_WserverGetInfo *r)
+{
+       if (flags & NDR_IN) {
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.level));
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.bufsize));
+       }
+       if (flags & NDR_OUT) {
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.status));
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.convert));
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.available));
+               NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info, r->in.level));
+               NDR_CHECK(ndr_push_rap_server_info(ndr, NDR_SCALARS|NDR_BUFFERS, &r->out.info));
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ enum ndr_err_code ndr_pull_rap_WserverGetInfo(struct ndr_pull *ndr, int flags, struct rap_WserverGetInfo *r)
+{
+       if (flags & NDR_IN) {
+               ZERO_STRUCT(r->out);
+
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.level));
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.bufsize));
+       }
+       if (flags & NDR_OUT) {
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.status));
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.convert));
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.available));
+               NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info, r->in.level));
+               NDR_CHECK(ndr_pull_rap_server_info(ndr, NDR_SCALARS|NDR_BUFFERS, &r->out.info));
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_rap_WserverGetInfo(struct ndr_print *ndr, const char *name, int flags, const struct rap_WserverGetInfo *r)
+{
+       ndr_print_struct(ndr, name, "rap_WserverGetInfo");
+       ndr->depth++;
+       if (flags & NDR_SET_VALUES) {
+               ndr->flags |= LIBNDR_PRINT_SET_VALUES;
+       }
+       if (flags & NDR_IN) {
+               ndr_print_struct(ndr, "in", "rap_WserverGetInfo");
+               ndr->depth++;
+               ndr_print_uint16(ndr, "level", r->in.level);
+               ndr_print_uint16(ndr, "bufsize", r->in.bufsize);
+               ndr->depth--;
+       }
+       if (flags & NDR_OUT) {
+               ndr_print_struct(ndr, "out", "rap_WserverGetInfo");
+               ndr->depth++;
+               ndr_print_uint16(ndr, "status", r->out.status);
+               ndr_print_uint16(ndr, "convert", r->out.convert);
+               ndr_print_uint16(ndr, "available", r->out.available);
+               ndr_print_set_switch_value(ndr, &r->out.info, r->in.level);
+               ndr_print_rap_server_info(ndr, "info", &r->out.info);
+               ndr->depth--;
+       }
+       ndr->depth--;
+}
+
+_PUBLIC_ enum ndr_err_code ndr_push_rap_NetPrintQEnum(struct ndr_push *ndr, int flags, const struct rap_NetPrintQEnum *r)
+{
+       if (flags & NDR_IN) {
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.level));
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.bufsize));
+       }
+       if (flags & NDR_OUT) {
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.status));
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.convert));
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.count));
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.available));
+               if (r->out.info == NULL) {
+                       return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
+               }
+               NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.info, r->in.level));
+               NDR_CHECK(ndr_push_rap_printq_info(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ enum ndr_err_code ndr_pull_rap_NetPrintQEnum(struct ndr_pull *ndr, int flags, struct rap_NetPrintQEnum *r)
+{
+       TALLOC_CTX *_mem_save_info_0;
+       if (flags & NDR_IN) {
+               ZERO_STRUCT(r->out);
+
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.level));
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.bufsize));
+               NDR_PULL_ALLOC(ndr, r->out.info);
+               ZERO_STRUCTP(r->out.info);
+       }
+       if (flags & NDR_OUT) {
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.status));
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.convert));
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.count));
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.available));
+               if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
+                       NDR_PULL_ALLOC(ndr, r->out.info);
+               }
+               _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
+               NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
+               NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.info, r->in.level));
+               NDR_CHECK(ndr_pull_rap_printq_info(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
+               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_rap_NetPrintQEnum(struct ndr_print *ndr, const char *name, int flags, const struct rap_NetPrintQEnum *r)
+{
+       ndr_print_struct(ndr, name, "rap_NetPrintQEnum");
+       ndr->depth++;
+       if (flags & NDR_SET_VALUES) {
+               ndr->flags |= LIBNDR_PRINT_SET_VALUES;
+       }
+       if (flags & NDR_IN) {
+               ndr_print_struct(ndr, "in", "rap_NetPrintQEnum");
+               ndr->depth++;
+               ndr_print_uint16(ndr, "level", r->in.level);
+               ndr_print_uint16(ndr, "bufsize", r->in.bufsize);
+               ndr->depth--;
+       }
+       if (flags & NDR_OUT) {
+               ndr_print_struct(ndr, "out", "rap_NetPrintQEnum");
+               ndr->depth++;
+               ndr_print_uint16(ndr, "status", r->out.status);
+               ndr_print_uint16(ndr, "convert", r->out.convert);
+               ndr_print_uint16(ndr, "count", r->out.count);
+               ndr_print_uint16(ndr, "available", r->out.available);
+               ndr_print_ptr(ndr, "info", r->out.info);
+               ndr->depth++;
+               ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
+               ndr_print_rap_printq_info(ndr, "info", r->out.info);
+               ndr->depth--;
+               ndr->depth--;
+       }
+       ndr->depth--;
+}
+