summaryrefslogtreecommitdiff
path: root/source4/librpc/ndr
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2005-05-30 22:44:17 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:17:19 -0500
commit62480f12529326d174d2c53376765e88ca03754f (patch)
treec6e81592ee390fa7c597f5838a548a12fa392c11 /source4/librpc/ndr
parent46e5fda0ad956c1b6524d89b9317b8ad35043c69 (diff)
downloadsamba-62480f12529326d174d2c53376765e88ca03754f.tar.gz
samba-62480f12529326d174d2c53376765e88ca03754f.tar.bz2
samba-62480f12529326d174d2c53376765e88ca03754f.zip
r7120: make use of the new 'noopnum' property and get rid of handwritten
parsing code for the spoolss_Enum* functions, there still same handwritten code needed but just to stack the autogenerated code into the correct way metze (This used to be commit 155d18e8b78afebfb4a84e43e3b4d8fc6c9cc4e2)
Diffstat (limited to 'source4/librpc/ndr')
-rw-r--r--source4/librpc/ndr/ndr_spoolss_buf.c1029
1 files changed, 164 insertions, 865 deletions
diff --git a/source4/librpc/ndr/ndr_spoolss_buf.c b/source4/librpc/ndr/ndr_spoolss_buf.c
index de4a87547d..2ea9f95d45 100644
--- a/source4/librpc/ndr/ndr_spoolss_buf.c
+++ b/source4/librpc/ndr/ndr_spoolss_buf.c
@@ -25,116 +25,90 @@
#include "includes.h"
#include "librpc/gen_ndr/ndr_spoolss.h"
-#define NDR_SPOOLSS_PUSH_ENUM_OUT(fn,type) do { \
- DATA_BLOB buffer;\
- if (r->out.info) {\
- int i;\
- size_t size;\
- uint8_t *data;\
- struct ndr_push *ndr2;\
-\
- ndr2 = ndr_push_init_ctx(ndr);\
- if (!ndr2) {\
- return NT_STATUS_NO_MEMORY;\
- }\
-\
- size = ndr2->offset;\
- data = ndr2->data;\
-\
- for (i=0;i<r->out.count;i++) {\
- ndr2->data += ndr2->offset;\
- ndr2->offset = 0;\
- NDR_CHECK(ndr_push_set_switch_value(ndr2, &(*r->out.info)[i], r->in.level)); \
- NDR_CHECK(ndr_push_##type(ndr2, NDR_SCALARS|NDR_BUFFERS, &(*r->out.info)[i]));\
- size += ndr2->offset;\
- }\
- if (*r->in.buf_size >= size) {\
- buffer = data_blob_const(data, size);\
- } else {\
- r->out.info = NULL;\
- r->out.count = 0;\
- r->out.result = WERR_INSUFFICIENT_BUFFER;\
- }\
- *r->out.buf_size = size;\
- }\
- NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));\
- if (r->out.info) {\
- NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS|NDR_BUFFERS, buffer));\
- }\
- NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.buf_size));\
- NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.count));\
- NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));\
+#define NDR_SPOOLSS_PUSH_ENUM_IN(fn) do { \
+ _r.in.level = r->in.level;\
+ _r.in.buffer = r->in.buffer;\
+ _r.in.buf_size = r->in.buf_size;\
+ NDR_CHECK(ndr_push__##fn(ndr, flags, &_r));\
} while(0)
-#define NDR_SPOOLSS_PULL_ENUM_OUT(fn,type) do { \
- int i;\
- DATA_BLOB buffer;\
- struct ndr_pull *ndr2;\
-\
- NDR_CHECK(ndr_pull_unique_ptr(ndr, &_ptr_info));\
- if (_ptr_info) {\
- NDR_ALLOC(ndr, r->out.info);\
- } else {\
- r->out.info = NULL;\
- }\
+#define NDR_SPOOLSS_PUSH_ENUM_OUT(fn) do { \
+ struct ndr_push *_ndr_info;\
+ _r.in.level = r->in.level;\
+ _r.in.buffer = r->in.buffer;\
+ _r.in.buf_size = r->in.buf_size;\
+ _r.out.buffer = NULL;\
+ _r.out.buf_size = r->out.buf_size;\
+ _r.out.count = r->out.count;\
+ _r.out.result = r->out.result;\
if (r->out.info) {\
- NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS|NDR_BUFFERS, &buffer));\
- *r->out.info = NULL;\
+ struct __##fn __r;\
+ DATA_BLOB _data_blob_info;\
+ _ndr_info = ndr_push_init_ctx(ndr);\
+ if (!_ndr_info) return NT_STATUS_NO_MEMORY;\
+ __r.in.level = r->in.level;\
+ __r.in.count = r->out.count;\
+ __r.out.info = r->out.info;\
+ NDR_CHECK(ndr_push___##fn(_ndr_info, flags, &__r)); \
+ _data_blob_info = ndr_push_blob(_ndr_info);\
+ _r.out.buffer = &_data_blob_info;\
}\
- if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {\
- NDR_ALLOC(ndr, r->out.buf_size);\
+ NDR_CHECK(ndr_push__##fn(ndr, flags, &_r));\
+} while(0)
+
+#define NDR_SPOOLSS_PUSH_ENUM(fn,in,out) do { \
+ struct _##fn _r;\
+ if (flags & NDR_IN) {\
+ in;\
+ NDR_SPOOLSS_PUSH_ENUM_IN(fn);\
}\
- NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.buf_size));\
- NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS|NDR_BUFFERS, &r->out.count));\
- NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));\
-\
- if (r->out.info == NULL && r->out.count) {\
- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE,\
- #fn ": r->out.count[%d] but r->out.info == NULL\n",\
- r->out.count);\
+ if (flags & NDR_OUT) {\
+ out;\
+ NDR_SPOOLSS_PUSH_ENUM_OUT(fn);\
}\
-\
- if (r->out.info && r->out.count) {\
- ndr2 = ndr_pull_init_blob(&buffer, ndr);\
- if (!ndr2) return NT_STATUS_NO_MEMORY;\
- NDR_ALLOC_N(ndr2, *r->out.info, r->out.count);\
- for (i=0;i<r->out.count;i++) {\
- ndr2->data += ndr2->offset;\
- ndr2->offset = 0;\
- NDR_CHECK(ndr_pull_set_switch_value(ndr2, &(*r->out.info)[i], r->in.level)); \
- NDR_CHECK(ndr_pull_##type(ndr2, NDR_SCALARS|NDR_BUFFERS, &(*r->out.info)[i]));\
- }\
+} while(0)
+
+#define NDR_SPOOLSS_PULL_ENUM_IN(fn) do { \
+ ZERO_STRUCT(r->out);\
+ NDR_CHECK(ndr_pull__##fn(ndr, flags, &_r));\
+ r->in.level = _r.in.level;\
+ r->in.buffer = _r.in.buffer;\
+ r->in.buf_size = _r.in.buf_size;\
+} while(0)
+
+#define NDR_SPOOLSS_PULL_ENUM_OUT(fn) do { \
+ struct ndr_pull *_ndr_info;\
+ _r.in.level = r->in.level;\
+ _r.in.buffer = r->in.buffer;\
+ _r.in.buf_size = r->in.buf_size;\
+ _r.out.buf_size = r->out.buf_size;\
+ NDR_CHECK(ndr_pull__##fn(ndr, flags, &_r));\
+ r->out.info = NULL;\
+ r->out.buf_size = _r.out.buf_size;\
+ r->out.count = _r.out.count;\
+ r->out.result = _r.out.result;\
+ if (_r.out.buffer) {\
+ struct __##fn __r;\
+ _ndr_info = ndr_pull_init_blob(_r.out.buffer, ndr);\
+ if (!_ndr_info) return NT_STATUS_NO_MEMORY;\
+ __r.in.level = r->in.level;\
+ __r.in.count = r->out.count;\
+ __r.out.info = NULL;\
+ NDR_CHECK(ndr_pull___##fn(_ndr_info, flags, &__r));\
+ r->out.info = __r.out.info;\
}\
} while(0)
-#define NDR_SPOOLSS_PRINT_ENUM_OUT(fn,type) do { \
- ndr_print_struct(ndr, "out", #fn);\
- ndr->depth++;\
- ndr_print_ptr(ndr, "info", r->out.info);\
- ndr->depth++;\
- if (r->out.info) {\
- int i;\
- ndr->print(ndr, "%s: ARRAY(%d)", "info", r->out.count);\
- ndr->depth++;\
- for (i=0;i<r->out.count;i++) {\
- char *idx=NULL;\
- asprintf(&idx, "[%d]", i);\
- if (idx) {\
- ndr_print_set_switch_value(ndr, &((*r->out.info)[i]), r->in.level); \
- ndr_print_##type(ndr, idx, &((*r->out.info)[i]));\
- free(idx);\
- }\
- }\
- ndr->depth--;\
+#define NDR_SPOOLSS_PULL_ENUM(fn,in,out) do { \
+ struct _##fn _r;\
+ if (flags & NDR_IN) {\
+ in;\
+ NDR_SPOOLSS_PULL_ENUM_IN(fn);\
+ }\
+ if (flags & NDR_OUT) {\
+ out;\
+ NDR_SPOOLSS_PULL_ENUM_OUT(fn);\
}\
- ndr->depth--;\
- ndr_print_ptr(ndr, "buf_size", r->out.buf_size);\
- ndr->depth++;\
- ndr_print_uint32(ndr, "buf_size", *r->out.buf_size);\
- ndr->depth--;\
- ndr_print_uint32(ndr, "count", r->out.count);\
- ndr_print_WERROR(ndr, "result", r->out.result);\
- ndr->depth--;\
} while(0)
/*
@@ -142,853 +116,178 @@
*/
NTSTATUS ndr_push_spoolss_EnumPrinters(struct ndr_push *ndr, int flags, struct spoolss_EnumPrinters *r)
{
- if (!(flags & NDR_IN)) goto ndr_out;
-
- NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.flags));
- { uint32_t _flags_save_string = ndr->flags;
- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_SIZE4|LIBNDR_FLAG_STR_LEN4);
- NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
- ndr->flags = _flags_save_string;
- }
- { uint32_t _flags_save_string = ndr->flags;
- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_SIZE4|LIBNDR_FLAG_STR_LEN4);
- if (r->in.server) {
- NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.server));
- }
- ndr->flags = _flags_save_string;
- }
- NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.level));
- NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
- if (r->in.buffer) {
- NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS|NDR_BUFFERS, *r->in.buffer));
- }
- NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS|NDR_BUFFERS, *r->in.buf_size));
- ndr_out:
- if (!(flags & NDR_OUT)) goto done;
-
- NDR_SPOOLSS_PUSH_ENUM_OUT(spoolss_EnumPrinters,spoolss_PrinterInfo);
-
- done:
+ NDR_SPOOLSS_PUSH_ENUM(spoolss_EnumPrinters,{
+ _r.in.flags = r->in.flags;
+ _r.in.server = r->in.server;
+ },{
+ _r.in.flags = r->in.flags;
+ _r.in.server = r->in.server;
+ });
return NT_STATUS_OK;
}
NTSTATUS ndr_pull_spoolss_EnumPrinters(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinters *r)
{
- uint32_t _ptr_server;
- uint32_t _ptr_buffer;
- uint32_t _ptr_info;
- if (!(flags & NDR_IN)) goto ndr_out;
-
- ZERO_STRUCT(r->out);
-
- NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.flags));
- { uint32_t _flags_save_string = ndr->flags;
- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_SIZE4|LIBNDR_FLAG_STR_LEN4);
- NDR_CHECK(ndr_pull_unique_ptr(ndr, &_ptr_server));
- if (_ptr_server) {
- NDR_ALLOC(ndr, r->in.server);
- } else {
- r->in.server = NULL;
- }
- ndr->flags = _flags_save_string;
- }
- { uint32_t _flags_save_string = ndr->flags;
- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_SIZE4|LIBNDR_FLAG_STR_LEN4);
- if (r->in.server) {
- NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.server));
- }
- ndr->flags = _flags_save_string;
- }
- NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.level));
- NDR_CHECK(ndr_pull_unique_ptr(ndr, &_ptr_buffer));
- if (_ptr_buffer) {
- NDR_ALLOC(ndr, r->in.buffer);
- } else {
- r->in.buffer = NULL;
- }
- if (r->in.buffer) {
- NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.buffer));
- }
- NDR_ALLOC(ndr, r->in.buf_size);
- NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.buf_size));
- NDR_ALLOC(ndr, r->out.buf_size);
- *r->out.buf_size = *r->in.buf_size;
- ndr_out:
- if (!(flags & NDR_OUT)) goto done;
-
- NDR_SPOOLSS_PULL_ENUM_OUT(spoolss_EnumPrinters,spoolss_PrinterInfo);
-
- done:
-
+ NDR_SPOOLSS_PULL_ENUM(spoolss_EnumPrinters,{
+ r->in.flags = _r.in.flags;
+ r->in.server = _r.in.server;
+ },{
+ _r.in.flags = r->in.flags;
+ _r.in.server = r->in.server;
+ });
return NT_STATUS_OK;
}
-void ndr_print_spoolss_EnumPrinters(struct ndr_print *ndr, const char *name, int flags, struct spoolss_EnumPrinters *r)
-{
- ndr_print_struct(ndr, name, "spoolss_EnumPrinters");
- ndr->depth++;
- if (flags & NDR_SET_VALUES) {
- ndr->flags |= LIBNDR_PRINT_SET_VALUES;
- }
- if (flags & NDR_IN) {
- ndr_print_struct(ndr, "in", "spoolss_EnumPrinters");
- ndr->depth++;
- ndr_print_spoolss_EnumPrinterFlags(ndr, "flags", r->in.flags);
- ndr_print_ptr(ndr, "server", r->in.server);
- ndr->depth++;
- if (r->in.server) {
- ndr_print_string(ndr, "server", r->in.server);
- }
- ndr->depth--;
- ndr_print_uint32(ndr, "level", r->in.level);
- ndr_print_ptr(ndr, "buffer", r->in.buffer);
- ndr->depth++;
- if (r->in.buffer) {
- ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
- }
- ndr->depth--;
- ndr_print_ptr(ndr, "buf_size", r->in.buf_size);
- ndr->depth++;
- ndr_print_uint32(ndr, "buf_size", *r->in.buf_size);
- ndr->depth--;
- ndr->depth--;
- }
- if (flags & NDR_OUT) {
- NDR_SPOOLSS_PRINT_ENUM_OUT(spoolss_EnumPrinters,spoolss_PrinterInfo);
- }
- ndr->depth--;
-}
-
/*
spoolss_EnumJobs
*/
NTSTATUS ndr_push_spoolss_EnumJobs(struct ndr_push *ndr, int flags, struct spoolss_EnumJobs *r)
{
- if (!(flags & NDR_IN)) goto ndr_out;
-
- NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
- NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.firstjob));
- NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.numjobs));
- NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.level));
- NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
- if (r->in.buffer) {
- NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS|NDR_BUFFERS, *r->in.buffer));
- }
- NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS|NDR_BUFFERS, *r->in.buf_size));
- ndr_out:
- if (!(flags & NDR_OUT)) goto done;
-
- NDR_SPOOLSS_PUSH_ENUM_OUT(spoolss_EnumJobs,spoolss_JobInfo);
-
- done:
+ NDR_SPOOLSS_PUSH_ENUM(spoolss_EnumJobs,{
+ _r.in.handle = r->in.handle;
+ _r.in.firstjob = r->in.firstjob;
+ _r.in.numjobs = r->in.numjobs;
+ },{
+ _r.in.handle = r->in.handle;
+ _r.in.firstjob = r->in.firstjob;
+ _r.in.numjobs = r->in.numjobs;
+ });
return NT_STATUS_OK;
}
NTSTATUS ndr_pull_spoolss_EnumJobs(struct ndr_pull *ndr, int flags, struct spoolss_EnumJobs *r)
{
- uint32_t _ptr_buffer;
- uint32_t _ptr_info;
- if (!(flags & NDR_IN)) goto ndr_out;
-
- ZERO_STRUCT(r->out);
-
- NDR_ALLOC(ndr, r->in.handle);
- NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
- NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.firstjob));
- NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.numjobs));
- NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.level));
- NDR_CHECK(ndr_pull_unique_ptr(ndr, &_ptr_buffer));
- if (_ptr_buffer) {
- NDR_ALLOC(ndr, r->in.buffer);
- } else {
- r->in.buffer = NULL;
- }
- if (r->in.buffer) {
- NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.buffer));
- }
- NDR_ALLOC(ndr, r->in.buf_size);
- NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.buf_size));
- NDR_ALLOC(ndr, r->out.buf_size);
- *r->out.buf_size = *r->in.buf_size;
- ndr_out:
- if (!(flags & NDR_OUT)) goto done;
-
- NDR_SPOOLSS_PULL_ENUM_OUT(spoolss_EnumJobs,spoolss_JobInfo);
-
- done:
-
+ NDR_SPOOLSS_PULL_ENUM(spoolss_EnumJobs,{
+ r->in.handle = _r.in.handle;
+ r->in.firstjob = _r.in.firstjob;
+ r->in.numjobs = _r.in.numjobs;
+ },{
+ _r.in.handle = r->in.handle;
+ _r.in.firstjob = r->in.firstjob;
+ _r.in.numjobs = r->in.numjobs;
+ });
return NT_STATUS_OK;
}
-void ndr_print_spoolss_EnumJobs(struct ndr_print *ndr, const char *name, int flags, struct spoolss_EnumJobs *r)
-{
- ndr_print_struct(ndr, name, "spoolss_EnumJobs");
- ndr->depth++;
- if (flags & NDR_SET_VALUES) {
- ndr->flags |= LIBNDR_PRINT_SET_VALUES;
- }
- if (flags & NDR_IN) {
- ndr_print_struct(ndr, "in", "spoolss_EnumJobs");
- ndr->depth++;
- ndr_print_ptr(ndr, "handle", r->in.handle);
- ndr->depth++;
- ndr_print_policy_handle(ndr, "handle", r->in.handle);
- ndr->depth--;
- ndr_print_uint32(ndr, "firstjob", r->in.firstjob);
- ndr_print_uint32(ndr, "numjobs", r->in.numjobs);
- ndr_print_uint32(ndr, "level", r->in.level);
- ndr_print_ptr(ndr, "buffer", r->in.buffer);
- ndr->depth++;
- if (r->in.buffer) {
- ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
- }
- ndr->depth--;
- ndr_print_ptr(ndr, "buf_size", r->in.buf_size);
- ndr->depth++;
- ndr_print_uint32(ndr, "buf_size", *r->in.buf_size);
- ndr->depth--;
- ndr->depth--;
- }
- if (flags & NDR_OUT) {
- NDR_SPOOLSS_PRINT_ENUM_OUT(spoolss_EnumJobs,spoolss_JobInfo);
- }
- ndr->depth--;
-}
-
/*
spoolss_EnumPrinterDrivers
*/
NTSTATUS ndr_push_spoolss_EnumPrinterDrivers(struct ndr_push *ndr, int flags, struct spoolss_EnumPrinterDrivers *r)
{
- if (!(flags & NDR_IN)) goto ndr_out;
-
- { uint32_t _flags_save_string = ndr->flags;
- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_SIZE4|LIBNDR_FLAG_STR_LEN4);
- NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
- ndr->flags = _flags_save_string;
- }
- { uint32_t _flags_save_string = ndr->flags;
- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_SIZE4|LIBNDR_FLAG_STR_LEN4);
- if (r->in.server) {
- NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.server));
- }
- ndr->flags = _flags_save_string;
- }
- { uint32_t _flags_save_string = ndr->flags;
- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_SIZE4|LIBNDR_FLAG_STR_LEN4);
- NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
- ndr->flags = _flags_save_string;
- }
- { uint32_t _flags_save_string = ndr->flags;
- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_SIZE4|LIBNDR_FLAG_STR_LEN4);
- if (r->in.environment) {
- NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.environment));
- }
- ndr->flags = _flags_save_string;
- }
- NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.level));
- NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
- if (r->in.buffer) {
- NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS|NDR_BUFFERS, *r->in.buffer));
- }
- NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS|NDR_BUFFERS, *r->in.buf_size));
- ndr_out:
- if (!(flags & NDR_OUT)) goto done;
-
- NDR_SPOOLSS_PUSH_ENUM_OUT(spoolss_EnumPrinterDrivers,spoolss_DriverInfo);
-
- done:
+ NDR_SPOOLSS_PUSH_ENUM(spoolss_EnumPrinterDrivers,{
+ _r.in.server = r->in.server;
+ _r.in.environment = r->in.environment;
+ },{
+ _r.in.server = r->in.server;
+ _r.in.environment = r->in.environment;
+ });
return NT_STATUS_OK;
}
NTSTATUS ndr_pull_spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterDrivers *r)
{
- uint32_t _ptr_server;
- uint32_t _ptr_environment;
- uint32_t _ptr_buffer;
- uint32_t _ptr_info;
- if (!(flags & NDR_IN)) goto ndr_out;
-
- ZERO_STRUCT(r->out);
-
- { uint32_t _flags_save_string = ndr->flags;
- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_SIZE4|LIBNDR_FLAG_STR_LEN4);
- NDR_CHECK(ndr_pull_unique_ptr(ndr, &_ptr_server));
- if (_ptr_server) {
- NDR_ALLOC(ndr, r->in.server);
- } else {
- r->in.server = NULL;
- }
- ndr->flags = _flags_save_string;
- }
- { uint32_t _flags_save_string = ndr->flags;
- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_SIZE4|LIBNDR_FLAG_STR_LEN4);
- if (r->in.server) {
- NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.server));
- }
- ndr->flags = _flags_save_string;
- }
- { uint32_t _flags_save_string = ndr->flags;
- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_SIZE4|LIBNDR_FLAG_STR_LEN4);
- NDR_CHECK(ndr_pull_unique_ptr(ndr, &_ptr_environment));
- if (_ptr_environment) {
- NDR_ALLOC(ndr, r->in.environment);
- } else {
- r->in.environment = NULL;
- }
- ndr->flags = _flags_save_string;
- }
- { uint32_t _flags_save_string = ndr->flags;
- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_SIZE4|LIBNDR_FLAG_STR_LEN4);
- if (r->in.environment) {
- NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.environment));
- }
- ndr->flags = _flags_save_string;
- }
- NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.level));
- NDR_CHECK(ndr_pull_unique_ptr(ndr, &_ptr_buffer));
- if (_ptr_buffer) {
- NDR_ALLOC(ndr, r->in.buffer);
- } else {
- r->in.buffer = NULL;
- }
- if (r->in.buffer) {
- NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.buffer));
- }
- NDR_ALLOC(ndr, r->in.buf_size);
- NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.buf_size));
- NDR_ALLOC(ndr, r->out.buf_size);
- *r->out.buf_size = *r->in.buf_size;
- ndr_out:
- if (!(flags & NDR_OUT)) goto done;
-
- NDR_SPOOLSS_PULL_ENUM_OUT(spoolss_EnumPrinterDrivers,spoolss_DriverInfo);
-
- done:
-
+ NDR_SPOOLSS_PULL_ENUM(spoolss_EnumPrinterDrivers,{
+ r->in.server = _r.in.server;
+ r->in.environment = _r.in.environment;
+ },{
+ _r.in.server = r->in.server;
+ _r.in.environment = r->in.environment;
+ });
return NT_STATUS_OK;
}
-void ndr_print_spoolss_EnumPrinterDrivers(struct ndr_print *ndr, const char *name, int flags, struct spoolss_EnumPrinterDrivers *r)
-{
- ndr_print_struct(ndr, name, "spoolss_EnumPrinterDrivers");
- ndr->depth++;
- if (flags & NDR_SET_VALUES) {
- ndr->flags |= LIBNDR_PRINT_SET_VALUES;
- }
- if (flags & NDR_IN) {
- ndr_print_struct(ndr, "in", "spoolss_EnumPrinterDrivers");
- ndr->depth++;
- ndr_print_ptr(ndr, "server", r->in.server);
- ndr->depth++;
- if (r->in.server) {
- ndr_print_string(ndr, "server", r->in.server);
- }
- ndr->depth--;
- ndr_print_ptr(ndr, "environment", r->in.environment);
- ndr->depth++;
- if (r->in.environment) {
- ndr_print_string(ndr, "environment", r->in.environment);
- }
- ndr->depth--;
- ndr_print_uint32(ndr, "level", r->in.level);
- ndr_print_ptr(ndr, "buffer", r->in.buffer);
- ndr->depth++;
- if (r->in.buffer) {
- ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
- }
- ndr->depth--;
- ndr_print_ptr(ndr, "buf_size", r->in.buf_size);
- ndr->depth++;
- ndr_print_uint32(ndr, "buf_size", *r->in.buf_size);
- ndr->depth--;
- ndr->depth--;
- }
- if (flags & NDR_OUT) {
- NDR_SPOOLSS_PRINT_ENUM_OUT(spoolss_EnumPrinterDrivers,spoolss_DriverInfo);
- }
- ndr->depth--;
-}
-
/*
spoolss_EnumForms
*/
NTSTATUS ndr_push_spoolss_EnumForms(struct ndr_push *ndr, int flags, struct spoolss_EnumForms *r)
{
- if (!(flags & NDR_IN)) goto ndr_out;
-
- NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
- NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.level));
- NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
- if (r->in.buffer) {
- NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS|NDR_BUFFERS, *r->in.buffer));
- }
- NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS|NDR_BUFFERS, *r->in.buf_size));
- ndr_out:
- if (!(flags & NDR_OUT)) goto done;
-
- NDR_SPOOLSS_PUSH_ENUM_OUT(spoolss_EnumForms,spoolss_FormInfo);
-
- done:
+ NDR_SPOOLSS_PUSH_ENUM(spoolss_EnumForms,{
+ _r.in.handle = r->in.handle;
+ },{
+ _r.in.handle = r->in.handle;
+ });
return NT_STATUS_OK;
}
NTSTATUS ndr_pull_spoolss_EnumForms(struct ndr_pull *ndr, int flags, struct spoolss_EnumForms *r)
{
- uint32_t _ptr_buffer;
- uint32_t _ptr_info;
- if (!(flags & NDR_IN)) goto ndr_out;
-
- ZERO_STRUCT(r->out);
-
- NDR_ALLOC(ndr, r->in.handle);
- NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
- NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.level));
- NDR_CHECK(ndr_pull_unique_ptr(ndr, &_ptr_buffer));
- if (_ptr_buffer) {
- NDR_ALLOC(ndr, r->in.buffer);
- } else {
- r->in.buffer = NULL;
- }
- if (r->in.buffer) {
- NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.buffer));
- }
- NDR_ALLOC(ndr, r->in.buf_size);
- NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.buf_size));
- NDR_ALLOC(ndr, r->out.buf_size);
- *r->out.buf_size = *r->in.buf_size;
- ndr_out:
- if (!(flags & NDR_OUT)) goto done;
-
- NDR_SPOOLSS_PULL_ENUM_OUT(spoolss_EnumForms,spoolss_FormInfo);
-
- done:
-
+ NDR_SPOOLSS_PULL_ENUM(spoolss_EnumForms,{
+ r->in.handle = _r.in.handle;
+ },{
+ _r.in.handle = r->in.handle;
+ });
return NT_STATUS_OK;
}
-void ndr_print_spoolss_EnumForms(struct ndr_print *ndr, const char *name, int flags, struct spoolss_EnumForms *r)
-{
- ndr_print_struct(ndr, name, "spoolss_EnumForms");
- ndr->depth++;
- if (flags & NDR_SET_VALUES) {
- ndr->flags |= LIBNDR_PRINT_SET_VALUES;
- }
- if (flags & NDR_IN) {
- ndr_print_struct(ndr, "in", "spoolss_EnumForms");
- ndr->depth++;
- ndr_print_ptr(ndr, "handle", r->in.handle);
- ndr->depth++;
- ndr_print_policy_handle(ndr, "handle", r->in.handle);
- ndr->depth--;
- ndr_print_uint32(ndr, "level", r->in.level);
- ndr_print_ptr(ndr, "buffer", r->in.buffer);
- ndr->depth++;
- if (r->in.buffer) {
- ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
- }
- ndr->depth--;
- ndr_print_ptr(ndr, "buf_size", r->in.buf_size);
- ndr->depth++;
- ndr_print_uint32(ndr, "buf_size", *r->in.buf_size);
- ndr->depth--;
- ndr->depth--;
- }
- if (flags & NDR_OUT) {
- NDR_SPOOLSS_PRINT_ENUM_OUT(spoolss_EnumForms,spoolss_FormInfo);
- }
- ndr->depth--;
-}
-
/*
spoolss_EnumPorts
*/
NTSTATUS ndr_push_spoolss_EnumPorts(struct ndr_push *ndr, int flags, struct spoolss_EnumPorts *r)
{
- if (!(flags & NDR_IN)) goto ndr_out;
-
- { uint32_t _flags_save_string = ndr->flags;
- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_SIZE4|LIBNDR_FLAG_STR_LEN4);
- NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
- ndr->flags = _flags_save_string;
- }
- { uint32_t _flags_save_string = ndr->flags;
- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_SIZE4|LIBNDR_FLAG_STR_LEN4);
- if (r->in.servername) {
- NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.servername));
- }
- ndr->flags = _flags_save_string;
- }
- NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.level));
- NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
- if (r->in.buffer) {
- NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS|NDR_BUFFERS, *r->in.buffer));
- }
- NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS|NDR_BUFFERS, *r->in.buf_size));
- ndr_out:
- if (!(flags & NDR_OUT)) goto done;
-
- NDR_SPOOLSS_PUSH_ENUM_OUT(spoolss_EnumPorts,spoolss_PortInfo);
-
- done:
+ NDR_SPOOLSS_PUSH_ENUM(spoolss_EnumPorts,{
+ _r.in.servername= r->in.servername;
+ },{
+ _r.in.servername= r->in.servername;
+ });
return NT_STATUS_OK;
}
NTSTATUS ndr_pull_spoolss_EnumPorts(struct ndr_pull *ndr, int flags, struct spoolss_EnumPorts *r)
{
- uint32_t _ptr_servername;
- uint32_t _ptr_buffer;
- uint32_t _ptr_info;
- if (!(flags & NDR_IN)) goto ndr_out;
-
- ZERO_STRUCT(r->out);
-
- { uint32_t _flags_save_string = ndr->flags;
- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_SIZE4|LIBNDR_FLAG_STR_LEN4);
- NDR_CHECK(ndr_pull_unique_ptr(ndr, &_ptr_servername));
- if (_ptr_servername) {
- NDR_ALLOC(ndr, r->in.servername);
- } else {
- r->in.servername = NULL;
- }
- ndr->flags = _flags_save_string;
- }
- { uint32_t _flags_save_string = ndr->flags;
- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_SIZE4|LIBNDR_FLAG_STR_LEN4);
- if (r->in.servername) {
- NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.servername));
- }
- ndr->flags = _flags_save_string;
- }
- NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.level));
- NDR_CHECK(ndr_pull_unique_ptr(ndr, &_ptr_buffer));
- if (_ptr_buffer) {
- NDR_ALLOC(ndr, r->in.buffer);
- } else {
- r->in.buffer = NULL;
- }
- if (r->in.buffer) {
- NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.buffer));
- }
- NDR_ALLOC(ndr, r->in.buf_size);
- NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.buf_size));
- NDR_ALLOC(ndr, r->out.buf_size);
- *r->out.buf_size = *r->in.buf_size;
- ndr_out:
- if (!(flags & NDR_OUT)) goto done;
-
- NDR_SPOOLSS_PULL_ENUM_OUT(spoolss_EnumPorts,spoolss_PortInfo);
-
- done:
-
+ NDR_SPOOLSS_PULL_ENUM(spoolss_EnumPorts,{
+ r->in.servername= _r.in.servername;
+ },{
+ _r.in.servername= r->in.servername;
+ });
return NT_STATUS_OK;
}
-void ndr_print_spoolss_EnumPorts(struct ndr_print *ndr, const char *name, int flags, struct spoolss_EnumPorts *r)
-{
- ndr_print_struct(ndr, name, "spoolss_EnumPorts");
- ndr->depth++;
- if (flags & NDR_SET_VALUES) {
- ndr->flags |= LIBNDR_PRINT_SET_VALUES;
- }
- if (flags & NDR_IN) {
- ndr_print_struct(ndr, "in", "spoolss_EnumPorts");
- ndr->depth++;
- ndr_print_ptr(ndr, "servername", r->in.servername);
- ndr->depth++;
- if (r->in.servername) {
- ndr_print_string(ndr, "servername", r->in.servername);
- }
- ndr->depth--;
- ndr_print_uint32(ndr, "level", r->in.level);
- ndr_print_ptr(ndr, "buffer", r->in.buffer);
- ndr->depth++;
- if (r->in.buffer) {
- ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
- }
- ndr->depth--;
- ndr_print_ptr(ndr, "buf_size", r->in.buf_size);
- ndr->depth++;
- ndr_print_uint32(ndr, "buf_size", *r->in.buf_size);
- ndr->depth--;
- ndr->depth--;
- }
- if (flags & NDR_OUT) {
- NDR_SPOOLSS_PRINT_ENUM_OUT(spoolss_EnumPorts,spoolss_PortInfo);
- }
- ndr->depth--;
-}
-
/*
spoolss_EnumMonitors
*/
NTSTATUS ndr_push_spoolss_EnumMonitors(struct ndr_push *ndr, int flags, struct spoolss_EnumMonitors *r)
{
- if (!(flags & NDR_IN)) goto ndr_out;
-
- { uint32_t _flags_save_string = ndr->flags;
- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_SIZE4|LIBNDR_FLAG_STR_LEN4);
- NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
- ndr->flags = _flags_save_string;
- }
- { uint32_t _flags_save_string = ndr->flags;
- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_SIZE4|LIBNDR_FLAG_STR_LEN4);
- if (r->in.servername) {
- NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.servername));
- }
- ndr->flags = _flags_save_string;
- }
- NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.level));
- NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
- if (r->in.buffer) {
- NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS|NDR_BUFFERS, *r->in.buffer));
- }
- NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS|NDR_BUFFERS, *r->in.buf_size));
- ndr_out:
- if (!(flags & NDR_OUT)) goto done;
-
- NDR_SPOOLSS_PUSH_ENUM_OUT(spoolss_EnumMonitors,spoolss_MonitorInfo);
-
- done:
+ NDR_SPOOLSS_PUSH_ENUM(spoolss_EnumMonitors,{
+ _r.in.servername= r->in.servername;
+ },{
+ _r.in.servername= r->in.servername;
+ });
return NT_STATUS_OK;
}
NTSTATUS ndr_pull_spoolss_EnumMonitors(struct ndr_pull *ndr, int flags, struct spoolss_EnumMonitors *r)
{
- uint32_t _ptr_servername;
- uint32_t _ptr_buffer;
- uint32_t _ptr_info;
- if (!(flags & NDR_IN)) goto ndr_out;
-
- ZERO_STRUCT(r->out);
-
- { uint32_t _flags_save_string = ndr->flags;
- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_SIZE4|LIBNDR_FLAG_STR_LEN4);
- NDR_CHECK(ndr_pull_unique_ptr(ndr, &_ptr_servername));
- if (_ptr_servername) {
- NDR_ALLOC(ndr, r->in.servername);
- } else {
- r->in.servername = NULL;
- }
- ndr->flags = _flags_save_string;
- }
- { uint32_t _flags_save_string = ndr->flags;
- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_SIZE4|LIBNDR_FLAG_STR_LEN4);
- if (r->in.servername) {
- NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.servername));
- }
- ndr->flags = _flags_save_string;
- }
- NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.level));
- NDR_CHECK(ndr_pull_unique_ptr(ndr, &_ptr_buffer));
- if (_ptr_buffer) {
- NDR_ALLOC(ndr, r->in.buffer);
- } else {
- r->in.buffer = NULL;
- }
- if (r->in.buffer) {
- NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.buffer));
- }
- NDR_ALLOC(ndr, r->in.buf_size);
- NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.buf_size));
- NDR_ALLOC(ndr, r->out.buf_size);
- *r->out.buf_size = *r->in.buf_size;
- ndr_out:
- if (!(flags & NDR_OUT)) goto done;
-
- NDR_SPOOLSS_PULL_ENUM_OUT(spoolss_EnumMonitors,spoolss_MonitorInfo);
-
- done:
-
+ NDR_SPOOLSS_PULL_ENUM(spoolss_EnumMonitors,{
+ r->in.servername= _r.in.servername;
+ },{
+ _r.in.servername= r->in.servername;
+ });
return NT_STATUS_OK;
}
-void ndr_print_spoolss_EnumMonitors(struct ndr_print *ndr, const char *name, int flags, struct spoolss_EnumMonitors *r)
-{
- ndr_print_struct(ndr, name, "spoolss_EnumMonitors");
- ndr->depth++;
- if (flags & NDR_SET_VALUES) {
- ndr->flags |= LIBNDR_PRINT_SET_VALUES;
- }
- if (flags & NDR_IN) {
- ndr_print_struct(ndr, "in", "spoolss_EnumMonitors");
- ndr->depth++;
- ndr_print_ptr(ndr, "servername", r->in.servername);
- ndr->depth++;
- if (r->in.servername) {
- ndr_print_string(ndr, "servername", r->in.servername);
- }
- ndr->depth--;
- ndr_print_uint32(ndr, "level", r->in.level);
- ndr_print_ptr(ndr, "buffer", r->in.buffer);
- ndr->depth++;
- if (r->in.buffer) {
- ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
- }
- ndr->depth--;
- ndr_print_ptr(ndr, "buf_size", r->in.buf_size);
- ndr->depth++;
- ndr_print_uint32(ndr, "buf_size", *r->in.buf_size);
- ndr->depth--;
- ndr->depth--;
- }
- if (flags & NDR_OUT) {
- NDR_SPOOLSS_PRINT_ENUM_OUT(spoolss_EnumMonitors,spoolss_MonitorInfo);
- }
- ndr->depth--;
-}
-
/*
spoolss_EnumPrintProcessors
*/
NTSTATUS ndr_push_spoolss_EnumPrintProcessors(struct ndr_push *ndr, int flags, struct spoolss_EnumPrintProcessors *r)
{
- if (!(flags & NDR_IN)) goto ndr_out;
-
- { uint32_t _flags_save_string = ndr->flags;
- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_SIZE4|LIBNDR_FLAG_STR_LEN4);
- NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
- ndr->flags = _flags_save_string;
- }
- { uint32_t _flags_save_string = ndr->flags;
- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_SIZE4|LIBNDR_FLAG_STR_LEN4);
- if (r->in.servername) {
- NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.servername));
- }
- ndr->flags = _flags_save_string;
- }
- { uint32_t _flags_save_string = ndr->flags;
- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_SIZE4|LIBNDR_FLAG_STR_LEN4);
- NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
- ndr->flags = _flags_save_string;
- }
- { uint32_t _flags_save_string = ndr->flags;
- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_SIZE4|LIBNDR_FLAG_STR_LEN4);
- if (r->in.environment) {
- NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.environment));
- }
- ndr->flags = _flags_save_string;
- }
- NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.level));
- NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
- if (r->in.buffer) {
- NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS|NDR_BUFFERS, *r->in.buffer));
- }
- NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS|NDR_BUFFERS, *r->in.buf_size));
- ndr_out:
- if (!(flags & NDR_OUT)) goto done;
-
- NDR_SPOOLSS_PUSH_ENUM_OUT(spoolss_EnumPrintProcessors,spoolss_PrintProcessorInfo);
-
- done:
+ NDR_SPOOLSS_PUSH_ENUM(spoolss_EnumPrintProcessors,{
+ _r.in.servername = r->in.servername;
+ _r.in.environment = r->in.environment;
+ },{
+ _r.in.servername = r->in.servername;
+ _r.in.environment = r->in.environment;
+ });
return NT_STATUS_OK;
}
NTSTATUS ndr_pull_spoolss_EnumPrintProcessors(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrintProcessors *r)
{
- uint32_t _ptr_servername;
- uint32_t _ptr_environment;
- uint32_t _ptr_buffer;
- uint32_t _ptr_info;
- if (!(flags & NDR_IN)) goto ndr_out;
-
- ZERO_STRUCT(r->out);
-
- { uint32_t _flags_save_string = ndr->flags;
- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_SIZE4|LIBNDR_FLAG_STR_LEN4);
- NDR_CHECK(ndr_pull_unique_ptr(ndr, &_ptr_servername));
- if (_ptr_servername) {
- NDR_ALLOC(ndr, r->in.servername);
- } else {
- r->in.servername = NULL;
- }
- ndr->flags = _flags_save_string;
- }
- { uint32_t _flags_save_string = ndr->flags;
- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_SIZE4|LIBNDR_FLAG_STR_LEN4);
- if (r->in.servername) {
- NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.servername));
- }
- ndr->flags = _flags_save_string;
- }
- { uint32_t _flags_save_string = ndr->flags;
- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_SIZE4|LIBNDR_FLAG_STR_LEN4);
- NDR_CHECK(ndr_pull_unique_ptr(ndr, &_ptr_environment));
- if (_ptr_environment) {
- NDR_ALLOC(ndr, r->in.environment);
- } else {
- r->in.environment = NULL;
- }
- ndr->flags = _flags_save_string;
- }
- { uint32_t _flags_save_string = ndr->flags;
- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_SIZE4|LIBNDR_FLAG_STR_LEN4);
- if (r->in.environment) {
- NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.environment));
- }
- ndr->flags = _flags_save_string;
- }
- NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.level));
- NDR_CHECK(ndr_pull_unique_ptr(ndr, &_ptr_buffer));
- if (_ptr_buffer) {
- NDR_ALLOC(ndr, r->in.buffer);
- } else {
- r->in.buffer = NULL;
- }
- if (r->in.buffer) {
- NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.buffer));
- }
- NDR_ALLOC(ndr, r->in.buf_size);
- NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.buf_size));
- NDR_ALLOC(ndr, r->out.buf_size);
- *r->out.buf_size = *r->in.buf_size;
- ndr_out:
- if (!(flags & NDR_OUT)) goto done;
-
- NDR_SPOOLSS_PULL_ENUM_OUT(spoolss_EnumPrintProcessors,spoolss_PrintProcessorInfo);
-
- done:
-
+ NDR_SPOOLSS_PULL_ENUM(spoolss_EnumPrintProcessors,{
+ r->in.servername = r->in.servername;
+ r->in.environment = r->in.environment;
+ },{
+ _r.in.servername = r->in.servername;
+ _r.in.environment = r->in.environment;
+ });
return NT_STATUS_OK;
}
-
-void ndr_print_spoolss_EnumPrintProcessors(struct ndr_print *ndr, const char *name, int flags, struct spoolss_EnumPrintProcessors *r)
-{
- ndr_print_struct(ndr, name, "spoolss_EnumPrintProcessors");
- ndr->depth++;
- if (flags & NDR_SET_VALUES) {
- ndr->flags |= LIBNDR_PRINT_SET_VALUES;
- }
- if (flags & NDR_IN) {
- ndr_print_struct(ndr, "in", "spoolss_EnumPrintProcessors");
- ndr->depth++;
- ndr_print_ptr(ndr, "servername", r->in.servername);
- ndr->depth++;
- if (r->in.servername) {
- ndr_print_string(ndr, "servername", r->in.servername);
- }
- ndr->depth--;
- ndr_print_ptr(ndr, "environment", r->in.environment);
- ndr->depth++;
- if (r->in.environment) {
- ndr_print_string(ndr, "environment", r->in.environment);
- }
- ndr->depth--;
- ndr_print_uint32(ndr, "level", r->in.level);
- ndr_print_ptr(ndr, "buffer", r->in.buffer);
- ndr->depth++;
- if (r->in.buffer) {
- ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
- }
- ndr->depth--;
- ndr_print_ptr(ndr, "buf_size", r->in.buf_size);
- ndr->depth++;
- ndr_print_uint32(ndr, "buf_size", *r->in.buf_size);
- ndr->depth--;
- ndr->depth--;
- }
- if (flags & NDR_OUT) {
- NDR_SPOOLSS_PRINT_ENUM_OUT(spoolss_EnumPrintProcessors,spoolss_PrintProcessorInfo);
- }
- ndr->depth--;
-}