s3: re-run make samba3-idl.
[Samba/bb.git] / librpc / gen_ndr / ndr_spoolss.c
blob9cb83b50ea729d62bd67f3a665144ba23c6a2c51
1 /* parser auto-generated by pidl */
3 #include "includes.h"
4 #include "../librpc/gen_ndr/ndr_spoolss.h"
6 #include "librpc/gen_ndr/ndr_misc.h"
7 #include "librpc/gen_ndr/ndr_security.h"
8 #include "librpc/gen_ndr/ndr_winreg.h"
9 static enum ndr_err_code ndr_push_spoolss_Time(struct ndr_push *ndr, int ndr_flags, const struct spoolss_Time *r)
11 if (ndr_flags & NDR_SCALARS) {
12 NDR_CHECK(ndr_push_align(ndr, 2));
13 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->year));
14 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->month));
15 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->day_of_week));
16 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->day));
17 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->hour));
18 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->minute));
19 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->second));
20 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->millisecond));
21 NDR_CHECK(ndr_push_trailer_align(ndr, 2));
23 if (ndr_flags & NDR_BUFFERS) {
25 return NDR_ERR_SUCCESS;
28 static enum ndr_err_code ndr_pull_spoolss_Time(struct ndr_pull *ndr, int ndr_flags, struct spoolss_Time *r)
30 if (ndr_flags & NDR_SCALARS) {
31 NDR_CHECK(ndr_pull_align(ndr, 2));
32 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->year));
33 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->month));
34 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->day_of_week));
35 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->day));
36 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->hour));
37 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->minute));
38 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->second));
39 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->millisecond));
40 NDR_CHECK(ndr_pull_trailer_align(ndr, 2));
42 if (ndr_flags & NDR_BUFFERS) {
44 return NDR_ERR_SUCCESS;
47 _PUBLIC_ void ndr_print_spoolss_Time(struct ndr_print *ndr, const char *name, const struct spoolss_Time *r)
49 ndr_print_struct(ndr, name, "spoolss_Time");
50 ndr->depth++;
51 ndr_print_uint16(ndr, "year", r->year);
52 ndr_print_uint16(ndr, "month", r->month);
53 ndr_print_uint16(ndr, "day_of_week", r->day_of_week);
54 ndr_print_uint16(ndr, "day", r->day);
55 ndr_print_uint16(ndr, "hour", r->hour);
56 ndr_print_uint16(ndr, "minute", r->minute);
57 ndr_print_uint16(ndr, "second", r->second);
58 ndr_print_uint16(ndr, "millisecond", r->millisecond);
59 ndr->depth--;
62 static size_t ndr_size_spoolss_Time(const struct spoolss_Time *r, struct smb_iconv_convenience *ic, int flags)
64 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_Time, ic);
67 static enum ndr_err_code ndr_push_spoolss_TimeCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_TimeCtr *r)
69 if (ndr_flags & NDR_SCALARS) {
70 NDR_CHECK(ndr_push_align(ndr, 5));
71 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_Time(r->time, ndr->iconv_convenience, ndr->flags)));
72 NDR_CHECK(ndr_push_unique_ptr(ndr, r->time));
73 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
75 if (ndr_flags & NDR_BUFFERS) {
76 if (r->time) {
77 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, r->time));
80 return NDR_ERR_SUCCESS;
83 static enum ndr_err_code ndr_pull_spoolss_TimeCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_TimeCtr *r)
85 uint32_t _ptr_time;
86 TALLOC_CTX *_mem_save_time_0;
87 if (ndr_flags & NDR_SCALARS) {
88 NDR_CHECK(ndr_pull_align(ndr, 5));
89 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
90 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_time));
91 if (_ptr_time) {
92 NDR_PULL_ALLOC(ndr, r->time);
93 } else {
94 r->time = NULL;
96 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
98 if (ndr_flags & NDR_BUFFERS) {
99 if (r->time) {
100 _mem_save_time_0 = NDR_PULL_GET_MEM_CTX(ndr);
101 NDR_PULL_SET_MEM_CTX(ndr, r->time, 0);
102 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, r->time));
103 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_time_0, 0);
106 return NDR_ERR_SUCCESS;
109 _PUBLIC_ void ndr_print_spoolss_TimeCtr(struct ndr_print *ndr, const char *name, const struct spoolss_TimeCtr *r)
111 ndr_print_struct(ndr, name, "spoolss_TimeCtr");
112 ndr->depth++;
113 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_spoolss_Time(r->time, ndr->iconv_convenience, ndr->flags):r->size);
114 ndr_print_ptr(ndr, "time", r->time);
115 ndr->depth++;
116 if (r->time) {
117 ndr_print_spoolss_Time(ndr, "time", r->time);
119 ndr->depth--;
120 ndr->depth--;
123 static enum ndr_err_code ndr_push_spoolss_ProcessorArchitecture(struct ndr_push *ndr, int ndr_flags, enum spoolss_ProcessorArchitecture r)
125 NDR_CHECK(ndr_push_enum_uint1632(ndr, NDR_SCALARS, r));
126 return NDR_ERR_SUCCESS;
129 static enum ndr_err_code ndr_pull_spoolss_ProcessorArchitecture(struct ndr_pull *ndr, int ndr_flags, enum spoolss_ProcessorArchitecture *r)
131 uint16_t v;
132 NDR_CHECK(ndr_pull_enum_uint1632(ndr, NDR_SCALARS, &v));
133 *r = v;
134 return NDR_ERR_SUCCESS;
137 _PUBLIC_ void ndr_print_spoolss_ProcessorArchitecture(struct ndr_print *ndr, const char *name, enum spoolss_ProcessorArchitecture r)
139 const char *val = NULL;
141 switch (r) {
142 case PROCESSOR_ARCHITECTURE_INTEL: val = "PROCESSOR_ARCHITECTURE_INTEL"; break;
143 case PROCESSOR_ARCHITECTURE_IA64: val = "PROCESSOR_ARCHITECTURE_IA64"; break;
144 case PROCESSOR_ARCHITECTURE_AMD64: val = "PROCESSOR_ARCHITECTURE_AMD64"; break;
146 ndr_print_enum(ndr, name, "ENUM", val, r);
149 static enum ndr_err_code ndr_push_spoolss_ProcessorType(struct ndr_push *ndr, int ndr_flags, enum spoolss_ProcessorType r)
151 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
152 return NDR_ERR_SUCCESS;
155 static enum ndr_err_code ndr_pull_spoolss_ProcessorType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_ProcessorType *r)
157 uint32_t v;
158 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
159 *r = v;
160 return NDR_ERR_SUCCESS;
163 _PUBLIC_ void ndr_print_spoolss_ProcessorType(struct ndr_print *ndr, const char *name, enum spoolss_ProcessorType r)
165 const char *val = NULL;
167 switch (r) {
168 case PROCESSOR_INTEL_386: val = "PROCESSOR_INTEL_386"; break;
169 case PROCESSOR_INTEL_486: val = "PROCESSOR_INTEL_486"; break;
170 case PROCESSOR_INTEL_PENTIUM: val = "PROCESSOR_INTEL_PENTIUM"; break;
171 case PROCESSOR_INTEL_IA64: val = "PROCESSOR_INTEL_IA64"; break;
172 case PROCESSOR_AMD_X8664: val = "PROCESSOR_AMD_X8664"; break;
174 ndr_print_enum(ndr, name, "ENUM", val, r);
177 static enum ndr_err_code ndr_push_spoolss_MajorVersion(struct ndr_push *ndr, int ndr_flags, enum spoolss_MajorVersion r)
179 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
180 return NDR_ERR_SUCCESS;
183 static enum ndr_err_code ndr_pull_spoolss_MajorVersion(struct ndr_pull *ndr, int ndr_flags, enum spoolss_MajorVersion *r)
185 uint32_t v;
186 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
187 *r = v;
188 return NDR_ERR_SUCCESS;
191 _PUBLIC_ void ndr_print_spoolss_MajorVersion(struct ndr_print *ndr, const char *name, enum spoolss_MajorVersion r)
193 const char *val = NULL;
195 switch (r) {
196 case SPOOLSS_MAJOR_VERSION_NT4_95_98_ME: val = "SPOOLSS_MAJOR_VERSION_NT4_95_98_ME"; break;
197 case SPOOLSS_MAJOR_VERSION_2000_2003_XP: val = "SPOOLSS_MAJOR_VERSION_2000_2003_XP"; break;
198 case SPOOLSS_MAJOR_VERSION_2008_VISTA: val = "SPOOLSS_MAJOR_VERSION_2008_VISTA"; break;
200 ndr_print_enum(ndr, name, "ENUM", val, r);
203 static enum ndr_err_code ndr_push_spoolss_MinorVersion(struct ndr_push *ndr, int ndr_flags, enum spoolss_MinorVersion r)
205 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
206 return NDR_ERR_SUCCESS;
209 static enum ndr_err_code ndr_pull_spoolss_MinorVersion(struct ndr_pull *ndr, int ndr_flags, enum spoolss_MinorVersion *r)
211 uint32_t v;
212 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
213 *r = v;
214 return NDR_ERR_SUCCESS;
217 _PUBLIC_ void ndr_print_spoolss_MinorVersion(struct ndr_print *ndr, const char *name, enum spoolss_MinorVersion r)
219 const char *val = NULL;
221 switch (r) {
222 case SPOOLSS_MINOR_VERSION_0: val = "SPOOLSS_MINOR_VERSION_0"; break;
223 case SPOOLSS_MINOR_VERSION_XP: val = "SPOOLSS_MINOR_VERSION_XP"; break;
224 case SPOOLSS_MINOR_VERSION_2003_XP64: val = "SPOOLSS_MINOR_VERSION_2003_XP64"; break;
225 case SPOOLSS_MINOR_VERSION_98: val = "SPOOLSS_MINOR_VERSION_98"; break;
226 case SPOOLSS_MINOR_VERSION_ME: val = "SPOOLSS_MINOR_VERSION_ME"; break;
228 ndr_print_enum(ndr, name, "ENUM", val, r);
231 static enum ndr_err_code ndr_push_spoolss_PrinterStatus(struct ndr_push *ndr, int ndr_flags, uint32_t r)
233 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
234 return NDR_ERR_SUCCESS;
237 static enum ndr_err_code ndr_pull_spoolss_PrinterStatus(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
239 uint32_t v;
240 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
241 *r = v;
242 return NDR_ERR_SUCCESS;
245 _PUBLIC_ void ndr_print_spoolss_PrinterStatus(struct ndr_print *ndr, const char *name, uint32_t r)
247 ndr_print_uint32(ndr, name, r);
248 ndr->depth++;
249 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAUSED", PRINTER_STATUS_PAUSED, r);
250 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_ERROR", PRINTER_STATUS_ERROR, r);
251 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PENDING_DELETION", PRINTER_STATUS_PENDING_DELETION, r);
252 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAPER_JAM", PRINTER_STATUS_PAPER_JAM, r);
253 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAPER_OUT", PRINTER_STATUS_PAPER_OUT, r);
254 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_MANUAL_FEED", PRINTER_STATUS_MANUAL_FEED, r);
255 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAPER_PROBLEM", PRINTER_STATUS_PAPER_PROBLEM, r);
256 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_OFFLINE", PRINTER_STATUS_OFFLINE, r);
257 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_IO_ACTIVE", PRINTER_STATUS_IO_ACTIVE, r);
258 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_BUSY", PRINTER_STATUS_BUSY, r);
259 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PRINTING", PRINTER_STATUS_PRINTING, r);
260 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_OUTPUT_BIN_FULL", PRINTER_STATUS_OUTPUT_BIN_FULL, r);
261 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_NOT_AVAILABLE", PRINTER_STATUS_NOT_AVAILABLE, r);
262 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_WAITING", PRINTER_STATUS_WAITING, r);
263 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PROCESSING", PRINTER_STATUS_PROCESSING, r);
264 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_INITIALIZING", PRINTER_STATUS_INITIALIZING, r);
265 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_WARMING_UP", PRINTER_STATUS_WARMING_UP, r);
266 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_TONER_LOW", PRINTER_STATUS_TONER_LOW, r);
267 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_NO_TONER", PRINTER_STATUS_NO_TONER, r);
268 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAGE_PUNT", PRINTER_STATUS_PAGE_PUNT, r);
269 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_USER_INTERVENTION", PRINTER_STATUS_USER_INTERVENTION, r);
270 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_OUT_OF_MEMORY", PRINTER_STATUS_OUT_OF_MEMORY, r);
271 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_DOOR_OPEN", PRINTER_STATUS_DOOR_OPEN, r);
272 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_SERVER_UNKNOWN", PRINTER_STATUS_SERVER_UNKNOWN, r);
273 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_POWER_SAVE", PRINTER_STATUS_POWER_SAVE, r);
274 ndr->depth--;
277 static enum ndr_err_code ndr_push_spoolss_JobStatus(struct ndr_push *ndr, int ndr_flags, uint32_t r)
279 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
280 return NDR_ERR_SUCCESS;
283 static enum ndr_err_code ndr_pull_spoolss_JobStatus(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
285 uint32_t v;
286 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
287 *r = v;
288 return NDR_ERR_SUCCESS;
291 _PUBLIC_ void ndr_print_spoolss_JobStatus(struct ndr_print *ndr, const char *name, uint32_t r)
293 ndr_print_uint32(ndr, name, r);
294 ndr->depth++;
295 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_PAUSED", JOB_STATUS_PAUSED, r);
296 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_ERROR", JOB_STATUS_ERROR, r);
297 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_DELETING", JOB_STATUS_DELETING, r);
298 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_SPOOLING", JOB_STATUS_SPOOLING, r);
299 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_PRINTING", JOB_STATUS_PRINTING, r);
300 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_OFFLINE", JOB_STATUS_OFFLINE, r);
301 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_PAPEROUT", JOB_STATUS_PAPEROUT, r);
302 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_PRINTED", JOB_STATUS_PRINTED, r);
303 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_DELETED", JOB_STATUS_DELETED, r);
304 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_BLOCKED_DEVQ", JOB_STATUS_BLOCKED_DEVQ, r);
305 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_USER_INTERVENTION", JOB_STATUS_USER_INTERVENTION, r);
306 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_RESTART", JOB_STATUS_RESTART, r);
307 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_COMPLETE", JOB_STATUS_COMPLETE, r);
308 ndr->depth--;
311 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo0(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo0 *r)
313 if (ndr_flags & NDR_SCALARS) {
314 NDR_CHECK(ndr_push_align(ndr, 5));
316 uint32_t _flags_save_string = ndr->flags;
317 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
318 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
319 ndr->flags = _flags_save_string;
322 uint32_t _flags_save_string = ndr->flags;
323 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
324 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->servername));
325 ndr->flags = _flags_save_string;
327 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
328 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_jobs));
329 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_bytes));
330 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->time));
331 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->global_counter));
332 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
333 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
334 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->free_build));
335 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->spooling));
336 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_spooling));
337 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->session_counter));
338 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_out_of_paper));
339 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_not_ready));
340 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->job_error));
341 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->number_of_processors));
342 NDR_CHECK(ndr_push_spoolss_ProcessorType(ndr, NDR_SCALARS, r->processor_type));
343 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->high_part_total_bytes));
344 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->change_id));
345 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->last_error));
346 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
347 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->enumerate_network_printers));
348 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->c_setprinter));
349 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor_architecture));
350 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->processor_level));
351 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ref_ic));
352 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved2));
353 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved3));
354 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
356 if (ndr_flags & NDR_BUFFERS) {
358 uint32_t _flags_save_string = ndr->flags;
359 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
360 if (r->printername) {
361 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printername));
362 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
364 ndr->flags = _flags_save_string;
367 uint32_t _flags_save_string = ndr->flags;
368 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
369 if (r->servername) {
370 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->servername));
371 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->servername));
373 ndr->flags = _flags_save_string;
376 return NDR_ERR_SUCCESS;
379 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo0(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo0 *r)
381 uint32_t _ptr_printername;
382 TALLOC_CTX *_mem_save_printername_0;
383 uint32_t _ptr_servername;
384 TALLOC_CTX *_mem_save_servername_0;
385 if (ndr_flags & NDR_SCALARS) {
386 NDR_CHECK(ndr_pull_align(ndr, 5));
388 uint32_t _flags_save_string = ndr->flags;
389 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
390 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
391 if (_ptr_printername) {
392 NDR_PULL_ALLOC(ndr, r->printername);
393 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
394 } else {
395 r->printername = NULL;
397 ndr->flags = _flags_save_string;
400 uint32_t _flags_save_string = ndr->flags;
401 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
402 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
403 if (_ptr_servername) {
404 NDR_PULL_ALLOC(ndr, r->servername);
405 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
406 } else {
407 r->servername = NULL;
409 ndr->flags = _flags_save_string;
411 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
412 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_jobs));
413 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_bytes));
414 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->time));
415 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->global_counter));
416 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
417 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
418 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->free_build));
419 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->spooling));
420 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_spooling));
421 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->session_counter));
422 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_out_of_paper));
423 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_not_ready));
424 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->job_error));
425 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->number_of_processors));
426 NDR_CHECK(ndr_pull_spoolss_ProcessorType(ndr, NDR_SCALARS, &r->processor_type));
427 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->high_part_total_bytes));
428 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->change_id));
429 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->last_error));
430 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
431 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->enumerate_network_printers));
432 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->c_setprinter));
433 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor_architecture));
434 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->processor_level));
435 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ref_ic));
436 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
437 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved3));
438 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
440 if (ndr_flags & NDR_BUFFERS) {
442 uint32_t _flags_save_string = ndr->flags;
443 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
444 if (r->printername) {
445 uint32_t _relative_save_offset;
446 _relative_save_offset = ndr->offset;
447 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
448 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
449 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
450 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
451 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
452 ndr->offset = _relative_save_offset;
454 ndr->flags = _flags_save_string;
457 uint32_t _flags_save_string = ndr->flags;
458 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
459 if (r->servername) {
460 uint32_t _relative_save_offset;
461 _relative_save_offset = ndr->offset;
462 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
463 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
464 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
465 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
466 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
467 ndr->offset = _relative_save_offset;
469 ndr->flags = _flags_save_string;
472 return NDR_ERR_SUCCESS;
475 _PUBLIC_ void ndr_print_spoolss_PrinterInfo0(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo0 *r)
477 ndr_print_struct(ndr, name, "spoolss_PrinterInfo0");
478 ndr->depth++;
479 ndr_print_ptr(ndr, "printername", r->printername);
480 ndr->depth++;
481 if (r->printername) {
482 ndr_print_string(ndr, "printername", r->printername);
484 ndr->depth--;
485 ndr_print_ptr(ndr, "servername", r->servername);
486 ndr->depth++;
487 if (r->servername) {
488 ndr_print_string(ndr, "servername", r->servername);
490 ndr->depth--;
491 ndr_print_uint32(ndr, "cjobs", r->cjobs);
492 ndr_print_uint32(ndr, "total_jobs", r->total_jobs);
493 ndr_print_uint32(ndr, "total_bytes", r->total_bytes);
494 ndr_print_spoolss_Time(ndr, "time", &r->time);
495 ndr_print_uint32(ndr, "global_counter", r->global_counter);
496 ndr_print_uint32(ndr, "total_pages", r->total_pages);
497 ndr_print_uint32(ndr, "version", r->version);
498 ndr_print_uint32(ndr, "free_build", r->free_build);
499 ndr_print_uint32(ndr, "spooling", r->spooling);
500 ndr_print_uint32(ndr, "max_spooling", r->max_spooling);
501 ndr_print_uint32(ndr, "session_counter", r->session_counter);
502 ndr_print_uint32(ndr, "num_error_out_of_paper", r->num_error_out_of_paper);
503 ndr_print_uint32(ndr, "num_error_not_ready", r->num_error_not_ready);
504 ndr_print_spoolss_JobStatus(ndr, "job_error", r->job_error);
505 ndr_print_uint32(ndr, "number_of_processors", r->number_of_processors);
506 ndr_print_spoolss_ProcessorType(ndr, "processor_type", r->processor_type);
507 ndr_print_uint32(ndr, "high_part_total_bytes", r->high_part_total_bytes);
508 ndr_print_uint32(ndr, "change_id", r->change_id);
509 ndr_print_WERROR(ndr, "last_error", r->last_error);
510 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
511 ndr_print_uint32(ndr, "enumerate_network_printers", r->enumerate_network_printers);
512 ndr_print_uint32(ndr, "c_setprinter", r->c_setprinter);
513 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor_architecture", r->processor_architecture);
514 ndr_print_uint16(ndr, "processor_level", r->processor_level);
515 ndr_print_uint32(ndr, "ref_ic", r->ref_ic);
516 ndr_print_uint32(ndr, "reserved2", r->reserved2);
517 ndr_print_uint32(ndr, "reserved3", r->reserved3);
518 ndr->depth--;
521 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo0(const struct spoolss_PrinterInfo0 *r, struct smb_iconv_convenience *ic, int flags)
523 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo0, ic);
526 static enum ndr_err_code ndr_push_spoolss_DeviceModeFields(struct ndr_push *ndr, int ndr_flags, uint32_t r)
528 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
529 return NDR_ERR_SUCCESS;
532 static enum ndr_err_code ndr_pull_spoolss_DeviceModeFields(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
534 uint32_t v;
535 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
536 *r = v;
537 return NDR_ERR_SUCCESS;
540 _PUBLIC_ void ndr_print_spoolss_DeviceModeFields(struct ndr_print *ndr, const char *name, uint32_t r)
542 ndr_print_uint32(ndr, name, r);
543 ndr->depth++;
544 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_ORIENTATION", DEVMODE_ORIENTATION, r);
545 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PAPERSIZE", DEVMODE_PAPERSIZE, r);
546 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PAPERLENGTH", DEVMODE_PAPERLENGTH, r);
547 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PAPERWIDTH", DEVMODE_PAPERWIDTH, r);
548 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_SCALE", DEVMODE_SCALE, r);
549 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_POSITION", DEVMODE_POSITION, r);
550 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_NUP", DEVMODE_NUP, r);
551 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_COPIES", DEVMODE_COPIES, r);
552 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DEFAULTSOURCE", DEVMODE_DEFAULTSOURCE, r);
553 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PRINTQUALITY", DEVMODE_PRINTQUALITY, r);
554 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_COLOR", DEVMODE_COLOR, r);
555 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DUPLEX", DEVMODE_DUPLEX, r);
556 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_YRESOLUTION", DEVMODE_YRESOLUTION, r);
557 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_TTOPTION", DEVMODE_TTOPTION, r);
558 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_COLLATE", DEVMODE_COLLATE, r);
559 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_FORMNAME", DEVMODE_FORMNAME, r);
560 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_LOGPIXELS", DEVMODE_LOGPIXELS, r);
561 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_BITSPERPEL", DEVMODE_BITSPERPEL, r);
562 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PELSWIDTH", DEVMODE_PELSWIDTH, r);
563 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PELSHEIGHT", DEVMODE_PELSHEIGHT, r);
564 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DISPLAYFLAGS", DEVMODE_DISPLAYFLAGS, r);
565 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DISPLAYFREQUENCY", DEVMODE_DISPLAYFREQUENCY, r);
566 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_ICMMETHOD", DEVMODE_ICMMETHOD, r);
567 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_ICMINTENT", DEVMODE_ICMINTENT, r);
568 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_MEDIATYPE", DEVMODE_MEDIATYPE, r);
569 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DITHERTYPE", DEVMODE_DITHERTYPE, r);
570 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PANNINGWIDTH", DEVMODE_PANNINGWIDTH, r);
571 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PANNINGHEIGHT", DEVMODE_PANNINGHEIGHT, r);
572 ndr->depth--;
575 static enum ndr_err_code ndr_push_spoolss_DeviceModeSpecVersion(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeSpecVersion r)
577 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
578 return NDR_ERR_SUCCESS;
581 static enum ndr_err_code ndr_pull_spoolss_DeviceModeSpecVersion(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeSpecVersion *r)
583 uint16_t v;
584 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
585 *r = v;
586 return NDR_ERR_SUCCESS;
589 _PUBLIC_ void ndr_print_spoolss_DeviceModeSpecVersion(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeSpecVersion r)
591 const char *val = NULL;
593 switch (r) {
594 case DMSPEC_NT3: val = "DMSPEC_NT3"; break;
595 case DMSPEC_WIN95_98_ME: val = "DMSPEC_WIN95_98_ME"; break;
596 case DMSPEC_NT4_AND_ABOVE: val = "DMSPEC_NT4_AND_ABOVE"; break;
598 ndr_print_enum(ndr, name, "ENUM", val, r);
601 static enum ndr_err_code ndr_push_spoolss_DeviceModeOrientation(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeOrientation r)
603 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
604 return NDR_ERR_SUCCESS;
607 static enum ndr_err_code ndr_pull_spoolss_DeviceModeOrientation(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeOrientation *r)
609 uint16_t v;
610 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
611 *r = v;
612 return NDR_ERR_SUCCESS;
615 _PUBLIC_ void ndr_print_spoolss_DeviceModeOrientation(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeOrientation r)
617 const char *val = NULL;
619 switch (r) {
620 case DMORIENT_PORTRAIT: val = "DMORIENT_PORTRAIT"; break;
621 case DMORIENT_LANDSCAPE: val = "DMORIENT_LANDSCAPE"; break;
623 ndr_print_enum(ndr, name, "ENUM", val, r);
626 static enum ndr_err_code ndr_push_spoolss_DeviceModePaperSize(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModePaperSize r)
628 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
629 return NDR_ERR_SUCCESS;
632 static enum ndr_err_code ndr_pull_spoolss_DeviceModePaperSize(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModePaperSize *r)
634 uint16_t v;
635 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
636 *r = v;
637 return NDR_ERR_SUCCESS;
640 _PUBLIC_ void ndr_print_spoolss_DeviceModePaperSize(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModePaperSize r)
642 const char *val = NULL;
644 switch (r) {
645 case DMPAPER_LETTER: val = "DMPAPER_LETTER"; break;
646 case DMPAPER_LETTERSMALL: val = "DMPAPER_LETTERSMALL"; break;
647 case DMPAPER_TABLOID: val = "DMPAPER_TABLOID"; break;
648 case DMPAPER_LEDGER: val = "DMPAPER_LEDGER"; break;
649 case DMPAPER_LEGAL: val = "DMPAPER_LEGAL"; break;
650 case DMPAPER_STATEMENT: val = "DMPAPER_STATEMENT"; break;
651 case DMPAPER_EXECUTIVE: val = "DMPAPER_EXECUTIVE"; break;
652 case DMPAPER_A3: val = "DMPAPER_A3"; break;
653 case DMPAPER_A4: val = "DMPAPER_A4"; break;
654 case DMPAPER_A4SMALL: val = "DMPAPER_A4SMALL"; break;
655 case DMPAPER_A5: val = "DMPAPER_A5"; break;
656 case DMPAPER_B4: val = "DMPAPER_B4"; break;
657 case DMPAPER_B5: val = "DMPAPER_B5"; break;
658 case DMPAPER_FOLIO: val = "DMPAPER_FOLIO"; break;
659 case DMPAPER_QUARTO: val = "DMPAPER_QUARTO"; break;
660 case DMPAPER_10X14: val = "DMPAPER_10X14"; break;
661 case DMPAPER_11X17: val = "DMPAPER_11X17"; break;
662 case DMPAPER_NOTE: val = "DMPAPER_NOTE"; break;
663 case DMPAPER_ENV_9: val = "DMPAPER_ENV_9"; break;
664 case DMPAPER_ENV_10: val = "DMPAPER_ENV_10"; break;
665 case DMPAPER_ENV_11: val = "DMPAPER_ENV_11"; break;
666 case DMPAPER_ENV_12: val = "DMPAPER_ENV_12"; break;
667 case DMPAPER_ENV_14: val = "DMPAPER_ENV_14"; break;
668 case DMPAPER_CSHEET: val = "DMPAPER_CSHEET"; break;
669 case DMPAPER_DSHEET: val = "DMPAPER_DSHEET"; break;
670 case DMPAPER_ESHEET: val = "DMPAPER_ESHEET"; break;
671 case DMPAPER_ENV_DL: val = "DMPAPER_ENV_DL"; break;
672 case DMPAPER_ENV_C5: val = "DMPAPER_ENV_C5"; break;
673 case DMPAPER_ENV_C3: val = "DMPAPER_ENV_C3"; break;
674 case DMPAPER_ENV_C4: val = "DMPAPER_ENV_C4"; break;
675 case DMPAPER_ENV_C6: val = "DMPAPER_ENV_C6"; break;
676 case DMPAPER_ENV_C65: val = "DMPAPER_ENV_C65"; break;
677 case DMPAPER_ENV_B4: val = "DMPAPER_ENV_B4"; break;
678 case DMPAPER_ENV_B5: val = "DMPAPER_ENV_B5"; break;
679 case DMPAPER_ENV_B6: val = "DMPAPER_ENV_B6"; break;
680 case DMPAPER_ENV_ITALY: val = "DMPAPER_ENV_ITALY"; break;
681 case DMPAPER_ENV_MONARCH: val = "DMPAPER_ENV_MONARCH"; break;
682 case DMPAPER_ENV_PERSONAL: val = "DMPAPER_ENV_PERSONAL"; break;
683 case DMPAPER_FANFOLD_US: val = "DMPAPER_FANFOLD_US"; break;
684 case DMPAPER_FANFOLD_STD_GERMAN: val = "DMPAPER_FANFOLD_STD_GERMAN"; break;
685 case DMPAPER_FANFOLD_LGL_GERMAN: val = "DMPAPER_FANFOLD_LGL_GERMAN"; break;
686 case DMPAPER_DBL_JAPANESE_POSTCARD: val = "DMPAPER_DBL_JAPANESE_POSTCARD"; break;
687 case DMPAPER_A6: val = "DMPAPER_A6"; break;
688 case DMPAPER_JENV_KAKU2: val = "DMPAPER_JENV_KAKU2"; break;
689 case DMPAPER_JENV_KAKU3: val = "DMPAPER_JENV_KAKU3"; break;
690 case DMPAPER_JENV_CHOU3: val = "DMPAPER_JENV_CHOU3"; break;
691 case DMPAPER_JENV_CHOU4: val = "DMPAPER_JENV_CHOU4"; break;
692 case DMPAPER_LETTER_ROTATED: val = "DMPAPER_LETTER_ROTATED"; break;
693 case DMPAPER_A3_ROTATED: val = "DMPAPER_A3_ROTATED"; break;
694 case DMPAPER_A4_ROTATED: val = "DMPAPER_A4_ROTATED"; break;
695 case DMPAPER_A5_ROTATED: val = "DMPAPER_A5_ROTATED"; break;
696 case DMPAPER_B4_JIS_ROTATED: val = "DMPAPER_B4_JIS_ROTATED"; break;
697 case DMPAPER_B5_JIS_ROTATED: val = "DMPAPER_B5_JIS_ROTATED"; break;
698 case DMPAPER_JAPANESE_POSTCARD_ROTATED: val = "DMPAPER_JAPANESE_POSTCARD_ROTATED"; break;
699 case DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED: val = "DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED"; break;
700 case DMPAPER_A6_ROTATED: val = "DMPAPER_A6_ROTATED"; break;
701 case DMPAPER_JENV_KAKU2_ROTATED: val = "DMPAPER_JENV_KAKU2_ROTATED"; break;
702 case DMPAPER_JENV_KAKU3_ROTATED: val = "DMPAPER_JENV_KAKU3_ROTATED"; break;
703 case DMPAPER_JENV_CHOU3_ROTATED: val = "DMPAPER_JENV_CHOU3_ROTATED"; break;
704 case DMPAPER_JENV_CHOU4_ROTATED: val = "DMPAPER_JENV_CHOU4_ROTATED"; break;
705 case DMPAPER_B6_JIS: val = "DMPAPER_B6_JIS"; break;
706 case DMPAPER_B6_JIS_ROTATED: val = "DMPAPER_B6_JIS_ROTATED"; break;
707 case DMPAPER_12X11: val = "DMPAPER_12X11"; break;
708 case DMPAPER_JENV_YOU4: val = "DMPAPER_JENV_YOU4"; break;
709 case DMPAPER_JENV_YOU4_ROTATED: val = "DMPAPER_JENV_YOU4_ROTATED"; break;
710 case DMPAPER_P16K: val = "DMPAPER_P16K"; break;
711 case DMPAPER_P32K: val = "DMPAPER_P32K"; break;
712 case DMPAPER_P32KBIG: val = "DMPAPER_P32KBIG"; break;
713 case DMPAPER_PENV_1: val = "DMPAPER_PENV_1"; break;
714 case DMPAPER_PENV_2: val = "DMPAPER_PENV_2"; break;
715 case DMPAPER_PENV_3: val = "DMPAPER_PENV_3"; break;
716 case DMPAPER_PENV_4: val = "DMPAPER_PENV_4"; break;
717 case DMPAPER_PENV_5: val = "DMPAPER_PENV_5"; break;
718 case DMPAPER_PENV_6: val = "DMPAPER_PENV_6"; break;
719 case DMPAPER_PENV_7: val = "DMPAPER_PENV_7"; break;
720 case DMPAPER_PENV_8: val = "DMPAPER_PENV_8"; break;
721 case DMPAPER_PENV_9: val = "DMPAPER_PENV_9"; break;
722 case DMPAPER_PENV_10: val = "DMPAPER_PENV_10"; break;
723 case DMPAPER_P16K_ROTATED: val = "DMPAPER_P16K_ROTATED"; break;
724 case DMPAPER_P32K_ROTATED: val = "DMPAPER_P32K_ROTATED"; break;
725 case DMPAPER_P32KBIG_ROTATED: val = "DMPAPER_P32KBIG_ROTATED"; break;
726 case DMPAPER_PENV_1_ROTATED: val = "DMPAPER_PENV_1_ROTATED"; break;
727 case DMPAPER_PENV_2_ROTATED: val = "DMPAPER_PENV_2_ROTATED"; break;
728 case DMPAPER_PENV_3_ROTATED: val = "DMPAPER_PENV_3_ROTATED"; break;
729 case DMPAPER_PENV_4_ROTATED: val = "DMPAPER_PENV_4_ROTATED"; break;
730 case DMPAPER_PENV_5_ROTATED: val = "DMPAPER_PENV_5_ROTATED"; break;
731 case DMPAPER_PENV_6_ROTATED: val = "DMPAPER_PENV_6_ROTATED"; break;
732 case DMPAPER_PENV_7_ROTATED: val = "DMPAPER_PENV_7_ROTATED"; break;
733 case DMPAPER_PENV_8_ROTATED: val = "DMPAPER_PENV_8_ROTATED"; break;
734 case DMPAPER_PENV_9_ROTATED: val = "DMPAPER_PENV_9_ROTATED"; break;
735 case DMPAPER_PENV_10_ROTATED: val = "DMPAPER_PENV_10_ROTATED"; break;
737 ndr_print_enum(ndr, name, "ENUM", val, r);
740 static enum ndr_err_code ndr_push_spoolss_DeviceModeDefaultSource(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeDefaultSource r)
742 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
743 return NDR_ERR_SUCCESS;
746 static enum ndr_err_code ndr_pull_spoolss_DeviceModeDefaultSource(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeDefaultSource *r)
748 uint16_t v;
749 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
750 *r = v;
751 return NDR_ERR_SUCCESS;
754 _PUBLIC_ void ndr_print_spoolss_DeviceModeDefaultSource(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeDefaultSource r)
756 const char *val = NULL;
758 switch (r) {
759 case DMBIN_UPPER: val = "DMBIN_UPPER"; break;
760 case DMBIN_LOWER: val = "DMBIN_LOWER"; break;
761 case DMBIN_MIDDLE: val = "DMBIN_MIDDLE"; break;
762 case DMBIN_MANUAL: val = "DMBIN_MANUAL"; break;
763 case DMBIN_ENVELOPE: val = "DMBIN_ENVELOPE"; break;
764 case DMBIN_ENVMANUAL: val = "DMBIN_ENVMANUAL"; break;
765 case DMBIN_AUTO: val = "DMBIN_AUTO"; break;
766 case DMBIN_TRACTOR: val = "DMBIN_TRACTOR"; break;
767 case DMBIN_SMALLFMT: val = "DMBIN_SMALLFMT"; break;
768 case DMBIN_LARGEFMT: val = "DMBIN_LARGEFMT"; break;
769 case DMBIN_LARGECAPACITY: val = "DMBIN_LARGECAPACITY"; break;
770 case DMBIN_CASSETTE: val = "DMBIN_CASSETTE"; break;
771 case DMBIN_FORMSOURCE: val = "DMBIN_FORMSOURCE"; break;
773 ndr_print_enum(ndr, name, "ENUM", val, r);
776 static enum ndr_err_code ndr_push_spoolss_DeviceModePrintQuality(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModePrintQuality r)
778 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
779 return NDR_ERR_SUCCESS;
782 static enum ndr_err_code ndr_pull_spoolss_DeviceModePrintQuality(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModePrintQuality *r)
784 uint16_t v;
785 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
786 *r = v;
787 return NDR_ERR_SUCCESS;
790 _PUBLIC_ void ndr_print_spoolss_DeviceModePrintQuality(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModePrintQuality r)
792 const char *val = NULL;
794 switch (r) {
795 case DMRES_HIGH: val = "DMRES_HIGH"; break;
796 case DMRES_MEDIUM: val = "DMRES_MEDIUM"; break;
797 case DMRES_LOW: val = "DMRES_LOW"; break;
798 case DMRES_DRAFT: val = "DMRES_DRAFT"; break;
800 ndr_print_enum(ndr, name, "ENUM", val, r);
803 static enum ndr_err_code ndr_push_spoolss_DeviceModeColor(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeColor r)
805 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
806 return NDR_ERR_SUCCESS;
809 static enum ndr_err_code ndr_pull_spoolss_DeviceModeColor(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeColor *r)
811 uint16_t v;
812 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
813 *r = v;
814 return NDR_ERR_SUCCESS;
817 _PUBLIC_ void ndr_print_spoolss_DeviceModeColor(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeColor r)
819 const char *val = NULL;
821 switch (r) {
822 case DMRES_MONOCHROME: val = "DMRES_MONOCHROME"; break;
823 case DMRES_COLOR: val = "DMRES_COLOR"; break;
825 ndr_print_enum(ndr, name, "ENUM", val, r);
828 static enum ndr_err_code ndr_push_spoolss_DeviceModeDuplex(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeDuplex r)
830 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
831 return NDR_ERR_SUCCESS;
834 static enum ndr_err_code ndr_pull_spoolss_DeviceModeDuplex(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeDuplex *r)
836 uint16_t v;
837 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
838 *r = v;
839 return NDR_ERR_SUCCESS;
842 _PUBLIC_ void ndr_print_spoolss_DeviceModeDuplex(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeDuplex r)
844 const char *val = NULL;
846 switch (r) {
847 case DMDUP_SIMPLEX: val = "DMDUP_SIMPLEX"; break;
848 case DMDUP_VERTICAL: val = "DMDUP_VERTICAL"; break;
849 case DMDUP_HORIZONTAL: val = "DMDUP_HORIZONTAL"; break;
851 ndr_print_enum(ndr, name, "ENUM", val, r);
854 static enum ndr_err_code ndr_push_spoolss_DeviceModeTTOption(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeTTOption r)
856 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
857 return NDR_ERR_SUCCESS;
860 static enum ndr_err_code ndr_pull_spoolss_DeviceModeTTOption(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeTTOption *r)
862 uint16_t v;
863 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
864 *r = v;
865 return NDR_ERR_SUCCESS;
868 _PUBLIC_ void ndr_print_spoolss_DeviceModeTTOption(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeTTOption r)
870 const char *val = NULL;
872 switch (r) {
873 case DMTT_BITMAP: val = "DMTT_BITMAP"; break;
874 case DMTT_DOWNLOAD: val = "DMTT_DOWNLOAD"; break;
875 case DMTT_SUBDEV: val = "DMTT_SUBDEV"; break;
876 case DMTT_DOWNLOAD_OUTLINE: val = "DMTT_DOWNLOAD_OUTLINE"; break;
878 ndr_print_enum(ndr, name, "ENUM", val, r);
881 static enum ndr_err_code ndr_push_spoolss_DeviceModeCollate(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeCollate r)
883 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
884 return NDR_ERR_SUCCESS;
887 static enum ndr_err_code ndr_pull_spoolss_DeviceModeCollate(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeCollate *r)
889 uint16_t v;
890 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
891 *r = v;
892 return NDR_ERR_SUCCESS;
895 _PUBLIC_ void ndr_print_spoolss_DeviceModeCollate(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeCollate r)
897 const char *val = NULL;
899 switch (r) {
900 case DMCOLLATE_FALSE: val = "DMCOLLATE_FALSE"; break;
901 case DMCOLLATE_TRUE: val = "DMCOLLATE_TRUE"; break;
903 ndr_print_enum(ndr, name, "ENUM", val, r);
906 static enum ndr_err_code ndr_push_spoolss_DeviceModeNUp(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeNUp r)
908 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
909 return NDR_ERR_SUCCESS;
912 static enum ndr_err_code ndr_pull_spoolss_DeviceModeNUp(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeNUp *r)
914 uint32_t v;
915 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
916 *r = v;
917 return NDR_ERR_SUCCESS;
920 _PUBLIC_ void ndr_print_spoolss_DeviceModeNUp(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeNUp r)
922 const char *val = NULL;
924 switch (r) {
925 case DMNUP_SYSTEM: val = "DMNUP_SYSTEM"; break;
926 case DMNUP_ONEUP: val = "DMNUP_ONEUP"; break;
928 ndr_print_enum(ndr, name, "ENUM", val, r);
931 static enum ndr_err_code ndr_push_spoolss_DeviceModeICMMethod(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeICMMethod r)
933 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
934 return NDR_ERR_SUCCESS;
937 static enum ndr_err_code ndr_pull_spoolss_DeviceModeICMMethod(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeICMMethod *r)
939 uint32_t v;
940 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
941 *r = v;
942 return NDR_ERR_SUCCESS;
945 _PUBLIC_ void ndr_print_spoolss_DeviceModeICMMethod(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeICMMethod r)
947 const char *val = NULL;
949 switch (r) {
950 case DMICMMETHOD_NONE: val = "DMICMMETHOD_NONE"; break;
951 case DMICMMETHOD_SYSTEM: val = "DMICMMETHOD_SYSTEM"; break;
952 case DMICMMETHOD_DRIVER: val = "DMICMMETHOD_DRIVER"; break;
953 case DMICMMETHOD_DEVICE: val = "DMICMMETHOD_DEVICE"; break;
955 ndr_print_enum(ndr, name, "ENUM", val, r);
958 static enum ndr_err_code ndr_push_spoolss_DeviceModeICMIntent(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeICMIntent r)
960 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
961 return NDR_ERR_SUCCESS;
964 static enum ndr_err_code ndr_pull_spoolss_DeviceModeICMIntent(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeICMIntent *r)
966 uint32_t v;
967 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
968 *r = v;
969 return NDR_ERR_SUCCESS;
972 _PUBLIC_ void ndr_print_spoolss_DeviceModeICMIntent(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeICMIntent r)
974 const char *val = NULL;
976 switch (r) {
977 case DMICM_SATURATE: val = "DMICM_SATURATE"; break;
978 case DMICM_CONTRAST: val = "DMICM_CONTRAST"; break;
979 case DMICM_COLORIMETRIC: val = "DMICM_COLORIMETRIC"; break;
980 case DMICM_ABS_COLORIMETRIC: val = "DMICM_ABS_COLORIMETRIC"; break;
982 ndr_print_enum(ndr, name, "ENUM", val, r);
985 static enum ndr_err_code ndr_push_spoolss_DeviceModeMediaType(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeMediaType r)
987 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
988 return NDR_ERR_SUCCESS;
991 static enum ndr_err_code ndr_pull_spoolss_DeviceModeMediaType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeMediaType *r)
993 uint32_t v;
994 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
995 *r = v;
996 return NDR_ERR_SUCCESS;
999 _PUBLIC_ void ndr_print_spoolss_DeviceModeMediaType(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeMediaType r)
1001 const char *val = NULL;
1003 switch (r) {
1004 case DMMEDIA_STANDARD: val = "DMMEDIA_STANDARD"; break;
1005 case DMMEDIA_TRANSPARENCY: val = "DMMEDIA_TRANSPARENCY"; break;
1006 case DMMEDIA_GLOSSY: val = "DMMEDIA_GLOSSY"; break;
1008 ndr_print_enum(ndr, name, "ENUM", val, r);
1011 static enum ndr_err_code ndr_push_spoolss_DeviceModeDitherType(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeDitherType r)
1013 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
1014 return NDR_ERR_SUCCESS;
1017 static enum ndr_err_code ndr_pull_spoolss_DeviceModeDitherType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeDitherType *r)
1019 uint32_t v;
1020 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
1021 *r = v;
1022 return NDR_ERR_SUCCESS;
1025 _PUBLIC_ void ndr_print_spoolss_DeviceModeDitherType(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeDitherType r)
1027 const char *val = NULL;
1029 switch (r) {
1030 case DMDITHER_NONE: val = "DMDITHER_NONE"; break;
1031 case DMDITHER_COARSE: val = "DMDITHER_COARSE"; break;
1032 case DMDITHER_FINE: val = "DMDITHER_FINE"; break;
1033 case DMDITHER_LINEART: val = "DMDITHER_LINEART"; break;
1034 case DMDITHER_ERRORDIFFUSION: val = "DMDITHER_ERRORDIFFUSION"; break;
1035 case DMDITHER_RESERVED6: val = "DMDITHER_RESERVED6"; break;
1036 case DMDITHER_RESERVED7: val = "DMDITHER_RESERVED7"; break;
1037 case DMDITHER_RESERVED8: val = "DMDITHER_RESERVED8"; break;
1038 case DMDITHER_RESERVED9: val = "DMDITHER_RESERVED9"; break;
1039 case DMDITHER_GRAYSCALE: val = "DMDITHER_GRAYSCALE"; break;
1041 ndr_print_enum(ndr, name, "ENUM", val, r);
1044 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DeviceMode(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DeviceMode *r)
1046 if (ndr_flags & NDR_SCALARS) {
1047 NDR_CHECK(ndr_push_align(ndr, 4));
1048 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->devicename, MAXDEVICENAME, sizeof(uint16_t), CH_UTF16));
1049 NDR_CHECK(ndr_push_spoolss_DeviceModeSpecVersion(ndr, NDR_SCALARS, r->specversion));
1050 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->driverversion));
1051 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->size));
1052 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->driverextra_data.length));
1053 NDR_CHECK(ndr_push_spoolss_DeviceModeFields(ndr, NDR_SCALARS, r->fields));
1054 NDR_CHECK(ndr_push_spoolss_DeviceModeOrientation(ndr, NDR_SCALARS, r->orientation));
1055 NDR_CHECK(ndr_push_spoolss_DeviceModePaperSize(ndr, NDR_SCALARS, r->papersize));
1056 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->paperlength));
1057 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->paperwidth));
1058 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->scale));
1059 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->copies));
1060 NDR_CHECK(ndr_push_spoolss_DeviceModeDefaultSource(ndr, NDR_SCALARS, r->defaultsource));
1061 NDR_CHECK(ndr_push_spoolss_DeviceModePrintQuality(ndr, NDR_SCALARS, r->printquality));
1062 NDR_CHECK(ndr_push_spoolss_DeviceModeColor(ndr, NDR_SCALARS, r->color));
1063 NDR_CHECK(ndr_push_spoolss_DeviceModeDuplex(ndr, NDR_SCALARS, r->duplex));
1064 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->yresolution));
1065 NDR_CHECK(ndr_push_spoolss_DeviceModeTTOption(ndr, NDR_SCALARS, r->ttoption));
1066 NDR_CHECK(ndr_push_spoolss_DeviceModeCollate(ndr, NDR_SCALARS, r->collate));
1067 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->formname, MAXDEVICENAME, sizeof(uint16_t), CH_UTF16));
1068 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logpixels));
1069 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bitsperpel));
1070 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pelswidth));
1071 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pelsheight));
1072 NDR_CHECK(ndr_push_spoolss_DeviceModeNUp(ndr, NDR_SCALARS, r->displayflags));
1073 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->displayfrequency));
1074 NDR_CHECK(ndr_push_spoolss_DeviceModeICMMethod(ndr, NDR_SCALARS, r->icmmethod));
1075 NDR_CHECK(ndr_push_spoolss_DeviceModeICMIntent(ndr, NDR_SCALARS, r->icmintent));
1076 NDR_CHECK(ndr_push_spoolss_DeviceModeMediaType(ndr, NDR_SCALARS, r->mediatype));
1077 NDR_CHECK(ndr_push_spoolss_DeviceModeDitherType(ndr, NDR_SCALARS, r->dithertype));
1078 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved1));
1079 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved2));
1080 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->panningwidth));
1081 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->panningheight));
1083 uint32_t _flags_save_DATA_BLOB = ndr->flags;
1084 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
1086 struct ndr_push *_ndr_driverextra_data;
1087 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_driverextra_data, 0, r->driverextra_data.length));
1088 NDR_CHECK(ndr_push_DATA_BLOB(_ndr_driverextra_data, NDR_SCALARS, r->driverextra_data));
1089 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_driverextra_data, 0, r->driverextra_data.length));
1091 ndr->flags = _flags_save_DATA_BLOB;
1093 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
1095 if (ndr_flags & NDR_BUFFERS) {
1097 return NDR_ERR_SUCCESS;
1100 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DeviceMode(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DeviceMode *r)
1102 if (ndr_flags & NDR_SCALARS) {
1103 NDR_CHECK(ndr_pull_align(ndr, 4));
1104 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->devicename, MAXDEVICENAME, sizeof(uint16_t), CH_UTF16));
1105 NDR_CHECK(ndr_pull_spoolss_DeviceModeSpecVersion(ndr, NDR_SCALARS, &r->specversion));
1106 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->driverversion));
1107 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
1108 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->__driverextra_length));
1109 NDR_CHECK(ndr_pull_spoolss_DeviceModeFields(ndr, NDR_SCALARS, &r->fields));
1110 NDR_CHECK(ndr_pull_spoolss_DeviceModeOrientation(ndr, NDR_SCALARS, &r->orientation));
1111 NDR_CHECK(ndr_pull_spoolss_DeviceModePaperSize(ndr, NDR_SCALARS, &r->papersize));
1112 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->paperlength));
1113 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->paperwidth));
1114 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->scale));
1115 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->copies));
1116 NDR_CHECK(ndr_pull_spoolss_DeviceModeDefaultSource(ndr, NDR_SCALARS, &r->defaultsource));
1117 NDR_CHECK(ndr_pull_spoolss_DeviceModePrintQuality(ndr, NDR_SCALARS, &r->printquality));
1118 NDR_CHECK(ndr_pull_spoolss_DeviceModeColor(ndr, NDR_SCALARS, &r->color));
1119 NDR_CHECK(ndr_pull_spoolss_DeviceModeDuplex(ndr, NDR_SCALARS, &r->duplex));
1120 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->yresolution));
1121 NDR_CHECK(ndr_pull_spoolss_DeviceModeTTOption(ndr, NDR_SCALARS, &r->ttoption));
1122 NDR_CHECK(ndr_pull_spoolss_DeviceModeCollate(ndr, NDR_SCALARS, &r->collate));
1123 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->formname, MAXDEVICENAME, sizeof(uint16_t), CH_UTF16));
1124 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logpixels));
1125 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bitsperpel));
1126 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pelswidth));
1127 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pelsheight));
1128 NDR_CHECK(ndr_pull_spoolss_DeviceModeNUp(ndr, NDR_SCALARS, &r->displayflags));
1129 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->displayfrequency));
1130 NDR_CHECK(ndr_pull_spoolss_DeviceModeICMMethod(ndr, NDR_SCALARS, &r->icmmethod));
1131 NDR_CHECK(ndr_pull_spoolss_DeviceModeICMIntent(ndr, NDR_SCALARS, &r->icmintent));
1132 NDR_CHECK(ndr_pull_spoolss_DeviceModeMediaType(ndr, NDR_SCALARS, &r->mediatype));
1133 NDR_CHECK(ndr_pull_spoolss_DeviceModeDitherType(ndr, NDR_SCALARS, &r->dithertype));
1134 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved1));
1135 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
1136 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->panningwidth));
1137 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->panningheight));
1139 uint32_t _flags_save_DATA_BLOB = ndr->flags;
1140 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
1142 struct ndr_pull *_ndr_driverextra_data;
1143 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_driverextra_data, 0, r->__driverextra_length));
1144 NDR_CHECK(ndr_pull_DATA_BLOB(_ndr_driverextra_data, NDR_SCALARS, &r->driverextra_data));
1145 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_driverextra_data, 0, r->__driverextra_length));
1147 ndr->flags = _flags_save_DATA_BLOB;
1149 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
1151 if (ndr_flags & NDR_BUFFERS) {
1153 return NDR_ERR_SUCCESS;
1156 _PUBLIC_ void ndr_print_spoolss_DeviceMode(struct ndr_print *ndr, const char *name, const struct spoolss_DeviceMode *r)
1158 ndr_print_struct(ndr, name, "spoolss_DeviceMode");
1159 ndr->depth++;
1160 ndr_print_string(ndr, "devicename", r->devicename);
1161 ndr_print_spoolss_DeviceModeSpecVersion(ndr, "specversion", r->specversion);
1162 ndr_print_uint16(ndr, "driverversion", r->driverversion);
1163 ndr_print_uint16(ndr, "size", r->size);
1164 ndr_print_uint16(ndr, "__driverextra_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->driverextra_data.length:r->__driverextra_length);
1165 ndr_print_spoolss_DeviceModeFields(ndr, "fields", r->fields);
1166 ndr_print_spoolss_DeviceModeOrientation(ndr, "orientation", r->orientation);
1167 ndr_print_spoolss_DeviceModePaperSize(ndr, "papersize", r->papersize);
1168 ndr_print_uint16(ndr, "paperlength", r->paperlength);
1169 ndr_print_uint16(ndr, "paperwidth", r->paperwidth);
1170 ndr_print_uint16(ndr, "scale", r->scale);
1171 ndr_print_uint16(ndr, "copies", r->copies);
1172 ndr_print_spoolss_DeviceModeDefaultSource(ndr, "defaultsource", r->defaultsource);
1173 ndr_print_spoolss_DeviceModePrintQuality(ndr, "printquality", r->printquality);
1174 ndr_print_spoolss_DeviceModeColor(ndr, "color", r->color);
1175 ndr_print_spoolss_DeviceModeDuplex(ndr, "duplex", r->duplex);
1176 ndr_print_uint16(ndr, "yresolution", r->yresolution);
1177 ndr_print_spoolss_DeviceModeTTOption(ndr, "ttoption", r->ttoption);
1178 ndr_print_spoolss_DeviceModeCollate(ndr, "collate", r->collate);
1179 ndr_print_string(ndr, "formname", r->formname);
1180 ndr_print_uint16(ndr, "logpixels", r->logpixels);
1181 ndr_print_uint32(ndr, "bitsperpel", r->bitsperpel);
1182 ndr_print_uint32(ndr, "pelswidth", r->pelswidth);
1183 ndr_print_uint32(ndr, "pelsheight", r->pelsheight);
1184 ndr_print_spoolss_DeviceModeNUp(ndr, "displayflags", r->displayflags);
1185 ndr_print_uint32(ndr, "displayfrequency", r->displayfrequency);
1186 ndr_print_spoolss_DeviceModeICMMethod(ndr, "icmmethod", r->icmmethod);
1187 ndr_print_spoolss_DeviceModeICMIntent(ndr, "icmintent", r->icmintent);
1188 ndr_print_spoolss_DeviceModeMediaType(ndr, "mediatype", r->mediatype);
1189 ndr_print_spoolss_DeviceModeDitherType(ndr, "dithertype", r->dithertype);
1190 ndr_print_uint32(ndr, "reserved1", r->reserved1);
1191 ndr_print_uint32(ndr, "reserved2", r->reserved2);
1192 ndr_print_uint32(ndr, "panningwidth", r->panningwidth);
1193 ndr_print_uint32(ndr, "panningheight", r->panningheight);
1194 ndr_print_DATA_BLOB(ndr, "driverextra_data", r->driverextra_data);
1195 ndr->depth--;
1198 _PUBLIC_ size_t ndr_size_spoolss_DeviceMode(const struct spoolss_DeviceMode *r, struct smb_iconv_convenience *ic, int flags)
1200 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DeviceMode, ic);
1203 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
1205 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
1206 return NDR_ERR_SUCCESS;
1209 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
1211 uint32_t v;
1212 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
1213 *r = v;
1214 return NDR_ERR_SUCCESS;
1217 _PUBLIC_ void ndr_print_spoolss_EnumPrinterFlags(struct ndr_print *ndr, const char *name, uint32_t r)
1219 ndr_print_uint32(ndr, name, r);
1220 ndr->depth++;
1221 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_DEFAULT", PRINTER_ENUM_DEFAULT, r);
1222 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_LOCAL", PRINTER_ENUM_LOCAL, r);
1223 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_CONNECTIONS", PRINTER_ENUM_CONNECTIONS, r);
1224 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_FAVORITE", PRINTER_ENUM_FAVORITE, r);
1225 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_NAME", PRINTER_ENUM_NAME, r);
1226 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_REMOTE", PRINTER_ENUM_REMOTE, r);
1227 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_SHARED", PRINTER_ENUM_SHARED, r);
1228 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_NETWORK", PRINTER_ENUM_NETWORK, r);
1229 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_EXPAND", PRINTER_ENUM_EXPAND, r);
1230 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_CONTAINER", PRINTER_ENUM_CONTAINER, r);
1231 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON1", PRINTER_ENUM_ICON1, r);
1232 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON2", PRINTER_ENUM_ICON2, r);
1233 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON3", PRINTER_ENUM_ICON3, r);
1234 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON4", PRINTER_ENUM_ICON4, r);
1235 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON5", PRINTER_ENUM_ICON5, r);
1236 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON6", PRINTER_ENUM_ICON6, r);
1237 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON7", PRINTER_ENUM_ICON7, r);
1238 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON8", PRINTER_ENUM_ICON8, r);
1239 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_HIDE", PRINTER_ENUM_HIDE, r);
1240 ndr->depth--;
1243 static enum ndr_err_code ndr_push_spoolss_PrinterAttributes(struct ndr_push *ndr, int ndr_flags, uint32_t r)
1245 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
1246 return NDR_ERR_SUCCESS;
1249 static enum ndr_err_code ndr_pull_spoolss_PrinterAttributes(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
1251 uint32_t v;
1252 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
1253 *r = v;
1254 return NDR_ERR_SUCCESS;
1257 _PUBLIC_ void ndr_print_spoolss_PrinterAttributes(struct ndr_print *ndr, const char *name, uint32_t r)
1259 ndr_print_uint32(ndr, name, r);
1260 ndr->depth++;
1261 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_QUEUED", PRINTER_ATTRIBUTE_QUEUED, r);
1262 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DIRECT", PRINTER_ATTRIBUTE_DIRECT, r);
1263 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DEFAULT", PRINTER_ATTRIBUTE_DEFAULT, r);
1264 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_SHARED", PRINTER_ATTRIBUTE_SHARED, r);
1265 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_NETWORK", PRINTER_ATTRIBUTE_NETWORK, r);
1266 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_HIDDEN", PRINTER_ATTRIBUTE_HIDDEN, r);
1267 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_LOCAL", PRINTER_ATTRIBUTE_LOCAL, r);
1268 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_ENABLE_DEVQ", PRINTER_ATTRIBUTE_ENABLE_DEVQ, r);
1269 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS", PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS, r);
1270 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST", PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST, r);
1271 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_WORK_OFFLINE", PRINTER_ATTRIBUTE_WORK_OFFLINE, r);
1272 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_ENABLE_BIDI", PRINTER_ATTRIBUTE_ENABLE_BIDI, r);
1273 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_RAW_ONLY", PRINTER_ATTRIBUTE_RAW_ONLY, r);
1274 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_PUBLISHED", PRINTER_ATTRIBUTE_PUBLISHED, r);
1275 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_FAX", PRINTER_ATTRIBUTE_FAX, r);
1276 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_TS", PRINTER_ATTRIBUTE_TS, r);
1277 ndr->depth--;
1280 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo1 *r)
1282 if (ndr_flags & NDR_SCALARS) {
1283 NDR_CHECK(ndr_push_align(ndr, 5));
1284 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->flags));
1286 uint32_t _flags_save_string = ndr->flags;
1287 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1288 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->description));
1289 ndr->flags = _flags_save_string;
1292 uint32_t _flags_save_string = ndr->flags;
1293 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1294 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->name));
1295 ndr->flags = _flags_save_string;
1298 uint32_t _flags_save_string = ndr->flags;
1299 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1300 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->comment));
1301 ndr->flags = _flags_save_string;
1303 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
1305 if (ndr_flags & NDR_BUFFERS) {
1307 uint32_t _flags_save_string = ndr->flags;
1308 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1309 if (r->description) {
1310 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->description));
1311 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->description));
1313 ndr->flags = _flags_save_string;
1316 uint32_t _flags_save_string = ndr->flags;
1317 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1318 if (r->name) {
1319 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->name));
1320 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->name));
1322 ndr->flags = _flags_save_string;
1325 uint32_t _flags_save_string = ndr->flags;
1326 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1327 if (r->comment) {
1328 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->comment));
1329 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->comment));
1331 ndr->flags = _flags_save_string;
1334 return NDR_ERR_SUCCESS;
1337 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo1 *r)
1339 uint32_t _ptr_description;
1340 TALLOC_CTX *_mem_save_description_0;
1341 uint32_t _ptr_name;
1342 TALLOC_CTX *_mem_save_name_0;
1343 uint32_t _ptr_comment;
1344 TALLOC_CTX *_mem_save_comment_0;
1345 if (ndr_flags & NDR_SCALARS) {
1346 NDR_CHECK(ndr_pull_align(ndr, 5));
1347 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->flags));
1349 uint32_t _flags_save_string = ndr->flags;
1350 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1351 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
1352 if (_ptr_description) {
1353 NDR_PULL_ALLOC(ndr, r->description);
1354 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->description, _ptr_description));
1355 } else {
1356 r->description = NULL;
1358 ndr->flags = _flags_save_string;
1361 uint32_t _flags_save_string = ndr->flags;
1362 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1363 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
1364 if (_ptr_name) {
1365 NDR_PULL_ALLOC(ndr, r->name);
1366 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->name, _ptr_name));
1367 } else {
1368 r->name = NULL;
1370 ndr->flags = _flags_save_string;
1373 uint32_t _flags_save_string = ndr->flags;
1374 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1375 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
1376 if (_ptr_comment) {
1377 NDR_PULL_ALLOC(ndr, r->comment);
1378 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->comment, _ptr_comment));
1379 } else {
1380 r->comment = NULL;
1382 ndr->flags = _flags_save_string;
1384 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
1386 if (ndr_flags & NDR_BUFFERS) {
1388 uint32_t _flags_save_string = ndr->flags;
1389 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1390 if (r->description) {
1391 uint32_t _relative_save_offset;
1392 _relative_save_offset = ndr->offset;
1393 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->description));
1394 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
1395 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
1396 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->description));
1397 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
1398 ndr->offset = _relative_save_offset;
1400 ndr->flags = _flags_save_string;
1403 uint32_t _flags_save_string = ndr->flags;
1404 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1405 if (r->name) {
1406 uint32_t _relative_save_offset;
1407 _relative_save_offset = ndr->offset;
1408 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->name));
1409 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
1410 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
1411 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->name));
1412 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
1413 ndr->offset = _relative_save_offset;
1415 ndr->flags = _flags_save_string;
1418 uint32_t _flags_save_string = ndr->flags;
1419 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1420 if (r->comment) {
1421 uint32_t _relative_save_offset;
1422 _relative_save_offset = ndr->offset;
1423 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->comment));
1424 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
1425 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
1426 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->comment));
1427 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
1428 ndr->offset = _relative_save_offset;
1430 ndr->flags = _flags_save_string;
1433 return NDR_ERR_SUCCESS;
1436 _PUBLIC_ void ndr_print_spoolss_PrinterInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo1 *r)
1438 ndr_print_struct(ndr, name, "spoolss_PrinterInfo1");
1439 ndr->depth++;
1440 ndr_print_spoolss_PrinterAttributes(ndr, "flags", r->flags);
1441 ndr_print_ptr(ndr, "description", r->description);
1442 ndr->depth++;
1443 if (r->description) {
1444 ndr_print_string(ndr, "description", r->description);
1446 ndr->depth--;
1447 ndr_print_ptr(ndr, "name", r->name);
1448 ndr->depth++;
1449 if (r->name) {
1450 ndr_print_string(ndr, "name", r->name);
1452 ndr->depth--;
1453 ndr_print_ptr(ndr, "comment", r->comment);
1454 ndr->depth++;
1455 if (r->comment) {
1456 ndr_print_string(ndr, "comment", r->comment);
1458 ndr->depth--;
1459 ndr->depth--;
1462 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo1(const struct spoolss_PrinterInfo1 *r, struct smb_iconv_convenience *ic, int flags)
1464 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo1, ic);
1467 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo2 *r)
1469 if (ndr_flags & NDR_SCALARS) {
1470 NDR_CHECK(ndr_push_align(ndr, 5));
1472 uint32_t _flags_save_string = ndr->flags;
1473 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1474 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->servername));
1475 ndr->flags = _flags_save_string;
1478 uint32_t _flags_save_string = ndr->flags;
1479 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1480 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
1481 ndr->flags = _flags_save_string;
1484 uint32_t _flags_save_string = ndr->flags;
1485 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1486 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->sharename));
1487 ndr->flags = _flags_save_string;
1490 uint32_t _flags_save_string = ndr->flags;
1491 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1492 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->portname));
1493 ndr->flags = _flags_save_string;
1496 uint32_t _flags_save_string = ndr->flags;
1497 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1498 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->drivername));
1499 ndr->flags = _flags_save_string;
1502 uint32_t _flags_save_string = ndr->flags;
1503 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1504 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->comment));
1505 ndr->flags = _flags_save_string;
1508 uint32_t _flags_save_string = ndr->flags;
1509 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1510 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->location));
1511 ndr->flags = _flags_save_string;
1513 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
1515 uint32_t _flags_save_string = ndr->flags;
1516 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1517 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->sepfile));
1518 ndr->flags = _flags_save_string;
1521 uint32_t _flags_save_string = ndr->flags;
1522 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1523 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printprocessor));
1524 ndr->flags = _flags_save_string;
1527 uint32_t _flags_save_string = ndr->flags;
1528 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1529 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->datatype));
1530 ndr->flags = _flags_save_string;
1533 uint32_t _flags_save_string = ndr->flags;
1534 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1535 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->parameters));
1536 ndr->flags = _flags_save_string;
1538 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
1539 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
1540 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
1541 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->defaultpriority));
1542 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->starttime));
1543 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->untiltime));
1544 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
1545 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
1546 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->averageppm));
1547 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
1549 if (ndr_flags & NDR_BUFFERS) {
1551 uint32_t _flags_save_string = ndr->flags;
1552 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1553 if (r->servername) {
1554 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->servername));
1555 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->servername));
1557 ndr->flags = _flags_save_string;
1560 uint32_t _flags_save_string = ndr->flags;
1561 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1562 if (r->printername) {
1563 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printername));
1564 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
1566 ndr->flags = _flags_save_string;
1569 uint32_t _flags_save_string = ndr->flags;
1570 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1571 if (r->sharename) {
1572 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->sharename));
1573 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->sharename));
1575 ndr->flags = _flags_save_string;
1578 uint32_t _flags_save_string = ndr->flags;
1579 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1580 if (r->portname) {
1581 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->portname));
1582 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->portname));
1584 ndr->flags = _flags_save_string;
1587 uint32_t _flags_save_string = ndr->flags;
1588 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1589 if (r->drivername) {
1590 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->drivername));
1591 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->drivername));
1593 ndr->flags = _flags_save_string;
1596 uint32_t _flags_save_string = ndr->flags;
1597 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1598 if (r->comment) {
1599 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->comment));
1600 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->comment));
1602 ndr->flags = _flags_save_string;
1605 uint32_t _flags_save_string = ndr->flags;
1606 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1607 if (r->location) {
1608 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->location));
1609 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->location));
1611 ndr->flags = _flags_save_string;
1613 if (r->devmode) {
1614 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->devmode));
1616 struct ndr_push *_ndr_devmode;
1617 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
1618 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
1619 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
1623 uint32_t _flags_save_string = ndr->flags;
1624 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1625 if (r->sepfile) {
1626 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->sepfile));
1627 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->sepfile));
1629 ndr->flags = _flags_save_string;
1632 uint32_t _flags_save_string = ndr->flags;
1633 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1634 if (r->printprocessor) {
1635 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printprocessor));
1636 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printprocessor));
1638 ndr->flags = _flags_save_string;
1641 uint32_t _flags_save_string = ndr->flags;
1642 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1643 if (r->datatype) {
1644 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->datatype));
1645 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->datatype));
1647 ndr->flags = _flags_save_string;
1650 uint32_t _flags_save_string = ndr->flags;
1651 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1652 if (r->parameters) {
1653 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->parameters));
1654 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->parameters));
1656 ndr->flags = _flags_save_string;
1658 if (r->secdesc) {
1659 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->secdesc));
1661 struct ndr_push *_ndr_secdesc;
1662 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
1663 NDR_CHECK(ndr_push_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
1664 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
1668 return NDR_ERR_SUCCESS;
1671 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo2 *r)
1673 uint32_t _ptr_servername;
1674 TALLOC_CTX *_mem_save_servername_0;
1675 uint32_t _ptr_printername;
1676 TALLOC_CTX *_mem_save_printername_0;
1677 uint32_t _ptr_sharename;
1678 TALLOC_CTX *_mem_save_sharename_0;
1679 uint32_t _ptr_portname;
1680 TALLOC_CTX *_mem_save_portname_0;
1681 uint32_t _ptr_drivername;
1682 TALLOC_CTX *_mem_save_drivername_0;
1683 uint32_t _ptr_comment;
1684 TALLOC_CTX *_mem_save_comment_0;
1685 uint32_t _ptr_location;
1686 TALLOC_CTX *_mem_save_location_0;
1687 uint32_t _ptr_devmode;
1688 TALLOC_CTX *_mem_save_devmode_0;
1689 uint32_t _ptr_sepfile;
1690 TALLOC_CTX *_mem_save_sepfile_0;
1691 uint32_t _ptr_printprocessor;
1692 TALLOC_CTX *_mem_save_printprocessor_0;
1693 uint32_t _ptr_datatype;
1694 TALLOC_CTX *_mem_save_datatype_0;
1695 uint32_t _ptr_parameters;
1696 TALLOC_CTX *_mem_save_parameters_0;
1697 uint32_t _ptr_secdesc;
1698 TALLOC_CTX *_mem_save_secdesc_0;
1699 if (ndr_flags & NDR_SCALARS) {
1700 NDR_CHECK(ndr_pull_align(ndr, 5));
1702 uint32_t _flags_save_string = ndr->flags;
1703 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1704 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
1705 if (_ptr_servername) {
1706 NDR_PULL_ALLOC(ndr, r->servername);
1707 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
1708 } else {
1709 r->servername = NULL;
1711 ndr->flags = _flags_save_string;
1714 uint32_t _flags_save_string = ndr->flags;
1715 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1716 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
1717 if (_ptr_printername) {
1718 NDR_PULL_ALLOC(ndr, r->printername);
1719 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
1720 } else {
1721 r->printername = NULL;
1723 ndr->flags = _flags_save_string;
1726 uint32_t _flags_save_string = ndr->flags;
1727 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1728 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sharename));
1729 if (_ptr_sharename) {
1730 NDR_PULL_ALLOC(ndr, r->sharename);
1731 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->sharename, _ptr_sharename));
1732 } else {
1733 r->sharename = NULL;
1735 ndr->flags = _flags_save_string;
1738 uint32_t _flags_save_string = ndr->flags;
1739 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1740 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
1741 if (_ptr_portname) {
1742 NDR_PULL_ALLOC(ndr, r->portname);
1743 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->portname, _ptr_portname));
1744 } else {
1745 r->portname = NULL;
1747 ndr->flags = _flags_save_string;
1750 uint32_t _flags_save_string = ndr->flags;
1751 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1752 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_drivername));
1753 if (_ptr_drivername) {
1754 NDR_PULL_ALLOC(ndr, r->drivername);
1755 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->drivername, _ptr_drivername));
1756 } else {
1757 r->drivername = NULL;
1759 ndr->flags = _flags_save_string;
1762 uint32_t _flags_save_string = ndr->flags;
1763 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1764 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
1765 if (_ptr_comment) {
1766 NDR_PULL_ALLOC(ndr, r->comment);
1767 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->comment, _ptr_comment));
1768 } else {
1769 r->comment = NULL;
1771 ndr->flags = _flags_save_string;
1774 uint32_t _flags_save_string = ndr->flags;
1775 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1776 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_location));
1777 if (_ptr_location) {
1778 NDR_PULL_ALLOC(ndr, r->location);
1779 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->location, _ptr_location));
1780 } else {
1781 r->location = NULL;
1783 ndr->flags = _flags_save_string;
1785 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
1786 if (_ptr_devmode) {
1787 NDR_PULL_ALLOC(ndr, r->devmode);
1788 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
1789 } else {
1790 r->devmode = NULL;
1793 uint32_t _flags_save_string = ndr->flags;
1794 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1795 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sepfile));
1796 if (_ptr_sepfile) {
1797 NDR_PULL_ALLOC(ndr, r->sepfile);
1798 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->sepfile, _ptr_sepfile));
1799 } else {
1800 r->sepfile = NULL;
1802 ndr->flags = _flags_save_string;
1805 uint32_t _flags_save_string = ndr->flags;
1806 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1807 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printprocessor));
1808 if (_ptr_printprocessor) {
1809 NDR_PULL_ALLOC(ndr, r->printprocessor);
1810 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printprocessor, _ptr_printprocessor));
1811 } else {
1812 r->printprocessor = NULL;
1814 ndr->flags = _flags_save_string;
1817 uint32_t _flags_save_string = ndr->flags;
1818 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1819 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
1820 if (_ptr_datatype) {
1821 NDR_PULL_ALLOC(ndr, r->datatype);
1822 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->datatype, _ptr_datatype));
1823 } else {
1824 r->datatype = NULL;
1826 ndr->flags = _flags_save_string;
1829 uint32_t _flags_save_string = ndr->flags;
1830 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1831 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
1832 if (_ptr_parameters) {
1833 NDR_PULL_ALLOC(ndr, r->parameters);
1834 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->parameters, _ptr_parameters));
1835 } else {
1836 r->parameters = NULL;
1838 ndr->flags = _flags_save_string;
1840 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
1841 if (_ptr_secdesc) {
1842 NDR_PULL_ALLOC(ndr, r->secdesc);
1843 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
1844 } else {
1845 r->secdesc = NULL;
1847 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
1848 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
1849 if (r->priority > 99) {
1850 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
1852 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->defaultpriority));
1853 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->starttime));
1854 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->untiltime));
1855 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
1856 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
1857 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->averageppm));
1858 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
1860 if (ndr_flags & NDR_BUFFERS) {
1862 uint32_t _flags_save_string = ndr->flags;
1863 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1864 if (r->servername) {
1865 uint32_t _relative_save_offset;
1866 _relative_save_offset = ndr->offset;
1867 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
1868 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1869 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
1870 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
1871 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
1872 ndr->offset = _relative_save_offset;
1874 ndr->flags = _flags_save_string;
1877 uint32_t _flags_save_string = ndr->flags;
1878 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1879 if (r->printername) {
1880 uint32_t _relative_save_offset;
1881 _relative_save_offset = ndr->offset;
1882 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
1883 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1884 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
1885 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
1886 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
1887 ndr->offset = _relative_save_offset;
1889 ndr->flags = _flags_save_string;
1892 uint32_t _flags_save_string = ndr->flags;
1893 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1894 if (r->sharename) {
1895 uint32_t _relative_save_offset;
1896 _relative_save_offset = ndr->offset;
1897 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->sharename));
1898 _mem_save_sharename_0 = NDR_PULL_GET_MEM_CTX(ndr);
1899 NDR_PULL_SET_MEM_CTX(ndr, r->sharename, 0);
1900 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->sharename));
1901 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sharename_0, 0);
1902 ndr->offset = _relative_save_offset;
1904 ndr->flags = _flags_save_string;
1907 uint32_t _flags_save_string = ndr->flags;
1908 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1909 if (r->portname) {
1910 uint32_t _relative_save_offset;
1911 _relative_save_offset = ndr->offset;
1912 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->portname));
1913 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
1914 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
1915 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->portname));
1916 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
1917 ndr->offset = _relative_save_offset;
1919 ndr->flags = _flags_save_string;
1922 uint32_t _flags_save_string = ndr->flags;
1923 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1924 if (r->drivername) {
1925 uint32_t _relative_save_offset;
1926 _relative_save_offset = ndr->offset;
1927 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->drivername));
1928 _mem_save_drivername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1929 NDR_PULL_SET_MEM_CTX(ndr, r->drivername, 0);
1930 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->drivername));
1931 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_drivername_0, 0);
1932 ndr->offset = _relative_save_offset;
1934 ndr->flags = _flags_save_string;
1937 uint32_t _flags_save_string = ndr->flags;
1938 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1939 if (r->comment) {
1940 uint32_t _relative_save_offset;
1941 _relative_save_offset = ndr->offset;
1942 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->comment));
1943 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
1944 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
1945 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->comment));
1946 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
1947 ndr->offset = _relative_save_offset;
1949 ndr->flags = _flags_save_string;
1952 uint32_t _flags_save_string = ndr->flags;
1953 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1954 if (r->location) {
1955 uint32_t _relative_save_offset;
1956 _relative_save_offset = ndr->offset;
1957 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->location));
1958 _mem_save_location_0 = NDR_PULL_GET_MEM_CTX(ndr);
1959 NDR_PULL_SET_MEM_CTX(ndr, r->location, 0);
1960 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->location));
1961 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_location_0, 0);
1962 ndr->offset = _relative_save_offset;
1964 ndr->flags = _flags_save_string;
1966 if (r->devmode) {
1967 uint32_t _relative_save_offset;
1968 _relative_save_offset = ndr->offset;
1969 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
1970 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
1971 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
1973 struct ndr_pull *_ndr_devmode;
1974 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
1975 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
1976 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
1978 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
1979 ndr->offset = _relative_save_offset;
1982 uint32_t _flags_save_string = ndr->flags;
1983 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1984 if (r->sepfile) {
1985 uint32_t _relative_save_offset;
1986 _relative_save_offset = ndr->offset;
1987 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->sepfile));
1988 _mem_save_sepfile_0 = NDR_PULL_GET_MEM_CTX(ndr);
1989 NDR_PULL_SET_MEM_CTX(ndr, r->sepfile, 0);
1990 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->sepfile));
1991 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sepfile_0, 0);
1992 ndr->offset = _relative_save_offset;
1994 ndr->flags = _flags_save_string;
1997 uint32_t _flags_save_string = ndr->flags;
1998 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1999 if (r->printprocessor) {
2000 uint32_t _relative_save_offset;
2001 _relative_save_offset = ndr->offset;
2002 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printprocessor));
2003 _mem_save_printprocessor_0 = NDR_PULL_GET_MEM_CTX(ndr);
2004 NDR_PULL_SET_MEM_CTX(ndr, r->printprocessor, 0);
2005 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printprocessor));
2006 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printprocessor_0, 0);
2007 ndr->offset = _relative_save_offset;
2009 ndr->flags = _flags_save_string;
2012 uint32_t _flags_save_string = ndr->flags;
2013 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2014 if (r->datatype) {
2015 uint32_t _relative_save_offset;
2016 _relative_save_offset = ndr->offset;
2017 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->datatype));
2018 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
2019 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
2020 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->datatype));
2021 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
2022 ndr->offset = _relative_save_offset;
2024 ndr->flags = _flags_save_string;
2027 uint32_t _flags_save_string = ndr->flags;
2028 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2029 if (r->parameters) {
2030 uint32_t _relative_save_offset;
2031 _relative_save_offset = ndr->offset;
2032 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->parameters));
2033 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
2034 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
2035 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->parameters));
2036 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
2037 ndr->offset = _relative_save_offset;
2039 ndr->flags = _flags_save_string;
2041 if (r->secdesc) {
2042 uint32_t _relative_save_offset;
2043 _relative_save_offset = ndr->offset;
2044 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
2045 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
2046 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
2048 struct ndr_pull *_ndr_secdesc;
2049 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
2050 NDR_CHECK(ndr_pull_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
2051 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
2053 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
2054 ndr->offset = _relative_save_offset;
2057 return NDR_ERR_SUCCESS;
2060 _PUBLIC_ void ndr_print_spoolss_PrinterInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo2 *r)
2062 ndr_print_struct(ndr, name, "spoolss_PrinterInfo2");
2063 ndr->depth++;
2064 ndr_print_ptr(ndr, "servername", r->servername);
2065 ndr->depth++;
2066 if (r->servername) {
2067 ndr_print_string(ndr, "servername", r->servername);
2069 ndr->depth--;
2070 ndr_print_ptr(ndr, "printername", r->printername);
2071 ndr->depth++;
2072 if (r->printername) {
2073 ndr_print_string(ndr, "printername", r->printername);
2075 ndr->depth--;
2076 ndr_print_ptr(ndr, "sharename", r->sharename);
2077 ndr->depth++;
2078 if (r->sharename) {
2079 ndr_print_string(ndr, "sharename", r->sharename);
2081 ndr->depth--;
2082 ndr_print_ptr(ndr, "portname", r->portname);
2083 ndr->depth++;
2084 if (r->portname) {
2085 ndr_print_string(ndr, "portname", r->portname);
2087 ndr->depth--;
2088 ndr_print_ptr(ndr, "drivername", r->drivername);
2089 ndr->depth++;
2090 if (r->drivername) {
2091 ndr_print_string(ndr, "drivername", r->drivername);
2093 ndr->depth--;
2094 ndr_print_ptr(ndr, "comment", r->comment);
2095 ndr->depth++;
2096 if (r->comment) {
2097 ndr_print_string(ndr, "comment", r->comment);
2099 ndr->depth--;
2100 ndr_print_ptr(ndr, "location", r->location);
2101 ndr->depth++;
2102 if (r->location) {
2103 ndr_print_string(ndr, "location", r->location);
2105 ndr->depth--;
2106 ndr_print_ptr(ndr, "devmode", r->devmode);
2107 ndr->depth++;
2108 if (r->devmode) {
2109 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
2111 ndr->depth--;
2112 ndr_print_ptr(ndr, "sepfile", r->sepfile);
2113 ndr->depth++;
2114 if (r->sepfile) {
2115 ndr_print_string(ndr, "sepfile", r->sepfile);
2117 ndr->depth--;
2118 ndr_print_ptr(ndr, "printprocessor", r->printprocessor);
2119 ndr->depth++;
2120 if (r->printprocessor) {
2121 ndr_print_string(ndr, "printprocessor", r->printprocessor);
2123 ndr->depth--;
2124 ndr_print_ptr(ndr, "datatype", r->datatype);
2125 ndr->depth++;
2126 if (r->datatype) {
2127 ndr_print_string(ndr, "datatype", r->datatype);
2129 ndr->depth--;
2130 ndr_print_ptr(ndr, "parameters", r->parameters);
2131 ndr->depth++;
2132 if (r->parameters) {
2133 ndr_print_string(ndr, "parameters", r->parameters);
2135 ndr->depth--;
2136 ndr_print_ptr(ndr, "secdesc", r->secdesc);
2137 ndr->depth++;
2138 if (r->secdesc) {
2139 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
2141 ndr->depth--;
2142 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
2143 ndr_print_uint32(ndr, "priority", r->priority);
2144 ndr_print_uint32(ndr, "defaultpriority", r->defaultpriority);
2145 ndr_print_uint32(ndr, "starttime", r->starttime);
2146 ndr_print_uint32(ndr, "untiltime", r->untiltime);
2147 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
2148 ndr_print_uint32(ndr, "cjobs", r->cjobs);
2149 ndr_print_uint32(ndr, "averageppm", r->averageppm);
2150 ndr->depth--;
2153 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo2(const struct spoolss_PrinterInfo2 *r, struct smb_iconv_convenience *ic, int flags)
2155 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo2, ic);
2158 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo3 *r)
2160 if (ndr_flags & NDR_SCALARS) {
2161 NDR_CHECK(ndr_push_align(ndr, 5));
2162 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
2163 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2165 if (ndr_flags & NDR_BUFFERS) {
2166 if (r->secdesc) {
2167 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->secdesc));
2169 struct ndr_push *_ndr_secdesc;
2170 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
2171 NDR_CHECK(ndr_push_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
2172 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
2176 return NDR_ERR_SUCCESS;
2179 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo3 *r)
2181 uint32_t _ptr_secdesc;
2182 TALLOC_CTX *_mem_save_secdesc_0;
2183 if (ndr_flags & NDR_SCALARS) {
2184 NDR_CHECK(ndr_pull_align(ndr, 5));
2185 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
2186 if (_ptr_secdesc) {
2187 NDR_PULL_ALLOC(ndr, r->secdesc);
2188 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
2189 } else {
2190 r->secdesc = NULL;
2192 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2194 if (ndr_flags & NDR_BUFFERS) {
2195 if (r->secdesc) {
2196 uint32_t _relative_save_offset;
2197 _relative_save_offset = ndr->offset;
2198 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
2199 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
2200 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
2202 struct ndr_pull *_ndr_secdesc;
2203 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
2204 NDR_CHECK(ndr_pull_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
2205 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
2207 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
2208 ndr->offset = _relative_save_offset;
2211 return NDR_ERR_SUCCESS;
2214 _PUBLIC_ void ndr_print_spoolss_PrinterInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo3 *r)
2216 ndr_print_struct(ndr, name, "spoolss_PrinterInfo3");
2217 ndr->depth++;
2218 ndr_print_ptr(ndr, "secdesc", r->secdesc);
2219 ndr->depth++;
2220 if (r->secdesc) {
2221 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
2223 ndr->depth--;
2224 ndr->depth--;
2227 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo3(const struct spoolss_PrinterInfo3 *r, struct smb_iconv_convenience *ic, int flags)
2229 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo3, ic);
2232 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo4 *r)
2234 if (ndr_flags & NDR_SCALARS) {
2235 NDR_CHECK(ndr_push_align(ndr, 5));
2237 uint32_t _flags_save_string = ndr->flags;
2238 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2239 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
2240 ndr->flags = _flags_save_string;
2243 uint32_t _flags_save_string = ndr->flags;
2244 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2245 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->servername));
2246 ndr->flags = _flags_save_string;
2248 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
2249 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2251 if (ndr_flags & NDR_BUFFERS) {
2253 uint32_t _flags_save_string = ndr->flags;
2254 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2255 if (r->printername) {
2256 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printername));
2257 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
2259 ndr->flags = _flags_save_string;
2262 uint32_t _flags_save_string = ndr->flags;
2263 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2264 if (r->servername) {
2265 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->servername));
2266 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->servername));
2268 ndr->flags = _flags_save_string;
2271 return NDR_ERR_SUCCESS;
2274 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo4 *r)
2276 uint32_t _ptr_printername;
2277 TALLOC_CTX *_mem_save_printername_0;
2278 uint32_t _ptr_servername;
2279 TALLOC_CTX *_mem_save_servername_0;
2280 if (ndr_flags & NDR_SCALARS) {
2281 NDR_CHECK(ndr_pull_align(ndr, 5));
2283 uint32_t _flags_save_string = ndr->flags;
2284 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2285 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
2286 if (_ptr_printername) {
2287 NDR_PULL_ALLOC(ndr, r->printername);
2288 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
2289 } else {
2290 r->printername = NULL;
2292 ndr->flags = _flags_save_string;
2295 uint32_t _flags_save_string = ndr->flags;
2296 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2297 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
2298 if (_ptr_servername) {
2299 NDR_PULL_ALLOC(ndr, r->servername);
2300 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
2301 } else {
2302 r->servername = NULL;
2304 ndr->flags = _flags_save_string;
2306 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
2307 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2309 if (ndr_flags & NDR_BUFFERS) {
2311 uint32_t _flags_save_string = ndr->flags;
2312 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2313 if (r->printername) {
2314 uint32_t _relative_save_offset;
2315 _relative_save_offset = ndr->offset;
2316 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
2317 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
2318 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
2319 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
2320 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
2321 ndr->offset = _relative_save_offset;
2323 ndr->flags = _flags_save_string;
2326 uint32_t _flags_save_string = ndr->flags;
2327 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2328 if (r->servername) {
2329 uint32_t _relative_save_offset;
2330 _relative_save_offset = ndr->offset;
2331 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
2332 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
2333 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
2334 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
2335 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
2336 ndr->offset = _relative_save_offset;
2338 ndr->flags = _flags_save_string;
2341 return NDR_ERR_SUCCESS;
2344 _PUBLIC_ void ndr_print_spoolss_PrinterInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo4 *r)
2346 ndr_print_struct(ndr, name, "spoolss_PrinterInfo4");
2347 ndr->depth++;
2348 ndr_print_ptr(ndr, "printername", r->printername);
2349 ndr->depth++;
2350 if (r->printername) {
2351 ndr_print_string(ndr, "printername", r->printername);
2353 ndr->depth--;
2354 ndr_print_ptr(ndr, "servername", r->servername);
2355 ndr->depth++;
2356 if (r->servername) {
2357 ndr_print_string(ndr, "servername", r->servername);
2359 ndr->depth--;
2360 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
2361 ndr->depth--;
2364 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo4(const struct spoolss_PrinterInfo4 *r, struct smb_iconv_convenience *ic, int flags)
2366 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo4, ic);
2369 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo5 *r)
2371 if (ndr_flags & NDR_SCALARS) {
2372 NDR_CHECK(ndr_push_align(ndr, 5));
2374 uint32_t _flags_save_string = ndr->flags;
2375 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2376 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
2377 ndr->flags = _flags_save_string;
2380 uint32_t _flags_save_string = ndr->flags;
2381 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2382 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->portname));
2383 ndr->flags = _flags_save_string;
2385 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
2386 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->device_not_selected_timeout));
2387 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->transmission_retry_timeout));
2388 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2390 if (ndr_flags & NDR_BUFFERS) {
2392 uint32_t _flags_save_string = ndr->flags;
2393 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2394 if (r->printername) {
2395 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printername));
2396 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
2398 ndr->flags = _flags_save_string;
2401 uint32_t _flags_save_string = ndr->flags;
2402 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2403 if (r->portname) {
2404 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->portname));
2405 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->portname));
2407 ndr->flags = _flags_save_string;
2410 return NDR_ERR_SUCCESS;
2413 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo5 *r)
2415 uint32_t _ptr_printername;
2416 TALLOC_CTX *_mem_save_printername_0;
2417 uint32_t _ptr_portname;
2418 TALLOC_CTX *_mem_save_portname_0;
2419 if (ndr_flags & NDR_SCALARS) {
2420 NDR_CHECK(ndr_pull_align(ndr, 5));
2422 uint32_t _flags_save_string = ndr->flags;
2423 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2424 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
2425 if (_ptr_printername) {
2426 NDR_PULL_ALLOC(ndr, r->printername);
2427 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
2428 } else {
2429 r->printername = NULL;
2431 ndr->flags = _flags_save_string;
2434 uint32_t _flags_save_string = ndr->flags;
2435 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2436 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
2437 if (_ptr_portname) {
2438 NDR_PULL_ALLOC(ndr, r->portname);
2439 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->portname, _ptr_portname));
2440 } else {
2441 r->portname = NULL;
2443 ndr->flags = _flags_save_string;
2445 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
2446 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->device_not_selected_timeout));
2447 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->transmission_retry_timeout));
2448 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2450 if (ndr_flags & NDR_BUFFERS) {
2452 uint32_t _flags_save_string = ndr->flags;
2453 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2454 if (r->printername) {
2455 uint32_t _relative_save_offset;
2456 _relative_save_offset = ndr->offset;
2457 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
2458 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
2459 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
2460 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
2461 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
2462 ndr->offset = _relative_save_offset;
2464 ndr->flags = _flags_save_string;
2467 uint32_t _flags_save_string = ndr->flags;
2468 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2469 if (r->portname) {
2470 uint32_t _relative_save_offset;
2471 _relative_save_offset = ndr->offset;
2472 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->portname));
2473 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
2474 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
2475 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->portname));
2476 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
2477 ndr->offset = _relative_save_offset;
2479 ndr->flags = _flags_save_string;
2482 return NDR_ERR_SUCCESS;
2485 _PUBLIC_ void ndr_print_spoolss_PrinterInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo5 *r)
2487 ndr_print_struct(ndr, name, "spoolss_PrinterInfo5");
2488 ndr->depth++;
2489 ndr_print_ptr(ndr, "printername", r->printername);
2490 ndr->depth++;
2491 if (r->printername) {
2492 ndr_print_string(ndr, "printername", r->printername);
2494 ndr->depth--;
2495 ndr_print_ptr(ndr, "portname", r->portname);
2496 ndr->depth++;
2497 if (r->portname) {
2498 ndr_print_string(ndr, "portname", r->portname);
2500 ndr->depth--;
2501 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
2502 ndr_print_uint32(ndr, "device_not_selected_timeout", r->device_not_selected_timeout);
2503 ndr_print_uint32(ndr, "transmission_retry_timeout", r->transmission_retry_timeout);
2504 ndr->depth--;
2507 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo5(const struct spoolss_PrinterInfo5 *r, struct smb_iconv_convenience *ic, int flags)
2509 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo5, ic);
2512 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo6 *r)
2514 if (ndr_flags & NDR_SCALARS) {
2515 NDR_CHECK(ndr_push_align(ndr, 4));
2516 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
2517 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
2519 if (ndr_flags & NDR_BUFFERS) {
2521 return NDR_ERR_SUCCESS;
2524 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo6 *r)
2526 if (ndr_flags & NDR_SCALARS) {
2527 NDR_CHECK(ndr_pull_align(ndr, 4));
2528 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
2529 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
2531 if (ndr_flags & NDR_BUFFERS) {
2533 return NDR_ERR_SUCCESS;
2536 _PUBLIC_ void ndr_print_spoolss_PrinterInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo6 *r)
2538 ndr_print_struct(ndr, name, "spoolss_PrinterInfo6");
2539 ndr->depth++;
2540 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
2541 ndr->depth--;
2544 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo6(const struct spoolss_PrinterInfo6 *r, struct smb_iconv_convenience *ic, int flags)
2546 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo6, ic);
2549 static enum ndr_err_code ndr_push_spoolss_DsPrintAction(struct ndr_push *ndr, int ndr_flags, uint32_t r)
2551 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
2552 return NDR_ERR_SUCCESS;
2555 static enum ndr_err_code ndr_pull_spoolss_DsPrintAction(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
2557 uint32_t v;
2558 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
2559 *r = v;
2560 return NDR_ERR_SUCCESS;
2563 _PUBLIC_ void ndr_print_spoolss_DsPrintAction(struct ndr_print *ndr, const char *name, uint32_t r)
2565 ndr_print_uint32(ndr, name, r);
2566 ndr->depth++;
2567 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_PUBLISH", DSPRINT_PUBLISH, r);
2568 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_UPDATE", DSPRINT_UPDATE, r);
2569 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_UNPUBLISH", DSPRINT_UNPUBLISH, r);
2570 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_REPUBLISH", DSPRINT_REPUBLISH, r);
2571 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_PENDING", DSPRINT_PENDING, r);
2572 ndr->depth--;
2575 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo7(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo7 *r)
2577 if (ndr_flags & NDR_SCALARS) {
2578 NDR_CHECK(ndr_push_align(ndr, 5));
2580 uint32_t _flags_save_string = ndr->flags;
2581 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2582 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->guid));
2583 ndr->flags = _flags_save_string;
2585 NDR_CHECK(ndr_push_spoolss_DsPrintAction(ndr, NDR_SCALARS, r->action));
2586 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2588 if (ndr_flags & NDR_BUFFERS) {
2590 uint32_t _flags_save_string = ndr->flags;
2591 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2592 if (r->guid) {
2593 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->guid));
2594 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->guid));
2596 ndr->flags = _flags_save_string;
2599 return NDR_ERR_SUCCESS;
2602 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo7(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo7 *r)
2604 uint32_t _ptr_guid;
2605 TALLOC_CTX *_mem_save_guid_0;
2606 if (ndr_flags & NDR_SCALARS) {
2607 NDR_CHECK(ndr_pull_align(ndr, 5));
2609 uint32_t _flags_save_string = ndr->flags;
2610 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2611 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_guid));
2612 if (_ptr_guid) {
2613 NDR_PULL_ALLOC(ndr, r->guid);
2614 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->guid, _ptr_guid));
2615 } else {
2616 r->guid = NULL;
2618 ndr->flags = _flags_save_string;
2620 NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr, NDR_SCALARS, &r->action));
2621 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2623 if (ndr_flags & NDR_BUFFERS) {
2625 uint32_t _flags_save_string = ndr->flags;
2626 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2627 if (r->guid) {
2628 uint32_t _relative_save_offset;
2629 _relative_save_offset = ndr->offset;
2630 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->guid));
2631 _mem_save_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
2632 NDR_PULL_SET_MEM_CTX(ndr, r->guid, 0);
2633 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->guid));
2634 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_guid_0, 0);
2635 ndr->offset = _relative_save_offset;
2637 ndr->flags = _flags_save_string;
2640 return NDR_ERR_SUCCESS;
2643 _PUBLIC_ void ndr_print_spoolss_PrinterInfo7(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo7 *r)
2645 ndr_print_struct(ndr, name, "spoolss_PrinterInfo7");
2646 ndr->depth++;
2647 ndr_print_ptr(ndr, "guid", r->guid);
2648 ndr->depth++;
2649 if (r->guid) {
2650 ndr_print_string(ndr, "guid", r->guid);
2652 ndr->depth--;
2653 ndr_print_spoolss_DsPrintAction(ndr, "action", r->action);
2654 ndr->depth--;
2657 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo7(const struct spoolss_PrinterInfo7 *r, struct smb_iconv_convenience *ic, int flags)
2659 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo7, ic);
2662 static enum ndr_err_code ndr_push_spoolss_DeviceModeInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DeviceModeInfo *r)
2664 if (ndr_flags & NDR_SCALARS) {
2665 NDR_CHECK(ndr_push_align(ndr, 5));
2666 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
2667 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2669 if (ndr_flags & NDR_BUFFERS) {
2670 if (r->devmode) {
2671 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->devmode));
2673 struct ndr_push *_ndr_devmode;
2674 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
2675 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2676 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
2680 return NDR_ERR_SUCCESS;
2683 static enum ndr_err_code ndr_pull_spoolss_DeviceModeInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DeviceModeInfo *r)
2685 uint32_t _ptr_devmode;
2686 TALLOC_CTX *_mem_save_devmode_0;
2687 if (ndr_flags & NDR_SCALARS) {
2688 NDR_CHECK(ndr_pull_align(ndr, 5));
2689 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
2690 if (_ptr_devmode) {
2691 NDR_PULL_ALLOC(ndr, r->devmode);
2692 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
2693 } else {
2694 r->devmode = NULL;
2696 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2698 if (ndr_flags & NDR_BUFFERS) {
2699 if (r->devmode) {
2700 uint32_t _relative_save_offset;
2701 _relative_save_offset = ndr->offset;
2702 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
2703 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
2704 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
2706 struct ndr_pull *_ndr_devmode;
2707 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
2708 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2709 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
2711 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
2712 ndr->offset = _relative_save_offset;
2715 return NDR_ERR_SUCCESS;
2718 _PUBLIC_ void ndr_print_spoolss_DeviceModeInfo(struct ndr_print *ndr, const char *name, const struct spoolss_DeviceModeInfo *r)
2720 ndr_print_struct(ndr, name, "spoolss_DeviceModeInfo");
2721 ndr->depth++;
2722 ndr_print_ptr(ndr, "devmode", r->devmode);
2723 ndr->depth++;
2724 if (r->devmode) {
2725 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
2727 ndr->depth--;
2728 ndr->depth--;
2731 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrinterInfo *r)
2733 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
2734 if (ndr_flags & NDR_SCALARS) {
2735 int level = ndr_push_get_switch_value(ndr, r);
2736 NDR_CHECK(ndr_push_union_align(ndr, 5));
2737 switch (level) {
2738 case 0: {
2739 NDR_CHECK(ndr_push_align(ndr, 5));
2740 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2741 NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr, NDR_SCALARS, &r->info0));
2742 break; }
2744 case 1: {
2745 NDR_CHECK(ndr_push_align(ndr, 5));
2746 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2747 NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr, NDR_SCALARS, &r->info1));
2748 break; }
2750 case 2: {
2751 NDR_CHECK(ndr_push_align(ndr, 5));
2752 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2753 NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr, NDR_SCALARS, &r->info2));
2754 break; }
2756 case 3: {
2757 NDR_CHECK(ndr_push_align(ndr, 5));
2758 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2759 NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr, NDR_SCALARS, &r->info3));
2760 break; }
2762 case 4: {
2763 NDR_CHECK(ndr_push_align(ndr, 5));
2764 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2765 NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr, NDR_SCALARS, &r->info4));
2766 break; }
2768 case 5: {
2769 NDR_CHECK(ndr_push_align(ndr, 5));
2770 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2771 NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr, NDR_SCALARS, &r->info5));
2772 break; }
2774 case 6: {
2775 NDR_CHECK(ndr_push_align(ndr, 4));
2776 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2777 NDR_CHECK(ndr_push_spoolss_PrinterInfo6(ndr, NDR_SCALARS, &r->info6));
2778 break; }
2780 case 7: {
2781 NDR_CHECK(ndr_push_align(ndr, 5));
2782 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2783 NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr, NDR_SCALARS, &r->info7));
2784 break; }
2786 case 8: {
2787 NDR_CHECK(ndr_push_align(ndr, 5));
2788 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2789 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info8));
2790 break; }
2792 case 9: {
2793 NDR_CHECK(ndr_push_align(ndr, 5));
2794 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2795 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info9));
2796 break; }
2798 default: {
2799 break; }
2803 if (ndr_flags & NDR_BUFFERS) {
2804 int level = ndr_push_get_switch_value(ndr, r);
2805 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
2806 switch (level) {
2807 case 0:
2808 NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr, NDR_BUFFERS, &r->info0));
2809 break;
2811 case 1:
2812 NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr, NDR_BUFFERS, &r->info1));
2813 break;
2815 case 2:
2816 NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr, NDR_BUFFERS, &r->info2));
2817 break;
2819 case 3:
2820 NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr, NDR_BUFFERS, &r->info3));
2821 break;
2823 case 4:
2824 NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr, NDR_BUFFERS, &r->info4));
2825 break;
2827 case 5:
2828 NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr, NDR_BUFFERS, &r->info5));
2829 break;
2831 case 6:
2832 break;
2834 case 7:
2835 NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr, NDR_BUFFERS, &r->info7));
2836 break;
2838 case 8:
2839 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info8));
2840 break;
2842 case 9:
2843 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info9));
2844 break;
2846 default:
2847 break;
2851 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
2852 return NDR_ERR_SUCCESS;
2855 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrinterInfo *r)
2857 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
2858 int level;
2859 level = ndr_pull_get_switch_value(ndr, r);
2860 if (ndr_flags & NDR_SCALARS) {
2861 NDR_CHECK(ndr_pull_union_align(ndr, 5));
2862 switch (level) {
2863 case 0: {
2864 NDR_CHECK(ndr_pull_align(ndr, 5));
2865 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2866 NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr, NDR_SCALARS, &r->info0));
2867 break; }
2869 case 1: {
2870 NDR_CHECK(ndr_pull_align(ndr, 5));
2871 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2872 NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr, NDR_SCALARS, &r->info1));
2873 break; }
2875 case 2: {
2876 NDR_CHECK(ndr_pull_align(ndr, 5));
2877 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2878 NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr, NDR_SCALARS, &r->info2));
2879 break; }
2881 case 3: {
2882 NDR_CHECK(ndr_pull_align(ndr, 5));
2883 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2884 NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr, NDR_SCALARS, &r->info3));
2885 break; }
2887 case 4: {
2888 NDR_CHECK(ndr_pull_align(ndr, 5));
2889 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2890 NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr, NDR_SCALARS, &r->info4));
2891 break; }
2893 case 5: {
2894 NDR_CHECK(ndr_pull_align(ndr, 5));
2895 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2896 NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr, NDR_SCALARS, &r->info5));
2897 break; }
2899 case 6: {
2900 NDR_CHECK(ndr_pull_align(ndr, 4));
2901 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2902 NDR_CHECK(ndr_pull_spoolss_PrinterInfo6(ndr, NDR_SCALARS, &r->info6));
2903 break; }
2905 case 7: {
2906 NDR_CHECK(ndr_pull_align(ndr, 5));
2907 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2908 NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr, NDR_SCALARS, &r->info7));
2909 break; }
2911 case 8: {
2912 NDR_CHECK(ndr_pull_align(ndr, 5));
2913 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2914 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info8));
2915 break; }
2917 case 9: {
2918 NDR_CHECK(ndr_pull_align(ndr, 5));
2919 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2920 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info9));
2921 break; }
2923 default: {
2924 break; }
2928 if (ndr_flags & NDR_BUFFERS) {
2929 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
2930 switch (level) {
2931 case 0:
2932 NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr, NDR_BUFFERS, &r->info0));
2933 break;
2935 case 1:
2936 NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr, NDR_BUFFERS, &r->info1));
2937 break;
2939 case 2:
2940 NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr, NDR_BUFFERS, &r->info2));
2941 break;
2943 case 3:
2944 NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr, NDR_BUFFERS, &r->info3));
2945 break;
2947 case 4:
2948 NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr, NDR_BUFFERS, &r->info4));
2949 break;
2951 case 5:
2952 NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr, NDR_BUFFERS, &r->info5));
2953 break;
2955 case 6:
2956 break;
2958 case 7:
2959 NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr, NDR_BUFFERS, &r->info7));
2960 break;
2962 case 8:
2963 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info8));
2964 break;
2966 case 9:
2967 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info9));
2968 break;
2970 default:
2971 break;
2975 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
2976 return NDR_ERR_SUCCESS;
2979 _PUBLIC_ void ndr_print_spoolss_PrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrinterInfo *r)
2981 int level;
2982 level = ndr_print_get_switch_value(ndr, r);
2983 ndr_print_union(ndr, name, level, "spoolss_PrinterInfo");
2984 switch (level) {
2985 case 0:
2986 ndr_print_spoolss_PrinterInfo0(ndr, "info0", &r->info0);
2987 break;
2989 case 1:
2990 ndr_print_spoolss_PrinterInfo1(ndr, "info1", &r->info1);
2991 break;
2993 case 2:
2994 ndr_print_spoolss_PrinterInfo2(ndr, "info2", &r->info2);
2995 break;
2997 case 3:
2998 ndr_print_spoolss_PrinterInfo3(ndr, "info3", &r->info3);
2999 break;
3001 case 4:
3002 ndr_print_spoolss_PrinterInfo4(ndr, "info4", &r->info4);
3003 break;
3005 case 5:
3006 ndr_print_spoolss_PrinterInfo5(ndr, "info5", &r->info5);
3007 break;
3009 case 6:
3010 ndr_print_spoolss_PrinterInfo6(ndr, "info6", &r->info6);
3011 break;
3013 case 7:
3014 ndr_print_spoolss_PrinterInfo7(ndr, "info7", &r->info7);
3015 break;
3017 case 8:
3018 ndr_print_spoolss_DeviceModeInfo(ndr, "info8", &r->info8);
3019 break;
3021 case 9:
3022 ndr_print_spoolss_DeviceModeInfo(ndr, "info9", &r->info9);
3023 break;
3025 default:
3026 break;
3031 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo(const union spoolss_PrinterInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
3033 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo, ic);
3036 static enum ndr_err_code ndr_push_spoolss_DevmodeContainer(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DevmodeContainer *r)
3038 if (ndr_flags & NDR_SCALARS) {
3039 NDR_CHECK(ndr_push_align(ndr, 5));
3040 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags)));
3041 NDR_CHECK(ndr_push_unique_ptr(ndr, r->devmode));
3042 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
3044 if (ndr_flags & NDR_BUFFERS) {
3045 if (r->devmode) {
3047 struct ndr_push *_ndr_devmode;
3048 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 4, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags)));
3049 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
3050 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 4, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags)));
3054 return NDR_ERR_SUCCESS;
3057 static enum ndr_err_code ndr_pull_spoolss_DevmodeContainer(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DevmodeContainer *r)
3059 uint32_t _ptr_devmode;
3060 TALLOC_CTX *_mem_save_devmode_0;
3061 if (ndr_flags & NDR_SCALARS) {
3062 NDR_CHECK(ndr_pull_align(ndr, 5));
3063 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
3064 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
3065 if (_ptr_devmode) {
3066 NDR_PULL_ALLOC(ndr, r->devmode);
3067 } else {
3068 r->devmode = NULL;
3070 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
3072 if (ndr_flags & NDR_BUFFERS) {
3073 if (r->devmode) {
3074 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
3075 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
3077 struct ndr_pull *_ndr_devmode;
3078 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 4, r->_ndr_size));
3079 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
3080 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 4, r->_ndr_size));
3082 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
3085 return NDR_ERR_SUCCESS;
3088 _PUBLIC_ void ndr_print_spoolss_DevmodeContainer(struct ndr_print *ndr, const char *name, const struct spoolss_DevmodeContainer *r)
3090 ndr_print_struct(ndr, name, "spoolss_DevmodeContainer");
3091 ndr->depth++;
3092 ndr_print_uint32(ndr, "_ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?_ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags):r->_ndr_size);
3093 ndr_print_ptr(ndr, "devmode", r->devmode);
3094 ndr->depth++;
3095 if (r->devmode) {
3096 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
3098 ndr->depth--;
3099 ndr->depth--;
3102 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo1 *r)
3104 if (ndr_flags & NDR_SCALARS) {
3105 NDR_CHECK(ndr_push_align(ndr, 5));
3106 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
3108 uint32_t _flags_save_string = ndr->flags;
3109 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3110 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printer_name));
3111 ndr->flags = _flags_save_string;
3114 uint32_t _flags_save_string = ndr->flags;
3115 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3116 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->server_name));
3117 ndr->flags = _flags_save_string;
3120 uint32_t _flags_save_string = ndr->flags;
3121 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3122 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->user_name));
3123 ndr->flags = _flags_save_string;
3126 uint32_t _flags_save_string = ndr->flags;
3127 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3128 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->document_name));
3129 ndr->flags = _flags_save_string;
3132 uint32_t _flags_save_string = ndr->flags;
3133 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3134 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_type));
3135 ndr->flags = _flags_save_string;
3138 uint32_t _flags_save_string = ndr->flags;
3139 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3140 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->text_status));
3141 ndr->flags = _flags_save_string;
3143 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
3144 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
3145 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
3146 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
3147 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
3148 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
3149 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
3151 if (ndr_flags & NDR_BUFFERS) {
3153 uint32_t _flags_save_string = ndr->flags;
3154 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3155 if (r->printer_name) {
3156 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printer_name));
3157 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printer_name));
3159 ndr->flags = _flags_save_string;
3162 uint32_t _flags_save_string = ndr->flags;
3163 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3164 if (r->server_name) {
3165 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->server_name));
3166 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server_name));
3168 ndr->flags = _flags_save_string;
3171 uint32_t _flags_save_string = ndr->flags;
3172 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3173 if (r->user_name) {
3174 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->user_name));
3175 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
3177 ndr->flags = _flags_save_string;
3180 uint32_t _flags_save_string = ndr->flags;
3181 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3182 if (r->document_name) {
3183 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->document_name));
3184 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->document_name));
3186 ndr->flags = _flags_save_string;
3189 uint32_t _flags_save_string = ndr->flags;
3190 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3191 if (r->data_type) {
3192 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_type));
3193 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_type));
3195 ndr->flags = _flags_save_string;
3198 uint32_t _flags_save_string = ndr->flags;
3199 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3200 if (r->text_status) {
3201 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->text_status));
3202 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->text_status));
3204 ndr->flags = _flags_save_string;
3207 return NDR_ERR_SUCCESS;
3210 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo1 *r)
3212 uint32_t _ptr_printer_name;
3213 TALLOC_CTX *_mem_save_printer_name_0;
3214 uint32_t _ptr_server_name;
3215 TALLOC_CTX *_mem_save_server_name_0;
3216 uint32_t _ptr_user_name;
3217 TALLOC_CTX *_mem_save_user_name_0;
3218 uint32_t _ptr_document_name;
3219 TALLOC_CTX *_mem_save_document_name_0;
3220 uint32_t _ptr_data_type;
3221 TALLOC_CTX *_mem_save_data_type_0;
3222 uint32_t _ptr_text_status;
3223 TALLOC_CTX *_mem_save_text_status_0;
3224 if (ndr_flags & NDR_SCALARS) {
3225 NDR_CHECK(ndr_pull_align(ndr, 5));
3226 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
3228 uint32_t _flags_save_string = ndr->flags;
3229 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3230 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
3231 if (_ptr_printer_name) {
3232 NDR_PULL_ALLOC(ndr, r->printer_name);
3233 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printer_name, _ptr_printer_name));
3234 } else {
3235 r->printer_name = NULL;
3237 ndr->flags = _flags_save_string;
3240 uint32_t _flags_save_string = ndr->flags;
3241 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3242 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
3243 if (_ptr_server_name) {
3244 NDR_PULL_ALLOC(ndr, r->server_name);
3245 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->server_name, _ptr_server_name));
3246 } else {
3247 r->server_name = NULL;
3249 ndr->flags = _flags_save_string;
3252 uint32_t _flags_save_string = ndr->flags;
3253 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3254 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
3255 if (_ptr_user_name) {
3256 NDR_PULL_ALLOC(ndr, r->user_name);
3257 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->user_name, _ptr_user_name));
3258 } else {
3259 r->user_name = NULL;
3261 ndr->flags = _flags_save_string;
3264 uint32_t _flags_save_string = ndr->flags;
3265 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3266 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
3267 if (_ptr_document_name) {
3268 NDR_PULL_ALLOC(ndr, r->document_name);
3269 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->document_name, _ptr_document_name));
3270 } else {
3271 r->document_name = NULL;
3273 ndr->flags = _flags_save_string;
3276 uint32_t _flags_save_string = ndr->flags;
3277 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3278 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
3279 if (_ptr_data_type) {
3280 NDR_PULL_ALLOC(ndr, r->data_type);
3281 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_type, _ptr_data_type));
3282 } else {
3283 r->data_type = NULL;
3285 ndr->flags = _flags_save_string;
3288 uint32_t _flags_save_string = ndr->flags;
3289 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3290 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
3291 if (_ptr_text_status) {
3292 NDR_PULL_ALLOC(ndr, r->text_status);
3293 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->text_status, _ptr_text_status));
3294 } else {
3295 r->text_status = NULL;
3297 ndr->flags = _flags_save_string;
3299 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
3300 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
3301 if (r->priority > 99) {
3302 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
3304 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
3305 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
3306 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
3307 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
3308 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
3310 if (ndr_flags & NDR_BUFFERS) {
3312 uint32_t _flags_save_string = ndr->flags;
3313 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3314 if (r->printer_name) {
3315 uint32_t _relative_save_offset;
3316 _relative_save_offset = ndr->offset;
3317 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printer_name));
3318 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3319 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
3320 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printer_name));
3321 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
3322 ndr->offset = _relative_save_offset;
3324 ndr->flags = _flags_save_string;
3327 uint32_t _flags_save_string = ndr->flags;
3328 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3329 if (r->server_name) {
3330 uint32_t _relative_save_offset;
3331 _relative_save_offset = ndr->offset;
3332 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->server_name));
3333 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3334 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
3335 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->server_name));
3336 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
3337 ndr->offset = _relative_save_offset;
3339 ndr->flags = _flags_save_string;
3342 uint32_t _flags_save_string = ndr->flags;
3343 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3344 if (r->user_name) {
3345 uint32_t _relative_save_offset;
3346 _relative_save_offset = ndr->offset;
3347 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->user_name));
3348 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3349 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
3350 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
3351 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
3352 ndr->offset = _relative_save_offset;
3354 ndr->flags = _flags_save_string;
3357 uint32_t _flags_save_string = ndr->flags;
3358 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3359 if (r->document_name) {
3360 uint32_t _relative_save_offset;
3361 _relative_save_offset = ndr->offset;
3362 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->document_name));
3363 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3364 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
3365 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->document_name));
3366 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
3367 ndr->offset = _relative_save_offset;
3369 ndr->flags = _flags_save_string;
3372 uint32_t _flags_save_string = ndr->flags;
3373 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3374 if (r->data_type) {
3375 uint32_t _relative_save_offset;
3376 _relative_save_offset = ndr->offset;
3377 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_type));
3378 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
3379 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
3380 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_type));
3381 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
3382 ndr->offset = _relative_save_offset;
3384 ndr->flags = _flags_save_string;
3387 uint32_t _flags_save_string = ndr->flags;
3388 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3389 if (r->text_status) {
3390 uint32_t _relative_save_offset;
3391 _relative_save_offset = ndr->offset;
3392 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->text_status));
3393 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
3394 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
3395 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->text_status));
3396 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
3397 ndr->offset = _relative_save_offset;
3399 ndr->flags = _flags_save_string;
3402 return NDR_ERR_SUCCESS;
3405 _PUBLIC_ void ndr_print_spoolss_JobInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo1 *r)
3407 ndr_print_struct(ndr, name, "spoolss_JobInfo1");
3408 ndr->depth++;
3409 ndr_print_uint32(ndr, "job_id", r->job_id);
3410 ndr_print_ptr(ndr, "printer_name", r->printer_name);
3411 ndr->depth++;
3412 if (r->printer_name) {
3413 ndr_print_string(ndr, "printer_name", r->printer_name);
3415 ndr->depth--;
3416 ndr_print_ptr(ndr, "server_name", r->server_name);
3417 ndr->depth++;
3418 if (r->server_name) {
3419 ndr_print_string(ndr, "server_name", r->server_name);
3421 ndr->depth--;
3422 ndr_print_ptr(ndr, "user_name", r->user_name);
3423 ndr->depth++;
3424 if (r->user_name) {
3425 ndr_print_string(ndr, "user_name", r->user_name);
3427 ndr->depth--;
3428 ndr_print_ptr(ndr, "document_name", r->document_name);
3429 ndr->depth++;
3430 if (r->document_name) {
3431 ndr_print_string(ndr, "document_name", r->document_name);
3433 ndr->depth--;
3434 ndr_print_ptr(ndr, "data_type", r->data_type);
3435 ndr->depth++;
3436 if (r->data_type) {
3437 ndr_print_string(ndr, "data_type", r->data_type);
3439 ndr->depth--;
3440 ndr_print_ptr(ndr, "text_status", r->text_status);
3441 ndr->depth++;
3442 if (r->text_status) {
3443 ndr_print_string(ndr, "text_status", r->text_status);
3445 ndr->depth--;
3446 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
3447 ndr_print_uint32(ndr, "priority", r->priority);
3448 ndr_print_uint32(ndr, "position", r->position);
3449 ndr_print_uint32(ndr, "total_pages", r->total_pages);
3450 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
3451 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
3452 ndr->depth--;
3455 _PUBLIC_ size_t ndr_size_spoolss_JobInfo1(const struct spoolss_JobInfo1 *r, struct smb_iconv_convenience *ic, int flags)
3457 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo1, ic);
3460 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo2 *r)
3462 if (ndr_flags & NDR_SCALARS) {
3463 NDR_CHECK(ndr_push_align(ndr, 5));
3464 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
3466 uint32_t _flags_save_string = ndr->flags;
3467 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3468 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printer_name));
3469 ndr->flags = _flags_save_string;
3472 uint32_t _flags_save_string = ndr->flags;
3473 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3474 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->server_name));
3475 ndr->flags = _flags_save_string;
3478 uint32_t _flags_save_string = ndr->flags;
3479 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3480 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->user_name));
3481 ndr->flags = _flags_save_string;
3484 uint32_t _flags_save_string = ndr->flags;
3485 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3486 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->document_name));
3487 ndr->flags = _flags_save_string;
3490 uint32_t _flags_save_string = ndr->flags;
3491 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3492 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->notify_name));
3493 ndr->flags = _flags_save_string;
3496 uint32_t _flags_save_string = ndr->flags;
3497 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3498 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_type));
3499 ndr->flags = _flags_save_string;
3502 uint32_t _flags_save_string = ndr->flags;
3503 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3504 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor));
3505 ndr->flags = _flags_save_string;
3508 uint32_t _flags_save_string = ndr->flags;
3509 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3510 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->parameters));
3511 ndr->flags = _flags_save_string;
3514 uint32_t _flags_save_string = ndr->flags;
3515 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3516 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
3517 ndr->flags = _flags_save_string;
3519 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
3521 uint32_t _flags_save_string = ndr->flags;
3522 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3523 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->text_status));
3524 ndr->flags = _flags_save_string;
3526 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
3527 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
3528 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
3529 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
3530 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
3531 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
3532 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
3533 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
3534 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
3535 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
3536 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
3537 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
3539 if (ndr_flags & NDR_BUFFERS) {
3541 uint32_t _flags_save_string = ndr->flags;
3542 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3543 if (r->printer_name) {
3544 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printer_name));
3545 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printer_name));
3547 ndr->flags = _flags_save_string;
3550 uint32_t _flags_save_string = ndr->flags;
3551 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3552 if (r->server_name) {
3553 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->server_name));
3554 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server_name));
3556 ndr->flags = _flags_save_string;
3559 uint32_t _flags_save_string = ndr->flags;
3560 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3561 if (r->user_name) {
3562 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->user_name));
3563 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
3565 ndr->flags = _flags_save_string;
3568 uint32_t _flags_save_string = ndr->flags;
3569 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3570 if (r->document_name) {
3571 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->document_name));
3572 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->document_name));
3574 ndr->flags = _flags_save_string;
3577 uint32_t _flags_save_string = ndr->flags;
3578 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3579 if (r->notify_name) {
3580 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->notify_name));
3581 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->notify_name));
3583 ndr->flags = _flags_save_string;
3586 uint32_t _flags_save_string = ndr->flags;
3587 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3588 if (r->data_type) {
3589 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_type));
3590 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_type));
3592 ndr->flags = _flags_save_string;
3595 uint32_t _flags_save_string = ndr->flags;
3596 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3597 if (r->print_processor) {
3598 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->print_processor));
3599 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor));
3601 ndr->flags = _flags_save_string;
3604 uint32_t _flags_save_string = ndr->flags;
3605 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3606 if (r->parameters) {
3607 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->parameters));
3608 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->parameters));
3610 ndr->flags = _flags_save_string;
3613 uint32_t _flags_save_string = ndr->flags;
3614 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3615 if (r->driver_name) {
3616 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
3617 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
3619 ndr->flags = _flags_save_string;
3621 if (r->devmode) {
3622 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->devmode));
3623 NDR_CHECK(ndr_push_spoolss_DeviceMode(ndr, NDR_SCALARS, r->devmode));
3626 uint32_t _flags_save_string = ndr->flags;
3627 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3628 if (r->text_status) {
3629 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->text_status));
3630 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->text_status));
3632 ndr->flags = _flags_save_string;
3634 if (r->secdesc) {
3635 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->secdesc));
3636 NDR_CHECK(ndr_push_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
3639 return NDR_ERR_SUCCESS;
3642 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo2 *r)
3644 uint32_t _ptr_printer_name;
3645 TALLOC_CTX *_mem_save_printer_name_0;
3646 uint32_t _ptr_server_name;
3647 TALLOC_CTX *_mem_save_server_name_0;
3648 uint32_t _ptr_user_name;
3649 TALLOC_CTX *_mem_save_user_name_0;
3650 uint32_t _ptr_document_name;
3651 TALLOC_CTX *_mem_save_document_name_0;
3652 uint32_t _ptr_notify_name;
3653 TALLOC_CTX *_mem_save_notify_name_0;
3654 uint32_t _ptr_data_type;
3655 TALLOC_CTX *_mem_save_data_type_0;
3656 uint32_t _ptr_print_processor;
3657 TALLOC_CTX *_mem_save_print_processor_0;
3658 uint32_t _ptr_parameters;
3659 TALLOC_CTX *_mem_save_parameters_0;
3660 uint32_t _ptr_driver_name;
3661 TALLOC_CTX *_mem_save_driver_name_0;
3662 uint32_t _ptr_devmode;
3663 TALLOC_CTX *_mem_save_devmode_0;
3664 uint32_t _ptr_text_status;
3665 TALLOC_CTX *_mem_save_text_status_0;
3666 uint32_t _ptr_secdesc;
3667 TALLOC_CTX *_mem_save_secdesc_0;
3668 if (ndr_flags & NDR_SCALARS) {
3669 NDR_CHECK(ndr_pull_align(ndr, 5));
3670 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
3672 uint32_t _flags_save_string = ndr->flags;
3673 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3674 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
3675 if (_ptr_printer_name) {
3676 NDR_PULL_ALLOC(ndr, r->printer_name);
3677 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printer_name, _ptr_printer_name));
3678 } else {
3679 r->printer_name = NULL;
3681 ndr->flags = _flags_save_string;
3684 uint32_t _flags_save_string = ndr->flags;
3685 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3686 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
3687 if (_ptr_server_name) {
3688 NDR_PULL_ALLOC(ndr, r->server_name);
3689 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->server_name, _ptr_server_name));
3690 } else {
3691 r->server_name = NULL;
3693 ndr->flags = _flags_save_string;
3696 uint32_t _flags_save_string = ndr->flags;
3697 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3698 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
3699 if (_ptr_user_name) {
3700 NDR_PULL_ALLOC(ndr, r->user_name);
3701 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->user_name, _ptr_user_name));
3702 } else {
3703 r->user_name = NULL;
3705 ndr->flags = _flags_save_string;
3708 uint32_t _flags_save_string = ndr->flags;
3709 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3710 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
3711 if (_ptr_document_name) {
3712 NDR_PULL_ALLOC(ndr, r->document_name);
3713 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->document_name, _ptr_document_name));
3714 } else {
3715 r->document_name = NULL;
3717 ndr->flags = _flags_save_string;
3720 uint32_t _flags_save_string = ndr->flags;
3721 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3722 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
3723 if (_ptr_notify_name) {
3724 NDR_PULL_ALLOC(ndr, r->notify_name);
3725 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->notify_name, _ptr_notify_name));
3726 } else {
3727 r->notify_name = NULL;
3729 ndr->flags = _flags_save_string;
3732 uint32_t _flags_save_string = ndr->flags;
3733 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3734 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
3735 if (_ptr_data_type) {
3736 NDR_PULL_ALLOC(ndr, r->data_type);
3737 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_type, _ptr_data_type));
3738 } else {
3739 r->data_type = NULL;
3741 ndr->flags = _flags_save_string;
3744 uint32_t _flags_save_string = ndr->flags;
3745 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3746 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
3747 if (_ptr_print_processor) {
3748 NDR_PULL_ALLOC(ndr, r->print_processor);
3749 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor, _ptr_print_processor));
3750 } else {
3751 r->print_processor = NULL;
3753 ndr->flags = _flags_save_string;
3756 uint32_t _flags_save_string = ndr->flags;
3757 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3758 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
3759 if (_ptr_parameters) {
3760 NDR_PULL_ALLOC(ndr, r->parameters);
3761 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->parameters, _ptr_parameters));
3762 } else {
3763 r->parameters = NULL;
3765 ndr->flags = _flags_save_string;
3768 uint32_t _flags_save_string = ndr->flags;
3769 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3770 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
3771 if (_ptr_driver_name) {
3772 NDR_PULL_ALLOC(ndr, r->driver_name);
3773 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
3774 } else {
3775 r->driver_name = NULL;
3777 ndr->flags = _flags_save_string;
3779 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
3780 if (_ptr_devmode) {
3781 NDR_PULL_ALLOC(ndr, r->devmode);
3782 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
3783 } else {
3784 r->devmode = NULL;
3787 uint32_t _flags_save_string = ndr->flags;
3788 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3789 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
3790 if (_ptr_text_status) {
3791 NDR_PULL_ALLOC(ndr, r->text_status);
3792 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->text_status, _ptr_text_status));
3793 } else {
3794 r->text_status = NULL;
3796 ndr->flags = _flags_save_string;
3798 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
3799 if (_ptr_secdesc) {
3800 NDR_PULL_ALLOC(ndr, r->secdesc);
3801 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
3802 } else {
3803 r->secdesc = NULL;
3805 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
3806 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
3807 if (r->priority > 99) {
3808 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
3810 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
3811 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
3812 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
3813 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
3814 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
3815 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
3816 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
3817 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
3818 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
3820 if (ndr_flags & NDR_BUFFERS) {
3822 uint32_t _flags_save_string = ndr->flags;
3823 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3824 if (r->printer_name) {
3825 uint32_t _relative_save_offset;
3826 _relative_save_offset = ndr->offset;
3827 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printer_name));
3828 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3829 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
3830 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printer_name));
3831 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
3832 ndr->offset = _relative_save_offset;
3834 ndr->flags = _flags_save_string;
3837 uint32_t _flags_save_string = ndr->flags;
3838 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3839 if (r->server_name) {
3840 uint32_t _relative_save_offset;
3841 _relative_save_offset = ndr->offset;
3842 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->server_name));
3843 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3844 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
3845 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->server_name));
3846 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
3847 ndr->offset = _relative_save_offset;
3849 ndr->flags = _flags_save_string;
3852 uint32_t _flags_save_string = ndr->flags;
3853 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3854 if (r->user_name) {
3855 uint32_t _relative_save_offset;
3856 _relative_save_offset = ndr->offset;
3857 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->user_name));
3858 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3859 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
3860 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
3861 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
3862 ndr->offset = _relative_save_offset;
3864 ndr->flags = _flags_save_string;
3867 uint32_t _flags_save_string = ndr->flags;
3868 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3869 if (r->document_name) {
3870 uint32_t _relative_save_offset;
3871 _relative_save_offset = ndr->offset;
3872 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->document_name));
3873 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3874 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
3875 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->document_name));
3876 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
3877 ndr->offset = _relative_save_offset;
3879 ndr->flags = _flags_save_string;
3882 uint32_t _flags_save_string = ndr->flags;
3883 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3884 if (r->notify_name) {
3885 uint32_t _relative_save_offset;
3886 _relative_save_offset = ndr->offset;
3887 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->notify_name));
3888 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3889 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
3890 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->notify_name));
3891 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
3892 ndr->offset = _relative_save_offset;
3894 ndr->flags = _flags_save_string;
3897 uint32_t _flags_save_string = ndr->flags;
3898 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3899 if (r->data_type) {
3900 uint32_t _relative_save_offset;
3901 _relative_save_offset = ndr->offset;
3902 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_type));
3903 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
3904 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
3905 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_type));
3906 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
3907 ndr->offset = _relative_save_offset;
3909 ndr->flags = _flags_save_string;
3912 uint32_t _flags_save_string = ndr->flags;
3913 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3914 if (r->print_processor) {
3915 uint32_t _relative_save_offset;
3916 _relative_save_offset = ndr->offset;
3917 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor));
3918 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
3919 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
3920 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor));
3921 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
3922 ndr->offset = _relative_save_offset;
3924 ndr->flags = _flags_save_string;
3927 uint32_t _flags_save_string = ndr->flags;
3928 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3929 if (r->parameters) {
3930 uint32_t _relative_save_offset;
3931 _relative_save_offset = ndr->offset;
3932 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->parameters));
3933 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
3934 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
3935 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->parameters));
3936 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
3937 ndr->offset = _relative_save_offset;
3939 ndr->flags = _flags_save_string;
3942 uint32_t _flags_save_string = ndr->flags;
3943 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3944 if (r->driver_name) {
3945 uint32_t _relative_save_offset;
3946 _relative_save_offset = ndr->offset;
3947 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
3948 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3949 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
3950 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
3951 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
3952 ndr->offset = _relative_save_offset;
3954 ndr->flags = _flags_save_string;
3956 if (r->devmode) {
3957 uint32_t _relative_save_offset;
3958 _relative_save_offset = ndr->offset;
3959 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
3960 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
3961 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
3962 NDR_CHECK(ndr_pull_spoolss_DeviceMode(ndr, NDR_SCALARS, r->devmode));
3963 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
3964 ndr->offset = _relative_save_offset;
3967 uint32_t _flags_save_string = ndr->flags;
3968 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3969 if (r->text_status) {
3970 uint32_t _relative_save_offset;
3971 _relative_save_offset = ndr->offset;
3972 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->text_status));
3973 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
3974 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
3975 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->text_status));
3976 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
3977 ndr->offset = _relative_save_offset;
3979 ndr->flags = _flags_save_string;
3981 if (r->secdesc) {
3982 uint32_t _relative_save_offset;
3983 _relative_save_offset = ndr->offset;
3984 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
3985 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
3986 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
3987 NDR_CHECK(ndr_pull_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
3988 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
3989 ndr->offset = _relative_save_offset;
3992 return NDR_ERR_SUCCESS;
3995 _PUBLIC_ void ndr_print_spoolss_JobInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo2 *r)
3997 ndr_print_struct(ndr, name, "spoolss_JobInfo2");
3998 ndr->depth++;
3999 ndr_print_uint32(ndr, "job_id", r->job_id);
4000 ndr_print_ptr(ndr, "printer_name", r->printer_name);
4001 ndr->depth++;
4002 if (r->printer_name) {
4003 ndr_print_string(ndr, "printer_name", r->printer_name);
4005 ndr->depth--;
4006 ndr_print_ptr(ndr, "server_name", r->server_name);
4007 ndr->depth++;
4008 if (r->server_name) {
4009 ndr_print_string(ndr, "server_name", r->server_name);
4011 ndr->depth--;
4012 ndr_print_ptr(ndr, "user_name", r->user_name);
4013 ndr->depth++;
4014 if (r->user_name) {
4015 ndr_print_string(ndr, "user_name", r->user_name);
4017 ndr->depth--;
4018 ndr_print_ptr(ndr, "document_name", r->document_name);
4019 ndr->depth++;
4020 if (r->document_name) {
4021 ndr_print_string(ndr, "document_name", r->document_name);
4023 ndr->depth--;
4024 ndr_print_ptr(ndr, "notify_name", r->notify_name);
4025 ndr->depth++;
4026 if (r->notify_name) {
4027 ndr_print_string(ndr, "notify_name", r->notify_name);
4029 ndr->depth--;
4030 ndr_print_ptr(ndr, "data_type", r->data_type);
4031 ndr->depth++;
4032 if (r->data_type) {
4033 ndr_print_string(ndr, "data_type", r->data_type);
4035 ndr->depth--;
4036 ndr_print_ptr(ndr, "print_processor", r->print_processor);
4037 ndr->depth++;
4038 if (r->print_processor) {
4039 ndr_print_string(ndr, "print_processor", r->print_processor);
4041 ndr->depth--;
4042 ndr_print_ptr(ndr, "parameters", r->parameters);
4043 ndr->depth++;
4044 if (r->parameters) {
4045 ndr_print_string(ndr, "parameters", r->parameters);
4047 ndr->depth--;
4048 ndr_print_ptr(ndr, "driver_name", r->driver_name);
4049 ndr->depth++;
4050 if (r->driver_name) {
4051 ndr_print_string(ndr, "driver_name", r->driver_name);
4053 ndr->depth--;
4054 ndr_print_ptr(ndr, "devmode", r->devmode);
4055 ndr->depth++;
4056 if (r->devmode) {
4057 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
4059 ndr->depth--;
4060 ndr_print_ptr(ndr, "text_status", r->text_status);
4061 ndr->depth++;
4062 if (r->text_status) {
4063 ndr_print_string(ndr, "text_status", r->text_status);
4065 ndr->depth--;
4066 ndr_print_ptr(ndr, "secdesc", r->secdesc);
4067 ndr->depth++;
4068 if (r->secdesc) {
4069 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
4071 ndr->depth--;
4072 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
4073 ndr_print_uint32(ndr, "priority", r->priority);
4074 ndr_print_uint32(ndr, "position", r->position);
4075 ndr_print_uint32(ndr, "start_time", r->start_time);
4076 ndr_print_uint32(ndr, "until_time", r->until_time);
4077 ndr_print_uint32(ndr, "total_pages", r->total_pages);
4078 ndr_print_uint32(ndr, "size", r->size);
4079 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
4080 ndr_print_uint32(ndr, "time", r->time);
4081 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
4082 ndr->depth--;
4085 _PUBLIC_ size_t ndr_size_spoolss_JobInfo2(const struct spoolss_JobInfo2 *r, struct smb_iconv_convenience *ic, int flags)
4087 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo2, ic);
4090 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo3 *r)
4092 if (ndr_flags & NDR_SCALARS) {
4093 NDR_CHECK(ndr_push_align(ndr, 4));
4094 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
4095 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->next_job_id));
4096 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
4097 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
4099 if (ndr_flags & NDR_BUFFERS) {
4101 return NDR_ERR_SUCCESS;
4104 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo3 *r)
4106 if (ndr_flags & NDR_SCALARS) {
4107 NDR_CHECK(ndr_pull_align(ndr, 4));
4108 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
4109 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->next_job_id));
4110 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
4111 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
4113 if (ndr_flags & NDR_BUFFERS) {
4115 return NDR_ERR_SUCCESS;
4118 _PUBLIC_ void ndr_print_spoolss_JobInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo3 *r)
4120 ndr_print_struct(ndr, name, "spoolss_JobInfo3");
4121 ndr->depth++;
4122 ndr_print_uint32(ndr, "job_id", r->job_id);
4123 ndr_print_uint32(ndr, "next_job_id", r->next_job_id);
4124 ndr_print_uint32(ndr, "reserved", r->reserved);
4125 ndr->depth--;
4128 _PUBLIC_ size_t ndr_size_spoolss_JobInfo3(const struct spoolss_JobInfo3 *r, struct smb_iconv_convenience *ic, int flags)
4130 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo3, ic);
4133 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo4 *r)
4135 if (ndr_flags & NDR_SCALARS) {
4136 NDR_CHECK(ndr_push_align(ndr, 5));
4137 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
4139 uint32_t _flags_save_string = ndr->flags;
4140 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4141 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printer_name));
4142 ndr->flags = _flags_save_string;
4145 uint32_t _flags_save_string = ndr->flags;
4146 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4147 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->server_name));
4148 ndr->flags = _flags_save_string;
4151 uint32_t _flags_save_string = ndr->flags;
4152 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4153 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->user_name));
4154 ndr->flags = _flags_save_string;
4157 uint32_t _flags_save_string = ndr->flags;
4158 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4159 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->document_name));
4160 ndr->flags = _flags_save_string;
4163 uint32_t _flags_save_string = ndr->flags;
4164 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4165 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->notify_name));
4166 ndr->flags = _flags_save_string;
4169 uint32_t _flags_save_string = ndr->flags;
4170 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4171 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_type));
4172 ndr->flags = _flags_save_string;
4175 uint32_t _flags_save_string = ndr->flags;
4176 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4177 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor));
4178 ndr->flags = _flags_save_string;
4181 uint32_t _flags_save_string = ndr->flags;
4182 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4183 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->parameters));
4184 ndr->flags = _flags_save_string;
4187 uint32_t _flags_save_string = ndr->flags;
4188 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4189 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
4190 ndr->flags = _flags_save_string;
4192 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
4194 uint32_t _flags_save_string = ndr->flags;
4195 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4196 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->text_status));
4197 ndr->flags = _flags_save_string;
4199 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
4200 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
4201 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
4202 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
4203 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
4204 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
4205 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
4206 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
4207 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
4208 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
4209 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
4210 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size_high));
4211 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
4213 if (ndr_flags & NDR_BUFFERS) {
4215 uint32_t _flags_save_string = ndr->flags;
4216 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4217 if (r->printer_name) {
4218 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printer_name));
4219 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printer_name));
4221 ndr->flags = _flags_save_string;
4224 uint32_t _flags_save_string = ndr->flags;
4225 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4226 if (r->server_name) {
4227 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->server_name));
4228 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server_name));
4230 ndr->flags = _flags_save_string;
4233 uint32_t _flags_save_string = ndr->flags;
4234 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4235 if (r->user_name) {
4236 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->user_name));
4237 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
4239 ndr->flags = _flags_save_string;
4242 uint32_t _flags_save_string = ndr->flags;
4243 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4244 if (r->document_name) {
4245 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->document_name));
4246 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->document_name));
4248 ndr->flags = _flags_save_string;
4251 uint32_t _flags_save_string = ndr->flags;
4252 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4253 if (r->notify_name) {
4254 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->notify_name));
4255 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->notify_name));
4257 ndr->flags = _flags_save_string;
4260 uint32_t _flags_save_string = ndr->flags;
4261 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4262 if (r->data_type) {
4263 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_type));
4264 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_type));
4266 ndr->flags = _flags_save_string;
4269 uint32_t _flags_save_string = ndr->flags;
4270 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4271 if (r->print_processor) {
4272 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->print_processor));
4273 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor));
4275 ndr->flags = _flags_save_string;
4278 uint32_t _flags_save_string = ndr->flags;
4279 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4280 if (r->parameters) {
4281 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->parameters));
4282 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->parameters));
4284 ndr->flags = _flags_save_string;
4287 uint32_t _flags_save_string = ndr->flags;
4288 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4289 if (r->driver_name) {
4290 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
4291 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
4293 ndr->flags = _flags_save_string;
4295 if (r->devmode) {
4296 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->devmode));
4297 NDR_CHECK(ndr_push_spoolss_DeviceMode(ndr, NDR_SCALARS, r->devmode));
4300 uint32_t _flags_save_string = ndr->flags;
4301 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4302 if (r->text_status) {
4303 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->text_status));
4304 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->text_status));
4306 ndr->flags = _flags_save_string;
4308 if (r->secdesc) {
4309 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->secdesc));
4310 NDR_CHECK(ndr_push_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
4313 return NDR_ERR_SUCCESS;
4316 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo4 *r)
4318 uint32_t _ptr_printer_name;
4319 TALLOC_CTX *_mem_save_printer_name_0;
4320 uint32_t _ptr_server_name;
4321 TALLOC_CTX *_mem_save_server_name_0;
4322 uint32_t _ptr_user_name;
4323 TALLOC_CTX *_mem_save_user_name_0;
4324 uint32_t _ptr_document_name;
4325 TALLOC_CTX *_mem_save_document_name_0;
4326 uint32_t _ptr_notify_name;
4327 TALLOC_CTX *_mem_save_notify_name_0;
4328 uint32_t _ptr_data_type;
4329 TALLOC_CTX *_mem_save_data_type_0;
4330 uint32_t _ptr_print_processor;
4331 TALLOC_CTX *_mem_save_print_processor_0;
4332 uint32_t _ptr_parameters;
4333 TALLOC_CTX *_mem_save_parameters_0;
4334 uint32_t _ptr_driver_name;
4335 TALLOC_CTX *_mem_save_driver_name_0;
4336 uint32_t _ptr_devmode;
4337 TALLOC_CTX *_mem_save_devmode_0;
4338 uint32_t _ptr_text_status;
4339 TALLOC_CTX *_mem_save_text_status_0;
4340 uint32_t _ptr_secdesc;
4341 TALLOC_CTX *_mem_save_secdesc_0;
4342 if (ndr_flags & NDR_SCALARS) {
4343 NDR_CHECK(ndr_pull_align(ndr, 5));
4344 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
4346 uint32_t _flags_save_string = ndr->flags;
4347 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4348 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
4349 if (_ptr_printer_name) {
4350 NDR_PULL_ALLOC(ndr, r->printer_name);
4351 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printer_name, _ptr_printer_name));
4352 } else {
4353 r->printer_name = NULL;
4355 ndr->flags = _flags_save_string;
4358 uint32_t _flags_save_string = ndr->flags;
4359 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4360 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
4361 if (_ptr_server_name) {
4362 NDR_PULL_ALLOC(ndr, r->server_name);
4363 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->server_name, _ptr_server_name));
4364 } else {
4365 r->server_name = NULL;
4367 ndr->flags = _flags_save_string;
4370 uint32_t _flags_save_string = ndr->flags;
4371 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4372 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
4373 if (_ptr_user_name) {
4374 NDR_PULL_ALLOC(ndr, r->user_name);
4375 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->user_name, _ptr_user_name));
4376 } else {
4377 r->user_name = NULL;
4379 ndr->flags = _flags_save_string;
4382 uint32_t _flags_save_string = ndr->flags;
4383 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4384 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
4385 if (_ptr_document_name) {
4386 NDR_PULL_ALLOC(ndr, r->document_name);
4387 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->document_name, _ptr_document_name));
4388 } else {
4389 r->document_name = NULL;
4391 ndr->flags = _flags_save_string;
4394 uint32_t _flags_save_string = ndr->flags;
4395 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4396 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
4397 if (_ptr_notify_name) {
4398 NDR_PULL_ALLOC(ndr, r->notify_name);
4399 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->notify_name, _ptr_notify_name));
4400 } else {
4401 r->notify_name = NULL;
4403 ndr->flags = _flags_save_string;
4406 uint32_t _flags_save_string = ndr->flags;
4407 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4408 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
4409 if (_ptr_data_type) {
4410 NDR_PULL_ALLOC(ndr, r->data_type);
4411 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_type, _ptr_data_type));
4412 } else {
4413 r->data_type = NULL;
4415 ndr->flags = _flags_save_string;
4418 uint32_t _flags_save_string = ndr->flags;
4419 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4420 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
4421 if (_ptr_print_processor) {
4422 NDR_PULL_ALLOC(ndr, r->print_processor);
4423 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor, _ptr_print_processor));
4424 } else {
4425 r->print_processor = NULL;
4427 ndr->flags = _flags_save_string;
4430 uint32_t _flags_save_string = ndr->flags;
4431 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4432 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
4433 if (_ptr_parameters) {
4434 NDR_PULL_ALLOC(ndr, r->parameters);
4435 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->parameters, _ptr_parameters));
4436 } else {
4437 r->parameters = NULL;
4439 ndr->flags = _flags_save_string;
4442 uint32_t _flags_save_string = ndr->flags;
4443 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4444 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
4445 if (_ptr_driver_name) {
4446 NDR_PULL_ALLOC(ndr, r->driver_name);
4447 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
4448 } else {
4449 r->driver_name = NULL;
4451 ndr->flags = _flags_save_string;
4453 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
4454 if (_ptr_devmode) {
4455 NDR_PULL_ALLOC(ndr, r->devmode);
4456 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
4457 } else {
4458 r->devmode = NULL;
4461 uint32_t _flags_save_string = ndr->flags;
4462 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4463 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
4464 if (_ptr_text_status) {
4465 NDR_PULL_ALLOC(ndr, r->text_status);
4466 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->text_status, _ptr_text_status));
4467 } else {
4468 r->text_status = NULL;
4470 ndr->flags = _flags_save_string;
4472 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
4473 if (_ptr_secdesc) {
4474 NDR_PULL_ALLOC(ndr, r->secdesc);
4475 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
4476 } else {
4477 r->secdesc = NULL;
4479 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
4480 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
4481 if (r->priority > 99) {
4482 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
4484 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
4485 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
4486 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
4487 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
4488 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
4489 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
4490 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
4491 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
4492 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size_high));
4493 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
4495 if (ndr_flags & NDR_BUFFERS) {
4497 uint32_t _flags_save_string = ndr->flags;
4498 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4499 if (r->printer_name) {
4500 uint32_t _relative_save_offset;
4501 _relative_save_offset = ndr->offset;
4502 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printer_name));
4503 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4504 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
4505 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printer_name));
4506 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
4507 ndr->offset = _relative_save_offset;
4509 ndr->flags = _flags_save_string;
4512 uint32_t _flags_save_string = ndr->flags;
4513 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4514 if (r->server_name) {
4515 uint32_t _relative_save_offset;
4516 _relative_save_offset = ndr->offset;
4517 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->server_name));
4518 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4519 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
4520 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->server_name));
4521 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
4522 ndr->offset = _relative_save_offset;
4524 ndr->flags = _flags_save_string;
4527 uint32_t _flags_save_string = ndr->flags;
4528 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4529 if (r->user_name) {
4530 uint32_t _relative_save_offset;
4531 _relative_save_offset = ndr->offset;
4532 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->user_name));
4533 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4534 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
4535 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
4536 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
4537 ndr->offset = _relative_save_offset;
4539 ndr->flags = _flags_save_string;
4542 uint32_t _flags_save_string = ndr->flags;
4543 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4544 if (r->document_name) {
4545 uint32_t _relative_save_offset;
4546 _relative_save_offset = ndr->offset;
4547 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->document_name));
4548 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4549 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
4550 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->document_name));
4551 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
4552 ndr->offset = _relative_save_offset;
4554 ndr->flags = _flags_save_string;
4557 uint32_t _flags_save_string = ndr->flags;
4558 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4559 if (r->notify_name) {
4560 uint32_t _relative_save_offset;
4561 _relative_save_offset = ndr->offset;
4562 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->notify_name));
4563 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4564 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
4565 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->notify_name));
4566 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
4567 ndr->offset = _relative_save_offset;
4569 ndr->flags = _flags_save_string;
4572 uint32_t _flags_save_string = ndr->flags;
4573 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4574 if (r->data_type) {
4575 uint32_t _relative_save_offset;
4576 _relative_save_offset = ndr->offset;
4577 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_type));
4578 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
4579 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
4580 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_type));
4581 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
4582 ndr->offset = _relative_save_offset;
4584 ndr->flags = _flags_save_string;
4587 uint32_t _flags_save_string = ndr->flags;
4588 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4589 if (r->print_processor) {
4590 uint32_t _relative_save_offset;
4591 _relative_save_offset = ndr->offset;
4592 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor));
4593 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
4594 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
4595 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor));
4596 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
4597 ndr->offset = _relative_save_offset;
4599 ndr->flags = _flags_save_string;
4602 uint32_t _flags_save_string = ndr->flags;
4603 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4604 if (r->parameters) {
4605 uint32_t _relative_save_offset;
4606 _relative_save_offset = ndr->offset;
4607 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->parameters));
4608 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
4609 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
4610 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->parameters));
4611 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
4612 ndr->offset = _relative_save_offset;
4614 ndr->flags = _flags_save_string;
4617 uint32_t _flags_save_string = ndr->flags;
4618 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4619 if (r->driver_name) {
4620 uint32_t _relative_save_offset;
4621 _relative_save_offset = ndr->offset;
4622 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
4623 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4624 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
4625 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
4626 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
4627 ndr->offset = _relative_save_offset;
4629 ndr->flags = _flags_save_string;
4631 if (r->devmode) {
4632 uint32_t _relative_save_offset;
4633 _relative_save_offset = ndr->offset;
4634 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
4635 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
4636 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
4637 NDR_CHECK(ndr_pull_spoolss_DeviceMode(ndr, NDR_SCALARS, r->devmode));
4638 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
4639 ndr->offset = _relative_save_offset;
4642 uint32_t _flags_save_string = ndr->flags;
4643 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4644 if (r->text_status) {
4645 uint32_t _relative_save_offset;
4646 _relative_save_offset = ndr->offset;
4647 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->text_status));
4648 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
4649 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
4650 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->text_status));
4651 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
4652 ndr->offset = _relative_save_offset;
4654 ndr->flags = _flags_save_string;
4656 if (r->secdesc) {
4657 uint32_t _relative_save_offset;
4658 _relative_save_offset = ndr->offset;
4659 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
4660 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
4661 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
4662 NDR_CHECK(ndr_pull_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
4663 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
4664 ndr->offset = _relative_save_offset;
4667 return NDR_ERR_SUCCESS;
4670 _PUBLIC_ void ndr_print_spoolss_JobInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo4 *r)
4672 ndr_print_struct(ndr, name, "spoolss_JobInfo4");
4673 ndr->depth++;
4674 ndr_print_uint32(ndr, "job_id", r->job_id);
4675 ndr_print_ptr(ndr, "printer_name", r->printer_name);
4676 ndr->depth++;
4677 if (r->printer_name) {
4678 ndr_print_string(ndr, "printer_name", r->printer_name);
4680 ndr->depth--;
4681 ndr_print_ptr(ndr, "server_name", r->server_name);
4682 ndr->depth++;
4683 if (r->server_name) {
4684 ndr_print_string(ndr, "server_name", r->server_name);
4686 ndr->depth--;
4687 ndr_print_ptr(ndr, "user_name", r->user_name);
4688 ndr->depth++;
4689 if (r->user_name) {
4690 ndr_print_string(ndr, "user_name", r->user_name);
4692 ndr->depth--;
4693 ndr_print_ptr(ndr, "document_name", r->document_name);
4694 ndr->depth++;
4695 if (r->document_name) {
4696 ndr_print_string(ndr, "document_name", r->document_name);
4698 ndr->depth--;
4699 ndr_print_ptr(ndr, "notify_name", r->notify_name);
4700 ndr->depth++;
4701 if (r->notify_name) {
4702 ndr_print_string(ndr, "notify_name", r->notify_name);
4704 ndr->depth--;
4705 ndr_print_ptr(ndr, "data_type", r->data_type);
4706 ndr->depth++;
4707 if (r->data_type) {
4708 ndr_print_string(ndr, "data_type", r->data_type);
4710 ndr->depth--;
4711 ndr_print_ptr(ndr, "print_processor", r->print_processor);
4712 ndr->depth++;
4713 if (r->print_processor) {
4714 ndr_print_string(ndr, "print_processor", r->print_processor);
4716 ndr->depth--;
4717 ndr_print_ptr(ndr, "parameters", r->parameters);
4718 ndr->depth++;
4719 if (r->parameters) {
4720 ndr_print_string(ndr, "parameters", r->parameters);
4722 ndr->depth--;
4723 ndr_print_ptr(ndr, "driver_name", r->driver_name);
4724 ndr->depth++;
4725 if (r->driver_name) {
4726 ndr_print_string(ndr, "driver_name", r->driver_name);
4728 ndr->depth--;
4729 ndr_print_ptr(ndr, "devmode", r->devmode);
4730 ndr->depth++;
4731 if (r->devmode) {
4732 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
4734 ndr->depth--;
4735 ndr_print_ptr(ndr, "text_status", r->text_status);
4736 ndr->depth++;
4737 if (r->text_status) {
4738 ndr_print_string(ndr, "text_status", r->text_status);
4740 ndr->depth--;
4741 ndr_print_ptr(ndr, "secdesc", r->secdesc);
4742 ndr->depth++;
4743 if (r->secdesc) {
4744 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
4746 ndr->depth--;
4747 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
4748 ndr_print_uint32(ndr, "priority", r->priority);
4749 ndr_print_uint32(ndr, "position", r->position);
4750 ndr_print_uint32(ndr, "start_time", r->start_time);
4751 ndr_print_uint32(ndr, "until_time", r->until_time);
4752 ndr_print_uint32(ndr, "total_pages", r->total_pages);
4753 ndr_print_uint32(ndr, "size", r->size);
4754 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
4755 ndr_print_uint32(ndr, "time", r->time);
4756 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
4757 ndr_print_uint32(ndr, "size_high", r->size_high);
4758 ndr->depth--;
4761 _PUBLIC_ size_t ndr_size_spoolss_JobInfo4(const struct spoolss_JobInfo4 *r, struct smb_iconv_convenience *ic, int flags)
4763 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo4, ic);
4766 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_JobInfo *r)
4768 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
4769 if (ndr_flags & NDR_SCALARS) {
4770 int level = ndr_push_get_switch_value(ndr, r);
4771 NDR_CHECK(ndr_push_union_align(ndr, 5));
4772 switch (level) {
4773 case 1: {
4774 NDR_CHECK(ndr_push_align(ndr, 5));
4775 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
4776 NDR_CHECK(ndr_push_spoolss_JobInfo1(ndr, NDR_SCALARS, &r->info1));
4777 break; }
4779 case 2: {
4780 NDR_CHECK(ndr_push_align(ndr, 5));
4781 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
4782 NDR_CHECK(ndr_push_spoolss_JobInfo2(ndr, NDR_SCALARS, &r->info2));
4783 break; }
4785 case 3: {
4786 NDR_CHECK(ndr_push_align(ndr, 4));
4787 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
4788 NDR_CHECK(ndr_push_spoolss_JobInfo3(ndr, NDR_SCALARS, &r->info3));
4789 break; }
4791 case 4: {
4792 NDR_CHECK(ndr_push_align(ndr, 5));
4793 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
4794 NDR_CHECK(ndr_push_spoolss_JobInfo4(ndr, NDR_SCALARS, &r->info4));
4795 break; }
4797 default: {
4798 break; }
4802 if (ndr_flags & NDR_BUFFERS) {
4803 int level = ndr_push_get_switch_value(ndr, r);
4804 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
4805 switch (level) {
4806 case 1:
4807 NDR_CHECK(ndr_push_spoolss_JobInfo1(ndr, NDR_BUFFERS, &r->info1));
4808 break;
4810 case 2:
4811 NDR_CHECK(ndr_push_spoolss_JobInfo2(ndr, NDR_BUFFERS, &r->info2));
4812 break;
4814 case 3:
4815 break;
4817 case 4:
4818 NDR_CHECK(ndr_push_spoolss_JobInfo4(ndr, NDR_BUFFERS, &r->info4));
4819 break;
4821 default:
4822 break;
4826 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
4827 return NDR_ERR_SUCCESS;
4830 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_JobInfo *r)
4832 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
4833 int level;
4834 level = ndr_pull_get_switch_value(ndr, r);
4835 if (ndr_flags & NDR_SCALARS) {
4836 NDR_CHECK(ndr_pull_union_align(ndr, 5));
4837 switch (level) {
4838 case 1: {
4839 NDR_CHECK(ndr_pull_align(ndr, 5));
4840 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
4841 NDR_CHECK(ndr_pull_spoolss_JobInfo1(ndr, NDR_SCALARS, &r->info1));
4842 break; }
4844 case 2: {
4845 NDR_CHECK(ndr_pull_align(ndr, 5));
4846 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
4847 NDR_CHECK(ndr_pull_spoolss_JobInfo2(ndr, NDR_SCALARS, &r->info2));
4848 break; }
4850 case 3: {
4851 NDR_CHECK(ndr_pull_align(ndr, 4));
4852 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
4853 NDR_CHECK(ndr_pull_spoolss_JobInfo3(ndr, NDR_SCALARS, &r->info3));
4854 break; }
4856 case 4: {
4857 NDR_CHECK(ndr_pull_align(ndr, 5));
4858 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
4859 NDR_CHECK(ndr_pull_spoolss_JobInfo4(ndr, NDR_SCALARS, &r->info4));
4860 break; }
4862 default: {
4863 break; }
4867 if (ndr_flags & NDR_BUFFERS) {
4868 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
4869 switch (level) {
4870 case 1:
4871 NDR_CHECK(ndr_pull_spoolss_JobInfo1(ndr, NDR_BUFFERS, &r->info1));
4872 break;
4874 case 2:
4875 NDR_CHECK(ndr_pull_spoolss_JobInfo2(ndr, NDR_BUFFERS, &r->info2));
4876 break;
4878 case 3:
4879 break;
4881 case 4:
4882 NDR_CHECK(ndr_pull_spoolss_JobInfo4(ndr, NDR_BUFFERS, &r->info4));
4883 break;
4885 default:
4886 break;
4890 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
4891 return NDR_ERR_SUCCESS;
4894 _PUBLIC_ void ndr_print_spoolss_JobInfo(struct ndr_print *ndr, const char *name, const union spoolss_JobInfo *r)
4896 int level;
4897 level = ndr_print_get_switch_value(ndr, r);
4898 ndr_print_union(ndr, name, level, "spoolss_JobInfo");
4899 switch (level) {
4900 case 1:
4901 ndr_print_spoolss_JobInfo1(ndr, "info1", &r->info1);
4902 break;
4904 case 2:
4905 ndr_print_spoolss_JobInfo2(ndr, "info2", &r->info2);
4906 break;
4908 case 3:
4909 ndr_print_spoolss_JobInfo3(ndr, "info3", &r->info3);
4910 break;
4912 case 4:
4913 ndr_print_spoolss_JobInfo4(ndr, "info4", &r->info4);
4914 break;
4916 default:
4917 break;
4922 _PUBLIC_ size_t ndr_size_spoolss_JobInfo(const union spoolss_JobInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
4924 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo, ic);
4927 static enum ndr_err_code ndr_push_spoolss_SetJobInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetJobInfo1 *r)
4929 if (ndr_flags & NDR_SCALARS) {
4930 NDR_CHECK(ndr_push_align(ndr, 5));
4931 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
4932 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printer_name));
4933 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_name));
4934 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user_name));
4935 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
4936 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_type));
4937 NDR_CHECK(ndr_push_unique_ptr(ndr, r->text_status));
4938 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
4939 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
4940 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
4941 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
4942 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
4943 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
4944 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
4946 if (ndr_flags & NDR_BUFFERS) {
4947 if (r->printer_name) {
4948 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
4949 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
4950 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
4951 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printer_name, ndr_charset_length(r->printer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4953 if (r->server_name) {
4954 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
4955 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
4956 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
4957 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_name, ndr_charset_length(r->server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4959 if (r->user_name) {
4960 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
4961 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
4962 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
4963 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user_name, ndr_charset_length(r->user_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4965 if (r->document_name) {
4966 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
4967 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
4968 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
4969 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4971 if (r->data_type) {
4972 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
4973 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
4974 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
4975 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_type, ndr_charset_length(r->data_type, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4977 if (r->text_status) {
4978 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
4979 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
4980 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
4981 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->text_status, ndr_charset_length(r->text_status, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4984 return NDR_ERR_SUCCESS;
4987 static enum ndr_err_code ndr_pull_spoolss_SetJobInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetJobInfo1 *r)
4989 uint32_t _ptr_printer_name;
4990 TALLOC_CTX *_mem_save_printer_name_0;
4991 uint32_t _ptr_server_name;
4992 TALLOC_CTX *_mem_save_server_name_0;
4993 uint32_t _ptr_user_name;
4994 TALLOC_CTX *_mem_save_user_name_0;
4995 uint32_t _ptr_document_name;
4996 TALLOC_CTX *_mem_save_document_name_0;
4997 uint32_t _ptr_data_type;
4998 TALLOC_CTX *_mem_save_data_type_0;
4999 uint32_t _ptr_text_status;
5000 TALLOC_CTX *_mem_save_text_status_0;
5001 if (ndr_flags & NDR_SCALARS) {
5002 NDR_CHECK(ndr_pull_align(ndr, 5));
5003 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
5004 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
5005 if (_ptr_printer_name) {
5006 NDR_PULL_ALLOC(ndr, r->printer_name);
5007 } else {
5008 r->printer_name = NULL;
5010 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
5011 if (_ptr_server_name) {
5012 NDR_PULL_ALLOC(ndr, r->server_name);
5013 } else {
5014 r->server_name = NULL;
5016 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
5017 if (_ptr_user_name) {
5018 NDR_PULL_ALLOC(ndr, r->user_name);
5019 } else {
5020 r->user_name = NULL;
5022 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
5023 if (_ptr_document_name) {
5024 NDR_PULL_ALLOC(ndr, r->document_name);
5025 } else {
5026 r->document_name = NULL;
5028 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
5029 if (_ptr_data_type) {
5030 NDR_PULL_ALLOC(ndr, r->data_type);
5031 } else {
5032 r->data_type = NULL;
5034 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
5035 if (_ptr_text_status) {
5036 NDR_PULL_ALLOC(ndr, r->text_status);
5037 } else {
5038 r->text_status = NULL;
5040 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
5041 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
5042 if (r->priority > 99) {
5043 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
5045 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
5046 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
5047 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
5048 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5049 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
5051 if (ndr_flags & NDR_BUFFERS) {
5052 if (r->printer_name) {
5053 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5054 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
5055 NDR_CHECK(ndr_pull_array_size(ndr, &r->printer_name));
5056 NDR_CHECK(ndr_pull_array_length(ndr, &r->printer_name));
5057 if (ndr_get_array_length(ndr, &r->printer_name) > ndr_get_array_size(ndr, &r->printer_name)) {
5058 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->printer_name), ndr_get_array_length(ndr, &r->printer_name));
5060 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t)));
5061 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printer_name, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t), CH_UTF16));
5062 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
5064 if (r->server_name) {
5065 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5066 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
5067 NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name));
5068 NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name));
5069 if (ndr_get_array_length(ndr, &r->server_name) > ndr_get_array_size(ndr, &r->server_name)) {
5070 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->server_name), ndr_get_array_length(ndr, &r->server_name));
5072 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t)));
5073 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t), CH_UTF16));
5074 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
5076 if (r->user_name) {
5077 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5078 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
5079 NDR_CHECK(ndr_pull_array_size(ndr, &r->user_name));
5080 NDR_CHECK(ndr_pull_array_length(ndr, &r->user_name));
5081 if (ndr_get_array_length(ndr, &r->user_name) > ndr_get_array_size(ndr, &r->user_name)) {
5082 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->user_name), ndr_get_array_length(ndr, &r->user_name));
5084 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t)));
5085 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t), CH_UTF16));
5086 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
5088 if (r->document_name) {
5089 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5090 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
5091 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
5092 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
5093 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
5094 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->document_name), ndr_get_array_length(ndr, &r->document_name));
5096 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
5097 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
5098 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
5100 if (r->data_type) {
5101 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
5102 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
5103 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_type));
5104 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_type));
5105 if (ndr_get_array_length(ndr, &r->data_type) > ndr_get_array_size(ndr, &r->data_type)) {
5106 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data_type), ndr_get_array_length(ndr, &r->data_type));
5108 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t)));
5109 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_type, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t), CH_UTF16));
5110 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
5112 if (r->text_status) {
5113 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
5114 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
5115 NDR_CHECK(ndr_pull_array_size(ndr, &r->text_status));
5116 NDR_CHECK(ndr_pull_array_length(ndr, &r->text_status));
5117 if (ndr_get_array_length(ndr, &r->text_status) > ndr_get_array_size(ndr, &r->text_status)) {
5118 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->text_status), ndr_get_array_length(ndr, &r->text_status));
5120 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t)));
5121 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->text_status, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t), CH_UTF16));
5122 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
5125 return NDR_ERR_SUCCESS;
5128 _PUBLIC_ void ndr_print_spoolss_SetJobInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_SetJobInfo1 *r)
5130 ndr_print_struct(ndr, name, "spoolss_SetJobInfo1");
5131 ndr->depth++;
5132 ndr_print_uint32(ndr, "job_id", r->job_id);
5133 ndr_print_ptr(ndr, "printer_name", r->printer_name);
5134 ndr->depth++;
5135 if (r->printer_name) {
5136 ndr_print_string(ndr, "printer_name", r->printer_name);
5138 ndr->depth--;
5139 ndr_print_ptr(ndr, "server_name", r->server_name);
5140 ndr->depth++;
5141 if (r->server_name) {
5142 ndr_print_string(ndr, "server_name", r->server_name);
5144 ndr->depth--;
5145 ndr_print_ptr(ndr, "user_name", r->user_name);
5146 ndr->depth++;
5147 if (r->user_name) {
5148 ndr_print_string(ndr, "user_name", r->user_name);
5150 ndr->depth--;
5151 ndr_print_ptr(ndr, "document_name", r->document_name);
5152 ndr->depth++;
5153 if (r->document_name) {
5154 ndr_print_string(ndr, "document_name", r->document_name);
5156 ndr->depth--;
5157 ndr_print_ptr(ndr, "data_type", r->data_type);
5158 ndr->depth++;
5159 if (r->data_type) {
5160 ndr_print_string(ndr, "data_type", r->data_type);
5162 ndr->depth--;
5163 ndr_print_ptr(ndr, "text_status", r->text_status);
5164 ndr->depth++;
5165 if (r->text_status) {
5166 ndr_print_string(ndr, "text_status", r->text_status);
5168 ndr->depth--;
5169 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
5170 ndr_print_uint32(ndr, "priority", r->priority);
5171 ndr_print_uint32(ndr, "position", r->position);
5172 ndr_print_uint32(ndr, "total_pages", r->total_pages);
5173 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
5174 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
5175 ndr->depth--;
5178 static enum ndr_err_code ndr_push_spoolss_SetJobInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetJobInfo2 *r)
5180 if (ndr_flags & NDR_SCALARS) {
5181 NDR_CHECK(ndr_push_align(ndr, 5));
5182 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
5183 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printer_name));
5184 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_name));
5185 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user_name));
5186 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
5187 NDR_CHECK(ndr_push_unique_ptr(ndr, r->notify_name));
5188 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_type));
5189 NDR_CHECK(ndr_push_unique_ptr(ndr, r->print_processor));
5190 NDR_CHECK(ndr_push_unique_ptr(ndr, r->parameters));
5191 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
5192 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_devmode_ptr));
5193 NDR_CHECK(ndr_push_unique_ptr(ndr, r->text_status));
5194 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_secdesc_ptr));
5195 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
5196 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
5197 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
5198 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
5199 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
5200 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
5201 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
5202 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5203 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
5204 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
5205 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
5207 if (ndr_flags & NDR_BUFFERS) {
5208 if (r->printer_name) {
5209 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
5210 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5211 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
5212 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printer_name, ndr_charset_length(r->printer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5214 if (r->server_name) {
5215 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
5216 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5217 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
5218 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_name, ndr_charset_length(r->server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5220 if (r->user_name) {
5221 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5222 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5223 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5224 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user_name, ndr_charset_length(r->user_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5226 if (r->document_name) {
5227 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5228 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5229 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5230 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5232 if (r->notify_name) {
5233 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
5234 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5235 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
5236 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->notify_name, ndr_charset_length(r->notify_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5238 if (r->data_type) {
5239 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5240 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5241 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5242 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_type, ndr_charset_length(r->data_type, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5244 if (r->print_processor) {
5245 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
5246 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5247 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
5248 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->print_processor, ndr_charset_length(r->print_processor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5250 if (r->parameters) {
5251 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
5252 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5253 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
5254 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->parameters, ndr_charset_length(r->parameters, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5256 if (r->driver_name) {
5257 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5258 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5259 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5260 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5262 if (r->text_status) {
5263 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
5264 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5265 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
5266 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->text_status, ndr_charset_length(r->text_status, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5269 return NDR_ERR_SUCCESS;
5272 static enum ndr_err_code ndr_pull_spoolss_SetJobInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetJobInfo2 *r)
5274 uint32_t _ptr_printer_name;
5275 TALLOC_CTX *_mem_save_printer_name_0;
5276 uint32_t _ptr_server_name;
5277 TALLOC_CTX *_mem_save_server_name_0;
5278 uint32_t _ptr_user_name;
5279 TALLOC_CTX *_mem_save_user_name_0;
5280 uint32_t _ptr_document_name;
5281 TALLOC_CTX *_mem_save_document_name_0;
5282 uint32_t _ptr_notify_name;
5283 TALLOC_CTX *_mem_save_notify_name_0;
5284 uint32_t _ptr_data_type;
5285 TALLOC_CTX *_mem_save_data_type_0;
5286 uint32_t _ptr_print_processor;
5287 TALLOC_CTX *_mem_save_print_processor_0;
5288 uint32_t _ptr_parameters;
5289 TALLOC_CTX *_mem_save_parameters_0;
5290 uint32_t _ptr_driver_name;
5291 TALLOC_CTX *_mem_save_driver_name_0;
5292 uint32_t _ptr_text_status;
5293 TALLOC_CTX *_mem_save_text_status_0;
5294 if (ndr_flags & NDR_SCALARS) {
5295 NDR_CHECK(ndr_pull_align(ndr, 5));
5296 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
5297 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
5298 if (_ptr_printer_name) {
5299 NDR_PULL_ALLOC(ndr, r->printer_name);
5300 } else {
5301 r->printer_name = NULL;
5303 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
5304 if (_ptr_server_name) {
5305 NDR_PULL_ALLOC(ndr, r->server_name);
5306 } else {
5307 r->server_name = NULL;
5309 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
5310 if (_ptr_user_name) {
5311 NDR_PULL_ALLOC(ndr, r->user_name);
5312 } else {
5313 r->user_name = NULL;
5315 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
5316 if (_ptr_document_name) {
5317 NDR_PULL_ALLOC(ndr, r->document_name);
5318 } else {
5319 r->document_name = NULL;
5321 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
5322 if (_ptr_notify_name) {
5323 NDR_PULL_ALLOC(ndr, r->notify_name);
5324 } else {
5325 r->notify_name = NULL;
5327 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
5328 if (_ptr_data_type) {
5329 NDR_PULL_ALLOC(ndr, r->data_type);
5330 } else {
5331 r->data_type = NULL;
5333 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
5334 if (_ptr_print_processor) {
5335 NDR_PULL_ALLOC(ndr, r->print_processor);
5336 } else {
5337 r->print_processor = NULL;
5339 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
5340 if (_ptr_parameters) {
5341 NDR_PULL_ALLOC(ndr, r->parameters);
5342 } else {
5343 r->parameters = NULL;
5345 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
5346 if (_ptr_driver_name) {
5347 NDR_PULL_ALLOC(ndr, r->driver_name);
5348 } else {
5349 r->driver_name = NULL;
5351 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_devmode_ptr));
5352 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
5353 if (_ptr_text_status) {
5354 NDR_PULL_ALLOC(ndr, r->text_status);
5355 } else {
5356 r->text_status = NULL;
5358 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_secdesc_ptr));
5359 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
5360 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
5361 if (r->priority > 99) {
5362 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
5364 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
5365 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
5366 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
5367 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
5368 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
5369 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5370 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
5371 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
5372 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
5374 if (ndr_flags & NDR_BUFFERS) {
5375 if (r->printer_name) {
5376 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5377 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
5378 NDR_CHECK(ndr_pull_array_size(ndr, &r->printer_name));
5379 NDR_CHECK(ndr_pull_array_length(ndr, &r->printer_name));
5380 if (ndr_get_array_length(ndr, &r->printer_name) > ndr_get_array_size(ndr, &r->printer_name)) {
5381 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->printer_name), ndr_get_array_length(ndr, &r->printer_name));
5383 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t)));
5384 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printer_name, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t), CH_UTF16));
5385 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
5387 if (r->server_name) {
5388 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5389 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
5390 NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name));
5391 NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name));
5392 if (ndr_get_array_length(ndr, &r->server_name) > ndr_get_array_size(ndr, &r->server_name)) {
5393 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->server_name), ndr_get_array_length(ndr, &r->server_name));
5395 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t)));
5396 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t), CH_UTF16));
5397 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
5399 if (r->user_name) {
5400 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5401 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
5402 NDR_CHECK(ndr_pull_array_size(ndr, &r->user_name));
5403 NDR_CHECK(ndr_pull_array_length(ndr, &r->user_name));
5404 if (ndr_get_array_length(ndr, &r->user_name) > ndr_get_array_size(ndr, &r->user_name)) {
5405 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->user_name), ndr_get_array_length(ndr, &r->user_name));
5407 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t)));
5408 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t), CH_UTF16));
5409 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
5411 if (r->document_name) {
5412 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5413 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
5414 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
5415 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
5416 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
5417 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->document_name), ndr_get_array_length(ndr, &r->document_name));
5419 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
5420 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
5421 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
5423 if (r->notify_name) {
5424 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5425 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
5426 NDR_CHECK(ndr_pull_array_size(ndr, &r->notify_name));
5427 NDR_CHECK(ndr_pull_array_length(ndr, &r->notify_name));
5428 if (ndr_get_array_length(ndr, &r->notify_name) > ndr_get_array_size(ndr, &r->notify_name)) {
5429 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->notify_name), ndr_get_array_length(ndr, &r->notify_name));
5431 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t)));
5432 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->notify_name, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t), CH_UTF16));
5433 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
5435 if (r->data_type) {
5436 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
5437 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
5438 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_type));
5439 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_type));
5440 if (ndr_get_array_length(ndr, &r->data_type) > ndr_get_array_size(ndr, &r->data_type)) {
5441 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data_type), ndr_get_array_length(ndr, &r->data_type));
5443 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t)));
5444 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_type, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t), CH_UTF16));
5445 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
5447 if (r->print_processor) {
5448 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
5449 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
5450 NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
5451 NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
5452 if (ndr_get_array_length(ndr, &r->print_processor) > ndr_get_array_size(ndr, &r->print_processor)) {
5453 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->print_processor), ndr_get_array_length(ndr, &r->print_processor));
5455 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t)));
5456 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t), CH_UTF16));
5457 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
5459 if (r->parameters) {
5460 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
5461 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
5462 NDR_CHECK(ndr_pull_array_size(ndr, &r->parameters));
5463 NDR_CHECK(ndr_pull_array_length(ndr, &r->parameters));
5464 if (ndr_get_array_length(ndr, &r->parameters) > ndr_get_array_size(ndr, &r->parameters)) {
5465 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->parameters), ndr_get_array_length(ndr, &r->parameters));
5467 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t)));
5468 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t), CH_UTF16));
5469 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
5471 if (r->driver_name) {
5472 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5473 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
5474 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
5475 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
5476 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
5477 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_name), ndr_get_array_length(ndr, &r->driver_name));
5479 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
5480 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
5481 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
5483 if (r->text_status) {
5484 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
5485 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
5486 NDR_CHECK(ndr_pull_array_size(ndr, &r->text_status));
5487 NDR_CHECK(ndr_pull_array_length(ndr, &r->text_status));
5488 if (ndr_get_array_length(ndr, &r->text_status) > ndr_get_array_size(ndr, &r->text_status)) {
5489 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->text_status), ndr_get_array_length(ndr, &r->text_status));
5491 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t)));
5492 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->text_status, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t), CH_UTF16));
5493 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
5496 return NDR_ERR_SUCCESS;
5499 _PUBLIC_ void ndr_print_spoolss_SetJobInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_SetJobInfo2 *r)
5501 ndr_print_struct(ndr, name, "spoolss_SetJobInfo2");
5502 ndr->depth++;
5503 ndr_print_uint32(ndr, "job_id", r->job_id);
5504 ndr_print_ptr(ndr, "printer_name", r->printer_name);
5505 ndr->depth++;
5506 if (r->printer_name) {
5507 ndr_print_string(ndr, "printer_name", r->printer_name);
5509 ndr->depth--;
5510 ndr_print_ptr(ndr, "server_name", r->server_name);
5511 ndr->depth++;
5512 if (r->server_name) {
5513 ndr_print_string(ndr, "server_name", r->server_name);
5515 ndr->depth--;
5516 ndr_print_ptr(ndr, "user_name", r->user_name);
5517 ndr->depth++;
5518 if (r->user_name) {
5519 ndr_print_string(ndr, "user_name", r->user_name);
5521 ndr->depth--;
5522 ndr_print_ptr(ndr, "document_name", r->document_name);
5523 ndr->depth++;
5524 if (r->document_name) {
5525 ndr_print_string(ndr, "document_name", r->document_name);
5527 ndr->depth--;
5528 ndr_print_ptr(ndr, "notify_name", r->notify_name);
5529 ndr->depth++;
5530 if (r->notify_name) {
5531 ndr_print_string(ndr, "notify_name", r->notify_name);
5533 ndr->depth--;
5534 ndr_print_ptr(ndr, "data_type", r->data_type);
5535 ndr->depth++;
5536 if (r->data_type) {
5537 ndr_print_string(ndr, "data_type", r->data_type);
5539 ndr->depth--;
5540 ndr_print_ptr(ndr, "print_processor", r->print_processor);
5541 ndr->depth++;
5542 if (r->print_processor) {
5543 ndr_print_string(ndr, "print_processor", r->print_processor);
5545 ndr->depth--;
5546 ndr_print_ptr(ndr, "parameters", r->parameters);
5547 ndr->depth++;
5548 if (r->parameters) {
5549 ndr_print_string(ndr, "parameters", r->parameters);
5551 ndr->depth--;
5552 ndr_print_ptr(ndr, "driver_name", r->driver_name);
5553 ndr->depth++;
5554 if (r->driver_name) {
5555 ndr_print_string(ndr, "driver_name", r->driver_name);
5557 ndr->depth--;
5558 ndr_print_uint32(ndr, "_devmode_ptr", r->_devmode_ptr);
5559 ndr_print_ptr(ndr, "text_status", r->text_status);
5560 ndr->depth++;
5561 if (r->text_status) {
5562 ndr_print_string(ndr, "text_status", r->text_status);
5564 ndr->depth--;
5565 ndr_print_uint32(ndr, "_secdesc_ptr", r->_secdesc_ptr);
5566 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
5567 ndr_print_uint32(ndr, "priority", r->priority);
5568 ndr_print_uint32(ndr, "position", r->position);
5569 ndr_print_uint32(ndr, "start_time", r->start_time);
5570 ndr_print_uint32(ndr, "until_time", r->until_time);
5571 ndr_print_uint32(ndr, "total_pages", r->total_pages);
5572 ndr_print_uint32(ndr, "size", r->size);
5573 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
5574 ndr_print_uint32(ndr, "time", r->time);
5575 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
5576 ndr->depth--;
5579 static enum ndr_err_code ndr_push_spoolss_SetJobInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetJobInfo4 *r)
5581 if (ndr_flags & NDR_SCALARS) {
5582 NDR_CHECK(ndr_push_align(ndr, 5));
5583 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
5584 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printer_name));
5585 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_name));
5586 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user_name));
5587 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
5588 NDR_CHECK(ndr_push_unique_ptr(ndr, r->notify_name));
5589 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_type));
5590 NDR_CHECK(ndr_push_unique_ptr(ndr, r->print_processor));
5591 NDR_CHECK(ndr_push_unique_ptr(ndr, r->parameters));
5592 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
5593 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_devmode_ptr));
5594 NDR_CHECK(ndr_push_unique_ptr(ndr, r->text_status));
5595 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_secdesc_ptr));
5596 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
5597 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
5598 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
5599 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
5600 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
5601 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
5602 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
5603 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5604 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
5605 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
5606 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size_high));
5607 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
5609 if (ndr_flags & NDR_BUFFERS) {
5610 if (r->printer_name) {
5611 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
5612 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5613 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
5614 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printer_name, ndr_charset_length(r->printer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5616 if (r->server_name) {
5617 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
5618 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5619 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
5620 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_name, ndr_charset_length(r->server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5622 if (r->user_name) {
5623 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5624 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5625 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5626 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user_name, ndr_charset_length(r->user_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5628 if (r->document_name) {
5629 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5630 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5631 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5632 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5634 if (r->notify_name) {
5635 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
5636 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5637 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
5638 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->notify_name, ndr_charset_length(r->notify_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5640 if (r->data_type) {
5641 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5642 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5643 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5644 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_type, ndr_charset_length(r->data_type, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5646 if (r->print_processor) {
5647 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
5648 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5649 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
5650 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->print_processor, ndr_charset_length(r->print_processor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5652 if (r->parameters) {
5653 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
5654 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5655 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
5656 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->parameters, ndr_charset_length(r->parameters, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5658 if (r->driver_name) {
5659 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5660 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5661 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5662 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5664 if (r->text_status) {
5665 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
5666 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5667 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
5668 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->text_status, ndr_charset_length(r->text_status, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5671 return NDR_ERR_SUCCESS;
5674 static enum ndr_err_code ndr_pull_spoolss_SetJobInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetJobInfo4 *r)
5676 uint32_t _ptr_printer_name;
5677 TALLOC_CTX *_mem_save_printer_name_0;
5678 uint32_t _ptr_server_name;
5679 TALLOC_CTX *_mem_save_server_name_0;
5680 uint32_t _ptr_user_name;
5681 TALLOC_CTX *_mem_save_user_name_0;
5682 uint32_t _ptr_document_name;
5683 TALLOC_CTX *_mem_save_document_name_0;
5684 uint32_t _ptr_notify_name;
5685 TALLOC_CTX *_mem_save_notify_name_0;
5686 uint32_t _ptr_data_type;
5687 TALLOC_CTX *_mem_save_data_type_0;
5688 uint32_t _ptr_print_processor;
5689 TALLOC_CTX *_mem_save_print_processor_0;
5690 uint32_t _ptr_parameters;
5691 TALLOC_CTX *_mem_save_parameters_0;
5692 uint32_t _ptr_driver_name;
5693 TALLOC_CTX *_mem_save_driver_name_0;
5694 uint32_t _ptr_text_status;
5695 TALLOC_CTX *_mem_save_text_status_0;
5696 if (ndr_flags & NDR_SCALARS) {
5697 NDR_CHECK(ndr_pull_align(ndr, 5));
5698 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
5699 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
5700 if (_ptr_printer_name) {
5701 NDR_PULL_ALLOC(ndr, r->printer_name);
5702 } else {
5703 r->printer_name = NULL;
5705 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
5706 if (_ptr_server_name) {
5707 NDR_PULL_ALLOC(ndr, r->server_name);
5708 } else {
5709 r->server_name = NULL;
5711 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
5712 if (_ptr_user_name) {
5713 NDR_PULL_ALLOC(ndr, r->user_name);
5714 } else {
5715 r->user_name = NULL;
5717 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
5718 if (_ptr_document_name) {
5719 NDR_PULL_ALLOC(ndr, r->document_name);
5720 } else {
5721 r->document_name = NULL;
5723 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
5724 if (_ptr_notify_name) {
5725 NDR_PULL_ALLOC(ndr, r->notify_name);
5726 } else {
5727 r->notify_name = NULL;
5729 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
5730 if (_ptr_data_type) {
5731 NDR_PULL_ALLOC(ndr, r->data_type);
5732 } else {
5733 r->data_type = NULL;
5735 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
5736 if (_ptr_print_processor) {
5737 NDR_PULL_ALLOC(ndr, r->print_processor);
5738 } else {
5739 r->print_processor = NULL;
5741 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
5742 if (_ptr_parameters) {
5743 NDR_PULL_ALLOC(ndr, r->parameters);
5744 } else {
5745 r->parameters = NULL;
5747 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
5748 if (_ptr_driver_name) {
5749 NDR_PULL_ALLOC(ndr, r->driver_name);
5750 } else {
5751 r->driver_name = NULL;
5753 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_devmode_ptr));
5754 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
5755 if (_ptr_text_status) {
5756 NDR_PULL_ALLOC(ndr, r->text_status);
5757 } else {
5758 r->text_status = NULL;
5760 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_secdesc_ptr));
5761 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
5762 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
5763 if (r->priority > 99) {
5764 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
5766 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
5767 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
5768 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
5769 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
5770 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
5771 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5772 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
5773 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
5774 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size_high));
5775 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
5777 if (ndr_flags & NDR_BUFFERS) {
5778 if (r->printer_name) {
5779 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5780 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
5781 NDR_CHECK(ndr_pull_array_size(ndr, &r->printer_name));
5782 NDR_CHECK(ndr_pull_array_length(ndr, &r->printer_name));
5783 if (ndr_get_array_length(ndr, &r->printer_name) > ndr_get_array_size(ndr, &r->printer_name)) {
5784 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->printer_name), ndr_get_array_length(ndr, &r->printer_name));
5786 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t)));
5787 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printer_name, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t), CH_UTF16));
5788 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
5790 if (r->server_name) {
5791 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5792 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
5793 NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name));
5794 NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name));
5795 if (ndr_get_array_length(ndr, &r->server_name) > ndr_get_array_size(ndr, &r->server_name)) {
5796 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->server_name), ndr_get_array_length(ndr, &r->server_name));
5798 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t)));
5799 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t), CH_UTF16));
5800 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
5802 if (r->user_name) {
5803 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5804 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
5805 NDR_CHECK(ndr_pull_array_size(ndr, &r->user_name));
5806 NDR_CHECK(ndr_pull_array_length(ndr, &r->user_name));
5807 if (ndr_get_array_length(ndr, &r->user_name) > ndr_get_array_size(ndr, &r->user_name)) {
5808 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->user_name), ndr_get_array_length(ndr, &r->user_name));
5810 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t)));
5811 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t), CH_UTF16));
5812 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
5814 if (r->document_name) {
5815 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5816 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
5817 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
5818 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
5819 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
5820 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->document_name), ndr_get_array_length(ndr, &r->document_name));
5822 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
5823 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
5824 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
5826 if (r->notify_name) {
5827 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5828 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
5829 NDR_CHECK(ndr_pull_array_size(ndr, &r->notify_name));
5830 NDR_CHECK(ndr_pull_array_length(ndr, &r->notify_name));
5831 if (ndr_get_array_length(ndr, &r->notify_name) > ndr_get_array_size(ndr, &r->notify_name)) {
5832 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->notify_name), ndr_get_array_length(ndr, &r->notify_name));
5834 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t)));
5835 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->notify_name, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t), CH_UTF16));
5836 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
5838 if (r->data_type) {
5839 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
5840 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
5841 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_type));
5842 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_type));
5843 if (ndr_get_array_length(ndr, &r->data_type) > ndr_get_array_size(ndr, &r->data_type)) {
5844 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data_type), ndr_get_array_length(ndr, &r->data_type));
5846 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t)));
5847 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_type, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t), CH_UTF16));
5848 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
5850 if (r->print_processor) {
5851 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
5852 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
5853 NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
5854 NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
5855 if (ndr_get_array_length(ndr, &r->print_processor) > ndr_get_array_size(ndr, &r->print_processor)) {
5856 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->print_processor), ndr_get_array_length(ndr, &r->print_processor));
5858 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t)));
5859 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t), CH_UTF16));
5860 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
5862 if (r->parameters) {
5863 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
5864 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
5865 NDR_CHECK(ndr_pull_array_size(ndr, &r->parameters));
5866 NDR_CHECK(ndr_pull_array_length(ndr, &r->parameters));
5867 if (ndr_get_array_length(ndr, &r->parameters) > ndr_get_array_size(ndr, &r->parameters)) {
5868 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->parameters), ndr_get_array_length(ndr, &r->parameters));
5870 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t)));
5871 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t), CH_UTF16));
5872 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
5874 if (r->driver_name) {
5875 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5876 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
5877 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
5878 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
5879 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
5880 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_name), ndr_get_array_length(ndr, &r->driver_name));
5882 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
5883 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
5884 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
5886 if (r->text_status) {
5887 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
5888 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
5889 NDR_CHECK(ndr_pull_array_size(ndr, &r->text_status));
5890 NDR_CHECK(ndr_pull_array_length(ndr, &r->text_status));
5891 if (ndr_get_array_length(ndr, &r->text_status) > ndr_get_array_size(ndr, &r->text_status)) {
5892 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->text_status), ndr_get_array_length(ndr, &r->text_status));
5894 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t)));
5895 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->text_status, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t), CH_UTF16));
5896 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
5899 return NDR_ERR_SUCCESS;
5902 _PUBLIC_ void ndr_print_spoolss_SetJobInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_SetJobInfo4 *r)
5904 ndr_print_struct(ndr, name, "spoolss_SetJobInfo4");
5905 ndr->depth++;
5906 ndr_print_uint32(ndr, "job_id", r->job_id);
5907 ndr_print_ptr(ndr, "printer_name", r->printer_name);
5908 ndr->depth++;
5909 if (r->printer_name) {
5910 ndr_print_string(ndr, "printer_name", r->printer_name);
5912 ndr->depth--;
5913 ndr_print_ptr(ndr, "server_name", r->server_name);
5914 ndr->depth++;
5915 if (r->server_name) {
5916 ndr_print_string(ndr, "server_name", r->server_name);
5918 ndr->depth--;
5919 ndr_print_ptr(ndr, "user_name", r->user_name);
5920 ndr->depth++;
5921 if (r->user_name) {
5922 ndr_print_string(ndr, "user_name", r->user_name);
5924 ndr->depth--;
5925 ndr_print_ptr(ndr, "document_name", r->document_name);
5926 ndr->depth++;
5927 if (r->document_name) {
5928 ndr_print_string(ndr, "document_name", r->document_name);
5930 ndr->depth--;
5931 ndr_print_ptr(ndr, "notify_name", r->notify_name);
5932 ndr->depth++;
5933 if (r->notify_name) {
5934 ndr_print_string(ndr, "notify_name", r->notify_name);
5936 ndr->depth--;
5937 ndr_print_ptr(ndr, "data_type", r->data_type);
5938 ndr->depth++;
5939 if (r->data_type) {
5940 ndr_print_string(ndr, "data_type", r->data_type);
5942 ndr->depth--;
5943 ndr_print_ptr(ndr, "print_processor", r->print_processor);
5944 ndr->depth++;
5945 if (r->print_processor) {
5946 ndr_print_string(ndr, "print_processor", r->print_processor);
5948 ndr->depth--;
5949 ndr_print_ptr(ndr, "parameters", r->parameters);
5950 ndr->depth++;
5951 if (r->parameters) {
5952 ndr_print_string(ndr, "parameters", r->parameters);
5954 ndr->depth--;
5955 ndr_print_ptr(ndr, "driver_name", r->driver_name);
5956 ndr->depth++;
5957 if (r->driver_name) {
5958 ndr_print_string(ndr, "driver_name", r->driver_name);
5960 ndr->depth--;
5961 ndr_print_uint32(ndr, "_devmode_ptr", r->_devmode_ptr);
5962 ndr_print_ptr(ndr, "text_status", r->text_status);
5963 ndr->depth++;
5964 if (r->text_status) {
5965 ndr_print_string(ndr, "text_status", r->text_status);
5967 ndr->depth--;
5968 ndr_print_uint32(ndr, "_secdesc_ptr", r->_secdesc_ptr);
5969 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
5970 ndr_print_uint32(ndr, "priority", r->priority);
5971 ndr_print_uint32(ndr, "position", r->position);
5972 ndr_print_uint32(ndr, "start_time", r->start_time);
5973 ndr_print_uint32(ndr, "until_time", r->until_time);
5974 ndr_print_uint32(ndr, "total_pages", r->total_pages);
5975 ndr_print_uint32(ndr, "size", r->size);
5976 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
5977 ndr_print_uint32(ndr, "time", r->time);
5978 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
5979 ndr_print_uint32(ndr, "size_high", r->size_high);
5980 ndr->depth--;
5983 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_SetJobInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_SetJobInfo *r)
5985 if (ndr_flags & NDR_SCALARS) {
5986 int level = ndr_push_get_switch_value(ndr, r);
5987 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
5988 NDR_CHECK(ndr_push_union_align(ndr, 5));
5989 switch (level) {
5990 case 1: {
5991 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
5992 break; }
5994 case 2: {
5995 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
5996 break; }
5998 case 3: {
5999 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
6000 break; }
6002 case 4: {
6003 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
6004 break; }
6006 default: {
6007 break; }
6011 if (ndr_flags & NDR_BUFFERS) {
6012 int level = ndr_push_get_switch_value(ndr, r);
6013 switch (level) {
6014 case 1:
6015 if (r->info1) {
6016 NDR_CHECK(ndr_push_spoolss_SetJobInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
6018 break;
6020 case 2:
6021 if (r->info2) {
6022 NDR_CHECK(ndr_push_spoolss_SetJobInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
6024 break;
6026 case 3:
6027 if (r->info3) {
6028 NDR_CHECK(ndr_push_spoolss_JobInfo3(ndr, NDR_SCALARS, r->info3));
6030 break;
6032 case 4:
6033 if (r->info4) {
6034 NDR_CHECK(ndr_push_spoolss_SetJobInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
6036 break;
6038 default:
6039 break;
6043 return NDR_ERR_SUCCESS;
6046 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_SetJobInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_SetJobInfo *r)
6048 int level;
6049 uint32_t _level;
6050 TALLOC_CTX *_mem_save_info1_0;
6051 TALLOC_CTX *_mem_save_info2_0;
6052 TALLOC_CTX *_mem_save_info3_0;
6053 TALLOC_CTX *_mem_save_info4_0;
6054 level = ndr_pull_get_switch_value(ndr, r);
6055 if (ndr_flags & NDR_SCALARS) {
6056 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
6057 if (_level != level) {
6058 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
6060 NDR_CHECK(ndr_pull_union_align(ndr, 5));
6061 switch (level) {
6062 case 1: {
6063 uint32_t _ptr_info1;
6064 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
6065 if (_ptr_info1) {
6066 NDR_PULL_ALLOC(ndr, r->info1);
6067 } else {
6068 r->info1 = NULL;
6070 break; }
6072 case 2: {
6073 uint32_t _ptr_info2;
6074 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
6075 if (_ptr_info2) {
6076 NDR_PULL_ALLOC(ndr, r->info2);
6077 } else {
6078 r->info2 = NULL;
6080 break; }
6082 case 3: {
6083 uint32_t _ptr_info3;
6084 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
6085 if (_ptr_info3) {
6086 NDR_PULL_ALLOC(ndr, r->info3);
6087 } else {
6088 r->info3 = NULL;
6090 break; }
6092 case 4: {
6093 uint32_t _ptr_info4;
6094 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
6095 if (_ptr_info4) {
6096 NDR_PULL_ALLOC(ndr, r->info4);
6097 } else {
6098 r->info4 = NULL;
6100 break; }
6102 default: {
6103 break; }
6107 if (ndr_flags & NDR_BUFFERS) {
6108 switch (level) {
6109 case 1:
6110 if (r->info1) {
6111 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
6112 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
6113 NDR_CHECK(ndr_pull_spoolss_SetJobInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
6114 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
6116 break;
6118 case 2:
6119 if (r->info2) {
6120 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
6121 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
6122 NDR_CHECK(ndr_pull_spoolss_SetJobInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
6123 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
6125 break;
6127 case 3:
6128 if (r->info3) {
6129 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
6130 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
6131 NDR_CHECK(ndr_pull_spoolss_JobInfo3(ndr, NDR_SCALARS, r->info3));
6132 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
6134 break;
6136 case 4:
6137 if (r->info4) {
6138 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
6139 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
6140 NDR_CHECK(ndr_pull_spoolss_SetJobInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
6141 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
6143 break;
6145 default:
6146 break;
6150 return NDR_ERR_SUCCESS;
6153 _PUBLIC_ void ndr_print_spoolss_SetJobInfo(struct ndr_print *ndr, const char *name, const union spoolss_SetJobInfo *r)
6155 int level;
6156 level = ndr_print_get_switch_value(ndr, r);
6157 ndr_print_union(ndr, name, level, "spoolss_SetJobInfo");
6158 switch (level) {
6159 case 1:
6160 ndr_print_ptr(ndr, "info1", r->info1);
6161 ndr->depth++;
6162 if (r->info1) {
6163 ndr_print_spoolss_SetJobInfo1(ndr, "info1", r->info1);
6165 ndr->depth--;
6166 break;
6168 case 2:
6169 ndr_print_ptr(ndr, "info2", r->info2);
6170 ndr->depth++;
6171 if (r->info2) {
6172 ndr_print_spoolss_SetJobInfo2(ndr, "info2", r->info2);
6174 ndr->depth--;
6175 break;
6177 case 3:
6178 ndr_print_ptr(ndr, "info3", r->info3);
6179 ndr->depth++;
6180 if (r->info3) {
6181 ndr_print_spoolss_JobInfo3(ndr, "info3", r->info3);
6183 ndr->depth--;
6184 break;
6186 case 4:
6187 ndr_print_ptr(ndr, "info4", r->info4);
6188 ndr->depth++;
6189 if (r->info4) {
6190 ndr_print_spoolss_SetJobInfo4(ndr, "info4", r->info4);
6192 ndr->depth--;
6193 break;
6195 default:
6196 break;
6201 static enum ndr_err_code ndr_push_spoolss_JobInfoContainer(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfoContainer *r)
6203 if (ndr_flags & NDR_SCALARS) {
6204 NDR_CHECK(ndr_push_align(ndr, 5));
6205 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
6206 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
6207 NDR_CHECK(ndr_push_spoolss_SetJobInfo(ndr, NDR_SCALARS, &r->info));
6208 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
6210 if (ndr_flags & NDR_BUFFERS) {
6211 NDR_CHECK(ndr_push_spoolss_SetJobInfo(ndr, NDR_BUFFERS, &r->info));
6213 return NDR_ERR_SUCCESS;
6216 static enum ndr_err_code ndr_pull_spoolss_JobInfoContainer(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfoContainer *r)
6218 if (ndr_flags & NDR_SCALARS) {
6219 NDR_CHECK(ndr_pull_align(ndr, 5));
6220 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
6221 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
6222 NDR_CHECK(ndr_pull_spoolss_SetJobInfo(ndr, NDR_SCALARS, &r->info));
6223 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
6225 if (ndr_flags & NDR_BUFFERS) {
6226 NDR_CHECK(ndr_pull_spoolss_SetJobInfo(ndr, NDR_BUFFERS, &r->info));
6228 return NDR_ERR_SUCCESS;
6231 _PUBLIC_ void ndr_print_spoolss_JobInfoContainer(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfoContainer *r)
6233 ndr_print_struct(ndr, name, "spoolss_JobInfoContainer");
6234 ndr->depth++;
6235 ndr_print_uint32(ndr, "level", r->level);
6236 ndr_print_set_switch_value(ndr, &r->info, r->level);
6237 ndr_print_spoolss_SetJobInfo(ndr, "info", &r->info);
6238 ndr->depth--;
6241 static enum ndr_err_code ndr_push_spoolss_JobControl(struct ndr_push *ndr, int ndr_flags, enum spoolss_JobControl r)
6243 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
6244 return NDR_ERR_SUCCESS;
6247 static enum ndr_err_code ndr_pull_spoolss_JobControl(struct ndr_pull *ndr, int ndr_flags, enum spoolss_JobControl *r)
6249 uint32_t v;
6250 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
6251 *r = v;
6252 return NDR_ERR_SUCCESS;
6255 _PUBLIC_ void ndr_print_spoolss_JobControl(struct ndr_print *ndr, const char *name, enum spoolss_JobControl r)
6257 const char *val = NULL;
6259 switch (r) {
6260 case SPOOLSS_JOB_CONTROL_PAUSE: val = "SPOOLSS_JOB_CONTROL_PAUSE"; break;
6261 case SPOOLSS_JOB_CONTROL_RESUME: val = "SPOOLSS_JOB_CONTROL_RESUME"; break;
6262 case SPOOLSS_JOB_CONTROL_CANCEL: val = "SPOOLSS_JOB_CONTROL_CANCEL"; break;
6263 case SPOOLSS_JOB_CONTROL_RESTART: val = "SPOOLSS_JOB_CONTROL_RESTART"; break;
6264 case SPOOLSS_JOB_CONTROL_DELETE: val = "SPOOLSS_JOB_CONTROL_DELETE"; break;
6265 case SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER: val = "SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER"; break;
6266 case SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED: val = "SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED"; break;
6267 case SPOOLSS_JOB_CONTROL_RETAIN: val = "SPOOLSS_JOB_CONTROL_RETAIN"; break;
6268 case SPOOLSS_JOB_CONTROL_RELEASE: val = "SPOOLSS_JOB_CONTROL_RELEASE"; break;
6270 ndr_print_enum(ndr, name, "ENUM", val, r);
6273 static enum ndr_err_code ndr_push_spoolss_PrinterControl(struct ndr_push *ndr, int ndr_flags, enum spoolss_PrinterControl r)
6275 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
6276 return NDR_ERR_SUCCESS;
6279 static enum ndr_err_code ndr_pull_spoolss_PrinterControl(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PrinterControl *r)
6281 uint32_t v;
6282 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
6283 *r = v;
6284 return NDR_ERR_SUCCESS;
6287 _PUBLIC_ void ndr_print_spoolss_PrinterControl(struct ndr_print *ndr, const char *name, enum spoolss_PrinterControl r)
6289 const char *val = NULL;
6291 switch (r) {
6292 case SPOOLSS_PRINTER_CONTROL_UNPAUSE: val = "SPOOLSS_PRINTER_CONTROL_UNPAUSE"; break;
6293 case SPOOLSS_PRINTER_CONTROL_PAUSE: val = "SPOOLSS_PRINTER_CONTROL_PAUSE"; break;
6294 case SPOOLSS_PRINTER_CONTROL_RESUME: val = "SPOOLSS_PRINTER_CONTROL_RESUME"; break;
6295 case SPOOLSS_PRINTER_CONTROL_PURGE: val = "SPOOLSS_PRINTER_CONTROL_PURGE"; break;
6296 case SPOOLSS_PRINTER_CONTROL_SET_STATUS: val = "SPOOLSS_PRINTER_CONTROL_SET_STATUS"; break;
6298 ndr_print_enum(ndr, name, "ENUM", val, r);
6301 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo0(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo0 *r)
6303 if (ndr_flags & NDR_SCALARS) {
6304 NDR_CHECK(ndr_push_align(ndr, 5));
6305 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
6306 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
6307 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
6308 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_jobs));
6309 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_bytes));
6310 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->time));
6311 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->global_counter));
6312 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
6313 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
6314 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->free_build));
6315 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->spooling));
6316 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_spooling));
6317 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->session_counter));
6318 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_out_of_paper));
6319 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_not_ready));
6320 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_error));
6321 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->number_of_processors));
6322 NDR_CHECK(ndr_push_spoolss_ProcessorType(ndr, NDR_SCALARS, r->processor_type));
6323 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->high_part_total_bytes));
6324 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->change_id));
6325 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->last_error));
6326 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->status));
6327 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->enumerate_network_printers));
6328 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->c_setprinter));
6329 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor_architecture));
6330 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->processor_level));
6331 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ref_ic));
6332 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved2));
6333 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved3));
6334 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
6336 if (ndr_flags & NDR_BUFFERS) {
6337 if (r->servername) {
6338 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
6339 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6340 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
6341 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6343 if (r->printername) {
6344 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6345 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6346 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6347 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6350 return NDR_ERR_SUCCESS;
6353 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo0(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo0 *r)
6355 uint32_t _ptr_servername;
6356 TALLOC_CTX *_mem_save_servername_0;
6357 uint32_t _ptr_printername;
6358 TALLOC_CTX *_mem_save_printername_0;
6359 if (ndr_flags & NDR_SCALARS) {
6360 NDR_CHECK(ndr_pull_align(ndr, 5));
6361 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
6362 if (_ptr_servername) {
6363 NDR_PULL_ALLOC(ndr, r->servername);
6364 } else {
6365 r->servername = NULL;
6367 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
6368 if (_ptr_printername) {
6369 NDR_PULL_ALLOC(ndr, r->printername);
6370 } else {
6371 r->printername = NULL;
6373 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
6374 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_jobs));
6375 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_bytes));
6376 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->time));
6377 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->global_counter));
6378 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
6379 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
6380 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->free_build));
6381 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->spooling));
6382 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_spooling));
6383 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->session_counter));
6384 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_out_of_paper));
6385 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_not_ready));
6386 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_error));
6387 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->number_of_processors));
6388 NDR_CHECK(ndr_pull_spoolss_ProcessorType(ndr, NDR_SCALARS, &r->processor_type));
6389 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->high_part_total_bytes));
6390 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->change_id));
6391 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->last_error));
6392 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->status));
6393 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->enumerate_network_printers));
6394 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->c_setprinter));
6395 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor_architecture));
6396 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->processor_level));
6397 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ref_ic));
6398 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
6399 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved3));
6400 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
6402 if (ndr_flags & NDR_BUFFERS) {
6403 if (r->servername) {
6404 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6405 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
6406 NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
6407 NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
6408 if (ndr_get_array_length(ndr, &r->servername) > ndr_get_array_size(ndr, &r->servername)) {
6409 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->servername), ndr_get_array_length(ndr, &r->servername));
6411 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t)));
6412 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t), CH_UTF16));
6413 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
6415 if (r->printername) {
6416 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6417 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
6418 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
6419 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
6420 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
6421 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->printername), ndr_get_array_length(ndr, &r->printername));
6423 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
6424 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
6425 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
6428 return NDR_ERR_SUCCESS;
6431 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo0(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo0 *r)
6433 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo0");
6434 ndr->depth++;
6435 ndr_print_ptr(ndr, "servername", r->servername);
6436 ndr->depth++;
6437 if (r->servername) {
6438 ndr_print_string(ndr, "servername", r->servername);
6440 ndr->depth--;
6441 ndr_print_ptr(ndr, "printername", r->printername);
6442 ndr->depth++;
6443 if (r->printername) {
6444 ndr_print_string(ndr, "printername", r->printername);
6446 ndr->depth--;
6447 ndr_print_uint32(ndr, "cjobs", r->cjobs);
6448 ndr_print_uint32(ndr, "total_jobs", r->total_jobs);
6449 ndr_print_uint32(ndr, "total_bytes", r->total_bytes);
6450 ndr_print_spoolss_Time(ndr, "time", &r->time);
6451 ndr_print_uint32(ndr, "global_counter", r->global_counter);
6452 ndr_print_uint32(ndr, "total_pages", r->total_pages);
6453 ndr_print_uint32(ndr, "version", r->version);
6454 ndr_print_uint32(ndr, "free_build", r->free_build);
6455 ndr_print_uint32(ndr, "spooling", r->spooling);
6456 ndr_print_uint32(ndr, "max_spooling", r->max_spooling);
6457 ndr_print_uint32(ndr, "session_counter", r->session_counter);
6458 ndr_print_uint32(ndr, "num_error_out_of_paper", r->num_error_out_of_paper);
6459 ndr_print_uint32(ndr, "num_error_not_ready", r->num_error_not_ready);
6460 ndr_print_uint32(ndr, "job_error", r->job_error);
6461 ndr_print_uint32(ndr, "number_of_processors", r->number_of_processors);
6462 ndr_print_spoolss_ProcessorType(ndr, "processor_type", r->processor_type);
6463 ndr_print_uint32(ndr, "high_part_total_bytes", r->high_part_total_bytes);
6464 ndr_print_uint32(ndr, "change_id", r->change_id);
6465 ndr_print_WERROR(ndr, "last_error", r->last_error);
6466 ndr_print_uint32(ndr, "status", r->status);
6467 ndr_print_uint32(ndr, "enumerate_network_printers", r->enumerate_network_printers);
6468 ndr_print_uint32(ndr, "c_setprinter", r->c_setprinter);
6469 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor_architecture", r->processor_architecture);
6470 ndr_print_uint16(ndr, "processor_level", r->processor_level);
6471 ndr_print_uint32(ndr, "ref_ic", r->ref_ic);
6472 ndr_print_uint32(ndr, "reserved2", r->reserved2);
6473 ndr_print_uint32(ndr, "reserved3", r->reserved3);
6474 ndr->depth--;
6477 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo1 *r)
6479 if (ndr_flags & NDR_SCALARS) {
6480 NDR_CHECK(ndr_push_align(ndr, 5));
6481 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->flags));
6482 NDR_CHECK(ndr_push_unique_ptr(ndr, r->description));
6483 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
6484 NDR_CHECK(ndr_push_unique_ptr(ndr, r->comment));
6485 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
6487 if (ndr_flags & NDR_BUFFERS) {
6488 if (r->description) {
6489 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->description, CH_UTF16)));
6490 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6491 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->description, CH_UTF16)));
6492 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->description, ndr_charset_length(r->description, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6494 if (r->name) {
6495 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
6496 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6497 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
6498 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, ndr_charset_length(r->name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6500 if (r->comment) {
6501 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
6502 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6503 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
6504 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->comment, ndr_charset_length(r->comment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6507 return NDR_ERR_SUCCESS;
6510 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo1 *r)
6512 uint32_t _ptr_description;
6513 TALLOC_CTX *_mem_save_description_0;
6514 uint32_t _ptr_name;
6515 TALLOC_CTX *_mem_save_name_0;
6516 uint32_t _ptr_comment;
6517 TALLOC_CTX *_mem_save_comment_0;
6518 if (ndr_flags & NDR_SCALARS) {
6519 NDR_CHECK(ndr_pull_align(ndr, 5));
6520 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->flags));
6521 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
6522 if (_ptr_description) {
6523 NDR_PULL_ALLOC(ndr, r->description);
6524 } else {
6525 r->description = NULL;
6527 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
6528 if (_ptr_name) {
6529 NDR_PULL_ALLOC(ndr, r->name);
6530 } else {
6531 r->name = NULL;
6533 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
6534 if (_ptr_comment) {
6535 NDR_PULL_ALLOC(ndr, r->comment);
6536 } else {
6537 r->comment = NULL;
6539 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
6541 if (ndr_flags & NDR_BUFFERS) {
6542 if (r->description) {
6543 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
6544 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
6545 NDR_CHECK(ndr_pull_array_size(ndr, &r->description));
6546 NDR_CHECK(ndr_pull_array_length(ndr, &r->description));
6547 if (ndr_get_array_length(ndr, &r->description) > ndr_get_array_size(ndr, &r->description)) {
6548 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->description), ndr_get_array_length(ndr, &r->description));
6550 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->description), sizeof(uint16_t)));
6551 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->description, ndr_get_array_length(ndr, &r->description), sizeof(uint16_t), CH_UTF16));
6552 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
6554 if (r->name) {
6555 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6556 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
6557 NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
6558 NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
6559 if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) {
6560 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->name), ndr_get_array_length(ndr, &r->name));
6562 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t)));
6563 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16));
6564 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
6566 if (r->comment) {
6567 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
6568 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
6569 NDR_CHECK(ndr_pull_array_size(ndr, &r->comment));
6570 NDR_CHECK(ndr_pull_array_length(ndr, &r->comment));
6571 if (ndr_get_array_length(ndr, &r->comment) > ndr_get_array_size(ndr, &r->comment)) {
6572 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));
6574 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t)));
6575 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t), CH_UTF16));
6576 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
6579 return NDR_ERR_SUCCESS;
6582 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo1 *r)
6584 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo1");
6585 ndr->depth++;
6586 ndr_print_spoolss_PrinterAttributes(ndr, "flags", r->flags);
6587 ndr_print_ptr(ndr, "description", r->description);
6588 ndr->depth++;
6589 if (r->description) {
6590 ndr_print_string(ndr, "description", r->description);
6592 ndr->depth--;
6593 ndr_print_ptr(ndr, "name", r->name);
6594 ndr->depth++;
6595 if (r->name) {
6596 ndr_print_string(ndr, "name", r->name);
6598 ndr->depth--;
6599 ndr_print_ptr(ndr, "comment", r->comment);
6600 ndr->depth++;
6601 if (r->comment) {
6602 ndr_print_string(ndr, "comment", r->comment);
6604 ndr->depth--;
6605 ndr->depth--;
6608 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo2 *r)
6610 if (ndr_flags & NDR_SCALARS) {
6611 NDR_CHECK(ndr_push_align(ndr, 5));
6612 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
6613 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
6614 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sharename));
6615 NDR_CHECK(ndr_push_unique_ptr(ndr, r->portname));
6616 NDR_CHECK(ndr_push_unique_ptr(ndr, r->drivername));
6617 NDR_CHECK(ndr_push_unique_ptr(ndr, r->comment));
6618 NDR_CHECK(ndr_push_unique_ptr(ndr, r->location));
6619 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->devmode_ptr));
6620 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sepfile));
6621 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printprocessor));
6622 NDR_CHECK(ndr_push_unique_ptr(ndr, r->datatype));
6623 NDR_CHECK(ndr_push_unique_ptr(ndr, r->parameters));
6624 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->secdesc_ptr));
6625 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
6626 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
6627 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->defaultpriority));
6628 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->starttime));
6629 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->untiltime));
6630 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
6631 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
6632 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->averageppm));
6633 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
6635 if (ndr_flags & NDR_BUFFERS) {
6636 if (r->servername) {
6637 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
6638 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6639 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
6640 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6642 if (r->printername) {
6643 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6644 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6645 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6646 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6648 if (r->sharename) {
6649 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->sharename, CH_UTF16)));
6650 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6651 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->sharename, CH_UTF16)));
6652 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->sharename, ndr_charset_length(r->sharename, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6654 if (r->portname) {
6655 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
6656 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6657 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
6658 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, ndr_charset_length(r->portname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6660 if (r->drivername) {
6661 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->drivername, CH_UTF16)));
6662 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6663 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->drivername, CH_UTF16)));
6664 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->drivername, ndr_charset_length(r->drivername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6666 if (r->comment) {
6667 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
6668 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6669 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
6670 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->comment, ndr_charset_length(r->comment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6672 if (r->location) {
6673 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->location, CH_UTF16)));
6674 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6675 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->location, CH_UTF16)));
6676 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->location, ndr_charset_length(r->location, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6678 if (r->sepfile) {
6679 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->sepfile, CH_UTF16)));
6680 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6681 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->sepfile, CH_UTF16)));
6682 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->sepfile, ndr_charset_length(r->sepfile, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6684 if (r->printprocessor) {
6685 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printprocessor, CH_UTF16)));
6686 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6687 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printprocessor, CH_UTF16)));
6688 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printprocessor, ndr_charset_length(r->printprocessor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6690 if (r->datatype) {
6691 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
6692 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6693 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
6694 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->datatype, ndr_charset_length(r->datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6696 if (r->parameters) {
6697 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
6698 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6699 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
6700 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->parameters, ndr_charset_length(r->parameters, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6703 return NDR_ERR_SUCCESS;
6706 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo2 *r)
6708 uint32_t _ptr_servername;
6709 TALLOC_CTX *_mem_save_servername_0;
6710 uint32_t _ptr_printername;
6711 TALLOC_CTX *_mem_save_printername_0;
6712 uint32_t _ptr_sharename;
6713 TALLOC_CTX *_mem_save_sharename_0;
6714 uint32_t _ptr_portname;
6715 TALLOC_CTX *_mem_save_portname_0;
6716 uint32_t _ptr_drivername;
6717 TALLOC_CTX *_mem_save_drivername_0;
6718 uint32_t _ptr_comment;
6719 TALLOC_CTX *_mem_save_comment_0;
6720 uint32_t _ptr_location;
6721 TALLOC_CTX *_mem_save_location_0;
6722 uint32_t _ptr_sepfile;
6723 TALLOC_CTX *_mem_save_sepfile_0;
6724 uint32_t _ptr_printprocessor;
6725 TALLOC_CTX *_mem_save_printprocessor_0;
6726 uint32_t _ptr_datatype;
6727 TALLOC_CTX *_mem_save_datatype_0;
6728 uint32_t _ptr_parameters;
6729 TALLOC_CTX *_mem_save_parameters_0;
6730 if (ndr_flags & NDR_SCALARS) {
6731 NDR_CHECK(ndr_pull_align(ndr, 5));
6732 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
6733 if (_ptr_servername) {
6734 NDR_PULL_ALLOC(ndr, r->servername);
6735 } else {
6736 r->servername = NULL;
6738 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
6739 if (_ptr_printername) {
6740 NDR_PULL_ALLOC(ndr, r->printername);
6741 } else {
6742 r->printername = NULL;
6744 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sharename));
6745 if (_ptr_sharename) {
6746 NDR_PULL_ALLOC(ndr, r->sharename);
6747 } else {
6748 r->sharename = NULL;
6750 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
6751 if (_ptr_portname) {
6752 NDR_PULL_ALLOC(ndr, r->portname);
6753 } else {
6754 r->portname = NULL;
6756 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_drivername));
6757 if (_ptr_drivername) {
6758 NDR_PULL_ALLOC(ndr, r->drivername);
6759 } else {
6760 r->drivername = NULL;
6762 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
6763 if (_ptr_comment) {
6764 NDR_PULL_ALLOC(ndr, r->comment);
6765 } else {
6766 r->comment = NULL;
6768 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_location));
6769 if (_ptr_location) {
6770 NDR_PULL_ALLOC(ndr, r->location);
6771 } else {
6772 r->location = NULL;
6774 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->devmode_ptr));
6775 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sepfile));
6776 if (_ptr_sepfile) {
6777 NDR_PULL_ALLOC(ndr, r->sepfile);
6778 } else {
6779 r->sepfile = NULL;
6781 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printprocessor));
6782 if (_ptr_printprocessor) {
6783 NDR_PULL_ALLOC(ndr, r->printprocessor);
6784 } else {
6785 r->printprocessor = NULL;
6787 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
6788 if (_ptr_datatype) {
6789 NDR_PULL_ALLOC(ndr, r->datatype);
6790 } else {
6791 r->datatype = NULL;
6793 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
6794 if (_ptr_parameters) {
6795 NDR_PULL_ALLOC(ndr, r->parameters);
6796 } else {
6797 r->parameters = NULL;
6799 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->secdesc_ptr));
6800 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
6801 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
6802 if (r->priority > 99) {
6803 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
6805 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->defaultpriority));
6806 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->starttime));
6807 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->untiltime));
6808 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
6809 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
6810 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->averageppm));
6811 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
6813 if (ndr_flags & NDR_BUFFERS) {
6814 if (r->servername) {
6815 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6816 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
6817 NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
6818 NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
6819 if (ndr_get_array_length(ndr, &r->servername) > ndr_get_array_size(ndr, &r->servername)) {
6820 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->servername), ndr_get_array_length(ndr, &r->servername));
6822 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t)));
6823 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t), CH_UTF16));
6824 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
6826 if (r->printername) {
6827 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6828 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
6829 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
6830 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
6831 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
6832 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->printername), ndr_get_array_length(ndr, &r->printername));
6834 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
6835 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
6836 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
6838 if (r->sharename) {
6839 _mem_save_sharename_0 = NDR_PULL_GET_MEM_CTX(ndr);
6840 NDR_PULL_SET_MEM_CTX(ndr, r->sharename, 0);
6841 NDR_CHECK(ndr_pull_array_size(ndr, &r->sharename));
6842 NDR_CHECK(ndr_pull_array_length(ndr, &r->sharename));
6843 if (ndr_get_array_length(ndr, &r->sharename) > ndr_get_array_size(ndr, &r->sharename)) {
6844 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->sharename), ndr_get_array_length(ndr, &r->sharename));
6846 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->sharename), sizeof(uint16_t)));
6847 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->sharename, ndr_get_array_length(ndr, &r->sharename), sizeof(uint16_t), CH_UTF16));
6848 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sharename_0, 0);
6850 if (r->portname) {
6851 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
6852 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
6853 NDR_CHECK(ndr_pull_array_size(ndr, &r->portname));
6854 NDR_CHECK(ndr_pull_array_length(ndr, &r->portname));
6855 if (ndr_get_array_length(ndr, &r->portname) > ndr_get_array_size(ndr, &r->portname)) {
6856 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->portname), ndr_get_array_length(ndr, &r->portname));
6858 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t)));
6859 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t), CH_UTF16));
6860 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
6862 if (r->drivername) {
6863 _mem_save_drivername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6864 NDR_PULL_SET_MEM_CTX(ndr, r->drivername, 0);
6865 NDR_CHECK(ndr_pull_array_size(ndr, &r->drivername));
6866 NDR_CHECK(ndr_pull_array_length(ndr, &r->drivername));
6867 if (ndr_get_array_length(ndr, &r->drivername) > ndr_get_array_size(ndr, &r->drivername)) {
6868 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));
6870 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->drivername), sizeof(uint16_t)));
6871 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->drivername, ndr_get_array_length(ndr, &r->drivername), sizeof(uint16_t), CH_UTF16));
6872 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_drivername_0, 0);
6874 if (r->comment) {
6875 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
6876 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
6877 NDR_CHECK(ndr_pull_array_size(ndr, &r->comment));
6878 NDR_CHECK(ndr_pull_array_length(ndr, &r->comment));
6879 if (ndr_get_array_length(ndr, &r->comment) > ndr_get_array_size(ndr, &r->comment)) {
6880 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));
6882 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t)));
6883 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t), CH_UTF16));
6884 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
6886 if (r->location) {
6887 _mem_save_location_0 = NDR_PULL_GET_MEM_CTX(ndr);
6888 NDR_PULL_SET_MEM_CTX(ndr, r->location, 0);
6889 NDR_CHECK(ndr_pull_array_size(ndr, &r->location));
6890 NDR_CHECK(ndr_pull_array_length(ndr, &r->location));
6891 if (ndr_get_array_length(ndr, &r->location) > ndr_get_array_size(ndr, &r->location)) {
6892 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->location), ndr_get_array_length(ndr, &r->location));
6894 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->location), sizeof(uint16_t)));
6895 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->location, ndr_get_array_length(ndr, &r->location), sizeof(uint16_t), CH_UTF16));
6896 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_location_0, 0);
6898 if (r->sepfile) {
6899 _mem_save_sepfile_0 = NDR_PULL_GET_MEM_CTX(ndr);
6900 NDR_PULL_SET_MEM_CTX(ndr, r->sepfile, 0);
6901 NDR_CHECK(ndr_pull_array_size(ndr, &r->sepfile));
6902 NDR_CHECK(ndr_pull_array_length(ndr, &r->sepfile));
6903 if (ndr_get_array_length(ndr, &r->sepfile) > ndr_get_array_size(ndr, &r->sepfile)) {
6904 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->sepfile), ndr_get_array_length(ndr, &r->sepfile));
6906 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->sepfile), sizeof(uint16_t)));
6907 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->sepfile, ndr_get_array_length(ndr, &r->sepfile), sizeof(uint16_t), CH_UTF16));
6908 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sepfile_0, 0);
6910 if (r->printprocessor) {
6911 _mem_save_printprocessor_0 = NDR_PULL_GET_MEM_CTX(ndr);
6912 NDR_PULL_SET_MEM_CTX(ndr, r->printprocessor, 0);
6913 NDR_CHECK(ndr_pull_array_size(ndr, &r->printprocessor));
6914 NDR_CHECK(ndr_pull_array_length(ndr, &r->printprocessor));
6915 if (ndr_get_array_length(ndr, &r->printprocessor) > ndr_get_array_size(ndr, &r->printprocessor)) {
6916 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->printprocessor), ndr_get_array_length(ndr, &r->printprocessor));
6918 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printprocessor), sizeof(uint16_t)));
6919 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printprocessor, ndr_get_array_length(ndr, &r->printprocessor), sizeof(uint16_t), CH_UTF16));
6920 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printprocessor_0, 0);
6922 if (r->datatype) {
6923 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
6924 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
6925 NDR_CHECK(ndr_pull_array_size(ndr, &r->datatype));
6926 NDR_CHECK(ndr_pull_array_length(ndr, &r->datatype));
6927 if (ndr_get_array_length(ndr, &r->datatype) > ndr_get_array_size(ndr, &r->datatype)) {
6928 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->datatype), ndr_get_array_length(ndr, &r->datatype));
6930 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t)));
6931 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->datatype, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t), CH_UTF16));
6932 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
6934 if (r->parameters) {
6935 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
6936 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
6937 NDR_CHECK(ndr_pull_array_size(ndr, &r->parameters));
6938 NDR_CHECK(ndr_pull_array_length(ndr, &r->parameters));
6939 if (ndr_get_array_length(ndr, &r->parameters) > ndr_get_array_size(ndr, &r->parameters)) {
6940 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->parameters), ndr_get_array_length(ndr, &r->parameters));
6942 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t)));
6943 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t), CH_UTF16));
6944 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
6947 return NDR_ERR_SUCCESS;
6950 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo2 *r)
6952 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo2");
6953 ndr->depth++;
6954 ndr_print_ptr(ndr, "servername", r->servername);
6955 ndr->depth++;
6956 if (r->servername) {
6957 ndr_print_string(ndr, "servername", r->servername);
6959 ndr->depth--;
6960 ndr_print_ptr(ndr, "printername", r->printername);
6961 ndr->depth++;
6962 if (r->printername) {
6963 ndr_print_string(ndr, "printername", r->printername);
6965 ndr->depth--;
6966 ndr_print_ptr(ndr, "sharename", r->sharename);
6967 ndr->depth++;
6968 if (r->sharename) {
6969 ndr_print_string(ndr, "sharename", r->sharename);
6971 ndr->depth--;
6972 ndr_print_ptr(ndr, "portname", r->portname);
6973 ndr->depth++;
6974 if (r->portname) {
6975 ndr_print_string(ndr, "portname", r->portname);
6977 ndr->depth--;
6978 ndr_print_ptr(ndr, "drivername", r->drivername);
6979 ndr->depth++;
6980 if (r->drivername) {
6981 ndr_print_string(ndr, "drivername", r->drivername);
6983 ndr->depth--;
6984 ndr_print_ptr(ndr, "comment", r->comment);
6985 ndr->depth++;
6986 if (r->comment) {
6987 ndr_print_string(ndr, "comment", r->comment);
6989 ndr->depth--;
6990 ndr_print_ptr(ndr, "location", r->location);
6991 ndr->depth++;
6992 if (r->location) {
6993 ndr_print_string(ndr, "location", r->location);
6995 ndr->depth--;
6996 ndr_print_uint32(ndr, "devmode_ptr", r->devmode_ptr);
6997 ndr_print_ptr(ndr, "sepfile", r->sepfile);
6998 ndr->depth++;
6999 if (r->sepfile) {
7000 ndr_print_string(ndr, "sepfile", r->sepfile);
7002 ndr->depth--;
7003 ndr_print_ptr(ndr, "printprocessor", r->printprocessor);
7004 ndr->depth++;
7005 if (r->printprocessor) {
7006 ndr_print_string(ndr, "printprocessor", r->printprocessor);
7008 ndr->depth--;
7009 ndr_print_ptr(ndr, "datatype", r->datatype);
7010 ndr->depth++;
7011 if (r->datatype) {
7012 ndr_print_string(ndr, "datatype", r->datatype);
7014 ndr->depth--;
7015 ndr_print_ptr(ndr, "parameters", r->parameters);
7016 ndr->depth++;
7017 if (r->parameters) {
7018 ndr_print_string(ndr, "parameters", r->parameters);
7020 ndr->depth--;
7021 ndr_print_uint32(ndr, "secdesc_ptr", r->secdesc_ptr);
7022 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
7023 ndr_print_uint32(ndr, "priority", r->priority);
7024 ndr_print_uint32(ndr, "defaultpriority", r->defaultpriority);
7025 ndr_print_uint32(ndr, "starttime", r->starttime);
7026 ndr_print_uint32(ndr, "untiltime", r->untiltime);
7027 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
7028 ndr_print_uint32(ndr, "cjobs", r->cjobs);
7029 ndr_print_uint32(ndr, "averageppm", r->averageppm);
7030 ndr->depth--;
7033 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo3 *r)
7035 if (ndr_flags & NDR_SCALARS) {
7036 NDR_CHECK(ndr_push_align(ndr, 4));
7037 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sec_desc_ptr));
7038 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
7040 if (ndr_flags & NDR_BUFFERS) {
7042 return NDR_ERR_SUCCESS;
7045 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo3 *r)
7047 if (ndr_flags & NDR_SCALARS) {
7048 NDR_CHECK(ndr_pull_align(ndr, 4));
7049 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sec_desc_ptr));
7050 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
7052 if (ndr_flags & NDR_BUFFERS) {
7054 return NDR_ERR_SUCCESS;
7057 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo3 *r)
7059 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo3");
7060 ndr->depth++;
7061 ndr_print_uint32(ndr, "sec_desc_ptr", r->sec_desc_ptr);
7062 ndr->depth--;
7065 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo4 *r)
7067 if (ndr_flags & NDR_SCALARS) {
7068 NDR_CHECK(ndr_push_align(ndr, 5));
7069 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
7070 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
7071 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
7072 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
7074 if (ndr_flags & NDR_BUFFERS) {
7075 if (r->printername) {
7076 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
7077 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7078 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
7079 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7081 if (r->servername) {
7082 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
7083 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7084 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
7085 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7088 return NDR_ERR_SUCCESS;
7091 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo4 *r)
7093 uint32_t _ptr_printername;
7094 TALLOC_CTX *_mem_save_printername_0;
7095 uint32_t _ptr_servername;
7096 TALLOC_CTX *_mem_save_servername_0;
7097 if (ndr_flags & NDR_SCALARS) {
7098 NDR_CHECK(ndr_pull_align(ndr, 5));
7099 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
7100 if (_ptr_printername) {
7101 NDR_PULL_ALLOC(ndr, r->printername);
7102 } else {
7103 r->printername = NULL;
7105 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
7106 if (_ptr_servername) {
7107 NDR_PULL_ALLOC(ndr, r->servername);
7108 } else {
7109 r->servername = NULL;
7111 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
7112 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
7114 if (ndr_flags & NDR_BUFFERS) {
7115 if (r->printername) {
7116 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
7117 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
7118 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
7119 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
7120 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
7121 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->printername), ndr_get_array_length(ndr, &r->printername));
7123 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
7124 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
7125 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
7127 if (r->servername) {
7128 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
7129 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
7130 NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
7131 NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
7132 if (ndr_get_array_length(ndr, &r->servername) > ndr_get_array_size(ndr, &r->servername)) {
7133 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->servername), ndr_get_array_length(ndr, &r->servername));
7135 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t)));
7136 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t), CH_UTF16));
7137 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
7140 return NDR_ERR_SUCCESS;
7143 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo4 *r)
7145 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo4");
7146 ndr->depth++;
7147 ndr_print_ptr(ndr, "printername", r->printername);
7148 ndr->depth++;
7149 if (r->printername) {
7150 ndr_print_string(ndr, "printername", r->printername);
7152 ndr->depth--;
7153 ndr_print_ptr(ndr, "servername", r->servername);
7154 ndr->depth++;
7155 if (r->servername) {
7156 ndr_print_string(ndr, "servername", r->servername);
7158 ndr->depth--;
7159 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
7160 ndr->depth--;
7163 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo5 *r)
7165 if (ndr_flags & NDR_SCALARS) {
7166 NDR_CHECK(ndr_push_align(ndr, 5));
7167 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
7168 NDR_CHECK(ndr_push_unique_ptr(ndr, r->portname));
7169 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
7170 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->device_not_selected_timeout));
7171 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->transmission_retry_timeout));
7172 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
7174 if (ndr_flags & NDR_BUFFERS) {
7175 if (r->printername) {
7176 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
7177 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7178 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
7179 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7181 if (r->portname) {
7182 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
7183 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7184 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
7185 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, ndr_charset_length(r->portname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7188 return NDR_ERR_SUCCESS;
7191 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo5 *r)
7193 uint32_t _ptr_printername;
7194 TALLOC_CTX *_mem_save_printername_0;
7195 uint32_t _ptr_portname;
7196 TALLOC_CTX *_mem_save_portname_0;
7197 if (ndr_flags & NDR_SCALARS) {
7198 NDR_CHECK(ndr_pull_align(ndr, 5));
7199 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
7200 if (_ptr_printername) {
7201 NDR_PULL_ALLOC(ndr, r->printername);
7202 } else {
7203 r->printername = NULL;
7205 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
7206 if (_ptr_portname) {
7207 NDR_PULL_ALLOC(ndr, r->portname);
7208 } else {
7209 r->portname = NULL;
7211 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
7212 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->device_not_selected_timeout));
7213 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->transmission_retry_timeout));
7214 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
7216 if (ndr_flags & NDR_BUFFERS) {
7217 if (r->printername) {
7218 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
7219 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
7220 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
7221 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
7222 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
7223 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->printername), ndr_get_array_length(ndr, &r->printername));
7225 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
7226 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
7227 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
7229 if (r->portname) {
7230 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
7231 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
7232 NDR_CHECK(ndr_pull_array_size(ndr, &r->portname));
7233 NDR_CHECK(ndr_pull_array_length(ndr, &r->portname));
7234 if (ndr_get_array_length(ndr, &r->portname) > ndr_get_array_size(ndr, &r->portname)) {
7235 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->portname), ndr_get_array_length(ndr, &r->portname));
7237 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t)));
7238 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t), CH_UTF16));
7239 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
7242 return NDR_ERR_SUCCESS;
7245 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo5 *r)
7247 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo5");
7248 ndr->depth++;
7249 ndr_print_ptr(ndr, "printername", r->printername);
7250 ndr->depth++;
7251 if (r->printername) {
7252 ndr_print_string(ndr, "printername", r->printername);
7254 ndr->depth--;
7255 ndr_print_ptr(ndr, "portname", r->portname);
7256 ndr->depth++;
7257 if (r->portname) {
7258 ndr_print_string(ndr, "portname", r->portname);
7260 ndr->depth--;
7261 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
7262 ndr_print_uint32(ndr, "device_not_selected_timeout", r->device_not_selected_timeout);
7263 ndr_print_uint32(ndr, "transmission_retry_timeout", r->transmission_retry_timeout);
7264 ndr->depth--;
7267 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo6 *r)
7269 if (ndr_flags & NDR_SCALARS) {
7270 NDR_CHECK(ndr_push_align(ndr, 4));
7271 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
7272 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
7274 if (ndr_flags & NDR_BUFFERS) {
7276 return NDR_ERR_SUCCESS;
7279 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo6 *r)
7281 if (ndr_flags & NDR_SCALARS) {
7282 NDR_CHECK(ndr_pull_align(ndr, 4));
7283 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
7284 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
7286 if (ndr_flags & NDR_BUFFERS) {
7288 return NDR_ERR_SUCCESS;
7291 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo6 *r)
7293 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo6");
7294 ndr->depth++;
7295 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
7296 ndr->depth--;
7299 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo7(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo7 *r)
7301 if (ndr_flags & NDR_SCALARS) {
7302 NDR_CHECK(ndr_push_align(ndr, 5));
7303 NDR_CHECK(ndr_push_unique_ptr(ndr, r->guid));
7304 NDR_CHECK(ndr_push_spoolss_DsPrintAction(ndr, NDR_SCALARS, r->action));
7305 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
7307 if (ndr_flags & NDR_BUFFERS) {
7308 if (r->guid) {
7309 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->guid, CH_UTF16)));
7310 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7311 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->guid, CH_UTF16)));
7312 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->guid, ndr_charset_length(r->guid, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7315 return NDR_ERR_SUCCESS;
7318 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo7(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo7 *r)
7320 uint32_t _ptr_guid;
7321 TALLOC_CTX *_mem_save_guid_0;
7322 if (ndr_flags & NDR_SCALARS) {
7323 NDR_CHECK(ndr_pull_align(ndr, 5));
7324 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_guid));
7325 if (_ptr_guid) {
7326 NDR_PULL_ALLOC(ndr, r->guid);
7327 } else {
7328 r->guid = NULL;
7330 NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr, NDR_SCALARS, &r->action));
7331 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
7333 if (ndr_flags & NDR_BUFFERS) {
7334 if (r->guid) {
7335 _mem_save_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
7336 NDR_PULL_SET_MEM_CTX(ndr, r->guid, 0);
7337 NDR_CHECK(ndr_pull_array_size(ndr, &r->guid));
7338 NDR_CHECK(ndr_pull_array_length(ndr, &r->guid));
7339 if (ndr_get_array_length(ndr, &r->guid) > ndr_get_array_size(ndr, &r->guid)) {
7340 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->guid), ndr_get_array_length(ndr, &r->guid));
7342 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->guid), sizeof(uint16_t)));
7343 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->guid, ndr_get_array_length(ndr, &r->guid), sizeof(uint16_t), CH_UTF16));
7344 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_guid_0, 0);
7347 return NDR_ERR_SUCCESS;
7350 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo7(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo7 *r)
7352 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo7");
7353 ndr->depth++;
7354 ndr_print_ptr(ndr, "guid", r->guid);
7355 ndr->depth++;
7356 if (r->guid) {
7357 ndr_print_string(ndr, "guid", r->guid);
7359 ndr->depth--;
7360 ndr_print_spoolss_DsPrintAction(ndr, "action", r->action);
7361 ndr->depth--;
7364 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo8(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo8 *r)
7366 if (ndr_flags & NDR_SCALARS) {
7367 NDR_CHECK(ndr_push_align(ndr, 4));
7368 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->devmode_ptr));
7369 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
7371 if (ndr_flags & NDR_BUFFERS) {
7373 return NDR_ERR_SUCCESS;
7376 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo8(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo8 *r)
7378 if (ndr_flags & NDR_SCALARS) {
7379 NDR_CHECK(ndr_pull_align(ndr, 4));
7380 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->devmode_ptr));
7381 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
7383 if (ndr_flags & NDR_BUFFERS) {
7385 return NDR_ERR_SUCCESS;
7388 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo8(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo8 *r)
7390 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo8");
7391 ndr->depth++;
7392 ndr_print_uint32(ndr, "devmode_ptr", r->devmode_ptr);
7393 ndr->depth--;
7396 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo9(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo9 *r)
7398 if (ndr_flags & NDR_SCALARS) {
7399 NDR_CHECK(ndr_push_align(ndr, 4));
7400 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->devmode_ptr));
7401 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
7403 if (ndr_flags & NDR_BUFFERS) {
7405 return NDR_ERR_SUCCESS;
7408 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo9(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo9 *r)
7410 if (ndr_flags & NDR_SCALARS) {
7411 NDR_CHECK(ndr_pull_align(ndr, 4));
7412 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->devmode_ptr));
7413 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
7415 if (ndr_flags & NDR_BUFFERS) {
7417 return NDR_ERR_SUCCESS;
7420 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo9(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo9 *r)
7422 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo9");
7423 ndr->depth++;
7424 ndr_print_uint32(ndr, "devmode_ptr", r->devmode_ptr);
7425 ndr->depth--;
7428 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_SetPrinterInfo *r)
7430 if (ndr_flags & NDR_SCALARS) {
7431 int level = ndr_push_get_switch_value(ndr, r);
7432 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
7433 NDR_CHECK(ndr_push_union_align(ndr, 5));
7434 switch (level) {
7435 case 0: {
7436 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info0));
7437 break; }
7439 case 1: {
7440 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
7441 break; }
7443 case 2: {
7444 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
7445 break; }
7447 case 3: {
7448 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
7449 break; }
7451 case 4: {
7452 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
7453 break; }
7455 case 5: {
7456 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info5));
7457 break; }
7459 case 6: {
7460 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info6));
7461 break; }
7463 case 7: {
7464 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info7));
7465 break; }
7467 case 8: {
7468 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info8));
7469 break; }
7471 case 9: {
7472 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info9));
7473 break; }
7475 default: {
7476 break; }
7480 if (ndr_flags & NDR_BUFFERS) {
7481 int level = ndr_push_get_switch_value(ndr, r);
7482 switch (level) {
7483 case 0:
7484 if (r->info0) {
7485 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo0(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
7487 break;
7489 case 1:
7490 if (r->info1) {
7491 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7493 break;
7495 case 2:
7496 if (r->info2) {
7497 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
7499 break;
7501 case 3:
7502 if (r->info3) {
7503 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo3(ndr, NDR_SCALARS, r->info3));
7505 break;
7507 case 4:
7508 if (r->info4) {
7509 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
7511 break;
7513 case 5:
7514 if (r->info5) {
7515 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo5(ndr, NDR_SCALARS|NDR_BUFFERS, r->info5));
7517 break;
7519 case 6:
7520 if (r->info6) {
7521 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo6(ndr, NDR_SCALARS, r->info6));
7523 break;
7525 case 7:
7526 if (r->info7) {
7527 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo7(ndr, NDR_SCALARS|NDR_BUFFERS, r->info7));
7529 break;
7531 case 8:
7532 if (r->info8) {
7533 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo8(ndr, NDR_SCALARS, r->info8));
7535 break;
7537 case 9:
7538 if (r->info9) {
7539 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo9(ndr, NDR_SCALARS, r->info9));
7541 break;
7543 default:
7544 break;
7548 return NDR_ERR_SUCCESS;
7551 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_SetPrinterInfo *r)
7553 int level;
7554 uint32_t _level;
7555 TALLOC_CTX *_mem_save_info0_0;
7556 TALLOC_CTX *_mem_save_info1_0;
7557 TALLOC_CTX *_mem_save_info2_0;
7558 TALLOC_CTX *_mem_save_info3_0;
7559 TALLOC_CTX *_mem_save_info4_0;
7560 TALLOC_CTX *_mem_save_info5_0;
7561 TALLOC_CTX *_mem_save_info6_0;
7562 TALLOC_CTX *_mem_save_info7_0;
7563 TALLOC_CTX *_mem_save_info8_0;
7564 TALLOC_CTX *_mem_save_info9_0;
7565 level = ndr_pull_get_switch_value(ndr, r);
7566 if (ndr_flags & NDR_SCALARS) {
7567 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
7568 if (_level != level) {
7569 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
7571 NDR_CHECK(ndr_pull_union_align(ndr, 5));
7572 switch (level) {
7573 case 0: {
7574 uint32_t _ptr_info0;
7575 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0));
7576 if (_ptr_info0) {
7577 NDR_PULL_ALLOC(ndr, r->info0);
7578 } else {
7579 r->info0 = NULL;
7581 break; }
7583 case 1: {
7584 uint32_t _ptr_info1;
7585 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
7586 if (_ptr_info1) {
7587 NDR_PULL_ALLOC(ndr, r->info1);
7588 } else {
7589 r->info1 = NULL;
7591 break; }
7593 case 2: {
7594 uint32_t _ptr_info2;
7595 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
7596 if (_ptr_info2) {
7597 NDR_PULL_ALLOC(ndr, r->info2);
7598 } else {
7599 r->info2 = NULL;
7601 break; }
7603 case 3: {
7604 uint32_t _ptr_info3;
7605 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
7606 if (_ptr_info3) {
7607 NDR_PULL_ALLOC(ndr, r->info3);
7608 } else {
7609 r->info3 = NULL;
7611 break; }
7613 case 4: {
7614 uint32_t _ptr_info4;
7615 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
7616 if (_ptr_info4) {
7617 NDR_PULL_ALLOC(ndr, r->info4);
7618 } else {
7619 r->info4 = NULL;
7621 break; }
7623 case 5: {
7624 uint32_t _ptr_info5;
7625 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info5));
7626 if (_ptr_info5) {
7627 NDR_PULL_ALLOC(ndr, r->info5);
7628 } else {
7629 r->info5 = NULL;
7631 break; }
7633 case 6: {
7634 uint32_t _ptr_info6;
7635 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info6));
7636 if (_ptr_info6) {
7637 NDR_PULL_ALLOC(ndr, r->info6);
7638 } else {
7639 r->info6 = NULL;
7641 break; }
7643 case 7: {
7644 uint32_t _ptr_info7;
7645 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info7));
7646 if (_ptr_info7) {
7647 NDR_PULL_ALLOC(ndr, r->info7);
7648 } else {
7649 r->info7 = NULL;
7651 break; }
7653 case 8: {
7654 uint32_t _ptr_info8;
7655 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info8));
7656 if (_ptr_info8) {
7657 NDR_PULL_ALLOC(ndr, r->info8);
7658 } else {
7659 r->info8 = NULL;
7661 break; }
7663 case 9: {
7664 uint32_t _ptr_info9;
7665 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info9));
7666 if (_ptr_info9) {
7667 NDR_PULL_ALLOC(ndr, r->info9);
7668 } else {
7669 r->info9 = NULL;
7671 break; }
7673 default: {
7674 break; }
7678 if (ndr_flags & NDR_BUFFERS) {
7679 switch (level) {
7680 case 0:
7681 if (r->info0) {
7682 _mem_save_info0_0 = NDR_PULL_GET_MEM_CTX(ndr);
7683 NDR_PULL_SET_MEM_CTX(ndr, r->info0, 0);
7684 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo0(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
7685 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info0_0, 0);
7687 break;
7689 case 1:
7690 if (r->info1) {
7691 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
7692 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
7693 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7694 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
7696 break;
7698 case 2:
7699 if (r->info2) {
7700 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
7701 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
7702 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
7703 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
7705 break;
7707 case 3:
7708 if (r->info3) {
7709 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
7710 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
7711 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo3(ndr, NDR_SCALARS, r->info3));
7712 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
7714 break;
7716 case 4:
7717 if (r->info4) {
7718 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
7719 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
7720 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
7721 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
7723 break;
7725 case 5:
7726 if (r->info5) {
7727 _mem_save_info5_0 = NDR_PULL_GET_MEM_CTX(ndr);
7728 NDR_PULL_SET_MEM_CTX(ndr, r->info5, 0);
7729 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo5(ndr, NDR_SCALARS|NDR_BUFFERS, r->info5));
7730 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info5_0, 0);
7732 break;
7734 case 6:
7735 if (r->info6) {
7736 _mem_save_info6_0 = NDR_PULL_GET_MEM_CTX(ndr);
7737 NDR_PULL_SET_MEM_CTX(ndr, r->info6, 0);
7738 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo6(ndr, NDR_SCALARS, r->info6));
7739 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info6_0, 0);
7741 break;
7743 case 7:
7744 if (r->info7) {
7745 _mem_save_info7_0 = NDR_PULL_GET_MEM_CTX(ndr);
7746 NDR_PULL_SET_MEM_CTX(ndr, r->info7, 0);
7747 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo7(ndr, NDR_SCALARS|NDR_BUFFERS, r->info7));
7748 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info7_0, 0);
7750 break;
7752 case 8:
7753 if (r->info8) {
7754 _mem_save_info8_0 = NDR_PULL_GET_MEM_CTX(ndr);
7755 NDR_PULL_SET_MEM_CTX(ndr, r->info8, 0);
7756 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo8(ndr, NDR_SCALARS, r->info8));
7757 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info8_0, 0);
7759 break;
7761 case 9:
7762 if (r->info9) {
7763 _mem_save_info9_0 = NDR_PULL_GET_MEM_CTX(ndr);
7764 NDR_PULL_SET_MEM_CTX(ndr, r->info9, 0);
7765 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo9(ndr, NDR_SCALARS, r->info9));
7766 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info9_0, 0);
7768 break;
7770 default:
7771 break;
7775 return NDR_ERR_SUCCESS;
7778 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_SetPrinterInfo *r)
7780 int level;
7781 level = ndr_print_get_switch_value(ndr, r);
7782 ndr_print_union(ndr, name, level, "spoolss_SetPrinterInfo");
7783 switch (level) {
7784 case 0:
7785 ndr_print_ptr(ndr, "info0", r->info0);
7786 ndr->depth++;
7787 if (r->info0) {
7788 ndr_print_spoolss_SetPrinterInfo0(ndr, "info0", r->info0);
7790 ndr->depth--;
7791 break;
7793 case 1:
7794 ndr_print_ptr(ndr, "info1", r->info1);
7795 ndr->depth++;
7796 if (r->info1) {
7797 ndr_print_spoolss_SetPrinterInfo1(ndr, "info1", r->info1);
7799 ndr->depth--;
7800 break;
7802 case 2:
7803 ndr_print_ptr(ndr, "info2", r->info2);
7804 ndr->depth++;
7805 if (r->info2) {
7806 ndr_print_spoolss_SetPrinterInfo2(ndr, "info2", r->info2);
7808 ndr->depth--;
7809 break;
7811 case 3:
7812 ndr_print_ptr(ndr, "info3", r->info3);
7813 ndr->depth++;
7814 if (r->info3) {
7815 ndr_print_spoolss_SetPrinterInfo3(ndr, "info3", r->info3);
7817 ndr->depth--;
7818 break;
7820 case 4:
7821 ndr_print_ptr(ndr, "info4", r->info4);
7822 ndr->depth++;
7823 if (r->info4) {
7824 ndr_print_spoolss_SetPrinterInfo4(ndr, "info4", r->info4);
7826 ndr->depth--;
7827 break;
7829 case 5:
7830 ndr_print_ptr(ndr, "info5", r->info5);
7831 ndr->depth++;
7832 if (r->info5) {
7833 ndr_print_spoolss_SetPrinterInfo5(ndr, "info5", r->info5);
7835 ndr->depth--;
7836 break;
7838 case 6:
7839 ndr_print_ptr(ndr, "info6", r->info6);
7840 ndr->depth++;
7841 if (r->info6) {
7842 ndr_print_spoolss_SetPrinterInfo6(ndr, "info6", r->info6);
7844 ndr->depth--;
7845 break;
7847 case 7:
7848 ndr_print_ptr(ndr, "info7", r->info7);
7849 ndr->depth++;
7850 if (r->info7) {
7851 ndr_print_spoolss_SetPrinterInfo7(ndr, "info7", r->info7);
7853 ndr->depth--;
7854 break;
7856 case 8:
7857 ndr_print_ptr(ndr, "info8", r->info8);
7858 ndr->depth++;
7859 if (r->info8) {
7860 ndr_print_spoolss_SetPrinterInfo8(ndr, "info8", r->info8);
7862 ndr->depth--;
7863 break;
7865 case 9:
7866 ndr_print_ptr(ndr, "info9", r->info9);
7867 ndr->depth++;
7868 if (r->info9) {
7869 ndr_print_spoolss_SetPrinterInfo9(ndr, "info9", r->info9);
7871 ndr->depth--;
7872 break;
7874 default:
7875 break;
7880 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfoCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfoCtr *r)
7882 if (ndr_flags & NDR_SCALARS) {
7883 NDR_CHECK(ndr_push_align(ndr, 5));
7884 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
7885 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
7886 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr, NDR_SCALARS, &r->info));
7887 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
7889 if (ndr_flags & NDR_BUFFERS) {
7890 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr, NDR_BUFFERS, &r->info));
7892 return NDR_ERR_SUCCESS;
7895 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfoCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfoCtr *r)
7897 if (ndr_flags & NDR_SCALARS) {
7898 NDR_CHECK(ndr_pull_align(ndr, 5));
7899 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
7900 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
7901 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr, NDR_SCALARS, &r->info));
7902 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
7904 if (ndr_flags & NDR_BUFFERS) {
7905 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr, NDR_BUFFERS, &r->info));
7907 return NDR_ERR_SUCCESS;
7910 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfoCtr(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfoCtr *r)
7912 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfoCtr");
7913 ndr->depth++;
7914 ndr_print_uint32(ndr, "level", r->level);
7915 ndr_print_set_switch_value(ndr, &r->info, r->level);
7916 ndr_print_spoolss_SetPrinterInfo(ndr, "info", &r->info);
7917 ndr->depth--;
7920 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_StringArray(struct ndr_push *ndr, int ndr_flags, const struct spoolss_StringArray *r)
7922 if (ndr_flags & NDR_SCALARS) {
7923 NDR_CHECK(ndr_push_align(ndr, 4));
7924 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, (ndr_size_spoolss_StringArray(r, ndr->iconv_convenience, ndr->flags) - 4) / 2));
7926 uint32_t _flags_save_string_array = ndr->flags;
7927 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7928 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string));
7929 ndr->flags = _flags_save_string_array;
7931 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
7933 if (ndr_flags & NDR_BUFFERS) {
7935 return NDR_ERR_SUCCESS;
7938 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_StringArray(struct ndr_pull *ndr, int ndr_flags, struct spoolss_StringArray *r)
7940 if (ndr_flags & NDR_SCALARS) {
7941 NDR_CHECK(ndr_pull_align(ndr, 4));
7942 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
7944 uint32_t _flags_save_string_array = ndr->flags;
7945 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7946 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string));
7947 ndr->flags = _flags_save_string_array;
7949 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
7951 if (ndr_flags & NDR_BUFFERS) {
7953 return NDR_ERR_SUCCESS;
7956 _PUBLIC_ void ndr_print_spoolss_StringArray(struct ndr_print *ndr, const char *name, const struct spoolss_StringArray *r)
7958 ndr_print_struct(ndr, name, "spoolss_StringArray");
7959 ndr->depth++;
7960 ndr_print_uint32(ndr, "_ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?(ndr_size_spoolss_StringArray(r, ndr->iconv_convenience, ndr->flags) - 4) / 2:r->_ndr_size);
7961 ndr_print_string_array(ndr, "string", r->string);
7962 ndr->depth--;
7965 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo1 *r)
7967 if (ndr_flags & NDR_SCALARS) {
7968 NDR_CHECK(ndr_push_align(ndr, 5));
7969 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
7970 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
7972 if (ndr_flags & NDR_BUFFERS) {
7973 if (r->driver_name) {
7974 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
7975 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7976 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
7977 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7980 return NDR_ERR_SUCCESS;
7983 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo1 *r)
7985 uint32_t _ptr_driver_name;
7986 TALLOC_CTX *_mem_save_driver_name_0;
7987 if (ndr_flags & NDR_SCALARS) {
7988 NDR_CHECK(ndr_pull_align(ndr, 5));
7989 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
7990 if (_ptr_driver_name) {
7991 NDR_PULL_ALLOC(ndr, r->driver_name);
7992 } else {
7993 r->driver_name = NULL;
7995 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
7997 if (ndr_flags & NDR_BUFFERS) {
7998 if (r->driver_name) {
7999 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8000 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8001 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
8002 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
8003 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
8004 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_name), ndr_get_array_length(ndr, &r->driver_name));
8006 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
8007 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
8008 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8011 return NDR_ERR_SUCCESS;
8014 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo1 *r)
8016 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo1");
8017 ndr->depth++;
8018 ndr_print_ptr(ndr, "driver_name", r->driver_name);
8019 ndr->depth++;
8020 if (r->driver_name) {
8021 ndr_print_string(ndr, "driver_name", r->driver_name);
8023 ndr->depth--;
8024 ndr->depth--;
8027 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverOSVersion(struct ndr_push *ndr, int ndr_flags, enum spoolss_DriverOSVersion r)
8029 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
8030 return NDR_ERR_SUCCESS;
8033 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverOSVersion(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DriverOSVersion *r)
8035 uint32_t v;
8036 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
8037 *r = v;
8038 return NDR_ERR_SUCCESS;
8041 _PUBLIC_ void ndr_print_spoolss_DriverOSVersion(struct ndr_print *ndr, const char *name, enum spoolss_DriverOSVersion r)
8043 const char *val = NULL;
8045 switch (r) {
8046 case SPOOLSS_DRIVER_VERSION_9X: val = "SPOOLSS_DRIVER_VERSION_9X"; break;
8047 case SPOOLSS_DRIVER_VERSION_NT35: val = "SPOOLSS_DRIVER_VERSION_NT35"; break;
8048 case SPOOLSS_DRIVER_VERSION_NT4: val = "SPOOLSS_DRIVER_VERSION_NT4"; break;
8049 case SPOOLSS_DRIVER_VERSION_200X: val = "SPOOLSS_DRIVER_VERSION_200X"; break;
8051 ndr_print_enum(ndr, name, "ENUM", val, r);
8054 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo2 *r)
8056 if (ndr_flags & NDR_SCALARS) {
8057 NDR_CHECK(ndr_push_align(ndr, 5));
8058 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
8059 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
8060 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
8061 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
8062 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
8063 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
8064 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8066 if (ndr_flags & NDR_BUFFERS) {
8067 if (r->driver_name) {
8068 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8069 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8070 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8071 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8073 if (r->architecture) {
8074 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8075 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8076 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8077 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8079 if (r->driver_path) {
8080 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8081 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8082 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8083 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8085 if (r->data_file) {
8086 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8087 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8088 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8089 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8091 if (r->config_file) {
8092 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8093 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8094 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8095 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8098 return NDR_ERR_SUCCESS;
8101 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo2 *r)
8103 uint32_t _ptr_driver_name;
8104 TALLOC_CTX *_mem_save_driver_name_0;
8105 uint32_t _ptr_architecture;
8106 TALLOC_CTX *_mem_save_architecture_0;
8107 uint32_t _ptr_driver_path;
8108 TALLOC_CTX *_mem_save_driver_path_0;
8109 uint32_t _ptr_data_file;
8110 TALLOC_CTX *_mem_save_data_file_0;
8111 uint32_t _ptr_config_file;
8112 TALLOC_CTX *_mem_save_config_file_0;
8113 if (ndr_flags & NDR_SCALARS) {
8114 NDR_CHECK(ndr_pull_align(ndr, 5));
8115 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
8116 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8117 if (_ptr_driver_name) {
8118 NDR_PULL_ALLOC(ndr, r->driver_name);
8119 } else {
8120 r->driver_name = NULL;
8122 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
8123 if (_ptr_architecture) {
8124 NDR_PULL_ALLOC(ndr, r->architecture);
8125 } else {
8126 r->architecture = NULL;
8128 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
8129 if (_ptr_driver_path) {
8130 NDR_PULL_ALLOC(ndr, r->driver_path);
8131 } else {
8132 r->driver_path = NULL;
8134 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
8135 if (_ptr_data_file) {
8136 NDR_PULL_ALLOC(ndr, r->data_file);
8137 } else {
8138 r->data_file = NULL;
8140 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
8141 if (_ptr_config_file) {
8142 NDR_PULL_ALLOC(ndr, r->config_file);
8143 } else {
8144 r->config_file = NULL;
8146 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8148 if (ndr_flags & NDR_BUFFERS) {
8149 if (r->driver_name) {
8150 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8151 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8152 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
8153 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
8154 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
8155 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_name), ndr_get_array_length(ndr, &r->driver_name));
8157 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
8158 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
8159 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8161 if (r->architecture) {
8162 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
8163 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
8164 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
8165 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
8166 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
8167 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->architecture), ndr_get_array_length(ndr, &r->architecture));
8169 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
8170 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
8171 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
8173 if (r->driver_path) {
8174 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
8175 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
8176 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
8177 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
8178 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
8179 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_path), ndr_get_array_length(ndr, &r->driver_path));
8181 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
8182 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
8183 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
8185 if (r->data_file) {
8186 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8187 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
8188 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
8189 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
8190 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
8191 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data_file), ndr_get_array_length(ndr, &r->data_file));
8193 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
8194 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
8195 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
8197 if (r->config_file) {
8198 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8199 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
8200 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
8201 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
8202 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
8203 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->config_file), ndr_get_array_length(ndr, &r->config_file));
8205 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
8206 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
8207 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
8210 return NDR_ERR_SUCCESS;
8213 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo2 *r)
8215 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo2");
8216 ndr->depth++;
8217 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
8218 ndr_print_ptr(ndr, "driver_name", r->driver_name);
8219 ndr->depth++;
8220 if (r->driver_name) {
8221 ndr_print_string(ndr, "driver_name", r->driver_name);
8223 ndr->depth--;
8224 ndr_print_ptr(ndr, "architecture", r->architecture);
8225 ndr->depth++;
8226 if (r->architecture) {
8227 ndr_print_string(ndr, "architecture", r->architecture);
8229 ndr->depth--;
8230 ndr_print_ptr(ndr, "driver_path", r->driver_path);
8231 ndr->depth++;
8232 if (r->driver_path) {
8233 ndr_print_string(ndr, "driver_path", r->driver_path);
8235 ndr->depth--;
8236 ndr_print_ptr(ndr, "data_file", r->data_file);
8237 ndr->depth++;
8238 if (r->data_file) {
8239 ndr_print_string(ndr, "data_file", r->data_file);
8241 ndr->depth--;
8242 ndr_print_ptr(ndr, "config_file", r->config_file);
8243 ndr->depth++;
8244 if (r->config_file) {
8245 ndr_print_string(ndr, "config_file", r->config_file);
8247 ndr->depth--;
8248 ndr->depth--;
8251 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo3 *r)
8253 if (ndr_flags & NDR_SCALARS) {
8254 NDR_CHECK(ndr_push_align(ndr, 5));
8255 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
8256 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
8257 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
8258 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
8259 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
8260 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
8261 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
8262 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
8263 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
8264 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8265 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
8266 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8268 if (ndr_flags & NDR_BUFFERS) {
8269 if (r->driver_name) {
8270 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8271 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8272 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8273 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8275 if (r->architecture) {
8276 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8277 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8278 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8279 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8281 if (r->driver_path) {
8282 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8283 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8284 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8285 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8287 if (r->data_file) {
8288 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8289 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8290 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8291 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8293 if (r->config_file) {
8294 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8295 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8296 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8297 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8299 if (r->help_file) {
8300 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8301 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8302 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8303 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8305 if (r->monitor_name) {
8306 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8307 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8308 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8309 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8311 if (r->default_datatype) {
8312 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8313 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8314 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8315 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8317 if (r->dependent_files) {
8318 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8321 return NDR_ERR_SUCCESS;
8324 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo3 *r)
8326 uint32_t _ptr_driver_name;
8327 TALLOC_CTX *_mem_save_driver_name_0;
8328 uint32_t _ptr_architecture;
8329 TALLOC_CTX *_mem_save_architecture_0;
8330 uint32_t _ptr_driver_path;
8331 TALLOC_CTX *_mem_save_driver_path_0;
8332 uint32_t _ptr_data_file;
8333 TALLOC_CTX *_mem_save_data_file_0;
8334 uint32_t _ptr_config_file;
8335 TALLOC_CTX *_mem_save_config_file_0;
8336 uint32_t _ptr_help_file;
8337 TALLOC_CTX *_mem_save_help_file_0;
8338 uint32_t _ptr_monitor_name;
8339 TALLOC_CTX *_mem_save_monitor_name_0;
8340 uint32_t _ptr_default_datatype;
8341 TALLOC_CTX *_mem_save_default_datatype_0;
8342 uint32_t _ptr_dependent_files;
8343 TALLOC_CTX *_mem_save_dependent_files_0;
8344 if (ndr_flags & NDR_SCALARS) {
8345 NDR_CHECK(ndr_pull_align(ndr, 5));
8346 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
8347 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8348 if (_ptr_driver_name) {
8349 NDR_PULL_ALLOC(ndr, r->driver_name);
8350 } else {
8351 r->driver_name = NULL;
8353 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
8354 if (_ptr_architecture) {
8355 NDR_PULL_ALLOC(ndr, r->architecture);
8356 } else {
8357 r->architecture = NULL;
8359 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
8360 if (_ptr_driver_path) {
8361 NDR_PULL_ALLOC(ndr, r->driver_path);
8362 } else {
8363 r->driver_path = NULL;
8365 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
8366 if (_ptr_data_file) {
8367 NDR_PULL_ALLOC(ndr, r->data_file);
8368 } else {
8369 r->data_file = NULL;
8371 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
8372 if (_ptr_config_file) {
8373 NDR_PULL_ALLOC(ndr, r->config_file);
8374 } else {
8375 r->config_file = NULL;
8377 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
8378 if (_ptr_help_file) {
8379 NDR_PULL_ALLOC(ndr, r->help_file);
8380 } else {
8381 r->help_file = NULL;
8383 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
8384 if (_ptr_monitor_name) {
8385 NDR_PULL_ALLOC(ndr, r->monitor_name);
8386 } else {
8387 r->monitor_name = NULL;
8389 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
8390 if (_ptr_default_datatype) {
8391 NDR_PULL_ALLOC(ndr, r->default_datatype);
8392 } else {
8393 r->default_datatype = NULL;
8395 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
8396 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
8397 if (_ptr_dependent_files) {
8398 NDR_PULL_ALLOC(ndr, r->dependent_files);
8399 } else {
8400 r->dependent_files = NULL;
8402 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8404 if (ndr_flags & NDR_BUFFERS) {
8405 if (r->driver_name) {
8406 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8407 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8408 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
8409 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
8410 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
8411 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_name), ndr_get_array_length(ndr, &r->driver_name));
8413 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
8414 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
8415 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8417 if (r->architecture) {
8418 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
8419 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
8420 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
8421 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
8422 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
8423 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->architecture), ndr_get_array_length(ndr, &r->architecture));
8425 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
8426 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
8427 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
8429 if (r->driver_path) {
8430 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
8431 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
8432 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
8433 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
8434 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
8435 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_path), ndr_get_array_length(ndr, &r->driver_path));
8437 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
8438 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
8439 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
8441 if (r->data_file) {
8442 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8443 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
8444 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
8445 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
8446 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
8447 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data_file), ndr_get_array_length(ndr, &r->data_file));
8449 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
8450 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
8451 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
8453 if (r->config_file) {
8454 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8455 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
8456 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
8457 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
8458 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
8459 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->config_file), ndr_get_array_length(ndr, &r->config_file));
8461 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
8462 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
8463 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
8465 if (r->help_file) {
8466 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8467 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
8468 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
8469 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
8470 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
8471 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->help_file), ndr_get_array_length(ndr, &r->help_file));
8473 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
8474 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
8475 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
8477 if (r->monitor_name) {
8478 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8479 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
8480 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
8481 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
8482 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
8483 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->monitor_name), ndr_get_array_length(ndr, &r->monitor_name));
8485 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
8486 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
8487 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
8489 if (r->default_datatype) {
8490 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
8491 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
8492 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
8493 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
8494 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
8495 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->default_datatype), ndr_get_array_length(ndr, &r->default_datatype));
8497 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
8498 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
8499 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
8501 if (r->dependent_files) {
8502 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
8503 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
8504 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8505 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
8508 return NDR_ERR_SUCCESS;
8511 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo3 *r)
8513 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo3");
8514 ndr->depth++;
8515 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
8516 ndr_print_ptr(ndr, "driver_name", r->driver_name);
8517 ndr->depth++;
8518 if (r->driver_name) {
8519 ndr_print_string(ndr, "driver_name", r->driver_name);
8521 ndr->depth--;
8522 ndr_print_ptr(ndr, "architecture", r->architecture);
8523 ndr->depth++;
8524 if (r->architecture) {
8525 ndr_print_string(ndr, "architecture", r->architecture);
8527 ndr->depth--;
8528 ndr_print_ptr(ndr, "driver_path", r->driver_path);
8529 ndr->depth++;
8530 if (r->driver_path) {
8531 ndr_print_string(ndr, "driver_path", r->driver_path);
8533 ndr->depth--;
8534 ndr_print_ptr(ndr, "data_file", r->data_file);
8535 ndr->depth++;
8536 if (r->data_file) {
8537 ndr_print_string(ndr, "data_file", r->data_file);
8539 ndr->depth--;
8540 ndr_print_ptr(ndr, "config_file", r->config_file);
8541 ndr->depth++;
8542 if (r->config_file) {
8543 ndr_print_string(ndr, "config_file", r->config_file);
8545 ndr->depth--;
8546 ndr_print_ptr(ndr, "help_file", r->help_file);
8547 ndr->depth++;
8548 if (r->help_file) {
8549 ndr_print_string(ndr, "help_file", r->help_file);
8551 ndr->depth--;
8552 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
8553 ndr->depth++;
8554 if (r->monitor_name) {
8555 ndr_print_string(ndr, "monitor_name", r->monitor_name);
8557 ndr->depth--;
8558 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
8559 ndr->depth++;
8560 if (r->default_datatype) {
8561 ndr_print_string(ndr, "default_datatype", r->default_datatype);
8563 ndr->depth--;
8564 ndr_print_uint32(ndr, "_ndr_size_dependent_files", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2):r->_ndr_size_dependent_files);
8565 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
8566 ndr->depth++;
8567 if (r->dependent_files) {
8568 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
8570 ndr->depth--;
8571 ndr->depth--;
8574 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo4 *r)
8576 if (ndr_flags & NDR_SCALARS) {
8577 NDR_CHECK(ndr_push_align(ndr, 5));
8578 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
8579 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
8580 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
8581 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
8582 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
8583 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
8584 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
8585 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
8586 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
8587 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8588 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
8589 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8590 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
8591 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8593 if (ndr_flags & NDR_BUFFERS) {
8594 if (r->driver_name) {
8595 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8596 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8597 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8598 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8600 if (r->architecture) {
8601 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8602 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8603 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8604 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8606 if (r->driver_path) {
8607 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8608 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8609 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8610 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8612 if (r->data_file) {
8613 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8614 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8615 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8616 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8618 if (r->config_file) {
8619 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8620 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8621 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8622 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8624 if (r->help_file) {
8625 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8626 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8627 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8628 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8630 if (r->monitor_name) {
8631 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8632 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8633 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8634 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8636 if (r->default_datatype) {
8637 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8638 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8639 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8640 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8642 if (r->dependent_files) {
8643 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8645 if (r->previous_names) {
8646 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
8649 return NDR_ERR_SUCCESS;
8652 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo4 *r)
8654 uint32_t _ptr_driver_name;
8655 TALLOC_CTX *_mem_save_driver_name_0;
8656 uint32_t _ptr_architecture;
8657 TALLOC_CTX *_mem_save_architecture_0;
8658 uint32_t _ptr_driver_path;
8659 TALLOC_CTX *_mem_save_driver_path_0;
8660 uint32_t _ptr_data_file;
8661 TALLOC_CTX *_mem_save_data_file_0;
8662 uint32_t _ptr_config_file;
8663 TALLOC_CTX *_mem_save_config_file_0;
8664 uint32_t _ptr_help_file;
8665 TALLOC_CTX *_mem_save_help_file_0;
8666 uint32_t _ptr_monitor_name;
8667 TALLOC_CTX *_mem_save_monitor_name_0;
8668 uint32_t _ptr_default_datatype;
8669 TALLOC_CTX *_mem_save_default_datatype_0;
8670 uint32_t _ptr_dependent_files;
8671 TALLOC_CTX *_mem_save_dependent_files_0;
8672 uint32_t _ptr_previous_names;
8673 TALLOC_CTX *_mem_save_previous_names_0;
8674 if (ndr_flags & NDR_SCALARS) {
8675 NDR_CHECK(ndr_pull_align(ndr, 5));
8676 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
8677 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8678 if (_ptr_driver_name) {
8679 NDR_PULL_ALLOC(ndr, r->driver_name);
8680 } else {
8681 r->driver_name = NULL;
8683 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
8684 if (_ptr_architecture) {
8685 NDR_PULL_ALLOC(ndr, r->architecture);
8686 } else {
8687 r->architecture = NULL;
8689 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
8690 if (_ptr_driver_path) {
8691 NDR_PULL_ALLOC(ndr, r->driver_path);
8692 } else {
8693 r->driver_path = NULL;
8695 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
8696 if (_ptr_data_file) {
8697 NDR_PULL_ALLOC(ndr, r->data_file);
8698 } else {
8699 r->data_file = NULL;
8701 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
8702 if (_ptr_config_file) {
8703 NDR_PULL_ALLOC(ndr, r->config_file);
8704 } else {
8705 r->config_file = NULL;
8707 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
8708 if (_ptr_help_file) {
8709 NDR_PULL_ALLOC(ndr, r->help_file);
8710 } else {
8711 r->help_file = NULL;
8713 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
8714 if (_ptr_monitor_name) {
8715 NDR_PULL_ALLOC(ndr, r->monitor_name);
8716 } else {
8717 r->monitor_name = NULL;
8719 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
8720 if (_ptr_default_datatype) {
8721 NDR_PULL_ALLOC(ndr, r->default_datatype);
8722 } else {
8723 r->default_datatype = NULL;
8725 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
8726 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
8727 if (_ptr_dependent_files) {
8728 NDR_PULL_ALLOC(ndr, r->dependent_files);
8729 } else {
8730 r->dependent_files = NULL;
8732 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
8733 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
8734 if (_ptr_previous_names) {
8735 NDR_PULL_ALLOC(ndr, r->previous_names);
8736 } else {
8737 r->previous_names = NULL;
8739 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8741 if (ndr_flags & NDR_BUFFERS) {
8742 if (r->driver_name) {
8743 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8744 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8745 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
8746 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
8747 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
8748 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_name), ndr_get_array_length(ndr, &r->driver_name));
8750 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
8751 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
8752 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8754 if (r->architecture) {
8755 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
8756 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
8757 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
8758 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
8759 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
8760 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->architecture), ndr_get_array_length(ndr, &r->architecture));
8762 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
8763 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
8764 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
8766 if (r->driver_path) {
8767 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
8768 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
8769 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
8770 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
8771 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
8772 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_path), ndr_get_array_length(ndr, &r->driver_path));
8774 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
8775 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
8776 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
8778 if (r->data_file) {
8779 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8780 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
8781 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
8782 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
8783 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
8784 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data_file), ndr_get_array_length(ndr, &r->data_file));
8786 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
8787 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
8788 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
8790 if (r->config_file) {
8791 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8792 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
8793 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
8794 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
8795 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
8796 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->config_file), ndr_get_array_length(ndr, &r->config_file));
8798 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
8799 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
8800 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
8802 if (r->help_file) {
8803 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8804 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
8805 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
8806 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
8807 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
8808 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->help_file), ndr_get_array_length(ndr, &r->help_file));
8810 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
8811 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
8812 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
8814 if (r->monitor_name) {
8815 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8816 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
8817 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
8818 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
8819 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
8820 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->monitor_name), ndr_get_array_length(ndr, &r->monitor_name));
8822 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
8823 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
8824 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
8826 if (r->default_datatype) {
8827 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
8828 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
8829 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
8830 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
8831 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
8832 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->default_datatype), ndr_get_array_length(ndr, &r->default_datatype));
8834 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
8835 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
8836 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
8838 if (r->dependent_files) {
8839 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
8840 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
8841 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8842 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
8844 if (r->previous_names) {
8845 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
8846 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
8847 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
8848 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
8851 return NDR_ERR_SUCCESS;
8854 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo4 *r)
8856 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo4");
8857 ndr->depth++;
8858 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
8859 ndr_print_ptr(ndr, "driver_name", r->driver_name);
8860 ndr->depth++;
8861 if (r->driver_name) {
8862 ndr_print_string(ndr, "driver_name", r->driver_name);
8864 ndr->depth--;
8865 ndr_print_ptr(ndr, "architecture", r->architecture);
8866 ndr->depth++;
8867 if (r->architecture) {
8868 ndr_print_string(ndr, "architecture", r->architecture);
8870 ndr->depth--;
8871 ndr_print_ptr(ndr, "driver_path", r->driver_path);
8872 ndr->depth++;
8873 if (r->driver_path) {
8874 ndr_print_string(ndr, "driver_path", r->driver_path);
8876 ndr->depth--;
8877 ndr_print_ptr(ndr, "data_file", r->data_file);
8878 ndr->depth++;
8879 if (r->data_file) {
8880 ndr_print_string(ndr, "data_file", r->data_file);
8882 ndr->depth--;
8883 ndr_print_ptr(ndr, "config_file", r->config_file);
8884 ndr->depth++;
8885 if (r->config_file) {
8886 ndr_print_string(ndr, "config_file", r->config_file);
8888 ndr->depth--;
8889 ndr_print_ptr(ndr, "help_file", r->help_file);
8890 ndr->depth++;
8891 if (r->help_file) {
8892 ndr_print_string(ndr, "help_file", r->help_file);
8894 ndr->depth--;
8895 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
8896 ndr->depth++;
8897 if (r->monitor_name) {
8898 ndr_print_string(ndr, "monitor_name", r->monitor_name);
8900 ndr->depth--;
8901 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
8902 ndr->depth++;
8903 if (r->default_datatype) {
8904 ndr_print_string(ndr, "default_datatype", r->default_datatype);
8906 ndr->depth--;
8907 ndr_print_uint32(ndr, "_ndr_size_dependent_files", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2):r->_ndr_size_dependent_files);
8908 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
8909 ndr->depth++;
8910 if (r->dependent_files) {
8911 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
8913 ndr->depth--;
8914 ndr_print_uint32(ndr, "_ndr_size_previous_names", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2):r->_ndr_size_previous_names);
8915 ndr_print_ptr(ndr, "previous_names", r->previous_names);
8916 ndr->depth++;
8917 if (r->previous_names) {
8918 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
8920 ndr->depth--;
8921 ndr->depth--;
8924 static enum ndr_err_code ndr_push_spoolss_DriverAttributes(struct ndr_push *ndr, int ndr_flags, uint32_t r)
8926 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
8927 return NDR_ERR_SUCCESS;
8930 static enum ndr_err_code ndr_pull_spoolss_DriverAttributes(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
8932 uint32_t v;
8933 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
8934 *r = v;
8935 return NDR_ERR_SUCCESS;
8938 _PUBLIC_ void ndr_print_spoolss_DriverAttributes(struct ndr_print *ndr, const char *name, uint32_t r)
8940 ndr_print_uint32(ndr, name, r);
8941 ndr->depth++;
8942 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_DRIVER_PACKAGE_AWARE", PRINTER_DRIVER_PACKAGE_AWARE, r);
8943 ndr->depth--;
8946 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo6 *r)
8948 if (ndr_flags & NDR_SCALARS) {
8949 NDR_CHECK(ndr_push_align(ndr, 8));
8950 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
8951 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
8952 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
8953 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
8954 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
8955 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
8956 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
8957 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
8958 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
8959 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8960 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
8961 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8962 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
8963 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
8964 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
8965 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_name));
8966 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_url));
8967 NDR_CHECK(ndr_push_unique_ptr(ndr, r->hardware_id));
8968 NDR_CHECK(ndr_push_unique_ptr(ndr, r->provider));
8969 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
8971 if (ndr_flags & NDR_BUFFERS) {
8972 if (r->driver_name) {
8973 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8974 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8975 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8976 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8978 if (r->architecture) {
8979 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8980 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8981 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8982 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8984 if (r->driver_path) {
8985 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8986 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8987 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8988 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8990 if (r->data_file) {
8991 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8992 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8993 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8994 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8996 if (r->config_file) {
8997 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8998 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8999 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
9000 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9002 if (r->help_file) {
9003 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
9004 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9005 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
9006 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9008 if (r->monitor_name) {
9009 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
9010 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9011 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
9012 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9014 if (r->default_datatype) {
9015 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
9016 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9017 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
9018 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9020 if (r->dependent_files) {
9021 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
9023 if (r->previous_names) {
9024 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
9026 if (r->manufacturer_name) {
9027 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
9028 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9029 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
9030 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_name, ndr_charset_length(r->manufacturer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9032 if (r->manufacturer_url) {
9033 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
9034 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9035 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
9036 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_url, ndr_charset_length(r->manufacturer_url, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9038 if (r->hardware_id) {
9039 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
9040 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9041 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
9042 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_id, ndr_charset_length(r->hardware_id, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9044 if (r->provider) {
9045 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
9046 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9047 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
9048 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->provider, ndr_charset_length(r->provider, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9051 return NDR_ERR_SUCCESS;
9054 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo6 *r)
9056 uint32_t _ptr_driver_name;
9057 TALLOC_CTX *_mem_save_driver_name_0;
9058 uint32_t _ptr_architecture;
9059 TALLOC_CTX *_mem_save_architecture_0;
9060 uint32_t _ptr_driver_path;
9061 TALLOC_CTX *_mem_save_driver_path_0;
9062 uint32_t _ptr_data_file;
9063 TALLOC_CTX *_mem_save_data_file_0;
9064 uint32_t _ptr_config_file;
9065 TALLOC_CTX *_mem_save_config_file_0;
9066 uint32_t _ptr_help_file;
9067 TALLOC_CTX *_mem_save_help_file_0;
9068 uint32_t _ptr_monitor_name;
9069 TALLOC_CTX *_mem_save_monitor_name_0;
9070 uint32_t _ptr_default_datatype;
9071 TALLOC_CTX *_mem_save_default_datatype_0;
9072 uint32_t _ptr_dependent_files;
9073 TALLOC_CTX *_mem_save_dependent_files_0;
9074 uint32_t _ptr_previous_names;
9075 TALLOC_CTX *_mem_save_previous_names_0;
9076 uint32_t _ptr_manufacturer_name;
9077 TALLOC_CTX *_mem_save_manufacturer_name_0;
9078 uint32_t _ptr_manufacturer_url;
9079 TALLOC_CTX *_mem_save_manufacturer_url_0;
9080 uint32_t _ptr_hardware_id;
9081 TALLOC_CTX *_mem_save_hardware_id_0;
9082 uint32_t _ptr_provider;
9083 TALLOC_CTX *_mem_save_provider_0;
9084 if (ndr_flags & NDR_SCALARS) {
9085 NDR_CHECK(ndr_pull_align(ndr, 8));
9086 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
9087 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
9088 if (_ptr_driver_name) {
9089 NDR_PULL_ALLOC(ndr, r->driver_name);
9090 } else {
9091 r->driver_name = NULL;
9093 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
9094 if (_ptr_architecture) {
9095 NDR_PULL_ALLOC(ndr, r->architecture);
9096 } else {
9097 r->architecture = NULL;
9099 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
9100 if (_ptr_driver_path) {
9101 NDR_PULL_ALLOC(ndr, r->driver_path);
9102 } else {
9103 r->driver_path = NULL;
9105 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
9106 if (_ptr_data_file) {
9107 NDR_PULL_ALLOC(ndr, r->data_file);
9108 } else {
9109 r->data_file = NULL;
9111 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
9112 if (_ptr_config_file) {
9113 NDR_PULL_ALLOC(ndr, r->config_file);
9114 } else {
9115 r->config_file = NULL;
9117 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
9118 if (_ptr_help_file) {
9119 NDR_PULL_ALLOC(ndr, r->help_file);
9120 } else {
9121 r->help_file = NULL;
9123 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
9124 if (_ptr_monitor_name) {
9125 NDR_PULL_ALLOC(ndr, r->monitor_name);
9126 } else {
9127 r->monitor_name = NULL;
9129 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
9130 if (_ptr_default_datatype) {
9131 NDR_PULL_ALLOC(ndr, r->default_datatype);
9132 } else {
9133 r->default_datatype = NULL;
9135 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
9136 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
9137 if (_ptr_dependent_files) {
9138 NDR_PULL_ALLOC(ndr, r->dependent_files);
9139 } else {
9140 r->dependent_files = NULL;
9142 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
9143 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
9144 if (_ptr_previous_names) {
9145 NDR_PULL_ALLOC(ndr, r->previous_names);
9146 } else {
9147 r->previous_names = NULL;
9149 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
9150 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
9151 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
9152 if (_ptr_manufacturer_name) {
9153 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
9154 } else {
9155 r->manufacturer_name = NULL;
9157 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
9158 if (_ptr_manufacturer_url) {
9159 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
9160 } else {
9161 r->manufacturer_url = NULL;
9163 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
9164 if (_ptr_hardware_id) {
9165 NDR_PULL_ALLOC(ndr, r->hardware_id);
9166 } else {
9167 r->hardware_id = NULL;
9169 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
9170 if (_ptr_provider) {
9171 NDR_PULL_ALLOC(ndr, r->provider);
9172 } else {
9173 r->provider = NULL;
9175 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
9177 if (ndr_flags & NDR_BUFFERS) {
9178 if (r->driver_name) {
9179 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9180 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
9181 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
9182 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
9183 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
9184 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_name), ndr_get_array_length(ndr, &r->driver_name));
9186 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
9187 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
9188 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
9190 if (r->architecture) {
9191 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
9192 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
9193 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
9194 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
9195 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
9196 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->architecture), ndr_get_array_length(ndr, &r->architecture));
9198 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
9199 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
9200 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
9202 if (r->driver_path) {
9203 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
9204 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
9205 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
9206 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
9207 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
9208 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_path), ndr_get_array_length(ndr, &r->driver_path));
9210 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
9211 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
9212 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
9214 if (r->data_file) {
9215 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9216 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
9217 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
9218 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
9219 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
9220 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data_file), ndr_get_array_length(ndr, &r->data_file));
9222 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
9223 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
9224 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
9226 if (r->config_file) {
9227 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9228 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
9229 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
9230 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
9231 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
9232 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->config_file), ndr_get_array_length(ndr, &r->config_file));
9234 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
9235 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
9236 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
9238 if (r->help_file) {
9239 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9240 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
9241 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
9242 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
9243 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
9244 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->help_file), ndr_get_array_length(ndr, &r->help_file));
9246 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
9247 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
9248 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
9250 if (r->monitor_name) {
9251 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9252 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
9253 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
9254 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
9255 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
9256 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->monitor_name), ndr_get_array_length(ndr, &r->monitor_name));
9258 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
9259 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
9260 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
9262 if (r->default_datatype) {
9263 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
9264 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
9265 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
9266 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
9267 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
9268 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->default_datatype), ndr_get_array_length(ndr, &r->default_datatype));
9270 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
9271 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
9272 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
9274 if (r->dependent_files) {
9275 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
9276 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
9277 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
9278 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
9280 if (r->previous_names) {
9281 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
9282 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
9283 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
9284 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
9286 if (r->manufacturer_name) {
9287 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9288 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
9289 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_name));
9290 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_name));
9291 if (ndr_get_array_length(ndr, &r->manufacturer_name) > ndr_get_array_size(ndr, &r->manufacturer_name)) {
9292 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->manufacturer_name), ndr_get_array_length(ndr, &r->manufacturer_name));
9294 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t)));
9295 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_name, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t), CH_UTF16));
9296 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
9298 if (r->manufacturer_url) {
9299 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
9300 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
9301 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_url));
9302 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_url));
9303 if (ndr_get_array_length(ndr, &r->manufacturer_url) > ndr_get_array_size(ndr, &r->manufacturer_url)) {
9304 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->manufacturer_url), ndr_get_array_length(ndr, &r->manufacturer_url));
9306 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t)));
9307 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_url, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t), CH_UTF16));
9308 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
9310 if (r->hardware_id) {
9311 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
9312 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
9313 NDR_CHECK(ndr_pull_array_size(ndr, &r->hardware_id));
9314 NDR_CHECK(ndr_pull_array_length(ndr, &r->hardware_id));
9315 if (ndr_get_array_length(ndr, &r->hardware_id) > ndr_get_array_size(ndr, &r->hardware_id)) {
9316 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->hardware_id), ndr_get_array_length(ndr, &r->hardware_id));
9318 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t)));
9319 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_id, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t), CH_UTF16));
9320 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
9322 if (r->provider) {
9323 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
9324 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
9325 NDR_CHECK(ndr_pull_array_size(ndr, &r->provider));
9326 NDR_CHECK(ndr_pull_array_length(ndr, &r->provider));
9327 if (ndr_get_array_length(ndr, &r->provider) > ndr_get_array_size(ndr, &r->provider)) {
9328 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->provider), ndr_get_array_length(ndr, &r->provider));
9330 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t)));
9331 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->provider, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t), CH_UTF16));
9332 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
9335 return NDR_ERR_SUCCESS;
9338 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo6 *r)
9340 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo6");
9341 ndr->depth++;
9342 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
9343 ndr_print_ptr(ndr, "driver_name", r->driver_name);
9344 ndr->depth++;
9345 if (r->driver_name) {
9346 ndr_print_string(ndr, "driver_name", r->driver_name);
9348 ndr->depth--;
9349 ndr_print_ptr(ndr, "architecture", r->architecture);
9350 ndr->depth++;
9351 if (r->architecture) {
9352 ndr_print_string(ndr, "architecture", r->architecture);
9354 ndr->depth--;
9355 ndr_print_ptr(ndr, "driver_path", r->driver_path);
9356 ndr->depth++;
9357 if (r->driver_path) {
9358 ndr_print_string(ndr, "driver_path", r->driver_path);
9360 ndr->depth--;
9361 ndr_print_ptr(ndr, "data_file", r->data_file);
9362 ndr->depth++;
9363 if (r->data_file) {
9364 ndr_print_string(ndr, "data_file", r->data_file);
9366 ndr->depth--;
9367 ndr_print_ptr(ndr, "config_file", r->config_file);
9368 ndr->depth++;
9369 if (r->config_file) {
9370 ndr_print_string(ndr, "config_file", r->config_file);
9372 ndr->depth--;
9373 ndr_print_ptr(ndr, "help_file", r->help_file);
9374 ndr->depth++;
9375 if (r->help_file) {
9376 ndr_print_string(ndr, "help_file", r->help_file);
9378 ndr->depth--;
9379 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
9380 ndr->depth++;
9381 if (r->monitor_name) {
9382 ndr_print_string(ndr, "monitor_name", r->monitor_name);
9384 ndr->depth--;
9385 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
9386 ndr->depth++;
9387 if (r->default_datatype) {
9388 ndr_print_string(ndr, "default_datatype", r->default_datatype);
9390 ndr->depth--;
9391 ndr_print_uint32(ndr, "_ndr_size_dependent_files", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2):r->_ndr_size_dependent_files);
9392 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
9393 ndr->depth++;
9394 if (r->dependent_files) {
9395 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
9397 ndr->depth--;
9398 ndr_print_uint32(ndr, "_ndr_size_previous_names", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2):r->_ndr_size_previous_names);
9399 ndr_print_ptr(ndr, "previous_names", r->previous_names);
9400 ndr->depth++;
9401 if (r->previous_names) {
9402 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
9404 ndr->depth--;
9405 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
9406 ndr_print_hyper(ndr, "driver_version", r->driver_version);
9407 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
9408 ndr->depth++;
9409 if (r->manufacturer_name) {
9410 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
9412 ndr->depth--;
9413 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
9414 ndr->depth++;
9415 if (r->manufacturer_url) {
9416 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
9418 ndr->depth--;
9419 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
9420 ndr->depth++;
9421 if (r->hardware_id) {
9422 ndr_print_string(ndr, "hardware_id", r->hardware_id);
9424 ndr->depth--;
9425 ndr_print_ptr(ndr, "provider", r->provider);
9426 ndr->depth++;
9427 if (r->provider) {
9428 ndr_print_string(ndr, "provider", r->provider);
9430 ndr->depth--;
9431 ndr->depth--;
9434 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo8(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo8 *r)
9436 if (ndr_flags & NDR_SCALARS) {
9437 NDR_CHECK(ndr_push_align(ndr, 8));
9438 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
9439 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
9440 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
9441 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
9442 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
9443 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
9444 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
9445 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
9446 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
9447 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9448 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
9449 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9450 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
9451 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
9452 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
9453 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_name));
9454 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_url));
9455 NDR_CHECK(ndr_push_unique_ptr(ndr, r->hardware_id));
9456 NDR_CHECK(ndr_push_unique_ptr(ndr, r->provider));
9457 NDR_CHECK(ndr_push_unique_ptr(ndr, r->print_processor));
9458 NDR_CHECK(ndr_push_unique_ptr(ndr, r->vendor_setup));
9459 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->color_profiles, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9460 NDR_CHECK(ndr_push_unique_ptr(ndr, r->color_profiles));
9461 NDR_CHECK(ndr_push_unique_ptr(ndr, r->inf_path));
9462 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->printer_driver_attributes));
9463 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->core_driver_dependencies, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9464 NDR_CHECK(ndr_push_unique_ptr(ndr, r->core_driver_dependencies));
9465 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->min_inbox_driver_ver_date));
9466 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->min_inbox_driver_ver_version));
9467 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
9469 if (ndr_flags & NDR_BUFFERS) {
9470 if (r->driver_name) {
9471 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
9472 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9473 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
9474 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9476 if (r->architecture) {
9477 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
9478 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9479 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
9480 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9482 if (r->driver_path) {
9483 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
9484 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9485 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
9486 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9488 if (r->data_file) {
9489 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
9490 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9491 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
9492 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9494 if (r->config_file) {
9495 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
9496 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9497 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
9498 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9500 if (r->help_file) {
9501 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
9502 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9503 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
9504 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9506 if (r->monitor_name) {
9507 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
9508 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9509 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
9510 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9512 if (r->default_datatype) {
9513 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
9514 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9515 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
9516 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9518 if (r->dependent_files) {
9519 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
9521 if (r->previous_names) {
9522 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
9524 if (r->manufacturer_name) {
9525 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
9526 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9527 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
9528 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_name, ndr_charset_length(r->manufacturer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9530 if (r->manufacturer_url) {
9531 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
9532 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9533 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
9534 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_url, ndr_charset_length(r->manufacturer_url, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9536 if (r->hardware_id) {
9537 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
9538 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9539 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
9540 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_id, ndr_charset_length(r->hardware_id, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9542 if (r->provider) {
9543 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
9544 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9545 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
9546 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->provider, ndr_charset_length(r->provider, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9548 if (r->print_processor) {
9549 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
9550 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9551 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
9552 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->print_processor, ndr_charset_length(r->print_processor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9554 if (r->vendor_setup) {
9555 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->vendor_setup, CH_UTF16)));
9556 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9557 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->vendor_setup, CH_UTF16)));
9558 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->vendor_setup, ndr_charset_length(r->vendor_setup, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9560 if (r->color_profiles) {
9561 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->color_profiles));
9563 if (r->inf_path) {
9564 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->inf_path, CH_UTF16)));
9565 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9566 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->inf_path, CH_UTF16)));
9567 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->inf_path, ndr_charset_length(r->inf_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9569 if (r->core_driver_dependencies) {
9570 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->core_driver_dependencies));
9573 return NDR_ERR_SUCCESS;
9576 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo8(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo8 *r)
9578 uint32_t _ptr_driver_name;
9579 TALLOC_CTX *_mem_save_driver_name_0;
9580 uint32_t _ptr_architecture;
9581 TALLOC_CTX *_mem_save_architecture_0;
9582 uint32_t _ptr_driver_path;
9583 TALLOC_CTX *_mem_save_driver_path_0;
9584 uint32_t _ptr_data_file;
9585 TALLOC_CTX *_mem_save_data_file_0;
9586 uint32_t _ptr_config_file;
9587 TALLOC_CTX *_mem_save_config_file_0;
9588 uint32_t _ptr_help_file;
9589 TALLOC_CTX *_mem_save_help_file_0;
9590 uint32_t _ptr_monitor_name;
9591 TALLOC_CTX *_mem_save_monitor_name_0;
9592 uint32_t _ptr_default_datatype;
9593 TALLOC_CTX *_mem_save_default_datatype_0;
9594 uint32_t _ptr_dependent_files;
9595 TALLOC_CTX *_mem_save_dependent_files_0;
9596 uint32_t _ptr_previous_names;
9597 TALLOC_CTX *_mem_save_previous_names_0;
9598 uint32_t _ptr_manufacturer_name;
9599 TALLOC_CTX *_mem_save_manufacturer_name_0;
9600 uint32_t _ptr_manufacturer_url;
9601 TALLOC_CTX *_mem_save_manufacturer_url_0;
9602 uint32_t _ptr_hardware_id;
9603 TALLOC_CTX *_mem_save_hardware_id_0;
9604 uint32_t _ptr_provider;
9605 TALLOC_CTX *_mem_save_provider_0;
9606 uint32_t _ptr_print_processor;
9607 TALLOC_CTX *_mem_save_print_processor_0;
9608 uint32_t _ptr_vendor_setup;
9609 TALLOC_CTX *_mem_save_vendor_setup_0;
9610 uint32_t _ptr_color_profiles;
9611 TALLOC_CTX *_mem_save_color_profiles_0;
9612 uint32_t _ptr_inf_path;
9613 TALLOC_CTX *_mem_save_inf_path_0;
9614 uint32_t _ptr_core_driver_dependencies;
9615 TALLOC_CTX *_mem_save_core_driver_dependencies_0;
9616 if (ndr_flags & NDR_SCALARS) {
9617 NDR_CHECK(ndr_pull_align(ndr, 8));
9618 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
9619 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
9620 if (_ptr_driver_name) {
9621 NDR_PULL_ALLOC(ndr, r->driver_name);
9622 } else {
9623 r->driver_name = NULL;
9625 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
9626 if (_ptr_architecture) {
9627 NDR_PULL_ALLOC(ndr, r->architecture);
9628 } else {
9629 r->architecture = NULL;
9631 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
9632 if (_ptr_driver_path) {
9633 NDR_PULL_ALLOC(ndr, r->driver_path);
9634 } else {
9635 r->driver_path = NULL;
9637 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
9638 if (_ptr_data_file) {
9639 NDR_PULL_ALLOC(ndr, r->data_file);
9640 } else {
9641 r->data_file = NULL;
9643 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
9644 if (_ptr_config_file) {
9645 NDR_PULL_ALLOC(ndr, r->config_file);
9646 } else {
9647 r->config_file = NULL;
9649 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
9650 if (_ptr_help_file) {
9651 NDR_PULL_ALLOC(ndr, r->help_file);
9652 } else {
9653 r->help_file = NULL;
9655 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
9656 if (_ptr_monitor_name) {
9657 NDR_PULL_ALLOC(ndr, r->monitor_name);
9658 } else {
9659 r->monitor_name = NULL;
9661 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
9662 if (_ptr_default_datatype) {
9663 NDR_PULL_ALLOC(ndr, r->default_datatype);
9664 } else {
9665 r->default_datatype = NULL;
9667 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
9668 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
9669 if (_ptr_dependent_files) {
9670 NDR_PULL_ALLOC(ndr, r->dependent_files);
9671 } else {
9672 r->dependent_files = NULL;
9674 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
9675 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
9676 if (_ptr_previous_names) {
9677 NDR_PULL_ALLOC(ndr, r->previous_names);
9678 } else {
9679 r->previous_names = NULL;
9681 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
9682 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
9683 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
9684 if (_ptr_manufacturer_name) {
9685 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
9686 } else {
9687 r->manufacturer_name = NULL;
9689 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
9690 if (_ptr_manufacturer_url) {
9691 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
9692 } else {
9693 r->manufacturer_url = NULL;
9695 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
9696 if (_ptr_hardware_id) {
9697 NDR_PULL_ALLOC(ndr, r->hardware_id);
9698 } else {
9699 r->hardware_id = NULL;
9701 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
9702 if (_ptr_provider) {
9703 NDR_PULL_ALLOC(ndr, r->provider);
9704 } else {
9705 r->provider = NULL;
9707 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
9708 if (_ptr_print_processor) {
9709 NDR_PULL_ALLOC(ndr, r->print_processor);
9710 } else {
9711 r->print_processor = NULL;
9713 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_vendor_setup));
9714 if (_ptr_vendor_setup) {
9715 NDR_PULL_ALLOC(ndr, r->vendor_setup);
9716 } else {
9717 r->vendor_setup = NULL;
9719 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_color_profiles));
9720 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_color_profiles));
9721 if (_ptr_color_profiles) {
9722 NDR_PULL_ALLOC(ndr, r->color_profiles);
9723 } else {
9724 r->color_profiles = NULL;
9726 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_inf_path));
9727 if (_ptr_inf_path) {
9728 NDR_PULL_ALLOC(ndr, r->inf_path);
9729 } else {
9730 r->inf_path = NULL;
9732 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->printer_driver_attributes));
9733 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_core_driver_dependencies));
9734 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_core_driver_dependencies));
9735 if (_ptr_core_driver_dependencies) {
9736 NDR_PULL_ALLOC(ndr, r->core_driver_dependencies);
9737 } else {
9738 r->core_driver_dependencies = NULL;
9740 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_date));
9741 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_version));
9742 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
9744 if (ndr_flags & NDR_BUFFERS) {
9745 if (r->driver_name) {
9746 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9747 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
9748 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
9749 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
9750 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
9751 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_name), ndr_get_array_length(ndr, &r->driver_name));
9753 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
9754 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
9755 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
9757 if (r->architecture) {
9758 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
9759 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
9760 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
9761 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
9762 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
9763 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->architecture), ndr_get_array_length(ndr, &r->architecture));
9765 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
9766 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
9767 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
9769 if (r->driver_path) {
9770 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
9771 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
9772 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
9773 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
9774 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
9775 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_path), ndr_get_array_length(ndr, &r->driver_path));
9777 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
9778 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
9779 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
9781 if (r->data_file) {
9782 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9783 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
9784 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
9785 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
9786 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
9787 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data_file), ndr_get_array_length(ndr, &r->data_file));
9789 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
9790 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
9791 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
9793 if (r->config_file) {
9794 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9795 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
9796 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
9797 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
9798 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
9799 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->config_file), ndr_get_array_length(ndr, &r->config_file));
9801 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
9802 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
9803 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
9805 if (r->help_file) {
9806 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9807 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
9808 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
9809 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
9810 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
9811 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->help_file), ndr_get_array_length(ndr, &r->help_file));
9813 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
9814 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
9815 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
9817 if (r->monitor_name) {
9818 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9819 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
9820 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
9821 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
9822 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
9823 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->monitor_name), ndr_get_array_length(ndr, &r->monitor_name));
9825 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
9826 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
9827 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
9829 if (r->default_datatype) {
9830 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
9831 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
9832 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
9833 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
9834 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
9835 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->default_datatype), ndr_get_array_length(ndr, &r->default_datatype));
9837 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
9838 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
9839 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
9841 if (r->dependent_files) {
9842 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
9843 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
9844 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
9845 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
9847 if (r->previous_names) {
9848 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
9849 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
9850 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
9851 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
9853 if (r->manufacturer_name) {
9854 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9855 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
9856 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_name));
9857 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_name));
9858 if (ndr_get_array_length(ndr, &r->manufacturer_name) > ndr_get_array_size(ndr, &r->manufacturer_name)) {
9859 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->manufacturer_name), ndr_get_array_length(ndr, &r->manufacturer_name));
9861 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t)));
9862 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_name, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t), CH_UTF16));
9863 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
9865 if (r->manufacturer_url) {
9866 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
9867 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
9868 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_url));
9869 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_url));
9870 if (ndr_get_array_length(ndr, &r->manufacturer_url) > ndr_get_array_size(ndr, &r->manufacturer_url)) {
9871 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->manufacturer_url), ndr_get_array_length(ndr, &r->manufacturer_url));
9873 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t)));
9874 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_url, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t), CH_UTF16));
9875 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
9877 if (r->hardware_id) {
9878 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
9879 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
9880 NDR_CHECK(ndr_pull_array_size(ndr, &r->hardware_id));
9881 NDR_CHECK(ndr_pull_array_length(ndr, &r->hardware_id));
9882 if (ndr_get_array_length(ndr, &r->hardware_id) > ndr_get_array_size(ndr, &r->hardware_id)) {
9883 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->hardware_id), ndr_get_array_length(ndr, &r->hardware_id));
9885 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t)));
9886 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_id, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t), CH_UTF16));
9887 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
9889 if (r->provider) {
9890 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
9891 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
9892 NDR_CHECK(ndr_pull_array_size(ndr, &r->provider));
9893 NDR_CHECK(ndr_pull_array_length(ndr, &r->provider));
9894 if (ndr_get_array_length(ndr, &r->provider) > ndr_get_array_size(ndr, &r->provider)) {
9895 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->provider), ndr_get_array_length(ndr, &r->provider));
9897 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t)));
9898 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->provider, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t), CH_UTF16));
9899 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
9901 if (r->print_processor) {
9902 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
9903 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
9904 NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
9905 NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
9906 if (ndr_get_array_length(ndr, &r->print_processor) > ndr_get_array_size(ndr, &r->print_processor)) {
9907 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->print_processor), ndr_get_array_length(ndr, &r->print_processor));
9909 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t)));
9910 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t), CH_UTF16));
9911 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
9913 if (r->vendor_setup) {
9914 _mem_save_vendor_setup_0 = NDR_PULL_GET_MEM_CTX(ndr);
9915 NDR_PULL_SET_MEM_CTX(ndr, r->vendor_setup, 0);
9916 NDR_CHECK(ndr_pull_array_size(ndr, &r->vendor_setup));
9917 NDR_CHECK(ndr_pull_array_length(ndr, &r->vendor_setup));
9918 if (ndr_get_array_length(ndr, &r->vendor_setup) > ndr_get_array_size(ndr, &r->vendor_setup)) {
9919 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->vendor_setup), ndr_get_array_length(ndr, &r->vendor_setup));
9921 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->vendor_setup), sizeof(uint16_t)));
9922 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->vendor_setup, ndr_get_array_length(ndr, &r->vendor_setup), sizeof(uint16_t), CH_UTF16));
9923 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vendor_setup_0, 0);
9925 if (r->color_profiles) {
9926 _mem_save_color_profiles_0 = NDR_PULL_GET_MEM_CTX(ndr);
9927 NDR_PULL_SET_MEM_CTX(ndr, r->color_profiles, 0);
9928 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->color_profiles));
9929 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_color_profiles_0, 0);
9931 if (r->inf_path) {
9932 _mem_save_inf_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
9933 NDR_PULL_SET_MEM_CTX(ndr, r->inf_path, 0);
9934 NDR_CHECK(ndr_pull_array_size(ndr, &r->inf_path));
9935 NDR_CHECK(ndr_pull_array_length(ndr, &r->inf_path));
9936 if (ndr_get_array_length(ndr, &r->inf_path) > ndr_get_array_size(ndr, &r->inf_path)) {
9937 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->inf_path), ndr_get_array_length(ndr, &r->inf_path));
9939 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->inf_path), sizeof(uint16_t)));
9940 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->inf_path, ndr_get_array_length(ndr, &r->inf_path), sizeof(uint16_t), CH_UTF16));
9941 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_inf_path_0, 0);
9943 if (r->core_driver_dependencies) {
9944 _mem_save_core_driver_dependencies_0 = NDR_PULL_GET_MEM_CTX(ndr);
9945 NDR_PULL_SET_MEM_CTX(ndr, r->core_driver_dependencies, 0);
9946 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->core_driver_dependencies));
9947 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_driver_dependencies_0, 0);
9950 return NDR_ERR_SUCCESS;
9953 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo8(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo8 *r)
9955 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo8");
9956 ndr->depth++;
9957 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
9958 ndr_print_ptr(ndr, "driver_name", r->driver_name);
9959 ndr->depth++;
9960 if (r->driver_name) {
9961 ndr_print_string(ndr, "driver_name", r->driver_name);
9963 ndr->depth--;
9964 ndr_print_ptr(ndr, "architecture", r->architecture);
9965 ndr->depth++;
9966 if (r->architecture) {
9967 ndr_print_string(ndr, "architecture", r->architecture);
9969 ndr->depth--;
9970 ndr_print_ptr(ndr, "driver_path", r->driver_path);
9971 ndr->depth++;
9972 if (r->driver_path) {
9973 ndr_print_string(ndr, "driver_path", r->driver_path);
9975 ndr->depth--;
9976 ndr_print_ptr(ndr, "data_file", r->data_file);
9977 ndr->depth++;
9978 if (r->data_file) {
9979 ndr_print_string(ndr, "data_file", r->data_file);
9981 ndr->depth--;
9982 ndr_print_ptr(ndr, "config_file", r->config_file);
9983 ndr->depth++;
9984 if (r->config_file) {
9985 ndr_print_string(ndr, "config_file", r->config_file);
9987 ndr->depth--;
9988 ndr_print_ptr(ndr, "help_file", r->help_file);
9989 ndr->depth++;
9990 if (r->help_file) {
9991 ndr_print_string(ndr, "help_file", r->help_file);
9993 ndr->depth--;
9994 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
9995 ndr->depth++;
9996 if (r->monitor_name) {
9997 ndr_print_string(ndr, "monitor_name", r->monitor_name);
9999 ndr->depth--;
10000 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
10001 ndr->depth++;
10002 if (r->default_datatype) {
10003 ndr_print_string(ndr, "default_datatype", r->default_datatype);
10005 ndr->depth--;
10006 ndr_print_uint32(ndr, "_ndr_size_dependent_files", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2):r->_ndr_size_dependent_files);
10007 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
10008 ndr->depth++;
10009 if (r->dependent_files) {
10010 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
10012 ndr->depth--;
10013 ndr_print_uint32(ndr, "_ndr_size_previous_names", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2):r->_ndr_size_previous_names);
10014 ndr_print_ptr(ndr, "previous_names", r->previous_names);
10015 ndr->depth++;
10016 if (r->previous_names) {
10017 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
10019 ndr->depth--;
10020 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
10021 ndr_print_hyper(ndr, "driver_version", r->driver_version);
10022 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
10023 ndr->depth++;
10024 if (r->manufacturer_name) {
10025 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
10027 ndr->depth--;
10028 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
10029 ndr->depth++;
10030 if (r->manufacturer_url) {
10031 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
10033 ndr->depth--;
10034 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
10035 ndr->depth++;
10036 if (r->hardware_id) {
10037 ndr_print_string(ndr, "hardware_id", r->hardware_id);
10039 ndr->depth--;
10040 ndr_print_ptr(ndr, "provider", r->provider);
10041 ndr->depth++;
10042 if (r->provider) {
10043 ndr_print_string(ndr, "provider", r->provider);
10045 ndr->depth--;
10046 ndr_print_ptr(ndr, "print_processor", r->print_processor);
10047 ndr->depth++;
10048 if (r->print_processor) {
10049 ndr_print_string(ndr, "print_processor", r->print_processor);
10051 ndr->depth--;
10052 ndr_print_ptr(ndr, "vendor_setup", r->vendor_setup);
10053 ndr->depth++;
10054 if (r->vendor_setup) {
10055 ndr_print_string(ndr, "vendor_setup", r->vendor_setup);
10057 ndr->depth--;
10058 ndr_print_uint32(ndr, "_ndr_size_color_profiles", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->color_profiles, ndr->iconv_convenience, ndr->flags) - 4) / 2):r->_ndr_size_color_profiles);
10059 ndr_print_ptr(ndr, "color_profiles", r->color_profiles);
10060 ndr->depth++;
10061 if (r->color_profiles) {
10062 ndr_print_spoolss_StringArray(ndr, "color_profiles", r->color_profiles);
10064 ndr->depth--;
10065 ndr_print_ptr(ndr, "inf_path", r->inf_path);
10066 ndr->depth++;
10067 if (r->inf_path) {
10068 ndr_print_string(ndr, "inf_path", r->inf_path);
10070 ndr->depth--;
10071 ndr_print_uint32(ndr, "printer_driver_attributes", r->printer_driver_attributes);
10072 ndr_print_uint32(ndr, "_ndr_size_core_driver_dependencies", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->core_driver_dependencies, ndr->iconv_convenience, ndr->flags) - 4) / 2):r->_ndr_size_core_driver_dependencies);
10073 ndr_print_ptr(ndr, "core_driver_dependencies", r->core_driver_dependencies);
10074 ndr->depth++;
10075 if (r->core_driver_dependencies) {
10076 ndr_print_spoolss_StringArray(ndr, "core_driver_dependencies", r->core_driver_dependencies);
10078 ndr->depth--;
10079 ndr_print_NTTIME(ndr, "min_inbox_driver_ver_date", r->min_inbox_driver_ver_date);
10080 ndr_print_hyper(ndr, "min_inbox_driver_ver_version", r->min_inbox_driver_ver_version);
10081 ndr->depth--;
10084 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_AddDriverInfo *r)
10086 if (ndr_flags & NDR_SCALARS) {
10087 int level = ndr_push_get_switch_value(ndr, r);
10088 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
10089 NDR_CHECK(ndr_push_union_align(ndr, 5));
10090 switch (level) {
10091 case 1: {
10092 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
10093 break; }
10095 case 2: {
10096 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
10097 break; }
10099 case 3: {
10100 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
10101 break; }
10103 case 4: {
10104 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
10105 break; }
10107 case 6: {
10108 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info6));
10109 break; }
10111 case 8: {
10112 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info8));
10113 break; }
10115 default:
10116 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
10119 if (ndr_flags & NDR_BUFFERS) {
10120 int level = ndr_push_get_switch_value(ndr, r);
10121 switch (level) {
10122 case 1:
10123 if (r->info1) {
10124 NDR_CHECK(ndr_push_spoolss_AddDriverInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
10126 break;
10128 case 2:
10129 if (r->info2) {
10130 NDR_CHECK(ndr_push_spoolss_AddDriverInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
10132 break;
10134 case 3:
10135 if (r->info3) {
10136 NDR_CHECK(ndr_push_spoolss_AddDriverInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3));
10138 break;
10140 case 4:
10141 if (r->info4) {
10142 NDR_CHECK(ndr_push_spoolss_AddDriverInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
10144 break;
10146 case 6:
10147 if (r->info6) {
10148 NDR_CHECK(ndr_push_spoolss_AddDriverInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->info6));
10150 break;
10152 case 8:
10153 if (r->info8) {
10154 NDR_CHECK(ndr_push_spoolss_AddDriverInfo8(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
10156 break;
10158 default:
10159 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
10162 return NDR_ERR_SUCCESS;
10165 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_AddDriverInfo *r)
10167 int level;
10168 uint32_t _level;
10169 TALLOC_CTX *_mem_save_info1_0;
10170 TALLOC_CTX *_mem_save_info2_0;
10171 TALLOC_CTX *_mem_save_info3_0;
10172 TALLOC_CTX *_mem_save_info4_0;
10173 TALLOC_CTX *_mem_save_info6_0;
10174 TALLOC_CTX *_mem_save_info8_0;
10175 level = ndr_pull_get_switch_value(ndr, r);
10176 if (ndr_flags & NDR_SCALARS) {
10177 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
10178 if (_level != level) {
10179 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
10181 NDR_CHECK(ndr_pull_union_align(ndr, 5));
10182 switch (level) {
10183 case 1: {
10184 uint32_t _ptr_info1;
10185 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
10186 if (_ptr_info1) {
10187 NDR_PULL_ALLOC(ndr, r->info1);
10188 } else {
10189 r->info1 = NULL;
10191 break; }
10193 case 2: {
10194 uint32_t _ptr_info2;
10195 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
10196 if (_ptr_info2) {
10197 NDR_PULL_ALLOC(ndr, r->info2);
10198 } else {
10199 r->info2 = NULL;
10201 break; }
10203 case 3: {
10204 uint32_t _ptr_info3;
10205 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
10206 if (_ptr_info3) {
10207 NDR_PULL_ALLOC(ndr, r->info3);
10208 } else {
10209 r->info3 = NULL;
10211 break; }
10213 case 4: {
10214 uint32_t _ptr_info4;
10215 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
10216 if (_ptr_info4) {
10217 NDR_PULL_ALLOC(ndr, r->info4);
10218 } else {
10219 r->info4 = NULL;
10221 break; }
10223 case 6: {
10224 uint32_t _ptr_info6;
10225 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info6));
10226 if (_ptr_info6) {
10227 NDR_PULL_ALLOC(ndr, r->info6);
10228 } else {
10229 r->info6 = NULL;
10231 break; }
10233 case 8: {
10234 uint32_t _ptr_info8;
10235 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info8));
10236 if (_ptr_info8) {
10237 NDR_PULL_ALLOC(ndr, r->info8);
10238 } else {
10239 r->info8 = NULL;
10241 break; }
10243 default:
10244 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
10247 if (ndr_flags & NDR_BUFFERS) {
10248 switch (level) {
10249 case 1:
10250 if (r->info1) {
10251 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
10252 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
10253 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
10254 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
10256 break;
10258 case 2:
10259 if (r->info2) {
10260 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
10261 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
10262 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
10263 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
10265 break;
10267 case 3:
10268 if (r->info3) {
10269 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
10270 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
10271 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3));
10272 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
10274 break;
10276 case 4:
10277 if (r->info4) {
10278 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
10279 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
10280 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
10281 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
10283 break;
10285 case 6:
10286 if (r->info6) {
10287 _mem_save_info6_0 = NDR_PULL_GET_MEM_CTX(ndr);
10288 NDR_PULL_SET_MEM_CTX(ndr, r->info6, 0);
10289 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->info6));
10290 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info6_0, 0);
10292 break;
10294 case 8:
10295 if (r->info8) {
10296 _mem_save_info8_0 = NDR_PULL_GET_MEM_CTX(ndr);
10297 NDR_PULL_SET_MEM_CTX(ndr, r->info8, 0);
10298 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo8(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
10299 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info8_0, 0);
10301 break;
10303 default:
10304 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
10307 return NDR_ERR_SUCCESS;
10310 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo(struct ndr_print *ndr, const char *name, const union spoolss_AddDriverInfo *r)
10312 int level;
10313 level = ndr_print_get_switch_value(ndr, r);
10314 ndr_print_union(ndr, name, level, "spoolss_AddDriverInfo");
10315 switch (level) {
10316 case 1:
10317 ndr_print_ptr(ndr, "info1", r->info1);
10318 ndr->depth++;
10319 if (r->info1) {
10320 ndr_print_spoolss_AddDriverInfo1(ndr, "info1", r->info1);
10322 ndr->depth--;
10323 break;
10325 case 2:
10326 ndr_print_ptr(ndr, "info2", r->info2);
10327 ndr->depth++;
10328 if (r->info2) {
10329 ndr_print_spoolss_AddDriverInfo2(ndr, "info2", r->info2);
10331 ndr->depth--;
10332 break;
10334 case 3:
10335 ndr_print_ptr(ndr, "info3", r->info3);
10336 ndr->depth++;
10337 if (r->info3) {
10338 ndr_print_spoolss_AddDriverInfo3(ndr, "info3", r->info3);
10340 ndr->depth--;
10341 break;
10343 case 4:
10344 ndr_print_ptr(ndr, "info4", r->info4);
10345 ndr->depth++;
10346 if (r->info4) {
10347 ndr_print_spoolss_AddDriverInfo4(ndr, "info4", r->info4);
10349 ndr->depth--;
10350 break;
10352 case 6:
10353 ndr_print_ptr(ndr, "info6", r->info6);
10354 ndr->depth++;
10355 if (r->info6) {
10356 ndr_print_spoolss_AddDriverInfo6(ndr, "info6", r->info6);
10358 ndr->depth--;
10359 break;
10361 case 8:
10362 ndr_print_ptr(ndr, "info8", r->info8);
10363 ndr->depth++;
10364 if (r->info8) {
10365 ndr_print_spoolss_AddDriverInfo8(ndr, "info8", r->info8);
10367 ndr->depth--;
10368 break;
10370 default:
10371 ndr_print_bad_level(ndr, name, level);
10375 static enum ndr_err_code ndr_push_spoolss_AddDriverInfoCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfoCtr *r)
10377 if (ndr_flags & NDR_SCALARS) {
10378 NDR_CHECK(ndr_push_align(ndr, 5));
10379 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
10380 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
10381 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr, NDR_SCALARS, &r->info));
10382 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
10384 if (ndr_flags & NDR_BUFFERS) {
10385 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr, NDR_BUFFERS, &r->info));
10387 return NDR_ERR_SUCCESS;
10390 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfoCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfoCtr *r)
10392 if (ndr_flags & NDR_SCALARS) {
10393 NDR_CHECK(ndr_pull_align(ndr, 5));
10394 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
10395 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
10396 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr, NDR_SCALARS, &r->info));
10397 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
10399 if (ndr_flags & NDR_BUFFERS) {
10400 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr, NDR_BUFFERS, &r->info));
10402 return NDR_ERR_SUCCESS;
10405 _PUBLIC_ void ndr_print_spoolss_AddDriverInfoCtr(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfoCtr *r)
10407 ndr_print_struct(ndr, name, "spoolss_AddDriverInfoCtr");
10408 ndr->depth++;
10409 ndr_print_uint32(ndr, "level", r->level);
10410 ndr_print_set_switch_value(ndr, &r->info, r->level);
10411 ndr_print_spoolss_AddDriverInfo(ndr, "info", &r->info);
10412 ndr->depth--;
10415 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo1 *r)
10417 if (ndr_flags & NDR_SCALARS) {
10418 NDR_CHECK(ndr_push_align(ndr, 5));
10420 uint32_t _flags_save_string = ndr->flags;
10421 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10422 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
10423 ndr->flags = _flags_save_string;
10425 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
10427 if (ndr_flags & NDR_BUFFERS) {
10429 uint32_t _flags_save_string = ndr->flags;
10430 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10431 if (r->driver_name) {
10432 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
10433 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
10435 ndr->flags = _flags_save_string;
10438 return NDR_ERR_SUCCESS;
10441 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo1 *r)
10443 uint32_t _ptr_driver_name;
10444 TALLOC_CTX *_mem_save_driver_name_0;
10445 if (ndr_flags & NDR_SCALARS) {
10446 NDR_CHECK(ndr_pull_align(ndr, 5));
10448 uint32_t _flags_save_string = ndr->flags;
10449 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10450 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
10451 if (_ptr_driver_name) {
10452 NDR_PULL_ALLOC(ndr, r->driver_name);
10453 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
10454 } else {
10455 r->driver_name = NULL;
10457 ndr->flags = _flags_save_string;
10459 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
10461 if (ndr_flags & NDR_BUFFERS) {
10463 uint32_t _flags_save_string = ndr->flags;
10464 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10465 if (r->driver_name) {
10466 uint32_t _relative_save_offset;
10467 _relative_save_offset = ndr->offset;
10468 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
10469 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10470 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
10471 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
10472 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
10473 ndr->offset = _relative_save_offset;
10475 ndr->flags = _flags_save_string;
10478 return NDR_ERR_SUCCESS;
10481 _PUBLIC_ void ndr_print_spoolss_DriverInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo1 *r)
10483 ndr_print_struct(ndr, name, "spoolss_DriverInfo1");
10484 ndr->depth++;
10485 ndr_print_ptr(ndr, "driver_name", r->driver_name);
10486 ndr->depth++;
10487 if (r->driver_name) {
10488 ndr_print_string(ndr, "driver_name", r->driver_name);
10490 ndr->depth--;
10491 ndr->depth--;
10494 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo1(const struct spoolss_DriverInfo1 *r, struct smb_iconv_convenience *ic, int flags)
10496 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo1, ic);
10499 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo2 *r)
10501 if (ndr_flags & NDR_SCALARS) {
10502 NDR_CHECK(ndr_push_align(ndr, 5));
10503 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
10505 uint32_t _flags_save_string = ndr->flags;
10506 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10507 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
10508 ndr->flags = _flags_save_string;
10511 uint32_t _flags_save_string = ndr->flags;
10512 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10513 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
10514 ndr->flags = _flags_save_string;
10517 uint32_t _flags_save_string = ndr->flags;
10518 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10519 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
10520 ndr->flags = _flags_save_string;
10523 uint32_t _flags_save_string = ndr->flags;
10524 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10525 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
10526 ndr->flags = _flags_save_string;
10529 uint32_t _flags_save_string = ndr->flags;
10530 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10531 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
10532 ndr->flags = _flags_save_string;
10534 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
10536 if (ndr_flags & NDR_BUFFERS) {
10538 uint32_t _flags_save_string = ndr->flags;
10539 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10540 if (r->driver_name) {
10541 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
10542 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
10544 ndr->flags = _flags_save_string;
10547 uint32_t _flags_save_string = ndr->flags;
10548 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10549 if (r->architecture) {
10550 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
10551 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
10553 ndr->flags = _flags_save_string;
10556 uint32_t _flags_save_string = ndr->flags;
10557 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10558 if (r->driver_path) {
10559 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
10560 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
10562 ndr->flags = _flags_save_string;
10565 uint32_t _flags_save_string = ndr->flags;
10566 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10567 if (r->data_file) {
10568 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
10569 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
10571 ndr->flags = _flags_save_string;
10574 uint32_t _flags_save_string = ndr->flags;
10575 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10576 if (r->config_file) {
10577 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
10578 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
10580 ndr->flags = _flags_save_string;
10583 return NDR_ERR_SUCCESS;
10586 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo2 *r)
10588 uint32_t _ptr_driver_name;
10589 TALLOC_CTX *_mem_save_driver_name_0;
10590 uint32_t _ptr_architecture;
10591 TALLOC_CTX *_mem_save_architecture_0;
10592 uint32_t _ptr_driver_path;
10593 TALLOC_CTX *_mem_save_driver_path_0;
10594 uint32_t _ptr_data_file;
10595 TALLOC_CTX *_mem_save_data_file_0;
10596 uint32_t _ptr_config_file;
10597 TALLOC_CTX *_mem_save_config_file_0;
10598 if (ndr_flags & NDR_SCALARS) {
10599 NDR_CHECK(ndr_pull_align(ndr, 5));
10600 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
10602 uint32_t _flags_save_string = ndr->flags;
10603 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10604 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
10605 if (_ptr_driver_name) {
10606 NDR_PULL_ALLOC(ndr, r->driver_name);
10607 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
10608 } else {
10609 r->driver_name = NULL;
10611 ndr->flags = _flags_save_string;
10614 uint32_t _flags_save_string = ndr->flags;
10615 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10616 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
10617 if (_ptr_architecture) {
10618 NDR_PULL_ALLOC(ndr, r->architecture);
10619 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
10620 } else {
10621 r->architecture = NULL;
10623 ndr->flags = _flags_save_string;
10626 uint32_t _flags_save_string = ndr->flags;
10627 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10628 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
10629 if (_ptr_driver_path) {
10630 NDR_PULL_ALLOC(ndr, r->driver_path);
10631 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
10632 } else {
10633 r->driver_path = NULL;
10635 ndr->flags = _flags_save_string;
10638 uint32_t _flags_save_string = ndr->flags;
10639 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10640 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
10641 if (_ptr_data_file) {
10642 NDR_PULL_ALLOC(ndr, r->data_file);
10643 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
10644 } else {
10645 r->data_file = NULL;
10647 ndr->flags = _flags_save_string;
10650 uint32_t _flags_save_string = ndr->flags;
10651 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10652 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
10653 if (_ptr_config_file) {
10654 NDR_PULL_ALLOC(ndr, r->config_file);
10655 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
10656 } else {
10657 r->config_file = NULL;
10659 ndr->flags = _flags_save_string;
10661 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
10663 if (ndr_flags & NDR_BUFFERS) {
10665 uint32_t _flags_save_string = ndr->flags;
10666 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10667 if (r->driver_name) {
10668 uint32_t _relative_save_offset;
10669 _relative_save_offset = ndr->offset;
10670 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
10671 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10672 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
10673 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
10674 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
10675 ndr->offset = _relative_save_offset;
10677 ndr->flags = _flags_save_string;
10680 uint32_t _flags_save_string = ndr->flags;
10681 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10682 if (r->architecture) {
10683 uint32_t _relative_save_offset;
10684 _relative_save_offset = ndr->offset;
10685 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
10686 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
10687 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
10688 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
10689 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
10690 ndr->offset = _relative_save_offset;
10692 ndr->flags = _flags_save_string;
10695 uint32_t _flags_save_string = ndr->flags;
10696 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10697 if (r->driver_path) {
10698 uint32_t _relative_save_offset;
10699 _relative_save_offset = ndr->offset;
10700 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
10701 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
10702 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
10703 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
10704 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
10705 ndr->offset = _relative_save_offset;
10707 ndr->flags = _flags_save_string;
10710 uint32_t _flags_save_string = ndr->flags;
10711 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10712 if (r->data_file) {
10713 uint32_t _relative_save_offset;
10714 _relative_save_offset = ndr->offset;
10715 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
10716 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10717 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
10718 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
10719 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
10720 ndr->offset = _relative_save_offset;
10722 ndr->flags = _flags_save_string;
10725 uint32_t _flags_save_string = ndr->flags;
10726 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10727 if (r->config_file) {
10728 uint32_t _relative_save_offset;
10729 _relative_save_offset = ndr->offset;
10730 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
10731 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10732 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
10733 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
10734 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
10735 ndr->offset = _relative_save_offset;
10737 ndr->flags = _flags_save_string;
10740 return NDR_ERR_SUCCESS;
10743 _PUBLIC_ void ndr_print_spoolss_DriverInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo2 *r)
10745 ndr_print_struct(ndr, name, "spoolss_DriverInfo2");
10746 ndr->depth++;
10747 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
10748 ndr_print_ptr(ndr, "driver_name", r->driver_name);
10749 ndr->depth++;
10750 if (r->driver_name) {
10751 ndr_print_string(ndr, "driver_name", r->driver_name);
10753 ndr->depth--;
10754 ndr_print_ptr(ndr, "architecture", r->architecture);
10755 ndr->depth++;
10756 if (r->architecture) {
10757 ndr_print_string(ndr, "architecture", r->architecture);
10759 ndr->depth--;
10760 ndr_print_ptr(ndr, "driver_path", r->driver_path);
10761 ndr->depth++;
10762 if (r->driver_path) {
10763 ndr_print_string(ndr, "driver_path", r->driver_path);
10765 ndr->depth--;
10766 ndr_print_ptr(ndr, "data_file", r->data_file);
10767 ndr->depth++;
10768 if (r->data_file) {
10769 ndr_print_string(ndr, "data_file", r->data_file);
10771 ndr->depth--;
10772 ndr_print_ptr(ndr, "config_file", r->config_file);
10773 ndr->depth++;
10774 if (r->config_file) {
10775 ndr_print_string(ndr, "config_file", r->config_file);
10777 ndr->depth--;
10778 ndr->depth--;
10781 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo2(const struct spoolss_DriverInfo2 *r, struct smb_iconv_convenience *ic, int flags)
10783 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo2, ic);
10786 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo3 *r)
10788 if (ndr_flags & NDR_SCALARS) {
10789 NDR_CHECK(ndr_push_align(ndr, 5));
10790 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
10792 uint32_t _flags_save_string = ndr->flags;
10793 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10794 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
10795 ndr->flags = _flags_save_string;
10798 uint32_t _flags_save_string = ndr->flags;
10799 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10800 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
10801 ndr->flags = _flags_save_string;
10804 uint32_t _flags_save_string = ndr->flags;
10805 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10806 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
10807 ndr->flags = _flags_save_string;
10810 uint32_t _flags_save_string = ndr->flags;
10811 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10812 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
10813 ndr->flags = _flags_save_string;
10816 uint32_t _flags_save_string = ndr->flags;
10817 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10818 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
10819 ndr->flags = _flags_save_string;
10822 uint32_t _flags_save_string = ndr->flags;
10823 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10824 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
10825 ndr->flags = _flags_save_string;
10828 uint32_t _flags_save_string_array = ndr->flags;
10829 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10830 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
10831 ndr->flags = _flags_save_string_array;
10834 uint32_t _flags_save_string = ndr->flags;
10835 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10836 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
10837 ndr->flags = _flags_save_string;
10840 uint32_t _flags_save_string = ndr->flags;
10841 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10842 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
10843 ndr->flags = _flags_save_string;
10845 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
10847 if (ndr_flags & NDR_BUFFERS) {
10849 uint32_t _flags_save_string = ndr->flags;
10850 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10851 if (r->driver_name) {
10852 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
10853 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
10855 ndr->flags = _flags_save_string;
10858 uint32_t _flags_save_string = ndr->flags;
10859 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10860 if (r->architecture) {
10861 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
10862 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
10864 ndr->flags = _flags_save_string;
10867 uint32_t _flags_save_string = ndr->flags;
10868 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10869 if (r->driver_path) {
10870 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
10871 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
10873 ndr->flags = _flags_save_string;
10876 uint32_t _flags_save_string = ndr->flags;
10877 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10878 if (r->data_file) {
10879 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
10880 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
10882 ndr->flags = _flags_save_string;
10885 uint32_t _flags_save_string = ndr->flags;
10886 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10887 if (r->config_file) {
10888 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
10889 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
10891 ndr->flags = _flags_save_string;
10894 uint32_t _flags_save_string = ndr->flags;
10895 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10896 if (r->help_file) {
10897 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
10898 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
10900 ndr->flags = _flags_save_string;
10903 uint32_t _flags_save_string_array = ndr->flags;
10904 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10905 if (r->dependent_files) {
10906 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
10907 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
10909 ndr->flags = _flags_save_string_array;
10912 uint32_t _flags_save_string = ndr->flags;
10913 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10914 if (r->monitor_name) {
10915 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
10916 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
10918 ndr->flags = _flags_save_string;
10921 uint32_t _flags_save_string = ndr->flags;
10922 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10923 if (r->default_datatype) {
10924 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
10925 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
10927 ndr->flags = _flags_save_string;
10930 return NDR_ERR_SUCCESS;
10933 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo3 *r)
10935 uint32_t _ptr_driver_name;
10936 TALLOC_CTX *_mem_save_driver_name_0;
10937 uint32_t _ptr_architecture;
10938 TALLOC_CTX *_mem_save_architecture_0;
10939 uint32_t _ptr_driver_path;
10940 TALLOC_CTX *_mem_save_driver_path_0;
10941 uint32_t _ptr_data_file;
10942 TALLOC_CTX *_mem_save_data_file_0;
10943 uint32_t _ptr_config_file;
10944 TALLOC_CTX *_mem_save_config_file_0;
10945 uint32_t _ptr_help_file;
10946 TALLOC_CTX *_mem_save_help_file_0;
10947 uint32_t _ptr_dependent_files;
10948 TALLOC_CTX *_mem_save_dependent_files_0;
10949 uint32_t _ptr_monitor_name;
10950 TALLOC_CTX *_mem_save_monitor_name_0;
10951 uint32_t _ptr_default_datatype;
10952 TALLOC_CTX *_mem_save_default_datatype_0;
10953 if (ndr_flags & NDR_SCALARS) {
10954 NDR_CHECK(ndr_pull_align(ndr, 5));
10955 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
10957 uint32_t _flags_save_string = ndr->flags;
10958 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10959 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
10960 if (_ptr_driver_name) {
10961 NDR_PULL_ALLOC(ndr, r->driver_name);
10962 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
10963 } else {
10964 r->driver_name = NULL;
10966 ndr->flags = _flags_save_string;
10969 uint32_t _flags_save_string = ndr->flags;
10970 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10971 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
10972 if (_ptr_architecture) {
10973 NDR_PULL_ALLOC(ndr, r->architecture);
10974 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
10975 } else {
10976 r->architecture = NULL;
10978 ndr->flags = _flags_save_string;
10981 uint32_t _flags_save_string = ndr->flags;
10982 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10983 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
10984 if (_ptr_driver_path) {
10985 NDR_PULL_ALLOC(ndr, r->driver_path);
10986 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
10987 } else {
10988 r->driver_path = NULL;
10990 ndr->flags = _flags_save_string;
10993 uint32_t _flags_save_string = ndr->flags;
10994 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10995 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
10996 if (_ptr_data_file) {
10997 NDR_PULL_ALLOC(ndr, r->data_file);
10998 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
10999 } else {
11000 r->data_file = NULL;
11002 ndr->flags = _flags_save_string;
11005 uint32_t _flags_save_string = ndr->flags;
11006 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11007 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
11008 if (_ptr_config_file) {
11009 NDR_PULL_ALLOC(ndr, r->config_file);
11010 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
11011 } else {
11012 r->config_file = NULL;
11014 ndr->flags = _flags_save_string;
11017 uint32_t _flags_save_string = ndr->flags;
11018 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11019 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
11020 if (_ptr_help_file) {
11021 NDR_PULL_ALLOC(ndr, r->help_file);
11022 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
11023 } else {
11024 r->help_file = NULL;
11026 ndr->flags = _flags_save_string;
11029 uint32_t _flags_save_string_array = ndr->flags;
11030 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11031 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
11032 if (_ptr_dependent_files) {
11033 NDR_PULL_ALLOC(ndr, r->dependent_files);
11034 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
11035 } else {
11036 r->dependent_files = NULL;
11038 ndr->flags = _flags_save_string_array;
11041 uint32_t _flags_save_string = ndr->flags;
11042 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11043 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
11044 if (_ptr_monitor_name) {
11045 NDR_PULL_ALLOC(ndr, r->monitor_name);
11046 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
11047 } else {
11048 r->monitor_name = NULL;
11050 ndr->flags = _flags_save_string;
11053 uint32_t _flags_save_string = ndr->flags;
11054 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11055 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
11056 if (_ptr_default_datatype) {
11057 NDR_PULL_ALLOC(ndr, r->default_datatype);
11058 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
11059 } else {
11060 r->default_datatype = NULL;
11062 ndr->flags = _flags_save_string;
11064 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
11066 if (ndr_flags & NDR_BUFFERS) {
11068 uint32_t _flags_save_string = ndr->flags;
11069 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11070 if (r->driver_name) {
11071 uint32_t _relative_save_offset;
11072 _relative_save_offset = ndr->offset;
11073 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
11074 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11075 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
11076 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
11077 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
11078 ndr->offset = _relative_save_offset;
11080 ndr->flags = _flags_save_string;
11083 uint32_t _flags_save_string = ndr->flags;
11084 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11085 if (r->architecture) {
11086 uint32_t _relative_save_offset;
11087 _relative_save_offset = ndr->offset;
11088 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
11089 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
11090 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
11091 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
11092 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
11093 ndr->offset = _relative_save_offset;
11095 ndr->flags = _flags_save_string;
11098 uint32_t _flags_save_string = ndr->flags;
11099 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11100 if (r->driver_path) {
11101 uint32_t _relative_save_offset;
11102 _relative_save_offset = ndr->offset;
11103 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
11104 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
11105 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
11106 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
11107 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
11108 ndr->offset = _relative_save_offset;
11110 ndr->flags = _flags_save_string;
11113 uint32_t _flags_save_string = ndr->flags;
11114 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11115 if (r->data_file) {
11116 uint32_t _relative_save_offset;
11117 _relative_save_offset = ndr->offset;
11118 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
11119 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11120 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
11121 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
11122 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
11123 ndr->offset = _relative_save_offset;
11125 ndr->flags = _flags_save_string;
11128 uint32_t _flags_save_string = ndr->flags;
11129 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11130 if (r->config_file) {
11131 uint32_t _relative_save_offset;
11132 _relative_save_offset = ndr->offset;
11133 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
11134 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11135 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
11136 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
11137 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
11138 ndr->offset = _relative_save_offset;
11140 ndr->flags = _flags_save_string;
11143 uint32_t _flags_save_string = ndr->flags;
11144 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11145 if (r->help_file) {
11146 uint32_t _relative_save_offset;
11147 _relative_save_offset = ndr->offset;
11148 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
11149 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11150 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
11151 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
11152 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
11153 ndr->offset = _relative_save_offset;
11155 ndr->flags = _flags_save_string;
11158 uint32_t _flags_save_string_array = ndr->flags;
11159 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11160 if (r->dependent_files) {
11161 uint32_t _relative_save_offset;
11162 _relative_save_offset = ndr->offset;
11163 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
11164 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
11165 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
11166 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
11167 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
11168 ndr->offset = _relative_save_offset;
11170 ndr->flags = _flags_save_string_array;
11173 uint32_t _flags_save_string = ndr->flags;
11174 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11175 if (r->monitor_name) {
11176 uint32_t _relative_save_offset;
11177 _relative_save_offset = ndr->offset;
11178 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
11179 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11180 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
11181 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
11182 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
11183 ndr->offset = _relative_save_offset;
11185 ndr->flags = _flags_save_string;
11188 uint32_t _flags_save_string = ndr->flags;
11189 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11190 if (r->default_datatype) {
11191 uint32_t _relative_save_offset;
11192 _relative_save_offset = ndr->offset;
11193 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
11194 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
11195 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
11196 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
11197 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
11198 ndr->offset = _relative_save_offset;
11200 ndr->flags = _flags_save_string;
11203 return NDR_ERR_SUCCESS;
11206 _PUBLIC_ void ndr_print_spoolss_DriverInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo3 *r)
11208 ndr_print_struct(ndr, name, "spoolss_DriverInfo3");
11209 ndr->depth++;
11210 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
11211 ndr_print_ptr(ndr, "driver_name", r->driver_name);
11212 ndr->depth++;
11213 if (r->driver_name) {
11214 ndr_print_string(ndr, "driver_name", r->driver_name);
11216 ndr->depth--;
11217 ndr_print_ptr(ndr, "architecture", r->architecture);
11218 ndr->depth++;
11219 if (r->architecture) {
11220 ndr_print_string(ndr, "architecture", r->architecture);
11222 ndr->depth--;
11223 ndr_print_ptr(ndr, "driver_path", r->driver_path);
11224 ndr->depth++;
11225 if (r->driver_path) {
11226 ndr_print_string(ndr, "driver_path", r->driver_path);
11228 ndr->depth--;
11229 ndr_print_ptr(ndr, "data_file", r->data_file);
11230 ndr->depth++;
11231 if (r->data_file) {
11232 ndr_print_string(ndr, "data_file", r->data_file);
11234 ndr->depth--;
11235 ndr_print_ptr(ndr, "config_file", r->config_file);
11236 ndr->depth++;
11237 if (r->config_file) {
11238 ndr_print_string(ndr, "config_file", r->config_file);
11240 ndr->depth--;
11241 ndr_print_ptr(ndr, "help_file", r->help_file);
11242 ndr->depth++;
11243 if (r->help_file) {
11244 ndr_print_string(ndr, "help_file", r->help_file);
11246 ndr->depth--;
11247 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
11248 ndr->depth++;
11249 if (r->dependent_files) {
11250 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
11252 ndr->depth--;
11253 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
11254 ndr->depth++;
11255 if (r->monitor_name) {
11256 ndr_print_string(ndr, "monitor_name", r->monitor_name);
11258 ndr->depth--;
11259 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
11260 ndr->depth++;
11261 if (r->default_datatype) {
11262 ndr_print_string(ndr, "default_datatype", r->default_datatype);
11264 ndr->depth--;
11265 ndr->depth--;
11268 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo3(const struct spoolss_DriverInfo3 *r, struct smb_iconv_convenience *ic, int flags)
11270 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo3, ic);
11273 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo4 *r)
11275 if (ndr_flags & NDR_SCALARS) {
11276 NDR_CHECK(ndr_push_align(ndr, 5));
11277 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
11279 uint32_t _flags_save_string = ndr->flags;
11280 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11281 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
11282 ndr->flags = _flags_save_string;
11285 uint32_t _flags_save_string = ndr->flags;
11286 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11287 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
11288 ndr->flags = _flags_save_string;
11291 uint32_t _flags_save_string = ndr->flags;
11292 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11293 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
11294 ndr->flags = _flags_save_string;
11297 uint32_t _flags_save_string = ndr->flags;
11298 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11299 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
11300 ndr->flags = _flags_save_string;
11303 uint32_t _flags_save_string = ndr->flags;
11304 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11305 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
11306 ndr->flags = _flags_save_string;
11309 uint32_t _flags_save_string = ndr->flags;
11310 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11311 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
11312 ndr->flags = _flags_save_string;
11315 uint32_t _flags_save_string_array = ndr->flags;
11316 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11317 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
11318 ndr->flags = _flags_save_string_array;
11321 uint32_t _flags_save_string = ndr->flags;
11322 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11323 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
11324 ndr->flags = _flags_save_string;
11327 uint32_t _flags_save_string = ndr->flags;
11328 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11329 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
11330 ndr->flags = _flags_save_string;
11333 uint32_t _flags_save_string_array = ndr->flags;
11334 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11335 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
11336 ndr->flags = _flags_save_string_array;
11338 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
11340 if (ndr_flags & NDR_BUFFERS) {
11342 uint32_t _flags_save_string = ndr->flags;
11343 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11344 if (r->driver_name) {
11345 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
11346 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
11348 ndr->flags = _flags_save_string;
11351 uint32_t _flags_save_string = ndr->flags;
11352 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11353 if (r->architecture) {
11354 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
11355 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
11357 ndr->flags = _flags_save_string;
11360 uint32_t _flags_save_string = ndr->flags;
11361 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11362 if (r->driver_path) {
11363 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
11364 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
11366 ndr->flags = _flags_save_string;
11369 uint32_t _flags_save_string = ndr->flags;
11370 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11371 if (r->data_file) {
11372 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
11373 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
11375 ndr->flags = _flags_save_string;
11378 uint32_t _flags_save_string = ndr->flags;
11379 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11380 if (r->config_file) {
11381 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
11382 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
11384 ndr->flags = _flags_save_string;
11387 uint32_t _flags_save_string = ndr->flags;
11388 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11389 if (r->help_file) {
11390 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
11391 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
11393 ndr->flags = _flags_save_string;
11396 uint32_t _flags_save_string_array = ndr->flags;
11397 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11398 if (r->dependent_files) {
11399 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
11400 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
11402 ndr->flags = _flags_save_string_array;
11405 uint32_t _flags_save_string = ndr->flags;
11406 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11407 if (r->monitor_name) {
11408 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
11409 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
11411 ndr->flags = _flags_save_string;
11414 uint32_t _flags_save_string = ndr->flags;
11415 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11416 if (r->default_datatype) {
11417 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
11418 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
11420 ndr->flags = _flags_save_string;
11423 uint32_t _flags_save_string_array = ndr->flags;
11424 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11425 if (r->previous_names) {
11426 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->previous_names));
11427 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
11429 ndr->flags = _flags_save_string_array;
11432 return NDR_ERR_SUCCESS;
11435 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo4 *r)
11437 uint32_t _ptr_driver_name;
11438 TALLOC_CTX *_mem_save_driver_name_0;
11439 uint32_t _ptr_architecture;
11440 TALLOC_CTX *_mem_save_architecture_0;
11441 uint32_t _ptr_driver_path;
11442 TALLOC_CTX *_mem_save_driver_path_0;
11443 uint32_t _ptr_data_file;
11444 TALLOC_CTX *_mem_save_data_file_0;
11445 uint32_t _ptr_config_file;
11446 TALLOC_CTX *_mem_save_config_file_0;
11447 uint32_t _ptr_help_file;
11448 TALLOC_CTX *_mem_save_help_file_0;
11449 uint32_t _ptr_dependent_files;
11450 TALLOC_CTX *_mem_save_dependent_files_0;
11451 uint32_t _ptr_monitor_name;
11452 TALLOC_CTX *_mem_save_monitor_name_0;
11453 uint32_t _ptr_default_datatype;
11454 TALLOC_CTX *_mem_save_default_datatype_0;
11455 uint32_t _ptr_previous_names;
11456 TALLOC_CTX *_mem_save_previous_names_0;
11457 if (ndr_flags & NDR_SCALARS) {
11458 NDR_CHECK(ndr_pull_align(ndr, 5));
11459 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
11461 uint32_t _flags_save_string = ndr->flags;
11462 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11463 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
11464 if (_ptr_driver_name) {
11465 NDR_PULL_ALLOC(ndr, r->driver_name);
11466 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
11467 } else {
11468 r->driver_name = NULL;
11470 ndr->flags = _flags_save_string;
11473 uint32_t _flags_save_string = ndr->flags;
11474 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11475 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
11476 if (_ptr_architecture) {
11477 NDR_PULL_ALLOC(ndr, r->architecture);
11478 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
11479 } else {
11480 r->architecture = NULL;
11482 ndr->flags = _flags_save_string;
11485 uint32_t _flags_save_string = ndr->flags;
11486 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11487 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
11488 if (_ptr_driver_path) {
11489 NDR_PULL_ALLOC(ndr, r->driver_path);
11490 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
11491 } else {
11492 r->driver_path = NULL;
11494 ndr->flags = _flags_save_string;
11497 uint32_t _flags_save_string = ndr->flags;
11498 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11499 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
11500 if (_ptr_data_file) {
11501 NDR_PULL_ALLOC(ndr, r->data_file);
11502 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
11503 } else {
11504 r->data_file = NULL;
11506 ndr->flags = _flags_save_string;
11509 uint32_t _flags_save_string = ndr->flags;
11510 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11511 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
11512 if (_ptr_config_file) {
11513 NDR_PULL_ALLOC(ndr, r->config_file);
11514 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
11515 } else {
11516 r->config_file = NULL;
11518 ndr->flags = _flags_save_string;
11521 uint32_t _flags_save_string = ndr->flags;
11522 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11523 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
11524 if (_ptr_help_file) {
11525 NDR_PULL_ALLOC(ndr, r->help_file);
11526 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
11527 } else {
11528 r->help_file = NULL;
11530 ndr->flags = _flags_save_string;
11533 uint32_t _flags_save_string_array = ndr->flags;
11534 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11535 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
11536 if (_ptr_dependent_files) {
11537 NDR_PULL_ALLOC(ndr, r->dependent_files);
11538 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
11539 } else {
11540 r->dependent_files = NULL;
11542 ndr->flags = _flags_save_string_array;
11545 uint32_t _flags_save_string = ndr->flags;
11546 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11547 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
11548 if (_ptr_monitor_name) {
11549 NDR_PULL_ALLOC(ndr, r->monitor_name);
11550 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
11551 } else {
11552 r->monitor_name = NULL;
11554 ndr->flags = _flags_save_string;
11557 uint32_t _flags_save_string = ndr->flags;
11558 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11559 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
11560 if (_ptr_default_datatype) {
11561 NDR_PULL_ALLOC(ndr, r->default_datatype);
11562 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
11563 } else {
11564 r->default_datatype = NULL;
11566 ndr->flags = _flags_save_string;
11569 uint32_t _flags_save_string_array = ndr->flags;
11570 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11571 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
11572 if (_ptr_previous_names) {
11573 NDR_PULL_ALLOC(ndr, r->previous_names);
11574 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
11575 } else {
11576 r->previous_names = NULL;
11578 ndr->flags = _flags_save_string_array;
11580 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
11582 if (ndr_flags & NDR_BUFFERS) {
11584 uint32_t _flags_save_string = ndr->flags;
11585 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11586 if (r->driver_name) {
11587 uint32_t _relative_save_offset;
11588 _relative_save_offset = ndr->offset;
11589 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
11590 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11591 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
11592 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
11593 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
11594 ndr->offset = _relative_save_offset;
11596 ndr->flags = _flags_save_string;
11599 uint32_t _flags_save_string = ndr->flags;
11600 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11601 if (r->architecture) {
11602 uint32_t _relative_save_offset;
11603 _relative_save_offset = ndr->offset;
11604 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
11605 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
11606 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
11607 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
11608 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
11609 ndr->offset = _relative_save_offset;
11611 ndr->flags = _flags_save_string;
11614 uint32_t _flags_save_string = ndr->flags;
11615 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11616 if (r->driver_path) {
11617 uint32_t _relative_save_offset;
11618 _relative_save_offset = ndr->offset;
11619 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
11620 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
11621 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
11622 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
11623 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
11624 ndr->offset = _relative_save_offset;
11626 ndr->flags = _flags_save_string;
11629 uint32_t _flags_save_string = ndr->flags;
11630 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11631 if (r->data_file) {
11632 uint32_t _relative_save_offset;
11633 _relative_save_offset = ndr->offset;
11634 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
11635 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11636 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
11637 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
11638 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
11639 ndr->offset = _relative_save_offset;
11641 ndr->flags = _flags_save_string;
11644 uint32_t _flags_save_string = ndr->flags;
11645 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11646 if (r->config_file) {
11647 uint32_t _relative_save_offset;
11648 _relative_save_offset = ndr->offset;
11649 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
11650 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11651 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
11652 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
11653 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
11654 ndr->offset = _relative_save_offset;
11656 ndr->flags = _flags_save_string;
11659 uint32_t _flags_save_string = ndr->flags;
11660 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11661 if (r->help_file) {
11662 uint32_t _relative_save_offset;
11663 _relative_save_offset = ndr->offset;
11664 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
11665 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11666 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
11667 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
11668 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
11669 ndr->offset = _relative_save_offset;
11671 ndr->flags = _flags_save_string;
11674 uint32_t _flags_save_string_array = ndr->flags;
11675 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11676 if (r->dependent_files) {
11677 uint32_t _relative_save_offset;
11678 _relative_save_offset = ndr->offset;
11679 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
11680 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
11681 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
11682 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
11683 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
11684 ndr->offset = _relative_save_offset;
11686 ndr->flags = _flags_save_string_array;
11689 uint32_t _flags_save_string = ndr->flags;
11690 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11691 if (r->monitor_name) {
11692 uint32_t _relative_save_offset;
11693 _relative_save_offset = ndr->offset;
11694 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
11695 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11696 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
11697 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
11698 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
11699 ndr->offset = _relative_save_offset;
11701 ndr->flags = _flags_save_string;
11704 uint32_t _flags_save_string = ndr->flags;
11705 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11706 if (r->default_datatype) {
11707 uint32_t _relative_save_offset;
11708 _relative_save_offset = ndr->offset;
11709 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
11710 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
11711 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
11712 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
11713 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
11714 ndr->offset = _relative_save_offset;
11716 ndr->flags = _flags_save_string;
11719 uint32_t _flags_save_string_array = ndr->flags;
11720 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11721 if (r->previous_names) {
11722 uint32_t _relative_save_offset;
11723 _relative_save_offset = ndr->offset;
11724 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
11725 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
11726 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
11727 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
11728 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
11729 ndr->offset = _relative_save_offset;
11731 ndr->flags = _flags_save_string_array;
11734 return NDR_ERR_SUCCESS;
11737 _PUBLIC_ void ndr_print_spoolss_DriverInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo4 *r)
11739 ndr_print_struct(ndr, name, "spoolss_DriverInfo4");
11740 ndr->depth++;
11741 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
11742 ndr_print_ptr(ndr, "driver_name", r->driver_name);
11743 ndr->depth++;
11744 if (r->driver_name) {
11745 ndr_print_string(ndr, "driver_name", r->driver_name);
11747 ndr->depth--;
11748 ndr_print_ptr(ndr, "architecture", r->architecture);
11749 ndr->depth++;
11750 if (r->architecture) {
11751 ndr_print_string(ndr, "architecture", r->architecture);
11753 ndr->depth--;
11754 ndr_print_ptr(ndr, "driver_path", r->driver_path);
11755 ndr->depth++;
11756 if (r->driver_path) {
11757 ndr_print_string(ndr, "driver_path", r->driver_path);
11759 ndr->depth--;
11760 ndr_print_ptr(ndr, "data_file", r->data_file);
11761 ndr->depth++;
11762 if (r->data_file) {
11763 ndr_print_string(ndr, "data_file", r->data_file);
11765 ndr->depth--;
11766 ndr_print_ptr(ndr, "config_file", r->config_file);
11767 ndr->depth++;
11768 if (r->config_file) {
11769 ndr_print_string(ndr, "config_file", r->config_file);
11771 ndr->depth--;
11772 ndr_print_ptr(ndr, "help_file", r->help_file);
11773 ndr->depth++;
11774 if (r->help_file) {
11775 ndr_print_string(ndr, "help_file", r->help_file);
11777 ndr->depth--;
11778 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
11779 ndr->depth++;
11780 if (r->dependent_files) {
11781 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
11783 ndr->depth--;
11784 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
11785 ndr->depth++;
11786 if (r->monitor_name) {
11787 ndr_print_string(ndr, "monitor_name", r->monitor_name);
11789 ndr->depth--;
11790 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
11791 ndr->depth++;
11792 if (r->default_datatype) {
11793 ndr_print_string(ndr, "default_datatype", r->default_datatype);
11795 ndr->depth--;
11796 ndr_print_ptr(ndr, "previous_names", r->previous_names);
11797 ndr->depth++;
11798 if (r->previous_names) {
11799 ndr_print_string_array(ndr, "previous_names", r->previous_names);
11801 ndr->depth--;
11802 ndr->depth--;
11805 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo4(const struct spoolss_DriverInfo4 *r, struct smb_iconv_convenience *ic, int flags)
11807 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo4, ic);
11810 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo5 *r)
11812 if (ndr_flags & NDR_SCALARS) {
11813 NDR_CHECK(ndr_push_align(ndr, 5));
11814 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
11816 uint32_t _flags_save_string = ndr->flags;
11817 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11818 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
11819 ndr->flags = _flags_save_string;
11822 uint32_t _flags_save_string = ndr->flags;
11823 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11824 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
11825 ndr->flags = _flags_save_string;
11828 uint32_t _flags_save_string = ndr->flags;
11829 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11830 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
11831 ndr->flags = _flags_save_string;
11834 uint32_t _flags_save_string = ndr->flags;
11835 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11836 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
11837 ndr->flags = _flags_save_string;
11840 uint32_t _flags_save_string = ndr->flags;
11841 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11842 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
11843 ndr->flags = _flags_save_string;
11845 NDR_CHECK(ndr_push_spoolss_DriverAttributes(ndr, NDR_SCALARS, r->driver_attributes));
11846 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->config_version));
11847 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->driver_version));
11848 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
11850 if (ndr_flags & NDR_BUFFERS) {
11852 uint32_t _flags_save_string = ndr->flags;
11853 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11854 if (r->driver_name) {
11855 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
11856 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
11858 ndr->flags = _flags_save_string;
11861 uint32_t _flags_save_string = ndr->flags;
11862 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11863 if (r->architecture) {
11864 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
11865 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
11867 ndr->flags = _flags_save_string;
11870 uint32_t _flags_save_string = ndr->flags;
11871 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11872 if (r->driver_path) {
11873 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
11874 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
11876 ndr->flags = _flags_save_string;
11879 uint32_t _flags_save_string = ndr->flags;
11880 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11881 if (r->data_file) {
11882 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
11883 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
11885 ndr->flags = _flags_save_string;
11888 uint32_t _flags_save_string = ndr->flags;
11889 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11890 if (r->config_file) {
11891 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
11892 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
11894 ndr->flags = _flags_save_string;
11897 return NDR_ERR_SUCCESS;
11900 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo5 *r)
11902 uint32_t _ptr_driver_name;
11903 TALLOC_CTX *_mem_save_driver_name_0;
11904 uint32_t _ptr_architecture;
11905 TALLOC_CTX *_mem_save_architecture_0;
11906 uint32_t _ptr_driver_path;
11907 TALLOC_CTX *_mem_save_driver_path_0;
11908 uint32_t _ptr_data_file;
11909 TALLOC_CTX *_mem_save_data_file_0;
11910 uint32_t _ptr_config_file;
11911 TALLOC_CTX *_mem_save_config_file_0;
11912 if (ndr_flags & NDR_SCALARS) {
11913 NDR_CHECK(ndr_pull_align(ndr, 5));
11914 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
11916 uint32_t _flags_save_string = ndr->flags;
11917 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11918 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
11919 if (_ptr_driver_name) {
11920 NDR_PULL_ALLOC(ndr, r->driver_name);
11921 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
11922 } else {
11923 r->driver_name = NULL;
11925 ndr->flags = _flags_save_string;
11928 uint32_t _flags_save_string = ndr->flags;
11929 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11930 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
11931 if (_ptr_architecture) {
11932 NDR_PULL_ALLOC(ndr, r->architecture);
11933 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
11934 } else {
11935 r->architecture = NULL;
11937 ndr->flags = _flags_save_string;
11940 uint32_t _flags_save_string = ndr->flags;
11941 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11942 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
11943 if (_ptr_driver_path) {
11944 NDR_PULL_ALLOC(ndr, r->driver_path);
11945 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
11946 } else {
11947 r->driver_path = NULL;
11949 ndr->flags = _flags_save_string;
11952 uint32_t _flags_save_string = ndr->flags;
11953 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11954 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
11955 if (_ptr_data_file) {
11956 NDR_PULL_ALLOC(ndr, r->data_file);
11957 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
11958 } else {
11959 r->data_file = NULL;
11961 ndr->flags = _flags_save_string;
11964 uint32_t _flags_save_string = ndr->flags;
11965 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11966 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
11967 if (_ptr_config_file) {
11968 NDR_PULL_ALLOC(ndr, r->config_file);
11969 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
11970 } else {
11971 r->config_file = NULL;
11973 ndr->flags = _flags_save_string;
11975 NDR_CHECK(ndr_pull_spoolss_DriverAttributes(ndr, NDR_SCALARS, &r->driver_attributes));
11976 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->config_version));
11977 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->driver_version));
11978 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
11980 if (ndr_flags & NDR_BUFFERS) {
11982 uint32_t _flags_save_string = ndr->flags;
11983 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11984 if (r->driver_name) {
11985 uint32_t _relative_save_offset;
11986 _relative_save_offset = ndr->offset;
11987 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
11988 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11989 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
11990 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
11991 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
11992 ndr->offset = _relative_save_offset;
11994 ndr->flags = _flags_save_string;
11997 uint32_t _flags_save_string = ndr->flags;
11998 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11999 if (r->architecture) {
12000 uint32_t _relative_save_offset;
12001 _relative_save_offset = ndr->offset;
12002 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
12003 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
12004 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
12005 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
12006 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
12007 ndr->offset = _relative_save_offset;
12009 ndr->flags = _flags_save_string;
12012 uint32_t _flags_save_string = ndr->flags;
12013 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12014 if (r->driver_path) {
12015 uint32_t _relative_save_offset;
12016 _relative_save_offset = ndr->offset;
12017 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
12018 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
12019 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
12020 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
12021 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
12022 ndr->offset = _relative_save_offset;
12024 ndr->flags = _flags_save_string;
12027 uint32_t _flags_save_string = ndr->flags;
12028 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12029 if (r->data_file) {
12030 uint32_t _relative_save_offset;
12031 _relative_save_offset = ndr->offset;
12032 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
12033 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12034 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
12035 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
12036 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
12037 ndr->offset = _relative_save_offset;
12039 ndr->flags = _flags_save_string;
12042 uint32_t _flags_save_string = ndr->flags;
12043 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12044 if (r->config_file) {
12045 uint32_t _relative_save_offset;
12046 _relative_save_offset = ndr->offset;
12047 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
12048 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12049 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
12050 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
12051 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
12052 ndr->offset = _relative_save_offset;
12054 ndr->flags = _flags_save_string;
12057 return NDR_ERR_SUCCESS;
12060 _PUBLIC_ void ndr_print_spoolss_DriverInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo5 *r)
12062 ndr_print_struct(ndr, name, "spoolss_DriverInfo5");
12063 ndr->depth++;
12064 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
12065 ndr_print_ptr(ndr, "driver_name", r->driver_name);
12066 ndr->depth++;
12067 if (r->driver_name) {
12068 ndr_print_string(ndr, "driver_name", r->driver_name);
12070 ndr->depth--;
12071 ndr_print_ptr(ndr, "architecture", r->architecture);
12072 ndr->depth++;
12073 if (r->architecture) {
12074 ndr_print_string(ndr, "architecture", r->architecture);
12076 ndr->depth--;
12077 ndr_print_ptr(ndr, "driver_path", r->driver_path);
12078 ndr->depth++;
12079 if (r->driver_path) {
12080 ndr_print_string(ndr, "driver_path", r->driver_path);
12082 ndr->depth--;
12083 ndr_print_ptr(ndr, "data_file", r->data_file);
12084 ndr->depth++;
12085 if (r->data_file) {
12086 ndr_print_string(ndr, "data_file", r->data_file);
12088 ndr->depth--;
12089 ndr_print_ptr(ndr, "config_file", r->config_file);
12090 ndr->depth++;
12091 if (r->config_file) {
12092 ndr_print_string(ndr, "config_file", r->config_file);
12094 ndr->depth--;
12095 ndr_print_spoolss_DriverAttributes(ndr, "driver_attributes", r->driver_attributes);
12096 ndr_print_uint32(ndr, "config_version", r->config_version);
12097 ndr_print_uint32(ndr, "driver_version", r->driver_version);
12098 ndr->depth--;
12101 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo5(const struct spoolss_DriverInfo5 *r, struct smb_iconv_convenience *ic, int flags)
12103 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo5, ic);
12106 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo6 *r)
12108 if (ndr_flags & NDR_SCALARS) {
12109 NDR_CHECK(ndr_push_align(ndr, 8));
12110 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
12112 uint32_t _flags_save_string = ndr->flags;
12113 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12114 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
12115 ndr->flags = _flags_save_string;
12118 uint32_t _flags_save_string = ndr->flags;
12119 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12120 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
12121 ndr->flags = _flags_save_string;
12124 uint32_t _flags_save_string = ndr->flags;
12125 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12126 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
12127 ndr->flags = _flags_save_string;
12130 uint32_t _flags_save_string = ndr->flags;
12131 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12132 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
12133 ndr->flags = _flags_save_string;
12136 uint32_t _flags_save_string = ndr->flags;
12137 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12138 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
12139 ndr->flags = _flags_save_string;
12142 uint32_t _flags_save_string = ndr->flags;
12143 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12144 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
12145 ndr->flags = _flags_save_string;
12148 uint32_t _flags_save_string_array = ndr->flags;
12149 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12150 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
12151 ndr->flags = _flags_save_string_array;
12154 uint32_t _flags_save_string = ndr->flags;
12155 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12156 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
12157 ndr->flags = _flags_save_string;
12160 uint32_t _flags_save_string = ndr->flags;
12161 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12162 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
12163 ndr->flags = _flags_save_string;
12166 uint32_t _flags_save_string_array = ndr->flags;
12167 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12168 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
12169 ndr->flags = _flags_save_string_array;
12171 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
12172 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
12174 uint32_t _flags_save_string = ndr->flags;
12175 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12176 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_name));
12177 ndr->flags = _flags_save_string;
12180 uint32_t _flags_save_string = ndr->flags;
12181 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12182 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_url));
12183 ndr->flags = _flags_save_string;
12186 uint32_t _flags_save_string = ndr->flags;
12187 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12188 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->hardware_id));
12189 ndr->flags = _flags_save_string;
12192 uint32_t _flags_save_string = ndr->flags;
12193 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12194 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->provider));
12195 ndr->flags = _flags_save_string;
12197 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
12199 if (ndr_flags & NDR_BUFFERS) {
12201 uint32_t _flags_save_string = ndr->flags;
12202 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12203 if (r->driver_name) {
12204 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
12205 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
12207 ndr->flags = _flags_save_string;
12210 uint32_t _flags_save_string = ndr->flags;
12211 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12212 if (r->architecture) {
12213 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
12214 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
12216 ndr->flags = _flags_save_string;
12219 uint32_t _flags_save_string = ndr->flags;
12220 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12221 if (r->driver_path) {
12222 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
12223 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
12225 ndr->flags = _flags_save_string;
12228 uint32_t _flags_save_string = ndr->flags;
12229 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12230 if (r->data_file) {
12231 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
12232 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
12234 ndr->flags = _flags_save_string;
12237 uint32_t _flags_save_string = ndr->flags;
12238 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12239 if (r->config_file) {
12240 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
12241 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
12243 ndr->flags = _flags_save_string;
12246 uint32_t _flags_save_string = ndr->flags;
12247 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12248 if (r->help_file) {
12249 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
12250 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
12252 ndr->flags = _flags_save_string;
12255 uint32_t _flags_save_string_array = ndr->flags;
12256 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12257 if (r->dependent_files) {
12258 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
12259 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
12261 ndr->flags = _flags_save_string_array;
12264 uint32_t _flags_save_string = ndr->flags;
12265 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12266 if (r->monitor_name) {
12267 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
12268 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
12270 ndr->flags = _flags_save_string;
12273 uint32_t _flags_save_string = ndr->flags;
12274 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12275 if (r->default_datatype) {
12276 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
12277 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
12279 ndr->flags = _flags_save_string;
12282 uint32_t _flags_save_string_array = ndr->flags;
12283 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12284 if (r->previous_names) {
12285 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->previous_names));
12286 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
12288 ndr->flags = _flags_save_string_array;
12291 uint32_t _flags_save_string = ndr->flags;
12292 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12293 if (r->manufacturer_name) {
12294 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_name));
12295 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_name));
12297 ndr->flags = _flags_save_string;
12300 uint32_t _flags_save_string = ndr->flags;
12301 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12302 if (r->manufacturer_url) {
12303 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_url));
12304 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_url));
12306 ndr->flags = _flags_save_string;
12309 uint32_t _flags_save_string = ndr->flags;
12310 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12311 if (r->hardware_id) {
12312 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->hardware_id));
12313 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->hardware_id));
12315 ndr->flags = _flags_save_string;
12318 uint32_t _flags_save_string = ndr->flags;
12319 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12320 if (r->provider) {
12321 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->provider));
12322 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->provider));
12324 ndr->flags = _flags_save_string;
12327 return NDR_ERR_SUCCESS;
12330 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo6 *r)
12332 uint32_t _ptr_driver_name;
12333 TALLOC_CTX *_mem_save_driver_name_0;
12334 uint32_t _ptr_architecture;
12335 TALLOC_CTX *_mem_save_architecture_0;
12336 uint32_t _ptr_driver_path;
12337 TALLOC_CTX *_mem_save_driver_path_0;
12338 uint32_t _ptr_data_file;
12339 TALLOC_CTX *_mem_save_data_file_0;
12340 uint32_t _ptr_config_file;
12341 TALLOC_CTX *_mem_save_config_file_0;
12342 uint32_t _ptr_help_file;
12343 TALLOC_CTX *_mem_save_help_file_0;
12344 uint32_t _ptr_dependent_files;
12345 TALLOC_CTX *_mem_save_dependent_files_0;
12346 uint32_t _ptr_monitor_name;
12347 TALLOC_CTX *_mem_save_monitor_name_0;
12348 uint32_t _ptr_default_datatype;
12349 TALLOC_CTX *_mem_save_default_datatype_0;
12350 uint32_t _ptr_previous_names;
12351 TALLOC_CTX *_mem_save_previous_names_0;
12352 uint32_t _ptr_manufacturer_name;
12353 TALLOC_CTX *_mem_save_manufacturer_name_0;
12354 uint32_t _ptr_manufacturer_url;
12355 TALLOC_CTX *_mem_save_manufacturer_url_0;
12356 uint32_t _ptr_hardware_id;
12357 TALLOC_CTX *_mem_save_hardware_id_0;
12358 uint32_t _ptr_provider;
12359 TALLOC_CTX *_mem_save_provider_0;
12360 if (ndr_flags & NDR_SCALARS) {
12361 NDR_CHECK(ndr_pull_align(ndr, 8));
12362 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
12364 uint32_t _flags_save_string = ndr->flags;
12365 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12366 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
12367 if (_ptr_driver_name) {
12368 NDR_PULL_ALLOC(ndr, r->driver_name);
12369 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
12370 } else {
12371 r->driver_name = NULL;
12373 ndr->flags = _flags_save_string;
12376 uint32_t _flags_save_string = ndr->flags;
12377 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12378 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
12379 if (_ptr_architecture) {
12380 NDR_PULL_ALLOC(ndr, r->architecture);
12381 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
12382 } else {
12383 r->architecture = NULL;
12385 ndr->flags = _flags_save_string;
12388 uint32_t _flags_save_string = ndr->flags;
12389 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12390 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
12391 if (_ptr_driver_path) {
12392 NDR_PULL_ALLOC(ndr, r->driver_path);
12393 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
12394 } else {
12395 r->driver_path = NULL;
12397 ndr->flags = _flags_save_string;
12400 uint32_t _flags_save_string = ndr->flags;
12401 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12402 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
12403 if (_ptr_data_file) {
12404 NDR_PULL_ALLOC(ndr, r->data_file);
12405 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
12406 } else {
12407 r->data_file = NULL;
12409 ndr->flags = _flags_save_string;
12412 uint32_t _flags_save_string = ndr->flags;
12413 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12414 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
12415 if (_ptr_config_file) {
12416 NDR_PULL_ALLOC(ndr, r->config_file);
12417 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
12418 } else {
12419 r->config_file = NULL;
12421 ndr->flags = _flags_save_string;
12424 uint32_t _flags_save_string = ndr->flags;
12425 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12426 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
12427 if (_ptr_help_file) {
12428 NDR_PULL_ALLOC(ndr, r->help_file);
12429 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
12430 } else {
12431 r->help_file = NULL;
12433 ndr->flags = _flags_save_string;
12436 uint32_t _flags_save_string_array = ndr->flags;
12437 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12438 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
12439 if (_ptr_dependent_files) {
12440 NDR_PULL_ALLOC(ndr, r->dependent_files);
12441 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
12442 } else {
12443 r->dependent_files = NULL;
12445 ndr->flags = _flags_save_string_array;
12448 uint32_t _flags_save_string = ndr->flags;
12449 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12450 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
12451 if (_ptr_monitor_name) {
12452 NDR_PULL_ALLOC(ndr, r->monitor_name);
12453 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
12454 } else {
12455 r->monitor_name = NULL;
12457 ndr->flags = _flags_save_string;
12460 uint32_t _flags_save_string = ndr->flags;
12461 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12462 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
12463 if (_ptr_default_datatype) {
12464 NDR_PULL_ALLOC(ndr, r->default_datatype);
12465 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
12466 } else {
12467 r->default_datatype = NULL;
12469 ndr->flags = _flags_save_string;
12472 uint32_t _flags_save_string_array = ndr->flags;
12473 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12474 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
12475 if (_ptr_previous_names) {
12476 NDR_PULL_ALLOC(ndr, r->previous_names);
12477 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
12478 } else {
12479 r->previous_names = NULL;
12481 ndr->flags = _flags_save_string_array;
12483 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
12484 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
12486 uint32_t _flags_save_string = ndr->flags;
12487 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12488 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
12489 if (_ptr_manufacturer_name) {
12490 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
12491 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_name, _ptr_manufacturer_name));
12492 } else {
12493 r->manufacturer_name = NULL;
12495 ndr->flags = _flags_save_string;
12498 uint32_t _flags_save_string = ndr->flags;
12499 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12500 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
12501 if (_ptr_manufacturer_url) {
12502 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
12503 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_url, _ptr_manufacturer_url));
12504 } else {
12505 r->manufacturer_url = NULL;
12507 ndr->flags = _flags_save_string;
12510 uint32_t _flags_save_string = ndr->flags;
12511 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12512 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
12513 if (_ptr_hardware_id) {
12514 NDR_PULL_ALLOC(ndr, r->hardware_id);
12515 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->hardware_id, _ptr_hardware_id));
12516 } else {
12517 r->hardware_id = NULL;
12519 ndr->flags = _flags_save_string;
12522 uint32_t _flags_save_string = ndr->flags;
12523 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12524 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
12525 if (_ptr_provider) {
12526 NDR_PULL_ALLOC(ndr, r->provider);
12527 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->provider, _ptr_provider));
12528 } else {
12529 r->provider = NULL;
12531 ndr->flags = _flags_save_string;
12533 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
12535 if (ndr_flags & NDR_BUFFERS) {
12537 uint32_t _flags_save_string = ndr->flags;
12538 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12539 if (r->driver_name) {
12540 uint32_t _relative_save_offset;
12541 _relative_save_offset = ndr->offset;
12542 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
12543 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12544 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
12545 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
12546 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
12547 ndr->offset = _relative_save_offset;
12549 ndr->flags = _flags_save_string;
12552 uint32_t _flags_save_string = ndr->flags;
12553 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12554 if (r->architecture) {
12555 uint32_t _relative_save_offset;
12556 _relative_save_offset = ndr->offset;
12557 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
12558 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
12559 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
12560 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
12561 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
12562 ndr->offset = _relative_save_offset;
12564 ndr->flags = _flags_save_string;
12567 uint32_t _flags_save_string = ndr->flags;
12568 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12569 if (r->driver_path) {
12570 uint32_t _relative_save_offset;
12571 _relative_save_offset = ndr->offset;
12572 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
12573 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
12574 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
12575 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
12576 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
12577 ndr->offset = _relative_save_offset;
12579 ndr->flags = _flags_save_string;
12582 uint32_t _flags_save_string = ndr->flags;
12583 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12584 if (r->data_file) {
12585 uint32_t _relative_save_offset;
12586 _relative_save_offset = ndr->offset;
12587 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
12588 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12589 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
12590 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
12591 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
12592 ndr->offset = _relative_save_offset;
12594 ndr->flags = _flags_save_string;
12597 uint32_t _flags_save_string = ndr->flags;
12598 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12599 if (r->config_file) {
12600 uint32_t _relative_save_offset;
12601 _relative_save_offset = ndr->offset;
12602 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
12603 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12604 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
12605 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
12606 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
12607 ndr->offset = _relative_save_offset;
12609 ndr->flags = _flags_save_string;
12612 uint32_t _flags_save_string = ndr->flags;
12613 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12614 if (r->help_file) {
12615 uint32_t _relative_save_offset;
12616 _relative_save_offset = ndr->offset;
12617 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
12618 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12619 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
12620 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
12621 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
12622 ndr->offset = _relative_save_offset;
12624 ndr->flags = _flags_save_string;
12627 uint32_t _flags_save_string_array = ndr->flags;
12628 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12629 if (r->dependent_files) {
12630 uint32_t _relative_save_offset;
12631 _relative_save_offset = ndr->offset;
12632 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
12633 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
12634 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
12635 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
12636 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
12637 ndr->offset = _relative_save_offset;
12639 ndr->flags = _flags_save_string_array;
12642 uint32_t _flags_save_string = ndr->flags;
12643 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12644 if (r->monitor_name) {
12645 uint32_t _relative_save_offset;
12646 _relative_save_offset = ndr->offset;
12647 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
12648 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12649 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
12650 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
12651 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
12652 ndr->offset = _relative_save_offset;
12654 ndr->flags = _flags_save_string;
12657 uint32_t _flags_save_string = ndr->flags;
12658 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12659 if (r->default_datatype) {
12660 uint32_t _relative_save_offset;
12661 _relative_save_offset = ndr->offset;
12662 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
12663 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
12664 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
12665 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
12666 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
12667 ndr->offset = _relative_save_offset;
12669 ndr->flags = _flags_save_string;
12672 uint32_t _flags_save_string_array = ndr->flags;
12673 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12674 if (r->previous_names) {
12675 uint32_t _relative_save_offset;
12676 _relative_save_offset = ndr->offset;
12677 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
12678 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
12679 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
12680 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
12681 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
12682 ndr->offset = _relative_save_offset;
12684 ndr->flags = _flags_save_string_array;
12687 uint32_t _flags_save_string = ndr->flags;
12688 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12689 if (r->manufacturer_name) {
12690 uint32_t _relative_save_offset;
12691 _relative_save_offset = ndr->offset;
12692 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_name));
12693 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12694 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
12695 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_name));
12696 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
12697 ndr->offset = _relative_save_offset;
12699 ndr->flags = _flags_save_string;
12702 uint32_t _flags_save_string = ndr->flags;
12703 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12704 if (r->manufacturer_url) {
12705 uint32_t _relative_save_offset;
12706 _relative_save_offset = ndr->offset;
12707 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_url));
12708 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
12709 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
12710 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_url));
12711 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
12712 ndr->offset = _relative_save_offset;
12714 ndr->flags = _flags_save_string;
12717 uint32_t _flags_save_string = ndr->flags;
12718 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12719 if (r->hardware_id) {
12720 uint32_t _relative_save_offset;
12721 _relative_save_offset = ndr->offset;
12722 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->hardware_id));
12723 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
12724 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
12725 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->hardware_id));
12726 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
12727 ndr->offset = _relative_save_offset;
12729 ndr->flags = _flags_save_string;
12732 uint32_t _flags_save_string = ndr->flags;
12733 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12734 if (r->provider) {
12735 uint32_t _relative_save_offset;
12736 _relative_save_offset = ndr->offset;
12737 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->provider));
12738 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
12739 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
12740 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->provider));
12741 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
12742 ndr->offset = _relative_save_offset;
12744 ndr->flags = _flags_save_string;
12747 return NDR_ERR_SUCCESS;
12750 _PUBLIC_ void ndr_print_spoolss_DriverInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo6 *r)
12752 ndr_print_struct(ndr, name, "spoolss_DriverInfo6");
12753 ndr->depth++;
12754 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
12755 ndr_print_ptr(ndr, "driver_name", r->driver_name);
12756 ndr->depth++;
12757 if (r->driver_name) {
12758 ndr_print_string(ndr, "driver_name", r->driver_name);
12760 ndr->depth--;
12761 ndr_print_ptr(ndr, "architecture", r->architecture);
12762 ndr->depth++;
12763 if (r->architecture) {
12764 ndr_print_string(ndr, "architecture", r->architecture);
12766 ndr->depth--;
12767 ndr_print_ptr(ndr, "driver_path", r->driver_path);
12768 ndr->depth++;
12769 if (r->driver_path) {
12770 ndr_print_string(ndr, "driver_path", r->driver_path);
12772 ndr->depth--;
12773 ndr_print_ptr(ndr, "data_file", r->data_file);
12774 ndr->depth++;
12775 if (r->data_file) {
12776 ndr_print_string(ndr, "data_file", r->data_file);
12778 ndr->depth--;
12779 ndr_print_ptr(ndr, "config_file", r->config_file);
12780 ndr->depth++;
12781 if (r->config_file) {
12782 ndr_print_string(ndr, "config_file", r->config_file);
12784 ndr->depth--;
12785 ndr_print_ptr(ndr, "help_file", r->help_file);
12786 ndr->depth++;
12787 if (r->help_file) {
12788 ndr_print_string(ndr, "help_file", r->help_file);
12790 ndr->depth--;
12791 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
12792 ndr->depth++;
12793 if (r->dependent_files) {
12794 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
12796 ndr->depth--;
12797 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
12798 ndr->depth++;
12799 if (r->monitor_name) {
12800 ndr_print_string(ndr, "monitor_name", r->monitor_name);
12802 ndr->depth--;
12803 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
12804 ndr->depth++;
12805 if (r->default_datatype) {
12806 ndr_print_string(ndr, "default_datatype", r->default_datatype);
12808 ndr->depth--;
12809 ndr_print_ptr(ndr, "previous_names", r->previous_names);
12810 ndr->depth++;
12811 if (r->previous_names) {
12812 ndr_print_string_array(ndr, "previous_names", r->previous_names);
12814 ndr->depth--;
12815 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
12816 ndr_print_hyper(ndr, "driver_version", r->driver_version);
12817 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
12818 ndr->depth++;
12819 if (r->manufacturer_name) {
12820 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
12822 ndr->depth--;
12823 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
12824 ndr->depth++;
12825 if (r->manufacturer_url) {
12826 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
12828 ndr->depth--;
12829 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
12830 ndr->depth++;
12831 if (r->hardware_id) {
12832 ndr_print_string(ndr, "hardware_id", r->hardware_id);
12834 ndr->depth--;
12835 ndr_print_ptr(ndr, "provider", r->provider);
12836 ndr->depth++;
12837 if (r->provider) {
12838 ndr_print_string(ndr, "provider", r->provider);
12840 ndr->depth--;
12841 ndr->depth--;
12844 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo6(const struct spoolss_DriverInfo6 *r, struct smb_iconv_convenience *ic, int flags)
12846 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo6, ic);
12849 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo7(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo7 *r)
12851 if (ndr_flags & NDR_SCALARS) {
12852 NDR_CHECK(ndr_push_align(ndr, 5));
12853 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
12854 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
12856 uint32_t _flags_save_string = ndr->flags;
12857 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12858 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
12859 ndr->flags = _flags_save_string;
12862 uint32_t _flags_save_string = ndr->flags;
12863 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12864 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->inf_name));
12865 ndr->flags = _flags_save_string;
12868 uint32_t _flags_save_string = ndr->flags;
12869 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12870 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->install_source_root));
12871 ndr->flags = _flags_save_string;
12873 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
12875 if (ndr_flags & NDR_BUFFERS) {
12877 uint32_t _flags_save_string = ndr->flags;
12878 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12879 if (r->driver_name) {
12880 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
12881 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
12883 ndr->flags = _flags_save_string;
12886 uint32_t _flags_save_string = ndr->flags;
12887 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12888 if (r->inf_name) {
12889 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->inf_name));
12890 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->inf_name));
12892 ndr->flags = _flags_save_string;
12895 uint32_t _flags_save_string = ndr->flags;
12896 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12897 if (r->install_source_root) {
12898 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->install_source_root));
12899 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->install_source_root));
12901 ndr->flags = _flags_save_string;
12904 return NDR_ERR_SUCCESS;
12907 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo7(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo7 *r)
12909 uint32_t _ptr_driver_name;
12910 TALLOC_CTX *_mem_save_driver_name_0;
12911 uint32_t _ptr_inf_name;
12912 TALLOC_CTX *_mem_save_inf_name_0;
12913 uint32_t _ptr_install_source_root;
12914 TALLOC_CTX *_mem_save_install_source_root_0;
12915 if (ndr_flags & NDR_SCALARS) {
12916 NDR_CHECK(ndr_pull_align(ndr, 5));
12917 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
12918 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
12920 uint32_t _flags_save_string = ndr->flags;
12921 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12922 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
12923 if (_ptr_driver_name) {
12924 NDR_PULL_ALLOC(ndr, r->driver_name);
12925 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
12926 } else {
12927 r->driver_name = NULL;
12929 ndr->flags = _flags_save_string;
12932 uint32_t _flags_save_string = ndr->flags;
12933 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12934 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_inf_name));
12935 if (_ptr_inf_name) {
12936 NDR_PULL_ALLOC(ndr, r->inf_name);
12937 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->inf_name, _ptr_inf_name));
12938 } else {
12939 r->inf_name = NULL;
12941 ndr->flags = _flags_save_string;
12944 uint32_t _flags_save_string = ndr->flags;
12945 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12946 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_install_source_root));
12947 if (_ptr_install_source_root) {
12948 NDR_PULL_ALLOC(ndr, r->install_source_root);
12949 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->install_source_root, _ptr_install_source_root));
12950 } else {
12951 r->install_source_root = NULL;
12953 ndr->flags = _flags_save_string;
12955 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
12957 if (ndr_flags & NDR_BUFFERS) {
12959 uint32_t _flags_save_string = ndr->flags;
12960 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12961 if (r->driver_name) {
12962 uint32_t _relative_save_offset;
12963 _relative_save_offset = ndr->offset;
12964 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
12965 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12966 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
12967 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
12968 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
12969 ndr->offset = _relative_save_offset;
12971 ndr->flags = _flags_save_string;
12974 uint32_t _flags_save_string = ndr->flags;
12975 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12976 if (r->inf_name) {
12977 uint32_t _relative_save_offset;
12978 _relative_save_offset = ndr->offset;
12979 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->inf_name));
12980 _mem_save_inf_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12981 NDR_PULL_SET_MEM_CTX(ndr, r->inf_name, 0);
12982 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->inf_name));
12983 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_inf_name_0, 0);
12984 ndr->offset = _relative_save_offset;
12986 ndr->flags = _flags_save_string;
12989 uint32_t _flags_save_string = ndr->flags;
12990 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12991 if (r->install_source_root) {
12992 uint32_t _relative_save_offset;
12993 _relative_save_offset = ndr->offset;
12994 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->install_source_root));
12995 _mem_save_install_source_root_0 = NDR_PULL_GET_MEM_CTX(ndr);
12996 NDR_PULL_SET_MEM_CTX(ndr, r->install_source_root, 0);
12997 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->install_source_root));
12998 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_install_source_root_0, 0);
12999 ndr->offset = _relative_save_offset;
13001 ndr->flags = _flags_save_string;
13004 return NDR_ERR_SUCCESS;
13007 _PUBLIC_ void ndr_print_spoolss_DriverInfo7(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo7 *r)
13009 ndr_print_struct(ndr, name, "spoolss_DriverInfo7");
13010 ndr->depth++;
13011 ndr_print_uint32(ndr, "size", r->size);
13012 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
13013 ndr_print_ptr(ndr, "driver_name", r->driver_name);
13014 ndr->depth++;
13015 if (r->driver_name) {
13016 ndr_print_string(ndr, "driver_name", r->driver_name);
13018 ndr->depth--;
13019 ndr_print_ptr(ndr, "inf_name", r->inf_name);
13020 ndr->depth++;
13021 if (r->inf_name) {
13022 ndr_print_string(ndr, "inf_name", r->inf_name);
13024 ndr->depth--;
13025 ndr_print_ptr(ndr, "install_source_root", r->install_source_root);
13026 ndr->depth++;
13027 if (r->install_source_root) {
13028 ndr_print_string(ndr, "install_source_root", r->install_source_root);
13030 ndr->depth--;
13031 ndr->depth--;
13034 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo7(const struct spoolss_DriverInfo7 *r, struct smb_iconv_convenience *ic, int flags)
13036 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo7, ic);
13039 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo8(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo8 *r)
13041 if (ndr_flags & NDR_SCALARS) {
13042 NDR_CHECK(ndr_push_align(ndr, 8));
13043 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
13045 uint32_t _flags_save_string = ndr->flags;
13046 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13047 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
13048 ndr->flags = _flags_save_string;
13051 uint32_t _flags_save_string = ndr->flags;
13052 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13053 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
13054 ndr->flags = _flags_save_string;
13057 uint32_t _flags_save_string = ndr->flags;
13058 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13059 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
13060 ndr->flags = _flags_save_string;
13063 uint32_t _flags_save_string = ndr->flags;
13064 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13065 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
13066 ndr->flags = _flags_save_string;
13069 uint32_t _flags_save_string = ndr->flags;
13070 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13071 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
13072 ndr->flags = _flags_save_string;
13075 uint32_t _flags_save_string = ndr->flags;
13076 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13077 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
13078 ndr->flags = _flags_save_string;
13081 uint32_t _flags_save_string_array = ndr->flags;
13082 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13083 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
13084 ndr->flags = _flags_save_string_array;
13087 uint32_t _flags_save_string = ndr->flags;
13088 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13089 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
13090 ndr->flags = _flags_save_string;
13093 uint32_t _flags_save_string = ndr->flags;
13094 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13095 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
13096 ndr->flags = _flags_save_string;
13099 uint32_t _flags_save_string_array = ndr->flags;
13100 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13101 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
13102 ndr->flags = _flags_save_string_array;
13104 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
13105 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
13107 uint32_t _flags_save_string = ndr->flags;
13108 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13109 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_name));
13110 ndr->flags = _flags_save_string;
13113 uint32_t _flags_save_string = ndr->flags;
13114 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13115 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_url));
13116 ndr->flags = _flags_save_string;
13119 uint32_t _flags_save_string = ndr->flags;
13120 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13121 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->hardware_id));
13122 ndr->flags = _flags_save_string;
13125 uint32_t _flags_save_string = ndr->flags;
13126 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13127 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->provider));
13128 ndr->flags = _flags_save_string;
13131 uint32_t _flags_save_string = ndr->flags;
13132 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13133 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor));
13134 ndr->flags = _flags_save_string;
13137 uint32_t _flags_save_string = ndr->flags;
13138 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13139 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->vendor_setup));
13140 ndr->flags = _flags_save_string;
13143 uint32_t _flags_save_string_array = ndr->flags;
13144 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13145 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->color_profiles));
13146 ndr->flags = _flags_save_string_array;
13149 uint32_t _flags_save_string = ndr->flags;
13150 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13151 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->inf_path));
13152 ndr->flags = _flags_save_string;
13154 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->printer_driver_attributes));
13156 uint32_t _flags_save_string_array = ndr->flags;
13157 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13158 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->core_driver_dependencies));
13159 ndr->flags = _flags_save_string_array;
13161 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->min_inbox_driver_ver_date));
13162 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->min_inbox_driver_ver_version));
13163 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
13165 if (ndr_flags & NDR_BUFFERS) {
13167 uint32_t _flags_save_string = ndr->flags;
13168 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13169 if (r->driver_name) {
13170 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
13171 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
13173 ndr->flags = _flags_save_string;
13176 uint32_t _flags_save_string = ndr->flags;
13177 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13178 if (r->architecture) {
13179 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
13180 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
13182 ndr->flags = _flags_save_string;
13185 uint32_t _flags_save_string = ndr->flags;
13186 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13187 if (r->driver_path) {
13188 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
13189 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
13191 ndr->flags = _flags_save_string;
13194 uint32_t _flags_save_string = ndr->flags;
13195 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13196 if (r->data_file) {
13197 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
13198 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
13200 ndr->flags = _flags_save_string;
13203 uint32_t _flags_save_string = ndr->flags;
13204 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13205 if (r->config_file) {
13206 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
13207 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
13209 ndr->flags = _flags_save_string;
13212 uint32_t _flags_save_string = ndr->flags;
13213 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13214 if (r->help_file) {
13215 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
13216 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
13218 ndr->flags = _flags_save_string;
13221 uint32_t _flags_save_string_array = ndr->flags;
13222 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13223 if (r->dependent_files) {
13224 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
13225 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
13227 ndr->flags = _flags_save_string_array;
13230 uint32_t _flags_save_string = ndr->flags;
13231 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13232 if (r->monitor_name) {
13233 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
13234 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
13236 ndr->flags = _flags_save_string;
13239 uint32_t _flags_save_string = ndr->flags;
13240 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13241 if (r->default_datatype) {
13242 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
13243 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
13245 ndr->flags = _flags_save_string;
13248 uint32_t _flags_save_string_array = ndr->flags;
13249 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13250 if (r->previous_names) {
13251 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->previous_names));
13252 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
13254 ndr->flags = _flags_save_string_array;
13257 uint32_t _flags_save_string = ndr->flags;
13258 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13259 if (r->manufacturer_name) {
13260 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_name));
13261 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_name));
13263 ndr->flags = _flags_save_string;
13266 uint32_t _flags_save_string = ndr->flags;
13267 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13268 if (r->manufacturer_url) {
13269 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_url));
13270 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_url));
13272 ndr->flags = _flags_save_string;
13275 uint32_t _flags_save_string = ndr->flags;
13276 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13277 if (r->hardware_id) {
13278 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->hardware_id));
13279 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->hardware_id));
13281 ndr->flags = _flags_save_string;
13284 uint32_t _flags_save_string = ndr->flags;
13285 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13286 if (r->provider) {
13287 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->provider));
13288 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->provider));
13290 ndr->flags = _flags_save_string;
13293 uint32_t _flags_save_string = ndr->flags;
13294 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13295 if (r->print_processor) {
13296 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->print_processor));
13297 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor));
13299 ndr->flags = _flags_save_string;
13302 uint32_t _flags_save_string = ndr->flags;
13303 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13304 if (r->vendor_setup) {
13305 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->vendor_setup));
13306 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->vendor_setup));
13308 ndr->flags = _flags_save_string;
13311 uint32_t _flags_save_string_array = ndr->flags;
13312 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13313 if (r->color_profiles) {
13314 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->color_profiles));
13315 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->color_profiles));
13317 ndr->flags = _flags_save_string_array;
13320 uint32_t _flags_save_string = ndr->flags;
13321 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13322 if (r->inf_path) {
13323 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->inf_path));
13324 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->inf_path));
13326 ndr->flags = _flags_save_string;
13329 uint32_t _flags_save_string_array = ndr->flags;
13330 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13331 if (r->core_driver_dependencies) {
13332 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->core_driver_dependencies));
13333 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->core_driver_dependencies));
13335 ndr->flags = _flags_save_string_array;
13338 return NDR_ERR_SUCCESS;
13341 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo8(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo8 *r)
13343 uint32_t _ptr_driver_name;
13344 TALLOC_CTX *_mem_save_driver_name_0;
13345 uint32_t _ptr_architecture;
13346 TALLOC_CTX *_mem_save_architecture_0;
13347 uint32_t _ptr_driver_path;
13348 TALLOC_CTX *_mem_save_driver_path_0;
13349 uint32_t _ptr_data_file;
13350 TALLOC_CTX *_mem_save_data_file_0;
13351 uint32_t _ptr_config_file;
13352 TALLOC_CTX *_mem_save_config_file_0;
13353 uint32_t _ptr_help_file;
13354 TALLOC_CTX *_mem_save_help_file_0;
13355 uint32_t _ptr_dependent_files;
13356 TALLOC_CTX *_mem_save_dependent_files_0;
13357 uint32_t _ptr_monitor_name;
13358 TALLOC_CTX *_mem_save_monitor_name_0;
13359 uint32_t _ptr_default_datatype;
13360 TALLOC_CTX *_mem_save_default_datatype_0;
13361 uint32_t _ptr_previous_names;
13362 TALLOC_CTX *_mem_save_previous_names_0;
13363 uint32_t _ptr_manufacturer_name;
13364 TALLOC_CTX *_mem_save_manufacturer_name_0;
13365 uint32_t _ptr_manufacturer_url;
13366 TALLOC_CTX *_mem_save_manufacturer_url_0;
13367 uint32_t _ptr_hardware_id;
13368 TALLOC_CTX *_mem_save_hardware_id_0;
13369 uint32_t _ptr_provider;
13370 TALLOC_CTX *_mem_save_provider_0;
13371 uint32_t _ptr_print_processor;
13372 TALLOC_CTX *_mem_save_print_processor_0;
13373 uint32_t _ptr_vendor_setup;
13374 TALLOC_CTX *_mem_save_vendor_setup_0;
13375 uint32_t _ptr_color_profiles;
13376 TALLOC_CTX *_mem_save_color_profiles_0;
13377 uint32_t _ptr_inf_path;
13378 TALLOC_CTX *_mem_save_inf_path_0;
13379 uint32_t _ptr_core_driver_dependencies;
13380 TALLOC_CTX *_mem_save_core_driver_dependencies_0;
13381 if (ndr_flags & NDR_SCALARS) {
13382 NDR_CHECK(ndr_pull_align(ndr, 8));
13383 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
13385 uint32_t _flags_save_string = ndr->flags;
13386 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13387 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
13388 if (_ptr_driver_name) {
13389 NDR_PULL_ALLOC(ndr, r->driver_name);
13390 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
13391 } else {
13392 r->driver_name = NULL;
13394 ndr->flags = _flags_save_string;
13397 uint32_t _flags_save_string = ndr->flags;
13398 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13399 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
13400 if (_ptr_architecture) {
13401 NDR_PULL_ALLOC(ndr, r->architecture);
13402 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
13403 } else {
13404 r->architecture = NULL;
13406 ndr->flags = _flags_save_string;
13409 uint32_t _flags_save_string = ndr->flags;
13410 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13411 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
13412 if (_ptr_driver_path) {
13413 NDR_PULL_ALLOC(ndr, r->driver_path);
13414 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
13415 } else {
13416 r->driver_path = NULL;
13418 ndr->flags = _flags_save_string;
13421 uint32_t _flags_save_string = ndr->flags;
13422 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13423 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
13424 if (_ptr_data_file) {
13425 NDR_PULL_ALLOC(ndr, r->data_file);
13426 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
13427 } else {
13428 r->data_file = NULL;
13430 ndr->flags = _flags_save_string;
13433 uint32_t _flags_save_string = ndr->flags;
13434 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13435 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
13436 if (_ptr_config_file) {
13437 NDR_PULL_ALLOC(ndr, r->config_file);
13438 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
13439 } else {
13440 r->config_file = NULL;
13442 ndr->flags = _flags_save_string;
13445 uint32_t _flags_save_string = ndr->flags;
13446 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13447 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
13448 if (_ptr_help_file) {
13449 NDR_PULL_ALLOC(ndr, r->help_file);
13450 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
13451 } else {
13452 r->help_file = NULL;
13454 ndr->flags = _flags_save_string;
13457 uint32_t _flags_save_string_array = ndr->flags;
13458 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13459 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
13460 if (_ptr_dependent_files) {
13461 NDR_PULL_ALLOC(ndr, r->dependent_files);
13462 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
13463 } else {
13464 r->dependent_files = NULL;
13466 ndr->flags = _flags_save_string_array;
13469 uint32_t _flags_save_string = ndr->flags;
13470 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13471 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
13472 if (_ptr_monitor_name) {
13473 NDR_PULL_ALLOC(ndr, r->monitor_name);
13474 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
13475 } else {
13476 r->monitor_name = NULL;
13478 ndr->flags = _flags_save_string;
13481 uint32_t _flags_save_string = ndr->flags;
13482 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13483 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
13484 if (_ptr_default_datatype) {
13485 NDR_PULL_ALLOC(ndr, r->default_datatype);
13486 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
13487 } else {
13488 r->default_datatype = NULL;
13490 ndr->flags = _flags_save_string;
13493 uint32_t _flags_save_string_array = ndr->flags;
13494 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13495 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
13496 if (_ptr_previous_names) {
13497 NDR_PULL_ALLOC(ndr, r->previous_names);
13498 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
13499 } else {
13500 r->previous_names = NULL;
13502 ndr->flags = _flags_save_string_array;
13504 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
13505 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
13507 uint32_t _flags_save_string = ndr->flags;
13508 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13509 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
13510 if (_ptr_manufacturer_name) {
13511 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
13512 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_name, _ptr_manufacturer_name));
13513 } else {
13514 r->manufacturer_name = NULL;
13516 ndr->flags = _flags_save_string;
13519 uint32_t _flags_save_string = ndr->flags;
13520 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13521 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
13522 if (_ptr_manufacturer_url) {
13523 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
13524 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_url, _ptr_manufacturer_url));
13525 } else {
13526 r->manufacturer_url = NULL;
13528 ndr->flags = _flags_save_string;
13531 uint32_t _flags_save_string = ndr->flags;
13532 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13533 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
13534 if (_ptr_hardware_id) {
13535 NDR_PULL_ALLOC(ndr, r->hardware_id);
13536 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->hardware_id, _ptr_hardware_id));
13537 } else {
13538 r->hardware_id = NULL;
13540 ndr->flags = _flags_save_string;
13543 uint32_t _flags_save_string = ndr->flags;
13544 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13545 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
13546 if (_ptr_provider) {
13547 NDR_PULL_ALLOC(ndr, r->provider);
13548 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->provider, _ptr_provider));
13549 } else {
13550 r->provider = NULL;
13552 ndr->flags = _flags_save_string;
13555 uint32_t _flags_save_string = ndr->flags;
13556 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13557 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
13558 if (_ptr_print_processor) {
13559 NDR_PULL_ALLOC(ndr, r->print_processor);
13560 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor, _ptr_print_processor));
13561 } else {
13562 r->print_processor = NULL;
13564 ndr->flags = _flags_save_string;
13567 uint32_t _flags_save_string = ndr->flags;
13568 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13569 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_vendor_setup));
13570 if (_ptr_vendor_setup) {
13571 NDR_PULL_ALLOC(ndr, r->vendor_setup);
13572 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->vendor_setup, _ptr_vendor_setup));
13573 } else {
13574 r->vendor_setup = NULL;
13576 ndr->flags = _flags_save_string;
13579 uint32_t _flags_save_string_array = ndr->flags;
13580 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13581 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_color_profiles));
13582 if (_ptr_color_profiles) {
13583 NDR_PULL_ALLOC(ndr, r->color_profiles);
13584 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->color_profiles, _ptr_color_profiles));
13585 } else {
13586 r->color_profiles = NULL;
13588 ndr->flags = _flags_save_string_array;
13591 uint32_t _flags_save_string = ndr->flags;
13592 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13593 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_inf_path));
13594 if (_ptr_inf_path) {
13595 NDR_PULL_ALLOC(ndr, r->inf_path);
13596 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->inf_path, _ptr_inf_path));
13597 } else {
13598 r->inf_path = NULL;
13600 ndr->flags = _flags_save_string;
13602 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->printer_driver_attributes));
13604 uint32_t _flags_save_string_array = ndr->flags;
13605 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13606 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_core_driver_dependencies));
13607 if (_ptr_core_driver_dependencies) {
13608 NDR_PULL_ALLOC(ndr, r->core_driver_dependencies);
13609 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->core_driver_dependencies, _ptr_core_driver_dependencies));
13610 } else {
13611 r->core_driver_dependencies = NULL;
13613 ndr->flags = _flags_save_string_array;
13615 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_date));
13616 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_version));
13617 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
13619 if (ndr_flags & NDR_BUFFERS) {
13621 uint32_t _flags_save_string = ndr->flags;
13622 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13623 if (r->driver_name) {
13624 uint32_t _relative_save_offset;
13625 _relative_save_offset = ndr->offset;
13626 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
13627 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13628 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
13629 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
13630 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
13631 ndr->offset = _relative_save_offset;
13633 ndr->flags = _flags_save_string;
13636 uint32_t _flags_save_string = ndr->flags;
13637 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13638 if (r->architecture) {
13639 uint32_t _relative_save_offset;
13640 _relative_save_offset = ndr->offset;
13641 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
13642 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
13643 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
13644 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
13645 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
13646 ndr->offset = _relative_save_offset;
13648 ndr->flags = _flags_save_string;
13651 uint32_t _flags_save_string = ndr->flags;
13652 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13653 if (r->driver_path) {
13654 uint32_t _relative_save_offset;
13655 _relative_save_offset = ndr->offset;
13656 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
13657 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
13658 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
13659 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
13660 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
13661 ndr->offset = _relative_save_offset;
13663 ndr->flags = _flags_save_string;
13666 uint32_t _flags_save_string = ndr->flags;
13667 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13668 if (r->data_file) {
13669 uint32_t _relative_save_offset;
13670 _relative_save_offset = ndr->offset;
13671 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
13672 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
13673 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
13674 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
13675 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
13676 ndr->offset = _relative_save_offset;
13678 ndr->flags = _flags_save_string;
13681 uint32_t _flags_save_string = ndr->flags;
13682 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13683 if (r->config_file) {
13684 uint32_t _relative_save_offset;
13685 _relative_save_offset = ndr->offset;
13686 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
13687 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
13688 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
13689 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
13690 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
13691 ndr->offset = _relative_save_offset;
13693 ndr->flags = _flags_save_string;
13696 uint32_t _flags_save_string = ndr->flags;
13697 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13698 if (r->help_file) {
13699 uint32_t _relative_save_offset;
13700 _relative_save_offset = ndr->offset;
13701 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
13702 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
13703 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
13704 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
13705 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
13706 ndr->offset = _relative_save_offset;
13708 ndr->flags = _flags_save_string;
13711 uint32_t _flags_save_string_array = ndr->flags;
13712 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13713 if (r->dependent_files) {
13714 uint32_t _relative_save_offset;
13715 _relative_save_offset = ndr->offset;
13716 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
13717 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
13718 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
13719 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
13720 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
13721 ndr->offset = _relative_save_offset;
13723 ndr->flags = _flags_save_string_array;
13726 uint32_t _flags_save_string = ndr->flags;
13727 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13728 if (r->monitor_name) {
13729 uint32_t _relative_save_offset;
13730 _relative_save_offset = ndr->offset;
13731 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
13732 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13733 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
13734 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
13735 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
13736 ndr->offset = _relative_save_offset;
13738 ndr->flags = _flags_save_string;
13741 uint32_t _flags_save_string = ndr->flags;
13742 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13743 if (r->default_datatype) {
13744 uint32_t _relative_save_offset;
13745 _relative_save_offset = ndr->offset;
13746 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
13747 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
13748 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
13749 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
13750 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
13751 ndr->offset = _relative_save_offset;
13753 ndr->flags = _flags_save_string;
13756 uint32_t _flags_save_string_array = ndr->flags;
13757 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13758 if (r->previous_names) {
13759 uint32_t _relative_save_offset;
13760 _relative_save_offset = ndr->offset;
13761 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
13762 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
13763 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
13764 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
13765 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
13766 ndr->offset = _relative_save_offset;
13768 ndr->flags = _flags_save_string_array;
13771 uint32_t _flags_save_string = ndr->flags;
13772 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13773 if (r->manufacturer_name) {
13774 uint32_t _relative_save_offset;
13775 _relative_save_offset = ndr->offset;
13776 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_name));
13777 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13778 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
13779 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_name));
13780 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
13781 ndr->offset = _relative_save_offset;
13783 ndr->flags = _flags_save_string;
13786 uint32_t _flags_save_string = ndr->flags;
13787 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13788 if (r->manufacturer_url) {
13789 uint32_t _relative_save_offset;
13790 _relative_save_offset = ndr->offset;
13791 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_url));
13792 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
13793 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
13794 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_url));
13795 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
13796 ndr->offset = _relative_save_offset;
13798 ndr->flags = _flags_save_string;
13801 uint32_t _flags_save_string = ndr->flags;
13802 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13803 if (r->hardware_id) {
13804 uint32_t _relative_save_offset;
13805 _relative_save_offset = ndr->offset;
13806 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->hardware_id));
13807 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
13808 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
13809 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->hardware_id));
13810 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
13811 ndr->offset = _relative_save_offset;
13813 ndr->flags = _flags_save_string;
13816 uint32_t _flags_save_string = ndr->flags;
13817 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13818 if (r->provider) {
13819 uint32_t _relative_save_offset;
13820 _relative_save_offset = ndr->offset;
13821 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->provider));
13822 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
13823 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
13824 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->provider));
13825 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
13826 ndr->offset = _relative_save_offset;
13828 ndr->flags = _flags_save_string;
13831 uint32_t _flags_save_string = ndr->flags;
13832 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13833 if (r->print_processor) {
13834 uint32_t _relative_save_offset;
13835 _relative_save_offset = ndr->offset;
13836 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor));
13837 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
13838 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
13839 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor));
13840 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
13841 ndr->offset = _relative_save_offset;
13843 ndr->flags = _flags_save_string;
13846 uint32_t _flags_save_string = ndr->flags;
13847 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13848 if (r->vendor_setup) {
13849 uint32_t _relative_save_offset;
13850 _relative_save_offset = ndr->offset;
13851 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->vendor_setup));
13852 _mem_save_vendor_setup_0 = NDR_PULL_GET_MEM_CTX(ndr);
13853 NDR_PULL_SET_MEM_CTX(ndr, r->vendor_setup, 0);
13854 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->vendor_setup));
13855 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vendor_setup_0, 0);
13856 ndr->offset = _relative_save_offset;
13858 ndr->flags = _flags_save_string;
13861 uint32_t _flags_save_string_array = ndr->flags;
13862 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13863 if (r->color_profiles) {
13864 uint32_t _relative_save_offset;
13865 _relative_save_offset = ndr->offset;
13866 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->color_profiles));
13867 _mem_save_color_profiles_0 = NDR_PULL_GET_MEM_CTX(ndr);
13868 NDR_PULL_SET_MEM_CTX(ndr, r->color_profiles, 0);
13869 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->color_profiles));
13870 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_color_profiles_0, 0);
13871 ndr->offset = _relative_save_offset;
13873 ndr->flags = _flags_save_string_array;
13876 uint32_t _flags_save_string = ndr->flags;
13877 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13878 if (r->inf_path) {
13879 uint32_t _relative_save_offset;
13880 _relative_save_offset = ndr->offset;
13881 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->inf_path));
13882 _mem_save_inf_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
13883 NDR_PULL_SET_MEM_CTX(ndr, r->inf_path, 0);
13884 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->inf_path));
13885 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_inf_path_0, 0);
13886 ndr->offset = _relative_save_offset;
13888 ndr->flags = _flags_save_string;
13891 uint32_t _flags_save_string_array = ndr->flags;
13892 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13893 if (r->core_driver_dependencies) {
13894 uint32_t _relative_save_offset;
13895 _relative_save_offset = ndr->offset;
13896 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->core_driver_dependencies));
13897 _mem_save_core_driver_dependencies_0 = NDR_PULL_GET_MEM_CTX(ndr);
13898 NDR_PULL_SET_MEM_CTX(ndr, r->core_driver_dependencies, 0);
13899 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->core_driver_dependencies));
13900 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_driver_dependencies_0, 0);
13901 ndr->offset = _relative_save_offset;
13903 ndr->flags = _flags_save_string_array;
13906 return NDR_ERR_SUCCESS;
13909 _PUBLIC_ void ndr_print_spoolss_DriverInfo8(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo8 *r)
13911 ndr_print_struct(ndr, name, "spoolss_DriverInfo8");
13912 ndr->depth++;
13913 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
13914 ndr_print_ptr(ndr, "driver_name", r->driver_name);
13915 ndr->depth++;
13916 if (r->driver_name) {
13917 ndr_print_string(ndr, "driver_name", r->driver_name);
13919 ndr->depth--;
13920 ndr_print_ptr(ndr, "architecture", r->architecture);
13921 ndr->depth++;
13922 if (r->architecture) {
13923 ndr_print_string(ndr, "architecture", r->architecture);
13925 ndr->depth--;
13926 ndr_print_ptr(ndr, "driver_path", r->driver_path);
13927 ndr->depth++;
13928 if (r->driver_path) {
13929 ndr_print_string(ndr, "driver_path", r->driver_path);
13931 ndr->depth--;
13932 ndr_print_ptr(ndr, "data_file", r->data_file);
13933 ndr->depth++;
13934 if (r->data_file) {
13935 ndr_print_string(ndr, "data_file", r->data_file);
13937 ndr->depth--;
13938 ndr_print_ptr(ndr, "config_file", r->config_file);
13939 ndr->depth++;
13940 if (r->config_file) {
13941 ndr_print_string(ndr, "config_file", r->config_file);
13943 ndr->depth--;
13944 ndr_print_ptr(ndr, "help_file", r->help_file);
13945 ndr->depth++;
13946 if (r->help_file) {
13947 ndr_print_string(ndr, "help_file", r->help_file);
13949 ndr->depth--;
13950 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
13951 ndr->depth++;
13952 if (r->dependent_files) {
13953 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
13955 ndr->depth--;
13956 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
13957 ndr->depth++;
13958 if (r->monitor_name) {
13959 ndr_print_string(ndr, "monitor_name", r->monitor_name);
13961 ndr->depth--;
13962 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
13963 ndr->depth++;
13964 if (r->default_datatype) {
13965 ndr_print_string(ndr, "default_datatype", r->default_datatype);
13967 ndr->depth--;
13968 ndr_print_ptr(ndr, "previous_names", r->previous_names);
13969 ndr->depth++;
13970 if (r->previous_names) {
13971 ndr_print_string_array(ndr, "previous_names", r->previous_names);
13973 ndr->depth--;
13974 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
13975 ndr_print_hyper(ndr, "driver_version", r->driver_version);
13976 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
13977 ndr->depth++;
13978 if (r->manufacturer_name) {
13979 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
13981 ndr->depth--;
13982 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
13983 ndr->depth++;
13984 if (r->manufacturer_url) {
13985 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
13987 ndr->depth--;
13988 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
13989 ndr->depth++;
13990 if (r->hardware_id) {
13991 ndr_print_string(ndr, "hardware_id", r->hardware_id);
13993 ndr->depth--;
13994 ndr_print_ptr(ndr, "provider", r->provider);
13995 ndr->depth++;
13996 if (r->provider) {
13997 ndr_print_string(ndr, "provider", r->provider);
13999 ndr->depth--;
14000 ndr_print_ptr(ndr, "print_processor", r->print_processor);
14001 ndr->depth++;
14002 if (r->print_processor) {
14003 ndr_print_string(ndr, "print_processor", r->print_processor);
14005 ndr->depth--;
14006 ndr_print_ptr(ndr, "vendor_setup", r->vendor_setup);
14007 ndr->depth++;
14008 if (r->vendor_setup) {
14009 ndr_print_string(ndr, "vendor_setup", r->vendor_setup);
14011 ndr->depth--;
14012 ndr_print_ptr(ndr, "color_profiles", r->color_profiles);
14013 ndr->depth++;
14014 if (r->color_profiles) {
14015 ndr_print_string_array(ndr, "color_profiles", r->color_profiles);
14017 ndr->depth--;
14018 ndr_print_ptr(ndr, "inf_path", r->inf_path);
14019 ndr->depth++;
14020 if (r->inf_path) {
14021 ndr_print_string(ndr, "inf_path", r->inf_path);
14023 ndr->depth--;
14024 ndr_print_uint32(ndr, "printer_driver_attributes", r->printer_driver_attributes);
14025 ndr_print_ptr(ndr, "core_driver_dependencies", r->core_driver_dependencies);
14026 ndr->depth++;
14027 if (r->core_driver_dependencies) {
14028 ndr_print_string_array(ndr, "core_driver_dependencies", r->core_driver_dependencies);
14030 ndr->depth--;
14031 ndr_print_NTTIME(ndr, "min_inbox_driver_ver_date", r->min_inbox_driver_ver_date);
14032 ndr_print_hyper(ndr, "min_inbox_driver_ver_version", r->min_inbox_driver_ver_version);
14033 ndr->depth--;
14036 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo8(const struct spoolss_DriverInfo8 *r, struct smb_iconv_convenience *ic, int flags)
14038 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo8, ic);
14041 static enum ndr_err_code ndr_push_spoolss_DriverFileType(struct ndr_push *ndr, int ndr_flags, enum spoolss_DriverFileType r)
14043 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
14044 return NDR_ERR_SUCCESS;
14047 static enum ndr_err_code ndr_pull_spoolss_DriverFileType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DriverFileType *r)
14049 uint32_t v;
14050 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
14051 *r = v;
14052 return NDR_ERR_SUCCESS;
14055 _PUBLIC_ void ndr_print_spoolss_DriverFileType(struct ndr_print *ndr, const char *name, enum spoolss_DriverFileType r)
14057 const char *val = NULL;
14059 switch (r) {
14060 case SPOOLSS_DRIVER_FILE_TYPE_RENDERING: val = "SPOOLSS_DRIVER_FILE_TYPE_RENDERING"; break;
14061 case SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION: val = "SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION"; break;
14062 case SPOOLSS_DRIVER_FILE_TYPE_DATA: val = "SPOOLSS_DRIVER_FILE_TYPE_DATA"; break;
14063 case SPOOLSS_DRIVER_FILE_TYPE_HELP: val = "SPOOLSS_DRIVER_FILE_TYPE_HELP"; break;
14064 case SPOOLSS_DRIVER_FILE_TYPE_OTHER: val = "SPOOLSS_DRIVER_FILE_TYPE_OTHER"; break;
14066 ndr_print_enum(ndr, name, "ENUM", val, r);
14069 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverFileInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverFileInfo *r)
14071 if (ndr_flags & NDR_SCALARS) {
14072 NDR_CHECK(ndr_push_align(ndr, 5));
14074 uint32_t _flags_save_string = ndr->flags;
14075 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14076 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->file_name));
14077 ndr->flags = _flags_save_string;
14079 NDR_CHECK(ndr_push_spoolss_DriverFileType(ndr, NDR_SCALARS, r->file_type));
14080 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->file_version));
14081 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
14083 if (ndr_flags & NDR_BUFFERS) {
14085 uint32_t _flags_save_string = ndr->flags;
14086 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14087 if (r->file_name) {
14088 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->file_name));
14089 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->file_name));
14091 ndr->flags = _flags_save_string;
14094 return NDR_ERR_SUCCESS;
14097 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverFileInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverFileInfo *r)
14099 uint32_t _ptr_file_name;
14100 TALLOC_CTX *_mem_save_file_name_0;
14101 if (ndr_flags & NDR_SCALARS) {
14102 NDR_CHECK(ndr_pull_align(ndr, 5));
14104 uint32_t _flags_save_string = ndr->flags;
14105 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14106 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_file_name));
14107 if (_ptr_file_name) {
14108 NDR_PULL_ALLOC(ndr, r->file_name);
14109 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->file_name, _ptr_file_name));
14110 } else {
14111 r->file_name = NULL;
14113 ndr->flags = _flags_save_string;
14115 NDR_CHECK(ndr_pull_spoolss_DriverFileType(ndr, NDR_SCALARS, &r->file_type));
14116 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->file_version));
14117 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
14119 if (ndr_flags & NDR_BUFFERS) {
14121 uint32_t _flags_save_string = ndr->flags;
14122 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14123 if (r->file_name) {
14124 uint32_t _relative_save_offset;
14125 _relative_save_offset = ndr->offset;
14126 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->file_name));
14127 _mem_save_file_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14128 NDR_PULL_SET_MEM_CTX(ndr, r->file_name, 0);
14129 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->file_name));
14130 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_file_name_0, 0);
14131 ndr->offset = _relative_save_offset;
14133 ndr->flags = _flags_save_string;
14136 return NDR_ERR_SUCCESS;
14139 _PUBLIC_ void ndr_print_spoolss_DriverFileInfo(struct ndr_print *ndr, const char *name, const struct spoolss_DriverFileInfo *r)
14141 ndr_print_struct(ndr, name, "spoolss_DriverFileInfo");
14142 ndr->depth++;
14143 ndr_print_ptr(ndr, "file_name", r->file_name);
14144 ndr->depth++;
14145 if (r->file_name) {
14146 ndr_print_string(ndr, "file_name", r->file_name);
14148 ndr->depth--;
14149 ndr_print_spoolss_DriverFileType(ndr, "file_type", r->file_type);
14150 ndr_print_uint32(ndr, "file_version", r->file_version);
14151 ndr->depth--;
14154 _PUBLIC_ void ndr_print_spoolss_DriverInfo101(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo101 *r)
14156 uint32_t cntr_file_info_1;
14157 ndr_print_struct(ndr, name, "spoolss_DriverInfo101");
14158 ndr->depth++;
14159 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
14160 ndr_print_ptr(ndr, "driver_name", r->driver_name);
14161 ndr->depth++;
14162 if (r->driver_name) {
14163 ndr_print_string(ndr, "driver_name", r->driver_name);
14165 ndr->depth--;
14166 ndr_print_ptr(ndr, "architecture", r->architecture);
14167 ndr->depth++;
14168 if (r->architecture) {
14169 ndr_print_string(ndr, "architecture", r->architecture);
14171 ndr->depth--;
14172 ndr_print_ptr(ndr, "file_info", r->file_info);
14173 ndr->depth++;
14174 if (r->file_info) {
14175 ndr->print(ndr, "%s: ARRAY(%d)", "file_info", (int)r->file_count);
14176 ndr->depth++;
14177 for (cntr_file_info_1=0;cntr_file_info_1<r->file_count;cntr_file_info_1++) {
14178 char *idx_1=NULL;
14179 if (asprintf(&idx_1, "[%d]", cntr_file_info_1) != -1) {
14180 ndr_print_spoolss_DriverFileInfo(ndr, "file_info", &r->file_info[cntr_file_info_1]);
14181 free(idx_1);
14184 ndr->depth--;
14186 ndr->depth--;
14187 ndr_print_uint32(ndr, "file_count", r->file_count);
14188 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
14189 ndr->depth++;
14190 if (r->monitor_name) {
14191 ndr_print_string(ndr, "monitor_name", r->monitor_name);
14193 ndr->depth--;
14194 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
14195 ndr->depth++;
14196 if (r->default_datatype) {
14197 ndr_print_string(ndr, "default_datatype", r->default_datatype);
14199 ndr->depth--;
14200 ndr_print_ptr(ndr, "previous_names", r->previous_names);
14201 ndr->depth++;
14202 if (r->previous_names) {
14203 ndr_print_string_array(ndr, "previous_names", r->previous_names);
14205 ndr->depth--;
14206 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
14207 ndr_print_hyper(ndr, "driver_version", r->driver_version);
14208 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
14209 ndr->depth++;
14210 if (r->manufacturer_name) {
14211 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
14213 ndr->depth--;
14214 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
14215 ndr->depth++;
14216 if (r->manufacturer_url) {
14217 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
14219 ndr->depth--;
14220 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
14221 ndr->depth++;
14222 if (r->hardware_id) {
14223 ndr_print_string(ndr, "hardware_id", r->hardware_id);
14225 ndr->depth--;
14226 ndr_print_ptr(ndr, "provider", r->provider);
14227 ndr->depth++;
14228 if (r->provider) {
14229 ndr_print_string(ndr, "provider", r->provider);
14231 ndr->depth--;
14232 ndr->depth--;
14235 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo101(const struct spoolss_DriverInfo101 *r, struct smb_iconv_convenience *ic, int flags)
14237 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo101, ic);
14240 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DriverInfo *r)
14242 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
14243 if (ndr_flags & NDR_SCALARS) {
14244 int level = ndr_push_get_switch_value(ndr, r);
14245 NDR_CHECK(ndr_push_union_align(ndr, 8));
14246 switch (level) {
14247 case 1: {
14248 NDR_CHECK(ndr_push_align(ndr, 5));
14249 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14250 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr, NDR_SCALARS, &r->info1));
14251 break; }
14253 case 2: {
14254 NDR_CHECK(ndr_push_align(ndr, 5));
14255 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14256 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr, NDR_SCALARS, &r->info2));
14257 break; }
14259 case 3: {
14260 NDR_CHECK(ndr_push_align(ndr, 5));
14261 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14262 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr, NDR_SCALARS, &r->info3));
14263 break; }
14265 case 4: {
14266 NDR_CHECK(ndr_push_align(ndr, 5));
14267 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14268 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr, NDR_SCALARS, &r->info4));
14269 break; }
14271 case 5: {
14272 NDR_CHECK(ndr_push_align(ndr, 5));
14273 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14274 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr, NDR_SCALARS, &r->info5));
14275 break; }
14277 case 6: {
14278 NDR_CHECK(ndr_push_align(ndr, 8));
14279 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14280 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr, NDR_SCALARS, &r->info6));
14281 break; }
14283 case 7: {
14284 NDR_CHECK(ndr_push_align(ndr, 5));
14285 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14286 NDR_CHECK(ndr_push_spoolss_DriverInfo7(ndr, NDR_SCALARS, &r->info7));
14287 break; }
14289 case 8: {
14290 NDR_CHECK(ndr_push_align(ndr, 8));
14291 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14292 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr, NDR_SCALARS, &r->info8));
14293 break; }
14295 case 101: {
14296 NDR_CHECK(ndr_push_align(ndr, 8));
14297 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14298 NDR_CHECK(ndr_push_spoolss_DriverInfo101(ndr, NDR_SCALARS, &r->info101));
14299 break; }
14301 default: {
14302 break; }
14306 if (ndr_flags & NDR_BUFFERS) {
14307 int level = ndr_push_get_switch_value(ndr, r);
14308 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
14309 switch (level) {
14310 case 1:
14311 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr, NDR_BUFFERS, &r->info1));
14312 break;
14314 case 2:
14315 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr, NDR_BUFFERS, &r->info2));
14316 break;
14318 case 3:
14319 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr, NDR_BUFFERS, &r->info3));
14320 break;
14322 case 4:
14323 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr, NDR_BUFFERS, &r->info4));
14324 break;
14326 case 5:
14327 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr, NDR_BUFFERS, &r->info5));
14328 break;
14330 case 6:
14331 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr, NDR_BUFFERS, &r->info6));
14332 break;
14334 case 7:
14335 NDR_CHECK(ndr_push_spoolss_DriverInfo7(ndr, NDR_BUFFERS, &r->info7));
14336 break;
14338 case 8:
14339 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr, NDR_BUFFERS, &r->info8));
14340 break;
14342 case 101:
14343 NDR_CHECK(ndr_push_spoolss_DriverInfo101(ndr, NDR_BUFFERS, &r->info101));
14344 break;
14346 default:
14347 break;
14351 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
14352 return NDR_ERR_SUCCESS;
14355 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DriverInfo *r)
14357 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
14358 int level;
14359 level = ndr_pull_get_switch_value(ndr, r);
14360 if (ndr_flags & NDR_SCALARS) {
14361 NDR_CHECK(ndr_pull_union_align(ndr, 8));
14362 switch (level) {
14363 case 1: {
14364 NDR_CHECK(ndr_pull_align(ndr, 5));
14365 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14366 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr, NDR_SCALARS, &r->info1));
14367 break; }
14369 case 2: {
14370 NDR_CHECK(ndr_pull_align(ndr, 5));
14371 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14372 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr, NDR_SCALARS, &r->info2));
14373 break; }
14375 case 3: {
14376 NDR_CHECK(ndr_pull_align(ndr, 5));
14377 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14378 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr, NDR_SCALARS, &r->info3));
14379 break; }
14381 case 4: {
14382 NDR_CHECK(ndr_pull_align(ndr, 5));
14383 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14384 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr, NDR_SCALARS, &r->info4));
14385 break; }
14387 case 5: {
14388 NDR_CHECK(ndr_pull_align(ndr, 5));
14389 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14390 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr, NDR_SCALARS, &r->info5));
14391 break; }
14393 case 6: {
14394 NDR_CHECK(ndr_pull_align(ndr, 8));
14395 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14396 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr, NDR_SCALARS, &r->info6));
14397 break; }
14399 case 7: {
14400 NDR_CHECK(ndr_pull_align(ndr, 5));
14401 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14402 NDR_CHECK(ndr_pull_spoolss_DriverInfo7(ndr, NDR_SCALARS, &r->info7));
14403 break; }
14405 case 8: {
14406 NDR_CHECK(ndr_pull_align(ndr, 8));
14407 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14408 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr, NDR_SCALARS, &r->info8));
14409 break; }
14411 case 101: {
14412 NDR_CHECK(ndr_pull_align(ndr, 8));
14413 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14414 NDR_CHECK(ndr_pull_spoolss_DriverInfo101(ndr, NDR_SCALARS, &r->info101));
14415 break; }
14417 default: {
14418 break; }
14422 if (ndr_flags & NDR_BUFFERS) {
14423 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
14424 switch (level) {
14425 case 1:
14426 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr, NDR_BUFFERS, &r->info1));
14427 break;
14429 case 2:
14430 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr, NDR_BUFFERS, &r->info2));
14431 break;
14433 case 3:
14434 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr, NDR_BUFFERS, &r->info3));
14435 break;
14437 case 4:
14438 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr, NDR_BUFFERS, &r->info4));
14439 break;
14441 case 5:
14442 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr, NDR_BUFFERS, &r->info5));
14443 break;
14445 case 6:
14446 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr, NDR_BUFFERS, &r->info6));
14447 break;
14449 case 7:
14450 NDR_CHECK(ndr_pull_spoolss_DriverInfo7(ndr, NDR_BUFFERS, &r->info7));
14451 break;
14453 case 8:
14454 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr, NDR_BUFFERS, &r->info8));
14455 break;
14457 case 101:
14458 NDR_CHECK(ndr_pull_spoolss_DriverInfo101(ndr, NDR_BUFFERS, &r->info101));
14459 break;
14461 default:
14462 break;
14466 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
14467 return NDR_ERR_SUCCESS;
14470 _PUBLIC_ void ndr_print_spoolss_DriverInfo(struct ndr_print *ndr, const char *name, const union spoolss_DriverInfo *r)
14472 int level;
14473 level = ndr_print_get_switch_value(ndr, r);
14474 ndr_print_union(ndr, name, level, "spoolss_DriverInfo");
14475 switch (level) {
14476 case 1:
14477 ndr_print_spoolss_DriverInfo1(ndr, "info1", &r->info1);
14478 break;
14480 case 2:
14481 ndr_print_spoolss_DriverInfo2(ndr, "info2", &r->info2);
14482 break;
14484 case 3:
14485 ndr_print_spoolss_DriverInfo3(ndr, "info3", &r->info3);
14486 break;
14488 case 4:
14489 ndr_print_spoolss_DriverInfo4(ndr, "info4", &r->info4);
14490 break;
14492 case 5:
14493 ndr_print_spoolss_DriverInfo5(ndr, "info5", &r->info5);
14494 break;
14496 case 6:
14497 ndr_print_spoolss_DriverInfo6(ndr, "info6", &r->info6);
14498 break;
14500 case 7:
14501 ndr_print_spoolss_DriverInfo7(ndr, "info7", &r->info7);
14502 break;
14504 case 8:
14505 ndr_print_spoolss_DriverInfo8(ndr, "info8", &r->info8);
14506 break;
14508 case 101:
14509 ndr_print_spoolss_DriverInfo101(ndr, "info101", &r->info101);
14510 break;
14512 default:
14513 break;
14518 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo(const union spoolss_DriverInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
14520 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo, ic);
14523 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverDirectoryInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverDirectoryInfo1 *r)
14525 if (ndr_flags & NDR_SCALARS) {
14526 NDR_CHECK(ndr_push_align(ndr, 4));
14528 uint32_t _flags_save_string = ndr->flags;
14529 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14530 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->directory_name));
14531 ndr->flags = _flags_save_string;
14533 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
14535 if (ndr_flags & NDR_BUFFERS) {
14537 return NDR_ERR_SUCCESS;
14540 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverDirectoryInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverDirectoryInfo1 *r)
14542 if (ndr_flags & NDR_SCALARS) {
14543 NDR_CHECK(ndr_pull_align(ndr, 4));
14545 uint32_t _flags_save_string = ndr->flags;
14546 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14547 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->directory_name));
14548 ndr->flags = _flags_save_string;
14550 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
14552 if (ndr_flags & NDR_BUFFERS) {
14554 return NDR_ERR_SUCCESS;
14557 _PUBLIC_ void ndr_print_spoolss_DriverDirectoryInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DriverDirectoryInfo1 *r)
14559 ndr_print_struct(ndr, name, "spoolss_DriverDirectoryInfo1");
14560 ndr->depth++;
14561 ndr_print_string(ndr, "directory_name", r->directory_name);
14562 ndr->depth--;
14565 _PUBLIC_ size_t ndr_size_spoolss_DriverDirectoryInfo1(const struct spoolss_DriverDirectoryInfo1 *r, struct smb_iconv_convenience *ic, int flags)
14567 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverDirectoryInfo1, ic);
14570 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverDirectoryInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DriverDirectoryInfo *r)
14572 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
14573 if (ndr_flags & NDR_SCALARS) {
14574 int level = ndr_push_get_switch_value(ndr, r);
14575 NDR_CHECK(ndr_push_union_align(ndr, 4));
14576 switch (level) {
14577 case 1: {
14578 NDR_CHECK(ndr_push_align(ndr, 4));
14579 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14580 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14581 break; }
14583 default: {
14584 NDR_CHECK(ndr_push_align(ndr, 4));
14585 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14586 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14587 break; }
14591 if (ndr_flags & NDR_BUFFERS) {
14592 int level = ndr_push_get_switch_value(ndr, r);
14593 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
14594 switch (level) {
14595 case 1:
14596 break;
14598 default:
14599 break;
14603 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
14604 return NDR_ERR_SUCCESS;
14607 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverDirectoryInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DriverDirectoryInfo *r)
14609 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
14610 int level;
14611 level = ndr_pull_get_switch_value(ndr, r);
14612 if (ndr_flags & NDR_SCALARS) {
14613 NDR_CHECK(ndr_pull_union_align(ndr, 4));
14614 switch (level) {
14615 case 1: {
14616 NDR_CHECK(ndr_pull_align(ndr, 4));
14617 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14618 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14619 break; }
14621 default: {
14622 NDR_CHECK(ndr_pull_align(ndr, 4));
14623 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14624 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14625 break; }
14629 if (ndr_flags & NDR_BUFFERS) {
14630 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
14631 switch (level) {
14632 case 1:
14633 break;
14635 default:
14636 break;
14640 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
14641 return NDR_ERR_SUCCESS;
14644 _PUBLIC_ void ndr_print_spoolss_DriverDirectoryInfo(struct ndr_print *ndr, const char *name, const union spoolss_DriverDirectoryInfo *r)
14646 int level;
14647 level = ndr_print_get_switch_value(ndr, r);
14648 ndr_print_union(ndr, name, level, "spoolss_DriverDirectoryInfo");
14649 switch (level) {
14650 case 1:
14651 ndr_print_spoolss_DriverDirectoryInfo1(ndr, "info1", &r->info1);
14652 break;
14654 default:
14655 ndr_print_spoolss_DriverDirectoryInfo1(ndr, "info1", &r->info1);
14656 break;
14661 _PUBLIC_ size_t ndr_size_spoolss_DriverDirectoryInfo(const union spoolss_DriverDirectoryInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
14663 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverDirectoryInfo, ic);
14666 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcessorInfo1 *r)
14668 if (ndr_flags & NDR_SCALARS) {
14669 NDR_CHECK(ndr_push_align(ndr, 5));
14671 uint32_t _flags_save_string = ndr->flags;
14672 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14673 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor_name));
14674 ndr->flags = _flags_save_string;
14676 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
14678 if (ndr_flags & NDR_BUFFERS) {
14680 uint32_t _flags_save_string = ndr->flags;
14681 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14682 if (r->print_processor_name) {
14683 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->print_processor_name));
14684 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor_name));
14686 ndr->flags = _flags_save_string;
14689 return NDR_ERR_SUCCESS;
14692 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcessorInfo1 *r)
14694 uint32_t _ptr_print_processor_name;
14695 TALLOC_CTX *_mem_save_print_processor_name_0;
14696 if (ndr_flags & NDR_SCALARS) {
14697 NDR_CHECK(ndr_pull_align(ndr, 5));
14699 uint32_t _flags_save_string = ndr->flags;
14700 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14701 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor_name));
14702 if (_ptr_print_processor_name) {
14703 NDR_PULL_ALLOC(ndr, r->print_processor_name);
14704 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor_name, _ptr_print_processor_name));
14705 } else {
14706 r->print_processor_name = NULL;
14708 ndr->flags = _flags_save_string;
14710 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
14712 if (ndr_flags & NDR_BUFFERS) {
14714 uint32_t _flags_save_string = ndr->flags;
14715 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14716 if (r->print_processor_name) {
14717 uint32_t _relative_save_offset;
14718 _relative_save_offset = ndr->offset;
14719 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor_name));
14720 _mem_save_print_processor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14721 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor_name, 0);
14722 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor_name));
14723 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_name_0, 0);
14724 ndr->offset = _relative_save_offset;
14726 ndr->flags = _flags_save_string;
14729 return NDR_ERR_SUCCESS;
14732 _PUBLIC_ void ndr_print_spoolss_PrintProcessorInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcessorInfo1 *r)
14734 ndr_print_struct(ndr, name, "spoolss_PrintProcessorInfo1");
14735 ndr->depth++;
14736 ndr_print_ptr(ndr, "print_processor_name", r->print_processor_name);
14737 ndr->depth++;
14738 if (r->print_processor_name) {
14739 ndr_print_string(ndr, "print_processor_name", r->print_processor_name);
14741 ndr->depth--;
14742 ndr->depth--;
14745 _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorInfo1(const struct spoolss_PrintProcessorInfo1 *r, struct smb_iconv_convenience *ic, int flags)
14747 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorInfo1, ic);
14750 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcessorInfo *r)
14752 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
14753 if (ndr_flags & NDR_SCALARS) {
14754 int level = ndr_push_get_switch_value(ndr, r);
14755 NDR_CHECK(ndr_push_union_align(ndr, 5));
14756 switch (level) {
14757 case 1: {
14758 NDR_CHECK(ndr_push_align(ndr, 5));
14759 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14760 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr, NDR_SCALARS, &r->info1));
14761 break; }
14763 default: {
14764 break; }
14768 if (ndr_flags & NDR_BUFFERS) {
14769 int level = ndr_push_get_switch_value(ndr, r);
14770 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
14771 switch (level) {
14772 case 1:
14773 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr, NDR_BUFFERS, &r->info1));
14774 break;
14776 default:
14777 break;
14781 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
14782 return NDR_ERR_SUCCESS;
14785 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcessorInfo *r)
14787 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
14788 int level;
14789 level = ndr_pull_get_switch_value(ndr, r);
14790 if (ndr_flags & NDR_SCALARS) {
14791 NDR_CHECK(ndr_pull_union_align(ndr, 5));
14792 switch (level) {
14793 case 1: {
14794 NDR_CHECK(ndr_pull_align(ndr, 5));
14795 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14796 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr, NDR_SCALARS, &r->info1));
14797 break; }
14799 default: {
14800 break; }
14804 if (ndr_flags & NDR_BUFFERS) {
14805 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
14806 switch (level) {
14807 case 1:
14808 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr, NDR_BUFFERS, &r->info1));
14809 break;
14811 default:
14812 break;
14816 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
14817 return NDR_ERR_SUCCESS;
14820 _PUBLIC_ void ndr_print_spoolss_PrintProcessorInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcessorInfo *r)
14822 int level;
14823 level = ndr_print_get_switch_value(ndr, r);
14824 ndr_print_union(ndr, name, level, "spoolss_PrintProcessorInfo");
14825 switch (level) {
14826 case 1:
14827 ndr_print_spoolss_PrintProcessorInfo1(ndr, "info1", &r->info1);
14828 break;
14830 default:
14831 break;
14836 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorDirectoryInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcessorDirectoryInfo1 *r)
14838 if (ndr_flags & NDR_SCALARS) {
14839 NDR_CHECK(ndr_push_align(ndr, 4));
14841 uint32_t _flags_save_string = ndr->flags;
14842 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14843 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->directory_name));
14844 ndr->flags = _flags_save_string;
14846 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
14848 if (ndr_flags & NDR_BUFFERS) {
14850 return NDR_ERR_SUCCESS;
14853 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorDirectoryInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcessorDirectoryInfo1 *r)
14855 if (ndr_flags & NDR_SCALARS) {
14856 NDR_CHECK(ndr_pull_align(ndr, 4));
14858 uint32_t _flags_save_string = ndr->flags;
14859 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14860 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->directory_name));
14861 ndr->flags = _flags_save_string;
14863 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
14865 if (ndr_flags & NDR_BUFFERS) {
14867 return NDR_ERR_SUCCESS;
14870 _PUBLIC_ void ndr_print_spoolss_PrintProcessorDirectoryInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcessorDirectoryInfo1 *r)
14872 ndr_print_struct(ndr, name, "spoolss_PrintProcessorDirectoryInfo1");
14873 ndr->depth++;
14874 ndr_print_string(ndr, "directory_name", r->directory_name);
14875 ndr->depth--;
14878 _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorDirectoryInfo1(const struct spoolss_PrintProcessorDirectoryInfo1 *r, struct smb_iconv_convenience *ic, int flags)
14880 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorDirectoryInfo1, ic);
14883 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorDirectoryInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcessorDirectoryInfo *r)
14885 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
14886 if (ndr_flags & NDR_SCALARS) {
14887 int level = ndr_push_get_switch_value(ndr, r);
14888 NDR_CHECK(ndr_push_union_align(ndr, 4));
14889 switch (level) {
14890 case 1: {
14891 NDR_CHECK(ndr_push_align(ndr, 4));
14892 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14893 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14894 break; }
14896 default: {
14897 NDR_CHECK(ndr_push_align(ndr, 4));
14898 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14899 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14900 break; }
14904 if (ndr_flags & NDR_BUFFERS) {
14905 int level = ndr_push_get_switch_value(ndr, r);
14906 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
14907 switch (level) {
14908 case 1:
14909 break;
14911 default:
14912 break;
14916 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
14917 return NDR_ERR_SUCCESS;
14920 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorDirectoryInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcessorDirectoryInfo *r)
14922 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
14923 int level;
14924 level = ndr_pull_get_switch_value(ndr, r);
14925 if (ndr_flags & NDR_SCALARS) {
14926 NDR_CHECK(ndr_pull_union_align(ndr, 4));
14927 switch (level) {
14928 case 1: {
14929 NDR_CHECK(ndr_pull_align(ndr, 4));
14930 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14931 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14932 break; }
14934 default: {
14935 NDR_CHECK(ndr_pull_align(ndr, 4));
14936 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14937 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14938 break; }
14942 if (ndr_flags & NDR_BUFFERS) {
14943 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
14944 switch (level) {
14945 case 1:
14946 break;
14948 default:
14949 break;
14953 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
14954 return NDR_ERR_SUCCESS;
14957 _PUBLIC_ void ndr_print_spoolss_PrintProcessorDirectoryInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcessorDirectoryInfo *r)
14959 int level;
14960 level = ndr_print_get_switch_value(ndr, r);
14961 ndr_print_union(ndr, name, level, "spoolss_PrintProcessorDirectoryInfo");
14962 switch (level) {
14963 case 1:
14964 ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr, "info1", &r->info1);
14965 break;
14967 default:
14968 ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr, "info1", &r->info1);
14969 break;
14974 _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorDirectoryInfo(const union spoolss_PrintProcessorDirectoryInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
14976 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorDirectoryInfo, ic);
14979 static enum ndr_err_code ndr_push_spoolss_DocumentInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DocumentInfo1 *r)
14981 if (ndr_flags & NDR_SCALARS) {
14982 NDR_CHECK(ndr_push_align(ndr, 5));
14983 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
14984 NDR_CHECK(ndr_push_unique_ptr(ndr, r->output_file));
14985 NDR_CHECK(ndr_push_unique_ptr(ndr, r->datatype));
14986 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
14988 if (ndr_flags & NDR_BUFFERS) {
14989 if (r->document_name) {
14990 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
14991 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
14992 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
14993 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14995 if (r->output_file) {
14996 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->output_file, CH_UTF16)));
14997 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
14998 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->output_file, CH_UTF16)));
14999 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->output_file, ndr_charset_length(r->output_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15001 if (r->datatype) {
15002 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
15003 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
15004 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
15005 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->datatype, ndr_charset_length(r->datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15008 return NDR_ERR_SUCCESS;
15011 static enum ndr_err_code ndr_pull_spoolss_DocumentInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DocumentInfo1 *r)
15013 uint32_t _ptr_document_name;
15014 TALLOC_CTX *_mem_save_document_name_0;
15015 uint32_t _ptr_output_file;
15016 TALLOC_CTX *_mem_save_output_file_0;
15017 uint32_t _ptr_datatype;
15018 TALLOC_CTX *_mem_save_datatype_0;
15019 if (ndr_flags & NDR_SCALARS) {
15020 NDR_CHECK(ndr_pull_align(ndr, 5));
15021 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
15022 if (_ptr_document_name) {
15023 NDR_PULL_ALLOC(ndr, r->document_name);
15024 } else {
15025 r->document_name = NULL;
15027 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_output_file));
15028 if (_ptr_output_file) {
15029 NDR_PULL_ALLOC(ndr, r->output_file);
15030 } else {
15031 r->output_file = NULL;
15033 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
15034 if (_ptr_datatype) {
15035 NDR_PULL_ALLOC(ndr, r->datatype);
15036 } else {
15037 r->datatype = NULL;
15039 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
15041 if (ndr_flags & NDR_BUFFERS) {
15042 if (r->document_name) {
15043 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15044 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
15045 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
15046 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
15047 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
15048 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->document_name), ndr_get_array_length(ndr, &r->document_name));
15050 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
15051 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
15052 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
15054 if (r->output_file) {
15055 _mem_save_output_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
15056 NDR_PULL_SET_MEM_CTX(ndr, r->output_file, 0);
15057 NDR_CHECK(ndr_pull_array_size(ndr, &r->output_file));
15058 NDR_CHECK(ndr_pull_array_length(ndr, &r->output_file));
15059 if (ndr_get_array_length(ndr, &r->output_file) > ndr_get_array_size(ndr, &r->output_file)) {
15060 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->output_file), ndr_get_array_length(ndr, &r->output_file));
15062 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->output_file), sizeof(uint16_t)));
15063 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->output_file, ndr_get_array_length(ndr, &r->output_file), sizeof(uint16_t), CH_UTF16));
15064 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_output_file_0, 0);
15066 if (r->datatype) {
15067 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
15068 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
15069 NDR_CHECK(ndr_pull_array_size(ndr, &r->datatype));
15070 NDR_CHECK(ndr_pull_array_length(ndr, &r->datatype));
15071 if (ndr_get_array_length(ndr, &r->datatype) > ndr_get_array_size(ndr, &r->datatype)) {
15072 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->datatype), ndr_get_array_length(ndr, &r->datatype));
15074 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t)));
15075 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->datatype, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t), CH_UTF16));
15076 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
15079 return NDR_ERR_SUCCESS;
15082 _PUBLIC_ void ndr_print_spoolss_DocumentInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DocumentInfo1 *r)
15084 ndr_print_struct(ndr, name, "spoolss_DocumentInfo1");
15085 ndr->depth++;
15086 ndr_print_ptr(ndr, "document_name", r->document_name);
15087 ndr->depth++;
15088 if (r->document_name) {
15089 ndr_print_string(ndr, "document_name", r->document_name);
15091 ndr->depth--;
15092 ndr_print_ptr(ndr, "output_file", r->output_file);
15093 ndr->depth++;
15094 if (r->output_file) {
15095 ndr_print_string(ndr, "output_file", r->output_file);
15097 ndr->depth--;
15098 ndr_print_ptr(ndr, "datatype", r->datatype);
15099 ndr->depth++;
15100 if (r->datatype) {
15101 ndr_print_string(ndr, "datatype", r->datatype);
15103 ndr->depth--;
15104 ndr->depth--;
15107 static enum ndr_err_code ndr_push_spoolss_DocumentInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DocumentInfo *r)
15109 if (ndr_flags & NDR_SCALARS) {
15110 int level = ndr_push_get_switch_value(ndr, r);
15111 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
15112 NDR_CHECK(ndr_push_union_align(ndr, 5));
15113 switch (level) {
15114 case 1: {
15115 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
15116 break; }
15118 case 2: {
15119 break; }
15121 case 3: {
15122 break; }
15124 default: {
15125 break; }
15129 if (ndr_flags & NDR_BUFFERS) {
15130 int level = ndr_push_get_switch_value(ndr, r);
15131 switch (level) {
15132 case 1:
15133 if (r->info1) {
15134 NDR_CHECK(ndr_push_spoolss_DocumentInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
15136 break;
15138 case 2:
15139 break;
15141 case 3:
15142 break;
15144 default:
15145 break;
15149 return NDR_ERR_SUCCESS;
15152 static enum ndr_err_code ndr_pull_spoolss_DocumentInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DocumentInfo *r)
15154 int level;
15155 uint32_t _level;
15156 TALLOC_CTX *_mem_save_info1_0;
15157 level = ndr_pull_get_switch_value(ndr, r);
15158 if (ndr_flags & NDR_SCALARS) {
15159 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
15160 if (_level != level) {
15161 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
15163 NDR_CHECK(ndr_pull_union_align(ndr, 5));
15164 switch (level) {
15165 case 1: {
15166 uint32_t _ptr_info1;
15167 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
15168 if (_ptr_info1) {
15169 NDR_PULL_ALLOC(ndr, r->info1);
15170 } else {
15171 r->info1 = NULL;
15173 break; }
15175 case 2: {
15176 break; }
15178 case 3: {
15179 break; }
15181 default: {
15182 break; }
15186 if (ndr_flags & NDR_BUFFERS) {
15187 switch (level) {
15188 case 1:
15189 if (r->info1) {
15190 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
15191 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
15192 NDR_CHECK(ndr_pull_spoolss_DocumentInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
15193 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
15195 break;
15197 case 2:
15198 break;
15200 case 3:
15201 break;
15203 default:
15204 break;
15208 return NDR_ERR_SUCCESS;
15211 _PUBLIC_ void ndr_print_spoolss_DocumentInfo(struct ndr_print *ndr, const char *name, const union spoolss_DocumentInfo *r)
15213 int level;
15214 level = ndr_print_get_switch_value(ndr, r);
15215 ndr_print_union(ndr, name, level, "spoolss_DocumentInfo");
15216 switch (level) {
15217 case 1:
15218 ndr_print_ptr(ndr, "info1", r->info1);
15219 ndr->depth++;
15220 if (r->info1) {
15221 ndr_print_spoolss_DocumentInfo1(ndr, "info1", r->info1);
15223 ndr->depth--;
15224 break;
15226 case 2:
15227 break;
15229 case 3:
15230 break;
15232 default:
15233 break;
15238 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OSVersion(struct ndr_push *ndr, int ndr_flags, const struct spoolss_OSVersion *r)
15240 if (ndr_flags & NDR_SCALARS) {
15241 NDR_CHECK(ndr_push_align(ndr, 4));
15242 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_OSVersion(r, ndr->iconv_convenience, ndr->flags)));
15243 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->major));
15244 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minor));
15245 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
15246 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
15248 uint32_t _flags_save_string = ndr->flags;
15249 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15251 struct ndr_push *_ndr_extra_string;
15252 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
15253 NDR_CHECK(ndr_push_string(_ndr_extra_string, NDR_SCALARS, r->extra_string));
15254 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_extra_string, 0, 256));
15256 ndr->flags = _flags_save_string;
15258 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
15260 if (ndr_flags & NDR_BUFFERS) {
15262 return NDR_ERR_SUCCESS;
15265 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OSVersion(struct ndr_pull *ndr, int ndr_flags, struct spoolss_OSVersion *r)
15267 if (ndr_flags & NDR_SCALARS) {
15268 NDR_CHECK(ndr_pull_align(ndr, 4));
15269 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
15270 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->major));
15271 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minor));
15272 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
15273 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->platform_id));
15275 uint32_t _flags_save_string = ndr->flags;
15276 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15278 struct ndr_pull *_ndr_extra_string;
15279 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
15280 NDR_CHECK(ndr_pull_string(_ndr_extra_string, NDR_SCALARS, &r->extra_string));
15281 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_extra_string, 0, 256));
15283 ndr->flags = _flags_save_string;
15285 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
15287 if (ndr_flags & NDR_BUFFERS) {
15289 return NDR_ERR_SUCCESS;
15292 _PUBLIC_ void ndr_print_spoolss_OSVersion(struct ndr_print *ndr, const char *name, const struct spoolss_OSVersion *r)
15294 ndr_print_struct(ndr, name, "spoolss_OSVersion");
15295 ndr->depth++;
15296 ndr_print_uint32(ndr, "_ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_spoolss_OSVersion(r, ndr->iconv_convenience, ndr->flags):r->_ndr_size);
15297 ndr_print_uint32(ndr, "major", r->major);
15298 ndr_print_uint32(ndr, "minor", r->minor);
15299 ndr_print_uint32(ndr, "build", r->build);
15300 ndr_print_uint32(ndr, "platform_id", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->platform_id);
15301 ndr_print_string(ndr, "extra_string", r->extra_string);
15302 ndr->depth--;
15305 _PUBLIC_ size_t ndr_size_spoolss_OSVersion(const struct spoolss_OSVersion *r, struct smb_iconv_convenience *ic, int flags)
15307 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_OSVersion, ic);
15310 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OSVersionEx(struct ndr_push *ndr, int ndr_flags, const struct spoolss_OSVersionEx *r)
15312 if (ndr_flags & NDR_SCALARS) {
15313 NDR_CHECK(ndr_push_align(ndr, 4));
15314 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_OSVersionEx(r, ndr->iconv_convenience, ndr->flags)));
15315 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->major));
15316 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minor));
15317 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
15318 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
15320 uint32_t _flags_save_string = ndr->flags;
15321 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15323 struct ndr_push *_ndr_extra_string;
15324 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
15325 NDR_CHECK(ndr_push_string(_ndr_extra_string, NDR_SCALARS, r->extra_string));
15326 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_extra_string, 0, 256));
15328 ndr->flags = _flags_save_string;
15330 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->service_pack_major));
15331 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->service_pack_minor));
15332 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->suite_mask));
15333 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->product_type));
15334 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->reserved));
15335 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
15337 if (ndr_flags & NDR_BUFFERS) {
15339 return NDR_ERR_SUCCESS;
15342 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OSVersionEx(struct ndr_pull *ndr, int ndr_flags, struct spoolss_OSVersionEx *r)
15344 if (ndr_flags & NDR_SCALARS) {
15345 NDR_CHECK(ndr_pull_align(ndr, 4));
15346 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
15347 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->major));
15348 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minor));
15349 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
15350 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->platform_id));
15352 uint32_t _flags_save_string = ndr->flags;
15353 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15355 struct ndr_pull *_ndr_extra_string;
15356 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
15357 NDR_CHECK(ndr_pull_string(_ndr_extra_string, NDR_SCALARS, &r->extra_string));
15358 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_extra_string, 0, 256));
15360 ndr->flags = _flags_save_string;
15362 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->service_pack_major));
15363 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->service_pack_minor));
15364 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->suite_mask));
15365 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->product_type));
15366 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->reserved));
15367 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
15369 if (ndr_flags & NDR_BUFFERS) {
15371 return NDR_ERR_SUCCESS;
15374 _PUBLIC_ void ndr_print_spoolss_OSVersionEx(struct ndr_print *ndr, const char *name, const struct spoolss_OSVersionEx *r)
15376 ndr_print_struct(ndr, name, "spoolss_OSVersionEx");
15377 ndr->depth++;
15378 ndr_print_uint32(ndr, "_ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_spoolss_OSVersionEx(r, ndr->iconv_convenience, ndr->flags):r->_ndr_size);
15379 ndr_print_uint32(ndr, "major", r->major);
15380 ndr_print_uint32(ndr, "minor", r->minor);
15381 ndr_print_uint32(ndr, "build", r->build);
15382 ndr_print_uint32(ndr, "platform_id", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->platform_id);
15383 ndr_print_string(ndr, "extra_string", r->extra_string);
15384 ndr_print_uint16(ndr, "service_pack_major", r->service_pack_major);
15385 ndr_print_uint16(ndr, "service_pack_minor", r->service_pack_minor);
15386 ndr_print_uint16(ndr, "suite_mask", r->suite_mask);
15387 ndr_print_uint8(ndr, "product_type", r->product_type);
15388 ndr_print_uint8(ndr, "reserved", r->reserved);
15389 ndr->depth--;
15392 _PUBLIC_ size_t ndr_size_spoolss_OSVersionEx(const struct spoolss_OSVersionEx *r, struct smb_iconv_convenience *ic, int flags)
15394 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_OSVersionEx, ic);
15397 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterData(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrinterData *r)
15399 if (ndr_flags & NDR_SCALARS) {
15400 int level = ndr_push_get_switch_value(ndr, r);
15401 NDR_CHECK(ndr_push_union_align(ndr, 4));
15402 switch (level) {
15403 case REG_NONE: {
15404 break; }
15406 case REG_SZ: {
15408 uint32_t _flags_save_string = ndr->flags;
15409 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15410 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->string));
15411 ndr->flags = _flags_save_string;
15413 break; }
15415 case REG_BINARY: {
15417 uint32_t _flags_save_DATA_BLOB = ndr->flags;
15418 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
15419 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->binary));
15420 ndr->flags = _flags_save_DATA_BLOB;
15422 break; }
15424 case REG_DWORD: {
15425 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->value));
15426 break; }
15428 case REG_MULTI_SZ: {
15430 uint32_t _flags_save_string_array = ndr->flags;
15431 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15432 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string_array));
15433 ndr->flags = _flags_save_string_array;
15435 break; }
15437 default: {
15439 uint32_t _flags_save_DATA_BLOB = ndr->flags;
15440 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
15441 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->data));
15442 ndr->flags = _flags_save_DATA_BLOB;
15444 break; }
15448 if (ndr_flags & NDR_BUFFERS) {
15449 int level = ndr_push_get_switch_value(ndr, r);
15450 switch (level) {
15451 case REG_NONE:
15452 break;
15454 case REG_SZ:
15455 break;
15457 case REG_BINARY:
15458 break;
15460 case REG_DWORD:
15461 break;
15463 case REG_MULTI_SZ:
15464 break;
15466 default:
15467 break;
15471 return NDR_ERR_SUCCESS;
15474 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterData(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrinterData *r)
15476 int level;
15477 level = ndr_pull_get_switch_value(ndr, r);
15478 if (ndr_flags & NDR_SCALARS) {
15479 NDR_CHECK(ndr_pull_union_align(ndr, 4));
15480 switch (level) {
15481 case REG_NONE: {
15482 break; }
15484 case REG_SZ: {
15486 uint32_t _flags_save_string = ndr->flags;
15487 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15488 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->string));
15489 ndr->flags = _flags_save_string;
15491 break; }
15493 case REG_BINARY: {
15495 uint32_t _flags_save_DATA_BLOB = ndr->flags;
15496 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
15497 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->binary));
15498 ndr->flags = _flags_save_DATA_BLOB;
15500 break; }
15502 case REG_DWORD: {
15503 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->value));
15504 break; }
15506 case REG_MULTI_SZ: {
15508 uint32_t _flags_save_string_array = ndr->flags;
15509 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15510 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string_array));
15511 ndr->flags = _flags_save_string_array;
15513 break; }
15515 default: {
15517 uint32_t _flags_save_DATA_BLOB = ndr->flags;
15518 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
15519 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->data));
15520 ndr->flags = _flags_save_DATA_BLOB;
15522 break; }
15526 if (ndr_flags & NDR_BUFFERS) {
15527 switch (level) {
15528 case REG_NONE:
15529 break;
15531 case REG_SZ:
15532 break;
15534 case REG_BINARY:
15535 break;
15537 case REG_DWORD:
15538 break;
15540 case REG_MULTI_SZ:
15541 break;
15543 default:
15544 break;
15548 return NDR_ERR_SUCCESS;
15551 _PUBLIC_ void ndr_print_spoolss_PrinterData(struct ndr_print *ndr, const char *name, const union spoolss_PrinterData *r)
15553 int level;
15554 level = ndr_print_get_switch_value(ndr, r);
15555 ndr_print_union(ndr, name, level, "spoolss_PrinterData");
15556 switch (level) {
15557 case REG_NONE:
15558 break;
15560 case REG_SZ:
15561 ndr_print_string(ndr, "string", r->string);
15562 break;
15564 case REG_BINARY:
15565 ndr_print_DATA_BLOB(ndr, "binary", r->binary);
15566 break;
15568 case REG_DWORD:
15569 ndr_print_uint32(ndr, "value", r->value);
15570 break;
15572 case REG_MULTI_SZ:
15573 ndr_print_string_array(ndr, "string_array", r->string_array);
15574 break;
15576 default:
15577 ndr_print_DATA_BLOB(ndr, "data", r->data);
15578 break;
15583 static enum ndr_err_code ndr_push_spoolss_FormFlags(struct ndr_push *ndr, int ndr_flags, enum spoolss_FormFlags r)
15585 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
15586 return NDR_ERR_SUCCESS;
15589 static enum ndr_err_code ndr_pull_spoolss_FormFlags(struct ndr_pull *ndr, int ndr_flags, enum spoolss_FormFlags *r)
15591 uint32_t v;
15592 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
15593 *r = v;
15594 return NDR_ERR_SUCCESS;
15597 _PUBLIC_ void ndr_print_spoolss_FormFlags(struct ndr_print *ndr, const char *name, enum spoolss_FormFlags r)
15599 const char *val = NULL;
15601 switch (r) {
15602 case SPOOLSS_FORM_USER: val = "SPOOLSS_FORM_USER"; break;
15603 case SPOOLSS_FORM_BUILTIN: val = "SPOOLSS_FORM_BUILTIN"; break;
15604 case SPOOLSS_FORM_PRINTER: val = "SPOOLSS_FORM_PRINTER"; break;
15606 ndr_print_enum(ndr, name, "ENUM", val, r);
15609 static enum ndr_err_code ndr_push_spoolss_FormSize(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormSize *r)
15611 if (ndr_flags & NDR_SCALARS) {
15612 NDR_CHECK(ndr_push_align(ndr, 4));
15613 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->width));
15614 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->height));
15615 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
15617 if (ndr_flags & NDR_BUFFERS) {
15619 return NDR_ERR_SUCCESS;
15622 static enum ndr_err_code ndr_pull_spoolss_FormSize(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormSize *r)
15624 if (ndr_flags & NDR_SCALARS) {
15625 NDR_CHECK(ndr_pull_align(ndr, 4));
15626 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->width));
15627 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->height));
15628 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
15630 if (ndr_flags & NDR_BUFFERS) {
15632 return NDR_ERR_SUCCESS;
15635 _PUBLIC_ void ndr_print_spoolss_FormSize(struct ndr_print *ndr, const char *name, const struct spoolss_FormSize *r)
15637 ndr_print_struct(ndr, name, "spoolss_FormSize");
15638 ndr->depth++;
15639 ndr_print_uint32(ndr, "width", r->width);
15640 ndr_print_uint32(ndr, "height", r->height);
15641 ndr->depth--;
15644 static enum ndr_err_code ndr_push_spoolss_FormArea(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormArea *r)
15646 if (ndr_flags & NDR_SCALARS) {
15647 NDR_CHECK(ndr_push_align(ndr, 4));
15648 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->left));
15649 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->top));
15650 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->right));
15651 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bottom));
15652 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
15654 if (ndr_flags & NDR_BUFFERS) {
15656 return NDR_ERR_SUCCESS;
15659 static enum ndr_err_code ndr_pull_spoolss_FormArea(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormArea *r)
15661 if (ndr_flags & NDR_SCALARS) {
15662 NDR_CHECK(ndr_pull_align(ndr, 4));
15663 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->left));
15664 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->top));
15665 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->right));
15666 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bottom));
15667 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
15669 if (ndr_flags & NDR_BUFFERS) {
15671 return NDR_ERR_SUCCESS;
15674 _PUBLIC_ void ndr_print_spoolss_FormArea(struct ndr_print *ndr, const char *name, const struct spoolss_FormArea *r)
15676 ndr_print_struct(ndr, name, "spoolss_FormArea");
15677 ndr->depth++;
15678 ndr_print_uint32(ndr, "left", r->left);
15679 ndr_print_uint32(ndr, "top", r->top);
15680 ndr_print_uint32(ndr, "right", r->right);
15681 ndr_print_uint32(ndr, "bottom", r->bottom);
15682 ndr->depth--;
15685 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormInfo1 *r)
15687 if (ndr_flags & NDR_SCALARS) {
15688 NDR_CHECK(ndr_push_align(ndr, 5));
15689 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
15691 uint32_t _flags_save_string = ndr->flags;
15692 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15693 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->form_name));
15694 ndr->flags = _flags_save_string;
15696 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15697 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15698 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
15700 if (ndr_flags & NDR_BUFFERS) {
15702 uint32_t _flags_save_string = ndr->flags;
15703 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15704 if (r->form_name) {
15705 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->form_name));
15706 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->form_name));
15708 ndr->flags = _flags_save_string;
15711 return NDR_ERR_SUCCESS;
15714 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormInfo1 *r)
15716 uint32_t _ptr_form_name;
15717 TALLOC_CTX *_mem_save_form_name_0;
15718 if (ndr_flags & NDR_SCALARS) {
15719 NDR_CHECK(ndr_pull_align(ndr, 5));
15720 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
15722 uint32_t _flags_save_string = ndr->flags;
15723 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15724 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
15725 if (_ptr_form_name) {
15726 NDR_PULL_ALLOC(ndr, r->form_name);
15727 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->form_name, _ptr_form_name));
15728 } else {
15729 r->form_name = NULL;
15731 ndr->flags = _flags_save_string;
15733 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15734 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15735 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
15737 if (ndr_flags & NDR_BUFFERS) {
15739 uint32_t _flags_save_string = ndr->flags;
15740 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15741 if (r->form_name) {
15742 uint32_t _relative_save_offset;
15743 _relative_save_offset = ndr->offset;
15744 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->form_name));
15745 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15746 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
15747 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->form_name));
15748 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
15749 ndr->offset = _relative_save_offset;
15751 ndr->flags = _flags_save_string;
15754 return NDR_ERR_SUCCESS;
15757 _PUBLIC_ void ndr_print_spoolss_FormInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_FormInfo1 *r)
15759 ndr_print_struct(ndr, name, "spoolss_FormInfo1");
15760 ndr->depth++;
15761 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
15762 ndr_print_ptr(ndr, "form_name", r->form_name);
15763 ndr->depth++;
15764 if (r->form_name) {
15765 ndr_print_string(ndr, "form_name", r->form_name);
15767 ndr->depth--;
15768 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
15769 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
15770 ndr->depth--;
15773 _PUBLIC_ size_t ndr_size_spoolss_FormInfo1(const struct spoolss_FormInfo1 *r, struct smb_iconv_convenience *ic, int flags)
15775 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo1, ic);
15778 static enum ndr_err_code ndr_push_spoolss_FormStringType(struct ndr_push *ndr, int ndr_flags, uint32_t r)
15780 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
15781 return NDR_ERR_SUCCESS;
15784 static enum ndr_err_code ndr_pull_spoolss_FormStringType(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
15786 uint32_t v;
15787 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
15788 *r = v;
15789 return NDR_ERR_SUCCESS;
15792 _PUBLIC_ void ndr_print_spoolss_FormStringType(struct ndr_print *ndr, const char *name, uint32_t r)
15794 ndr_print_uint32(ndr, name, r);
15795 ndr->depth++;
15796 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_NONE", SPOOLSS_FORM_STRING_TYPE_NONE, r);
15797 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_MUI_DLL", SPOOLSS_FORM_STRING_TYPE_MUI_DLL, r);
15798 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_LANG_PAIR", SPOOLSS_FORM_STRING_TYPE_LANG_PAIR, r);
15799 ndr->depth--;
15802 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormInfo2 *r)
15804 if (ndr_flags & NDR_SCALARS) {
15805 NDR_CHECK(ndr_push_align(ndr, 5));
15806 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
15808 uint32_t _flags_save_string = ndr->flags;
15809 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15810 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->form_name));
15811 ndr->flags = _flags_save_string;
15813 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15814 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15816 uint32_t _flags_save_string = ndr->flags;
15817 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
15818 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->keyword));
15819 ndr->flags = _flags_save_string;
15821 NDR_CHECK(ndr_push_spoolss_FormStringType(ndr, NDR_SCALARS, r->string_type));
15823 uint32_t _flags_save_string = ndr->flags;
15824 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15825 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->mui_dll));
15826 ndr->flags = _flags_save_string;
15828 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ressource_id));
15830 uint32_t _flags_save_string = ndr->flags;
15831 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15832 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->display_name));
15833 ndr->flags = _flags_save_string;
15835 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lang_id));
15836 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->unused));
15837 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
15839 if (ndr_flags & NDR_BUFFERS) {
15841 uint32_t _flags_save_string = ndr->flags;
15842 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15843 if (r->form_name) {
15844 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->form_name));
15845 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->form_name));
15847 ndr->flags = _flags_save_string;
15850 uint32_t _flags_save_string = ndr->flags;
15851 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
15852 if (r->keyword) {
15853 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->keyword));
15854 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->keyword));
15856 ndr->flags = _flags_save_string;
15859 uint32_t _flags_save_string = ndr->flags;
15860 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15861 if (r->mui_dll) {
15862 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->mui_dll));
15863 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->mui_dll));
15865 ndr->flags = _flags_save_string;
15868 uint32_t _flags_save_string = ndr->flags;
15869 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15870 if (r->display_name) {
15871 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->display_name));
15872 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->display_name));
15874 ndr->flags = _flags_save_string;
15877 return NDR_ERR_SUCCESS;
15880 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormInfo2 *r)
15882 uint32_t _ptr_form_name;
15883 TALLOC_CTX *_mem_save_form_name_0;
15884 uint32_t _ptr_keyword;
15885 TALLOC_CTX *_mem_save_keyword_0;
15886 uint32_t _ptr_mui_dll;
15887 TALLOC_CTX *_mem_save_mui_dll_0;
15888 uint32_t _ptr_display_name;
15889 TALLOC_CTX *_mem_save_display_name_0;
15890 if (ndr_flags & NDR_SCALARS) {
15891 NDR_CHECK(ndr_pull_align(ndr, 5));
15892 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
15894 uint32_t _flags_save_string = ndr->flags;
15895 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15896 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
15897 if (_ptr_form_name) {
15898 NDR_PULL_ALLOC(ndr, r->form_name);
15899 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->form_name, _ptr_form_name));
15900 } else {
15901 r->form_name = NULL;
15903 ndr->flags = _flags_save_string;
15905 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15906 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15908 uint32_t _flags_save_string = ndr->flags;
15909 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
15910 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyword));
15911 if (_ptr_keyword) {
15912 NDR_PULL_ALLOC(ndr, r->keyword);
15913 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->keyword, _ptr_keyword));
15914 } else {
15915 r->keyword = NULL;
15917 ndr->flags = _flags_save_string;
15919 NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr, NDR_SCALARS, &r->string_type));
15921 uint32_t _flags_save_string = ndr->flags;
15922 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15923 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_mui_dll));
15924 if (_ptr_mui_dll) {
15925 NDR_PULL_ALLOC(ndr, r->mui_dll);
15926 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->mui_dll, _ptr_mui_dll));
15927 } else {
15928 r->mui_dll = NULL;
15930 ndr->flags = _flags_save_string;
15932 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ressource_id));
15934 uint32_t _flags_save_string = ndr->flags;
15935 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15936 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_display_name));
15937 if (_ptr_display_name) {
15938 NDR_PULL_ALLOC(ndr, r->display_name);
15939 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->display_name, _ptr_display_name));
15940 } else {
15941 r->display_name = NULL;
15943 ndr->flags = _flags_save_string;
15945 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lang_id));
15946 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->unused));
15947 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
15949 if (ndr_flags & NDR_BUFFERS) {
15951 uint32_t _flags_save_string = ndr->flags;
15952 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15953 if (r->form_name) {
15954 uint32_t _relative_save_offset;
15955 _relative_save_offset = ndr->offset;
15956 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->form_name));
15957 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15958 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
15959 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->form_name));
15960 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
15961 ndr->offset = _relative_save_offset;
15963 ndr->flags = _flags_save_string;
15966 uint32_t _flags_save_string = ndr->flags;
15967 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
15968 if (r->keyword) {
15969 uint32_t _relative_save_offset;
15970 _relative_save_offset = ndr->offset;
15971 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->keyword));
15972 _mem_save_keyword_0 = NDR_PULL_GET_MEM_CTX(ndr);
15973 NDR_PULL_SET_MEM_CTX(ndr, r->keyword, 0);
15974 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->keyword));
15975 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyword_0, 0);
15976 ndr->offset = _relative_save_offset;
15978 ndr->flags = _flags_save_string;
15981 uint32_t _flags_save_string = ndr->flags;
15982 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15983 if (r->mui_dll) {
15984 uint32_t _relative_save_offset;
15985 _relative_save_offset = ndr->offset;
15986 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->mui_dll));
15987 _mem_save_mui_dll_0 = NDR_PULL_GET_MEM_CTX(ndr);
15988 NDR_PULL_SET_MEM_CTX(ndr, r->mui_dll, 0);
15989 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->mui_dll));
15990 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_mui_dll_0, 0);
15991 ndr->offset = _relative_save_offset;
15993 ndr->flags = _flags_save_string;
15996 uint32_t _flags_save_string = ndr->flags;
15997 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15998 if (r->display_name) {
15999 uint32_t _relative_save_offset;
16000 _relative_save_offset = ndr->offset;
16001 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->display_name));
16002 _mem_save_display_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16003 NDR_PULL_SET_MEM_CTX(ndr, r->display_name, 0);
16004 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->display_name));
16005 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_display_name_0, 0);
16006 ndr->offset = _relative_save_offset;
16008 ndr->flags = _flags_save_string;
16011 return NDR_ERR_SUCCESS;
16014 _PUBLIC_ void ndr_print_spoolss_FormInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_FormInfo2 *r)
16016 ndr_print_struct(ndr, name, "spoolss_FormInfo2");
16017 ndr->depth++;
16018 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
16019 ndr_print_ptr(ndr, "form_name", r->form_name);
16020 ndr->depth++;
16021 if (r->form_name) {
16022 ndr_print_string(ndr, "form_name", r->form_name);
16024 ndr->depth--;
16025 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
16026 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
16027 ndr_print_ptr(ndr, "keyword", r->keyword);
16028 ndr->depth++;
16029 if (r->keyword) {
16030 ndr_print_string(ndr, "keyword", r->keyword);
16032 ndr->depth--;
16033 ndr_print_spoolss_FormStringType(ndr, "string_type", r->string_type);
16034 ndr_print_ptr(ndr, "mui_dll", r->mui_dll);
16035 ndr->depth++;
16036 if (r->mui_dll) {
16037 ndr_print_string(ndr, "mui_dll", r->mui_dll);
16039 ndr->depth--;
16040 ndr_print_uint32(ndr, "ressource_id", r->ressource_id);
16041 ndr_print_ptr(ndr, "display_name", r->display_name);
16042 ndr->depth++;
16043 if (r->display_name) {
16044 ndr_print_string(ndr, "display_name", r->display_name);
16046 ndr->depth--;
16047 ndr_print_uint16(ndr, "lang_id", r->lang_id);
16048 ndr_print_uint16(ndr, "unused", r->unused);
16049 ndr->depth--;
16052 _PUBLIC_ size_t ndr_size_spoolss_FormInfo2(const struct spoolss_FormInfo2 *r, struct smb_iconv_convenience *ic, int flags)
16054 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo2, ic);
16057 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_FormInfo *r)
16059 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
16060 if (ndr_flags & NDR_SCALARS) {
16061 int level = ndr_push_get_switch_value(ndr, r);
16062 NDR_CHECK(ndr_push_union_align(ndr, 5));
16063 switch (level) {
16064 case 1: {
16065 NDR_CHECK(ndr_push_align(ndr, 5));
16066 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16067 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr, NDR_SCALARS, &r->info1));
16068 break; }
16070 case 2: {
16071 NDR_CHECK(ndr_push_align(ndr, 5));
16072 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16073 NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr, NDR_SCALARS, &r->info2));
16074 break; }
16076 default: {
16077 break; }
16081 if (ndr_flags & NDR_BUFFERS) {
16082 int level = ndr_push_get_switch_value(ndr, r);
16083 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
16084 switch (level) {
16085 case 1:
16086 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr, NDR_BUFFERS, &r->info1));
16087 break;
16089 case 2:
16090 NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr, NDR_BUFFERS, &r->info2));
16091 break;
16093 default:
16094 break;
16098 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
16099 return NDR_ERR_SUCCESS;
16102 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_FormInfo *r)
16104 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
16105 int level;
16106 level = ndr_pull_get_switch_value(ndr, r);
16107 if (ndr_flags & NDR_SCALARS) {
16108 NDR_CHECK(ndr_pull_union_align(ndr, 5));
16109 switch (level) {
16110 case 1: {
16111 NDR_CHECK(ndr_pull_align(ndr, 5));
16112 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16113 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr, NDR_SCALARS, &r->info1));
16114 break; }
16116 case 2: {
16117 NDR_CHECK(ndr_pull_align(ndr, 5));
16118 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16119 NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr, NDR_SCALARS, &r->info2));
16120 break; }
16122 default: {
16123 break; }
16127 if (ndr_flags & NDR_BUFFERS) {
16128 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
16129 switch (level) {
16130 case 1:
16131 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr, NDR_BUFFERS, &r->info1));
16132 break;
16134 case 2:
16135 NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr, NDR_BUFFERS, &r->info2));
16136 break;
16138 default:
16139 break;
16143 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
16144 return NDR_ERR_SUCCESS;
16147 _PUBLIC_ void ndr_print_spoolss_FormInfo(struct ndr_print *ndr, const char *name, const union spoolss_FormInfo *r)
16149 int level;
16150 level = ndr_print_get_switch_value(ndr, r);
16151 ndr_print_union(ndr, name, level, "spoolss_FormInfo");
16152 switch (level) {
16153 case 1:
16154 ndr_print_spoolss_FormInfo1(ndr, "info1", &r->info1);
16155 break;
16157 case 2:
16158 ndr_print_spoolss_FormInfo2(ndr, "info2", &r->info2);
16159 break;
16161 default:
16162 break;
16167 _PUBLIC_ size_t ndr_size_spoolss_FormInfo(const union spoolss_FormInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
16169 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo, ic);
16172 static enum ndr_err_code ndr_push_spoolss_AddFormInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddFormInfo1 *r)
16174 if (ndr_flags & NDR_SCALARS) {
16175 NDR_CHECK(ndr_push_align(ndr, 5));
16176 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
16177 NDR_CHECK(ndr_push_unique_ptr(ndr, r->form_name));
16178 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
16179 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
16180 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
16182 if (ndr_flags & NDR_BUFFERS) {
16183 if (r->form_name) {
16184 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
16185 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
16186 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
16187 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->form_name, ndr_charset_length(r->form_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16190 return NDR_ERR_SUCCESS;
16193 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddFormInfo1 *r)
16195 uint32_t _ptr_form_name;
16196 TALLOC_CTX *_mem_save_form_name_0;
16197 if (ndr_flags & NDR_SCALARS) {
16198 NDR_CHECK(ndr_pull_align(ndr, 5));
16199 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
16200 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
16201 if (_ptr_form_name) {
16202 NDR_PULL_ALLOC(ndr, r->form_name);
16203 } else {
16204 r->form_name = NULL;
16206 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
16207 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
16208 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
16210 if (ndr_flags & NDR_BUFFERS) {
16211 if (r->form_name) {
16212 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16213 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
16214 NDR_CHECK(ndr_pull_array_size(ndr, &r->form_name));
16215 NDR_CHECK(ndr_pull_array_length(ndr, &r->form_name));
16216 if (ndr_get_array_length(ndr, &r->form_name) > ndr_get_array_size(ndr, &r->form_name)) {
16217 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->form_name), ndr_get_array_length(ndr, &r->form_name));
16219 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t)));
16220 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->form_name, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t), CH_UTF16));
16221 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
16224 return NDR_ERR_SUCCESS;
16227 _PUBLIC_ void ndr_print_spoolss_AddFormInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_AddFormInfo1 *r)
16229 ndr_print_struct(ndr, name, "spoolss_AddFormInfo1");
16230 ndr->depth++;
16231 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
16232 ndr_print_ptr(ndr, "form_name", r->form_name);
16233 ndr->depth++;
16234 if (r->form_name) {
16235 ndr_print_string(ndr, "form_name", r->form_name);
16237 ndr->depth--;
16238 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
16239 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
16240 ndr->depth--;
16243 static enum ndr_err_code ndr_push_spoolss_AddFormInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddFormInfo2 *r)
16245 if (ndr_flags & NDR_SCALARS) {
16246 NDR_CHECK(ndr_push_align(ndr, 5));
16247 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
16248 NDR_CHECK(ndr_push_unique_ptr(ndr, r->form_name));
16249 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
16250 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
16251 NDR_CHECK(ndr_push_unique_ptr(ndr, r->keyword));
16252 NDR_CHECK(ndr_push_spoolss_FormStringType(ndr, NDR_SCALARS, r->string_type));
16253 NDR_CHECK(ndr_push_unique_ptr(ndr, r->mui_dll));
16254 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ressource_id));
16255 NDR_CHECK(ndr_push_unique_ptr(ndr, r->display_name));
16256 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->lang_id));
16257 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
16259 if (ndr_flags & NDR_BUFFERS) {
16260 if (r->form_name) {
16261 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
16262 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
16263 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
16264 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->form_name, ndr_charset_length(r->form_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16266 if (r->keyword) {
16267 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->keyword, CH_DOS)));
16268 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
16269 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->keyword, CH_DOS)));
16270 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->keyword, ndr_charset_length(r->keyword, CH_DOS), sizeof(uint8_t), CH_DOS));
16272 if (r->mui_dll) {
16273 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->mui_dll, CH_UTF16)));
16274 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
16275 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->mui_dll, CH_UTF16)));
16276 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->mui_dll, ndr_charset_length(r->mui_dll, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16278 if (r->display_name) {
16279 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->display_name, CH_UTF16)));
16280 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
16281 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->display_name, CH_UTF16)));
16282 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->display_name, ndr_charset_length(r->display_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16285 return NDR_ERR_SUCCESS;
16288 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddFormInfo2 *r)
16290 uint32_t _ptr_form_name;
16291 TALLOC_CTX *_mem_save_form_name_0;
16292 uint32_t _ptr_keyword;
16293 TALLOC_CTX *_mem_save_keyword_0;
16294 uint32_t _ptr_mui_dll;
16295 TALLOC_CTX *_mem_save_mui_dll_0;
16296 uint32_t _ptr_display_name;
16297 TALLOC_CTX *_mem_save_display_name_0;
16298 if (ndr_flags & NDR_SCALARS) {
16299 NDR_CHECK(ndr_pull_align(ndr, 5));
16300 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
16301 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
16302 if (_ptr_form_name) {
16303 NDR_PULL_ALLOC(ndr, r->form_name);
16304 } else {
16305 r->form_name = NULL;
16307 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
16308 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
16309 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyword));
16310 if (_ptr_keyword) {
16311 NDR_PULL_ALLOC(ndr, r->keyword);
16312 } else {
16313 r->keyword = NULL;
16315 NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr, NDR_SCALARS, &r->string_type));
16316 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_mui_dll));
16317 if (_ptr_mui_dll) {
16318 NDR_PULL_ALLOC(ndr, r->mui_dll);
16319 } else {
16320 r->mui_dll = NULL;
16322 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ressource_id));
16323 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_display_name));
16324 if (_ptr_display_name) {
16325 NDR_PULL_ALLOC(ndr, r->display_name);
16326 } else {
16327 r->display_name = NULL;
16329 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->lang_id));
16330 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
16332 if (ndr_flags & NDR_BUFFERS) {
16333 if (r->form_name) {
16334 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16335 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
16336 NDR_CHECK(ndr_pull_array_size(ndr, &r->form_name));
16337 NDR_CHECK(ndr_pull_array_length(ndr, &r->form_name));
16338 if (ndr_get_array_length(ndr, &r->form_name) > ndr_get_array_size(ndr, &r->form_name)) {
16339 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->form_name), ndr_get_array_length(ndr, &r->form_name));
16341 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t)));
16342 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->form_name, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t), CH_UTF16));
16343 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
16345 if (r->keyword) {
16346 _mem_save_keyword_0 = NDR_PULL_GET_MEM_CTX(ndr);
16347 NDR_PULL_SET_MEM_CTX(ndr, r->keyword, 0);
16348 NDR_CHECK(ndr_pull_array_size(ndr, &r->keyword));
16349 NDR_CHECK(ndr_pull_array_length(ndr, &r->keyword));
16350 if (ndr_get_array_length(ndr, &r->keyword) > ndr_get_array_size(ndr, &r->keyword)) {
16351 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->keyword), ndr_get_array_length(ndr, &r->keyword));
16353 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->keyword), sizeof(uint8_t)));
16354 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->keyword, ndr_get_array_length(ndr, &r->keyword), sizeof(uint8_t), CH_DOS));
16355 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyword_0, 0);
16357 if (r->mui_dll) {
16358 _mem_save_mui_dll_0 = NDR_PULL_GET_MEM_CTX(ndr);
16359 NDR_PULL_SET_MEM_CTX(ndr, r->mui_dll, 0);
16360 NDR_CHECK(ndr_pull_array_size(ndr, &r->mui_dll));
16361 NDR_CHECK(ndr_pull_array_length(ndr, &r->mui_dll));
16362 if (ndr_get_array_length(ndr, &r->mui_dll) > ndr_get_array_size(ndr, &r->mui_dll)) {
16363 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->mui_dll), ndr_get_array_length(ndr, &r->mui_dll));
16365 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->mui_dll), sizeof(uint16_t)));
16366 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->mui_dll, ndr_get_array_length(ndr, &r->mui_dll), sizeof(uint16_t), CH_UTF16));
16367 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_mui_dll_0, 0);
16369 if (r->display_name) {
16370 _mem_save_display_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16371 NDR_PULL_SET_MEM_CTX(ndr, r->display_name, 0);
16372 NDR_CHECK(ndr_pull_array_size(ndr, &r->display_name));
16373 NDR_CHECK(ndr_pull_array_length(ndr, &r->display_name));
16374 if (ndr_get_array_length(ndr, &r->display_name) > ndr_get_array_size(ndr, &r->display_name)) {
16375 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->display_name), ndr_get_array_length(ndr, &r->display_name));
16377 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->display_name), sizeof(uint16_t)));
16378 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->display_name, ndr_get_array_length(ndr, &r->display_name), sizeof(uint16_t), CH_UTF16));
16379 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_display_name_0, 0);
16382 return NDR_ERR_SUCCESS;
16385 _PUBLIC_ void ndr_print_spoolss_AddFormInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_AddFormInfo2 *r)
16387 ndr_print_struct(ndr, name, "spoolss_AddFormInfo2");
16388 ndr->depth++;
16389 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
16390 ndr_print_ptr(ndr, "form_name", r->form_name);
16391 ndr->depth++;
16392 if (r->form_name) {
16393 ndr_print_string(ndr, "form_name", r->form_name);
16395 ndr->depth--;
16396 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
16397 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
16398 ndr_print_ptr(ndr, "keyword", r->keyword);
16399 ndr->depth++;
16400 if (r->keyword) {
16401 ndr_print_string(ndr, "keyword", r->keyword);
16403 ndr->depth--;
16404 ndr_print_spoolss_FormStringType(ndr, "string_type", r->string_type);
16405 ndr_print_ptr(ndr, "mui_dll", r->mui_dll);
16406 ndr->depth++;
16407 if (r->mui_dll) {
16408 ndr_print_string(ndr, "mui_dll", r->mui_dll);
16410 ndr->depth--;
16411 ndr_print_uint32(ndr, "ressource_id", r->ressource_id);
16412 ndr_print_ptr(ndr, "display_name", r->display_name);
16413 ndr->depth++;
16414 if (r->display_name) {
16415 ndr_print_string(ndr, "display_name", r->display_name);
16417 ndr->depth--;
16418 ndr_print_uint32(ndr, "lang_id", r->lang_id);
16419 ndr->depth--;
16422 static enum ndr_err_code ndr_push_spoolss_AddFormInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_AddFormInfo *r)
16424 if (ndr_flags & NDR_SCALARS) {
16425 int level = ndr_push_get_switch_value(ndr, r);
16426 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
16427 NDR_CHECK(ndr_push_union_align(ndr, 5));
16428 switch (level) {
16429 case 1: {
16430 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
16431 break; }
16433 case 2: {
16434 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
16435 break; }
16437 default:
16438 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
16441 if (ndr_flags & NDR_BUFFERS) {
16442 int level = ndr_push_get_switch_value(ndr, r);
16443 switch (level) {
16444 case 1:
16445 if (r->info1) {
16446 NDR_CHECK(ndr_push_spoolss_AddFormInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
16448 break;
16450 case 2:
16451 if (r->info2) {
16452 NDR_CHECK(ndr_push_spoolss_AddFormInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
16454 break;
16456 default:
16457 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
16460 return NDR_ERR_SUCCESS;
16463 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_AddFormInfo *r)
16465 int level;
16466 uint32_t _level;
16467 TALLOC_CTX *_mem_save_info1_0;
16468 TALLOC_CTX *_mem_save_info2_0;
16469 level = ndr_pull_get_switch_value(ndr, r);
16470 if (ndr_flags & NDR_SCALARS) {
16471 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
16472 if (_level != level) {
16473 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
16475 NDR_CHECK(ndr_pull_union_align(ndr, 5));
16476 switch (level) {
16477 case 1: {
16478 uint32_t _ptr_info1;
16479 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
16480 if (_ptr_info1) {
16481 NDR_PULL_ALLOC(ndr, r->info1);
16482 } else {
16483 r->info1 = NULL;
16485 break; }
16487 case 2: {
16488 uint32_t _ptr_info2;
16489 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
16490 if (_ptr_info2) {
16491 NDR_PULL_ALLOC(ndr, r->info2);
16492 } else {
16493 r->info2 = NULL;
16495 break; }
16497 default:
16498 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
16501 if (ndr_flags & NDR_BUFFERS) {
16502 switch (level) {
16503 case 1:
16504 if (r->info1) {
16505 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
16506 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
16507 NDR_CHECK(ndr_pull_spoolss_AddFormInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
16508 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
16510 break;
16512 case 2:
16513 if (r->info2) {
16514 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
16515 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
16516 NDR_CHECK(ndr_pull_spoolss_AddFormInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
16517 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
16519 break;
16521 default:
16522 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
16525 return NDR_ERR_SUCCESS;
16528 _PUBLIC_ void ndr_print_spoolss_AddFormInfo(struct ndr_print *ndr, const char *name, const union spoolss_AddFormInfo *r)
16530 int level;
16531 level = ndr_print_get_switch_value(ndr, r);
16532 ndr_print_union(ndr, name, level, "spoolss_AddFormInfo");
16533 switch (level) {
16534 case 1:
16535 ndr_print_ptr(ndr, "info1", r->info1);
16536 ndr->depth++;
16537 if (r->info1) {
16538 ndr_print_spoolss_AddFormInfo1(ndr, "info1", r->info1);
16540 ndr->depth--;
16541 break;
16543 case 2:
16544 ndr_print_ptr(ndr, "info2", r->info2);
16545 ndr->depth++;
16546 if (r->info2) {
16547 ndr_print_spoolss_AddFormInfo2(ndr, "info2", r->info2);
16549 ndr->depth--;
16550 break;
16552 default:
16553 ndr_print_bad_level(ndr, name, level);
16557 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo1 *r)
16559 if (ndr_flags & NDR_SCALARS) {
16560 NDR_CHECK(ndr_push_align(ndr, 5));
16562 uint32_t _flags_save_string = ndr->flags;
16563 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16564 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
16565 ndr->flags = _flags_save_string;
16567 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
16569 if (ndr_flags & NDR_BUFFERS) {
16571 uint32_t _flags_save_string = ndr->flags;
16572 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16573 if (r->port_name) {
16574 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->port_name));
16575 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
16577 ndr->flags = _flags_save_string;
16580 return NDR_ERR_SUCCESS;
16583 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo1 *r)
16585 uint32_t _ptr_port_name;
16586 TALLOC_CTX *_mem_save_port_name_0;
16587 if (ndr_flags & NDR_SCALARS) {
16588 NDR_CHECK(ndr_pull_align(ndr, 5));
16590 uint32_t _flags_save_string = ndr->flags;
16591 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16592 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
16593 if (_ptr_port_name) {
16594 NDR_PULL_ALLOC(ndr, r->port_name);
16595 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
16596 } else {
16597 r->port_name = NULL;
16599 ndr->flags = _flags_save_string;
16601 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
16603 if (ndr_flags & NDR_BUFFERS) {
16605 uint32_t _flags_save_string = ndr->flags;
16606 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16607 if (r->port_name) {
16608 uint32_t _relative_save_offset;
16609 _relative_save_offset = ndr->offset;
16610 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
16611 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16612 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
16613 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
16614 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
16615 ndr->offset = _relative_save_offset;
16617 ndr->flags = _flags_save_string;
16620 return NDR_ERR_SUCCESS;
16623 _PUBLIC_ void ndr_print_spoolss_PortInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo1 *r)
16625 ndr_print_struct(ndr, name, "spoolss_PortInfo1");
16626 ndr->depth++;
16627 ndr_print_ptr(ndr, "port_name", r->port_name);
16628 ndr->depth++;
16629 if (r->port_name) {
16630 ndr_print_string(ndr, "port_name", r->port_name);
16632 ndr->depth--;
16633 ndr->depth--;
16636 _PUBLIC_ size_t ndr_size_spoolss_PortInfo1(const struct spoolss_PortInfo1 *r, struct smb_iconv_convenience *ic, int flags)
16638 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfo1, ic);
16641 static enum ndr_err_code ndr_push_spoolss_PortType(struct ndr_push *ndr, int ndr_flags, uint32_t r)
16643 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
16644 return NDR_ERR_SUCCESS;
16647 static enum ndr_err_code ndr_pull_spoolss_PortType(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
16649 uint32_t v;
16650 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
16651 *r = v;
16652 return NDR_ERR_SUCCESS;
16655 _PUBLIC_ void ndr_print_spoolss_PortType(struct ndr_print *ndr, const char *name, uint32_t r)
16657 ndr_print_uint32(ndr, name, r);
16658 ndr->depth++;
16659 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_WRITE", SPOOLSS_PORT_TYPE_WRITE, r);
16660 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_READ", SPOOLSS_PORT_TYPE_READ, r);
16661 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_REDIRECTED", SPOOLSS_PORT_TYPE_REDIRECTED, r);
16662 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_NET_ATTACHED", SPOOLSS_PORT_TYPE_NET_ATTACHED, r);
16663 ndr->depth--;
16666 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo2 *r)
16668 if (ndr_flags & NDR_SCALARS) {
16669 NDR_CHECK(ndr_push_align(ndr, 5));
16671 uint32_t _flags_save_string = ndr->flags;
16672 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16673 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
16674 ndr->flags = _flags_save_string;
16677 uint32_t _flags_save_string = ndr->flags;
16678 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16679 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
16680 ndr->flags = _flags_save_string;
16683 uint32_t _flags_save_string = ndr->flags;
16684 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16685 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->description));
16686 ndr->flags = _flags_save_string;
16688 NDR_CHECK(ndr_push_spoolss_PortType(ndr, NDR_SCALARS, r->port_type));
16689 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
16690 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
16692 if (ndr_flags & NDR_BUFFERS) {
16694 uint32_t _flags_save_string = ndr->flags;
16695 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16696 if (r->port_name) {
16697 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->port_name));
16698 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
16700 ndr->flags = _flags_save_string;
16703 uint32_t _flags_save_string = ndr->flags;
16704 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16705 if (r->monitor_name) {
16706 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
16707 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
16709 ndr->flags = _flags_save_string;
16712 uint32_t _flags_save_string = ndr->flags;
16713 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16714 if (r->description) {
16715 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->description));
16716 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->description));
16718 ndr->flags = _flags_save_string;
16721 return NDR_ERR_SUCCESS;
16724 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo2 *r)
16726 uint32_t _ptr_port_name;
16727 TALLOC_CTX *_mem_save_port_name_0;
16728 uint32_t _ptr_monitor_name;
16729 TALLOC_CTX *_mem_save_monitor_name_0;
16730 uint32_t _ptr_description;
16731 TALLOC_CTX *_mem_save_description_0;
16732 if (ndr_flags & NDR_SCALARS) {
16733 NDR_CHECK(ndr_pull_align(ndr, 5));
16735 uint32_t _flags_save_string = ndr->flags;
16736 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16737 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
16738 if (_ptr_port_name) {
16739 NDR_PULL_ALLOC(ndr, r->port_name);
16740 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
16741 } else {
16742 r->port_name = NULL;
16744 ndr->flags = _flags_save_string;
16747 uint32_t _flags_save_string = ndr->flags;
16748 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16749 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
16750 if (_ptr_monitor_name) {
16751 NDR_PULL_ALLOC(ndr, r->monitor_name);
16752 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
16753 } else {
16754 r->monitor_name = NULL;
16756 ndr->flags = _flags_save_string;
16759 uint32_t _flags_save_string = ndr->flags;
16760 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16761 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
16762 if (_ptr_description) {
16763 NDR_PULL_ALLOC(ndr, r->description);
16764 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->description, _ptr_description));
16765 } else {
16766 r->description = NULL;
16768 ndr->flags = _flags_save_string;
16770 NDR_CHECK(ndr_pull_spoolss_PortType(ndr, NDR_SCALARS, &r->port_type));
16771 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
16772 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
16774 if (ndr_flags & NDR_BUFFERS) {
16776 uint32_t _flags_save_string = ndr->flags;
16777 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16778 if (r->port_name) {
16779 uint32_t _relative_save_offset;
16780 _relative_save_offset = ndr->offset;
16781 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
16782 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16783 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
16784 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
16785 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
16786 ndr->offset = _relative_save_offset;
16788 ndr->flags = _flags_save_string;
16791 uint32_t _flags_save_string = ndr->flags;
16792 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16793 if (r->monitor_name) {
16794 uint32_t _relative_save_offset;
16795 _relative_save_offset = ndr->offset;
16796 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
16797 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16798 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
16799 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
16800 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
16801 ndr->offset = _relative_save_offset;
16803 ndr->flags = _flags_save_string;
16806 uint32_t _flags_save_string = ndr->flags;
16807 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16808 if (r->description) {
16809 uint32_t _relative_save_offset;
16810 _relative_save_offset = ndr->offset;
16811 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->description));
16812 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
16813 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
16814 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->description));
16815 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
16816 ndr->offset = _relative_save_offset;
16818 ndr->flags = _flags_save_string;
16821 return NDR_ERR_SUCCESS;
16824 _PUBLIC_ void ndr_print_spoolss_PortInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo2 *r)
16826 ndr_print_struct(ndr, name, "spoolss_PortInfo2");
16827 ndr->depth++;
16828 ndr_print_ptr(ndr, "port_name", r->port_name);
16829 ndr->depth++;
16830 if (r->port_name) {
16831 ndr_print_string(ndr, "port_name", r->port_name);
16833 ndr->depth--;
16834 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
16835 ndr->depth++;
16836 if (r->monitor_name) {
16837 ndr_print_string(ndr, "monitor_name", r->monitor_name);
16839 ndr->depth--;
16840 ndr_print_ptr(ndr, "description", r->description);
16841 ndr->depth++;
16842 if (r->description) {
16843 ndr_print_string(ndr, "description", r->description);
16845 ndr->depth--;
16846 ndr_print_spoolss_PortType(ndr, "port_type", r->port_type);
16847 ndr_print_uint32(ndr, "reserved", r->reserved);
16848 ndr->depth--;
16851 _PUBLIC_ size_t ndr_size_spoolss_PortInfo2(const struct spoolss_PortInfo2 *r, struct smb_iconv_convenience *ic, int flags)
16853 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfo2, ic);
16856 static enum ndr_err_code ndr_push_spoolss_PortStatus(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortStatus r)
16858 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
16859 return NDR_ERR_SUCCESS;
16862 static enum ndr_err_code ndr_pull_spoolss_PortStatus(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortStatus *r)
16864 uint32_t v;
16865 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
16866 *r = v;
16867 return NDR_ERR_SUCCESS;
16870 _PUBLIC_ void ndr_print_spoolss_PortStatus(struct ndr_print *ndr, const char *name, enum spoolss_PortStatus r)
16872 const char *val = NULL;
16874 switch (r) {
16875 case PORT_STATUS_CLEAR: val = "PORT_STATUS_CLEAR"; break;
16876 case PORT_STATUS_OFFLINE: val = "PORT_STATUS_OFFLINE"; break;
16877 case PORT_STATUS_PAPER_JAM: val = "PORT_STATUS_PAPER_JAM"; break;
16878 case PORT_STATUS_PAPER_OUT: val = "PORT_STATUS_PAPER_OUT"; break;
16879 case PORT_STATUS_OUTPUT_BIN_FULL: val = "PORT_STATUS_OUTPUT_BIN_FULL"; break;
16880 case PORT_STATUS_PAPER_PROBLEM: val = "PORT_STATUS_PAPER_PROBLEM"; break;
16881 case PORT_STATUS_NO_TONER: val = "PORT_STATUS_NO_TONER"; break;
16882 case PORT_STATUS_DOOR_OPEN: val = "PORT_STATUS_DOOR_OPEN"; break;
16883 case PORT_STATUS_USER_INTERVENTION: val = "PORT_STATUS_USER_INTERVENTION"; break;
16884 case PORT_STATUS_OUT_OF_MEMORY: val = "PORT_STATUS_OUT_OF_MEMORY"; break;
16885 case PORT_STATUS_TONER_LOW: val = "PORT_STATUS_TONER_LOW"; break;
16886 case PORT_STATUS_WARMING_UP: val = "PORT_STATUS_WARMING_UP"; break;
16887 case PORT_STATUS_POWER_SAVE: val = "PORT_STATUS_POWER_SAVE"; break;
16889 ndr_print_enum(ndr, name, "ENUM", val, r);
16892 static enum ndr_err_code ndr_push_spoolss_PortSeverity(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortSeverity r)
16894 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
16895 return NDR_ERR_SUCCESS;
16898 static enum ndr_err_code ndr_pull_spoolss_PortSeverity(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortSeverity *r)
16900 uint32_t v;
16901 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
16902 *r = v;
16903 return NDR_ERR_SUCCESS;
16906 _PUBLIC_ void ndr_print_spoolss_PortSeverity(struct ndr_print *ndr, const char *name, enum spoolss_PortSeverity r)
16908 const char *val = NULL;
16910 switch (r) {
16911 case PORT_STATUS_TYPE_ERROR: val = "PORT_STATUS_TYPE_ERROR"; break;
16912 case PORT_STATUS_TYPE_WARNING: val = "PORT_STATUS_TYPE_WARNING"; break;
16913 case PORT_STATUS_TYPE_INFO: val = "PORT_STATUS_TYPE_INFO"; break;
16915 ndr_print_enum(ndr, name, "ENUM", val, r);
16918 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo3 *r)
16920 if (ndr_flags & NDR_SCALARS) {
16921 NDR_CHECK(ndr_push_align(ndr, 5));
16922 NDR_CHECK(ndr_push_spoolss_PortStatus(ndr, NDR_SCALARS, r->status));
16924 uint32_t _flags_save_string = ndr->flags;
16925 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16926 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->status_string));
16927 ndr->flags = _flags_save_string;
16929 NDR_CHECK(ndr_push_spoolss_PortSeverity(ndr, NDR_SCALARS, r->severity));
16930 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
16932 if (ndr_flags & NDR_BUFFERS) {
16934 uint32_t _flags_save_string = ndr->flags;
16935 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16936 if (r->status_string) {
16937 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->status_string));
16938 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->status_string));
16940 ndr->flags = _flags_save_string;
16943 return NDR_ERR_SUCCESS;
16946 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo3 *r)
16948 uint32_t _ptr_status_string;
16949 TALLOC_CTX *_mem_save_status_string_0;
16950 if (ndr_flags & NDR_SCALARS) {
16951 NDR_CHECK(ndr_pull_align(ndr, 5));
16952 NDR_CHECK(ndr_pull_spoolss_PortStatus(ndr, NDR_SCALARS, &r->status));
16954 uint32_t _flags_save_string = ndr->flags;
16955 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16956 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_status_string));
16957 if (_ptr_status_string) {
16958 NDR_PULL_ALLOC(ndr, r->status_string);
16959 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->status_string, _ptr_status_string));
16960 } else {
16961 r->status_string = NULL;
16963 ndr->flags = _flags_save_string;
16965 NDR_CHECK(ndr_pull_spoolss_PortSeverity(ndr, NDR_SCALARS, &r->severity));
16966 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
16968 if (ndr_flags & NDR_BUFFERS) {
16970 uint32_t _flags_save_string = ndr->flags;
16971 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16972 if (r->status_string) {
16973 uint32_t _relative_save_offset;
16974 _relative_save_offset = ndr->offset;
16975 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->status_string));
16976 _mem_save_status_string_0 = NDR_PULL_GET_MEM_CTX(ndr);
16977 NDR_PULL_SET_MEM_CTX(ndr, r->status_string, 0);
16978 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->status_string));
16979 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_string_0, 0);
16980 ndr->offset = _relative_save_offset;
16982 ndr->flags = _flags_save_string;
16985 return NDR_ERR_SUCCESS;
16988 _PUBLIC_ void ndr_print_spoolss_PortInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo3 *r)
16990 ndr_print_struct(ndr, name, "spoolss_PortInfo3");
16991 ndr->depth++;
16992 ndr_print_spoolss_PortStatus(ndr, "status", r->status);
16993 ndr_print_ptr(ndr, "status_string", r->status_string);
16994 ndr->depth++;
16995 if (r->status_string) {
16996 ndr_print_string(ndr, "status_string", r->status_string);
16998 ndr->depth--;
16999 ndr_print_spoolss_PortSeverity(ndr, "severity", r->severity);
17000 ndr->depth--;
17003 _PUBLIC_ size_t ndr_size_spoolss_PortInfo3(const struct spoolss_PortInfo3 *r, struct smb_iconv_convenience *ic, int flags)
17005 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfo3, ic);
17008 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfoFF(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfoFF *r)
17010 if (ndr_flags & NDR_SCALARS) {
17011 NDR_CHECK(ndr_push_align(ndr, 5));
17013 uint32_t _flags_save_string = ndr->flags;
17014 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17015 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
17016 ndr->flags = _flags_save_string;
17018 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->monitor_data));
17019 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17021 if (ndr_flags & NDR_BUFFERS) {
17023 uint32_t _flags_save_string = ndr->flags;
17024 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17025 if (r->port_name) {
17026 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->port_name));
17027 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
17029 ndr->flags = _flags_save_string;
17032 return NDR_ERR_SUCCESS;
17035 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfoFF(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfoFF *r)
17037 uint32_t _ptr_port_name;
17038 TALLOC_CTX *_mem_save_port_name_0;
17039 if (ndr_flags & NDR_SCALARS) {
17040 NDR_CHECK(ndr_pull_align(ndr, 5));
17042 uint32_t _flags_save_string = ndr->flags;
17043 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17044 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
17045 if (_ptr_port_name) {
17046 NDR_PULL_ALLOC(ndr, r->port_name);
17047 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
17048 } else {
17049 r->port_name = NULL;
17051 ndr->flags = _flags_save_string;
17053 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->monitor_data));
17054 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17056 if (ndr_flags & NDR_BUFFERS) {
17058 uint32_t _flags_save_string = ndr->flags;
17059 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17060 if (r->port_name) {
17061 uint32_t _relative_save_offset;
17062 _relative_save_offset = ndr->offset;
17063 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
17064 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17065 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
17066 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
17067 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
17068 ndr->offset = _relative_save_offset;
17070 ndr->flags = _flags_save_string;
17073 return NDR_ERR_SUCCESS;
17076 _PUBLIC_ void ndr_print_spoolss_PortInfoFF(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfoFF *r)
17078 ndr_print_struct(ndr, name, "spoolss_PortInfoFF");
17079 ndr->depth++;
17080 ndr_print_ptr(ndr, "port_name", r->port_name);
17081 ndr->depth++;
17082 if (r->port_name) {
17083 ndr_print_string(ndr, "port_name", r->port_name);
17085 ndr->depth--;
17086 ndr_print_DATA_BLOB(ndr, "monitor_data", r->monitor_data);
17087 ndr->depth--;
17090 _PUBLIC_ size_t ndr_size_spoolss_PortInfoFF(const struct spoolss_PortInfoFF *r, struct smb_iconv_convenience *ic, int flags)
17092 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfoFF, ic);
17095 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PortInfo *r)
17097 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
17098 if (ndr_flags & NDR_SCALARS) {
17099 int level = ndr_push_get_switch_value(ndr, r);
17100 NDR_CHECK(ndr_push_union_align(ndr, 5));
17101 switch (level) {
17102 case 1: {
17103 NDR_CHECK(ndr_push_align(ndr, 5));
17104 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
17105 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr, NDR_SCALARS, &r->info1));
17106 break; }
17108 case 2: {
17109 NDR_CHECK(ndr_push_align(ndr, 5));
17110 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
17111 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr, NDR_SCALARS, &r->info2));
17112 break; }
17114 case 3: {
17115 NDR_CHECK(ndr_push_align(ndr, 5));
17116 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
17117 NDR_CHECK(ndr_push_spoolss_PortInfo3(ndr, NDR_SCALARS, &r->info3));
17118 break; }
17120 case 0xff: {
17121 NDR_CHECK(ndr_push_align(ndr, 5));
17122 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
17123 NDR_CHECK(ndr_push_spoolss_PortInfoFF(ndr, NDR_SCALARS, &r->infoFF));
17124 break; }
17126 default: {
17127 break; }
17131 if (ndr_flags & NDR_BUFFERS) {
17132 int level = ndr_push_get_switch_value(ndr, r);
17133 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
17134 switch (level) {
17135 case 1:
17136 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr, NDR_BUFFERS, &r->info1));
17137 break;
17139 case 2:
17140 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr, NDR_BUFFERS, &r->info2));
17141 break;
17143 case 3:
17144 NDR_CHECK(ndr_push_spoolss_PortInfo3(ndr, NDR_BUFFERS, &r->info3));
17145 break;
17147 case 0xff:
17148 NDR_CHECK(ndr_push_spoolss_PortInfoFF(ndr, NDR_BUFFERS, &r->infoFF));
17149 break;
17151 default:
17152 break;
17156 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
17157 return NDR_ERR_SUCCESS;
17160 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PortInfo *r)
17162 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
17163 int level;
17164 level = ndr_pull_get_switch_value(ndr, r);
17165 if (ndr_flags & NDR_SCALARS) {
17166 NDR_CHECK(ndr_pull_union_align(ndr, 5));
17167 switch (level) {
17168 case 1: {
17169 NDR_CHECK(ndr_pull_align(ndr, 5));
17170 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
17171 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr, NDR_SCALARS, &r->info1));
17172 break; }
17174 case 2: {
17175 NDR_CHECK(ndr_pull_align(ndr, 5));
17176 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
17177 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr, NDR_SCALARS, &r->info2));
17178 break; }
17180 case 3: {
17181 NDR_CHECK(ndr_pull_align(ndr, 5));
17182 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
17183 NDR_CHECK(ndr_pull_spoolss_PortInfo3(ndr, NDR_SCALARS, &r->info3));
17184 break; }
17186 case 0xff: {
17187 NDR_CHECK(ndr_pull_align(ndr, 5));
17188 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
17189 NDR_CHECK(ndr_pull_spoolss_PortInfoFF(ndr, NDR_SCALARS, &r->infoFF));
17190 break; }
17192 default: {
17193 break; }
17197 if (ndr_flags & NDR_BUFFERS) {
17198 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
17199 switch (level) {
17200 case 1:
17201 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr, NDR_BUFFERS, &r->info1));
17202 break;
17204 case 2:
17205 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr, NDR_BUFFERS, &r->info2));
17206 break;
17208 case 3:
17209 NDR_CHECK(ndr_pull_spoolss_PortInfo3(ndr, NDR_BUFFERS, &r->info3));
17210 break;
17212 case 0xff:
17213 NDR_CHECK(ndr_pull_spoolss_PortInfoFF(ndr, NDR_BUFFERS, &r->infoFF));
17214 break;
17216 default:
17217 break;
17221 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
17222 return NDR_ERR_SUCCESS;
17225 _PUBLIC_ void ndr_print_spoolss_PortInfo(struct ndr_print *ndr, const char *name, const union spoolss_PortInfo *r)
17227 int level;
17228 level = ndr_print_get_switch_value(ndr, r);
17229 ndr_print_union(ndr, name, level, "spoolss_PortInfo");
17230 switch (level) {
17231 case 1:
17232 ndr_print_spoolss_PortInfo1(ndr, "info1", &r->info1);
17233 break;
17235 case 2:
17236 ndr_print_spoolss_PortInfo2(ndr, "info2", &r->info2);
17237 break;
17239 case 3:
17240 ndr_print_spoolss_PortInfo3(ndr, "info3", &r->info3);
17241 break;
17243 case 0xff:
17244 ndr_print_spoolss_PortInfoFF(ndr, "infoFF", &r->infoFF);
17245 break;
17247 default:
17248 break;
17253 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorInfo1 *r)
17255 if (ndr_flags & NDR_SCALARS) {
17256 NDR_CHECK(ndr_push_align(ndr, 5));
17258 uint32_t _flags_save_string = ndr->flags;
17259 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17260 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
17261 ndr->flags = _flags_save_string;
17263 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17265 if (ndr_flags & NDR_BUFFERS) {
17267 uint32_t _flags_save_string = ndr->flags;
17268 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17269 if (r->monitor_name) {
17270 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
17271 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
17273 ndr->flags = _flags_save_string;
17276 return NDR_ERR_SUCCESS;
17279 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorInfo1 *r)
17281 uint32_t _ptr_monitor_name;
17282 TALLOC_CTX *_mem_save_monitor_name_0;
17283 if (ndr_flags & NDR_SCALARS) {
17284 NDR_CHECK(ndr_pull_align(ndr, 5));
17286 uint32_t _flags_save_string = ndr->flags;
17287 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17288 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
17289 if (_ptr_monitor_name) {
17290 NDR_PULL_ALLOC(ndr, r->monitor_name);
17291 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
17292 } else {
17293 r->monitor_name = NULL;
17295 ndr->flags = _flags_save_string;
17297 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17299 if (ndr_flags & NDR_BUFFERS) {
17301 uint32_t _flags_save_string = ndr->flags;
17302 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17303 if (r->monitor_name) {
17304 uint32_t _relative_save_offset;
17305 _relative_save_offset = ndr->offset;
17306 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
17307 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17308 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
17309 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
17310 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
17311 ndr->offset = _relative_save_offset;
17313 ndr->flags = _flags_save_string;
17316 return NDR_ERR_SUCCESS;
17319 _PUBLIC_ void ndr_print_spoolss_MonitorInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorInfo1 *r)
17321 ndr_print_struct(ndr, name, "spoolss_MonitorInfo1");
17322 ndr->depth++;
17323 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
17324 ndr->depth++;
17325 if (r->monitor_name) {
17326 ndr_print_string(ndr, "monitor_name", r->monitor_name);
17328 ndr->depth--;
17329 ndr->depth--;
17332 _PUBLIC_ size_t ndr_size_spoolss_MonitorInfo1(const struct spoolss_MonitorInfo1 *r, struct smb_iconv_convenience *ic, int flags)
17334 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_MonitorInfo1, ic);
17337 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorInfo2 *r)
17339 if (ndr_flags & NDR_SCALARS) {
17340 NDR_CHECK(ndr_push_align(ndr, 5));
17342 uint32_t _flags_save_string = ndr->flags;
17343 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17344 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
17345 ndr->flags = _flags_save_string;
17348 uint32_t _flags_save_string = ndr->flags;
17349 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17350 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->environment));
17351 ndr->flags = _flags_save_string;
17354 uint32_t _flags_save_string = ndr->flags;
17355 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17356 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dll_name));
17357 ndr->flags = _flags_save_string;
17359 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17361 if (ndr_flags & NDR_BUFFERS) {
17363 uint32_t _flags_save_string = ndr->flags;
17364 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17365 if (r->monitor_name) {
17366 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
17367 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
17369 ndr->flags = _flags_save_string;
17372 uint32_t _flags_save_string = ndr->flags;
17373 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17374 if (r->environment) {
17375 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->environment));
17376 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->environment));
17378 ndr->flags = _flags_save_string;
17381 uint32_t _flags_save_string = ndr->flags;
17382 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17383 if (r->dll_name) {
17384 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dll_name));
17385 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dll_name));
17387 ndr->flags = _flags_save_string;
17390 return NDR_ERR_SUCCESS;
17393 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorInfo2 *r)
17395 uint32_t _ptr_monitor_name;
17396 TALLOC_CTX *_mem_save_monitor_name_0;
17397 uint32_t _ptr_environment;
17398 TALLOC_CTX *_mem_save_environment_0;
17399 uint32_t _ptr_dll_name;
17400 TALLOC_CTX *_mem_save_dll_name_0;
17401 if (ndr_flags & NDR_SCALARS) {
17402 NDR_CHECK(ndr_pull_align(ndr, 5));
17404 uint32_t _flags_save_string = ndr->flags;
17405 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17406 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
17407 if (_ptr_monitor_name) {
17408 NDR_PULL_ALLOC(ndr, r->monitor_name);
17409 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
17410 } else {
17411 r->monitor_name = NULL;
17413 ndr->flags = _flags_save_string;
17416 uint32_t _flags_save_string = ndr->flags;
17417 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17418 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
17419 if (_ptr_environment) {
17420 NDR_PULL_ALLOC(ndr, r->environment);
17421 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->environment, _ptr_environment));
17422 } else {
17423 r->environment = NULL;
17425 ndr->flags = _flags_save_string;
17428 uint32_t _flags_save_string = ndr->flags;
17429 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17430 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dll_name));
17431 if (_ptr_dll_name) {
17432 NDR_PULL_ALLOC(ndr, r->dll_name);
17433 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dll_name, _ptr_dll_name));
17434 } else {
17435 r->dll_name = NULL;
17437 ndr->flags = _flags_save_string;
17439 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17441 if (ndr_flags & NDR_BUFFERS) {
17443 uint32_t _flags_save_string = ndr->flags;
17444 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17445 if (r->monitor_name) {
17446 uint32_t _relative_save_offset;
17447 _relative_save_offset = ndr->offset;
17448 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
17449 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17450 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
17451 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
17452 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
17453 ndr->offset = _relative_save_offset;
17455 ndr->flags = _flags_save_string;
17458 uint32_t _flags_save_string = ndr->flags;
17459 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17460 if (r->environment) {
17461 uint32_t _relative_save_offset;
17462 _relative_save_offset = ndr->offset;
17463 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->environment));
17464 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
17465 NDR_PULL_SET_MEM_CTX(ndr, r->environment, 0);
17466 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->environment));
17467 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
17468 ndr->offset = _relative_save_offset;
17470 ndr->flags = _flags_save_string;
17473 uint32_t _flags_save_string = ndr->flags;
17474 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17475 if (r->dll_name) {
17476 uint32_t _relative_save_offset;
17477 _relative_save_offset = ndr->offset;
17478 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dll_name));
17479 _mem_save_dll_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17480 NDR_PULL_SET_MEM_CTX(ndr, r->dll_name, 0);
17481 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->dll_name));
17482 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dll_name_0, 0);
17483 ndr->offset = _relative_save_offset;
17485 ndr->flags = _flags_save_string;
17488 return NDR_ERR_SUCCESS;
17491 _PUBLIC_ void ndr_print_spoolss_MonitorInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorInfo2 *r)
17493 ndr_print_struct(ndr, name, "spoolss_MonitorInfo2");
17494 ndr->depth++;
17495 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
17496 ndr->depth++;
17497 if (r->monitor_name) {
17498 ndr_print_string(ndr, "monitor_name", r->monitor_name);
17500 ndr->depth--;
17501 ndr_print_ptr(ndr, "environment", r->environment);
17502 ndr->depth++;
17503 if (r->environment) {
17504 ndr_print_string(ndr, "environment", r->environment);
17506 ndr->depth--;
17507 ndr_print_ptr(ndr, "dll_name", r->dll_name);
17508 ndr->depth++;
17509 if (r->dll_name) {
17510 ndr_print_string(ndr, "dll_name", r->dll_name);
17512 ndr->depth--;
17513 ndr->depth--;
17516 _PUBLIC_ size_t ndr_size_spoolss_MonitorInfo2(const struct spoolss_MonitorInfo2 *r, struct smb_iconv_convenience *ic, int flags)
17518 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_MonitorInfo2, ic);
17521 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_MonitorInfo *r)
17523 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
17524 if (ndr_flags & NDR_SCALARS) {
17525 int level = ndr_push_get_switch_value(ndr, r);
17526 NDR_CHECK(ndr_push_union_align(ndr, 5));
17527 switch (level) {
17528 case 1: {
17529 NDR_CHECK(ndr_push_align(ndr, 5));
17530 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
17531 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr, NDR_SCALARS, &r->info1));
17532 break; }
17534 case 2: {
17535 NDR_CHECK(ndr_push_align(ndr, 5));
17536 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
17537 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr, NDR_SCALARS, &r->info2));
17538 break; }
17540 default: {
17541 break; }
17545 if (ndr_flags & NDR_BUFFERS) {
17546 int level = ndr_push_get_switch_value(ndr, r);
17547 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
17548 switch (level) {
17549 case 1:
17550 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr, NDR_BUFFERS, &r->info1));
17551 break;
17553 case 2:
17554 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr, NDR_BUFFERS, &r->info2));
17555 break;
17557 default:
17558 break;
17562 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
17563 return NDR_ERR_SUCCESS;
17566 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_MonitorInfo *r)
17568 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
17569 int level;
17570 level = ndr_pull_get_switch_value(ndr, r);
17571 if (ndr_flags & NDR_SCALARS) {
17572 NDR_CHECK(ndr_pull_union_align(ndr, 5));
17573 switch (level) {
17574 case 1: {
17575 NDR_CHECK(ndr_pull_align(ndr, 5));
17576 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
17577 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr, NDR_SCALARS, &r->info1));
17578 break; }
17580 case 2: {
17581 NDR_CHECK(ndr_pull_align(ndr, 5));
17582 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
17583 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr, NDR_SCALARS, &r->info2));
17584 break; }
17586 default: {
17587 break; }
17591 if (ndr_flags & NDR_BUFFERS) {
17592 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
17593 switch (level) {
17594 case 1:
17595 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr, NDR_BUFFERS, &r->info1));
17596 break;
17598 case 2:
17599 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr, NDR_BUFFERS, &r->info2));
17600 break;
17602 default:
17603 break;
17607 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
17608 return NDR_ERR_SUCCESS;
17611 _PUBLIC_ void ndr_print_spoolss_MonitorInfo(struct ndr_print *ndr, const char *name, const union spoolss_MonitorInfo *r)
17613 int level;
17614 level = ndr_print_get_switch_value(ndr, r);
17615 ndr_print_union(ndr, name, level, "spoolss_MonitorInfo");
17616 switch (level) {
17617 case 1:
17618 ndr_print_spoolss_MonitorInfo1(ndr, "info1", &r->info1);
17619 break;
17621 case 2:
17622 ndr_print_spoolss_MonitorInfo2(ndr, "info2", &r->info2);
17623 break;
17625 default:
17626 break;
17631 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcDataTypesInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcDataTypesInfo1 *r)
17633 if (ndr_flags & NDR_SCALARS) {
17634 NDR_CHECK(ndr_push_align(ndr, 5));
17636 uint32_t _flags_save_string = ndr->flags;
17637 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17638 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->name_array));
17639 ndr->flags = _flags_save_string;
17641 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17643 if (ndr_flags & NDR_BUFFERS) {
17645 uint32_t _flags_save_string = ndr->flags;
17646 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17647 if (r->name_array) {
17648 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->name_array));
17649 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->name_array));
17651 ndr->flags = _flags_save_string;
17654 return NDR_ERR_SUCCESS;
17657 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcDataTypesInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcDataTypesInfo1 *r)
17659 uint32_t _ptr_name_array;
17660 TALLOC_CTX *_mem_save_name_array_0;
17661 if (ndr_flags & NDR_SCALARS) {
17662 NDR_CHECK(ndr_pull_align(ndr, 5));
17664 uint32_t _flags_save_string = ndr->flags;
17665 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17666 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name_array));
17667 if (_ptr_name_array) {
17668 NDR_PULL_ALLOC(ndr, r->name_array);
17669 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->name_array, _ptr_name_array));
17670 } else {
17671 r->name_array = NULL;
17673 ndr->flags = _flags_save_string;
17675 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17677 if (ndr_flags & NDR_BUFFERS) {
17679 uint32_t _flags_save_string = ndr->flags;
17680 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17681 if (r->name_array) {
17682 uint32_t _relative_save_offset;
17683 _relative_save_offset = ndr->offset;
17684 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->name_array));
17685 _mem_save_name_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
17686 NDR_PULL_SET_MEM_CTX(ndr, r->name_array, 0);
17687 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->name_array));
17688 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_array_0, 0);
17689 ndr->offset = _relative_save_offset;
17691 ndr->flags = _flags_save_string;
17694 return NDR_ERR_SUCCESS;
17697 _PUBLIC_ void ndr_print_spoolss_PrintProcDataTypesInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcDataTypesInfo1 *r)
17699 ndr_print_struct(ndr, name, "spoolss_PrintProcDataTypesInfo1");
17700 ndr->depth++;
17701 ndr_print_ptr(ndr, "name_array", r->name_array);
17702 ndr->depth++;
17703 if (r->name_array) {
17704 ndr_print_string(ndr, "name_array", r->name_array);
17706 ndr->depth--;
17707 ndr->depth--;
17710 _PUBLIC_ size_t ndr_size_spoolss_PrintProcDataTypesInfo1(const struct spoolss_PrintProcDataTypesInfo1 *r, struct smb_iconv_convenience *ic, int flags)
17712 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcDataTypesInfo1, ic);
17715 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcDataTypesInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcDataTypesInfo *r)
17717 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
17718 if (ndr_flags & NDR_SCALARS) {
17719 int level = ndr_push_get_switch_value(ndr, r);
17720 NDR_CHECK(ndr_push_union_align(ndr, 5));
17721 switch (level) {
17722 case 1: {
17723 NDR_CHECK(ndr_push_align(ndr, 5));
17724 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
17725 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo1(ndr, NDR_SCALARS, &r->info1));
17726 break; }
17728 default: {
17729 break; }
17733 if (ndr_flags & NDR_BUFFERS) {
17734 int level = ndr_push_get_switch_value(ndr, r);
17735 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
17736 switch (level) {
17737 case 1:
17738 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo1(ndr, NDR_BUFFERS, &r->info1));
17739 break;
17741 default:
17742 break;
17746 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
17747 return NDR_ERR_SUCCESS;
17750 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcDataTypesInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcDataTypesInfo *r)
17752 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
17753 int level;
17754 level = ndr_pull_get_switch_value(ndr, r);
17755 if (ndr_flags & NDR_SCALARS) {
17756 NDR_CHECK(ndr_pull_union_align(ndr, 5));
17757 switch (level) {
17758 case 1: {
17759 NDR_CHECK(ndr_pull_align(ndr, 5));
17760 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
17761 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo1(ndr, NDR_SCALARS, &r->info1));
17762 break; }
17764 default: {
17765 break; }
17769 if (ndr_flags & NDR_BUFFERS) {
17770 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
17771 switch (level) {
17772 case 1:
17773 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo1(ndr, NDR_BUFFERS, &r->info1));
17774 break;
17776 default:
17777 break;
17781 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
17782 return NDR_ERR_SUCCESS;
17785 _PUBLIC_ void ndr_print_spoolss_PrintProcDataTypesInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcDataTypesInfo *r)
17787 int level;
17788 level = ndr_print_get_switch_value(ndr, r);
17789 ndr_print_union(ndr, name, level, "spoolss_PrintProcDataTypesInfo");
17790 switch (level) {
17791 case 1:
17792 ndr_print_spoolss_PrintProcDataTypesInfo1(ndr, "info1", &r->info1);
17793 break;
17795 default:
17796 break;
17801 static enum ndr_err_code ndr_push_spoolss_PrinterChangeFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
17803 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
17804 return NDR_ERR_SUCCESS;
17807 static enum ndr_err_code ndr_pull_spoolss_PrinterChangeFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
17809 uint32_t v;
17810 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
17811 *r = v;
17812 return NDR_ERR_SUCCESS;
17815 _PUBLIC_ void ndr_print_spoolss_PrinterChangeFlags(struct ndr_print *ndr, const char *name, uint32_t r)
17817 ndr_print_uint32(ndr, name, r);
17818 ndr->depth++;
17819 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER", PRINTER_CHANGE_ADD_PRINTER, r);
17820 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER", PRINTER_CHANGE_SET_PRINTER, r);
17821 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER", PRINTER_CHANGE_DELETE_PRINTER, r);
17822 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_FAILED_CONNECTION_PRINTER", PRINTER_CHANGE_FAILED_CONNECTION_PRINTER, r);
17823 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_JOB", PRINTER_CHANGE_ADD_JOB, r);
17824 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_JOB", PRINTER_CHANGE_SET_JOB, r);
17825 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_JOB", PRINTER_CHANGE_DELETE_JOB, r);
17826 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_WRITE_JOB", PRINTER_CHANGE_WRITE_JOB, r);
17827 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_FORM", PRINTER_CHANGE_ADD_FORM, r);
17828 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_FORM", PRINTER_CHANGE_SET_FORM, r);
17829 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_FORM", PRINTER_CHANGE_DELETE_FORM, r);
17830 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PORT", PRINTER_CHANGE_ADD_PORT, r);
17831 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_CONFIGURE_PORT", PRINTER_CHANGE_CONFIGURE_PORT, r);
17832 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PORT", PRINTER_CHANGE_DELETE_PORT, r);
17833 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINT_PROCESSOR", PRINTER_CHANGE_ADD_PRINT_PROCESSOR, r);
17834 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINT_PROCESSOR", PRINTER_CHANGE_DELETE_PRINT_PROCESSOR, r);
17835 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SERVER", PRINTER_CHANGE_SERVER, r);
17836 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER_DRIVER", PRINTER_CHANGE_ADD_PRINTER_DRIVER, r);
17837 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER_DRIVER", PRINTER_CHANGE_SET_PRINTER_DRIVER, r);
17838 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER_DRIVER", PRINTER_CHANGE_DELETE_PRINTER_DRIVER, r);
17839 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_TIMEOUT", PRINTER_CHANGE_TIMEOUT, r);
17840 ndr->depth--;
17843 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobNotifyField(struct ndr_push *ndr, int ndr_flags, enum spoolss_JobNotifyField r)
17845 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
17846 return NDR_ERR_SUCCESS;
17849 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobNotifyField(struct ndr_pull *ndr, int ndr_flags, enum spoolss_JobNotifyField *r)
17851 uint16_t v;
17852 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
17853 *r = v;
17854 return NDR_ERR_SUCCESS;
17857 _PUBLIC_ void ndr_print_spoolss_JobNotifyField(struct ndr_print *ndr, const char *name, enum spoolss_JobNotifyField r)
17859 const char *val = NULL;
17861 switch (r) {
17862 case JOB_NOTIFY_FIELD_PRINTER_NAME: val = "JOB_NOTIFY_FIELD_PRINTER_NAME"; break;
17863 case JOB_NOTIFY_FIELD_MACHINE_NAME: val = "JOB_NOTIFY_FIELD_MACHINE_NAME"; break;
17864 case JOB_NOTIFY_FIELD_PORT_NAME: val = "JOB_NOTIFY_FIELD_PORT_NAME"; break;
17865 case JOB_NOTIFY_FIELD_USER_NAME: val = "JOB_NOTIFY_FIELD_USER_NAME"; break;
17866 case JOB_NOTIFY_FIELD_NOTIFY_NAME: val = "JOB_NOTIFY_FIELD_NOTIFY_NAME"; break;
17867 case JOB_NOTIFY_FIELD_DATATYPE: val = "JOB_NOTIFY_FIELD_DATATYPE"; break;
17868 case JOB_NOTIFY_FIELD_PRINT_PROCESSOR: val = "JOB_NOTIFY_FIELD_PRINT_PROCESSOR"; break;
17869 case JOB_NOTIFY_FIELD_PARAMETERS: val = "JOB_NOTIFY_FIELD_PARAMETERS"; break;
17870 case JOB_NOTIFY_FIELD_DRIVER_NAME: val = "JOB_NOTIFY_FIELD_DRIVER_NAME"; break;
17871 case JOB_NOTIFY_FIELD_DEVMODE: val = "JOB_NOTIFY_FIELD_DEVMODE"; break;
17872 case JOB_NOTIFY_FIELD_STATUS: val = "JOB_NOTIFY_FIELD_STATUS"; break;
17873 case JOB_NOTIFY_FIELD_STATUS_STRING: val = "JOB_NOTIFY_FIELD_STATUS_STRING"; break;
17874 case JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR: val = "JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR"; break;
17875 case JOB_NOTIFY_FIELD_DOCUMENT: val = "JOB_NOTIFY_FIELD_DOCUMENT"; break;
17876 case JOB_NOTIFY_FIELD_PRIORITY: val = "JOB_NOTIFY_FIELD_PRIORITY"; break;
17877 case JOB_NOTIFY_FIELD_POSITION: val = "JOB_NOTIFY_FIELD_POSITION"; break;
17878 case JOB_NOTIFY_FIELD_SUBMITTED: val = "JOB_NOTIFY_FIELD_SUBMITTED"; break;
17879 case JOB_NOTIFY_FIELD_START_TIME: val = "JOB_NOTIFY_FIELD_START_TIME"; break;
17880 case JOB_NOTIFY_FIELD_UNTIL_TIME: val = "JOB_NOTIFY_FIELD_UNTIL_TIME"; break;
17881 case JOB_NOTIFY_FIELD_TIME: val = "JOB_NOTIFY_FIELD_TIME"; break;
17882 case JOB_NOTIFY_FIELD_TOTAL_PAGES: val = "JOB_NOTIFY_FIELD_TOTAL_PAGES"; break;
17883 case JOB_NOTIFY_FIELD_PAGES_PRINTED: val = "JOB_NOTIFY_FIELD_PAGES_PRINTED"; break;
17884 case JOB_NOTIFY_FIELD_TOTAL_BYTES: val = "JOB_NOTIFY_FIELD_TOTAL_BYTES"; break;
17885 case JOB_NOTIFY_FIELD_BYTES_PRINTED: val = "JOB_NOTIFY_FIELD_BYTES_PRINTED"; break;
17887 ndr_print_enum(ndr, name, "ENUM", val, r);
17890 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintNotifyField(struct ndr_push *ndr, int ndr_flags, enum spoolss_PrintNotifyField r)
17892 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
17893 return NDR_ERR_SUCCESS;
17896 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintNotifyField(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PrintNotifyField *r)
17898 uint16_t v;
17899 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
17900 *r = v;
17901 return NDR_ERR_SUCCESS;
17904 _PUBLIC_ void ndr_print_spoolss_PrintNotifyField(struct ndr_print *ndr, const char *name, enum spoolss_PrintNotifyField r)
17906 const char *val = NULL;
17908 switch (r) {
17909 case PRINTER_NOTIFY_FIELD_SERVER_NAME: val = "PRINTER_NOTIFY_FIELD_SERVER_NAME"; break;
17910 case PRINTER_NOTIFY_FIELD_PRINTER_NAME: val = "PRINTER_NOTIFY_FIELD_PRINTER_NAME"; break;
17911 case PRINTER_NOTIFY_FIELD_SHARE_NAME: val = "PRINTER_NOTIFY_FIELD_SHARE_NAME"; break;
17912 case PRINTER_NOTIFY_FIELD_PORT_NAME: val = "PRINTER_NOTIFY_FIELD_PORT_NAME"; break;
17913 case PRINTER_NOTIFY_FIELD_DRIVER_NAME: val = "PRINTER_NOTIFY_FIELD_DRIVER_NAME"; break;
17914 case PRINTER_NOTIFY_FIELD_COMMENT: val = "PRINTER_NOTIFY_FIELD_COMMENT"; break;
17915 case PRINTER_NOTIFY_FIELD_LOCATION: val = "PRINTER_NOTIFY_FIELD_LOCATION"; break;
17916 case PRINTER_NOTIFY_FIELD_DEVMODE: val = "PRINTER_NOTIFY_FIELD_DEVMODE"; break;
17917 case PRINTER_NOTIFY_FIELD_SEPFILE: val = "PRINTER_NOTIFY_FIELD_SEPFILE"; break;
17918 case PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR: val = "PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR"; break;
17919 case PRINTER_NOTIFY_FIELD_PARAMETERS: val = "PRINTER_NOTIFY_FIELD_PARAMETERS"; break;
17920 case PRINTER_NOTIFY_FIELD_DATATYPE: val = "PRINTER_NOTIFY_FIELD_DATATYPE"; break;
17921 case PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR: val = "PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR"; break;
17922 case PRINTER_NOTIFY_FIELD_ATTRIBUTES: val = "PRINTER_NOTIFY_FIELD_ATTRIBUTES"; break;
17923 case PRINTER_NOTIFY_FIELD_PRIORITY: val = "PRINTER_NOTIFY_FIELD_PRIORITY"; break;
17924 case PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY: val = "PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY"; break;
17925 case PRINTER_NOTIFY_FIELD_START_TIME: val = "PRINTER_NOTIFY_FIELD_START_TIME"; break;
17926 case PRINTER_NOTIFY_FIELD_UNTIL_TIME: val = "PRINTER_NOTIFY_FIELD_UNTIL_TIME"; break;
17927 case PRINTER_NOTIFY_FIELD_STATUS: val = "PRINTER_NOTIFY_FIELD_STATUS"; break;
17928 case PRINTER_NOTIFY_FIELD_STATUS_STRING: val = "PRINTER_NOTIFY_FIELD_STATUS_STRING"; break;
17929 case PRINTER_NOTIFY_FIELD_CJOBS: val = "PRINTER_NOTIFY_FIELD_CJOBS"; break;
17930 case PRINTER_NOTIFY_FIELD_AVERAGE_PPM: val = "PRINTER_NOTIFY_FIELD_AVERAGE_PPM"; break;
17931 case PRINTER_NOTIFY_FIELD_TOTAL_PAGES: val = "PRINTER_NOTIFY_FIELD_TOTAL_PAGES"; break;
17932 case PRINTER_NOTIFY_FIELD_PAGES_PRINTED: val = "PRINTER_NOTIFY_FIELD_PAGES_PRINTED"; break;
17933 case PRINTER_NOTIFY_FIELD_TOTAL_BYTES: val = "PRINTER_NOTIFY_FIELD_TOTAL_BYTES"; break;
17934 case PRINTER_NOTIFY_FIELD_BYTES_PRINTED: val = "PRINTER_NOTIFY_FIELD_BYTES_PRINTED"; break;
17935 case PRINTER_NOTIFY_FIELD_OBJECT_GUID: val = "PRINTER_NOTIFY_FIELD_OBJECT_GUID"; break;
17936 case PRINTER_NOTIFY_FIELD_FRIENDLY_NAME: val = "PRINTER_NOTIFY_FIELD_FRIENDLY_NAME"; break;
17938 ndr_print_enum(ndr, name, "ENUM", val, r);
17941 static enum ndr_err_code ndr_push_spoolss_NotifyType(struct ndr_push *ndr, int ndr_flags, enum spoolss_NotifyType r)
17943 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
17944 return NDR_ERR_SUCCESS;
17947 static enum ndr_err_code ndr_pull_spoolss_NotifyType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_NotifyType *r)
17949 uint16_t v;
17950 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
17951 *r = v;
17952 return NDR_ERR_SUCCESS;
17955 _PUBLIC_ void ndr_print_spoolss_NotifyType(struct ndr_print *ndr, const char *name, enum spoolss_NotifyType r)
17957 const char *val = NULL;
17959 switch (r) {
17960 case PRINTER_NOTIFY_TYPE: val = "PRINTER_NOTIFY_TYPE"; break;
17961 case JOB_NOTIFY_TYPE: val = "JOB_NOTIFY_TYPE"; break;
17963 ndr_print_enum(ndr, name, "ENUM", val, r);
17966 static enum ndr_err_code ndr_push_spoolss_Field(struct ndr_push *ndr, int ndr_flags, const union spoolss_Field *r)
17968 if (ndr_flags & NDR_SCALARS) {
17969 int level = ndr_push_get_switch_value(ndr, r);
17970 NDR_CHECK(ndr_push_union_align(ndr, 2));
17971 switch (level) {
17972 case PRINTER_NOTIFY_TYPE: {
17973 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->field));
17974 break; }
17976 case JOB_NOTIFY_TYPE: {
17977 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->field));
17978 break; }
17980 default: {
17981 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->field));
17982 break; }
17986 if (ndr_flags & NDR_BUFFERS) {
17987 int level = ndr_push_get_switch_value(ndr, r);
17988 switch (level) {
17989 case PRINTER_NOTIFY_TYPE:
17990 break;
17992 case JOB_NOTIFY_TYPE:
17993 break;
17995 default:
17996 break;
18000 return NDR_ERR_SUCCESS;
18003 static enum ndr_err_code ndr_pull_spoolss_Field(struct ndr_pull *ndr, int ndr_flags, union spoolss_Field *r)
18005 int level;
18006 level = ndr_pull_get_switch_value(ndr, r);
18007 if (ndr_flags & NDR_SCALARS) {
18008 NDR_CHECK(ndr_pull_union_align(ndr, 2));
18009 switch (level) {
18010 case PRINTER_NOTIFY_TYPE: {
18011 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->field));
18012 break; }
18014 case JOB_NOTIFY_TYPE: {
18015 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->field));
18016 break; }
18018 default: {
18019 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->field));
18020 break; }
18024 if (ndr_flags & NDR_BUFFERS) {
18025 switch (level) {
18026 case PRINTER_NOTIFY_TYPE:
18027 break;
18029 case JOB_NOTIFY_TYPE:
18030 break;
18032 default:
18033 break;
18037 return NDR_ERR_SUCCESS;
18040 static enum ndr_err_code ndr_push_spoolss_NotifyOptionType(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyOptionType *r)
18042 uint32_t cntr_fields_1;
18043 if (ndr_flags & NDR_SCALARS) {
18044 NDR_CHECK(ndr_push_align(ndr, 5));
18045 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr, NDR_SCALARS, r->type));
18046 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->u1));
18047 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u2));
18048 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u3));
18049 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
18050 NDR_CHECK(ndr_push_unique_ptr(ndr, r->fields));
18051 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18053 if (ndr_flags & NDR_BUFFERS) {
18054 if (r->fields) {
18055 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
18056 for (cntr_fields_1 = 0; cntr_fields_1 < r->count; cntr_fields_1++) {
18057 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->fields[cntr_fields_1], r->type));
18058 NDR_CHECK(ndr_push_spoolss_Field(ndr, NDR_SCALARS, &r->fields[cntr_fields_1]));
18062 return NDR_ERR_SUCCESS;
18065 static enum ndr_err_code ndr_pull_spoolss_NotifyOptionType(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyOptionType *r)
18067 uint32_t _ptr_fields;
18068 uint32_t cntr_fields_1;
18069 TALLOC_CTX *_mem_save_fields_0;
18070 TALLOC_CTX *_mem_save_fields_1;
18071 if (ndr_flags & NDR_SCALARS) {
18072 NDR_CHECK(ndr_pull_align(ndr, 5));
18073 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr, NDR_SCALARS, &r->type));
18074 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->u1));
18075 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u2));
18076 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u3));
18077 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
18078 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_fields));
18079 if (_ptr_fields) {
18080 NDR_PULL_ALLOC(ndr, r->fields);
18081 } else {
18082 r->fields = NULL;
18084 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
18086 if (ndr_flags & NDR_BUFFERS) {
18087 if (r->fields) {
18088 _mem_save_fields_0 = NDR_PULL_GET_MEM_CTX(ndr);
18089 NDR_PULL_SET_MEM_CTX(ndr, r->fields, 0);
18090 NDR_CHECK(ndr_pull_array_size(ndr, &r->fields));
18091 NDR_PULL_ALLOC_N(ndr, r->fields, ndr_get_array_size(ndr, &r->fields));
18092 _mem_save_fields_1 = NDR_PULL_GET_MEM_CTX(ndr);
18093 NDR_PULL_SET_MEM_CTX(ndr, r->fields, 0);
18094 for (cntr_fields_1 = 0; cntr_fields_1 < r->count; cntr_fields_1++) {
18095 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->fields[cntr_fields_1], r->type));
18096 NDR_CHECK(ndr_pull_spoolss_Field(ndr, NDR_SCALARS, &r->fields[cntr_fields_1]));
18098 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fields_1, 0);
18099 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fields_0, 0);
18101 if (r->fields) {
18102 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->fields, r->count));
18105 return NDR_ERR_SUCCESS;
18108 _PUBLIC_ void ndr_print_spoolss_NotifyOptionType(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyOptionType *r)
18110 uint32_t cntr_fields_1;
18111 ndr_print_struct(ndr, name, "spoolss_NotifyOptionType");
18112 ndr->depth++;
18113 ndr_print_spoolss_NotifyType(ndr, "type", r->type);
18114 ndr_print_uint16(ndr, "u1", r->u1);
18115 ndr_print_uint32(ndr, "u2", r->u2);
18116 ndr_print_uint32(ndr, "u3", r->u3);
18117 ndr_print_uint32(ndr, "count", r->count);
18118 ndr_print_ptr(ndr, "fields", r->fields);
18119 ndr->depth++;
18120 if (r->fields) {
18121 ndr->print(ndr, "%s: ARRAY(%d)", "fields", (int)r->count);
18122 ndr->depth++;
18123 for (cntr_fields_1=0;cntr_fields_1<r->count;cntr_fields_1++) {
18124 char *idx_1=NULL;
18125 if (asprintf(&idx_1, "[%d]", cntr_fields_1) != -1) {
18126 ndr_print_set_switch_value(ndr, &r->fields[cntr_fields_1], r->type);
18127 ndr_print_spoolss_Field(ndr, "fields", &r->fields[cntr_fields_1]);
18128 free(idx_1);
18131 ndr->depth--;
18133 ndr->depth--;
18134 ndr->depth--;
18137 static enum ndr_err_code ndr_push_spoolssNotifyOptionFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
18139 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
18140 return NDR_ERR_SUCCESS;
18143 static enum ndr_err_code ndr_pull_spoolssNotifyOptionFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
18145 uint32_t v;
18146 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
18147 *r = v;
18148 return NDR_ERR_SUCCESS;
18151 _PUBLIC_ void ndr_print_spoolssNotifyOptionFlags(struct ndr_print *ndr, const char *name, uint32_t r)
18153 ndr_print_uint32(ndr, name, r);
18154 ndr->depth++;
18155 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_OPTIONS_REFRESH", PRINTER_NOTIFY_OPTIONS_REFRESH, r);
18156 ndr->depth--;
18159 static enum ndr_err_code ndr_push_spoolss_NotifyOption(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyOption *r)
18161 uint32_t cntr_types_1;
18162 if (ndr_flags & NDR_SCALARS) {
18163 NDR_CHECK(ndr_push_align(ndr, 5));
18164 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
18165 NDR_CHECK(ndr_push_spoolssNotifyOptionFlags(ndr, NDR_SCALARS, r->flags));
18166 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
18167 NDR_CHECK(ndr_push_unique_ptr(ndr, r->types));
18168 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18170 if (ndr_flags & NDR_BUFFERS) {
18171 if (r->types) {
18172 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
18173 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
18174 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr, NDR_SCALARS, &r->types[cntr_types_1]));
18176 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
18177 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr, NDR_BUFFERS, &r->types[cntr_types_1]));
18181 return NDR_ERR_SUCCESS;
18184 static enum ndr_err_code ndr_pull_spoolss_NotifyOption(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyOption *r)
18186 uint32_t _ptr_types;
18187 uint32_t cntr_types_1;
18188 TALLOC_CTX *_mem_save_types_0;
18189 TALLOC_CTX *_mem_save_types_1;
18190 if (ndr_flags & NDR_SCALARS) {
18191 NDR_CHECK(ndr_pull_align(ndr, 5));
18192 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
18193 NDR_CHECK(ndr_pull_spoolssNotifyOptionFlags(ndr, NDR_SCALARS, &r->flags));
18194 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
18195 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_types));
18196 if (_ptr_types) {
18197 NDR_PULL_ALLOC(ndr, r->types);
18198 } else {
18199 r->types = NULL;
18201 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
18203 if (ndr_flags & NDR_BUFFERS) {
18204 if (r->types) {
18205 _mem_save_types_0 = NDR_PULL_GET_MEM_CTX(ndr);
18206 NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
18207 NDR_CHECK(ndr_pull_array_size(ndr, &r->types));
18208 NDR_PULL_ALLOC_N(ndr, r->types, ndr_get_array_size(ndr, &r->types));
18209 _mem_save_types_1 = NDR_PULL_GET_MEM_CTX(ndr);
18210 NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
18211 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
18212 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr, NDR_SCALARS, &r->types[cntr_types_1]));
18214 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
18215 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr, NDR_BUFFERS, &r->types[cntr_types_1]));
18217 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_1, 0);
18218 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_0, 0);
18220 if (r->types) {
18221 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->types, r->count));
18224 return NDR_ERR_SUCCESS;
18227 _PUBLIC_ void ndr_print_spoolss_NotifyOption(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyOption *r)
18229 uint32_t cntr_types_1;
18230 ndr_print_struct(ndr, name, "spoolss_NotifyOption");
18231 ndr->depth++;
18232 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
18233 ndr_print_spoolssNotifyOptionFlags(ndr, "flags", r->flags);
18234 ndr_print_uint32(ndr, "count", r->count);
18235 ndr_print_ptr(ndr, "types", r->types);
18236 ndr->depth++;
18237 if (r->types) {
18238 ndr->print(ndr, "%s: ARRAY(%d)", "types", (int)r->count);
18239 ndr->depth++;
18240 for (cntr_types_1=0;cntr_types_1<r->count;cntr_types_1++) {
18241 char *idx_1=NULL;
18242 if (asprintf(&idx_1, "[%d]", cntr_types_1) != -1) {
18243 ndr_print_spoolss_NotifyOptionType(ndr, "types", &r->types[cntr_types_1]);
18244 free(idx_1);
18247 ndr->depth--;
18249 ndr->depth--;
18250 ndr->depth--;
18253 static enum ndr_err_code ndr_push_spoolss_NotifyString(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyString *r)
18255 if (ndr_flags & NDR_SCALARS) {
18256 NDR_CHECK(ndr_push_align(ndr, 5));
18257 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
18258 NDR_CHECK(ndr_push_unique_ptr(ndr, r->string));
18259 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18261 if (ndr_flags & NDR_BUFFERS) {
18262 if (r->string) {
18263 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->size / 2));
18264 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->string, r->size / 2, sizeof(uint16_t), CH_UTF16));
18267 return NDR_ERR_SUCCESS;
18270 static enum ndr_err_code ndr_pull_spoolss_NotifyString(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyString *r)
18272 uint32_t _ptr_string;
18273 TALLOC_CTX *_mem_save_string_0;
18274 if (ndr_flags & NDR_SCALARS) {
18275 NDR_CHECK(ndr_pull_align(ndr, 5));
18276 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
18277 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_string));
18278 if (_ptr_string) {
18279 NDR_PULL_ALLOC(ndr, r->string);
18280 } else {
18281 r->string = NULL;
18283 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
18285 if (ndr_flags & NDR_BUFFERS) {
18286 if (r->string) {
18287 _mem_save_string_0 = NDR_PULL_GET_MEM_CTX(ndr);
18288 NDR_PULL_SET_MEM_CTX(ndr, r->string, 0);
18289 NDR_CHECK(ndr_pull_array_size(ndr, &r->string));
18290 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->string, ndr_get_array_size(ndr, &r->string), sizeof(uint16_t), CH_UTF16));
18291 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_string_0, 0);
18293 if (r->string) {
18294 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->string, r->size / 2));
18297 return NDR_ERR_SUCCESS;
18300 _PUBLIC_ void ndr_print_spoolss_NotifyString(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyString *r)
18302 ndr_print_struct(ndr, name, "spoolss_NotifyString");
18303 ndr->depth++;
18304 ndr_print_uint32(ndr, "size", r->size);
18305 ndr_print_ptr(ndr, "string", r->string);
18306 ndr->depth++;
18307 if (r->string) {
18308 ndr_print_string(ndr, "string", r->string);
18310 ndr->depth--;
18311 ndr->depth--;
18314 static enum ndr_err_code ndr_push_spoolss_NotifyTable(struct ndr_push *ndr, int ndr_flags, enum spoolss_NotifyTable r)
18316 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
18317 return NDR_ERR_SUCCESS;
18320 static enum ndr_err_code ndr_pull_spoolss_NotifyTable(struct ndr_pull *ndr, int ndr_flags, enum spoolss_NotifyTable *r)
18322 uint32_t v;
18323 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
18324 *r = v;
18325 return NDR_ERR_SUCCESS;
18328 _PUBLIC_ void ndr_print_spoolss_NotifyTable(struct ndr_print *ndr, const char *name, enum spoolss_NotifyTable r)
18330 const char *val = NULL;
18332 switch (r) {
18333 case NOTIFY_TABLE_DWORD: val = "NOTIFY_TABLE_DWORD"; break;
18334 case NOTIFY_TABLE_STRING: val = "NOTIFY_TABLE_STRING"; break;
18335 case NOTIFY_TABLE_DEVMODE: val = "NOTIFY_TABLE_DEVMODE"; break;
18336 case NOTIFY_TABLE_TIME: val = "NOTIFY_TABLE_TIME"; break;
18337 case NOTIFY_TABLE_SECURITYDESCRIPTOR: val = "NOTIFY_TABLE_SECURITYDESCRIPTOR"; break;
18339 ndr_print_enum(ndr, name, "ENUM", val, r);
18342 static enum ndr_err_code ndr_push_spoolss_NotifyData(struct ndr_push *ndr, int ndr_flags, const union spoolss_NotifyData *r)
18344 if (ndr_flags & NDR_SCALARS) {
18345 int level = ndr_push_get_switch_value(ndr, r);
18346 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
18347 NDR_CHECK(ndr_push_union_align(ndr, 5));
18348 switch (level) {
18349 case 1: {
18350 uint32_t cntr_integer_0;
18351 for (cntr_integer_0 = 0; cntr_integer_0 < 2; cntr_integer_0++) {
18352 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->integer[cntr_integer_0]));
18354 break; }
18356 case 2: {
18357 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr, NDR_SCALARS, &r->string));
18358 break; }
18360 case 3: {
18361 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS, &r->devmode));
18362 break; }
18364 case 4: {
18365 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr, NDR_SCALARS, &r->time));
18366 break; }
18368 case 5: {
18369 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sd));
18370 break; }
18372 default:
18373 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18376 if (ndr_flags & NDR_BUFFERS) {
18377 int level = ndr_push_get_switch_value(ndr, r);
18378 switch (level) {
18379 case 1:
18380 break;
18382 case 2:
18383 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr, NDR_BUFFERS, &r->string));
18384 break;
18386 case 3:
18387 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_BUFFERS, &r->devmode));
18388 break;
18390 case 4:
18391 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr, NDR_BUFFERS, &r->time));
18392 break;
18394 case 5:
18395 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd));
18396 break;
18398 default:
18399 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18402 return NDR_ERR_SUCCESS;
18405 static enum ndr_err_code ndr_pull_spoolss_NotifyData(struct ndr_pull *ndr, int ndr_flags, union spoolss_NotifyData *r)
18407 int level;
18408 uint32_t _level;
18409 level = ndr_pull_get_switch_value(ndr, r);
18410 if (ndr_flags & NDR_SCALARS) {
18411 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
18412 if (_level != level) {
18413 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
18415 NDR_CHECK(ndr_pull_union_align(ndr, 5));
18416 switch (level) {
18417 case 1: {
18418 uint32_t cntr_integer_0;
18419 for (cntr_integer_0 = 0; cntr_integer_0 < 2; cntr_integer_0++) {
18420 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->integer[cntr_integer_0]));
18422 break; }
18424 case 2: {
18425 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr, NDR_SCALARS, &r->string));
18426 break; }
18428 case 3: {
18429 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS, &r->devmode));
18430 break; }
18432 case 4: {
18433 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr, NDR_SCALARS, &r->time));
18434 break; }
18436 case 5: {
18437 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sd));
18438 break; }
18440 default:
18441 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18444 if (ndr_flags & NDR_BUFFERS) {
18445 switch (level) {
18446 case 1:
18447 break;
18449 case 2:
18450 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr, NDR_BUFFERS, &r->string));
18451 break;
18453 case 3:
18454 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_BUFFERS, &r->devmode));
18455 break;
18457 case 4:
18458 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr, NDR_BUFFERS, &r->time));
18459 break;
18461 case 5:
18462 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd));
18463 break;
18465 default:
18466 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18469 return NDR_ERR_SUCCESS;
18472 _PUBLIC_ void ndr_print_spoolss_NotifyData(struct ndr_print *ndr, const char *name, const union spoolss_NotifyData *r)
18474 int level;
18475 uint32_t cntr_integer_0;
18476 level = ndr_print_get_switch_value(ndr, r);
18477 ndr_print_union(ndr, name, level, "spoolss_NotifyData");
18478 switch (level) {
18479 case 1:
18480 ndr->print(ndr, "%s: ARRAY(%d)", "integer", (int)2);
18481 ndr->depth++;
18482 for (cntr_integer_0=0;cntr_integer_0<2;cntr_integer_0++) {
18483 char *idx_0=NULL;
18484 if (asprintf(&idx_0, "[%d]", cntr_integer_0) != -1) {
18485 ndr_print_uint32(ndr, "integer", r->integer[cntr_integer_0]);
18486 free(idx_0);
18489 ndr->depth--;
18490 break;
18492 case 2:
18493 ndr_print_spoolss_NotifyString(ndr, "string", &r->string);
18494 break;
18496 case 3:
18497 ndr_print_spoolss_DevmodeContainer(ndr, "devmode", &r->devmode);
18498 break;
18500 case 4:
18501 ndr_print_spoolss_TimeCtr(ndr, "time", &r->time);
18502 break;
18504 case 5:
18505 ndr_print_sec_desc_buf(ndr, "sd", &r->sd);
18506 break;
18508 default:
18509 ndr_print_bad_level(ndr, name, level);
18513 static enum ndr_err_code ndr_push_spoolss_Notify(struct ndr_push *ndr, int ndr_flags, const struct spoolss_Notify *r)
18515 if (ndr_flags & NDR_SCALARS) {
18516 NDR_CHECK(ndr_push_align(ndr, 5));
18517 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr, NDR_SCALARS, r->type));
18518 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->field, r->type));
18519 NDR_CHECK(ndr_push_spoolss_Field(ndr, NDR_SCALARS, &r->field));
18520 NDR_CHECK(ndr_push_spoolss_NotifyTable(ndr, NDR_SCALARS, r->variable_type));
18521 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
18522 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->data, r->variable_type));
18523 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr, NDR_SCALARS, &r->data));
18524 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18526 if (ndr_flags & NDR_BUFFERS) {
18527 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr, NDR_BUFFERS, &r->data));
18529 return NDR_ERR_SUCCESS;
18532 static enum ndr_err_code ndr_pull_spoolss_Notify(struct ndr_pull *ndr, int ndr_flags, struct spoolss_Notify *r)
18534 if (ndr_flags & NDR_SCALARS) {
18535 NDR_CHECK(ndr_pull_align(ndr, 5));
18536 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr, NDR_SCALARS, &r->type));
18537 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->field, r->type));
18538 NDR_CHECK(ndr_pull_spoolss_Field(ndr, NDR_SCALARS, &r->field));
18539 NDR_CHECK(ndr_pull_spoolss_NotifyTable(ndr, NDR_SCALARS, &r->variable_type));
18540 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
18541 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->data, r->variable_type));
18542 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr, NDR_SCALARS, &r->data));
18543 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
18545 if (ndr_flags & NDR_BUFFERS) {
18546 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr, NDR_BUFFERS, &r->data));
18548 return NDR_ERR_SUCCESS;
18551 _PUBLIC_ void ndr_print_spoolss_Notify(struct ndr_print *ndr, const char *name, const struct spoolss_Notify *r)
18553 ndr_print_struct(ndr, name, "spoolss_Notify");
18554 ndr->depth++;
18555 ndr_print_spoolss_NotifyType(ndr, "type", r->type);
18556 ndr_print_set_switch_value(ndr, &r->field, r->type);
18557 ndr_print_spoolss_Field(ndr, "field", &r->field);
18558 ndr_print_spoolss_NotifyTable(ndr, "variable_type", r->variable_type);
18559 ndr_print_uint32(ndr, "job_id", r->job_id);
18560 ndr_print_set_switch_value(ndr, &r->data, r->variable_type);
18561 ndr_print_spoolss_NotifyData(ndr, "data", &r->data);
18562 ndr->depth--;
18565 static enum ndr_err_code ndr_push_spoolss_NotifyInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyInfo *r)
18567 uint32_t cntr_notifies_0;
18568 if (ndr_flags & NDR_SCALARS) {
18569 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
18570 NDR_CHECK(ndr_push_align(ndr, 5));
18571 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
18572 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
18573 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
18574 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
18575 NDR_CHECK(ndr_push_spoolss_Notify(ndr, NDR_SCALARS, &r->notifies[cntr_notifies_0]));
18577 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18579 if (ndr_flags & NDR_BUFFERS) {
18580 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
18581 NDR_CHECK(ndr_push_spoolss_Notify(ndr, NDR_BUFFERS, &r->notifies[cntr_notifies_0]));
18584 return NDR_ERR_SUCCESS;
18587 static enum ndr_err_code ndr_pull_spoolss_NotifyInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyInfo *r)
18589 uint32_t cntr_notifies_0;
18590 TALLOC_CTX *_mem_save_notifies_0;
18591 if (ndr_flags & NDR_SCALARS) {
18592 NDR_CHECK(ndr_pull_array_size(ndr, &r->notifies));
18593 NDR_CHECK(ndr_pull_align(ndr, 5));
18594 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
18595 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
18596 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
18597 NDR_PULL_ALLOC_N(ndr, r->notifies, ndr_get_array_size(ndr, &r->notifies));
18598 _mem_save_notifies_0 = NDR_PULL_GET_MEM_CTX(ndr);
18599 NDR_PULL_SET_MEM_CTX(ndr, r->notifies, 0);
18600 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
18601 NDR_CHECK(ndr_pull_spoolss_Notify(ndr, NDR_SCALARS, &r->notifies[cntr_notifies_0]));
18603 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notifies_0, 0);
18604 if (r->notifies) {
18605 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->notifies, r->count));
18607 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
18609 if (ndr_flags & NDR_BUFFERS) {
18610 _mem_save_notifies_0 = NDR_PULL_GET_MEM_CTX(ndr);
18611 NDR_PULL_SET_MEM_CTX(ndr, r->notifies, 0);
18612 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
18613 NDR_CHECK(ndr_pull_spoolss_Notify(ndr, NDR_BUFFERS, &r->notifies[cntr_notifies_0]));
18615 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notifies_0, 0);
18617 return NDR_ERR_SUCCESS;
18620 _PUBLIC_ void ndr_print_spoolss_NotifyInfo(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyInfo *r)
18622 uint32_t cntr_notifies_0;
18623 ndr_print_struct(ndr, name, "spoolss_NotifyInfo");
18624 ndr->depth++;
18625 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
18626 ndr_print_uint32(ndr, "flags", r->flags);
18627 ndr_print_uint32(ndr, "count", r->count);
18628 ndr->print(ndr, "%s: ARRAY(%d)", "notifies", (int)r->count);
18629 ndr->depth++;
18630 for (cntr_notifies_0=0;cntr_notifies_0<r->count;cntr_notifies_0++) {
18631 char *idx_0=NULL;
18632 if (asprintf(&idx_0, "[%d]", cntr_notifies_0) != -1) {
18633 ndr_print_spoolss_Notify(ndr, "notifies", &r->notifies[cntr_notifies_0]);
18634 free(idx_0);
18637 ndr->depth--;
18638 ndr->depth--;
18641 static enum ndr_err_code ndr_push_spoolss_ReplyPrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_ReplyPrinterInfo *r)
18643 if (ndr_flags & NDR_SCALARS) {
18644 int level = ndr_push_get_switch_value(ndr, r);
18645 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
18646 NDR_CHECK(ndr_push_union_align(ndr, 5));
18647 switch (level) {
18648 case 0: {
18649 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info0));
18650 break; }
18652 default:
18653 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18656 if (ndr_flags & NDR_BUFFERS) {
18657 int level = ndr_push_get_switch_value(ndr, r);
18658 switch (level) {
18659 case 0:
18660 if (r->info0) {
18661 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
18663 break;
18665 default:
18666 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18669 return NDR_ERR_SUCCESS;
18672 static enum ndr_err_code ndr_pull_spoolss_ReplyPrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_ReplyPrinterInfo *r)
18674 int level;
18675 uint32_t _level;
18676 TALLOC_CTX *_mem_save_info0_0;
18677 level = ndr_pull_get_switch_value(ndr, r);
18678 if (ndr_flags & NDR_SCALARS) {
18679 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
18680 if (_level != level) {
18681 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
18683 NDR_CHECK(ndr_pull_union_align(ndr, 5));
18684 switch (level) {
18685 case 0: {
18686 uint32_t _ptr_info0;
18687 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0));
18688 if (_ptr_info0) {
18689 NDR_PULL_ALLOC(ndr, r->info0);
18690 } else {
18691 r->info0 = NULL;
18693 break; }
18695 default:
18696 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18699 if (ndr_flags & NDR_BUFFERS) {
18700 switch (level) {
18701 case 0:
18702 if (r->info0) {
18703 _mem_save_info0_0 = NDR_PULL_GET_MEM_CTX(ndr);
18704 NDR_PULL_SET_MEM_CTX(ndr, r->info0, 0);
18705 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
18706 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info0_0, 0);
18708 break;
18710 default:
18711 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18714 return NDR_ERR_SUCCESS;
18717 _PUBLIC_ void ndr_print_spoolss_ReplyPrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_ReplyPrinterInfo *r)
18719 int level;
18720 level = ndr_print_get_switch_value(ndr, r);
18721 ndr_print_union(ndr, name, level, "spoolss_ReplyPrinterInfo");
18722 switch (level) {
18723 case 0:
18724 ndr_print_ptr(ndr, "info0", r->info0);
18725 ndr->depth++;
18726 if (r->info0) {
18727 ndr_print_spoolss_NotifyInfo(ndr, "info0", r->info0);
18729 ndr->depth--;
18730 break;
18732 default:
18733 ndr_print_bad_level(ndr, name, level);
18737 static enum ndr_err_code ndr_push_spoolss_PrinterNotifyFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
18739 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
18740 return NDR_ERR_SUCCESS;
18743 static enum ndr_err_code ndr_pull_spoolss_PrinterNotifyFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
18745 uint32_t v;
18746 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
18747 *r = v;
18748 return NDR_ERR_SUCCESS;
18751 _PUBLIC_ void ndr_print_spoolss_PrinterNotifyFlags(struct ndr_print *ndr, const char *name, uint32_t r)
18753 ndr_print_uint32(ndr, name, r);
18754 ndr->depth++;
18755 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDED", PRINTER_NOTIFY_INFO_DISCARDED, r);
18756 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDNOTED", PRINTER_NOTIFY_INFO_DISCARDNOTED, r);
18757 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_COLOR_MISMATCH", PRINTER_NOTIFY_INFO_COLOR_MISMATCH, r);
18758 ndr->depth--;
18761 static enum ndr_err_code ndr_push_spoolss_UserLevel1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel1 *r)
18763 if (ndr_flags & NDR_SCALARS) {
18764 NDR_CHECK(ndr_push_align(ndr, 5));
18765 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
18766 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client));
18767 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
18768 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
18769 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr, NDR_SCALARS, r->major));
18770 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr, NDR_SCALARS, r->minor));
18771 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor));
18772 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18774 if (ndr_flags & NDR_BUFFERS) {
18775 if (r->client) {
18776 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
18777 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
18778 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
18779 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client, ndr_charset_length(r->client, CH_UTF16), sizeof(uint16_t), CH_UTF16));
18781 if (r->user) {
18782 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
18783 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
18784 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
18785 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
18788 return NDR_ERR_SUCCESS;
18791 static enum ndr_err_code ndr_pull_spoolss_UserLevel1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel1 *r)
18793 uint32_t _ptr_client;
18794 TALLOC_CTX *_mem_save_client_0;
18795 uint32_t _ptr_user;
18796 TALLOC_CTX *_mem_save_user_0;
18797 if (ndr_flags & NDR_SCALARS) {
18798 NDR_CHECK(ndr_pull_align(ndr, 5));
18799 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
18800 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client));
18801 if (_ptr_client) {
18802 NDR_PULL_ALLOC(ndr, r->client);
18803 } else {
18804 r->client = NULL;
18806 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
18807 if (_ptr_user) {
18808 NDR_PULL_ALLOC(ndr, r->user);
18809 } else {
18810 r->user = NULL;
18812 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
18813 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr, NDR_SCALARS, &r->major));
18814 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr, NDR_SCALARS, &r->minor));
18815 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor));
18816 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
18818 if (ndr_flags & NDR_BUFFERS) {
18819 if (r->client) {
18820 _mem_save_client_0 = NDR_PULL_GET_MEM_CTX(ndr);
18821 NDR_PULL_SET_MEM_CTX(ndr, r->client, 0);
18822 NDR_CHECK(ndr_pull_array_size(ndr, &r->client));
18823 NDR_CHECK(ndr_pull_array_length(ndr, &r->client));
18824 if (ndr_get_array_length(ndr, &r->client) > ndr_get_array_size(ndr, &r->client)) {
18825 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->client), ndr_get_array_length(ndr, &r->client));
18827 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t)));
18828 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t), CH_UTF16));
18829 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0);
18831 if (r->user) {
18832 _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
18833 NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
18834 NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
18835 NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
18836 if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) {
18837 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->user), ndr_get_array_length(ndr, &r->user));
18839 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t)));
18840 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16));
18841 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
18844 return NDR_ERR_SUCCESS;
18847 _PUBLIC_ void ndr_print_spoolss_UserLevel1(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel1 *r)
18849 ndr_print_struct(ndr, name, "spoolss_UserLevel1");
18850 ndr->depth++;
18851 ndr_print_uint32(ndr, "size", r->size);
18852 ndr_print_ptr(ndr, "client", r->client);
18853 ndr->depth++;
18854 if (r->client) {
18855 ndr_print_string(ndr, "client", r->client);
18857 ndr->depth--;
18858 ndr_print_ptr(ndr, "user", r->user);
18859 ndr->depth++;
18860 if (r->user) {
18861 ndr_print_string(ndr, "user", r->user);
18863 ndr->depth--;
18864 ndr_print_uint32(ndr, "build", r->build);
18865 ndr_print_spoolss_MajorVersion(ndr, "major", r->major);
18866 ndr_print_spoolss_MinorVersion(ndr, "minor", r->minor);
18867 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor", r->processor);
18868 ndr->depth--;
18871 static enum ndr_err_code ndr_push_spoolss_UserLevel2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel2 *r)
18873 if (ndr_flags & NDR_SCALARS) {
18874 NDR_CHECK(ndr_push_align(ndr, 4));
18875 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->not_used));
18876 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
18878 if (ndr_flags & NDR_BUFFERS) {
18880 return NDR_ERR_SUCCESS;
18883 static enum ndr_err_code ndr_pull_spoolss_UserLevel2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel2 *r)
18885 if (ndr_flags & NDR_SCALARS) {
18886 NDR_CHECK(ndr_pull_align(ndr, 4));
18887 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->not_used));
18888 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
18890 if (ndr_flags & NDR_BUFFERS) {
18892 return NDR_ERR_SUCCESS;
18895 _PUBLIC_ void ndr_print_spoolss_UserLevel2(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel2 *r)
18897 ndr_print_struct(ndr, name, "spoolss_UserLevel2");
18898 ndr->depth++;
18899 ndr_print_uint32(ndr, "not_used", r->not_used);
18900 ndr->depth--;
18903 static enum ndr_err_code ndr_push_spoolss_UserLevel3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel3 *r)
18905 if (ndr_flags & NDR_SCALARS) {
18906 NDR_CHECK(ndr_push_align(ndr, 5));
18907 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
18908 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
18909 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size2));
18910 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client));
18911 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
18912 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
18913 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr, NDR_SCALARS, r->major));
18914 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr, NDR_SCALARS, r->minor));
18915 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor));
18916 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->reserved));
18917 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18919 if (ndr_flags & NDR_BUFFERS) {
18920 if (r->client) {
18921 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
18922 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
18923 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
18924 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client, ndr_charset_length(r->client, CH_UTF16), sizeof(uint16_t), CH_UTF16));
18926 if (r->user) {
18927 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
18928 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
18929 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
18930 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
18933 return NDR_ERR_SUCCESS;
18936 static enum ndr_err_code ndr_pull_spoolss_UserLevel3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel3 *r)
18938 uint32_t _ptr_client;
18939 TALLOC_CTX *_mem_save_client_0;
18940 uint32_t _ptr_user;
18941 TALLOC_CTX *_mem_save_user_0;
18942 if (ndr_flags & NDR_SCALARS) {
18943 NDR_CHECK(ndr_pull_align(ndr, 5));
18944 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
18945 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
18946 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size2));
18947 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client));
18948 if (_ptr_client) {
18949 NDR_PULL_ALLOC(ndr, r->client);
18950 } else {
18951 r->client = NULL;
18953 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
18954 if (_ptr_user) {
18955 NDR_PULL_ALLOC(ndr, r->user);
18956 } else {
18957 r->user = NULL;
18959 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
18960 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr, NDR_SCALARS, &r->major));
18961 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr, NDR_SCALARS, &r->minor));
18962 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor));
18963 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->reserved));
18964 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
18966 if (ndr_flags & NDR_BUFFERS) {
18967 if (r->client) {
18968 _mem_save_client_0 = NDR_PULL_GET_MEM_CTX(ndr);
18969 NDR_PULL_SET_MEM_CTX(ndr, r->client, 0);
18970 NDR_CHECK(ndr_pull_array_size(ndr, &r->client));
18971 NDR_CHECK(ndr_pull_array_length(ndr, &r->client));
18972 if (ndr_get_array_length(ndr, &r->client) > ndr_get_array_size(ndr, &r->client)) {
18973 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->client), ndr_get_array_length(ndr, &r->client));
18975 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t)));
18976 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t), CH_UTF16));
18977 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0);
18979 if (r->user) {
18980 _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
18981 NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
18982 NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
18983 NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
18984 if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) {
18985 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->user), ndr_get_array_length(ndr, &r->user));
18987 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t)));
18988 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16));
18989 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
18992 return NDR_ERR_SUCCESS;
18995 _PUBLIC_ void ndr_print_spoolss_UserLevel3(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel3 *r)
18997 ndr_print_struct(ndr, name, "spoolss_UserLevel3");
18998 ndr->depth++;
18999 ndr_print_uint32(ndr, "size", r->size);
19000 ndr_print_uint32(ndr, "flags", r->flags);
19001 ndr_print_uint32(ndr, "size2", r->size2);
19002 ndr_print_ptr(ndr, "client", r->client);
19003 ndr->depth++;
19004 if (r->client) {
19005 ndr_print_string(ndr, "client", r->client);
19007 ndr->depth--;
19008 ndr_print_ptr(ndr, "user", r->user);
19009 ndr->depth++;
19010 if (r->user) {
19011 ndr_print_string(ndr, "user", r->user);
19013 ndr->depth--;
19014 ndr_print_uint32(ndr, "build", r->build);
19015 ndr_print_spoolss_MajorVersion(ndr, "major", r->major);
19016 ndr_print_spoolss_MinorVersion(ndr, "minor", r->minor);
19017 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor", r->processor);
19018 ndr_print_udlong(ndr, "reserved", r->reserved);
19019 ndr->depth--;
19022 static enum ndr_err_code ndr_push_spoolss_UserLevel(struct ndr_push *ndr, int ndr_flags, const union spoolss_UserLevel *r)
19024 if (ndr_flags & NDR_SCALARS) {
19025 int level = ndr_push_get_switch_value(ndr, r);
19026 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
19027 NDR_CHECK(ndr_push_union_align(ndr, 5));
19028 switch (level) {
19029 case 1: {
19030 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level1));
19031 break; }
19033 case 2: {
19034 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level2));
19035 break; }
19037 case 3: {
19038 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level3));
19039 break; }
19041 default:
19042 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19045 if (ndr_flags & NDR_BUFFERS) {
19046 int level = ndr_push_get_switch_value(ndr, r);
19047 switch (level) {
19048 case 1:
19049 if (r->level1) {
19050 NDR_CHECK(ndr_push_spoolss_UserLevel1(ndr, NDR_SCALARS|NDR_BUFFERS, r->level1));
19052 break;
19054 case 2:
19055 if (r->level2) {
19056 NDR_CHECK(ndr_push_spoolss_UserLevel2(ndr, NDR_SCALARS, r->level2));
19058 break;
19060 case 3:
19061 if (r->level3) {
19062 NDR_CHECK(ndr_push_spoolss_UserLevel3(ndr, NDR_SCALARS|NDR_BUFFERS, r->level3));
19064 break;
19066 default:
19067 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19070 return NDR_ERR_SUCCESS;
19073 static enum ndr_err_code ndr_pull_spoolss_UserLevel(struct ndr_pull *ndr, int ndr_flags, union spoolss_UserLevel *r)
19075 int level;
19076 uint32_t _level;
19077 TALLOC_CTX *_mem_save_level1_0;
19078 TALLOC_CTX *_mem_save_level2_0;
19079 TALLOC_CTX *_mem_save_level3_0;
19080 level = ndr_pull_get_switch_value(ndr, r);
19081 if (ndr_flags & NDR_SCALARS) {
19082 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
19083 if (_level != level) {
19084 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
19086 NDR_CHECK(ndr_pull_union_align(ndr, 5));
19087 switch (level) {
19088 case 1: {
19089 uint32_t _ptr_level1;
19090 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level1));
19091 if (_ptr_level1) {
19092 NDR_PULL_ALLOC(ndr, r->level1);
19093 } else {
19094 r->level1 = NULL;
19096 break; }
19098 case 2: {
19099 uint32_t _ptr_level2;
19100 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level2));
19101 if (_ptr_level2) {
19102 NDR_PULL_ALLOC(ndr, r->level2);
19103 } else {
19104 r->level2 = NULL;
19106 break; }
19108 case 3: {
19109 uint32_t _ptr_level3;
19110 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level3));
19111 if (_ptr_level3) {
19112 NDR_PULL_ALLOC(ndr, r->level3);
19113 } else {
19114 r->level3 = NULL;
19116 break; }
19118 default:
19119 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19122 if (ndr_flags & NDR_BUFFERS) {
19123 switch (level) {
19124 case 1:
19125 if (r->level1) {
19126 _mem_save_level1_0 = NDR_PULL_GET_MEM_CTX(ndr);
19127 NDR_PULL_SET_MEM_CTX(ndr, r->level1, 0);
19128 NDR_CHECK(ndr_pull_spoolss_UserLevel1(ndr, NDR_SCALARS|NDR_BUFFERS, r->level1));
19129 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level1_0, 0);
19131 break;
19133 case 2:
19134 if (r->level2) {
19135 _mem_save_level2_0 = NDR_PULL_GET_MEM_CTX(ndr);
19136 NDR_PULL_SET_MEM_CTX(ndr, r->level2, 0);
19137 NDR_CHECK(ndr_pull_spoolss_UserLevel2(ndr, NDR_SCALARS, r->level2));
19138 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level2_0, 0);
19140 break;
19142 case 3:
19143 if (r->level3) {
19144 _mem_save_level3_0 = NDR_PULL_GET_MEM_CTX(ndr);
19145 NDR_PULL_SET_MEM_CTX(ndr, r->level3, 0);
19146 NDR_CHECK(ndr_pull_spoolss_UserLevel3(ndr, NDR_SCALARS|NDR_BUFFERS, r->level3));
19147 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level3_0, 0);
19149 break;
19151 default:
19152 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19155 return NDR_ERR_SUCCESS;
19158 _PUBLIC_ void ndr_print_spoolss_UserLevel(struct ndr_print *ndr, const char *name, const union spoolss_UserLevel *r)
19160 int level;
19161 level = ndr_print_get_switch_value(ndr, r);
19162 ndr_print_union(ndr, name, level, "spoolss_UserLevel");
19163 switch (level) {
19164 case 1:
19165 ndr_print_ptr(ndr, "level1", r->level1);
19166 ndr->depth++;
19167 if (r->level1) {
19168 ndr_print_spoolss_UserLevel1(ndr, "level1", r->level1);
19170 ndr->depth--;
19171 break;
19173 case 2:
19174 ndr_print_ptr(ndr, "level2", r->level2);
19175 ndr->depth++;
19176 if (r->level2) {
19177 ndr_print_spoolss_UserLevel2(ndr, "level2", r->level2);
19179 ndr->depth--;
19180 break;
19182 case 3:
19183 ndr_print_ptr(ndr, "level3", r->level3);
19184 ndr->depth++;
19185 if (r->level3) {
19186 ndr_print_spoolss_UserLevel3(ndr, "level3", r->level3);
19188 ndr->depth--;
19189 break;
19191 default:
19192 ndr_print_bad_level(ndr, name, level);
19196 static enum ndr_err_code ndr_push_spoolss_UserLevelCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevelCtr *r)
19198 if (ndr_flags & NDR_SCALARS) {
19199 NDR_CHECK(ndr_push_align(ndr, 5));
19200 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
19201 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->user_info, r->level));
19202 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_SCALARS, &r->user_info));
19203 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
19205 if (ndr_flags & NDR_BUFFERS) {
19206 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_BUFFERS, &r->user_info));
19208 return NDR_ERR_SUCCESS;
19211 static enum ndr_err_code ndr_pull_spoolss_UserLevelCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevelCtr *r)
19213 if (ndr_flags & NDR_SCALARS) {
19214 NDR_CHECK(ndr_pull_align(ndr, 5));
19215 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
19216 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->user_info, r->level));
19217 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_SCALARS, &r->user_info));
19218 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
19220 if (ndr_flags & NDR_BUFFERS) {
19221 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_BUFFERS, &r->user_info));
19223 return NDR_ERR_SUCCESS;
19226 _PUBLIC_ void ndr_print_spoolss_UserLevelCtr(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevelCtr *r)
19228 ndr_print_struct(ndr, name, "spoolss_UserLevelCtr");
19229 ndr->depth++;
19230 ndr_print_uint32(ndr, "level", r->level);
19231 ndr_print_set_switch_value(ndr, &r->user_info, r->level);
19232 ndr_print_spoolss_UserLevel(ndr, "user_info", &r->user_info);
19233 ndr->depth--;
19236 static enum ndr_err_code ndr_push_spoolss_AccessRights(struct ndr_push *ndr, int ndr_flags, uint32_t r)
19238 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
19239 return NDR_ERR_SUCCESS;
19242 static enum ndr_err_code ndr_pull_spoolss_AccessRights(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
19244 uint32_t v;
19245 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
19246 *r = v;
19247 return NDR_ERR_SUCCESS;
19250 _PUBLIC_ void ndr_print_spoolss_AccessRights(struct ndr_print *ndr, const char *name, uint32_t r)
19252 ndr_print_uint32(ndr, name, r);
19253 ndr->depth++;
19254 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SERVER_ACCESS_ADMINISTER", SERVER_ACCESS_ADMINISTER, r);
19255 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SERVER_ACCESS_ENUMERATE", SERVER_ACCESS_ENUMERATE, r);
19256 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ACCESS_ADMINISTER", PRINTER_ACCESS_ADMINISTER, r);
19257 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ACCESS_USE", PRINTER_ACCESS_USE, r);
19258 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_ACCESS_ADMINISTER", JOB_ACCESS_ADMINISTER, r);
19259 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_ACCESS_READ", JOB_ACCESS_READ, r);
19260 ndr->depth--;
19263 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterEnumValues(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterEnumValues *r)
19265 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
19266 if (ndr_flags & NDR_SCALARS) {
19267 NDR_CHECK(ndr_push_align(ndr, 5));
19268 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
19270 uint32_t _flags_save_string = ndr->flags;
19271 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19272 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->value_name));
19273 ndr->flags = _flags_save_string;
19275 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2 * strlen_m_term(r->value_name)));
19276 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->type));
19277 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data));
19278 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_PrinterData(r->data, r->type, ndr->iconv_convenience, ndr->flags)));
19279 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
19281 if (ndr_flags & NDR_BUFFERS) {
19282 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
19284 uint32_t _flags_save_string = ndr->flags;
19285 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19286 if (r->value_name) {
19287 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->value_name));
19288 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->value_name));
19290 ndr->flags = _flags_save_string;
19292 if (r->data) {
19293 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data));
19295 struct ndr_push *_ndr_data;
19296 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_data, 0, r->data_length));
19297 NDR_CHECK(ndr_push_set_switch_value(_ndr_data, r->data, r->type));
19298 NDR_CHECK(ndr_push_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, r->data));
19299 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_data, 0, r->data_length));
19303 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
19304 return NDR_ERR_SUCCESS;
19307 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterEnumValues(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterEnumValues *r)
19309 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
19310 uint32_t _ptr_value_name;
19311 TALLOC_CTX *_mem_save_value_name_0;
19312 uint32_t _ptr_data;
19313 TALLOC_CTX *_mem_save_data_0;
19314 if (ndr_flags & NDR_SCALARS) {
19315 NDR_CHECK(ndr_pull_align(ndr, 5));
19316 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
19318 uint32_t _flags_save_string = ndr->flags;
19319 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19320 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_value_name));
19321 if (_ptr_value_name) {
19322 NDR_PULL_ALLOC(ndr, r->value_name);
19323 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->value_name, _ptr_value_name));
19324 } else {
19325 r->value_name = NULL;
19327 ndr->flags = _flags_save_string;
19329 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->value_name_len));
19330 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->type));
19331 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
19332 if (_ptr_data) {
19333 NDR_PULL_ALLOC(ndr, r->data);
19334 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data, _ptr_data));
19335 } else {
19336 r->data = NULL;
19338 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->data_length));
19339 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
19341 if (ndr_flags & NDR_BUFFERS) {
19342 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
19344 uint32_t _flags_save_string = ndr->flags;
19345 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19346 if (r->value_name) {
19347 uint32_t _relative_save_offset;
19348 _relative_save_offset = ndr->offset;
19349 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->value_name));
19350 _mem_save_value_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
19351 NDR_PULL_SET_MEM_CTX(ndr, r->value_name, 0);
19352 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->value_name));
19353 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_name_0, 0);
19354 ndr->offset = _relative_save_offset;
19356 ndr->flags = _flags_save_string;
19358 if (r->data) {
19359 uint32_t _relative_save_offset;
19360 _relative_save_offset = ndr->offset;
19361 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data));
19362 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
19363 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
19365 struct ndr_pull *_ndr_data;
19366 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_data, 0, r->data_length));
19367 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data, r->data, r->type));
19368 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, r->data));
19369 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_data, 0, r->data_length));
19371 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
19372 ndr->offset = _relative_save_offset;
19375 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
19376 return NDR_ERR_SUCCESS;
19379 _PUBLIC_ void ndr_print_spoolss_PrinterEnumValues(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterEnumValues *r)
19381 ndr_print_struct(ndr, name, "spoolss_PrinterEnumValues");
19382 ndr->depth++;
19383 ndr_print_ptr(ndr, "value_name", r->value_name);
19384 ndr->depth++;
19385 if (r->value_name) {
19386 ndr_print_string(ndr, "value_name", r->value_name);
19388 ndr->depth--;
19389 ndr_print_uint32(ndr, "value_name_len", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2 * strlen_m_term(r->value_name):r->value_name_len);
19390 ndr_print_winreg_Type(ndr, "type", r->type);
19391 ndr_print_ptr(ndr, "data", r->data);
19392 ndr->depth++;
19393 if (r->data) {
19394 ndr_print_set_switch_value(ndr, r->data, r->type);
19395 ndr_print_spoolss_PrinterData(ndr, "data", r->data);
19397 ndr->depth--;
19398 ndr_print_uint32(ndr, "data_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_spoolss_PrinterData(r->data, r->type, ndr->iconv_convenience, ndr->flags):r->data_length);
19399 ndr->depth--;
19402 _PUBLIC_ size_t ndr_size_spoolss_PrinterEnumValues(const struct spoolss_PrinterEnumValues *r, struct smb_iconv_convenience *ic, int flags)
19404 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterEnumValues, ic);
19407 static enum ndr_err_code ndr_push_spoolss_KeyNames(struct ndr_push *ndr, int ndr_flags, const union spoolss_KeyNames *r)
19409 if (ndr_flags & NDR_SCALARS) {
19410 int level = ndr_push_get_switch_value(ndr, r);
19411 NDR_CHECK(ndr_push_union_align(ndr, 4));
19412 switch (level) {
19413 case 0: {
19414 break; }
19416 case 1: {
19417 break; }
19419 default: {
19421 uint32_t _flags_save_string_array = ndr->flags;
19422 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19423 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string_array));
19424 ndr->flags = _flags_save_string_array;
19426 break; }
19430 if (ndr_flags & NDR_BUFFERS) {
19431 int level = ndr_push_get_switch_value(ndr, r);
19432 switch (level) {
19433 case 0:
19434 break;
19436 case 1:
19437 break;
19439 default:
19440 break;
19444 return NDR_ERR_SUCCESS;
19447 static enum ndr_err_code ndr_pull_spoolss_KeyNames(struct ndr_pull *ndr, int ndr_flags, union spoolss_KeyNames *r)
19449 int level;
19450 level = ndr_pull_get_switch_value(ndr, r);
19451 if (ndr_flags & NDR_SCALARS) {
19452 NDR_CHECK(ndr_pull_union_align(ndr, 4));
19453 switch (level) {
19454 case 0: {
19455 break; }
19457 case 1: {
19458 break; }
19460 default: {
19462 uint32_t _flags_save_string_array = ndr->flags;
19463 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19464 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string_array));
19465 ndr->flags = _flags_save_string_array;
19467 break; }
19471 if (ndr_flags & NDR_BUFFERS) {
19472 switch (level) {
19473 case 0:
19474 break;
19476 case 1:
19477 break;
19479 default:
19480 break;
19484 return NDR_ERR_SUCCESS;
19487 _PUBLIC_ void ndr_print_spoolss_KeyNames(struct ndr_print *ndr, const char *name, const union spoolss_KeyNames *r)
19489 int level;
19490 level = ndr_print_get_switch_value(ndr, r);
19491 ndr_print_union(ndr, name, level, "spoolss_KeyNames");
19492 switch (level) {
19493 case 0:
19494 break;
19496 case 1:
19497 break;
19499 default:
19500 ndr_print_string_array(ndr, "string_array", r->string_array);
19501 break;
19506 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DeleteDriverFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
19508 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
19509 return NDR_ERR_SUCCESS;
19512 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DeleteDriverFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
19514 uint32_t v;
19515 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
19516 *r = v;
19517 return NDR_ERR_SUCCESS;
19520 _PUBLIC_ void ndr_print_spoolss_DeleteDriverFlags(struct ndr_print *ndr, const char *name, uint32_t r)
19522 ndr_print_uint32(ndr, name, r);
19523 ndr->depth++;
19524 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_UNUSED_FILES", DPD_DELETE_UNUSED_FILES, r);
19525 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_SPECIFIC_VERSION", DPD_DELETE_SPECIFIC_VERSION, r);
19526 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_ALL_FILES", DPD_DELETE_ALL_FILES, r);
19527 ndr->depth--;
19530 static enum ndr_err_code ndr_push_spoolss_PortProtocol(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortProtocol r)
19532 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
19533 return NDR_ERR_SUCCESS;
19536 static enum ndr_err_code ndr_pull_spoolss_PortProtocol(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortProtocol *r)
19538 uint32_t v;
19539 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
19540 *r = v;
19541 return NDR_ERR_SUCCESS;
19544 _PUBLIC_ void ndr_print_spoolss_PortProtocol(struct ndr_print *ndr, const char *name, enum spoolss_PortProtocol r)
19546 const char *val = NULL;
19548 switch (r) {
19549 case PROTOCOL_RAWTCP_TYPE: val = "PROTOCOL_RAWTCP_TYPE"; break;
19550 case PROTOCOL_LPR_TYPE: val = "PROTOCOL_LPR_TYPE"; break;
19552 ndr_print_enum(ndr, name, "ENUM", val, r);
19555 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortData1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortData1 *r)
19557 if (ndr_flags & NDR_SCALARS) {
19558 NDR_CHECK(ndr_push_align(ndr, 4));
19559 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, 64, sizeof(uint16_t), CH_UTF16));
19560 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0x00000001));
19561 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr, NDR_SCALARS, r->protocol));
19562 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, sizeof(r)));
19563 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
19564 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hostaddress, 49, sizeof(uint16_t), CH_UTF16));
19565 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
19566 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dblspool));
19567 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->queue, 33, sizeof(uint16_t), CH_UTF16));
19568 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->ip_address, 16, sizeof(uint16_t), CH_UTF16));
19569 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_address, 13, sizeof(uint16_t), CH_UTF16));
19570 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->device_type, 257, sizeof(uint16_t), CH_UTF16));
19571 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_number));
19572 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_enabled));
19573 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_dev_index));
19574 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
19576 if (ndr_flags & NDR_BUFFERS) {
19578 return NDR_ERR_SUCCESS;
19581 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortData1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortData1 *r)
19583 if (ndr_flags & NDR_SCALARS) {
19584 NDR_CHECK(ndr_pull_align(ndr, 4));
19585 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, 64, sizeof(uint16_t), CH_UTF16));
19586 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
19587 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr, NDR_SCALARS, &r->protocol));
19588 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
19589 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
19590 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hostaddress, 49, sizeof(uint16_t), CH_UTF16));
19591 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
19592 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dblspool));
19593 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->queue, 33, sizeof(uint16_t), CH_UTF16));
19594 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->ip_address, 16, sizeof(uint16_t), CH_UTF16));
19595 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_address, 13, sizeof(uint16_t), CH_UTF16));
19596 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device_type, 257, sizeof(uint16_t), CH_UTF16));
19597 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_number));
19598 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_enabled));
19599 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_dev_index));
19600 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
19602 if (ndr_flags & NDR_BUFFERS) {
19604 return NDR_ERR_SUCCESS;
19607 _PUBLIC_ void ndr_print_spoolss_PortData1(struct ndr_print *ndr, const char *name, const struct spoolss_PortData1 *r)
19609 ndr_print_struct(ndr, name, "spoolss_PortData1");
19610 ndr->depth++;
19611 ndr_print_string(ndr, "portname", r->portname);
19612 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x00000001:r->version);
19613 ndr_print_spoolss_PortProtocol(ndr, "protocol", r->protocol);
19614 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?sizeof(r):r->size);
19615 ndr_print_uint32(ndr, "reserved", r->reserved);
19616 ndr_print_string(ndr, "hostaddress", r->hostaddress);
19617 ndr_print_string(ndr, "snmpcommunity", r->snmpcommunity);
19618 ndr_print_uint32(ndr, "dblspool", r->dblspool);
19619 ndr_print_string(ndr, "queue", r->queue);
19620 ndr_print_string(ndr, "ip_address", r->ip_address);
19621 ndr_print_string(ndr, "hardware_address", r->hardware_address);
19622 ndr_print_string(ndr, "device_type", r->device_type);
19623 ndr_print_uint32(ndr, "port_number", r->port_number);
19624 ndr_print_uint32(ndr, "snmp_enabled", r->snmp_enabled);
19625 ndr_print_uint32(ndr, "snmp_dev_index", r->snmp_dev_index);
19626 ndr->depth--;
19629 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortData2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortData2 *r)
19631 if (ndr_flags & NDR_SCALARS) {
19632 NDR_CHECK(ndr_push_align(ndr, 4));
19633 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, 64, sizeof(uint16_t), CH_UTF16));
19634 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0x00000002));
19635 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr, NDR_SCALARS, r->protocol));
19636 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, sizeof(r)));
19637 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
19638 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hostaddress, 128, sizeof(uint16_t), CH_UTF16));
19639 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
19640 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dblspool));
19641 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->queue, 33, sizeof(uint16_t), CH_UTF16));
19642 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->device_type, 257, sizeof(uint16_t), CH_UTF16));
19643 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_number));
19644 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_enabled));
19645 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_dev_index));
19646 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_monitor_mib_index));
19647 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
19649 if (ndr_flags & NDR_BUFFERS) {
19651 return NDR_ERR_SUCCESS;
19654 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortData2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortData2 *r)
19656 if (ndr_flags & NDR_SCALARS) {
19657 NDR_CHECK(ndr_pull_align(ndr, 4));
19658 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, 64, sizeof(uint16_t), CH_UTF16));
19659 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
19660 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr, NDR_SCALARS, &r->protocol));
19661 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
19662 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
19663 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hostaddress, 128, sizeof(uint16_t), CH_UTF16));
19664 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
19665 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dblspool));
19666 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->queue, 33, sizeof(uint16_t), CH_UTF16));
19667 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device_type, 257, sizeof(uint16_t), CH_UTF16));
19668 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_number));
19669 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_enabled));
19670 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_dev_index));
19671 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_monitor_mib_index));
19672 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
19674 if (ndr_flags & NDR_BUFFERS) {
19676 return NDR_ERR_SUCCESS;
19679 _PUBLIC_ void ndr_print_spoolss_PortData2(struct ndr_print *ndr, const char *name, const struct spoolss_PortData2 *r)
19681 ndr_print_struct(ndr, name, "spoolss_PortData2");
19682 ndr->depth++;
19683 ndr_print_string(ndr, "portname", r->portname);
19684 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x00000002:r->version);
19685 ndr_print_spoolss_PortProtocol(ndr, "protocol", r->protocol);
19686 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?sizeof(r):r->size);
19687 ndr_print_uint32(ndr, "reserved", r->reserved);
19688 ndr_print_string(ndr, "hostaddress", r->hostaddress);
19689 ndr_print_string(ndr, "snmpcommunity", r->snmpcommunity);
19690 ndr_print_uint32(ndr, "dblspool", r->dblspool);
19691 ndr_print_string(ndr, "queue", r->queue);
19692 ndr_print_string(ndr, "device_type", r->device_type);
19693 ndr_print_uint32(ndr, "port_number", r->port_number);
19694 ndr_print_uint32(ndr, "snmp_enabled", r->snmp_enabled);
19695 ndr_print_uint32(ndr, "snmp_dev_index", r->snmp_dev_index);
19696 ndr_print_uint32(ndr, "port_monitor_mib_index", r->port_monitor_mib_index);
19697 ndr->depth--;
19700 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorUi(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorUi *r)
19702 if (ndr_flags & NDR_SCALARS) {
19703 NDR_CHECK(ndr_push_align(ndr, 4));
19705 uint32_t _flags_save_string = ndr->flags;
19706 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19707 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dll_name));
19708 ndr->flags = _flags_save_string;
19710 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
19712 if (ndr_flags & NDR_BUFFERS) {
19714 return NDR_ERR_SUCCESS;
19717 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorUi(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorUi *r)
19719 if (ndr_flags & NDR_SCALARS) {
19720 NDR_CHECK(ndr_pull_align(ndr, 4));
19722 uint32_t _flags_save_string = ndr->flags;
19723 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19724 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->dll_name));
19725 ndr->flags = _flags_save_string;
19727 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
19729 if (ndr_flags & NDR_BUFFERS) {
19731 return NDR_ERR_SUCCESS;
19734 _PUBLIC_ void ndr_print_spoolss_MonitorUi(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorUi *r)
19736 ndr_print_struct(ndr, name, "spoolss_MonitorUi");
19737 ndr->depth++;
19738 ndr_print_string(ndr, "dll_name", r->dll_name);
19739 ndr->depth--;
19742 static enum ndr_err_code ndr_push_spoolss_AddPrinterDriverExFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
19744 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
19745 return NDR_ERR_SUCCESS;
19748 static enum ndr_err_code ndr_pull_spoolss_AddPrinterDriverExFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
19750 uint32_t v;
19751 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
19752 *r = v;
19753 return NDR_ERR_SUCCESS;
19756 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriverExFlags(struct ndr_print *ndr, const char *name, uint32_t r)
19758 ndr_print_uint32(ndr, name, r);
19759 ndr->depth++;
19760 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_STRICT_UPGRADE", APD_STRICT_UPGRADE, r);
19761 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_STRICT_DOWNGRADE", APD_STRICT_DOWNGRADE, r);
19762 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_ALL_FILES", APD_COPY_ALL_FILES, r);
19763 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_NEW_FILES", APD_COPY_NEW_FILES, r);
19764 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_FROM_DIRECTORY", APD_COPY_FROM_DIRECTORY, r);
19765 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_DONT_COPY_FILES_TO_CLUSTER", APD_DONT_COPY_FILES_TO_CLUSTER, r);
19766 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_TO_ALL_SPOOLERS", APD_COPY_TO_ALL_SPOOLERS, r);
19767 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_RETURN_BLOCKING_STATUS_CODE", APD_RETURN_BLOCKING_STATUS_CODE, r);
19768 ndr->depth--;
19771 static enum ndr_err_code ndr_push_spoolss_CorePrinterDriver(struct ndr_push *ndr, int ndr_flags, const struct spoolss_CorePrinterDriver *r)
19773 if (ndr_flags & NDR_SCALARS) {
19774 NDR_CHECK(ndr_push_align(ndr, 8));
19775 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->core_driver_guid));
19776 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
19777 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
19778 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->formname, 520, sizeof(uint8_t), CH_UTF8));
19779 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
19781 if (ndr_flags & NDR_BUFFERS) {
19783 return NDR_ERR_SUCCESS;
19786 static enum ndr_err_code ndr_pull_spoolss_CorePrinterDriver(struct ndr_pull *ndr, int ndr_flags, struct spoolss_CorePrinterDriver *r)
19788 if (ndr_flags & NDR_SCALARS) {
19789 NDR_CHECK(ndr_pull_align(ndr, 8));
19790 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->core_driver_guid));
19791 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
19792 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
19793 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->formname, 520, sizeof(uint8_t), CH_UTF8));
19794 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
19796 if (ndr_flags & NDR_BUFFERS) {
19798 return NDR_ERR_SUCCESS;
19801 _PUBLIC_ void ndr_print_spoolss_CorePrinterDriver(struct ndr_print *ndr, const char *name, const struct spoolss_CorePrinterDriver *r)
19803 ndr_print_struct(ndr, name, "spoolss_CorePrinterDriver");
19804 ndr->depth++;
19805 ndr_print_GUID(ndr, "core_driver_guid", &r->core_driver_guid);
19806 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
19807 ndr_print_hyper(ndr, "driver_version", r->driver_version);
19808 ndr_print_string(ndr, "formname", r->formname);
19809 ndr->depth--;
19812 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinters(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinters *r)
19814 if (flags & NDR_IN) {
19815 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, r->in.flags));
19816 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
19817 if (r->in.server) {
19818 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
19819 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
19820 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
19821 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19823 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
19824 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
19825 if (r->in.buffer) {
19826 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
19828 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
19830 if (flags & NDR_OUT) {
19831 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
19832 if (r->out.info) {
19833 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
19835 if (r->out.needed == NULL) {
19836 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19838 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
19839 if (r->out.count == NULL) {
19840 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19842 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
19843 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19845 return NDR_ERR_SUCCESS;
19848 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinters(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinters *r)
19850 uint32_t _ptr_server;
19851 uint32_t _ptr_buffer;
19852 uint32_t _ptr_info;
19853 TALLOC_CTX *_mem_save_server_0;
19854 TALLOC_CTX *_mem_save_buffer_0;
19855 TALLOC_CTX *_mem_save_info_0;
19856 TALLOC_CTX *_mem_save_needed_0;
19857 TALLOC_CTX *_mem_save_count_0;
19858 if (flags & NDR_IN) {
19859 ZERO_STRUCT(r->out);
19861 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, &r->in.flags));
19862 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
19863 if (_ptr_server) {
19864 NDR_PULL_ALLOC(ndr, r->in.server);
19865 } else {
19866 r->in.server = NULL;
19868 if (r->in.server) {
19869 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
19870 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
19871 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
19872 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
19873 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
19874 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.server), ndr_get_array_length(ndr, &r->in.server));
19876 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
19877 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
19878 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
19880 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
19881 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
19882 if (_ptr_buffer) {
19883 NDR_PULL_ALLOC(ndr, r->in.buffer);
19884 } else {
19885 r->in.buffer = NULL;
19887 if (r->in.buffer) {
19888 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
19889 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
19890 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
19891 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
19893 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
19894 NDR_PULL_ALLOC(ndr, r->out.needed);
19895 ZERO_STRUCTP(r->out.needed);
19896 NDR_PULL_ALLOC(ndr, r->out.count);
19897 ZERO_STRUCTP(r->out.count);
19899 if (flags & NDR_OUT) {
19900 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
19901 if (_ptr_info) {
19902 NDR_PULL_ALLOC(ndr, r->out.info);
19903 } else {
19904 r->out.info = NULL;
19906 if (r->out.info) {
19907 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
19908 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
19909 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
19910 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
19912 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19913 NDR_PULL_ALLOC(ndr, r->out.needed);
19915 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
19916 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
19917 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
19918 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
19919 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19920 NDR_PULL_ALLOC(ndr, r->out.count);
19922 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
19923 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
19924 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
19925 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
19926 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19928 return NDR_ERR_SUCCESS;
19931 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinters(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinters *r)
19933 uint32_t cntr_info_0;
19934 if (flags & NDR_IN) {
19935 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
19936 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
19938 if (flags & NDR_OUT) {
19939 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19940 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
19941 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
19943 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19944 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
19947 return NDR_ERR_SUCCESS;
19950 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinters(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinters *r)
19952 uint32_t cntr_info_0;
19953 TALLOC_CTX *_mem_save_info_0;
19954 if (flags & NDR_IN) {
19955 ZERO_STRUCT(r->out);
19957 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
19958 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
19960 if (flags & NDR_OUT) {
19961 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
19962 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
19963 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
19964 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19965 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
19966 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
19968 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19969 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
19971 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
19973 return NDR_ERR_SUCCESS;
19976 _PUBLIC_ void ndr_print_spoolss_EnumPrinters(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinters *r)
19978 uint32_t cntr_info_2;
19979 ndr_print_struct(ndr, name, "spoolss_EnumPrinters");
19980 ndr->depth++;
19981 if (flags & NDR_SET_VALUES) {
19982 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19984 if (flags & NDR_IN) {
19985 ndr_print_struct(ndr, "in", "spoolss_EnumPrinters");
19986 ndr->depth++;
19987 ndr_print_spoolss_EnumPrinterFlags(ndr, "flags", r->in.flags);
19988 ndr_print_ptr(ndr, "server", r->in.server);
19989 ndr->depth++;
19990 if (r->in.server) {
19991 ndr_print_string(ndr, "server", r->in.server);
19993 ndr->depth--;
19994 ndr_print_uint32(ndr, "level", r->in.level);
19995 ndr_print_ptr(ndr, "buffer", r->in.buffer);
19996 ndr->depth++;
19997 if (r->in.buffer) {
19998 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
20000 ndr->depth--;
20001 ndr_print_uint32(ndr, "offered", r->in.offered);
20002 ndr->depth--;
20004 if (flags & NDR_OUT) {
20005 ndr_print_struct(ndr, "out", "spoolss_EnumPrinters");
20006 ndr->depth++;
20007 ndr_print_ptr(ndr, "count", r->out.count);
20008 ndr->depth++;
20009 ndr_print_uint32(ndr, "count", *r->out.count);
20010 ndr->depth--;
20011 ndr_print_ptr(ndr, "info", r->out.info);
20012 ndr->depth++;
20013 ndr_print_ptr(ndr, "info", *r->out.info);
20014 ndr->depth++;
20015 if (*r->out.info) {
20016 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
20017 ndr->depth++;
20018 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
20019 char *idx_2=NULL;
20020 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
20021 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
20022 ndr_print_spoolss_PrinterInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
20023 free(idx_2);
20026 ndr->depth--;
20028 ndr->depth--;
20029 ndr->depth--;
20030 ndr_print_ptr(ndr, "needed", r->out.needed);
20031 ndr->depth++;
20032 ndr_print_uint32(ndr, "needed", *r->out.needed);
20033 ndr->depth--;
20034 ndr_print_WERROR(ndr, "result", r->out.result);
20035 ndr->depth--;
20037 ndr->depth--;
20040 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OpenPrinter(struct ndr_push *ndr, int flags, const struct spoolss_OpenPrinter *r)
20042 if (flags & NDR_IN) {
20043 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.printername));
20044 if (r->in.printername) {
20045 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
20046 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
20047 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
20048 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20050 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.datatype));
20051 if (r->in.datatype) {
20052 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
20053 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
20054 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
20055 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.datatype, ndr_charset_length(r->in.datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20057 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
20058 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr, NDR_SCALARS, r->in.access_mask));
20060 if (flags & NDR_OUT) {
20061 if (r->out.handle == NULL) {
20062 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20064 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
20065 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20067 return NDR_ERR_SUCCESS;
20070 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OpenPrinter(struct ndr_pull *ndr, int flags, struct spoolss_OpenPrinter *r)
20072 uint32_t _ptr_printername;
20073 uint32_t _ptr_datatype;
20074 TALLOC_CTX *_mem_save_printername_0;
20075 TALLOC_CTX *_mem_save_datatype_0;
20076 TALLOC_CTX *_mem_save_handle_0;
20077 if (flags & NDR_IN) {
20078 ZERO_STRUCT(r->out);
20080 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
20081 if (_ptr_printername) {
20082 NDR_PULL_ALLOC(ndr, r->in.printername);
20083 } else {
20084 r->in.printername = NULL;
20086 if (r->in.printername) {
20087 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
20088 NDR_PULL_SET_MEM_CTX(ndr, r->in.printername, 0);
20089 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
20090 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
20091 if (ndr_get_array_length(ndr, &r->in.printername) > ndr_get_array_size(ndr, &r->in.printername)) {
20092 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.printername), ndr_get_array_length(ndr, &r->in.printername));
20094 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t)));
20095 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t), CH_UTF16));
20096 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
20098 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
20099 if (_ptr_datatype) {
20100 NDR_PULL_ALLOC(ndr, r->in.datatype);
20101 } else {
20102 r->in.datatype = NULL;
20104 if (r->in.datatype) {
20105 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
20106 NDR_PULL_SET_MEM_CTX(ndr, r->in.datatype, 0);
20107 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.datatype));
20108 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.datatype));
20109 if (ndr_get_array_length(ndr, &r->in.datatype) > ndr_get_array_size(ndr, &r->in.datatype)) {
20110 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.datatype), ndr_get_array_length(ndr, &r->in.datatype));
20112 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t)));
20113 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t), CH_UTF16));
20114 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
20116 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
20117 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr, NDR_SCALARS, &r->in.access_mask));
20118 NDR_PULL_ALLOC(ndr, r->out.handle);
20119 ZERO_STRUCTP(r->out.handle);
20121 if (flags & NDR_OUT) {
20122 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20123 NDR_PULL_ALLOC(ndr, r->out.handle);
20125 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20126 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
20127 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
20128 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20129 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20131 return NDR_ERR_SUCCESS;
20134 _PUBLIC_ void ndr_print_spoolss_OpenPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_OpenPrinter *r)
20136 ndr_print_struct(ndr, name, "spoolss_OpenPrinter");
20137 ndr->depth++;
20138 if (flags & NDR_SET_VALUES) {
20139 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20141 if (flags & NDR_IN) {
20142 ndr_print_struct(ndr, "in", "spoolss_OpenPrinter");
20143 ndr->depth++;
20144 ndr_print_ptr(ndr, "printername", r->in.printername);
20145 ndr->depth++;
20146 if (r->in.printername) {
20147 ndr_print_string(ndr, "printername", r->in.printername);
20149 ndr->depth--;
20150 ndr_print_ptr(ndr, "datatype", r->in.datatype);
20151 ndr->depth++;
20152 if (r->in.datatype) {
20153 ndr_print_string(ndr, "datatype", r->in.datatype);
20155 ndr->depth--;
20156 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", &r->in.devmode_ctr);
20157 ndr_print_spoolss_AccessRights(ndr, "access_mask", r->in.access_mask);
20158 ndr->depth--;
20160 if (flags & NDR_OUT) {
20161 ndr_print_struct(ndr, "out", "spoolss_OpenPrinter");
20162 ndr->depth++;
20163 ndr_print_ptr(ndr, "handle", r->out.handle);
20164 ndr->depth++;
20165 ndr_print_policy_handle(ndr, "handle", r->out.handle);
20166 ndr->depth--;
20167 ndr_print_WERROR(ndr, "result", r->out.result);
20168 ndr->depth--;
20170 ndr->depth--;
20173 static enum ndr_err_code ndr_push_spoolss_SetJob(struct ndr_push *ndr, int flags, const struct spoolss_SetJob *r)
20175 if (flags & NDR_IN) {
20176 if (r->in.handle == NULL) {
20177 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20179 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20180 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.job_id));
20181 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.ctr));
20182 if (r->in.ctr) {
20183 NDR_CHECK(ndr_push_spoolss_JobInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
20185 NDR_CHECK(ndr_push_spoolss_JobControl(ndr, NDR_SCALARS, r->in.command));
20187 if (flags & NDR_OUT) {
20188 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20190 return NDR_ERR_SUCCESS;
20193 static enum ndr_err_code ndr_pull_spoolss_SetJob(struct ndr_pull *ndr, int flags, struct spoolss_SetJob *r)
20195 uint32_t _ptr_ctr;
20196 TALLOC_CTX *_mem_save_handle_0;
20197 TALLOC_CTX *_mem_save_ctr_0;
20198 if (flags & NDR_IN) {
20199 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20200 NDR_PULL_ALLOC(ndr, r->in.handle);
20202 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20203 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20204 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20205 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20206 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.job_id));
20207 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr));
20208 if (_ptr_ctr) {
20209 NDR_PULL_ALLOC(ndr, r->in.ctr);
20210 } else {
20211 r->in.ctr = NULL;
20213 if (r->in.ctr) {
20214 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20215 NDR_PULL_SET_MEM_CTX(ndr, r->in.ctr, 0);
20216 NDR_CHECK(ndr_pull_spoolss_JobInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
20217 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, 0);
20219 NDR_CHECK(ndr_pull_spoolss_JobControl(ndr, NDR_SCALARS, &r->in.command));
20221 if (flags & NDR_OUT) {
20222 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20224 return NDR_ERR_SUCCESS;
20227 _PUBLIC_ void ndr_print_spoolss_SetJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetJob *r)
20229 ndr_print_struct(ndr, name, "spoolss_SetJob");
20230 ndr->depth++;
20231 if (flags & NDR_SET_VALUES) {
20232 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20234 if (flags & NDR_IN) {
20235 ndr_print_struct(ndr, "in", "spoolss_SetJob");
20236 ndr->depth++;
20237 ndr_print_ptr(ndr, "handle", r->in.handle);
20238 ndr->depth++;
20239 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20240 ndr->depth--;
20241 ndr_print_uint32(ndr, "job_id", r->in.job_id);
20242 ndr_print_ptr(ndr, "ctr", r->in.ctr);
20243 ndr->depth++;
20244 if (r->in.ctr) {
20245 ndr_print_spoolss_JobInfoContainer(ndr, "ctr", r->in.ctr);
20247 ndr->depth--;
20248 ndr_print_spoolss_JobControl(ndr, "command", r->in.command);
20249 ndr->depth--;
20251 if (flags & NDR_OUT) {
20252 ndr_print_struct(ndr, "out", "spoolss_SetJob");
20253 ndr->depth++;
20254 ndr_print_WERROR(ndr, "result", r->out.result);
20255 ndr->depth--;
20257 ndr->depth--;
20260 static enum ndr_err_code ndr_push_spoolss_GetJob(struct ndr_push *ndr, int flags, const struct spoolss_GetJob *r)
20262 if (flags & NDR_IN) {
20263 if (r->in.handle == NULL) {
20264 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20266 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20267 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.job_id));
20268 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20269 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20270 if (r->in.buffer) {
20271 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
20273 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
20275 if (flags & NDR_OUT) {
20276 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
20277 if (r->out.info) {
20279 struct ndr_push *_ndr_info;
20280 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
20281 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
20282 NDR_CHECK(ndr_push_spoolss_JobInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
20283 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
20286 if (r->out.needed == NULL) {
20287 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20289 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
20290 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20292 return NDR_ERR_SUCCESS;
20295 static enum ndr_err_code ndr_pull_spoolss_GetJob(struct ndr_pull *ndr, int flags, struct spoolss_GetJob *r)
20297 uint32_t _ptr_buffer;
20298 uint32_t _ptr_info;
20299 TALLOC_CTX *_mem_save_handle_0;
20300 TALLOC_CTX *_mem_save_buffer_0;
20301 TALLOC_CTX *_mem_save_info_0;
20302 TALLOC_CTX *_mem_save_needed_0;
20303 if (flags & NDR_IN) {
20304 ZERO_STRUCT(r->out);
20306 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20307 NDR_PULL_ALLOC(ndr, r->in.handle);
20309 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20310 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20311 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20312 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20313 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.job_id));
20314 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20315 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20316 if (_ptr_buffer) {
20317 NDR_PULL_ALLOC(ndr, r->in.buffer);
20318 } else {
20319 r->in.buffer = NULL;
20321 if (r->in.buffer) {
20322 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
20323 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20324 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
20325 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20327 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
20328 NDR_PULL_ALLOC(ndr, r->out.needed);
20329 ZERO_STRUCTP(r->out.needed);
20331 if (flags & NDR_OUT) {
20332 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
20333 if (_ptr_info) {
20334 NDR_PULL_ALLOC(ndr, r->out.info);
20335 } else {
20336 r->out.info = NULL;
20338 if (r->out.info) {
20339 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20340 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20342 struct ndr_pull *_ndr_info;
20343 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
20344 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
20345 NDR_CHECK(ndr_pull_spoolss_JobInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
20346 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
20348 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20350 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20351 NDR_PULL_ALLOC(ndr, r->out.needed);
20353 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
20354 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
20355 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
20356 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
20357 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20359 return NDR_ERR_SUCCESS;
20362 _PUBLIC_ void ndr_print_spoolss_GetJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetJob *r)
20364 ndr_print_struct(ndr, name, "spoolss_GetJob");
20365 ndr->depth++;
20366 if (flags & NDR_SET_VALUES) {
20367 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20369 if (flags & NDR_IN) {
20370 ndr_print_struct(ndr, "in", "spoolss_GetJob");
20371 ndr->depth++;
20372 ndr_print_ptr(ndr, "handle", r->in.handle);
20373 ndr->depth++;
20374 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20375 ndr->depth--;
20376 ndr_print_uint32(ndr, "job_id", r->in.job_id);
20377 ndr_print_uint32(ndr, "level", r->in.level);
20378 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20379 ndr->depth++;
20380 if (r->in.buffer) {
20381 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
20383 ndr->depth--;
20384 ndr_print_uint32(ndr, "offered", r->in.offered);
20385 ndr->depth--;
20387 if (flags & NDR_OUT) {
20388 ndr_print_struct(ndr, "out", "spoolss_GetJob");
20389 ndr->depth++;
20390 ndr_print_ptr(ndr, "info", r->out.info);
20391 ndr->depth++;
20392 if (r->out.info) {
20393 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
20394 ndr_print_spoolss_JobInfo(ndr, "info", r->out.info);
20396 ndr->depth--;
20397 ndr_print_ptr(ndr, "needed", r->out.needed);
20398 ndr->depth++;
20399 ndr_print_uint32(ndr, "needed", *r->out.needed);
20400 ndr->depth--;
20401 ndr_print_WERROR(ndr, "result", r->out.result);
20402 ndr->depth--;
20404 ndr->depth--;
20407 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumJobs(struct ndr_push *ndr, int flags, const struct _spoolss_EnumJobs *r)
20409 if (flags & NDR_IN) {
20410 if (r->in.handle == NULL) {
20411 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20413 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20414 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.firstjob));
20415 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.numjobs));
20416 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20417 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20418 if (r->in.buffer) {
20419 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
20421 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
20423 if (flags & NDR_OUT) {
20424 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
20425 if (r->out.info) {
20426 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
20428 if (r->out.needed == NULL) {
20429 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20431 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
20432 if (r->out.count == NULL) {
20433 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20435 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
20436 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20438 return NDR_ERR_SUCCESS;
20441 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumJobs(struct ndr_pull *ndr, int flags, struct _spoolss_EnumJobs *r)
20443 uint32_t _ptr_buffer;
20444 uint32_t _ptr_info;
20445 TALLOC_CTX *_mem_save_handle_0;
20446 TALLOC_CTX *_mem_save_buffer_0;
20447 TALLOC_CTX *_mem_save_info_0;
20448 TALLOC_CTX *_mem_save_needed_0;
20449 TALLOC_CTX *_mem_save_count_0;
20450 if (flags & NDR_IN) {
20451 ZERO_STRUCT(r->out);
20453 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20454 NDR_PULL_ALLOC(ndr, r->in.handle);
20456 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20457 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20458 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20459 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20460 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.firstjob));
20461 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.numjobs));
20462 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20463 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20464 if (_ptr_buffer) {
20465 NDR_PULL_ALLOC(ndr, r->in.buffer);
20466 } else {
20467 r->in.buffer = NULL;
20469 if (r->in.buffer) {
20470 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
20471 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20472 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
20473 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20475 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
20476 NDR_PULL_ALLOC(ndr, r->out.needed);
20477 ZERO_STRUCTP(r->out.needed);
20478 NDR_PULL_ALLOC(ndr, r->out.count);
20479 ZERO_STRUCTP(r->out.count);
20481 if (flags & NDR_OUT) {
20482 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
20483 if (_ptr_info) {
20484 NDR_PULL_ALLOC(ndr, r->out.info);
20485 } else {
20486 r->out.info = NULL;
20488 if (r->out.info) {
20489 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20490 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20491 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
20492 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20494 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20495 NDR_PULL_ALLOC(ndr, r->out.needed);
20497 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
20498 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
20499 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
20500 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
20501 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20502 NDR_PULL_ALLOC(ndr, r->out.count);
20504 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
20505 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
20506 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
20507 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
20508 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20510 return NDR_ERR_SUCCESS;
20513 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumJobs(struct ndr_push *ndr, int flags, const struct __spoolss_EnumJobs *r)
20515 uint32_t cntr_info_0;
20516 if (flags & NDR_IN) {
20517 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20518 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
20520 if (flags & NDR_OUT) {
20521 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20522 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
20523 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
20525 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20526 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
20529 return NDR_ERR_SUCCESS;
20532 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumJobs(struct ndr_pull *ndr, int flags, struct __spoolss_EnumJobs *r)
20534 uint32_t cntr_info_0;
20535 TALLOC_CTX *_mem_save_info_0;
20536 if (flags & NDR_IN) {
20537 ZERO_STRUCT(r->out);
20539 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20540 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
20542 if (flags & NDR_OUT) {
20543 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
20544 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20545 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20546 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20547 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
20548 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
20550 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20551 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
20553 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20555 return NDR_ERR_SUCCESS;
20558 _PUBLIC_ void ndr_print_spoolss_EnumJobs(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumJobs *r)
20560 uint32_t cntr_info_2;
20561 ndr_print_struct(ndr, name, "spoolss_EnumJobs");
20562 ndr->depth++;
20563 if (flags & NDR_SET_VALUES) {
20564 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20566 if (flags & NDR_IN) {
20567 ndr_print_struct(ndr, "in", "spoolss_EnumJobs");
20568 ndr->depth++;
20569 ndr_print_ptr(ndr, "handle", r->in.handle);
20570 ndr->depth++;
20571 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20572 ndr->depth--;
20573 ndr_print_uint32(ndr, "firstjob", r->in.firstjob);
20574 ndr_print_uint32(ndr, "numjobs", r->in.numjobs);
20575 ndr_print_uint32(ndr, "level", r->in.level);
20576 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20577 ndr->depth++;
20578 if (r->in.buffer) {
20579 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
20581 ndr->depth--;
20582 ndr_print_uint32(ndr, "offered", r->in.offered);
20583 ndr->depth--;
20585 if (flags & NDR_OUT) {
20586 ndr_print_struct(ndr, "out", "spoolss_EnumJobs");
20587 ndr->depth++;
20588 ndr_print_ptr(ndr, "count", r->out.count);
20589 ndr->depth++;
20590 ndr_print_uint32(ndr, "count", *r->out.count);
20591 ndr->depth--;
20592 ndr_print_ptr(ndr, "info", r->out.info);
20593 ndr->depth++;
20594 ndr_print_ptr(ndr, "info", *r->out.info);
20595 ndr->depth++;
20596 if (*r->out.info) {
20597 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
20598 ndr->depth++;
20599 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
20600 char *idx_2=NULL;
20601 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
20602 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
20603 ndr_print_spoolss_JobInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
20604 free(idx_2);
20607 ndr->depth--;
20609 ndr->depth--;
20610 ndr->depth--;
20611 ndr_print_ptr(ndr, "needed", r->out.needed);
20612 ndr->depth++;
20613 ndr_print_uint32(ndr, "needed", *r->out.needed);
20614 ndr->depth--;
20615 ndr_print_WERROR(ndr, "result", r->out.result);
20616 ndr->depth--;
20618 ndr->depth--;
20621 static enum ndr_err_code ndr_push_spoolss_AddPrinter(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinter *r)
20623 if (flags & NDR_IN) {
20624 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
20625 if (r->in.server) {
20626 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20627 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
20628 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20629 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20631 if (r->in.info_ctr == NULL) {
20632 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20634 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
20635 if (r->in.devmode_ctr == NULL) {
20636 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20638 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
20639 if (r->in.secdesc_ctr == NULL) {
20640 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20642 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
20644 if (flags & NDR_OUT) {
20645 if (r->out.handle == NULL) {
20646 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20648 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
20649 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20651 return NDR_ERR_SUCCESS;
20654 static enum ndr_err_code ndr_pull_spoolss_AddPrinter(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinter *r)
20656 uint32_t _ptr_server;
20657 TALLOC_CTX *_mem_save_server_0;
20658 TALLOC_CTX *_mem_save_info_ctr_0;
20659 TALLOC_CTX *_mem_save_devmode_ctr_0;
20660 TALLOC_CTX *_mem_save_secdesc_ctr_0;
20661 TALLOC_CTX *_mem_save_handle_0;
20662 if (flags & NDR_IN) {
20663 ZERO_STRUCT(r->out);
20665 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
20666 if (_ptr_server) {
20667 NDR_PULL_ALLOC(ndr, r->in.server);
20668 } else {
20669 r->in.server = NULL;
20671 if (r->in.server) {
20672 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
20673 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
20674 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
20675 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
20676 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
20677 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.server), ndr_get_array_length(ndr, &r->in.server));
20679 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
20680 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
20681 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
20683 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20684 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
20686 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20687 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
20688 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
20689 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
20690 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20691 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
20693 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20694 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
20695 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
20696 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
20697 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20698 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
20700 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20701 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
20702 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
20703 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
20704 NDR_PULL_ALLOC(ndr, r->out.handle);
20705 ZERO_STRUCTP(r->out.handle);
20707 if (flags & NDR_OUT) {
20708 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20709 NDR_PULL_ALLOC(ndr, r->out.handle);
20711 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20712 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
20713 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
20714 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20715 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20717 return NDR_ERR_SUCCESS;
20720 _PUBLIC_ void ndr_print_spoolss_AddPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinter *r)
20722 ndr_print_struct(ndr, name, "spoolss_AddPrinter");
20723 ndr->depth++;
20724 if (flags & NDR_SET_VALUES) {
20725 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20727 if (flags & NDR_IN) {
20728 ndr_print_struct(ndr, "in", "spoolss_AddPrinter");
20729 ndr->depth++;
20730 ndr_print_ptr(ndr, "server", r->in.server);
20731 ndr->depth++;
20732 if (r->in.server) {
20733 ndr_print_string(ndr, "server", r->in.server);
20735 ndr->depth--;
20736 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
20737 ndr->depth++;
20738 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
20739 ndr->depth--;
20740 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
20741 ndr->depth++;
20742 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
20743 ndr->depth--;
20744 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
20745 ndr->depth++;
20746 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
20747 ndr->depth--;
20748 ndr->depth--;
20750 if (flags & NDR_OUT) {
20751 ndr_print_struct(ndr, "out", "spoolss_AddPrinter");
20752 ndr->depth++;
20753 ndr_print_ptr(ndr, "handle", r->out.handle);
20754 ndr->depth++;
20755 ndr_print_policy_handle(ndr, "handle", r->out.handle);
20756 ndr->depth--;
20757 ndr_print_WERROR(ndr, "result", r->out.result);
20758 ndr->depth--;
20760 ndr->depth--;
20763 static enum ndr_err_code ndr_push_spoolss_DeletePrinter(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinter *r)
20765 if (flags & NDR_IN) {
20766 if (r->in.handle == NULL) {
20767 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20769 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20771 if (flags & NDR_OUT) {
20772 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20774 return NDR_ERR_SUCCESS;
20777 static enum ndr_err_code ndr_pull_spoolss_DeletePrinter(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinter *r)
20779 TALLOC_CTX *_mem_save_handle_0;
20780 if (flags & NDR_IN) {
20781 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20782 NDR_PULL_ALLOC(ndr, r->in.handle);
20784 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20785 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20786 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20787 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20789 if (flags & NDR_OUT) {
20790 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20792 return NDR_ERR_SUCCESS;
20795 _PUBLIC_ void ndr_print_spoolss_DeletePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinter *r)
20797 ndr_print_struct(ndr, name, "spoolss_DeletePrinter");
20798 ndr->depth++;
20799 if (flags & NDR_SET_VALUES) {
20800 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20802 if (flags & NDR_IN) {
20803 ndr_print_struct(ndr, "in", "spoolss_DeletePrinter");
20804 ndr->depth++;
20805 ndr_print_ptr(ndr, "handle", r->in.handle);
20806 ndr->depth++;
20807 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20808 ndr->depth--;
20809 ndr->depth--;
20811 if (flags & NDR_OUT) {
20812 ndr_print_struct(ndr, "out", "spoolss_DeletePrinter");
20813 ndr->depth++;
20814 ndr_print_WERROR(ndr, "result", r->out.result);
20815 ndr->depth--;
20817 ndr->depth--;
20820 static enum ndr_err_code ndr_push_spoolss_SetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_SetPrinter *r)
20822 if (flags & NDR_IN) {
20823 if (r->in.handle == NULL) {
20824 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20826 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20827 if (r->in.info_ctr == NULL) {
20828 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20830 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
20831 if (r->in.devmode_ctr == NULL) {
20832 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20834 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
20835 if (r->in.secdesc_ctr == NULL) {
20836 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20838 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
20839 NDR_CHECK(ndr_push_spoolss_PrinterControl(ndr, NDR_SCALARS, r->in.command));
20841 if (flags & NDR_OUT) {
20842 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20844 return NDR_ERR_SUCCESS;
20847 static enum ndr_err_code ndr_pull_spoolss_SetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinter *r)
20849 TALLOC_CTX *_mem_save_handle_0;
20850 TALLOC_CTX *_mem_save_info_ctr_0;
20851 TALLOC_CTX *_mem_save_devmode_ctr_0;
20852 TALLOC_CTX *_mem_save_secdesc_ctr_0;
20853 if (flags & NDR_IN) {
20854 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20855 NDR_PULL_ALLOC(ndr, r->in.handle);
20857 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20858 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20859 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20860 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20861 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20862 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
20864 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20865 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
20866 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
20867 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
20868 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20869 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
20871 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20872 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
20873 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
20874 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
20875 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20876 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
20878 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20879 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
20880 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
20881 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
20882 NDR_CHECK(ndr_pull_spoolss_PrinterControl(ndr, NDR_SCALARS, &r->in.command));
20884 if (flags & NDR_OUT) {
20885 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20887 return NDR_ERR_SUCCESS;
20890 _PUBLIC_ void ndr_print_spoolss_SetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinter *r)
20892 ndr_print_struct(ndr, name, "spoolss_SetPrinter");
20893 ndr->depth++;
20894 if (flags & NDR_SET_VALUES) {
20895 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20897 if (flags & NDR_IN) {
20898 ndr_print_struct(ndr, "in", "spoolss_SetPrinter");
20899 ndr->depth++;
20900 ndr_print_ptr(ndr, "handle", r->in.handle);
20901 ndr->depth++;
20902 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20903 ndr->depth--;
20904 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
20905 ndr->depth++;
20906 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
20907 ndr->depth--;
20908 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
20909 ndr->depth++;
20910 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
20911 ndr->depth--;
20912 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
20913 ndr->depth++;
20914 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
20915 ndr->depth--;
20916 ndr_print_spoolss_PrinterControl(ndr, "command", r->in.command);
20917 ndr->depth--;
20919 if (flags & NDR_OUT) {
20920 ndr_print_struct(ndr, "out", "spoolss_SetPrinter");
20921 ndr->depth++;
20922 ndr_print_WERROR(ndr, "result", r->out.result);
20923 ndr->depth--;
20925 ndr->depth--;
20928 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinter *r)
20930 if (flags & NDR_IN) {
20931 if (r->in.handle == NULL) {
20932 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20934 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20935 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20936 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20937 if (r->in.buffer) {
20938 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
20940 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
20942 if (flags & NDR_OUT) {
20943 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
20944 if (r->out.info) {
20946 struct ndr_push *_ndr_info;
20947 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
20948 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
20949 NDR_CHECK(ndr_push_spoolss_PrinterInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
20950 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
20953 if (r->out.needed == NULL) {
20954 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20956 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
20957 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20959 return NDR_ERR_SUCCESS;
20962 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinter *r)
20964 uint32_t _ptr_buffer;
20965 uint32_t _ptr_info;
20966 TALLOC_CTX *_mem_save_handle_0;
20967 TALLOC_CTX *_mem_save_buffer_0;
20968 TALLOC_CTX *_mem_save_info_0;
20969 TALLOC_CTX *_mem_save_needed_0;
20970 if (flags & NDR_IN) {
20971 ZERO_STRUCT(r->out);
20973 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20974 NDR_PULL_ALLOC(ndr, r->in.handle);
20976 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20977 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20978 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20979 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20980 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20981 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20982 if (_ptr_buffer) {
20983 NDR_PULL_ALLOC(ndr, r->in.buffer);
20984 } else {
20985 r->in.buffer = NULL;
20987 if (r->in.buffer) {
20988 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
20989 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20990 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
20991 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20993 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
20994 NDR_PULL_ALLOC(ndr, r->out.needed);
20995 ZERO_STRUCTP(r->out.needed);
20997 if (flags & NDR_OUT) {
20998 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
20999 if (_ptr_info) {
21000 NDR_PULL_ALLOC(ndr, r->out.info);
21001 } else {
21002 r->out.info = NULL;
21004 if (r->out.info) {
21005 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21006 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21008 struct ndr_pull *_ndr_info;
21009 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21010 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
21011 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
21012 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21014 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21016 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21017 NDR_PULL_ALLOC(ndr, r->out.needed);
21019 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21020 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21021 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21022 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21023 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21025 return NDR_ERR_SUCCESS;
21028 _PUBLIC_ void ndr_print_spoolss_GetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinter *r)
21030 ndr_print_struct(ndr, name, "spoolss_GetPrinter");
21031 ndr->depth++;
21032 if (flags & NDR_SET_VALUES) {
21033 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21035 if (flags & NDR_IN) {
21036 ndr_print_struct(ndr, "in", "spoolss_GetPrinter");
21037 ndr->depth++;
21038 ndr_print_ptr(ndr, "handle", r->in.handle);
21039 ndr->depth++;
21040 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21041 ndr->depth--;
21042 ndr_print_uint32(ndr, "level", r->in.level);
21043 ndr_print_ptr(ndr, "buffer", r->in.buffer);
21044 ndr->depth++;
21045 if (r->in.buffer) {
21046 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
21048 ndr->depth--;
21049 ndr_print_uint32(ndr, "offered", r->in.offered);
21050 ndr->depth--;
21052 if (flags & NDR_OUT) {
21053 ndr_print_struct(ndr, "out", "spoolss_GetPrinter");
21054 ndr->depth++;
21055 ndr_print_ptr(ndr, "info", r->out.info);
21056 ndr->depth++;
21057 if (r->out.info) {
21058 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
21059 ndr_print_spoolss_PrinterInfo(ndr, "info", r->out.info);
21061 ndr->depth--;
21062 ndr_print_ptr(ndr, "needed", r->out.needed);
21063 ndr->depth++;
21064 ndr_print_uint32(ndr, "needed", *r->out.needed);
21065 ndr->depth--;
21066 ndr_print_WERROR(ndr, "result", r->out.result);
21067 ndr->depth--;
21069 ndr->depth--;
21072 static enum ndr_err_code ndr_push_spoolss_AddPrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterDriver *r)
21074 if (flags & NDR_IN) {
21075 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
21076 if (r->in.servername) {
21077 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
21078 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21079 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
21080 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21082 if (r->in.info_ctr == NULL) {
21083 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21085 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
21087 if (flags & NDR_OUT) {
21088 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21090 return NDR_ERR_SUCCESS;
21093 static enum ndr_err_code ndr_pull_spoolss_AddPrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterDriver *r)
21095 uint32_t _ptr_servername;
21096 TALLOC_CTX *_mem_save_servername_0;
21097 TALLOC_CTX *_mem_save_info_ctr_0;
21098 if (flags & NDR_IN) {
21099 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
21100 if (_ptr_servername) {
21101 NDR_PULL_ALLOC(ndr, r->in.servername);
21102 } else {
21103 r->in.servername = NULL;
21105 if (r->in.servername) {
21106 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
21107 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
21108 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
21109 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
21110 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
21111 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.servername), ndr_get_array_length(ndr, &r->in.servername));
21113 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
21114 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
21115 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
21117 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21118 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
21120 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
21121 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
21122 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
21123 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
21125 if (flags & NDR_OUT) {
21126 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21128 return NDR_ERR_SUCCESS;
21131 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterDriver *r)
21133 ndr_print_struct(ndr, name, "spoolss_AddPrinterDriver");
21134 ndr->depth++;
21135 if (flags & NDR_SET_VALUES) {
21136 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21138 if (flags & NDR_IN) {
21139 ndr_print_struct(ndr, "in", "spoolss_AddPrinterDriver");
21140 ndr->depth++;
21141 ndr_print_ptr(ndr, "servername", r->in.servername);
21142 ndr->depth++;
21143 if (r->in.servername) {
21144 ndr_print_string(ndr, "servername", r->in.servername);
21146 ndr->depth--;
21147 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
21148 ndr->depth++;
21149 ndr_print_spoolss_AddDriverInfoCtr(ndr, "info_ctr", r->in.info_ctr);
21150 ndr->depth--;
21151 ndr->depth--;
21153 if (flags & NDR_OUT) {
21154 ndr_print_struct(ndr, "out", "spoolss_AddPrinterDriver");
21155 ndr->depth++;
21156 ndr_print_WERROR(ndr, "result", r->out.result);
21157 ndr->depth--;
21159 ndr->depth--;
21162 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinterDrivers(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinterDrivers *r)
21164 if (flags & NDR_IN) {
21165 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
21166 if (r->in.server) {
21167 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21168 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21169 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21170 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21172 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
21173 if (r->in.environment) {
21174 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
21175 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21176 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
21177 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21179 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21180 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
21181 if (r->in.buffer) {
21182 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
21184 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21186 if (flags & NDR_OUT) {
21187 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
21188 if (r->out.info) {
21189 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
21191 if (r->out.needed == NULL) {
21192 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21194 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21195 if (r->out.count == NULL) {
21196 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21198 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
21199 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21201 return NDR_ERR_SUCCESS;
21204 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinterDrivers *r)
21206 uint32_t _ptr_server;
21207 uint32_t _ptr_environment;
21208 uint32_t _ptr_buffer;
21209 uint32_t _ptr_info;
21210 TALLOC_CTX *_mem_save_server_0;
21211 TALLOC_CTX *_mem_save_environment_0;
21212 TALLOC_CTX *_mem_save_buffer_0;
21213 TALLOC_CTX *_mem_save_info_0;
21214 TALLOC_CTX *_mem_save_needed_0;
21215 TALLOC_CTX *_mem_save_count_0;
21216 if (flags & NDR_IN) {
21217 ZERO_STRUCT(r->out);
21219 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
21220 if (_ptr_server) {
21221 NDR_PULL_ALLOC(ndr, r->in.server);
21222 } else {
21223 r->in.server = NULL;
21225 if (r->in.server) {
21226 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
21227 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
21228 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
21229 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
21230 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
21231 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.server), ndr_get_array_length(ndr, &r->in.server));
21233 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
21234 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
21235 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
21237 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
21238 if (_ptr_environment) {
21239 NDR_PULL_ALLOC(ndr, r->in.environment);
21240 } else {
21241 r->in.environment = NULL;
21243 if (r->in.environment) {
21244 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
21245 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
21246 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
21247 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
21248 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
21249 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.environment), ndr_get_array_length(ndr, &r->in.environment));
21251 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
21252 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
21253 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
21255 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21256 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
21257 if (_ptr_buffer) {
21258 NDR_PULL_ALLOC(ndr, r->in.buffer);
21259 } else {
21260 r->in.buffer = NULL;
21262 if (r->in.buffer) {
21263 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21264 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
21265 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
21266 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
21268 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21269 NDR_PULL_ALLOC(ndr, r->out.needed);
21270 ZERO_STRUCTP(r->out.needed);
21271 NDR_PULL_ALLOC(ndr, r->out.count);
21272 ZERO_STRUCTP(r->out.count);
21274 if (flags & NDR_OUT) {
21275 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
21276 if (_ptr_info) {
21277 NDR_PULL_ALLOC(ndr, r->out.info);
21278 } else {
21279 r->out.info = NULL;
21281 if (r->out.info) {
21282 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21283 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21284 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
21285 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21287 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21288 NDR_PULL_ALLOC(ndr, r->out.needed);
21290 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21291 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21292 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21293 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21294 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21295 NDR_PULL_ALLOC(ndr, r->out.count);
21297 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
21298 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
21299 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
21300 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
21301 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21303 return NDR_ERR_SUCCESS;
21306 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinterDrivers(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinterDrivers *r)
21308 uint32_t cntr_info_0;
21309 if (flags & NDR_IN) {
21310 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21311 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
21313 if (flags & NDR_OUT) {
21314 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21315 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
21316 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
21318 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21319 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
21322 return NDR_ERR_SUCCESS;
21325 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinterDrivers *r)
21327 uint32_t cntr_info_0;
21328 TALLOC_CTX *_mem_save_info_0;
21329 if (flags & NDR_IN) {
21330 ZERO_STRUCT(r->out);
21332 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21333 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
21335 if (flags & NDR_OUT) {
21336 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
21337 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21338 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21339 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21340 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
21341 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
21343 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21344 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
21346 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21348 return NDR_ERR_SUCCESS;
21351 _PUBLIC_ void ndr_print_spoolss_EnumPrinterDrivers(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterDrivers *r)
21353 uint32_t cntr_info_2;
21354 ndr_print_struct(ndr, name, "spoolss_EnumPrinterDrivers");
21355 ndr->depth++;
21356 if (flags & NDR_SET_VALUES) {
21357 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21359 if (flags & NDR_IN) {
21360 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterDrivers");
21361 ndr->depth++;
21362 ndr_print_ptr(ndr, "server", r->in.server);
21363 ndr->depth++;
21364 if (r->in.server) {
21365 ndr_print_string(ndr, "server", r->in.server);
21367 ndr->depth--;
21368 ndr_print_ptr(ndr, "environment", r->in.environment);
21369 ndr->depth++;
21370 if (r->in.environment) {
21371 ndr_print_string(ndr, "environment", r->in.environment);
21373 ndr->depth--;
21374 ndr_print_uint32(ndr, "level", r->in.level);
21375 ndr_print_ptr(ndr, "buffer", r->in.buffer);
21376 ndr->depth++;
21377 if (r->in.buffer) {
21378 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
21380 ndr->depth--;
21381 ndr_print_uint32(ndr, "offered", r->in.offered);
21382 ndr->depth--;
21384 if (flags & NDR_OUT) {
21385 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterDrivers");
21386 ndr->depth++;
21387 ndr_print_ptr(ndr, "count", r->out.count);
21388 ndr->depth++;
21389 ndr_print_uint32(ndr, "count", *r->out.count);
21390 ndr->depth--;
21391 ndr_print_ptr(ndr, "info", r->out.info);
21392 ndr->depth++;
21393 ndr_print_ptr(ndr, "info", *r->out.info);
21394 ndr->depth++;
21395 if (*r->out.info) {
21396 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
21397 ndr->depth++;
21398 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
21399 char *idx_2=NULL;
21400 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
21401 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
21402 ndr_print_spoolss_DriverInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
21403 free(idx_2);
21406 ndr->depth--;
21408 ndr->depth--;
21409 ndr->depth--;
21410 ndr_print_ptr(ndr, "needed", r->out.needed);
21411 ndr->depth++;
21412 ndr_print_uint32(ndr, "needed", *r->out.needed);
21413 ndr->depth--;
21414 ndr_print_WERROR(ndr, "result", r->out.result);
21415 ndr->depth--;
21417 ndr->depth--;
21420 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriver *r)
21422 if (flags & NDR_IN) {
21423 if (r->in.handle == NULL) {
21424 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21426 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21427 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.architecture));
21428 if (r->in.architecture) {
21429 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
21430 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21431 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
21432 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21434 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21435 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
21436 if (r->in.buffer) {
21437 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
21439 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21441 if (flags & NDR_OUT) {
21442 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
21443 if (r->out.info) {
21445 struct ndr_push *_ndr_info;
21446 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21447 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
21448 NDR_CHECK(ndr_push_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
21449 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21452 if (r->out.needed == NULL) {
21453 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21455 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21456 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21458 return NDR_ERR_SUCCESS;
21461 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriver *r)
21463 uint32_t _ptr_architecture;
21464 uint32_t _ptr_buffer;
21465 uint32_t _ptr_info;
21466 TALLOC_CTX *_mem_save_handle_0;
21467 TALLOC_CTX *_mem_save_architecture_0;
21468 TALLOC_CTX *_mem_save_buffer_0;
21469 TALLOC_CTX *_mem_save_info_0;
21470 TALLOC_CTX *_mem_save_needed_0;
21471 if (flags & NDR_IN) {
21472 ZERO_STRUCT(r->out);
21474 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21475 NDR_PULL_ALLOC(ndr, r->in.handle);
21477 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21478 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21479 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21480 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21481 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
21482 if (_ptr_architecture) {
21483 NDR_PULL_ALLOC(ndr, r->in.architecture);
21484 } else {
21485 r->in.architecture = NULL;
21487 if (r->in.architecture) {
21488 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
21489 NDR_PULL_SET_MEM_CTX(ndr, r->in.architecture, 0);
21490 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
21491 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
21492 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
21493 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.architecture), ndr_get_array_length(ndr, &r->in.architecture));
21495 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
21496 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
21497 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
21499 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21500 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
21501 if (_ptr_buffer) {
21502 NDR_PULL_ALLOC(ndr, r->in.buffer);
21503 } else {
21504 r->in.buffer = NULL;
21506 if (r->in.buffer) {
21507 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21508 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
21509 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
21510 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
21512 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21513 NDR_PULL_ALLOC(ndr, r->out.needed);
21514 ZERO_STRUCTP(r->out.needed);
21516 if (flags & NDR_OUT) {
21517 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
21518 if (_ptr_info) {
21519 NDR_PULL_ALLOC(ndr, r->out.info);
21520 } else {
21521 r->out.info = NULL;
21523 if (r->out.info) {
21524 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21525 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21527 struct ndr_pull *_ndr_info;
21528 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21529 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
21530 NDR_CHECK(ndr_pull_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
21531 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21533 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21535 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21536 NDR_PULL_ALLOC(ndr, r->out.needed);
21538 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21539 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21540 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21541 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21542 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21544 return NDR_ERR_SUCCESS;
21547 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriver *r)
21549 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriver");
21550 ndr->depth++;
21551 if (flags & NDR_SET_VALUES) {
21552 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21554 if (flags & NDR_IN) {
21555 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriver");
21556 ndr->depth++;
21557 ndr_print_ptr(ndr, "handle", r->in.handle);
21558 ndr->depth++;
21559 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21560 ndr->depth--;
21561 ndr_print_ptr(ndr, "architecture", r->in.architecture);
21562 ndr->depth++;
21563 if (r->in.architecture) {
21564 ndr_print_string(ndr, "architecture", r->in.architecture);
21566 ndr->depth--;
21567 ndr_print_uint32(ndr, "level", r->in.level);
21568 ndr_print_ptr(ndr, "buffer", r->in.buffer);
21569 ndr->depth++;
21570 if (r->in.buffer) {
21571 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
21573 ndr->depth--;
21574 ndr_print_uint32(ndr, "offered", r->in.offered);
21575 ndr->depth--;
21577 if (flags & NDR_OUT) {
21578 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriver");
21579 ndr->depth++;
21580 ndr_print_ptr(ndr, "info", r->out.info);
21581 ndr->depth++;
21582 if (r->out.info) {
21583 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
21584 ndr_print_spoolss_DriverInfo(ndr, "info", r->out.info);
21586 ndr->depth--;
21587 ndr_print_ptr(ndr, "needed", r->out.needed);
21588 ndr->depth++;
21589 ndr_print_uint32(ndr, "needed", *r->out.needed);
21590 ndr->depth--;
21591 ndr_print_WERROR(ndr, "result", r->out.result);
21592 ndr->depth--;
21594 ndr->depth--;
21597 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinterDriverDirectory(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriverDirectory *r)
21599 if (flags & NDR_IN) {
21600 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
21601 if (r->in.server) {
21602 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21603 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21604 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21605 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21607 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
21608 if (r->in.environment) {
21609 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
21610 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21611 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
21612 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21614 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21615 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
21616 if (r->in.buffer) {
21617 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
21619 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21621 if (flags & NDR_OUT) {
21622 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
21623 if (r->out.info) {
21625 struct ndr_push *_ndr_info;
21626 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21627 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
21628 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
21629 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21632 if (r->out.needed == NULL) {
21633 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21635 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21636 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21638 return NDR_ERR_SUCCESS;
21641 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinterDriverDirectory(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriverDirectory *r)
21643 uint32_t _ptr_server;
21644 uint32_t _ptr_environment;
21645 uint32_t _ptr_buffer;
21646 uint32_t _ptr_info;
21647 TALLOC_CTX *_mem_save_server_0;
21648 TALLOC_CTX *_mem_save_environment_0;
21649 TALLOC_CTX *_mem_save_buffer_0;
21650 TALLOC_CTX *_mem_save_info_0;
21651 TALLOC_CTX *_mem_save_needed_0;
21652 if (flags & NDR_IN) {
21653 ZERO_STRUCT(r->out);
21655 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
21656 if (_ptr_server) {
21657 NDR_PULL_ALLOC(ndr, r->in.server);
21658 } else {
21659 r->in.server = NULL;
21661 if (r->in.server) {
21662 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
21663 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
21664 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
21665 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
21666 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
21667 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.server), ndr_get_array_length(ndr, &r->in.server));
21669 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
21670 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
21671 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
21673 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
21674 if (_ptr_environment) {
21675 NDR_PULL_ALLOC(ndr, r->in.environment);
21676 } else {
21677 r->in.environment = NULL;
21679 if (r->in.environment) {
21680 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
21681 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
21682 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
21683 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
21684 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
21685 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.environment), ndr_get_array_length(ndr, &r->in.environment));
21687 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
21688 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
21689 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
21691 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21692 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
21693 if (_ptr_buffer) {
21694 NDR_PULL_ALLOC(ndr, r->in.buffer);
21695 } else {
21696 r->in.buffer = NULL;
21698 if (r->in.buffer) {
21699 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21700 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
21701 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
21702 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
21704 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21705 NDR_PULL_ALLOC(ndr, r->out.needed);
21706 ZERO_STRUCTP(r->out.needed);
21708 if (flags & NDR_OUT) {
21709 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
21710 if (_ptr_info) {
21711 NDR_PULL_ALLOC(ndr, r->out.info);
21712 } else {
21713 r->out.info = NULL;
21715 if (r->out.info) {
21716 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21717 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21719 struct ndr_pull *_ndr_info;
21720 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21721 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
21722 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
21723 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21725 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21727 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21728 NDR_PULL_ALLOC(ndr, r->out.needed);
21730 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21731 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21732 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21733 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21734 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21736 return NDR_ERR_SUCCESS;
21739 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriverDirectory(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriverDirectory *r)
21741 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriverDirectory");
21742 ndr->depth++;
21743 if (flags & NDR_SET_VALUES) {
21744 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21746 if (flags & NDR_IN) {
21747 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriverDirectory");
21748 ndr->depth++;
21749 ndr_print_ptr(ndr, "server", r->in.server);
21750 ndr->depth++;
21751 if (r->in.server) {
21752 ndr_print_string(ndr, "server", r->in.server);
21754 ndr->depth--;
21755 ndr_print_ptr(ndr, "environment", r->in.environment);
21756 ndr->depth++;
21757 if (r->in.environment) {
21758 ndr_print_string(ndr, "environment", r->in.environment);
21760 ndr->depth--;
21761 ndr_print_uint32(ndr, "level", r->in.level);
21762 ndr_print_ptr(ndr, "buffer", r->in.buffer);
21763 ndr->depth++;
21764 if (r->in.buffer) {
21765 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
21767 ndr->depth--;
21768 ndr_print_uint32(ndr, "offered", r->in.offered);
21769 ndr->depth--;
21771 if (flags & NDR_OUT) {
21772 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriverDirectory");
21773 ndr->depth++;
21774 ndr_print_ptr(ndr, "info", r->out.info);
21775 ndr->depth++;
21776 if (r->out.info) {
21777 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
21778 ndr_print_spoolss_DriverDirectoryInfo(ndr, "info", r->out.info);
21780 ndr->depth--;
21781 ndr_print_ptr(ndr, "needed", r->out.needed);
21782 ndr->depth++;
21783 ndr_print_uint32(ndr, "needed", *r->out.needed);
21784 ndr->depth--;
21785 ndr_print_WERROR(ndr, "result", r->out.result);
21786 ndr->depth--;
21788 ndr->depth--;
21791 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDriver *r)
21793 if (flags & NDR_IN) {
21794 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
21795 if (r->in.server) {
21796 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21797 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21798 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21799 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21801 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
21802 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21803 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
21804 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21805 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
21806 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21807 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
21808 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver, ndr_charset_length(r->in.driver, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21810 if (flags & NDR_OUT) {
21811 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21813 return NDR_ERR_SUCCESS;
21816 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDriver *r)
21818 uint32_t _ptr_server;
21819 TALLOC_CTX *_mem_save_server_0;
21820 if (flags & NDR_IN) {
21821 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
21822 if (_ptr_server) {
21823 NDR_PULL_ALLOC(ndr, r->in.server);
21824 } else {
21825 r->in.server = NULL;
21827 if (r->in.server) {
21828 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
21829 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
21830 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
21831 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
21832 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
21833 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.server), ndr_get_array_length(ndr, &r->in.server));
21835 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
21836 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
21837 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
21839 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
21840 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
21841 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
21842 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.architecture), ndr_get_array_length(ndr, &r->in.architecture));
21844 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
21845 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
21846 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver));
21847 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.driver));
21848 if (ndr_get_array_length(ndr, &r->in.driver) > ndr_get_array_size(ndr, &r->in.driver)) {
21849 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.driver), ndr_get_array_length(ndr, &r->in.driver));
21851 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t)));
21852 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t), CH_UTF16));
21854 if (flags & NDR_OUT) {
21855 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21857 return NDR_ERR_SUCCESS;
21860 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDriver *r)
21862 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDriver");
21863 ndr->depth++;
21864 if (flags & NDR_SET_VALUES) {
21865 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21867 if (flags & NDR_IN) {
21868 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDriver");
21869 ndr->depth++;
21870 ndr_print_ptr(ndr, "server", r->in.server);
21871 ndr->depth++;
21872 if (r->in.server) {
21873 ndr_print_string(ndr, "server", r->in.server);
21875 ndr->depth--;
21876 ndr_print_string(ndr, "architecture", r->in.architecture);
21877 ndr_print_string(ndr, "driver", r->in.driver);
21878 ndr->depth--;
21880 if (flags & NDR_OUT) {
21881 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDriver");
21882 ndr->depth++;
21883 ndr_print_WERROR(ndr, "result", r->out.result);
21884 ndr->depth--;
21886 ndr->depth--;
21889 static enum ndr_err_code ndr_push_spoolss_AddPrintProcessor(struct ndr_push *ndr, int flags, const struct spoolss_AddPrintProcessor *r)
21891 if (flags & NDR_IN) {
21892 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
21893 if (r->in.server) {
21894 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21895 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21896 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21897 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21899 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
21900 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21901 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
21902 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21903 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.path_name, CH_UTF16)));
21904 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21905 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.path_name, CH_UTF16)));
21906 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.path_name, ndr_charset_length(r->in.path_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21907 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
21908 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21909 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
21910 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.print_processor_name, ndr_charset_length(r->in.print_processor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21912 if (flags & NDR_OUT) {
21913 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21915 return NDR_ERR_SUCCESS;
21918 static enum ndr_err_code ndr_pull_spoolss_AddPrintProcessor(struct ndr_pull *ndr, int flags, struct spoolss_AddPrintProcessor *r)
21920 uint32_t _ptr_server;
21921 TALLOC_CTX *_mem_save_server_0;
21922 if (flags & NDR_IN) {
21923 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
21924 if (_ptr_server) {
21925 NDR_PULL_ALLOC(ndr, r->in.server);
21926 } else {
21927 r->in.server = NULL;
21929 if (r->in.server) {
21930 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
21931 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
21932 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
21933 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
21934 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
21935 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.server), ndr_get_array_length(ndr, &r->in.server));
21937 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
21938 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
21939 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
21941 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
21942 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
21943 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
21944 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.architecture), ndr_get_array_length(ndr, &r->in.architecture));
21946 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
21947 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
21948 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.path_name));
21949 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.path_name));
21950 if (ndr_get_array_length(ndr, &r->in.path_name) > ndr_get_array_size(ndr, &r->in.path_name)) {
21951 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.path_name), ndr_get_array_length(ndr, &r->in.path_name));
21953 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.path_name), sizeof(uint16_t)));
21954 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.path_name, ndr_get_array_length(ndr, &r->in.path_name), sizeof(uint16_t), CH_UTF16));
21955 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.print_processor_name));
21956 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.print_processor_name));
21957 if (ndr_get_array_length(ndr, &r->in.print_processor_name) > ndr_get_array_size(ndr, &r->in.print_processor_name)) {
21958 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.print_processor_name), ndr_get_array_length(ndr, &r->in.print_processor_name));
21960 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.print_processor_name), sizeof(uint16_t)));
21961 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.print_processor_name, ndr_get_array_length(ndr, &r->in.print_processor_name), sizeof(uint16_t), CH_UTF16));
21963 if (flags & NDR_OUT) {
21964 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21966 return NDR_ERR_SUCCESS;
21969 _PUBLIC_ void ndr_print_spoolss_AddPrintProcessor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrintProcessor *r)
21971 ndr_print_struct(ndr, name, "spoolss_AddPrintProcessor");
21972 ndr->depth++;
21973 if (flags & NDR_SET_VALUES) {
21974 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21976 if (flags & NDR_IN) {
21977 ndr_print_struct(ndr, "in", "spoolss_AddPrintProcessor");
21978 ndr->depth++;
21979 ndr_print_ptr(ndr, "server", r->in.server);
21980 ndr->depth++;
21981 if (r->in.server) {
21982 ndr_print_string(ndr, "server", r->in.server);
21984 ndr->depth--;
21985 ndr_print_string(ndr, "architecture", r->in.architecture);
21986 ndr_print_string(ndr, "path_name", r->in.path_name);
21987 ndr_print_string(ndr, "print_processor_name", r->in.print_processor_name);
21988 ndr->depth--;
21990 if (flags & NDR_OUT) {
21991 ndr_print_struct(ndr, "out", "spoolss_AddPrintProcessor");
21992 ndr->depth++;
21993 ndr_print_WERROR(ndr, "result", r->out.result);
21994 ndr->depth--;
21996 ndr->depth--;
21999 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrintProcessors(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrintProcessors *r)
22001 if (flags & NDR_IN) {
22002 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
22003 if (r->in.servername) {
22004 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
22005 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22006 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
22007 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22009 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
22010 if (r->in.environment) {
22011 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
22012 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22013 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
22014 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22016 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22017 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
22018 if (r->in.buffer) {
22019 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
22021 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22023 if (flags & NDR_OUT) {
22024 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
22025 if (r->out.info) {
22026 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
22028 if (r->out.needed == NULL) {
22029 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22031 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22032 if (r->out.count == NULL) {
22033 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22035 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
22036 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22038 return NDR_ERR_SUCCESS;
22041 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrintProcessors(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrintProcessors *r)
22043 uint32_t _ptr_servername;
22044 uint32_t _ptr_environment;
22045 uint32_t _ptr_buffer;
22046 uint32_t _ptr_info;
22047 TALLOC_CTX *_mem_save_servername_0;
22048 TALLOC_CTX *_mem_save_environment_0;
22049 TALLOC_CTX *_mem_save_buffer_0;
22050 TALLOC_CTX *_mem_save_info_0;
22051 TALLOC_CTX *_mem_save_needed_0;
22052 TALLOC_CTX *_mem_save_count_0;
22053 if (flags & NDR_IN) {
22054 ZERO_STRUCT(r->out);
22056 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
22057 if (_ptr_servername) {
22058 NDR_PULL_ALLOC(ndr, r->in.servername);
22059 } else {
22060 r->in.servername = NULL;
22062 if (r->in.servername) {
22063 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
22064 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
22065 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
22066 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
22067 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
22068 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.servername), ndr_get_array_length(ndr, &r->in.servername));
22070 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
22071 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
22072 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
22074 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
22075 if (_ptr_environment) {
22076 NDR_PULL_ALLOC(ndr, r->in.environment);
22077 } else {
22078 r->in.environment = NULL;
22080 if (r->in.environment) {
22081 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
22082 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
22083 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
22084 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
22085 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
22086 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.environment), ndr_get_array_length(ndr, &r->in.environment));
22088 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
22089 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
22090 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
22092 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22093 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
22094 if (_ptr_buffer) {
22095 NDR_PULL_ALLOC(ndr, r->in.buffer);
22096 } else {
22097 r->in.buffer = NULL;
22099 if (r->in.buffer) {
22100 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
22101 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
22102 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
22103 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22105 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22106 NDR_PULL_ALLOC(ndr, r->out.needed);
22107 ZERO_STRUCTP(r->out.needed);
22108 NDR_PULL_ALLOC(ndr, r->out.count);
22109 ZERO_STRUCTP(r->out.count);
22111 if (flags & NDR_OUT) {
22112 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
22113 if (_ptr_info) {
22114 NDR_PULL_ALLOC(ndr, r->out.info);
22115 } else {
22116 r->out.info = NULL;
22118 if (r->out.info) {
22119 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22120 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22121 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
22122 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22124 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22125 NDR_PULL_ALLOC(ndr, r->out.needed);
22127 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22128 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22129 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22130 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22131 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22132 NDR_PULL_ALLOC(ndr, r->out.count);
22134 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
22135 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
22136 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
22137 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
22138 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22140 return NDR_ERR_SUCCESS;
22143 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrintProcessors(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrintProcessors *r)
22145 uint32_t cntr_info_0;
22146 if (flags & NDR_IN) {
22147 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22148 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
22150 if (flags & NDR_OUT) {
22151 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22152 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
22153 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
22155 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22156 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
22159 return NDR_ERR_SUCCESS;
22162 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrintProcessors(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrintProcessors *r)
22164 uint32_t cntr_info_0;
22165 TALLOC_CTX *_mem_save_info_0;
22166 if (flags & NDR_IN) {
22167 ZERO_STRUCT(r->out);
22169 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22170 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
22172 if (flags & NDR_OUT) {
22173 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
22174 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22175 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22176 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22177 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
22178 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
22180 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22181 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
22183 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22185 return NDR_ERR_SUCCESS;
22188 _PUBLIC_ void ndr_print_spoolss_EnumPrintProcessors(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrintProcessors *r)
22190 uint32_t cntr_info_2;
22191 ndr_print_struct(ndr, name, "spoolss_EnumPrintProcessors");
22192 ndr->depth++;
22193 if (flags & NDR_SET_VALUES) {
22194 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22196 if (flags & NDR_IN) {
22197 ndr_print_struct(ndr, "in", "spoolss_EnumPrintProcessors");
22198 ndr->depth++;
22199 ndr_print_ptr(ndr, "servername", r->in.servername);
22200 ndr->depth++;
22201 if (r->in.servername) {
22202 ndr_print_string(ndr, "servername", r->in.servername);
22204 ndr->depth--;
22205 ndr_print_ptr(ndr, "environment", r->in.environment);
22206 ndr->depth++;
22207 if (r->in.environment) {
22208 ndr_print_string(ndr, "environment", r->in.environment);
22210 ndr->depth--;
22211 ndr_print_uint32(ndr, "level", r->in.level);
22212 ndr_print_ptr(ndr, "buffer", r->in.buffer);
22213 ndr->depth++;
22214 if (r->in.buffer) {
22215 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
22217 ndr->depth--;
22218 ndr_print_uint32(ndr, "offered", r->in.offered);
22219 ndr->depth--;
22221 if (flags & NDR_OUT) {
22222 ndr_print_struct(ndr, "out", "spoolss_EnumPrintProcessors");
22223 ndr->depth++;
22224 ndr_print_ptr(ndr, "count", r->out.count);
22225 ndr->depth++;
22226 ndr_print_uint32(ndr, "count", *r->out.count);
22227 ndr->depth--;
22228 ndr_print_ptr(ndr, "info", r->out.info);
22229 ndr->depth++;
22230 ndr_print_ptr(ndr, "info", *r->out.info);
22231 ndr->depth++;
22232 if (*r->out.info) {
22233 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
22234 ndr->depth++;
22235 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
22236 char *idx_2=NULL;
22237 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
22238 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
22239 ndr_print_spoolss_PrintProcessorInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
22240 free(idx_2);
22243 ndr->depth--;
22245 ndr->depth--;
22246 ndr->depth--;
22247 ndr_print_ptr(ndr, "needed", r->out.needed);
22248 ndr->depth++;
22249 ndr_print_uint32(ndr, "needed", *r->out.needed);
22250 ndr->depth--;
22251 ndr_print_WERROR(ndr, "result", r->out.result);
22252 ndr->depth--;
22254 ndr->depth--;
22257 static enum ndr_err_code ndr_push_spoolss_GetPrintProcessorDirectory(struct ndr_push *ndr, int flags, const struct spoolss_GetPrintProcessorDirectory *r)
22259 if (flags & NDR_IN) {
22260 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
22261 if (r->in.server) {
22262 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22263 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22264 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22265 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22267 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
22268 if (r->in.environment) {
22269 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
22270 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22271 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
22272 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22274 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22275 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
22276 if (r->in.buffer) {
22277 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
22279 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22281 if (flags & NDR_OUT) {
22282 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
22283 if (r->out.info) {
22285 struct ndr_push *_ndr_info;
22286 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
22287 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
22288 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
22289 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
22292 if (r->out.needed == NULL) {
22293 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22295 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22296 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22298 return NDR_ERR_SUCCESS;
22301 static enum ndr_err_code ndr_pull_spoolss_GetPrintProcessorDirectory(struct ndr_pull *ndr, int flags, struct spoolss_GetPrintProcessorDirectory *r)
22303 uint32_t _ptr_server;
22304 uint32_t _ptr_environment;
22305 uint32_t _ptr_buffer;
22306 uint32_t _ptr_info;
22307 TALLOC_CTX *_mem_save_server_0;
22308 TALLOC_CTX *_mem_save_environment_0;
22309 TALLOC_CTX *_mem_save_buffer_0;
22310 TALLOC_CTX *_mem_save_info_0;
22311 TALLOC_CTX *_mem_save_needed_0;
22312 if (flags & NDR_IN) {
22313 ZERO_STRUCT(r->out);
22315 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
22316 if (_ptr_server) {
22317 NDR_PULL_ALLOC(ndr, r->in.server);
22318 } else {
22319 r->in.server = NULL;
22321 if (r->in.server) {
22322 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
22323 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
22324 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
22325 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
22326 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
22327 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.server), ndr_get_array_length(ndr, &r->in.server));
22329 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
22330 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
22331 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
22333 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
22334 if (_ptr_environment) {
22335 NDR_PULL_ALLOC(ndr, r->in.environment);
22336 } else {
22337 r->in.environment = NULL;
22339 if (r->in.environment) {
22340 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
22341 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
22342 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
22343 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
22344 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
22345 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.environment), ndr_get_array_length(ndr, &r->in.environment));
22347 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
22348 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
22349 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
22351 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22352 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
22353 if (_ptr_buffer) {
22354 NDR_PULL_ALLOC(ndr, r->in.buffer);
22355 } else {
22356 r->in.buffer = NULL;
22358 if (r->in.buffer) {
22359 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
22360 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
22361 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
22362 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22364 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22365 NDR_PULL_ALLOC(ndr, r->out.needed);
22366 ZERO_STRUCTP(r->out.needed);
22368 if (flags & NDR_OUT) {
22369 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
22370 if (_ptr_info) {
22371 NDR_PULL_ALLOC(ndr, r->out.info);
22372 } else {
22373 r->out.info = NULL;
22375 if (r->out.info) {
22376 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22377 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22379 struct ndr_pull *_ndr_info;
22380 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
22381 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
22382 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
22383 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
22385 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22387 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22388 NDR_PULL_ALLOC(ndr, r->out.needed);
22390 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22391 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22392 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22393 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22394 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22396 return NDR_ERR_SUCCESS;
22399 _PUBLIC_ void ndr_print_spoolss_GetPrintProcessorDirectory(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrintProcessorDirectory *r)
22401 ndr_print_struct(ndr, name, "spoolss_GetPrintProcessorDirectory");
22402 ndr->depth++;
22403 if (flags & NDR_SET_VALUES) {
22404 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22406 if (flags & NDR_IN) {
22407 ndr_print_struct(ndr, "in", "spoolss_GetPrintProcessorDirectory");
22408 ndr->depth++;
22409 ndr_print_ptr(ndr, "server", r->in.server);
22410 ndr->depth++;
22411 if (r->in.server) {
22412 ndr_print_string(ndr, "server", r->in.server);
22414 ndr->depth--;
22415 ndr_print_ptr(ndr, "environment", r->in.environment);
22416 ndr->depth++;
22417 if (r->in.environment) {
22418 ndr_print_string(ndr, "environment", r->in.environment);
22420 ndr->depth--;
22421 ndr_print_uint32(ndr, "level", r->in.level);
22422 ndr_print_ptr(ndr, "buffer", r->in.buffer);
22423 ndr->depth++;
22424 if (r->in.buffer) {
22425 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
22427 ndr->depth--;
22428 ndr_print_uint32(ndr, "offered", r->in.offered);
22429 ndr->depth--;
22431 if (flags & NDR_OUT) {
22432 ndr_print_struct(ndr, "out", "spoolss_GetPrintProcessorDirectory");
22433 ndr->depth++;
22434 ndr_print_ptr(ndr, "info", r->out.info);
22435 ndr->depth++;
22436 if (r->out.info) {
22437 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
22438 ndr_print_spoolss_PrintProcessorDirectoryInfo(ndr, "info", r->out.info);
22440 ndr->depth--;
22441 ndr_print_ptr(ndr, "needed", r->out.needed);
22442 ndr->depth++;
22443 ndr_print_uint32(ndr, "needed", *r->out.needed);
22444 ndr->depth--;
22445 ndr_print_WERROR(ndr, "result", r->out.result);
22446 ndr->depth--;
22448 ndr->depth--;
22451 static enum ndr_err_code ndr_push_spoolss_StartDocPrinter(struct ndr_push *ndr, int flags, const struct spoolss_StartDocPrinter *r)
22453 if (flags & NDR_IN) {
22454 if (r->in.handle == NULL) {
22455 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22457 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22458 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22459 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
22460 NDR_CHECK(ndr_push_spoolss_DocumentInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
22462 if (flags & NDR_OUT) {
22463 if (r->out.job_id == NULL) {
22464 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22466 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.job_id));
22467 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22469 return NDR_ERR_SUCCESS;
22472 static enum ndr_err_code ndr_pull_spoolss_StartDocPrinter(struct ndr_pull *ndr, int flags, struct spoolss_StartDocPrinter *r)
22474 TALLOC_CTX *_mem_save_handle_0;
22475 TALLOC_CTX *_mem_save_job_id_0;
22476 if (flags & NDR_IN) {
22477 ZERO_STRUCT(r->out);
22479 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22480 NDR_PULL_ALLOC(ndr, r->in.handle);
22482 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22483 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22484 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22485 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22486 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22487 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
22488 NDR_CHECK(ndr_pull_spoolss_DocumentInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
22489 NDR_PULL_ALLOC(ndr, r->out.job_id);
22490 ZERO_STRUCTP(r->out.job_id);
22492 if (flags & NDR_OUT) {
22493 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22494 NDR_PULL_ALLOC(ndr, r->out.job_id);
22496 _mem_save_job_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
22497 NDR_PULL_SET_MEM_CTX(ndr, r->out.job_id, LIBNDR_FLAG_REF_ALLOC);
22498 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.job_id));
22499 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_job_id_0, LIBNDR_FLAG_REF_ALLOC);
22500 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22502 return NDR_ERR_SUCCESS;
22505 _PUBLIC_ void ndr_print_spoolss_StartDocPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_StartDocPrinter *r)
22507 ndr_print_struct(ndr, name, "spoolss_StartDocPrinter");
22508 ndr->depth++;
22509 if (flags & NDR_SET_VALUES) {
22510 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22512 if (flags & NDR_IN) {
22513 ndr_print_struct(ndr, "in", "spoolss_StartDocPrinter");
22514 ndr->depth++;
22515 ndr_print_ptr(ndr, "handle", r->in.handle);
22516 ndr->depth++;
22517 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22518 ndr->depth--;
22519 ndr_print_uint32(ndr, "level", r->in.level);
22520 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
22521 ndr_print_spoolss_DocumentInfo(ndr, "info", &r->in.info);
22522 ndr->depth--;
22524 if (flags & NDR_OUT) {
22525 ndr_print_struct(ndr, "out", "spoolss_StartDocPrinter");
22526 ndr->depth++;
22527 ndr_print_ptr(ndr, "job_id", r->out.job_id);
22528 ndr->depth++;
22529 ndr_print_uint32(ndr, "job_id", *r->out.job_id);
22530 ndr->depth--;
22531 ndr_print_WERROR(ndr, "result", r->out.result);
22532 ndr->depth--;
22534 ndr->depth--;
22537 static enum ndr_err_code ndr_push_spoolss_StartPagePrinter(struct ndr_push *ndr, int flags, const struct spoolss_StartPagePrinter *r)
22539 if (flags & NDR_IN) {
22540 if (r->in.handle == NULL) {
22541 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22543 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22545 if (flags & NDR_OUT) {
22546 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22548 return NDR_ERR_SUCCESS;
22551 static enum ndr_err_code ndr_pull_spoolss_StartPagePrinter(struct ndr_pull *ndr, int flags, struct spoolss_StartPagePrinter *r)
22553 TALLOC_CTX *_mem_save_handle_0;
22554 if (flags & NDR_IN) {
22555 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22556 NDR_PULL_ALLOC(ndr, r->in.handle);
22558 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22559 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22560 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22561 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22563 if (flags & NDR_OUT) {
22564 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22566 return NDR_ERR_SUCCESS;
22569 _PUBLIC_ void ndr_print_spoolss_StartPagePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_StartPagePrinter *r)
22571 ndr_print_struct(ndr, name, "spoolss_StartPagePrinter");
22572 ndr->depth++;
22573 if (flags & NDR_SET_VALUES) {
22574 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22576 if (flags & NDR_IN) {
22577 ndr_print_struct(ndr, "in", "spoolss_StartPagePrinter");
22578 ndr->depth++;
22579 ndr_print_ptr(ndr, "handle", r->in.handle);
22580 ndr->depth++;
22581 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22582 ndr->depth--;
22583 ndr->depth--;
22585 if (flags & NDR_OUT) {
22586 ndr_print_struct(ndr, "out", "spoolss_StartPagePrinter");
22587 ndr->depth++;
22588 ndr_print_WERROR(ndr, "result", r->out.result);
22589 ndr->depth--;
22591 ndr->depth--;
22594 static enum ndr_err_code ndr_push_spoolss_WritePrinter(struct ndr_push *ndr, int flags, const struct spoolss_WritePrinter *r)
22596 if (flags & NDR_IN) {
22597 if (r->in.handle == NULL) {
22598 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22600 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22601 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
22602 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data.length));
22604 if (flags & NDR_OUT) {
22605 if (r->out.num_written == NULL) {
22606 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22608 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.num_written));
22609 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22611 return NDR_ERR_SUCCESS;
22614 static enum ndr_err_code ndr_pull_spoolss_WritePrinter(struct ndr_pull *ndr, int flags, struct spoolss_WritePrinter *r)
22616 TALLOC_CTX *_mem_save_handle_0;
22617 TALLOC_CTX *_mem_save_num_written_0;
22618 if (flags & NDR_IN) {
22619 ZERO_STRUCT(r->out);
22621 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22622 NDR_PULL_ALLOC(ndr, r->in.handle);
22624 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22625 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22626 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22627 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22628 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->in.data));
22629 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._data_size));
22630 NDR_PULL_ALLOC(ndr, r->out.num_written);
22631 ZERO_STRUCTP(r->out.num_written);
22633 if (flags & NDR_OUT) {
22634 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22635 NDR_PULL_ALLOC(ndr, r->out.num_written);
22637 _mem_save_num_written_0 = NDR_PULL_GET_MEM_CTX(ndr);
22638 NDR_PULL_SET_MEM_CTX(ndr, r->out.num_written, LIBNDR_FLAG_REF_ALLOC);
22639 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.num_written));
22640 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_num_written_0, LIBNDR_FLAG_REF_ALLOC);
22641 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22643 return NDR_ERR_SUCCESS;
22646 _PUBLIC_ void ndr_print_spoolss_WritePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_WritePrinter *r)
22648 ndr_print_struct(ndr, name, "spoolss_WritePrinter");
22649 ndr->depth++;
22650 if (flags & NDR_SET_VALUES) {
22651 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22653 if (flags & NDR_IN) {
22654 ndr_print_struct(ndr, "in", "spoolss_WritePrinter");
22655 ndr->depth++;
22656 ndr_print_ptr(ndr, "handle", r->in.handle);
22657 ndr->depth++;
22658 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22659 ndr->depth--;
22660 ndr_print_DATA_BLOB(ndr, "data", r->in.data);
22661 ndr_print_uint32(ndr, "_data_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->in.data.length:r->in._data_size);
22662 ndr->depth--;
22664 if (flags & NDR_OUT) {
22665 ndr_print_struct(ndr, "out", "spoolss_WritePrinter");
22666 ndr->depth++;
22667 ndr_print_ptr(ndr, "num_written", r->out.num_written);
22668 ndr->depth++;
22669 ndr_print_uint32(ndr, "num_written", *r->out.num_written);
22670 ndr->depth--;
22671 ndr_print_WERROR(ndr, "result", r->out.result);
22672 ndr->depth--;
22674 ndr->depth--;
22677 static enum ndr_err_code ndr_push_spoolss_EndPagePrinter(struct ndr_push *ndr, int flags, const struct spoolss_EndPagePrinter *r)
22679 if (flags & NDR_IN) {
22680 if (r->in.handle == NULL) {
22681 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22683 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22685 if (flags & NDR_OUT) {
22686 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22688 return NDR_ERR_SUCCESS;
22691 static enum ndr_err_code ndr_pull_spoolss_EndPagePrinter(struct ndr_pull *ndr, int flags, struct spoolss_EndPagePrinter *r)
22693 TALLOC_CTX *_mem_save_handle_0;
22694 if (flags & NDR_IN) {
22695 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22696 NDR_PULL_ALLOC(ndr, r->in.handle);
22698 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22699 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22700 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22701 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22703 if (flags & NDR_OUT) {
22704 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22706 return NDR_ERR_SUCCESS;
22709 _PUBLIC_ void ndr_print_spoolss_EndPagePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EndPagePrinter *r)
22711 ndr_print_struct(ndr, name, "spoolss_EndPagePrinter");
22712 ndr->depth++;
22713 if (flags & NDR_SET_VALUES) {
22714 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22716 if (flags & NDR_IN) {
22717 ndr_print_struct(ndr, "in", "spoolss_EndPagePrinter");
22718 ndr->depth++;
22719 ndr_print_ptr(ndr, "handle", r->in.handle);
22720 ndr->depth++;
22721 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22722 ndr->depth--;
22723 ndr->depth--;
22725 if (flags & NDR_OUT) {
22726 ndr_print_struct(ndr, "out", "spoolss_EndPagePrinter");
22727 ndr->depth++;
22728 ndr_print_WERROR(ndr, "result", r->out.result);
22729 ndr->depth--;
22731 ndr->depth--;
22734 static enum ndr_err_code ndr_push_spoolss_AbortPrinter(struct ndr_push *ndr, int flags, const struct spoolss_AbortPrinter *r)
22736 if (flags & NDR_IN) {
22737 if (r->in.handle == NULL) {
22738 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22740 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22742 if (flags & NDR_OUT) {
22743 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22745 return NDR_ERR_SUCCESS;
22748 static enum ndr_err_code ndr_pull_spoolss_AbortPrinter(struct ndr_pull *ndr, int flags, struct spoolss_AbortPrinter *r)
22750 TALLOC_CTX *_mem_save_handle_0;
22751 if (flags & NDR_IN) {
22752 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22753 NDR_PULL_ALLOC(ndr, r->in.handle);
22755 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22756 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22757 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22758 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22760 if (flags & NDR_OUT) {
22761 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22763 return NDR_ERR_SUCCESS;
22766 _PUBLIC_ void ndr_print_spoolss_AbortPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AbortPrinter *r)
22768 ndr_print_struct(ndr, name, "spoolss_AbortPrinter");
22769 ndr->depth++;
22770 if (flags & NDR_SET_VALUES) {
22771 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22773 if (flags & NDR_IN) {
22774 ndr_print_struct(ndr, "in", "spoolss_AbortPrinter");
22775 ndr->depth++;
22776 ndr_print_ptr(ndr, "handle", r->in.handle);
22777 ndr->depth++;
22778 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22779 ndr->depth--;
22780 ndr->depth--;
22782 if (flags & NDR_OUT) {
22783 ndr_print_struct(ndr, "out", "spoolss_AbortPrinter");
22784 ndr->depth++;
22785 ndr_print_WERROR(ndr, "result", r->out.result);
22786 ndr->depth--;
22788 ndr->depth--;
22791 static enum ndr_err_code ndr_push_spoolss_ReadPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReadPrinter *r)
22793 if (flags & NDR_IN) {
22794 if (r->in.handle == NULL) {
22795 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22797 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22798 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_size));
22800 if (flags & NDR_OUT) {
22801 if (r->out.data == NULL) {
22802 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22804 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.data_size));
22805 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->in.data_size));
22806 if (r->out._data_size == NULL) {
22807 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22809 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out._data_size));
22810 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22812 return NDR_ERR_SUCCESS;
22815 static enum ndr_err_code ndr_pull_spoolss_ReadPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReadPrinter *r)
22817 TALLOC_CTX *_mem_save_handle_0;
22818 TALLOC_CTX *_mem_save__data_size_0;
22819 if (flags & NDR_IN) {
22820 ZERO_STRUCT(r->out);
22822 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22823 NDR_PULL_ALLOC(ndr, r->in.handle);
22825 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22826 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22827 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22828 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22829 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_size));
22830 NDR_PULL_ALLOC_N(ndr, r->out.data, r->in.data_size);
22831 memset(r->out.data, 0, (r->in.data_size) * sizeof(*r->out.data));
22832 NDR_PULL_ALLOC(ndr, r->out._data_size);
22833 ZERO_STRUCTP(r->out._data_size);
22835 if (flags & NDR_OUT) {
22836 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
22837 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22838 NDR_PULL_ALLOC_N(ndr, r->out.data, ndr_get_array_size(ndr, &r->out.data));
22840 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, ndr_get_array_size(ndr, &r->out.data)));
22841 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22842 NDR_PULL_ALLOC(ndr, r->out._data_size);
22844 _mem_save__data_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
22845 NDR_PULL_SET_MEM_CTX(ndr, r->out._data_size, LIBNDR_FLAG_REF_ALLOC);
22846 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out._data_size));
22847 NDR_PULL_SET_MEM_CTX(ndr, _mem_save__data_size_0, LIBNDR_FLAG_REF_ALLOC);
22848 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22849 if (r->out.data) {
22850 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, r->in.data_size));
22853 return NDR_ERR_SUCCESS;
22856 _PUBLIC_ void ndr_print_spoolss_ReadPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReadPrinter *r)
22858 ndr_print_struct(ndr, name, "spoolss_ReadPrinter");
22859 ndr->depth++;
22860 if (flags & NDR_SET_VALUES) {
22861 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22863 if (flags & NDR_IN) {
22864 ndr_print_struct(ndr, "in", "spoolss_ReadPrinter");
22865 ndr->depth++;
22866 ndr_print_ptr(ndr, "handle", r->in.handle);
22867 ndr->depth++;
22868 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22869 ndr->depth--;
22870 ndr_print_uint32(ndr, "data_size", r->in.data_size);
22871 ndr->depth--;
22873 if (flags & NDR_OUT) {
22874 ndr_print_struct(ndr, "out", "spoolss_ReadPrinter");
22875 ndr->depth++;
22876 ndr_print_ptr(ndr, "data", r->out.data);
22877 ndr->depth++;
22878 ndr_print_array_uint8(ndr, "data", r->out.data, r->in.data_size);
22879 ndr->depth--;
22880 ndr_print_ptr(ndr, "_data_size", r->out._data_size);
22881 ndr->depth++;
22882 ndr_print_uint32(ndr, "_data_size", *r->out._data_size);
22883 ndr->depth--;
22884 ndr_print_WERROR(ndr, "result", r->out.result);
22885 ndr->depth--;
22887 ndr->depth--;
22890 static enum ndr_err_code ndr_push_spoolss_EndDocPrinter(struct ndr_push *ndr, int flags, const struct spoolss_EndDocPrinter *r)
22892 if (flags & NDR_IN) {
22893 if (r->in.handle == NULL) {
22894 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22896 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22898 if (flags & NDR_OUT) {
22899 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22901 return NDR_ERR_SUCCESS;
22904 static enum ndr_err_code ndr_pull_spoolss_EndDocPrinter(struct ndr_pull *ndr, int flags, struct spoolss_EndDocPrinter *r)
22906 TALLOC_CTX *_mem_save_handle_0;
22907 if (flags & NDR_IN) {
22908 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22909 NDR_PULL_ALLOC(ndr, r->in.handle);
22911 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22912 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22913 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22914 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22916 if (flags & NDR_OUT) {
22917 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22919 return NDR_ERR_SUCCESS;
22922 _PUBLIC_ void ndr_print_spoolss_EndDocPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EndDocPrinter *r)
22924 ndr_print_struct(ndr, name, "spoolss_EndDocPrinter");
22925 ndr->depth++;
22926 if (flags & NDR_SET_VALUES) {
22927 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22929 if (flags & NDR_IN) {
22930 ndr_print_struct(ndr, "in", "spoolss_EndDocPrinter");
22931 ndr->depth++;
22932 ndr_print_ptr(ndr, "handle", r->in.handle);
22933 ndr->depth++;
22934 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22935 ndr->depth--;
22936 ndr->depth--;
22938 if (flags & NDR_OUT) {
22939 ndr_print_struct(ndr, "out", "spoolss_EndDocPrinter");
22940 ndr->depth++;
22941 ndr_print_WERROR(ndr, "result", r->out.result);
22942 ndr->depth--;
22944 ndr->depth--;
22947 static enum ndr_err_code ndr_push_spoolss_AddJob(struct ndr_push *ndr, int flags, const struct spoolss_AddJob *r)
22949 if (flags & NDR_IN) {
22950 if (r->in.handle == NULL) {
22951 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22953 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22954 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22955 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
22956 if (r->in.buffer) {
22957 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.offered));
22958 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.offered));
22960 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22962 if (flags & NDR_OUT) {
22963 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.buffer));
22964 if (r->out.buffer) {
22965 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.offered));
22966 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
22968 if (r->out.needed == NULL) {
22969 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22971 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22972 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22974 return NDR_ERR_SUCCESS;
22977 static enum ndr_err_code ndr_pull_spoolss_AddJob(struct ndr_pull *ndr, int flags, struct spoolss_AddJob *r)
22979 uint32_t _ptr_buffer;
22980 TALLOC_CTX *_mem_save_handle_0;
22981 TALLOC_CTX *_mem_save_buffer_0;
22982 TALLOC_CTX *_mem_save_needed_0;
22983 if (flags & NDR_IN) {
22984 ZERO_STRUCT(r->out);
22986 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22987 NDR_PULL_ALLOC(ndr, r->in.handle);
22989 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22990 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22991 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22992 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22993 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22994 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
22995 if (_ptr_buffer) {
22996 NDR_PULL_ALLOC(ndr, r->in.buffer);
22997 } else {
22998 r->in.buffer = NULL;
23000 if (r->in.buffer) {
23001 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
23002 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
23003 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
23004 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
23005 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
23006 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
23008 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
23009 NDR_PULL_ALLOC(ndr, r->out.needed);
23010 ZERO_STRUCTP(r->out.needed);
23011 if (r->in.buffer) {
23012 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.offered));
23015 if (flags & NDR_OUT) {
23016 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
23017 if (_ptr_buffer) {
23018 NDR_PULL_ALLOC(ndr, r->out.buffer);
23019 } else {
23020 r->out.buffer = NULL;
23022 if (r->out.buffer) {
23023 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
23024 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, 0);
23025 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
23026 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
23027 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)));
23028 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
23030 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23031 NDR_PULL_ALLOC(ndr, r->out.needed);
23033 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
23034 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
23035 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
23036 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
23037 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23038 if (r->out.buffer) {
23039 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
23042 return NDR_ERR_SUCCESS;
23045 _PUBLIC_ void ndr_print_spoolss_AddJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddJob *r)
23047 ndr_print_struct(ndr, name, "spoolss_AddJob");
23048 ndr->depth++;
23049 if (flags & NDR_SET_VALUES) {
23050 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23052 if (flags & NDR_IN) {
23053 ndr_print_struct(ndr, "in", "spoolss_AddJob");
23054 ndr->depth++;
23055 ndr_print_ptr(ndr, "handle", r->in.handle);
23056 ndr->depth++;
23057 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23058 ndr->depth--;
23059 ndr_print_uint32(ndr, "level", r->in.level);
23060 ndr_print_ptr(ndr, "buffer", r->in.buffer);
23061 ndr->depth++;
23062 if (r->in.buffer) {
23063 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.offered);
23065 ndr->depth--;
23066 ndr_print_uint32(ndr, "offered", r->in.offered);
23067 ndr->depth--;
23069 if (flags & NDR_OUT) {
23070 ndr_print_struct(ndr, "out", "spoolss_AddJob");
23071 ndr->depth++;
23072 ndr_print_ptr(ndr, "buffer", r->out.buffer);
23073 ndr->depth++;
23074 if (r->out.buffer) {
23075 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
23077 ndr->depth--;
23078 ndr_print_ptr(ndr, "needed", r->out.needed);
23079 ndr->depth++;
23080 ndr_print_uint32(ndr, "needed", *r->out.needed);
23081 ndr->depth--;
23082 ndr_print_WERROR(ndr, "result", r->out.result);
23083 ndr->depth--;
23085 ndr->depth--;
23088 static enum ndr_err_code ndr_push_spoolss_ScheduleJob(struct ndr_push *ndr, int flags, const struct spoolss_ScheduleJob *r)
23090 if (flags & NDR_IN) {
23091 if (r->in.handle == NULL) {
23092 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23094 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23095 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.jobid));
23097 if (flags & NDR_OUT) {
23098 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23100 return NDR_ERR_SUCCESS;
23103 static enum ndr_err_code ndr_pull_spoolss_ScheduleJob(struct ndr_pull *ndr, int flags, struct spoolss_ScheduleJob *r)
23105 TALLOC_CTX *_mem_save_handle_0;
23106 if (flags & NDR_IN) {
23107 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23108 NDR_PULL_ALLOC(ndr, r->in.handle);
23110 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23111 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23112 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23113 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23114 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.jobid));
23116 if (flags & NDR_OUT) {
23117 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23119 return NDR_ERR_SUCCESS;
23122 _PUBLIC_ void ndr_print_spoolss_ScheduleJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ScheduleJob *r)
23124 ndr_print_struct(ndr, name, "spoolss_ScheduleJob");
23125 ndr->depth++;
23126 if (flags & NDR_SET_VALUES) {
23127 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23129 if (flags & NDR_IN) {
23130 ndr_print_struct(ndr, "in", "spoolss_ScheduleJob");
23131 ndr->depth++;
23132 ndr_print_ptr(ndr, "handle", r->in.handle);
23133 ndr->depth++;
23134 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23135 ndr->depth--;
23136 ndr_print_uint32(ndr, "jobid", r->in.jobid);
23137 ndr->depth--;
23139 if (flags & NDR_OUT) {
23140 ndr_print_struct(ndr, "out", "spoolss_ScheduleJob");
23141 ndr->depth++;
23142 ndr_print_WERROR(ndr, "result", r->out.result);
23143 ndr->depth--;
23145 ndr->depth--;
23148 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct _spoolss_GetPrinterData *r)
23150 if (flags & NDR_IN) {
23151 if (r->in.handle == NULL) {
23152 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23154 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23155 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
23156 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
23157 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
23158 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.value_name, ndr_charset_length(r->in.value_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
23159 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
23161 if (flags & NDR_OUT) {
23162 if (r->out.type == NULL) {
23163 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23165 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
23166 if (r->out.data == NULL) {
23167 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23169 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.data));
23170 if (r->out.needed == NULL) {
23171 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23173 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
23174 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23176 return NDR_ERR_SUCCESS;
23179 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct _spoolss_GetPrinterData *r)
23181 TALLOC_CTX *_mem_save_handle_0;
23182 TALLOC_CTX *_mem_save_type_0;
23183 TALLOC_CTX *_mem_save_data_0;
23184 TALLOC_CTX *_mem_save_needed_0;
23185 if (flags & NDR_IN) {
23186 ZERO_STRUCT(r->out);
23188 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23189 NDR_PULL_ALLOC(ndr, r->in.handle);
23191 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23192 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23193 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23194 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23195 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
23196 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
23197 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
23198 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.value_name), ndr_get_array_length(ndr, &r->in.value_name));
23200 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
23201 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.value_name, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t), CH_UTF16));
23202 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
23203 NDR_PULL_ALLOC(ndr, r->out.type);
23204 ZERO_STRUCTP(r->out.type);
23205 NDR_PULL_ALLOC(ndr, r->out.data);
23206 ZERO_STRUCTP(r->out.data);
23207 NDR_PULL_ALLOC(ndr, r->out.needed);
23208 ZERO_STRUCTP(r->out.needed);
23210 if (flags & NDR_OUT) {
23211 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23212 NDR_PULL_ALLOC(ndr, r->out.type);
23214 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
23215 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
23216 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
23217 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
23218 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23219 NDR_PULL_ALLOC(ndr, r->out.data);
23221 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
23222 NDR_PULL_SET_MEM_CTX(ndr, r->out.data, LIBNDR_FLAG_REF_ALLOC);
23223 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.data));
23224 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
23225 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23226 NDR_PULL_ALLOC(ndr, r->out.needed);
23228 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
23229 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
23230 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
23231 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
23232 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23234 return NDR_ERR_SUCCESS;
23237 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct __spoolss_GetPrinterData *r)
23239 if (flags & NDR_IN) {
23240 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
23242 if (flags & NDR_OUT) {
23243 if (r->out.data == NULL) {
23244 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23246 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.data, r->in.type));
23247 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
23249 return NDR_ERR_SUCCESS;
23252 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct __spoolss_GetPrinterData *r)
23254 TALLOC_CTX *_mem_save_data_0;
23255 if (flags & NDR_IN) {
23256 ZERO_STRUCT(r->out);
23258 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
23259 NDR_PULL_ALLOC(ndr, r->out.data);
23260 ZERO_STRUCTP(r->out.data);
23262 if (flags & NDR_OUT) {
23263 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23264 NDR_PULL_ALLOC(ndr, r->out.data);
23266 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
23267 NDR_PULL_SET_MEM_CTX(ndr, r->out.data, LIBNDR_FLAG_REF_ALLOC);
23268 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.data, r->in.type));
23269 NDR_CHECK(ndr_pull_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
23270 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
23272 return NDR_ERR_SUCCESS;
23275 _PUBLIC_ void ndr_print_spoolss_GetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterData *r)
23277 ndr_print_struct(ndr, name, "spoolss_GetPrinterData");
23278 ndr->depth++;
23279 if (flags & NDR_SET_VALUES) {
23280 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23282 if (flags & NDR_IN) {
23283 ndr_print_struct(ndr, "in", "spoolss_GetPrinterData");
23284 ndr->depth++;
23285 ndr_print_ptr(ndr, "handle", r->in.handle);
23286 ndr->depth++;
23287 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23288 ndr->depth--;
23289 ndr_print_string(ndr, "value_name", r->in.value_name);
23290 ndr_print_uint32(ndr, "offered", r->in.offered);
23291 ndr->depth--;
23293 if (flags & NDR_OUT) {
23294 ndr_print_struct(ndr, "out", "spoolss_GetPrinterData");
23295 ndr->depth++;
23296 ndr_print_ptr(ndr, "type", r->out.type);
23297 ndr->depth++;
23298 ndr_print_winreg_Type(ndr, "type", *r->out.type);
23299 ndr->depth--;
23300 ndr_print_ptr(ndr, "data", r->out.data);
23301 ndr->depth++;
23302 ndr_print_set_switch_value(ndr, r->out.data, *r->out.type);
23303 ndr_print_spoolss_PrinterData(ndr, "data", r->out.data);
23304 ndr->depth--;
23305 ndr_print_ptr(ndr, "needed", r->out.needed);
23306 ndr->depth++;
23307 ndr_print_uint32(ndr, "needed", *r->out.needed);
23308 ndr->depth--;
23309 ndr_print_WERROR(ndr, "result", r->out.result);
23310 ndr->depth--;
23312 ndr->depth--;
23315 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct _spoolss_SetPrinterData *r)
23317 if (flags & NDR_IN) {
23318 if (r->in.handle == NULL) {
23319 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23321 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23322 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
23323 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
23324 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
23325 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.value_name, ndr_charset_length(r->in.value_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
23326 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
23327 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
23328 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in._offered));
23330 if (flags & NDR_OUT) {
23331 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23333 return NDR_ERR_SUCCESS;
23336 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct __spoolss_SetPrinterData *r)
23338 if (flags & NDR_IN) {
23339 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
23341 if (flags & NDR_OUT) {
23342 if (r->out.data == NULL) {
23343 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23345 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.data, r->in.type));
23346 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
23348 return NDR_ERR_SUCCESS;
23351 static enum ndr_err_code ndr_pull_spoolss_SetPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinterData *r)
23353 TALLOC_CTX *_mem_save_handle_0;
23354 if (flags & NDR_IN) {
23355 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23356 NDR_PULL_ALLOC(ndr, r->in.handle);
23358 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23359 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23360 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23361 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23362 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
23363 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
23364 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
23365 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.value_name), ndr_get_array_length(ndr, &r->in.value_name));
23367 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
23368 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.value_name, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t), CH_UTF16));
23369 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
23371 struct ndr_pull *_ndr_data;
23372 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_data, 4, -1));
23373 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data, &r->in.data, r->in.type));
23374 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
23375 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_data, 4, -1));
23377 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._offered));
23379 if (flags & NDR_OUT) {
23380 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23382 return NDR_ERR_SUCCESS;
23385 _PUBLIC_ void ndr_print_spoolss_SetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinterData *r)
23387 ndr_print_struct(ndr, name, "spoolss_SetPrinterData");
23388 ndr->depth++;
23389 if (flags & NDR_SET_VALUES) {
23390 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23392 if (flags & NDR_IN) {
23393 ndr_print_struct(ndr, "in", "spoolss_SetPrinterData");
23394 ndr->depth++;
23395 ndr_print_ptr(ndr, "handle", r->in.handle);
23396 ndr->depth++;
23397 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23398 ndr->depth--;
23399 ndr_print_string(ndr, "value_name", r->in.value_name);
23400 ndr_print_winreg_Type(ndr, "type", r->in.type);
23401 ndr_print_set_switch_value(ndr, &r->in.data, r->in.type);
23402 ndr_print_spoolss_PrinterData(ndr, "data", &r->in.data);
23403 ndr_print_uint32(ndr, "_offered", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_spoolss_PrinterData(&r->in.data, r->in.type, ndr->iconv_convenience, flags):r->in._offered);
23404 ndr->depth--;
23406 if (flags & NDR_OUT) {
23407 ndr_print_struct(ndr, "out", "spoolss_SetPrinterData");
23408 ndr->depth++;
23409 ndr_print_WERROR(ndr, "result", r->out.result);
23410 ndr->depth--;
23412 ndr->depth--;
23415 static enum ndr_err_code ndr_push_spoolss_WaitForPrinterChange(struct ndr_push *ndr, int flags, const struct spoolss_WaitForPrinterChange *r)
23417 if (flags & NDR_IN) {
23419 if (flags & NDR_OUT) {
23420 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23422 return NDR_ERR_SUCCESS;
23425 static enum ndr_err_code ndr_pull_spoolss_WaitForPrinterChange(struct ndr_pull *ndr, int flags, struct spoolss_WaitForPrinterChange *r)
23427 if (flags & NDR_IN) {
23429 if (flags & NDR_OUT) {
23430 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23432 return NDR_ERR_SUCCESS;
23435 _PUBLIC_ void ndr_print_spoolss_WaitForPrinterChange(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_WaitForPrinterChange *r)
23437 ndr_print_struct(ndr, name, "spoolss_WaitForPrinterChange");
23438 ndr->depth++;
23439 if (flags & NDR_SET_VALUES) {
23440 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23442 if (flags & NDR_IN) {
23443 ndr_print_struct(ndr, "in", "spoolss_WaitForPrinterChange");
23444 ndr->depth++;
23445 ndr->depth--;
23447 if (flags & NDR_OUT) {
23448 ndr_print_struct(ndr, "out", "spoolss_WaitForPrinterChange");
23449 ndr->depth++;
23450 ndr_print_WERROR(ndr, "result", r->out.result);
23451 ndr->depth--;
23453 ndr->depth--;
23456 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ClosePrinter(struct ndr_push *ndr, int flags, const struct spoolss_ClosePrinter *r)
23458 if (flags & NDR_IN) {
23459 if (r->in.handle == NULL) {
23460 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23462 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23464 if (flags & NDR_OUT) {
23465 if (r->out.handle == NULL) {
23466 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23468 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
23469 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23471 return NDR_ERR_SUCCESS;
23474 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ClosePrinter(struct ndr_pull *ndr, int flags, struct spoolss_ClosePrinter *r)
23476 TALLOC_CTX *_mem_save_handle_0;
23477 if (flags & NDR_IN) {
23478 ZERO_STRUCT(r->out);
23480 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23481 NDR_PULL_ALLOC(ndr, r->in.handle);
23483 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23484 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23485 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23486 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23487 NDR_PULL_ALLOC(ndr, r->out.handle);
23488 *r->out.handle = *r->in.handle;
23490 if (flags & NDR_OUT) {
23491 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23492 NDR_PULL_ALLOC(ndr, r->out.handle);
23494 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23495 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
23496 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
23497 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23498 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23500 return NDR_ERR_SUCCESS;
23503 _PUBLIC_ void ndr_print_spoolss_ClosePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ClosePrinter *r)
23505 ndr_print_struct(ndr, name, "spoolss_ClosePrinter");
23506 ndr->depth++;
23507 if (flags & NDR_SET_VALUES) {
23508 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23510 if (flags & NDR_IN) {
23511 ndr_print_struct(ndr, "in", "spoolss_ClosePrinter");
23512 ndr->depth++;
23513 ndr_print_ptr(ndr, "handle", r->in.handle);
23514 ndr->depth++;
23515 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23516 ndr->depth--;
23517 ndr->depth--;
23519 if (flags & NDR_OUT) {
23520 ndr_print_struct(ndr, "out", "spoolss_ClosePrinter");
23521 ndr->depth++;
23522 ndr_print_ptr(ndr, "handle", r->out.handle);
23523 ndr->depth++;
23524 ndr_print_policy_handle(ndr, "handle", r->out.handle);
23525 ndr->depth--;
23526 ndr_print_WERROR(ndr, "result", r->out.result);
23527 ndr->depth--;
23529 ndr->depth--;
23532 static enum ndr_err_code ndr_push_spoolss_AddForm(struct ndr_push *ndr, int flags, const struct spoolss_AddForm *r)
23534 if (flags & NDR_IN) {
23535 if (r->in.handle == NULL) {
23536 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23538 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23539 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23540 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
23541 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
23543 if (flags & NDR_OUT) {
23544 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23546 return NDR_ERR_SUCCESS;
23549 static enum ndr_err_code ndr_pull_spoolss_AddForm(struct ndr_pull *ndr, int flags, struct spoolss_AddForm *r)
23551 TALLOC_CTX *_mem_save_handle_0;
23552 if (flags & NDR_IN) {
23553 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23554 NDR_PULL_ALLOC(ndr, r->in.handle);
23556 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23557 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23558 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23559 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23560 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23561 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
23562 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
23564 if (flags & NDR_OUT) {
23565 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23567 return NDR_ERR_SUCCESS;
23570 _PUBLIC_ void ndr_print_spoolss_AddForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddForm *r)
23572 ndr_print_struct(ndr, name, "spoolss_AddForm");
23573 ndr->depth++;
23574 if (flags & NDR_SET_VALUES) {
23575 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23577 if (flags & NDR_IN) {
23578 ndr_print_struct(ndr, "in", "spoolss_AddForm");
23579 ndr->depth++;
23580 ndr_print_ptr(ndr, "handle", r->in.handle);
23581 ndr->depth++;
23582 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23583 ndr->depth--;
23584 ndr_print_uint32(ndr, "level", r->in.level);
23585 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
23586 ndr_print_spoolss_AddFormInfo(ndr, "info", &r->in.info);
23587 ndr->depth--;
23589 if (flags & NDR_OUT) {
23590 ndr_print_struct(ndr, "out", "spoolss_AddForm");
23591 ndr->depth++;
23592 ndr_print_WERROR(ndr, "result", r->out.result);
23593 ndr->depth--;
23595 ndr->depth--;
23598 static enum ndr_err_code ndr_push_spoolss_DeleteForm(struct ndr_push *ndr, int flags, const struct spoolss_DeleteForm *r)
23600 if (flags & NDR_IN) {
23601 if (r->in.handle == NULL) {
23602 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23604 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23605 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
23606 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
23607 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
23608 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.form_name, ndr_charset_length(r->in.form_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
23610 if (flags & NDR_OUT) {
23611 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23613 return NDR_ERR_SUCCESS;
23616 static enum ndr_err_code ndr_pull_spoolss_DeleteForm(struct ndr_pull *ndr, int flags, struct spoolss_DeleteForm *r)
23618 TALLOC_CTX *_mem_save_handle_0;
23619 if (flags & NDR_IN) {
23620 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23621 NDR_PULL_ALLOC(ndr, r->in.handle);
23623 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23624 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23625 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23626 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23627 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
23628 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
23629 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
23630 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.form_name), ndr_get_array_length(ndr, &r->in.form_name));
23632 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
23633 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.form_name, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t), CH_UTF16));
23635 if (flags & NDR_OUT) {
23636 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23638 return NDR_ERR_SUCCESS;
23641 _PUBLIC_ void ndr_print_spoolss_DeleteForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeleteForm *r)
23643 ndr_print_struct(ndr, name, "spoolss_DeleteForm");
23644 ndr->depth++;
23645 if (flags & NDR_SET_VALUES) {
23646 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23648 if (flags & NDR_IN) {
23649 ndr_print_struct(ndr, "in", "spoolss_DeleteForm");
23650 ndr->depth++;
23651 ndr_print_ptr(ndr, "handle", r->in.handle);
23652 ndr->depth++;
23653 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23654 ndr->depth--;
23655 ndr_print_string(ndr, "form_name", r->in.form_name);
23656 ndr->depth--;
23658 if (flags & NDR_OUT) {
23659 ndr_print_struct(ndr, "out", "spoolss_DeleteForm");
23660 ndr->depth++;
23661 ndr_print_WERROR(ndr, "result", r->out.result);
23662 ndr->depth--;
23664 ndr->depth--;
23667 static enum ndr_err_code ndr_push_spoolss_GetForm(struct ndr_push *ndr, int flags, const struct spoolss_GetForm *r)
23669 if (flags & NDR_IN) {
23670 if (r->in.handle == NULL) {
23671 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23673 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23674 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
23675 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
23676 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
23677 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.form_name, ndr_charset_length(r->in.form_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
23678 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23679 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
23680 if (r->in.buffer) {
23681 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
23683 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
23685 if (flags & NDR_OUT) {
23686 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
23687 if (r->out.info) {
23689 struct ndr_push *_ndr_info;
23690 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
23691 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
23692 NDR_CHECK(ndr_push_spoolss_FormInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
23693 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
23696 if (r->out.needed == NULL) {
23697 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23699 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
23700 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23702 return NDR_ERR_SUCCESS;
23705 static enum ndr_err_code ndr_pull_spoolss_GetForm(struct ndr_pull *ndr, int flags, struct spoolss_GetForm *r)
23707 uint32_t _ptr_buffer;
23708 uint32_t _ptr_info;
23709 TALLOC_CTX *_mem_save_handle_0;
23710 TALLOC_CTX *_mem_save_buffer_0;
23711 TALLOC_CTX *_mem_save_info_0;
23712 TALLOC_CTX *_mem_save_needed_0;
23713 if (flags & NDR_IN) {
23714 ZERO_STRUCT(r->out);
23716 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23717 NDR_PULL_ALLOC(ndr, r->in.handle);
23719 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23720 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23721 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23722 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23723 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
23724 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
23725 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
23726 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.form_name), ndr_get_array_length(ndr, &r->in.form_name));
23728 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
23729 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.form_name, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t), CH_UTF16));
23730 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23731 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
23732 if (_ptr_buffer) {
23733 NDR_PULL_ALLOC(ndr, r->in.buffer);
23734 } else {
23735 r->in.buffer = NULL;
23737 if (r->in.buffer) {
23738 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
23739 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
23740 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
23741 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
23743 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
23744 NDR_PULL_ALLOC(ndr, r->out.needed);
23745 ZERO_STRUCTP(r->out.needed);
23747 if (flags & NDR_OUT) {
23748 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
23749 if (_ptr_info) {
23750 NDR_PULL_ALLOC(ndr, r->out.info);
23751 } else {
23752 r->out.info = NULL;
23754 if (r->out.info) {
23755 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
23756 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
23758 struct ndr_pull *_ndr_info;
23759 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
23760 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
23761 NDR_CHECK(ndr_pull_spoolss_FormInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
23762 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
23764 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
23766 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23767 NDR_PULL_ALLOC(ndr, r->out.needed);
23769 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
23770 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
23771 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
23772 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
23773 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23775 return NDR_ERR_SUCCESS;
23778 _PUBLIC_ void ndr_print_spoolss_GetForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetForm *r)
23780 ndr_print_struct(ndr, name, "spoolss_GetForm");
23781 ndr->depth++;
23782 if (flags & NDR_SET_VALUES) {
23783 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23785 if (flags & NDR_IN) {
23786 ndr_print_struct(ndr, "in", "spoolss_GetForm");
23787 ndr->depth++;
23788 ndr_print_ptr(ndr, "handle", r->in.handle);
23789 ndr->depth++;
23790 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23791 ndr->depth--;
23792 ndr_print_string(ndr, "form_name", r->in.form_name);
23793 ndr_print_uint32(ndr, "level", r->in.level);
23794 ndr_print_ptr(ndr, "buffer", r->in.buffer);
23795 ndr->depth++;
23796 if (r->in.buffer) {
23797 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
23799 ndr->depth--;
23800 ndr_print_uint32(ndr, "offered", r->in.offered);
23801 ndr->depth--;
23803 if (flags & NDR_OUT) {
23804 ndr_print_struct(ndr, "out", "spoolss_GetForm");
23805 ndr->depth++;
23806 ndr_print_ptr(ndr, "info", r->out.info);
23807 ndr->depth++;
23808 if (r->out.info) {
23809 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
23810 ndr_print_spoolss_FormInfo(ndr, "info", r->out.info);
23812 ndr->depth--;
23813 ndr_print_ptr(ndr, "needed", r->out.needed);
23814 ndr->depth++;
23815 ndr_print_uint32(ndr, "needed", *r->out.needed);
23816 ndr->depth--;
23817 ndr_print_WERROR(ndr, "result", r->out.result);
23818 ndr->depth--;
23820 ndr->depth--;
23823 static enum ndr_err_code ndr_push_spoolss_SetForm(struct ndr_push *ndr, int flags, const struct spoolss_SetForm *r)
23825 if (flags & NDR_IN) {
23826 if (r->in.handle == NULL) {
23827 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23829 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23830 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
23831 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
23832 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
23833 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.form_name, ndr_charset_length(r->in.form_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
23834 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23835 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
23836 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
23838 if (flags & NDR_OUT) {
23839 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23841 return NDR_ERR_SUCCESS;
23844 static enum ndr_err_code ndr_pull_spoolss_SetForm(struct ndr_pull *ndr, int flags, struct spoolss_SetForm *r)
23846 TALLOC_CTX *_mem_save_handle_0;
23847 if (flags & NDR_IN) {
23848 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23849 NDR_PULL_ALLOC(ndr, r->in.handle);
23851 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23852 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23853 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23854 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23855 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
23856 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
23857 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
23858 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.form_name), ndr_get_array_length(ndr, &r->in.form_name));
23860 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
23861 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.form_name, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t), CH_UTF16));
23862 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23863 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
23864 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
23866 if (flags & NDR_OUT) {
23867 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23869 return NDR_ERR_SUCCESS;
23872 _PUBLIC_ void ndr_print_spoolss_SetForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetForm *r)
23874 ndr_print_struct(ndr, name, "spoolss_SetForm");
23875 ndr->depth++;
23876 if (flags & NDR_SET_VALUES) {
23877 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23879 if (flags & NDR_IN) {
23880 ndr_print_struct(ndr, "in", "spoolss_SetForm");
23881 ndr->depth++;
23882 ndr_print_ptr(ndr, "handle", r->in.handle);
23883 ndr->depth++;
23884 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23885 ndr->depth--;
23886 ndr_print_string(ndr, "form_name", r->in.form_name);
23887 ndr_print_uint32(ndr, "level", r->in.level);
23888 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
23889 ndr_print_spoolss_AddFormInfo(ndr, "info", &r->in.info);
23890 ndr->depth--;
23892 if (flags & NDR_OUT) {
23893 ndr_print_struct(ndr, "out", "spoolss_SetForm");
23894 ndr->depth++;
23895 ndr_print_WERROR(ndr, "result", r->out.result);
23896 ndr->depth--;
23898 ndr->depth--;
23901 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumForms(struct ndr_push *ndr, int flags, const struct _spoolss_EnumForms *r)
23903 if (flags & NDR_IN) {
23904 if (r->in.handle == NULL) {
23905 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23907 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23908 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23909 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
23910 if (r->in.buffer) {
23911 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
23913 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
23915 if (flags & NDR_OUT) {
23916 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
23917 if (r->out.info) {
23918 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
23920 if (r->out.needed == NULL) {
23921 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23923 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
23924 if (r->out.count == NULL) {
23925 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23927 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
23928 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23930 return NDR_ERR_SUCCESS;
23933 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumForms(struct ndr_pull *ndr, int flags, struct _spoolss_EnumForms *r)
23935 uint32_t _ptr_buffer;
23936 uint32_t _ptr_info;
23937 TALLOC_CTX *_mem_save_handle_0;
23938 TALLOC_CTX *_mem_save_buffer_0;
23939 TALLOC_CTX *_mem_save_info_0;
23940 TALLOC_CTX *_mem_save_needed_0;
23941 TALLOC_CTX *_mem_save_count_0;
23942 if (flags & NDR_IN) {
23943 ZERO_STRUCT(r->out);
23945 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23946 NDR_PULL_ALLOC(ndr, r->in.handle);
23948 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23949 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23950 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23951 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23952 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23953 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
23954 if (_ptr_buffer) {
23955 NDR_PULL_ALLOC(ndr, r->in.buffer);
23956 } else {
23957 r->in.buffer = NULL;
23959 if (r->in.buffer) {
23960 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
23961 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
23962 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
23963 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
23965 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
23966 NDR_PULL_ALLOC(ndr, r->out.needed);
23967 ZERO_STRUCTP(r->out.needed);
23968 NDR_PULL_ALLOC(ndr, r->out.count);
23969 ZERO_STRUCTP(r->out.count);
23971 if (flags & NDR_OUT) {
23972 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
23973 if (_ptr_info) {
23974 NDR_PULL_ALLOC(ndr, r->out.info);
23975 } else {
23976 r->out.info = NULL;
23978 if (r->out.info) {
23979 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
23980 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
23981 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
23982 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
23984 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23985 NDR_PULL_ALLOC(ndr, r->out.needed);
23987 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
23988 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
23989 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
23990 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
23991 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23992 NDR_PULL_ALLOC(ndr, r->out.count);
23994 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
23995 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
23996 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
23997 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
23998 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24000 return NDR_ERR_SUCCESS;
24003 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumForms(struct ndr_push *ndr, int flags, const struct __spoolss_EnumForms *r)
24005 uint32_t cntr_info_0;
24006 if (flags & NDR_IN) {
24007 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24008 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
24010 if (flags & NDR_OUT) {
24011 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24012 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
24013 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
24015 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24016 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
24019 return NDR_ERR_SUCCESS;
24022 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumForms(struct ndr_pull *ndr, int flags, struct __spoolss_EnumForms *r)
24024 uint32_t cntr_info_0;
24025 TALLOC_CTX *_mem_save_info_0;
24026 if (flags & NDR_IN) {
24027 ZERO_STRUCT(r->out);
24029 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24030 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
24032 if (flags & NDR_OUT) {
24033 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
24034 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24035 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24036 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24037 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
24038 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
24040 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24041 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
24043 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24045 return NDR_ERR_SUCCESS;
24048 _PUBLIC_ void ndr_print_spoolss_EnumForms(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumForms *r)
24050 uint32_t cntr_info_2;
24051 ndr_print_struct(ndr, name, "spoolss_EnumForms");
24052 ndr->depth++;
24053 if (flags & NDR_SET_VALUES) {
24054 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24056 if (flags & NDR_IN) {
24057 ndr_print_struct(ndr, "in", "spoolss_EnumForms");
24058 ndr->depth++;
24059 ndr_print_ptr(ndr, "handle", r->in.handle);
24060 ndr->depth++;
24061 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24062 ndr->depth--;
24063 ndr_print_uint32(ndr, "level", r->in.level);
24064 ndr_print_ptr(ndr, "buffer", r->in.buffer);
24065 ndr->depth++;
24066 if (r->in.buffer) {
24067 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
24069 ndr->depth--;
24070 ndr_print_uint32(ndr, "offered", r->in.offered);
24071 ndr->depth--;
24073 if (flags & NDR_OUT) {
24074 ndr_print_struct(ndr, "out", "spoolss_EnumForms");
24075 ndr->depth++;
24076 ndr_print_ptr(ndr, "count", r->out.count);
24077 ndr->depth++;
24078 ndr_print_uint32(ndr, "count", *r->out.count);
24079 ndr->depth--;
24080 ndr_print_ptr(ndr, "info", r->out.info);
24081 ndr->depth++;
24082 ndr_print_ptr(ndr, "info", *r->out.info);
24083 ndr->depth++;
24084 if (*r->out.info) {
24085 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
24086 ndr->depth++;
24087 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
24088 char *idx_2=NULL;
24089 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
24090 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
24091 ndr_print_spoolss_FormInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
24092 free(idx_2);
24095 ndr->depth--;
24097 ndr->depth--;
24098 ndr->depth--;
24099 ndr_print_ptr(ndr, "needed", r->out.needed);
24100 ndr->depth++;
24101 ndr_print_uint32(ndr, "needed", *r->out.needed);
24102 ndr->depth--;
24103 ndr_print_WERROR(ndr, "result", r->out.result);
24104 ndr->depth--;
24106 ndr->depth--;
24109 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPorts(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPorts *r)
24111 if (flags & NDR_IN) {
24112 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
24113 if (r->in.servername) {
24114 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
24115 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24116 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
24117 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
24119 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24120 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
24121 if (r->in.buffer) {
24122 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
24124 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
24126 if (flags & NDR_OUT) {
24127 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
24128 if (r->out.info) {
24129 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
24131 if (r->out.needed == NULL) {
24132 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24134 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
24135 if (r->out.count == NULL) {
24136 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24138 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
24139 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24141 return NDR_ERR_SUCCESS;
24144 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPorts(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPorts *r)
24146 uint32_t _ptr_servername;
24147 uint32_t _ptr_buffer;
24148 uint32_t _ptr_info;
24149 TALLOC_CTX *_mem_save_servername_0;
24150 TALLOC_CTX *_mem_save_buffer_0;
24151 TALLOC_CTX *_mem_save_info_0;
24152 TALLOC_CTX *_mem_save_needed_0;
24153 TALLOC_CTX *_mem_save_count_0;
24154 if (flags & NDR_IN) {
24155 ZERO_STRUCT(r->out);
24157 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
24158 if (_ptr_servername) {
24159 NDR_PULL_ALLOC(ndr, r->in.servername);
24160 } else {
24161 r->in.servername = NULL;
24163 if (r->in.servername) {
24164 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
24165 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
24166 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
24167 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
24168 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
24169 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.servername), ndr_get_array_length(ndr, &r->in.servername));
24171 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
24172 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
24173 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
24175 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24176 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
24177 if (_ptr_buffer) {
24178 NDR_PULL_ALLOC(ndr, r->in.buffer);
24179 } else {
24180 r->in.buffer = NULL;
24182 if (r->in.buffer) {
24183 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
24184 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
24185 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
24186 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
24188 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
24189 NDR_PULL_ALLOC(ndr, r->out.needed);
24190 ZERO_STRUCTP(r->out.needed);
24191 NDR_PULL_ALLOC(ndr, r->out.count);
24192 ZERO_STRUCTP(r->out.count);
24194 if (flags & NDR_OUT) {
24195 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
24196 if (_ptr_info) {
24197 NDR_PULL_ALLOC(ndr, r->out.info);
24198 } else {
24199 r->out.info = NULL;
24201 if (r->out.info) {
24202 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24203 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24204 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
24205 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24207 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24208 NDR_PULL_ALLOC(ndr, r->out.needed);
24210 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
24211 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
24212 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
24213 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
24214 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24215 NDR_PULL_ALLOC(ndr, r->out.count);
24217 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
24218 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
24219 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
24220 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
24221 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24223 return NDR_ERR_SUCCESS;
24226 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPorts(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPorts *r)
24228 uint32_t cntr_info_0;
24229 if (flags & NDR_IN) {
24230 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24231 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
24233 if (flags & NDR_OUT) {
24234 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24235 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
24236 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
24238 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24239 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
24242 return NDR_ERR_SUCCESS;
24245 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPorts(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPorts *r)
24247 uint32_t cntr_info_0;
24248 TALLOC_CTX *_mem_save_info_0;
24249 if (flags & NDR_IN) {
24250 ZERO_STRUCT(r->out);
24252 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24253 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
24255 if (flags & NDR_OUT) {
24256 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
24257 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24258 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24259 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24260 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
24261 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
24263 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24264 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
24266 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24268 return NDR_ERR_SUCCESS;
24271 _PUBLIC_ void ndr_print_spoolss_EnumPorts(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPorts *r)
24273 uint32_t cntr_info_2;
24274 ndr_print_struct(ndr, name, "spoolss_EnumPorts");
24275 ndr->depth++;
24276 if (flags & NDR_SET_VALUES) {
24277 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24279 if (flags & NDR_IN) {
24280 ndr_print_struct(ndr, "in", "spoolss_EnumPorts");
24281 ndr->depth++;
24282 ndr_print_ptr(ndr, "servername", r->in.servername);
24283 ndr->depth++;
24284 if (r->in.servername) {
24285 ndr_print_string(ndr, "servername", r->in.servername);
24287 ndr->depth--;
24288 ndr_print_uint32(ndr, "level", r->in.level);
24289 ndr_print_ptr(ndr, "buffer", r->in.buffer);
24290 ndr->depth++;
24291 if (r->in.buffer) {
24292 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
24294 ndr->depth--;
24295 ndr_print_uint32(ndr, "offered", r->in.offered);
24296 ndr->depth--;
24298 if (flags & NDR_OUT) {
24299 ndr_print_struct(ndr, "out", "spoolss_EnumPorts");
24300 ndr->depth++;
24301 ndr_print_ptr(ndr, "count", r->out.count);
24302 ndr->depth++;
24303 ndr_print_uint32(ndr, "count", *r->out.count);
24304 ndr->depth--;
24305 ndr_print_ptr(ndr, "info", r->out.info);
24306 ndr->depth++;
24307 ndr_print_ptr(ndr, "info", *r->out.info);
24308 ndr->depth++;
24309 if (*r->out.info) {
24310 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
24311 ndr->depth++;
24312 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
24313 char *idx_2=NULL;
24314 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
24315 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
24316 ndr_print_spoolss_PortInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
24317 free(idx_2);
24320 ndr->depth--;
24322 ndr->depth--;
24323 ndr->depth--;
24324 ndr_print_ptr(ndr, "needed", r->out.needed);
24325 ndr->depth++;
24326 ndr_print_uint32(ndr, "needed", *r->out.needed);
24327 ndr->depth--;
24328 ndr_print_WERROR(ndr, "result", r->out.result);
24329 ndr->depth--;
24331 ndr->depth--;
24334 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumMonitors(struct ndr_push *ndr, int flags, const struct _spoolss_EnumMonitors *r)
24336 if (flags & NDR_IN) {
24337 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
24338 if (r->in.servername) {
24339 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
24340 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24341 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
24342 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
24344 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24345 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
24346 if (r->in.buffer) {
24347 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
24349 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
24351 if (flags & NDR_OUT) {
24352 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
24353 if (r->out.info) {
24354 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
24356 if (r->out.needed == NULL) {
24357 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24359 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
24360 if (r->out.count == NULL) {
24361 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24363 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
24364 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24366 return NDR_ERR_SUCCESS;
24369 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumMonitors(struct ndr_pull *ndr, int flags, struct _spoolss_EnumMonitors *r)
24371 uint32_t _ptr_servername;
24372 uint32_t _ptr_buffer;
24373 uint32_t _ptr_info;
24374 TALLOC_CTX *_mem_save_servername_0;
24375 TALLOC_CTX *_mem_save_buffer_0;
24376 TALLOC_CTX *_mem_save_info_0;
24377 TALLOC_CTX *_mem_save_needed_0;
24378 TALLOC_CTX *_mem_save_count_0;
24379 if (flags & NDR_IN) {
24380 ZERO_STRUCT(r->out);
24382 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
24383 if (_ptr_servername) {
24384 NDR_PULL_ALLOC(ndr, r->in.servername);
24385 } else {
24386 r->in.servername = NULL;
24388 if (r->in.servername) {
24389 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
24390 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
24391 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
24392 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
24393 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
24394 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.servername), ndr_get_array_length(ndr, &r->in.servername));
24396 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
24397 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
24398 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
24400 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24401 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
24402 if (_ptr_buffer) {
24403 NDR_PULL_ALLOC(ndr, r->in.buffer);
24404 } else {
24405 r->in.buffer = NULL;
24407 if (r->in.buffer) {
24408 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
24409 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
24410 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
24411 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
24413 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
24414 NDR_PULL_ALLOC(ndr, r->out.needed);
24415 ZERO_STRUCTP(r->out.needed);
24416 NDR_PULL_ALLOC(ndr, r->out.count);
24417 ZERO_STRUCTP(r->out.count);
24419 if (flags & NDR_OUT) {
24420 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
24421 if (_ptr_info) {
24422 NDR_PULL_ALLOC(ndr, r->out.info);
24423 } else {
24424 r->out.info = NULL;
24426 if (r->out.info) {
24427 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24428 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24429 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
24430 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24432 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24433 NDR_PULL_ALLOC(ndr, r->out.needed);
24435 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
24436 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
24437 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
24438 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
24439 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24440 NDR_PULL_ALLOC(ndr, r->out.count);
24442 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
24443 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
24444 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
24445 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
24446 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24448 return NDR_ERR_SUCCESS;
24451 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumMonitors(struct ndr_push *ndr, int flags, const struct __spoolss_EnumMonitors *r)
24453 uint32_t cntr_info_0;
24454 if (flags & NDR_IN) {
24455 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24456 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
24458 if (flags & NDR_OUT) {
24459 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24460 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
24461 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
24463 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24464 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
24467 return NDR_ERR_SUCCESS;
24470 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumMonitors(struct ndr_pull *ndr, int flags, struct __spoolss_EnumMonitors *r)
24472 uint32_t cntr_info_0;
24473 TALLOC_CTX *_mem_save_info_0;
24474 if (flags & NDR_IN) {
24475 ZERO_STRUCT(r->out);
24477 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24478 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
24480 if (flags & NDR_OUT) {
24481 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
24482 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24483 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24484 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24485 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
24486 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
24488 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24489 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
24491 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24493 return NDR_ERR_SUCCESS;
24496 _PUBLIC_ void ndr_print_spoolss_EnumMonitors(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumMonitors *r)
24498 uint32_t cntr_info_2;
24499 ndr_print_struct(ndr, name, "spoolss_EnumMonitors");
24500 ndr->depth++;
24501 if (flags & NDR_SET_VALUES) {
24502 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24504 if (flags & NDR_IN) {
24505 ndr_print_struct(ndr, "in", "spoolss_EnumMonitors");
24506 ndr->depth++;
24507 ndr_print_ptr(ndr, "servername", r->in.servername);
24508 ndr->depth++;
24509 if (r->in.servername) {
24510 ndr_print_string(ndr, "servername", r->in.servername);
24512 ndr->depth--;
24513 ndr_print_uint32(ndr, "level", r->in.level);
24514 ndr_print_ptr(ndr, "buffer", r->in.buffer);
24515 ndr->depth++;
24516 if (r->in.buffer) {
24517 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
24519 ndr->depth--;
24520 ndr_print_uint32(ndr, "offered", r->in.offered);
24521 ndr->depth--;
24523 if (flags & NDR_OUT) {
24524 ndr_print_struct(ndr, "out", "spoolss_EnumMonitors");
24525 ndr->depth++;
24526 ndr_print_ptr(ndr, "count", r->out.count);
24527 ndr->depth++;
24528 ndr_print_uint32(ndr, "count", *r->out.count);
24529 ndr->depth--;
24530 ndr_print_ptr(ndr, "info", r->out.info);
24531 ndr->depth++;
24532 ndr_print_ptr(ndr, "info", *r->out.info);
24533 ndr->depth++;
24534 if (*r->out.info) {
24535 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
24536 ndr->depth++;
24537 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
24538 char *idx_2=NULL;
24539 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
24540 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
24541 ndr_print_spoolss_MonitorInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
24542 free(idx_2);
24545 ndr->depth--;
24547 ndr->depth--;
24548 ndr->depth--;
24549 ndr_print_ptr(ndr, "needed", r->out.needed);
24550 ndr->depth++;
24551 ndr_print_uint32(ndr, "needed", *r->out.needed);
24552 ndr->depth--;
24553 ndr_print_WERROR(ndr, "result", r->out.result);
24554 ndr->depth--;
24556 ndr->depth--;
24559 static enum ndr_err_code ndr_push_spoolss_AddPort(struct ndr_push *ndr, int flags, const struct spoolss_AddPort *r)
24561 if (flags & NDR_IN) {
24562 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
24563 if (r->in.server_name) {
24564 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
24565 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24566 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
24567 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
24569 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown));
24570 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
24571 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24572 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
24573 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.monitor_name, ndr_charset_length(r->in.monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
24575 if (flags & NDR_OUT) {
24576 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24578 return NDR_ERR_SUCCESS;
24581 static enum ndr_err_code ndr_pull_spoolss_AddPort(struct ndr_pull *ndr, int flags, struct spoolss_AddPort *r)
24583 uint32_t _ptr_server_name;
24584 TALLOC_CTX *_mem_save_server_name_0;
24585 if (flags & NDR_IN) {
24586 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
24587 if (_ptr_server_name) {
24588 NDR_PULL_ALLOC(ndr, r->in.server_name);
24589 } else {
24590 r->in.server_name = NULL;
24592 if (r->in.server_name) {
24593 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
24594 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
24595 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
24596 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
24597 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
24598 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.server_name), ndr_get_array_length(ndr, &r->in.server_name));
24600 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
24601 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
24602 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
24604 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown));
24605 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.monitor_name));
24606 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.monitor_name));
24607 if (ndr_get_array_length(ndr, &r->in.monitor_name) > ndr_get_array_size(ndr, &r->in.monitor_name)) {
24608 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.monitor_name), ndr_get_array_length(ndr, &r->in.monitor_name));
24610 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.monitor_name), sizeof(uint16_t)));
24611 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.monitor_name, ndr_get_array_length(ndr, &r->in.monitor_name), sizeof(uint16_t), CH_UTF16));
24613 if (flags & NDR_OUT) {
24614 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24616 return NDR_ERR_SUCCESS;
24619 _PUBLIC_ void ndr_print_spoolss_AddPort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPort *r)
24621 ndr_print_struct(ndr, name, "spoolss_AddPort");
24622 ndr->depth++;
24623 if (flags & NDR_SET_VALUES) {
24624 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24626 if (flags & NDR_IN) {
24627 ndr_print_struct(ndr, "in", "spoolss_AddPort");
24628 ndr->depth++;
24629 ndr_print_ptr(ndr, "server_name", r->in.server_name);
24630 ndr->depth++;
24631 if (r->in.server_name) {
24632 ndr_print_string(ndr, "server_name", r->in.server_name);
24634 ndr->depth--;
24635 ndr_print_uint32(ndr, "unknown", r->in.unknown);
24636 ndr_print_string(ndr, "monitor_name", r->in.monitor_name);
24637 ndr->depth--;
24639 if (flags & NDR_OUT) {
24640 ndr_print_struct(ndr, "out", "spoolss_AddPort");
24641 ndr->depth++;
24642 ndr_print_WERROR(ndr, "result", r->out.result);
24643 ndr->depth--;
24645 ndr->depth--;
24648 static enum ndr_err_code ndr_push_spoolss_ConfigurePort(struct ndr_push *ndr, int flags, const struct spoolss_ConfigurePort *r)
24650 if (flags & NDR_IN) {
24652 if (flags & NDR_OUT) {
24653 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24655 return NDR_ERR_SUCCESS;
24658 static enum ndr_err_code ndr_pull_spoolss_ConfigurePort(struct ndr_pull *ndr, int flags, struct spoolss_ConfigurePort *r)
24660 if (flags & NDR_IN) {
24662 if (flags & NDR_OUT) {
24663 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24665 return NDR_ERR_SUCCESS;
24668 _PUBLIC_ void ndr_print_spoolss_ConfigurePort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ConfigurePort *r)
24670 ndr_print_struct(ndr, name, "spoolss_ConfigurePort");
24671 ndr->depth++;
24672 if (flags & NDR_SET_VALUES) {
24673 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24675 if (flags & NDR_IN) {
24676 ndr_print_struct(ndr, "in", "spoolss_ConfigurePort");
24677 ndr->depth++;
24678 ndr->depth--;
24680 if (flags & NDR_OUT) {
24681 ndr_print_struct(ndr, "out", "spoolss_ConfigurePort");
24682 ndr->depth++;
24683 ndr_print_WERROR(ndr, "result", r->out.result);
24684 ndr->depth--;
24686 ndr->depth--;
24689 static enum ndr_err_code ndr_push_spoolss_DeletePort(struct ndr_push *ndr, int flags, const struct spoolss_DeletePort *r)
24691 if (flags & NDR_IN) {
24693 if (flags & NDR_OUT) {
24694 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24696 return NDR_ERR_SUCCESS;
24699 static enum ndr_err_code ndr_pull_spoolss_DeletePort(struct ndr_pull *ndr, int flags, struct spoolss_DeletePort *r)
24701 if (flags & NDR_IN) {
24703 if (flags & NDR_OUT) {
24704 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24706 return NDR_ERR_SUCCESS;
24709 _PUBLIC_ void ndr_print_spoolss_DeletePort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePort *r)
24711 ndr_print_struct(ndr, name, "spoolss_DeletePort");
24712 ndr->depth++;
24713 if (flags & NDR_SET_VALUES) {
24714 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24716 if (flags & NDR_IN) {
24717 ndr_print_struct(ndr, "in", "spoolss_DeletePort");
24718 ndr->depth++;
24719 ndr->depth--;
24721 if (flags & NDR_OUT) {
24722 ndr_print_struct(ndr, "out", "spoolss_DeletePort");
24723 ndr->depth++;
24724 ndr_print_WERROR(ndr, "result", r->out.result);
24725 ndr->depth--;
24727 ndr->depth--;
24730 static enum ndr_err_code ndr_push_spoolss_CreatePrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_CreatePrinterIC *r)
24732 if (flags & NDR_IN) {
24733 if (r->in.handle == NULL) {
24734 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24736 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24737 if (r->in.devmode_ctr == NULL) {
24738 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24740 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
24742 if (flags & NDR_OUT) {
24743 if (r->out.gdi_handle == NULL) {
24744 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24746 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.gdi_handle));
24747 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24749 return NDR_ERR_SUCCESS;
24752 static enum ndr_err_code ndr_pull_spoolss_CreatePrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_CreatePrinterIC *r)
24754 TALLOC_CTX *_mem_save_handle_0;
24755 TALLOC_CTX *_mem_save_gdi_handle_0;
24756 TALLOC_CTX *_mem_save_devmode_ctr_0;
24757 if (flags & NDR_IN) {
24758 ZERO_STRUCT(r->out);
24760 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24761 NDR_PULL_ALLOC(ndr, r->in.handle);
24763 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24764 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24765 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24766 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24767 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24768 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
24770 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
24771 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
24772 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
24773 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
24774 NDR_PULL_ALLOC(ndr, r->out.gdi_handle);
24775 ZERO_STRUCTP(r->out.gdi_handle);
24777 if (flags & NDR_OUT) {
24778 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24779 NDR_PULL_ALLOC(ndr, r->out.gdi_handle);
24781 _mem_save_gdi_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24782 NDR_PULL_SET_MEM_CTX(ndr, r->out.gdi_handle, LIBNDR_FLAG_REF_ALLOC);
24783 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.gdi_handle));
24784 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_gdi_handle_0, LIBNDR_FLAG_REF_ALLOC);
24785 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24787 return NDR_ERR_SUCCESS;
24790 _PUBLIC_ void ndr_print_spoolss_CreatePrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_CreatePrinterIC *r)
24792 ndr_print_struct(ndr, name, "spoolss_CreatePrinterIC");
24793 ndr->depth++;
24794 if (flags & NDR_SET_VALUES) {
24795 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24797 if (flags & NDR_IN) {
24798 ndr_print_struct(ndr, "in", "spoolss_CreatePrinterIC");
24799 ndr->depth++;
24800 ndr_print_ptr(ndr, "handle", r->in.handle);
24801 ndr->depth++;
24802 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24803 ndr->depth--;
24804 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
24805 ndr->depth++;
24806 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
24807 ndr->depth--;
24808 ndr->depth--;
24810 if (flags & NDR_OUT) {
24811 ndr_print_struct(ndr, "out", "spoolss_CreatePrinterIC");
24812 ndr->depth++;
24813 ndr_print_ptr(ndr, "gdi_handle", r->out.gdi_handle);
24814 ndr->depth++;
24815 ndr_print_policy_handle(ndr, "gdi_handle", r->out.gdi_handle);
24816 ndr->depth--;
24817 ndr_print_WERROR(ndr, "result", r->out.result);
24818 ndr->depth--;
24820 ndr->depth--;
24823 static enum ndr_err_code ndr_push_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_PlayGDIScriptOnPrinterIC *r)
24825 if (flags & NDR_IN) {
24827 if (flags & NDR_OUT) {
24828 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24830 return NDR_ERR_SUCCESS;
24833 static enum ndr_err_code ndr_pull_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_PlayGDIScriptOnPrinterIC *r)
24835 if (flags & NDR_IN) {
24837 if (flags & NDR_OUT) {
24838 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24840 return NDR_ERR_SUCCESS;
24843 _PUBLIC_ void ndr_print_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_PlayGDIScriptOnPrinterIC *r)
24845 ndr_print_struct(ndr, name, "spoolss_PlayGDIScriptOnPrinterIC");
24846 ndr->depth++;
24847 if (flags & NDR_SET_VALUES) {
24848 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24850 if (flags & NDR_IN) {
24851 ndr_print_struct(ndr, "in", "spoolss_PlayGDIScriptOnPrinterIC");
24852 ndr->depth++;
24853 ndr->depth--;
24855 if (flags & NDR_OUT) {
24856 ndr_print_struct(ndr, "out", "spoolss_PlayGDIScriptOnPrinterIC");
24857 ndr->depth++;
24858 ndr_print_WERROR(ndr, "result", r->out.result);
24859 ndr->depth--;
24861 ndr->depth--;
24864 static enum ndr_err_code ndr_push_spoolss_DeletePrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterIC *r)
24866 if (flags & NDR_IN) {
24867 if (r->in.gdi_handle == NULL) {
24868 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24870 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.gdi_handle));
24872 if (flags & NDR_OUT) {
24873 if (r->out.gdi_handle == NULL) {
24874 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24876 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.gdi_handle));
24877 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24879 return NDR_ERR_SUCCESS;
24882 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterIC *r)
24884 TALLOC_CTX *_mem_save_gdi_handle_0;
24885 if (flags & NDR_IN) {
24886 ZERO_STRUCT(r->out);
24888 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24889 NDR_PULL_ALLOC(ndr, r->in.gdi_handle);
24891 _mem_save_gdi_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24892 NDR_PULL_SET_MEM_CTX(ndr, r->in.gdi_handle, LIBNDR_FLAG_REF_ALLOC);
24893 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.gdi_handle));
24894 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_gdi_handle_0, LIBNDR_FLAG_REF_ALLOC);
24895 NDR_PULL_ALLOC(ndr, r->out.gdi_handle);
24896 *r->out.gdi_handle = *r->in.gdi_handle;
24898 if (flags & NDR_OUT) {
24899 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24900 NDR_PULL_ALLOC(ndr, r->out.gdi_handle);
24902 _mem_save_gdi_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24903 NDR_PULL_SET_MEM_CTX(ndr, r->out.gdi_handle, LIBNDR_FLAG_REF_ALLOC);
24904 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.gdi_handle));
24905 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_gdi_handle_0, LIBNDR_FLAG_REF_ALLOC);
24906 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24908 return NDR_ERR_SUCCESS;
24911 _PUBLIC_ void ndr_print_spoolss_DeletePrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterIC *r)
24913 ndr_print_struct(ndr, name, "spoolss_DeletePrinterIC");
24914 ndr->depth++;
24915 if (flags & NDR_SET_VALUES) {
24916 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24918 if (flags & NDR_IN) {
24919 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterIC");
24920 ndr->depth++;
24921 ndr_print_ptr(ndr, "gdi_handle", r->in.gdi_handle);
24922 ndr->depth++;
24923 ndr_print_policy_handle(ndr, "gdi_handle", r->in.gdi_handle);
24924 ndr->depth--;
24925 ndr->depth--;
24927 if (flags & NDR_OUT) {
24928 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterIC");
24929 ndr->depth++;
24930 ndr_print_ptr(ndr, "gdi_handle", r->out.gdi_handle);
24931 ndr->depth++;
24932 ndr_print_policy_handle(ndr, "gdi_handle", r->out.gdi_handle);
24933 ndr->depth--;
24934 ndr_print_WERROR(ndr, "result", r->out.result);
24935 ndr->depth--;
24937 ndr->depth--;
24940 static enum ndr_err_code ndr_push_spoolss_AddPrinterConnection(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterConnection *r)
24942 if (flags & NDR_IN) {
24944 if (flags & NDR_OUT) {
24945 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24947 return NDR_ERR_SUCCESS;
24950 static enum ndr_err_code ndr_pull_spoolss_AddPrinterConnection(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterConnection *r)
24952 if (flags & NDR_IN) {
24954 if (flags & NDR_OUT) {
24955 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24957 return NDR_ERR_SUCCESS;
24960 _PUBLIC_ void ndr_print_spoolss_AddPrinterConnection(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterConnection *r)
24962 ndr_print_struct(ndr, name, "spoolss_AddPrinterConnection");
24963 ndr->depth++;
24964 if (flags & NDR_SET_VALUES) {
24965 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24967 if (flags & NDR_IN) {
24968 ndr_print_struct(ndr, "in", "spoolss_AddPrinterConnection");
24969 ndr->depth++;
24970 ndr->depth--;
24972 if (flags & NDR_OUT) {
24973 ndr_print_struct(ndr, "out", "spoolss_AddPrinterConnection");
24974 ndr->depth++;
24975 ndr_print_WERROR(ndr, "result", r->out.result);
24976 ndr->depth--;
24978 ndr->depth--;
24981 static enum ndr_err_code ndr_push_spoolss_DeletePrinterConnection(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterConnection *r)
24983 if (flags & NDR_IN) {
24985 if (flags & NDR_OUT) {
24986 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24988 return NDR_ERR_SUCCESS;
24991 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterConnection(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterConnection *r)
24993 if (flags & NDR_IN) {
24995 if (flags & NDR_OUT) {
24996 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24998 return NDR_ERR_SUCCESS;
25001 _PUBLIC_ void ndr_print_spoolss_DeletePrinterConnection(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterConnection *r)
25003 ndr_print_struct(ndr, name, "spoolss_DeletePrinterConnection");
25004 ndr->depth++;
25005 if (flags & NDR_SET_VALUES) {
25006 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25008 if (flags & NDR_IN) {
25009 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterConnection");
25010 ndr->depth++;
25011 ndr->depth--;
25013 if (flags & NDR_OUT) {
25014 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterConnection");
25015 ndr->depth++;
25016 ndr_print_WERROR(ndr, "result", r->out.result);
25017 ndr->depth--;
25019 ndr->depth--;
25022 static enum ndr_err_code ndr_push_spoolss_PrinterMessageBox(struct ndr_push *ndr, int flags, const struct spoolss_PrinterMessageBox *r)
25024 if (flags & NDR_IN) {
25026 if (flags & NDR_OUT) {
25027 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25029 return NDR_ERR_SUCCESS;
25032 static enum ndr_err_code ndr_pull_spoolss_PrinterMessageBox(struct ndr_pull *ndr, int flags, struct spoolss_PrinterMessageBox *r)
25034 if (flags & NDR_IN) {
25036 if (flags & NDR_OUT) {
25037 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25039 return NDR_ERR_SUCCESS;
25042 _PUBLIC_ void ndr_print_spoolss_PrinterMessageBox(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_PrinterMessageBox *r)
25044 ndr_print_struct(ndr, name, "spoolss_PrinterMessageBox");
25045 ndr->depth++;
25046 if (flags & NDR_SET_VALUES) {
25047 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25049 if (flags & NDR_IN) {
25050 ndr_print_struct(ndr, "in", "spoolss_PrinterMessageBox");
25051 ndr->depth++;
25052 ndr->depth--;
25054 if (flags & NDR_OUT) {
25055 ndr_print_struct(ndr, "out", "spoolss_PrinterMessageBox");
25056 ndr->depth++;
25057 ndr_print_WERROR(ndr, "result", r->out.result);
25058 ndr->depth--;
25060 ndr->depth--;
25063 static enum ndr_err_code ndr_push_spoolss_AddMonitor(struct ndr_push *ndr, int flags, const struct spoolss_AddMonitor *r)
25065 if (flags & NDR_IN) {
25067 if (flags & NDR_OUT) {
25068 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25070 return NDR_ERR_SUCCESS;
25073 static enum ndr_err_code ndr_pull_spoolss_AddMonitor(struct ndr_pull *ndr, int flags, struct spoolss_AddMonitor *r)
25075 if (flags & NDR_IN) {
25077 if (flags & NDR_OUT) {
25078 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25080 return NDR_ERR_SUCCESS;
25083 _PUBLIC_ void ndr_print_spoolss_AddMonitor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddMonitor *r)
25085 ndr_print_struct(ndr, name, "spoolss_AddMonitor");
25086 ndr->depth++;
25087 if (flags & NDR_SET_VALUES) {
25088 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25090 if (flags & NDR_IN) {
25091 ndr_print_struct(ndr, "in", "spoolss_AddMonitor");
25092 ndr->depth++;
25093 ndr->depth--;
25095 if (flags & NDR_OUT) {
25096 ndr_print_struct(ndr, "out", "spoolss_AddMonitor");
25097 ndr->depth++;
25098 ndr_print_WERROR(ndr, "result", r->out.result);
25099 ndr->depth--;
25101 ndr->depth--;
25104 static enum ndr_err_code ndr_push_spoolss_DeleteMonitor(struct ndr_push *ndr, int flags, const struct spoolss_DeleteMonitor *r)
25106 if (flags & NDR_IN) {
25108 if (flags & NDR_OUT) {
25109 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25111 return NDR_ERR_SUCCESS;
25114 static enum ndr_err_code ndr_pull_spoolss_DeleteMonitor(struct ndr_pull *ndr, int flags, struct spoolss_DeleteMonitor *r)
25116 if (flags & NDR_IN) {
25118 if (flags & NDR_OUT) {
25119 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25121 return NDR_ERR_SUCCESS;
25124 _PUBLIC_ void ndr_print_spoolss_DeleteMonitor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeleteMonitor *r)
25126 ndr_print_struct(ndr, name, "spoolss_DeleteMonitor");
25127 ndr->depth++;
25128 if (flags & NDR_SET_VALUES) {
25129 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25131 if (flags & NDR_IN) {
25132 ndr_print_struct(ndr, "in", "spoolss_DeleteMonitor");
25133 ndr->depth++;
25134 ndr->depth--;
25136 if (flags & NDR_OUT) {
25137 ndr_print_struct(ndr, "out", "spoolss_DeleteMonitor");
25138 ndr->depth++;
25139 ndr_print_WERROR(ndr, "result", r->out.result);
25140 ndr->depth--;
25142 ndr->depth--;
25145 static enum ndr_err_code ndr_push_spoolss_DeletePrintProcessor(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrintProcessor *r)
25147 if (flags & NDR_IN) {
25149 if (flags & NDR_OUT) {
25150 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25152 return NDR_ERR_SUCCESS;
25155 static enum ndr_err_code ndr_pull_spoolss_DeletePrintProcessor(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrintProcessor *r)
25157 if (flags & NDR_IN) {
25159 if (flags & NDR_OUT) {
25160 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25162 return NDR_ERR_SUCCESS;
25165 _PUBLIC_ void ndr_print_spoolss_DeletePrintProcessor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrintProcessor *r)
25167 ndr_print_struct(ndr, name, "spoolss_DeletePrintProcessor");
25168 ndr->depth++;
25169 if (flags & NDR_SET_VALUES) {
25170 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25172 if (flags & NDR_IN) {
25173 ndr_print_struct(ndr, "in", "spoolss_DeletePrintProcessor");
25174 ndr->depth++;
25175 ndr->depth--;
25177 if (flags & NDR_OUT) {
25178 ndr_print_struct(ndr, "out", "spoolss_DeletePrintProcessor");
25179 ndr->depth++;
25180 ndr_print_WERROR(ndr, "result", r->out.result);
25181 ndr->depth--;
25183 ndr->depth--;
25186 static enum ndr_err_code ndr_push_spoolss_AddPrintProvidor(struct ndr_push *ndr, int flags, const struct spoolss_AddPrintProvidor *r)
25188 if (flags & NDR_IN) {
25190 if (flags & NDR_OUT) {
25191 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25193 return NDR_ERR_SUCCESS;
25196 static enum ndr_err_code ndr_pull_spoolss_AddPrintProvidor(struct ndr_pull *ndr, int flags, struct spoolss_AddPrintProvidor *r)
25198 if (flags & NDR_IN) {
25200 if (flags & NDR_OUT) {
25201 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25203 return NDR_ERR_SUCCESS;
25206 _PUBLIC_ void ndr_print_spoolss_AddPrintProvidor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrintProvidor *r)
25208 ndr_print_struct(ndr, name, "spoolss_AddPrintProvidor");
25209 ndr->depth++;
25210 if (flags & NDR_SET_VALUES) {
25211 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25213 if (flags & NDR_IN) {
25214 ndr_print_struct(ndr, "in", "spoolss_AddPrintProvidor");
25215 ndr->depth++;
25216 ndr->depth--;
25218 if (flags & NDR_OUT) {
25219 ndr_print_struct(ndr, "out", "spoolss_AddPrintProvidor");
25220 ndr->depth++;
25221 ndr_print_WERROR(ndr, "result", r->out.result);
25222 ndr->depth--;
25224 ndr->depth--;
25227 static enum ndr_err_code ndr_push_spoolss_DeletePrintProvidor(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrintProvidor *r)
25229 if (flags & NDR_IN) {
25231 if (flags & NDR_OUT) {
25232 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25234 return NDR_ERR_SUCCESS;
25237 static enum ndr_err_code ndr_pull_spoolss_DeletePrintProvidor(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrintProvidor *r)
25239 if (flags & NDR_IN) {
25241 if (flags & NDR_OUT) {
25242 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25244 return NDR_ERR_SUCCESS;
25247 _PUBLIC_ void ndr_print_spoolss_DeletePrintProvidor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrintProvidor *r)
25249 ndr_print_struct(ndr, name, "spoolss_DeletePrintProvidor");
25250 ndr->depth++;
25251 if (flags & NDR_SET_VALUES) {
25252 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25254 if (flags & NDR_IN) {
25255 ndr_print_struct(ndr, "in", "spoolss_DeletePrintProvidor");
25256 ndr->depth++;
25257 ndr->depth--;
25259 if (flags & NDR_OUT) {
25260 ndr_print_struct(ndr, "out", "spoolss_DeletePrintProvidor");
25261 ndr->depth++;
25262 ndr_print_WERROR(ndr, "result", r->out.result);
25263 ndr->depth--;
25265 ndr->depth--;
25268 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrintProcDataTypes(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrintProcDataTypes *r)
25270 if (flags & NDR_IN) {
25271 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
25272 if (r->in.servername) {
25273 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
25274 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
25275 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
25276 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
25278 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.print_processor_name));
25279 if (r->in.print_processor_name) {
25280 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
25281 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
25282 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
25283 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.print_processor_name, ndr_charset_length(r->in.print_processor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
25285 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
25286 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
25287 if (r->in.buffer) {
25288 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
25290 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
25292 if (flags & NDR_OUT) {
25293 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
25294 if (r->out.info) {
25295 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
25297 if (r->out.needed == NULL) {
25298 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25300 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
25301 if (r->out.count == NULL) {
25302 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25304 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
25305 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25307 return NDR_ERR_SUCCESS;
25310 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrintProcDataTypes(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrintProcDataTypes *r)
25312 uint32_t _ptr_servername;
25313 uint32_t _ptr_print_processor_name;
25314 uint32_t _ptr_buffer;
25315 uint32_t _ptr_info;
25316 TALLOC_CTX *_mem_save_servername_0;
25317 TALLOC_CTX *_mem_save_print_processor_name_0;
25318 TALLOC_CTX *_mem_save_buffer_0;
25319 TALLOC_CTX *_mem_save_info_0;
25320 TALLOC_CTX *_mem_save_needed_0;
25321 TALLOC_CTX *_mem_save_count_0;
25322 if (flags & NDR_IN) {
25323 ZERO_STRUCT(r->out);
25325 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
25326 if (_ptr_servername) {
25327 NDR_PULL_ALLOC(ndr, r->in.servername);
25328 } else {
25329 r->in.servername = NULL;
25331 if (r->in.servername) {
25332 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
25333 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
25334 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
25335 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
25336 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
25337 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.servername), ndr_get_array_length(ndr, &r->in.servername));
25339 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
25340 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
25341 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
25343 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor_name));
25344 if (_ptr_print_processor_name) {
25345 NDR_PULL_ALLOC(ndr, r->in.print_processor_name);
25346 } else {
25347 r->in.print_processor_name = NULL;
25349 if (r->in.print_processor_name) {
25350 _mem_save_print_processor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
25351 NDR_PULL_SET_MEM_CTX(ndr, r->in.print_processor_name, 0);
25352 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.print_processor_name));
25353 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.print_processor_name));
25354 if (ndr_get_array_length(ndr, &r->in.print_processor_name) > ndr_get_array_size(ndr, &r->in.print_processor_name)) {
25355 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.print_processor_name), ndr_get_array_length(ndr, &r->in.print_processor_name));
25357 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.print_processor_name), sizeof(uint16_t)));
25358 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.print_processor_name, ndr_get_array_length(ndr, &r->in.print_processor_name), sizeof(uint16_t), CH_UTF16));
25359 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_name_0, 0);
25361 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
25362 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
25363 if (_ptr_buffer) {
25364 NDR_PULL_ALLOC(ndr, r->in.buffer);
25365 } else {
25366 r->in.buffer = NULL;
25368 if (r->in.buffer) {
25369 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
25370 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
25371 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
25372 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
25374 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
25375 NDR_PULL_ALLOC(ndr, r->out.needed);
25376 ZERO_STRUCTP(r->out.needed);
25377 NDR_PULL_ALLOC(ndr, r->out.count);
25378 ZERO_STRUCTP(r->out.count);
25380 if (flags & NDR_OUT) {
25381 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
25382 if (_ptr_info) {
25383 NDR_PULL_ALLOC(ndr, r->out.info);
25384 } else {
25385 r->out.info = NULL;
25387 if (r->out.info) {
25388 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
25389 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
25390 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
25391 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
25393 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25394 NDR_PULL_ALLOC(ndr, r->out.needed);
25396 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
25397 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
25398 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
25399 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
25400 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25401 NDR_PULL_ALLOC(ndr, r->out.count);
25403 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
25404 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
25405 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
25406 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
25407 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25409 return NDR_ERR_SUCCESS;
25412 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrintProcDataTypes(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrintProcDataTypes *r)
25414 uint32_t cntr_info_0;
25415 if (flags & NDR_IN) {
25416 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
25417 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
25419 if (flags & NDR_OUT) {
25420 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
25421 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
25422 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
25424 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
25425 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
25428 return NDR_ERR_SUCCESS;
25431 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrintProcDataTypes(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrintProcDataTypes *r)
25433 uint32_t cntr_info_0;
25434 TALLOC_CTX *_mem_save_info_0;
25435 if (flags & NDR_IN) {
25436 ZERO_STRUCT(r->out);
25438 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
25439 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
25441 if (flags & NDR_OUT) {
25442 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
25443 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
25444 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
25445 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
25446 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
25447 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
25449 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
25450 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
25452 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
25454 return NDR_ERR_SUCCESS;
25457 _PUBLIC_ void ndr_print_spoolss_EnumPrintProcDataTypes(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrintProcDataTypes *r)
25459 uint32_t cntr_info_2;
25460 ndr_print_struct(ndr, name, "spoolss_EnumPrintProcDataTypes");
25461 ndr->depth++;
25462 if (flags & NDR_SET_VALUES) {
25463 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25465 if (flags & NDR_IN) {
25466 ndr_print_struct(ndr, "in", "spoolss_EnumPrintProcDataTypes");
25467 ndr->depth++;
25468 ndr_print_ptr(ndr, "servername", r->in.servername);
25469 ndr->depth++;
25470 if (r->in.servername) {
25471 ndr_print_string(ndr, "servername", r->in.servername);
25473 ndr->depth--;
25474 ndr_print_ptr(ndr, "print_processor_name", r->in.print_processor_name);
25475 ndr->depth++;
25476 if (r->in.print_processor_name) {
25477 ndr_print_string(ndr, "print_processor_name", r->in.print_processor_name);
25479 ndr->depth--;
25480 ndr_print_uint32(ndr, "level", r->in.level);
25481 ndr_print_ptr(ndr, "buffer", r->in.buffer);
25482 ndr->depth++;
25483 if (r->in.buffer) {
25484 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
25486 ndr->depth--;
25487 ndr_print_uint32(ndr, "offered", r->in.offered);
25488 ndr->depth--;
25490 if (flags & NDR_OUT) {
25491 ndr_print_struct(ndr, "out", "spoolss_EnumPrintProcDataTypes");
25492 ndr->depth++;
25493 ndr_print_ptr(ndr, "count", r->out.count);
25494 ndr->depth++;
25495 ndr_print_uint32(ndr, "count", *r->out.count);
25496 ndr->depth--;
25497 ndr_print_ptr(ndr, "info", r->out.info);
25498 ndr->depth++;
25499 ndr_print_ptr(ndr, "info", *r->out.info);
25500 ndr->depth++;
25501 if (*r->out.info) {
25502 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
25503 ndr->depth++;
25504 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
25505 char *idx_2=NULL;
25506 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
25507 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
25508 ndr_print_spoolss_PrintProcDataTypesInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
25509 free(idx_2);
25512 ndr->depth--;
25514 ndr->depth--;
25515 ndr->depth--;
25516 ndr_print_ptr(ndr, "needed", r->out.needed);
25517 ndr->depth++;
25518 ndr_print_uint32(ndr, "needed", *r->out.needed);
25519 ndr->depth--;
25520 ndr_print_WERROR(ndr, "result", r->out.result);
25521 ndr->depth--;
25523 ndr->depth--;
25526 static enum ndr_err_code ndr_push_spoolss_ResetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ResetPrinter *r)
25528 if (flags & NDR_IN) {
25529 if (r->in.handle == NULL) {
25530 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25532 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25533 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.data_type));
25534 if (r->in.data_type) {
25535 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.data_type, CH_UTF16)));
25536 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
25537 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.data_type, CH_UTF16)));
25538 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.data_type, ndr_charset_length(r->in.data_type, CH_UTF16), sizeof(uint16_t), CH_UTF16));
25540 if (r->in.devmode_ctr == NULL) {
25541 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25543 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
25545 if (flags & NDR_OUT) {
25546 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25548 return NDR_ERR_SUCCESS;
25551 static enum ndr_err_code ndr_pull_spoolss_ResetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ResetPrinter *r)
25553 uint32_t _ptr_data_type;
25554 TALLOC_CTX *_mem_save_handle_0;
25555 TALLOC_CTX *_mem_save_data_type_0;
25556 TALLOC_CTX *_mem_save_devmode_ctr_0;
25557 if (flags & NDR_IN) {
25558 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25559 NDR_PULL_ALLOC(ndr, r->in.handle);
25561 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25562 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25563 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25564 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25565 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
25566 if (_ptr_data_type) {
25567 NDR_PULL_ALLOC(ndr, r->in.data_type);
25568 } else {
25569 r->in.data_type = NULL;
25571 if (r->in.data_type) {
25572 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
25573 NDR_PULL_SET_MEM_CTX(ndr, r->in.data_type, 0);
25574 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.data_type));
25575 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.data_type));
25576 if (ndr_get_array_length(ndr, &r->in.data_type) > ndr_get_array_size(ndr, &r->in.data_type)) {
25577 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.data_type), ndr_get_array_length(ndr, &r->in.data_type));
25579 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.data_type), sizeof(uint16_t)));
25580 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.data_type, ndr_get_array_length(ndr, &r->in.data_type), sizeof(uint16_t), CH_UTF16));
25581 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
25583 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25584 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
25586 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
25587 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
25588 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
25589 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
25591 if (flags & NDR_OUT) {
25592 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25594 return NDR_ERR_SUCCESS;
25597 _PUBLIC_ void ndr_print_spoolss_ResetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ResetPrinter *r)
25599 ndr_print_struct(ndr, name, "spoolss_ResetPrinter");
25600 ndr->depth++;
25601 if (flags & NDR_SET_VALUES) {
25602 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25604 if (flags & NDR_IN) {
25605 ndr_print_struct(ndr, "in", "spoolss_ResetPrinter");
25606 ndr->depth++;
25607 ndr_print_ptr(ndr, "handle", r->in.handle);
25608 ndr->depth++;
25609 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25610 ndr->depth--;
25611 ndr_print_ptr(ndr, "data_type", r->in.data_type);
25612 ndr->depth++;
25613 if (r->in.data_type) {
25614 ndr_print_string(ndr, "data_type", r->in.data_type);
25616 ndr->depth--;
25617 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
25618 ndr->depth++;
25619 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
25620 ndr->depth--;
25621 ndr->depth--;
25623 if (flags & NDR_OUT) {
25624 ndr_print_struct(ndr, "out", "spoolss_ResetPrinter");
25625 ndr->depth++;
25626 ndr_print_WERROR(ndr, "result", r->out.result);
25627 ndr->depth--;
25629 ndr->depth--;
25632 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriver2(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriver2 *r)
25634 if (flags & NDR_IN) {
25635 if (r->in.handle == NULL) {
25636 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25638 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25639 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.architecture));
25640 if (r->in.architecture) {
25641 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
25642 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
25643 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
25644 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
25646 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
25647 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
25648 if (r->in.buffer) {
25649 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
25651 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
25652 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_major_version));
25653 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_minor_version));
25655 if (flags & NDR_OUT) {
25656 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
25657 if (r->out.info) {
25659 struct ndr_push *_ndr_info;
25660 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
25661 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
25662 NDR_CHECK(ndr_push_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
25663 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
25666 if (r->out.needed == NULL) {
25667 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25669 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
25670 if (r->out.server_major_version == NULL) {
25671 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25673 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.server_major_version));
25674 if (r->out.server_minor_version == NULL) {
25675 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25677 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.server_minor_version));
25678 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25680 return NDR_ERR_SUCCESS;
25683 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriver2(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriver2 *r)
25685 uint32_t _ptr_architecture;
25686 uint32_t _ptr_buffer;
25687 uint32_t _ptr_info;
25688 TALLOC_CTX *_mem_save_handle_0;
25689 TALLOC_CTX *_mem_save_architecture_0;
25690 TALLOC_CTX *_mem_save_buffer_0;
25691 TALLOC_CTX *_mem_save_info_0;
25692 TALLOC_CTX *_mem_save_needed_0;
25693 TALLOC_CTX *_mem_save_server_major_version_0;
25694 TALLOC_CTX *_mem_save_server_minor_version_0;
25695 if (flags & NDR_IN) {
25696 ZERO_STRUCT(r->out);
25698 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25699 NDR_PULL_ALLOC(ndr, r->in.handle);
25701 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25702 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25703 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25704 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25705 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
25706 if (_ptr_architecture) {
25707 NDR_PULL_ALLOC(ndr, r->in.architecture);
25708 } else {
25709 r->in.architecture = NULL;
25711 if (r->in.architecture) {
25712 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
25713 NDR_PULL_SET_MEM_CTX(ndr, r->in.architecture, 0);
25714 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
25715 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
25716 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
25717 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.architecture), ndr_get_array_length(ndr, &r->in.architecture));
25719 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
25720 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
25721 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
25723 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
25724 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
25725 if (_ptr_buffer) {
25726 NDR_PULL_ALLOC(ndr, r->in.buffer);
25727 } else {
25728 r->in.buffer = NULL;
25730 if (r->in.buffer) {
25731 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
25732 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
25733 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
25734 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
25736 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
25737 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_major_version));
25738 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_minor_version));
25739 NDR_PULL_ALLOC(ndr, r->out.needed);
25740 ZERO_STRUCTP(r->out.needed);
25741 NDR_PULL_ALLOC(ndr, r->out.server_major_version);
25742 ZERO_STRUCTP(r->out.server_major_version);
25743 NDR_PULL_ALLOC(ndr, r->out.server_minor_version);
25744 ZERO_STRUCTP(r->out.server_minor_version);
25746 if (flags & NDR_OUT) {
25747 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
25748 if (_ptr_info) {
25749 NDR_PULL_ALLOC(ndr, r->out.info);
25750 } else {
25751 r->out.info = NULL;
25753 if (r->out.info) {
25754 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
25755 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
25757 struct ndr_pull *_ndr_info;
25758 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
25759 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
25760 NDR_CHECK(ndr_pull_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
25761 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
25763 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
25765 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25766 NDR_PULL_ALLOC(ndr, r->out.needed);
25768 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
25769 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
25770 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
25771 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
25772 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25773 NDR_PULL_ALLOC(ndr, r->out.server_major_version);
25775 _mem_save_server_major_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
25776 NDR_PULL_SET_MEM_CTX(ndr, r->out.server_major_version, LIBNDR_FLAG_REF_ALLOC);
25777 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.server_major_version));
25778 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_major_version_0, LIBNDR_FLAG_REF_ALLOC);
25779 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25780 NDR_PULL_ALLOC(ndr, r->out.server_minor_version);
25782 _mem_save_server_minor_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
25783 NDR_PULL_SET_MEM_CTX(ndr, r->out.server_minor_version, LIBNDR_FLAG_REF_ALLOC);
25784 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.server_minor_version));
25785 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_minor_version_0, LIBNDR_FLAG_REF_ALLOC);
25786 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25788 return NDR_ERR_SUCCESS;
25791 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriver2(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriver2 *r)
25793 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriver2");
25794 ndr->depth++;
25795 if (flags & NDR_SET_VALUES) {
25796 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25798 if (flags & NDR_IN) {
25799 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriver2");
25800 ndr->depth++;
25801 ndr_print_ptr(ndr, "handle", r->in.handle);
25802 ndr->depth++;
25803 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25804 ndr->depth--;
25805 ndr_print_ptr(ndr, "architecture", r->in.architecture);
25806 ndr->depth++;
25807 if (r->in.architecture) {
25808 ndr_print_string(ndr, "architecture", r->in.architecture);
25810 ndr->depth--;
25811 ndr_print_uint32(ndr, "level", r->in.level);
25812 ndr_print_ptr(ndr, "buffer", r->in.buffer);
25813 ndr->depth++;
25814 if (r->in.buffer) {
25815 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
25817 ndr->depth--;
25818 ndr_print_uint32(ndr, "offered", r->in.offered);
25819 ndr_print_uint32(ndr, "client_major_version", r->in.client_major_version);
25820 ndr_print_uint32(ndr, "client_minor_version", r->in.client_minor_version);
25821 ndr->depth--;
25823 if (flags & NDR_OUT) {
25824 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriver2");
25825 ndr->depth++;
25826 ndr_print_ptr(ndr, "info", r->out.info);
25827 ndr->depth++;
25828 if (r->out.info) {
25829 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
25830 ndr_print_spoolss_DriverInfo(ndr, "info", r->out.info);
25832 ndr->depth--;
25833 ndr_print_ptr(ndr, "needed", r->out.needed);
25834 ndr->depth++;
25835 ndr_print_uint32(ndr, "needed", *r->out.needed);
25836 ndr->depth--;
25837 ndr_print_ptr(ndr, "server_major_version", r->out.server_major_version);
25838 ndr->depth++;
25839 ndr_print_uint32(ndr, "server_major_version", *r->out.server_major_version);
25840 ndr->depth--;
25841 ndr_print_ptr(ndr, "server_minor_version", r->out.server_minor_version);
25842 ndr->depth++;
25843 ndr_print_uint32(ndr, "server_minor_version", *r->out.server_minor_version);
25844 ndr->depth--;
25845 ndr_print_WERROR(ndr, "result", r->out.result);
25846 ndr->depth--;
25848 ndr->depth--;
25851 static enum ndr_err_code ndr_push_spoolss_FindFirstPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_FindFirstPrinterChangeNotification *r)
25853 if (flags & NDR_IN) {
25855 if (flags & NDR_OUT) {
25856 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25858 return NDR_ERR_SUCCESS;
25861 static enum ndr_err_code ndr_pull_spoolss_FindFirstPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_FindFirstPrinterChangeNotification *r)
25863 if (flags & NDR_IN) {
25865 if (flags & NDR_OUT) {
25866 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25868 return NDR_ERR_SUCCESS;
25871 _PUBLIC_ void ndr_print_spoolss_FindFirstPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindFirstPrinterChangeNotification *r)
25873 ndr_print_struct(ndr, name, "spoolss_FindFirstPrinterChangeNotification");
25874 ndr->depth++;
25875 if (flags & NDR_SET_VALUES) {
25876 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25878 if (flags & NDR_IN) {
25879 ndr_print_struct(ndr, "in", "spoolss_FindFirstPrinterChangeNotification");
25880 ndr->depth++;
25881 ndr->depth--;
25883 if (flags & NDR_OUT) {
25884 ndr_print_struct(ndr, "out", "spoolss_FindFirstPrinterChangeNotification");
25885 ndr->depth++;
25886 ndr_print_WERROR(ndr, "result", r->out.result);
25887 ndr->depth--;
25889 ndr->depth--;
25892 static enum ndr_err_code ndr_push_spoolss_FindNextPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_FindNextPrinterChangeNotification *r)
25894 if (flags & NDR_IN) {
25896 if (flags & NDR_OUT) {
25897 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25899 return NDR_ERR_SUCCESS;
25902 static enum ndr_err_code ndr_pull_spoolss_FindNextPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_FindNextPrinterChangeNotification *r)
25904 if (flags & NDR_IN) {
25906 if (flags & NDR_OUT) {
25907 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25909 return NDR_ERR_SUCCESS;
25912 _PUBLIC_ void ndr_print_spoolss_FindNextPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindNextPrinterChangeNotification *r)
25914 ndr_print_struct(ndr, name, "spoolss_FindNextPrinterChangeNotification");
25915 ndr->depth++;
25916 if (flags & NDR_SET_VALUES) {
25917 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25919 if (flags & NDR_IN) {
25920 ndr_print_struct(ndr, "in", "spoolss_FindNextPrinterChangeNotification");
25921 ndr->depth++;
25922 ndr->depth--;
25924 if (flags & NDR_OUT) {
25925 ndr_print_struct(ndr, "out", "spoolss_FindNextPrinterChangeNotification");
25926 ndr->depth++;
25927 ndr_print_WERROR(ndr, "result", r->out.result);
25928 ndr->depth--;
25930 ndr->depth--;
25933 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FindClosePrinterNotify(struct ndr_push *ndr, int flags, const struct spoolss_FindClosePrinterNotify *r)
25935 if (flags & NDR_IN) {
25936 if (r->in.handle == NULL) {
25937 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25939 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25941 if (flags & NDR_OUT) {
25942 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25944 return NDR_ERR_SUCCESS;
25947 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FindClosePrinterNotify(struct ndr_pull *ndr, int flags, struct spoolss_FindClosePrinterNotify *r)
25949 TALLOC_CTX *_mem_save_handle_0;
25950 if (flags & NDR_IN) {
25951 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25952 NDR_PULL_ALLOC(ndr, r->in.handle);
25954 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25955 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25956 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25957 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25959 if (flags & NDR_OUT) {
25960 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25962 return NDR_ERR_SUCCESS;
25965 _PUBLIC_ void ndr_print_spoolss_FindClosePrinterNotify(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindClosePrinterNotify *r)
25967 ndr_print_struct(ndr, name, "spoolss_FindClosePrinterNotify");
25968 ndr->depth++;
25969 if (flags & NDR_SET_VALUES) {
25970 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25972 if (flags & NDR_IN) {
25973 ndr_print_struct(ndr, "in", "spoolss_FindClosePrinterNotify");
25974 ndr->depth++;
25975 ndr_print_ptr(ndr, "handle", r->in.handle);
25976 ndr->depth++;
25977 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25978 ndr->depth--;
25979 ndr->depth--;
25981 if (flags & NDR_OUT) {
25982 ndr_print_struct(ndr, "out", "spoolss_FindClosePrinterNotify");
25983 ndr->depth++;
25984 ndr_print_WERROR(ndr, "result", r->out.result);
25985 ndr->depth--;
25987 ndr->depth--;
25990 static enum ndr_err_code ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_push *ndr, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
25992 if (flags & NDR_IN) {
25994 if (flags & NDR_OUT) {
25995 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25997 return NDR_ERR_SUCCESS;
26000 static enum ndr_err_code ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_pull *ndr, int flags, struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
26002 if (flags & NDR_IN) {
26004 if (flags & NDR_OUT) {
26005 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26007 return NDR_ERR_SUCCESS;
26010 _PUBLIC_ void ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
26012 ndr_print_struct(ndr, name, "spoolss_RouterFindFirstPrinterChangeNotificationOld");
26013 ndr->depth++;
26014 if (flags & NDR_SET_VALUES) {
26015 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26017 if (flags & NDR_IN) {
26018 ndr_print_struct(ndr, "in", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
26019 ndr->depth++;
26020 ndr->depth--;
26022 if (flags & NDR_OUT) {
26023 ndr_print_struct(ndr, "out", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
26024 ndr->depth++;
26025 ndr_print_WERROR(ndr, "result", r->out.result);
26026 ndr->depth--;
26028 ndr->depth--;
26031 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ReplyOpenPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReplyOpenPrinter *r)
26033 if (flags & NDR_IN) {
26034 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
26035 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
26036 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
26037 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26038 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.printer_local));
26039 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
26040 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
26041 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
26042 if (r->in.buffer) {
26043 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.bufsize));
26044 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.bufsize));
26047 if (flags & NDR_OUT) {
26048 if (r->out.handle == NULL) {
26049 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26051 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
26052 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26054 return NDR_ERR_SUCCESS;
26057 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ReplyOpenPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReplyOpenPrinter *r)
26059 uint32_t _ptr_buffer;
26060 TALLOC_CTX *_mem_save_buffer_0;
26061 TALLOC_CTX *_mem_save_handle_0;
26062 if (flags & NDR_IN) {
26063 ZERO_STRUCT(r->out);
26065 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
26066 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
26067 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
26068 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.server_name), ndr_get_array_length(ndr, &r->in.server_name));
26070 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
26071 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
26072 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.printer_local));
26073 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
26074 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.bufsize));
26075 if (r->in.bufsize > 512) {
26076 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
26078 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
26079 if (_ptr_buffer) {
26080 NDR_PULL_ALLOC(ndr, r->in.buffer);
26081 } else {
26082 r->in.buffer = NULL;
26084 if (r->in.buffer) {
26085 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
26086 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
26087 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
26088 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
26089 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
26090 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
26092 NDR_PULL_ALLOC(ndr, r->out.handle);
26093 ZERO_STRUCTP(r->out.handle);
26094 if (r->in.buffer) {
26095 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.bufsize));
26098 if (flags & NDR_OUT) {
26099 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26100 NDR_PULL_ALLOC(ndr, r->out.handle);
26102 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26103 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
26104 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
26105 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26106 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26108 return NDR_ERR_SUCCESS;
26111 _PUBLIC_ void ndr_print_spoolss_ReplyOpenPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReplyOpenPrinter *r)
26113 ndr_print_struct(ndr, name, "spoolss_ReplyOpenPrinter");
26114 ndr->depth++;
26115 if (flags & NDR_SET_VALUES) {
26116 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26118 if (flags & NDR_IN) {
26119 ndr_print_struct(ndr, "in", "spoolss_ReplyOpenPrinter");
26120 ndr->depth++;
26121 ndr_print_string(ndr, "server_name", r->in.server_name);
26122 ndr_print_uint32(ndr, "printer_local", r->in.printer_local);
26123 ndr_print_winreg_Type(ndr, "type", r->in.type);
26124 ndr_print_uint32(ndr, "bufsize", r->in.bufsize);
26125 ndr_print_ptr(ndr, "buffer", r->in.buffer);
26126 ndr->depth++;
26127 if (r->in.buffer) {
26128 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.bufsize);
26130 ndr->depth--;
26131 ndr->depth--;
26133 if (flags & NDR_OUT) {
26134 ndr_print_struct(ndr, "out", "spoolss_ReplyOpenPrinter");
26135 ndr->depth++;
26136 ndr_print_ptr(ndr, "handle", r->out.handle);
26137 ndr->depth++;
26138 ndr_print_policy_handle(ndr, "handle", r->out.handle);
26139 ndr->depth--;
26140 ndr_print_WERROR(ndr, "result", r->out.result);
26141 ndr->depth--;
26143 ndr->depth--;
26146 static enum ndr_err_code ndr_push_spoolss_RouterReplyPrinter(struct ndr_push *ndr, int flags, const struct spoolss_RouterReplyPrinter *r)
26148 if (flags & NDR_IN) {
26149 if (r->in.handle == NULL) {
26150 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26152 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26153 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
26154 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
26155 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
26156 if (r->in.buffer) {
26157 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.bufsize));
26158 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.bufsize));
26161 if (flags & NDR_OUT) {
26162 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26164 return NDR_ERR_SUCCESS;
26167 static enum ndr_err_code ndr_pull_spoolss_RouterReplyPrinter(struct ndr_pull *ndr, int flags, struct spoolss_RouterReplyPrinter *r)
26169 uint32_t _ptr_buffer;
26170 TALLOC_CTX *_mem_save_handle_0;
26171 TALLOC_CTX *_mem_save_buffer_0;
26172 if (flags & NDR_IN) {
26173 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26174 NDR_PULL_ALLOC(ndr, r->in.handle);
26176 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26177 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26178 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26179 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26180 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
26181 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.bufsize));
26182 if (r->in.bufsize > 512) {
26183 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
26185 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
26186 if (_ptr_buffer) {
26187 NDR_PULL_ALLOC(ndr, r->in.buffer);
26188 } else {
26189 r->in.buffer = NULL;
26191 if (r->in.buffer) {
26192 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
26193 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
26194 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
26195 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
26196 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
26197 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
26199 if (r->in.buffer) {
26200 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.bufsize));
26203 if (flags & NDR_OUT) {
26204 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26206 return NDR_ERR_SUCCESS;
26209 _PUBLIC_ void ndr_print_spoolss_RouterReplyPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterReplyPrinter *r)
26211 ndr_print_struct(ndr, name, "spoolss_RouterReplyPrinter");
26212 ndr->depth++;
26213 if (flags & NDR_SET_VALUES) {
26214 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26216 if (flags & NDR_IN) {
26217 ndr_print_struct(ndr, "in", "spoolss_RouterReplyPrinter");
26218 ndr->depth++;
26219 ndr_print_ptr(ndr, "handle", r->in.handle);
26220 ndr->depth++;
26221 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26222 ndr->depth--;
26223 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
26224 ndr_print_uint32(ndr, "bufsize", r->in.bufsize);
26225 ndr_print_ptr(ndr, "buffer", r->in.buffer);
26226 ndr->depth++;
26227 if (r->in.buffer) {
26228 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.bufsize);
26230 ndr->depth--;
26231 ndr->depth--;
26233 if (flags & NDR_OUT) {
26234 ndr_print_struct(ndr, "out", "spoolss_RouterReplyPrinter");
26235 ndr->depth++;
26236 ndr_print_WERROR(ndr, "result", r->out.result);
26237 ndr->depth--;
26239 ndr->depth--;
26242 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ReplyClosePrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReplyClosePrinter *r)
26244 if (flags & NDR_IN) {
26245 if (r->in.handle == NULL) {
26246 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26248 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26250 if (flags & NDR_OUT) {
26251 if (r->out.handle == NULL) {
26252 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26254 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
26255 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26257 return NDR_ERR_SUCCESS;
26260 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ReplyClosePrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReplyClosePrinter *r)
26262 TALLOC_CTX *_mem_save_handle_0;
26263 if (flags & NDR_IN) {
26264 ZERO_STRUCT(r->out);
26266 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26267 NDR_PULL_ALLOC(ndr, r->in.handle);
26269 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26270 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26271 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26272 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26273 NDR_PULL_ALLOC(ndr, r->out.handle);
26274 *r->out.handle = *r->in.handle;
26276 if (flags & NDR_OUT) {
26277 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26278 NDR_PULL_ALLOC(ndr, r->out.handle);
26280 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26281 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
26282 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
26283 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26284 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26286 return NDR_ERR_SUCCESS;
26289 _PUBLIC_ void ndr_print_spoolss_ReplyClosePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReplyClosePrinter *r)
26291 ndr_print_struct(ndr, name, "spoolss_ReplyClosePrinter");
26292 ndr->depth++;
26293 if (flags & NDR_SET_VALUES) {
26294 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26296 if (flags & NDR_IN) {
26297 ndr_print_struct(ndr, "in", "spoolss_ReplyClosePrinter");
26298 ndr->depth++;
26299 ndr_print_ptr(ndr, "handle", r->in.handle);
26300 ndr->depth++;
26301 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26302 ndr->depth--;
26303 ndr->depth--;
26305 if (flags & NDR_OUT) {
26306 ndr_print_struct(ndr, "out", "spoolss_ReplyClosePrinter");
26307 ndr->depth++;
26308 ndr_print_ptr(ndr, "handle", r->out.handle);
26309 ndr->depth++;
26310 ndr_print_policy_handle(ndr, "handle", r->out.handle);
26311 ndr->depth--;
26312 ndr_print_WERROR(ndr, "result", r->out.result);
26313 ndr->depth--;
26315 ndr->depth--;
26318 static enum ndr_err_code ndr_push_spoolss_AddPortEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPortEx *r)
26320 if (flags & NDR_IN) {
26322 if (flags & NDR_OUT) {
26323 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26325 return NDR_ERR_SUCCESS;
26328 static enum ndr_err_code ndr_pull_spoolss_AddPortEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPortEx *r)
26330 if (flags & NDR_IN) {
26332 if (flags & NDR_OUT) {
26333 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26335 return NDR_ERR_SUCCESS;
26338 _PUBLIC_ void ndr_print_spoolss_AddPortEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPortEx *r)
26340 ndr_print_struct(ndr, name, "spoolss_AddPortEx");
26341 ndr->depth++;
26342 if (flags & NDR_SET_VALUES) {
26343 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26345 if (flags & NDR_IN) {
26346 ndr_print_struct(ndr, "in", "spoolss_AddPortEx");
26347 ndr->depth++;
26348 ndr->depth--;
26350 if (flags & NDR_OUT) {
26351 ndr_print_struct(ndr, "out", "spoolss_AddPortEx");
26352 ndr->depth++;
26353 ndr_print_WERROR(ndr, "result", r->out.result);
26354 ndr->depth--;
26356 ndr->depth--;
26359 static enum ndr_err_code ndr_push_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotification *r)
26361 if (flags & NDR_IN) {
26363 if (flags & NDR_OUT) {
26364 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26366 return NDR_ERR_SUCCESS;
26369 static enum ndr_err_code ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_RouterFindFirstPrinterChangeNotification *r)
26371 if (flags & NDR_IN) {
26373 if (flags & NDR_OUT) {
26374 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26376 return NDR_ERR_SUCCESS;
26379 _PUBLIC_ void ndr_print_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotification *r)
26381 ndr_print_struct(ndr, name, "spoolss_RouterFindFirstPrinterChangeNotification");
26382 ndr->depth++;
26383 if (flags & NDR_SET_VALUES) {
26384 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26386 if (flags & NDR_IN) {
26387 ndr_print_struct(ndr, "in", "spoolss_RouterFindFirstPrinterChangeNotification");
26388 ndr->depth++;
26389 ndr->depth--;
26391 if (flags & NDR_OUT) {
26392 ndr_print_struct(ndr, "out", "spoolss_RouterFindFirstPrinterChangeNotification");
26393 ndr->depth++;
26394 ndr_print_WERROR(ndr, "result", r->out.result);
26395 ndr->depth--;
26397 ndr->depth--;
26400 static enum ndr_err_code ndr_push_spoolss_SpoolerInit(struct ndr_push *ndr, int flags, const struct spoolss_SpoolerInit *r)
26402 if (flags & NDR_IN) {
26404 if (flags & NDR_OUT) {
26405 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26407 return NDR_ERR_SUCCESS;
26410 static enum ndr_err_code ndr_pull_spoolss_SpoolerInit(struct ndr_pull *ndr, int flags, struct spoolss_SpoolerInit *r)
26412 if (flags & NDR_IN) {
26414 if (flags & NDR_OUT) {
26415 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26417 return NDR_ERR_SUCCESS;
26420 _PUBLIC_ void ndr_print_spoolss_SpoolerInit(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SpoolerInit *r)
26422 ndr_print_struct(ndr, name, "spoolss_SpoolerInit");
26423 ndr->depth++;
26424 if (flags & NDR_SET_VALUES) {
26425 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26427 if (flags & NDR_IN) {
26428 ndr_print_struct(ndr, "in", "spoolss_SpoolerInit");
26429 ndr->depth++;
26430 ndr->depth--;
26432 if (flags & NDR_OUT) {
26433 ndr_print_struct(ndr, "out", "spoolss_SpoolerInit");
26434 ndr->depth++;
26435 ndr_print_WERROR(ndr, "result", r->out.result);
26436 ndr->depth--;
26438 ndr->depth--;
26441 static enum ndr_err_code ndr_push_spoolss_ResetPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_ResetPrinterEx *r)
26443 if (flags & NDR_IN) {
26445 if (flags & NDR_OUT) {
26446 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26448 return NDR_ERR_SUCCESS;
26451 static enum ndr_err_code ndr_pull_spoolss_ResetPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_ResetPrinterEx *r)
26453 if (flags & NDR_IN) {
26455 if (flags & NDR_OUT) {
26456 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26458 return NDR_ERR_SUCCESS;
26461 _PUBLIC_ void ndr_print_spoolss_ResetPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ResetPrinterEx *r)
26463 ndr_print_struct(ndr, name, "spoolss_ResetPrinterEx");
26464 ndr->depth++;
26465 if (flags & NDR_SET_VALUES) {
26466 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26468 if (flags & NDR_IN) {
26469 ndr_print_struct(ndr, "in", "spoolss_ResetPrinterEx");
26470 ndr->depth++;
26471 ndr->depth--;
26473 if (flags & NDR_OUT) {
26474 ndr_print_struct(ndr, "out", "spoolss_ResetPrinterEx");
26475 ndr->depth++;
26476 ndr_print_WERROR(ndr, "result", r->out.result);
26477 ndr->depth--;
26479 ndr->depth--;
26482 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_push *ndr, int flags, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
26484 if (flags & NDR_IN) {
26485 if (r->in.handle == NULL) {
26486 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26488 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26489 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
26490 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.options));
26491 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.local_machine));
26492 if (r->in.local_machine) {
26493 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.local_machine, CH_UTF16)));
26494 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
26495 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.local_machine, CH_UTF16)));
26496 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.local_machine, ndr_charset_length(r->in.local_machine, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26498 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.printer_local));
26499 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.notify_options));
26500 if (r->in.notify_options) {
26501 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.notify_options));
26504 if (flags & NDR_OUT) {
26505 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26507 return NDR_ERR_SUCCESS;
26510 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_pull *ndr, int flags, struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
26512 uint32_t _ptr_local_machine;
26513 uint32_t _ptr_notify_options;
26514 TALLOC_CTX *_mem_save_handle_0;
26515 TALLOC_CTX *_mem_save_local_machine_0;
26516 TALLOC_CTX *_mem_save_notify_options_0;
26517 if (flags & NDR_IN) {
26518 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26519 NDR_PULL_ALLOC(ndr, r->in.handle);
26521 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26522 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26523 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26524 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26525 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
26526 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.options));
26527 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_local_machine));
26528 if (_ptr_local_machine) {
26529 NDR_PULL_ALLOC(ndr, r->in.local_machine);
26530 } else {
26531 r->in.local_machine = NULL;
26533 if (r->in.local_machine) {
26534 _mem_save_local_machine_0 = NDR_PULL_GET_MEM_CTX(ndr);
26535 NDR_PULL_SET_MEM_CTX(ndr, r->in.local_machine, 0);
26536 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.local_machine));
26537 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.local_machine));
26538 if (ndr_get_array_length(ndr, &r->in.local_machine) > ndr_get_array_size(ndr, &r->in.local_machine)) {
26539 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.local_machine), ndr_get_array_length(ndr, &r->in.local_machine));
26541 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.local_machine), sizeof(uint16_t)));
26542 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.local_machine, ndr_get_array_length(ndr, &r->in.local_machine), sizeof(uint16_t), CH_UTF16));
26543 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_local_machine_0, 0);
26545 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.printer_local));
26546 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_options));
26547 if (_ptr_notify_options) {
26548 NDR_PULL_ALLOC(ndr, r->in.notify_options);
26549 } else {
26550 r->in.notify_options = NULL;
26552 if (r->in.notify_options) {
26553 _mem_save_notify_options_0 = NDR_PULL_GET_MEM_CTX(ndr);
26554 NDR_PULL_SET_MEM_CTX(ndr, r->in.notify_options, 0);
26555 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.notify_options));
26556 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_options_0, 0);
26559 if (flags & NDR_OUT) {
26560 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26562 return NDR_ERR_SUCCESS;
26565 _PUBLIC_ void ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
26567 ndr_print_struct(ndr, name, "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
26568 ndr->depth++;
26569 if (flags & NDR_SET_VALUES) {
26570 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26572 if (flags & NDR_IN) {
26573 ndr_print_struct(ndr, "in", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
26574 ndr->depth++;
26575 ndr_print_ptr(ndr, "handle", r->in.handle);
26576 ndr->depth++;
26577 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26578 ndr->depth--;
26579 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
26580 ndr_print_uint32(ndr, "options", r->in.options);
26581 ndr_print_ptr(ndr, "local_machine", r->in.local_machine);
26582 ndr->depth++;
26583 if (r->in.local_machine) {
26584 ndr_print_string(ndr, "local_machine", r->in.local_machine);
26586 ndr->depth--;
26587 ndr_print_uint32(ndr, "printer_local", r->in.printer_local);
26588 ndr_print_ptr(ndr, "notify_options", r->in.notify_options);
26589 ndr->depth++;
26590 if (r->in.notify_options) {
26591 ndr_print_spoolss_NotifyOption(ndr, "notify_options", r->in.notify_options);
26593 ndr->depth--;
26594 ndr->depth--;
26596 if (flags & NDR_OUT) {
26597 ndr_print_struct(ndr, "out", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
26598 ndr->depth++;
26599 ndr_print_WERROR(ndr, "result", r->out.result);
26600 ndr->depth--;
26602 ndr->depth--;
26605 static enum ndr_err_code ndr_push_spoolss_RouterReplyPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_RouterReplyPrinterEx *r)
26607 if (flags & NDR_IN) {
26608 if (r->in.handle == NULL) {
26609 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26611 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26612 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.color));
26613 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
26614 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.reply_type));
26615 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.reply_type));
26616 NDR_CHECK(ndr_push_spoolss_ReplyPrinterInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
26618 if (flags & NDR_OUT) {
26619 if (r->out.reply_result == NULL) {
26620 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26622 NDR_CHECK(ndr_push_spoolss_PrinterNotifyFlags(ndr, NDR_SCALARS, *r->out.reply_result));
26623 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26625 return NDR_ERR_SUCCESS;
26628 static enum ndr_err_code ndr_pull_spoolss_RouterReplyPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_RouterReplyPrinterEx *r)
26630 TALLOC_CTX *_mem_save_handle_0;
26631 TALLOC_CTX *_mem_save_reply_result_0;
26632 if (flags & NDR_IN) {
26633 ZERO_STRUCT(r->out);
26635 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26636 NDR_PULL_ALLOC(ndr, r->in.handle);
26638 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26639 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26640 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26641 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26642 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.color));
26643 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
26644 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.reply_type));
26645 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.reply_type));
26646 NDR_CHECK(ndr_pull_spoolss_ReplyPrinterInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
26647 NDR_PULL_ALLOC(ndr, r->out.reply_result);
26648 ZERO_STRUCTP(r->out.reply_result);
26650 if (flags & NDR_OUT) {
26651 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26652 NDR_PULL_ALLOC(ndr, r->out.reply_result);
26654 _mem_save_reply_result_0 = NDR_PULL_GET_MEM_CTX(ndr);
26655 NDR_PULL_SET_MEM_CTX(ndr, r->out.reply_result, LIBNDR_FLAG_REF_ALLOC);
26656 NDR_CHECK(ndr_pull_spoolss_PrinterNotifyFlags(ndr, NDR_SCALARS, r->out.reply_result));
26657 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_reply_result_0, LIBNDR_FLAG_REF_ALLOC);
26658 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26660 return NDR_ERR_SUCCESS;
26663 _PUBLIC_ void ndr_print_spoolss_RouterReplyPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterReplyPrinterEx *r)
26665 ndr_print_struct(ndr, name, "spoolss_RouterReplyPrinterEx");
26666 ndr->depth++;
26667 if (flags & NDR_SET_VALUES) {
26668 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26670 if (flags & NDR_IN) {
26671 ndr_print_struct(ndr, "in", "spoolss_RouterReplyPrinterEx");
26672 ndr->depth++;
26673 ndr_print_ptr(ndr, "handle", r->in.handle);
26674 ndr->depth++;
26675 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26676 ndr->depth--;
26677 ndr_print_uint32(ndr, "color", r->in.color);
26678 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
26679 ndr_print_uint32(ndr, "reply_type", r->in.reply_type);
26680 ndr_print_set_switch_value(ndr, &r->in.info, r->in.reply_type);
26681 ndr_print_spoolss_ReplyPrinterInfo(ndr, "info", &r->in.info);
26682 ndr->depth--;
26684 if (flags & NDR_OUT) {
26685 ndr_print_struct(ndr, "out", "spoolss_RouterReplyPrinterEx");
26686 ndr->depth++;
26687 ndr_print_ptr(ndr, "reply_result", r->out.reply_result);
26688 ndr->depth++;
26689 ndr_print_spoolss_PrinterNotifyFlags(ndr, "reply_result", *r->out.reply_result);
26690 ndr->depth--;
26691 ndr_print_WERROR(ndr, "result", r->out.result);
26692 ndr->depth--;
26694 ndr->depth--;
26697 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_push *ndr, int flags, const struct spoolss_RouterRefreshPrinterChangeNotify *r)
26699 if (flags & NDR_IN) {
26700 if (r->in.handle == NULL) {
26701 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26703 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26704 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.change_low));
26705 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.options));
26706 if (r->in.options) {
26707 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.options));
26710 if (flags & NDR_OUT) {
26711 if (r->out.info == NULL) {
26712 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26714 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
26715 if (*r->out.info) {
26716 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
26718 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26720 return NDR_ERR_SUCCESS;
26723 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_pull *ndr, int flags, struct spoolss_RouterRefreshPrinterChangeNotify *r)
26725 uint32_t _ptr_options;
26726 uint32_t _ptr_info;
26727 TALLOC_CTX *_mem_save_handle_0;
26728 TALLOC_CTX *_mem_save_options_0;
26729 TALLOC_CTX *_mem_save_info_0;
26730 TALLOC_CTX *_mem_save_info_1;
26731 if (flags & NDR_IN) {
26732 ZERO_STRUCT(r->out);
26734 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26735 NDR_PULL_ALLOC(ndr, r->in.handle);
26737 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26738 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26739 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26740 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26741 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.change_low));
26742 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_options));
26743 if (_ptr_options) {
26744 NDR_PULL_ALLOC(ndr, r->in.options);
26745 } else {
26746 r->in.options = NULL;
26748 if (r->in.options) {
26749 _mem_save_options_0 = NDR_PULL_GET_MEM_CTX(ndr);
26750 NDR_PULL_SET_MEM_CTX(ndr, r->in.options, 0);
26751 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.options));
26752 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_options_0, 0);
26754 NDR_PULL_ALLOC(ndr, r->out.info);
26755 ZERO_STRUCTP(r->out.info);
26757 if (flags & NDR_OUT) {
26758 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26759 NDR_PULL_ALLOC(ndr, r->out.info);
26761 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
26762 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
26763 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
26764 if (_ptr_info) {
26765 NDR_PULL_ALLOC(ndr, *r->out.info);
26766 } else {
26767 *r->out.info = NULL;
26769 if (*r->out.info) {
26770 _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
26771 NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
26772 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
26773 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
26775 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
26776 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26778 return NDR_ERR_SUCCESS;
26781 _PUBLIC_ void ndr_print_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterRefreshPrinterChangeNotify *r)
26783 ndr_print_struct(ndr, name, "spoolss_RouterRefreshPrinterChangeNotify");
26784 ndr->depth++;
26785 if (flags & NDR_SET_VALUES) {
26786 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26788 if (flags & NDR_IN) {
26789 ndr_print_struct(ndr, "in", "spoolss_RouterRefreshPrinterChangeNotify");
26790 ndr->depth++;
26791 ndr_print_ptr(ndr, "handle", r->in.handle);
26792 ndr->depth++;
26793 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26794 ndr->depth--;
26795 ndr_print_uint32(ndr, "change_low", r->in.change_low);
26796 ndr_print_ptr(ndr, "options", r->in.options);
26797 ndr->depth++;
26798 if (r->in.options) {
26799 ndr_print_spoolss_NotifyOption(ndr, "options", r->in.options);
26801 ndr->depth--;
26802 ndr->depth--;
26804 if (flags & NDR_OUT) {
26805 ndr_print_struct(ndr, "out", "spoolss_RouterRefreshPrinterChangeNotify");
26806 ndr->depth++;
26807 ndr_print_ptr(ndr, "info", r->out.info);
26808 ndr->depth++;
26809 ndr_print_ptr(ndr, "info", *r->out.info);
26810 ndr->depth++;
26811 if (*r->out.info) {
26812 ndr_print_spoolss_NotifyInfo(ndr, "info", *r->out.info);
26814 ndr->depth--;
26815 ndr->depth--;
26816 ndr_print_WERROR(ndr, "result", r->out.result);
26817 ndr->depth--;
26819 ndr->depth--;
26822 static enum ndr_err_code ndr_push_spoolss_44(struct ndr_push *ndr, int flags, const struct spoolss_44 *r)
26824 if (flags & NDR_IN) {
26826 if (flags & NDR_OUT) {
26827 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26829 return NDR_ERR_SUCCESS;
26832 static enum ndr_err_code ndr_pull_spoolss_44(struct ndr_pull *ndr, int flags, struct spoolss_44 *r)
26834 if (flags & NDR_IN) {
26836 if (flags & NDR_OUT) {
26837 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26839 return NDR_ERR_SUCCESS;
26842 _PUBLIC_ void ndr_print_spoolss_44(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_44 *r)
26844 ndr_print_struct(ndr, name, "spoolss_44");
26845 ndr->depth++;
26846 if (flags & NDR_SET_VALUES) {
26847 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26849 if (flags & NDR_IN) {
26850 ndr_print_struct(ndr, "in", "spoolss_44");
26851 ndr->depth++;
26852 ndr->depth--;
26854 if (flags & NDR_OUT) {
26855 ndr_print_struct(ndr, "out", "spoolss_44");
26856 ndr->depth++;
26857 ndr_print_WERROR(ndr, "result", r->out.result);
26858 ndr->depth--;
26860 ndr->depth--;
26863 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OpenPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_OpenPrinterEx *r)
26865 if (flags & NDR_IN) {
26866 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.printername));
26867 if (r->in.printername) {
26868 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
26869 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
26870 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
26871 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26873 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.datatype));
26874 if (r->in.datatype) {
26875 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
26876 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
26877 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
26878 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.datatype, ndr_charset_length(r->in.datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26880 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
26881 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr, NDR_SCALARS, r->in.access_mask));
26882 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
26883 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.userlevel, r->in.level));
26884 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.userlevel));
26886 if (flags & NDR_OUT) {
26887 if (r->out.handle == NULL) {
26888 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26890 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
26891 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26893 return NDR_ERR_SUCCESS;
26896 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OpenPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_OpenPrinterEx *r)
26898 uint32_t _ptr_printername;
26899 uint32_t _ptr_datatype;
26900 TALLOC_CTX *_mem_save_printername_0;
26901 TALLOC_CTX *_mem_save_datatype_0;
26902 TALLOC_CTX *_mem_save_handle_0;
26903 if (flags & NDR_IN) {
26904 ZERO_STRUCT(r->out);
26906 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
26907 if (_ptr_printername) {
26908 NDR_PULL_ALLOC(ndr, r->in.printername);
26909 } else {
26910 r->in.printername = NULL;
26912 if (r->in.printername) {
26913 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
26914 NDR_PULL_SET_MEM_CTX(ndr, r->in.printername, 0);
26915 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
26916 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
26917 if (ndr_get_array_length(ndr, &r->in.printername) > ndr_get_array_size(ndr, &r->in.printername)) {
26918 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.printername), ndr_get_array_length(ndr, &r->in.printername));
26920 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t)));
26921 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t), CH_UTF16));
26922 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
26924 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
26925 if (_ptr_datatype) {
26926 NDR_PULL_ALLOC(ndr, r->in.datatype);
26927 } else {
26928 r->in.datatype = NULL;
26930 if (r->in.datatype) {
26931 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
26932 NDR_PULL_SET_MEM_CTX(ndr, r->in.datatype, 0);
26933 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.datatype));
26934 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.datatype));
26935 if (ndr_get_array_length(ndr, &r->in.datatype) > ndr_get_array_size(ndr, &r->in.datatype)) {
26936 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.datatype), ndr_get_array_length(ndr, &r->in.datatype));
26938 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t)));
26939 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t), CH_UTF16));
26940 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
26942 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
26943 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr, NDR_SCALARS, &r->in.access_mask));
26944 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
26945 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.userlevel, r->in.level));
26946 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.userlevel));
26947 NDR_PULL_ALLOC(ndr, r->out.handle);
26948 ZERO_STRUCTP(r->out.handle);
26950 if (flags & NDR_OUT) {
26951 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26952 NDR_PULL_ALLOC(ndr, r->out.handle);
26954 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26955 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
26956 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
26957 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26958 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26960 return NDR_ERR_SUCCESS;
26963 _PUBLIC_ void ndr_print_spoolss_OpenPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_OpenPrinterEx *r)
26965 ndr_print_struct(ndr, name, "spoolss_OpenPrinterEx");
26966 ndr->depth++;
26967 if (flags & NDR_SET_VALUES) {
26968 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26970 if (flags & NDR_IN) {
26971 ndr_print_struct(ndr, "in", "spoolss_OpenPrinterEx");
26972 ndr->depth++;
26973 ndr_print_ptr(ndr, "printername", r->in.printername);
26974 ndr->depth++;
26975 if (r->in.printername) {
26976 ndr_print_string(ndr, "printername", r->in.printername);
26978 ndr->depth--;
26979 ndr_print_ptr(ndr, "datatype", r->in.datatype);
26980 ndr->depth++;
26981 if (r->in.datatype) {
26982 ndr_print_string(ndr, "datatype", r->in.datatype);
26984 ndr->depth--;
26985 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", &r->in.devmode_ctr);
26986 ndr_print_spoolss_AccessRights(ndr, "access_mask", r->in.access_mask);
26987 ndr_print_uint32(ndr, "level", r->in.level);
26988 ndr_print_set_switch_value(ndr, &r->in.userlevel, r->in.level);
26989 ndr_print_spoolss_UserLevel(ndr, "userlevel", &r->in.userlevel);
26990 ndr->depth--;
26992 if (flags & NDR_OUT) {
26993 ndr_print_struct(ndr, "out", "spoolss_OpenPrinterEx");
26994 ndr->depth++;
26995 ndr_print_ptr(ndr, "handle", r->out.handle);
26996 ndr->depth++;
26997 ndr_print_policy_handle(ndr, "handle", r->out.handle);
26998 ndr->depth--;
26999 ndr_print_WERROR(ndr, "result", r->out.result);
27000 ndr->depth--;
27002 ndr->depth--;
27005 static enum ndr_err_code ndr_push_spoolss_AddPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterEx *r)
27007 if (flags & NDR_IN) {
27008 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
27009 if (r->in.server) {
27010 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
27011 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27012 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
27013 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
27015 if (r->in.info_ctr == NULL) {
27016 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27018 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
27019 if (r->in.devmode_ctr == NULL) {
27020 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27022 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
27023 if (r->in.secdesc_ctr == NULL) {
27024 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27026 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
27027 if (r->in.userlevel_ctr == NULL) {
27028 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27030 NDR_CHECK(ndr_push_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.userlevel_ctr));
27032 if (flags & NDR_OUT) {
27033 if (r->out.handle == NULL) {
27034 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27036 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
27037 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27039 return NDR_ERR_SUCCESS;
27042 static enum ndr_err_code ndr_pull_spoolss_AddPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterEx *r)
27044 uint32_t _ptr_server;
27045 TALLOC_CTX *_mem_save_server_0;
27046 TALLOC_CTX *_mem_save_info_ctr_0;
27047 TALLOC_CTX *_mem_save_devmode_ctr_0;
27048 TALLOC_CTX *_mem_save_secdesc_ctr_0;
27049 TALLOC_CTX *_mem_save_userlevel_ctr_0;
27050 TALLOC_CTX *_mem_save_handle_0;
27051 if (flags & NDR_IN) {
27052 ZERO_STRUCT(r->out);
27054 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
27055 if (_ptr_server) {
27056 NDR_PULL_ALLOC(ndr, r->in.server);
27057 } else {
27058 r->in.server = NULL;
27060 if (r->in.server) {
27061 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
27062 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
27063 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
27064 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
27065 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
27066 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.server), ndr_get_array_length(ndr, &r->in.server));
27068 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
27069 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
27070 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
27072 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27073 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
27075 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
27076 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
27077 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
27078 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
27079 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27080 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
27082 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
27083 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
27084 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
27085 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
27086 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27087 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
27089 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
27090 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
27091 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
27092 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
27093 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27094 NDR_PULL_ALLOC(ndr, r->in.userlevel_ctr);
27096 _mem_save_userlevel_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
27097 NDR_PULL_SET_MEM_CTX(ndr, r->in.userlevel_ctr, LIBNDR_FLAG_REF_ALLOC);
27098 NDR_CHECK(ndr_pull_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.userlevel_ctr));
27099 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_userlevel_ctr_0, LIBNDR_FLAG_REF_ALLOC);
27100 NDR_PULL_ALLOC(ndr, r->out.handle);
27101 ZERO_STRUCTP(r->out.handle);
27103 if (flags & NDR_OUT) {
27104 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27105 NDR_PULL_ALLOC(ndr, r->out.handle);
27107 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27108 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
27109 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
27110 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27111 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27113 return NDR_ERR_SUCCESS;
27116 _PUBLIC_ void ndr_print_spoolss_AddPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterEx *r)
27118 ndr_print_struct(ndr, name, "spoolss_AddPrinterEx");
27119 ndr->depth++;
27120 if (flags & NDR_SET_VALUES) {
27121 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27123 if (flags & NDR_IN) {
27124 ndr_print_struct(ndr, "in", "spoolss_AddPrinterEx");
27125 ndr->depth++;
27126 ndr_print_ptr(ndr, "server", r->in.server);
27127 ndr->depth++;
27128 if (r->in.server) {
27129 ndr_print_string(ndr, "server", r->in.server);
27131 ndr->depth--;
27132 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
27133 ndr->depth++;
27134 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
27135 ndr->depth--;
27136 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
27137 ndr->depth++;
27138 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
27139 ndr->depth--;
27140 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
27141 ndr->depth++;
27142 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
27143 ndr->depth--;
27144 ndr_print_ptr(ndr, "userlevel_ctr", r->in.userlevel_ctr);
27145 ndr->depth++;
27146 ndr_print_spoolss_UserLevelCtr(ndr, "userlevel_ctr", r->in.userlevel_ctr);
27147 ndr->depth--;
27148 ndr->depth--;
27150 if (flags & NDR_OUT) {
27151 ndr_print_struct(ndr, "out", "spoolss_AddPrinterEx");
27152 ndr->depth++;
27153 ndr_print_ptr(ndr, "handle", r->out.handle);
27154 ndr->depth++;
27155 ndr_print_policy_handle(ndr, "handle", r->out.handle);
27156 ndr->depth--;
27157 ndr_print_WERROR(ndr, "result", r->out.result);
27158 ndr->depth--;
27160 ndr->depth--;
27163 static enum ndr_err_code ndr_push_spoolss_47(struct ndr_push *ndr, int flags, const struct spoolss_47 *r)
27165 if (flags & NDR_IN) {
27167 if (flags & NDR_OUT) {
27168 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27170 return NDR_ERR_SUCCESS;
27173 static enum ndr_err_code ndr_pull_spoolss_47(struct ndr_pull *ndr, int flags, struct spoolss_47 *r)
27175 if (flags & NDR_IN) {
27177 if (flags & NDR_OUT) {
27178 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27180 return NDR_ERR_SUCCESS;
27183 _PUBLIC_ void ndr_print_spoolss_47(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_47 *r)
27185 ndr_print_struct(ndr, name, "spoolss_47");
27186 ndr->depth++;
27187 if (flags & NDR_SET_VALUES) {
27188 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27190 if (flags & NDR_IN) {
27191 ndr_print_struct(ndr, "in", "spoolss_47");
27192 ndr->depth++;
27193 ndr->depth--;
27195 if (flags & NDR_OUT) {
27196 ndr_print_struct(ndr, "out", "spoolss_47");
27197 ndr->depth++;
27198 ndr_print_WERROR(ndr, "result", r->out.result);
27199 ndr->depth--;
27201 ndr->depth--;
27204 static enum ndr_err_code ndr_push_spoolss_EnumPrinterData(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterData *r)
27206 if (flags & NDR_IN) {
27207 if (r->in.handle == NULL) {
27208 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27210 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27211 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.enum_index));
27212 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.value_offered));
27213 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_offered));
27215 if (flags & NDR_OUT) {
27216 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.value_offered / 2));
27217 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->out.value_name, r->in.value_offered / 2, sizeof(uint16_t), CH_UTF16));
27218 if (r->out.value_needed == NULL) {
27219 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27221 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.value_needed));
27222 if (r->out.type == NULL) {
27223 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27225 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
27227 uint32_t _flags_save_uint8 = ndr->flags;
27228 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
27229 if (r->out.data == NULL) {
27230 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27232 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.data_offered));
27233 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->in.data_offered));
27234 ndr->flags = _flags_save_uint8;
27236 if (r->out.data_needed == NULL) {
27237 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27239 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.data_needed));
27240 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27242 return NDR_ERR_SUCCESS;
27245 static enum ndr_err_code ndr_pull_spoolss_EnumPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterData *r)
27247 TALLOC_CTX *_mem_save_handle_0;
27248 TALLOC_CTX *_mem_save_value_needed_0;
27249 TALLOC_CTX *_mem_save_type_0;
27250 TALLOC_CTX *_mem_save_data_needed_0;
27251 if (flags & NDR_IN) {
27252 ZERO_STRUCT(r->out);
27254 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27255 NDR_PULL_ALLOC(ndr, r->in.handle);
27257 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27258 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27259 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27260 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27261 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.enum_index));
27262 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.value_offered));
27263 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_offered));
27264 NDR_PULL_ALLOC(ndr, r->out.value_needed);
27265 ZERO_STRUCTP(r->out.value_needed);
27266 NDR_PULL_ALLOC(ndr, r->out.type);
27267 ZERO_STRUCTP(r->out.type);
27268 NDR_PULL_ALLOC_N(ndr, r->out.data, r->in.data_offered);
27269 memset(r->out.data, 0, (r->in.data_offered) * sizeof(*r->out.data));
27270 NDR_PULL_ALLOC(ndr, r->out.data_needed);
27271 ZERO_STRUCTP(r->out.data_needed);
27273 if (flags & NDR_OUT) {
27274 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.value_name));
27275 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->out.value_name, ndr_get_array_size(ndr, &r->out.value_name), sizeof(uint16_t), CH_UTF16));
27276 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27277 NDR_PULL_ALLOC(ndr, r->out.value_needed);
27279 _mem_save_value_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
27280 NDR_PULL_SET_MEM_CTX(ndr, r->out.value_needed, LIBNDR_FLAG_REF_ALLOC);
27281 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.value_needed));
27282 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_needed_0, LIBNDR_FLAG_REF_ALLOC);
27283 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27284 NDR_PULL_ALLOC(ndr, r->out.type);
27286 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
27287 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
27288 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
27289 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
27291 uint32_t _flags_save_uint8 = ndr->flags;
27292 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
27293 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
27294 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27295 NDR_PULL_ALLOC_N(ndr, r->out.data, ndr_get_array_size(ndr, &r->out.data));
27297 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, ndr_get_array_size(ndr, &r->out.data)));
27298 ndr->flags = _flags_save_uint8;
27300 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27301 NDR_PULL_ALLOC(ndr, r->out.data_needed);
27303 _mem_save_data_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
27304 NDR_PULL_SET_MEM_CTX(ndr, r->out.data_needed, LIBNDR_FLAG_REF_ALLOC);
27305 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.data_needed));
27306 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_needed_0, LIBNDR_FLAG_REF_ALLOC);
27307 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27308 if (r->out.value_name) {
27309 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.value_name, r->in.value_offered / 2));
27311 if (r->out.data) {
27312 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, r->in.data_offered));
27315 return NDR_ERR_SUCCESS;
27318 _PUBLIC_ void ndr_print_spoolss_EnumPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterData *r)
27320 ndr_print_struct(ndr, name, "spoolss_EnumPrinterData");
27321 ndr->depth++;
27322 if (flags & NDR_SET_VALUES) {
27323 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27325 if (flags & NDR_IN) {
27326 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterData");
27327 ndr->depth++;
27328 ndr_print_ptr(ndr, "handle", r->in.handle);
27329 ndr->depth++;
27330 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27331 ndr->depth--;
27332 ndr_print_uint32(ndr, "enum_index", r->in.enum_index);
27333 ndr_print_uint32(ndr, "value_offered", r->in.value_offered);
27334 ndr_print_uint32(ndr, "data_offered", r->in.data_offered);
27335 ndr->depth--;
27337 if (flags & NDR_OUT) {
27338 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterData");
27339 ndr->depth++;
27340 ndr_print_string(ndr, "value_name", r->out.value_name);
27341 ndr_print_ptr(ndr, "value_needed", r->out.value_needed);
27342 ndr->depth++;
27343 ndr_print_uint32(ndr, "value_needed", *r->out.value_needed);
27344 ndr->depth--;
27345 ndr_print_ptr(ndr, "type", r->out.type);
27346 ndr->depth++;
27347 ndr_print_winreg_Type(ndr, "type", *r->out.type);
27348 ndr->depth--;
27349 ndr_print_ptr(ndr, "data", r->out.data);
27350 ndr->depth++;
27351 ndr_print_array_uint8(ndr, "data", r->out.data, r->in.data_offered);
27352 ndr->depth--;
27353 ndr_print_ptr(ndr, "data_needed", r->out.data_needed);
27354 ndr->depth++;
27355 ndr_print_uint32(ndr, "data_needed", *r->out.data_needed);
27356 ndr->depth--;
27357 ndr_print_WERROR(ndr, "result", r->out.result);
27358 ndr->depth--;
27360 ndr->depth--;
27363 static enum ndr_err_code ndr_push_spoolss_DeletePrinterData(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterData *r)
27365 if (flags & NDR_IN) {
27366 if (r->in.handle == NULL) {
27367 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27369 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27370 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
27371 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27372 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
27373 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.value_name, ndr_charset_length(r->in.value_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
27375 if (flags & NDR_OUT) {
27376 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27378 return NDR_ERR_SUCCESS;
27381 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterData(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterData *r)
27383 TALLOC_CTX *_mem_save_handle_0;
27384 if (flags & NDR_IN) {
27385 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27386 NDR_PULL_ALLOC(ndr, r->in.handle);
27388 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27389 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27390 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27391 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27392 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
27393 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
27394 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
27395 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.value_name), ndr_get_array_length(ndr, &r->in.value_name));
27397 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
27398 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.value_name, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t), CH_UTF16));
27400 if (flags & NDR_OUT) {
27401 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27403 return NDR_ERR_SUCCESS;
27406 _PUBLIC_ void ndr_print_spoolss_DeletePrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterData *r)
27408 ndr_print_struct(ndr, name, "spoolss_DeletePrinterData");
27409 ndr->depth++;
27410 if (flags & NDR_SET_VALUES) {
27411 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27413 if (flags & NDR_IN) {
27414 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterData");
27415 ndr->depth++;
27416 ndr_print_ptr(ndr, "handle", r->in.handle);
27417 ndr->depth++;
27418 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27419 ndr->depth--;
27420 ndr_print_string(ndr, "value_name", r->in.value_name);
27421 ndr->depth--;
27423 if (flags & NDR_OUT) {
27424 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterData");
27425 ndr->depth++;
27426 ndr_print_WERROR(ndr, "result", r->out.result);
27427 ndr->depth--;
27429 ndr->depth--;
27432 static enum ndr_err_code ndr_push_spoolss_4a(struct ndr_push *ndr, int flags, const struct spoolss_4a *r)
27434 if (flags & NDR_IN) {
27436 if (flags & NDR_OUT) {
27437 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27439 return NDR_ERR_SUCCESS;
27442 static enum ndr_err_code ndr_pull_spoolss_4a(struct ndr_pull *ndr, int flags, struct spoolss_4a *r)
27444 if (flags & NDR_IN) {
27446 if (flags & NDR_OUT) {
27447 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27449 return NDR_ERR_SUCCESS;
27452 _PUBLIC_ void ndr_print_spoolss_4a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4a *r)
27454 ndr_print_struct(ndr, name, "spoolss_4a");
27455 ndr->depth++;
27456 if (flags & NDR_SET_VALUES) {
27457 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27459 if (flags & NDR_IN) {
27460 ndr_print_struct(ndr, "in", "spoolss_4a");
27461 ndr->depth++;
27462 ndr->depth--;
27464 if (flags & NDR_OUT) {
27465 ndr_print_struct(ndr, "out", "spoolss_4a");
27466 ndr->depth++;
27467 ndr_print_WERROR(ndr, "result", r->out.result);
27468 ndr->depth--;
27470 ndr->depth--;
27473 static enum ndr_err_code ndr_push_spoolss_4b(struct ndr_push *ndr, int flags, const struct spoolss_4b *r)
27475 if (flags & NDR_IN) {
27477 if (flags & NDR_OUT) {
27478 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27480 return NDR_ERR_SUCCESS;
27483 static enum ndr_err_code ndr_pull_spoolss_4b(struct ndr_pull *ndr, int flags, struct spoolss_4b *r)
27485 if (flags & NDR_IN) {
27487 if (flags & NDR_OUT) {
27488 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27490 return NDR_ERR_SUCCESS;
27493 _PUBLIC_ void ndr_print_spoolss_4b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4b *r)
27495 ndr_print_struct(ndr, name, "spoolss_4b");
27496 ndr->depth++;
27497 if (flags & NDR_SET_VALUES) {
27498 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27500 if (flags & NDR_IN) {
27501 ndr_print_struct(ndr, "in", "spoolss_4b");
27502 ndr->depth++;
27503 ndr->depth--;
27505 if (flags & NDR_OUT) {
27506 ndr_print_struct(ndr, "out", "spoolss_4b");
27507 ndr->depth++;
27508 ndr_print_WERROR(ndr, "result", r->out.result);
27509 ndr->depth--;
27511 ndr->depth--;
27514 static enum ndr_err_code ndr_push_spoolss_4c(struct ndr_push *ndr, int flags, const struct spoolss_4c *r)
27516 if (flags & NDR_IN) {
27518 if (flags & NDR_OUT) {
27519 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27521 return NDR_ERR_SUCCESS;
27524 static enum ndr_err_code ndr_pull_spoolss_4c(struct ndr_pull *ndr, int flags, struct spoolss_4c *r)
27526 if (flags & NDR_IN) {
27528 if (flags & NDR_OUT) {
27529 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27531 return NDR_ERR_SUCCESS;
27534 _PUBLIC_ void ndr_print_spoolss_4c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4c *r)
27536 ndr_print_struct(ndr, name, "spoolss_4c");
27537 ndr->depth++;
27538 if (flags & NDR_SET_VALUES) {
27539 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27541 if (flags & NDR_IN) {
27542 ndr_print_struct(ndr, "in", "spoolss_4c");
27543 ndr->depth++;
27544 ndr->depth--;
27546 if (flags & NDR_OUT) {
27547 ndr_print_struct(ndr, "out", "spoolss_4c");
27548 ndr->depth++;
27549 ndr_print_WERROR(ndr, "result", r->out.result);
27550 ndr->depth--;
27552 ndr->depth--;
27555 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_SetPrinterDataEx(struct ndr_push *ndr, int flags, const struct _spoolss_SetPrinterDataEx *r)
27557 if (flags & NDR_IN) {
27558 if (r->in.handle == NULL) {
27559 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27561 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27562 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27563 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27564 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27565 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.key_name, ndr_charset_length(r->in.key_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
27566 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
27567 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27568 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
27569 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.value_name, ndr_charset_length(r->in.value_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
27570 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
27571 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
27572 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in._offered));
27574 if (flags & NDR_OUT) {
27575 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27577 return NDR_ERR_SUCCESS;
27580 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_SetPrinterDataEx(struct ndr_push *ndr, int flags, const struct __spoolss_SetPrinterDataEx *r)
27582 if (flags & NDR_IN) {
27583 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
27585 if (flags & NDR_OUT) {
27586 if (r->out.data == NULL) {
27587 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27589 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.data, r->in.type));
27590 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
27592 return NDR_ERR_SUCCESS;
27595 static enum ndr_err_code ndr_pull_spoolss_SetPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinterDataEx *r)
27597 TALLOC_CTX *_mem_save_handle_0;
27598 if (flags & NDR_IN) {
27599 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27600 NDR_PULL_ALLOC(ndr, r->in.handle);
27602 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27603 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27604 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27605 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27606 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
27607 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
27608 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
27609 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.key_name), ndr_get_array_length(ndr, &r->in.key_name));
27611 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
27612 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.key_name, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t), CH_UTF16));
27613 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
27614 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
27615 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
27616 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.value_name), ndr_get_array_length(ndr, &r->in.value_name));
27618 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
27619 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.value_name, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t), CH_UTF16));
27620 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
27622 struct ndr_pull *_ndr_data;
27623 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_data, 4, -1));
27624 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data, &r->in.data, r->in.type));
27625 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
27626 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_data, 4, -1));
27628 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._offered));
27630 if (flags & NDR_OUT) {
27631 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27633 return NDR_ERR_SUCCESS;
27636 _PUBLIC_ void ndr_print_spoolss_SetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinterDataEx *r)
27638 ndr_print_struct(ndr, name, "spoolss_SetPrinterDataEx");
27639 ndr->depth++;
27640 if (flags & NDR_SET_VALUES) {
27641 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27643 if (flags & NDR_IN) {
27644 ndr_print_struct(ndr, "in", "spoolss_SetPrinterDataEx");
27645 ndr->depth++;
27646 ndr_print_ptr(ndr, "handle", r->in.handle);
27647 ndr->depth++;
27648 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27649 ndr->depth--;
27650 ndr_print_string(ndr, "key_name", r->in.key_name);
27651 ndr_print_string(ndr, "value_name", r->in.value_name);
27652 ndr_print_winreg_Type(ndr, "type", r->in.type);
27653 ndr_print_set_switch_value(ndr, &r->in.data, r->in.type);
27654 ndr_print_spoolss_PrinterData(ndr, "data", &r->in.data);
27655 ndr_print_uint32(ndr, "_offered", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_spoolss_PrinterData(&r->in.data, r->in.type, ndr->iconv_convenience, flags):r->in._offered);
27656 ndr->depth--;
27658 if (flags & NDR_OUT) {
27659 ndr_print_struct(ndr, "out", "spoolss_SetPrinterDataEx");
27660 ndr->depth++;
27661 ndr_print_WERROR(ndr, "result", r->out.result);
27662 ndr->depth--;
27664 ndr->depth--;
27667 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_GetPrinterDataEx(struct ndr_push *ndr, int flags, const struct _spoolss_GetPrinterDataEx *r)
27669 if (flags & NDR_IN) {
27670 if (r->in.handle == NULL) {
27671 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27673 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27674 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27675 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27676 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27677 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.key_name, ndr_charset_length(r->in.key_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
27678 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
27679 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27680 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
27681 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.value_name, ndr_charset_length(r->in.value_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
27682 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
27684 if (flags & NDR_OUT) {
27685 if (r->out.type == NULL) {
27686 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27688 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
27689 if (r->out.data == NULL) {
27690 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27692 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.data));
27693 if (r->out.needed == NULL) {
27694 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27696 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
27697 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27699 return NDR_ERR_SUCCESS;
27702 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_GetPrinterDataEx(struct ndr_pull *ndr, int flags, struct _spoolss_GetPrinterDataEx *r)
27704 TALLOC_CTX *_mem_save_handle_0;
27705 TALLOC_CTX *_mem_save_type_0;
27706 TALLOC_CTX *_mem_save_data_0;
27707 TALLOC_CTX *_mem_save_needed_0;
27708 if (flags & NDR_IN) {
27709 ZERO_STRUCT(r->out);
27711 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27712 NDR_PULL_ALLOC(ndr, r->in.handle);
27714 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27715 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27716 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27717 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27718 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
27719 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
27720 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
27721 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.key_name), ndr_get_array_length(ndr, &r->in.key_name));
27723 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
27724 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.key_name, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t), CH_UTF16));
27725 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
27726 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
27727 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
27728 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.value_name), ndr_get_array_length(ndr, &r->in.value_name));
27730 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
27731 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.value_name, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t), CH_UTF16));
27732 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
27733 NDR_PULL_ALLOC(ndr, r->out.type);
27734 ZERO_STRUCTP(r->out.type);
27735 NDR_PULL_ALLOC(ndr, r->out.data);
27736 ZERO_STRUCTP(r->out.data);
27737 NDR_PULL_ALLOC(ndr, r->out.needed);
27738 ZERO_STRUCTP(r->out.needed);
27740 if (flags & NDR_OUT) {
27741 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27742 NDR_PULL_ALLOC(ndr, r->out.type);
27744 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
27745 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
27746 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
27747 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
27748 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27749 NDR_PULL_ALLOC(ndr, r->out.data);
27751 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
27752 NDR_PULL_SET_MEM_CTX(ndr, r->out.data, LIBNDR_FLAG_REF_ALLOC);
27753 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.data));
27754 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
27755 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27756 NDR_PULL_ALLOC(ndr, r->out.needed);
27758 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
27759 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
27760 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
27761 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
27762 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27764 return NDR_ERR_SUCCESS;
27767 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_GetPrinterDataEx(struct ndr_push *ndr, int flags, const struct __spoolss_GetPrinterDataEx *r)
27769 if (flags & NDR_IN) {
27770 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
27772 if (flags & NDR_OUT) {
27773 if (r->out.data == NULL) {
27774 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27776 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.data, r->in.type));
27777 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
27779 return NDR_ERR_SUCCESS;
27782 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_GetPrinterDataEx(struct ndr_pull *ndr, int flags, struct __spoolss_GetPrinterDataEx *r)
27784 TALLOC_CTX *_mem_save_data_0;
27785 if (flags & NDR_IN) {
27786 ZERO_STRUCT(r->out);
27788 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
27789 NDR_PULL_ALLOC(ndr, r->out.data);
27790 ZERO_STRUCTP(r->out.data);
27792 if (flags & NDR_OUT) {
27793 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27794 NDR_PULL_ALLOC(ndr, r->out.data);
27796 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
27797 NDR_PULL_SET_MEM_CTX(ndr, r->out.data, LIBNDR_FLAG_REF_ALLOC);
27798 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.data, r->in.type));
27799 NDR_CHECK(ndr_pull_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
27800 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
27802 return NDR_ERR_SUCCESS;
27805 _PUBLIC_ void ndr_print_spoolss_GetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDataEx *r)
27807 ndr_print_struct(ndr, name, "spoolss_GetPrinterDataEx");
27808 ndr->depth++;
27809 if (flags & NDR_SET_VALUES) {
27810 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27812 if (flags & NDR_IN) {
27813 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDataEx");
27814 ndr->depth++;
27815 ndr_print_ptr(ndr, "handle", r->in.handle);
27816 ndr->depth++;
27817 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27818 ndr->depth--;
27819 ndr_print_string(ndr, "key_name", r->in.key_name);
27820 ndr_print_string(ndr, "value_name", r->in.value_name);
27821 ndr_print_uint32(ndr, "offered", r->in.offered);
27822 ndr->depth--;
27824 if (flags & NDR_OUT) {
27825 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDataEx");
27826 ndr->depth++;
27827 ndr_print_ptr(ndr, "type", r->out.type);
27828 ndr->depth++;
27829 ndr_print_winreg_Type(ndr, "type", *r->out.type);
27830 ndr->depth--;
27831 ndr_print_ptr(ndr, "data", r->out.data);
27832 ndr->depth++;
27833 ndr_print_set_switch_value(ndr, r->out.data, *r->out.type);
27834 ndr_print_spoolss_PrinterData(ndr, "data", r->out.data);
27835 ndr->depth--;
27836 ndr_print_ptr(ndr, "needed", r->out.needed);
27837 ndr->depth++;
27838 ndr_print_uint32(ndr, "needed", *r->out.needed);
27839 ndr->depth--;
27840 ndr_print_WERROR(ndr, "result", r->out.result);
27841 ndr->depth--;
27843 ndr->depth--;
27846 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinterDataEx(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinterDataEx *r)
27848 if (flags & NDR_IN) {
27849 if (r->in.handle == NULL) {
27850 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27852 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27853 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27854 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27855 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27856 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.key_name, ndr_charset_length(r->in.key_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
27857 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
27859 if (flags & NDR_OUT) {
27860 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
27861 if (r->out.needed == NULL) {
27862 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27864 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
27865 if (r->out.count == NULL) {
27866 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27868 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
27869 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27871 return NDR_ERR_SUCCESS;
27874 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinterDataEx(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinterDataEx *r)
27876 TALLOC_CTX *_mem_save_handle_0;
27877 TALLOC_CTX *_mem_save_needed_0;
27878 TALLOC_CTX *_mem_save_count_0;
27879 if (flags & NDR_IN) {
27880 ZERO_STRUCT(r->out);
27882 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27883 NDR_PULL_ALLOC(ndr, r->in.handle);
27885 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27886 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27887 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27888 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27889 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
27890 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
27891 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
27892 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.key_name), ndr_get_array_length(ndr, &r->in.key_name));
27894 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
27895 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.key_name, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t), CH_UTF16));
27896 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
27897 NDR_PULL_ALLOC(ndr, r->out.needed);
27898 ZERO_STRUCTP(r->out.needed);
27899 NDR_PULL_ALLOC(ndr, r->out.count);
27900 ZERO_STRUCTP(r->out.count);
27902 if (flags & NDR_OUT) {
27903 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->out.info));
27904 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27905 NDR_PULL_ALLOC(ndr, r->out.needed);
27907 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
27908 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
27909 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
27910 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
27911 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27912 NDR_PULL_ALLOC(ndr, r->out.count);
27914 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
27915 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
27916 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
27917 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
27918 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27920 return NDR_ERR_SUCCESS;
27923 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinterDataEx(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinterDataEx *r)
27925 uint32_t cntr_info_0;
27926 if (flags & NDR_IN) {
27927 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
27929 if (flags & NDR_OUT) {
27930 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
27931 NDR_CHECK(ndr_push_spoolss_PrinterEnumValues(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
27933 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
27934 NDR_CHECK(ndr_push_spoolss_PrinterEnumValues(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
27937 return NDR_ERR_SUCCESS;
27940 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinterDataEx(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinterDataEx *r)
27942 uint32_t cntr_info_0;
27943 TALLOC_CTX *_mem_save_info_0;
27944 if (flags & NDR_IN) {
27945 ZERO_STRUCT(r->out);
27947 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
27949 if (flags & NDR_OUT) {
27950 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
27951 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
27952 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
27953 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
27954 NDR_CHECK(ndr_pull_spoolss_PrinterEnumValues(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
27956 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
27957 NDR_CHECK(ndr_pull_spoolss_PrinterEnumValues(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
27959 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
27961 return NDR_ERR_SUCCESS;
27964 _PUBLIC_ void ndr_print_spoolss_EnumPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterDataEx *r)
27966 uint32_t cntr_info_2;
27967 ndr_print_struct(ndr, name, "spoolss_EnumPrinterDataEx");
27968 ndr->depth++;
27969 if (flags & NDR_SET_VALUES) {
27970 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27972 if (flags & NDR_IN) {
27973 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterDataEx");
27974 ndr->depth++;
27975 ndr_print_ptr(ndr, "handle", r->in.handle);
27976 ndr->depth++;
27977 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27978 ndr->depth--;
27979 ndr_print_string(ndr, "key_name", r->in.key_name);
27980 ndr_print_uint32(ndr, "offered", r->in.offered);
27981 ndr->depth--;
27983 if (flags & NDR_OUT) {
27984 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterDataEx");
27985 ndr->depth++;
27986 ndr_print_ptr(ndr, "count", r->out.count);
27987 ndr->depth++;
27988 ndr_print_uint32(ndr, "count", *r->out.count);
27989 ndr->depth--;
27990 ndr_print_ptr(ndr, "info", r->out.info);
27991 ndr->depth++;
27992 ndr_print_ptr(ndr, "info", *r->out.info);
27993 ndr->depth++;
27994 if (*r->out.info) {
27995 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
27996 ndr->depth++;
27997 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
27998 char *idx_2=NULL;
27999 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
28000 ndr_print_spoolss_PrinterEnumValues(ndr, "info", &(*r->out.info)[cntr_info_2]);
28001 free(idx_2);
28004 ndr->depth--;
28006 ndr->depth--;
28007 ndr->depth--;
28008 ndr_print_ptr(ndr, "needed", r->out.needed);
28009 ndr->depth++;
28010 ndr_print_uint32(ndr, "needed", *r->out.needed);
28011 ndr->depth--;
28012 ndr_print_WERROR(ndr, "result", r->out.result);
28013 ndr->depth--;
28015 ndr->depth--;
28018 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterKey(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterKey *r)
28020 if (flags & NDR_IN) {
28021 if (r->in.handle == NULL) {
28022 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28024 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28025 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28026 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28027 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28028 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.key_name, ndr_charset_length(r->in.key_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
28029 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
28031 if (flags & NDR_OUT) {
28032 if (r->out._ndr_size == NULL) {
28033 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28035 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out._ndr_size));
28036 if (r->out.key_buffer == NULL) {
28037 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28040 struct ndr_push *_ndr_key_buffer;
28041 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_key_buffer, 0, *r->out._ndr_size * 2));
28042 NDR_CHECK(ndr_push_set_switch_value(_ndr_key_buffer, r->out.key_buffer, *r->out._ndr_size));
28043 NDR_CHECK(ndr_push_spoolss_KeyNames(_ndr_key_buffer, NDR_SCALARS|NDR_BUFFERS, r->out.key_buffer));
28044 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_key_buffer, 0, *r->out._ndr_size * 2));
28046 if (r->out.needed == NULL) {
28047 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28049 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
28050 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28052 return NDR_ERR_SUCCESS;
28055 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterKey(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterKey *r)
28057 TALLOC_CTX *_mem_save_handle_0;
28058 TALLOC_CTX *_mem_save__ndr_size_0;
28059 TALLOC_CTX *_mem_save_key_buffer_0;
28060 TALLOC_CTX *_mem_save_needed_0;
28061 if (flags & NDR_IN) {
28062 ZERO_STRUCT(r->out);
28064 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28065 NDR_PULL_ALLOC(ndr, r->in.handle);
28067 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28068 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
28069 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28070 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28071 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
28072 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
28073 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
28074 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.key_name), ndr_get_array_length(ndr, &r->in.key_name));
28076 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
28077 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.key_name, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t), CH_UTF16));
28078 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
28079 NDR_PULL_ALLOC(ndr, r->out._ndr_size);
28080 ZERO_STRUCTP(r->out._ndr_size);
28081 NDR_PULL_ALLOC(ndr, r->out.key_buffer);
28082 ZERO_STRUCTP(r->out.key_buffer);
28083 NDR_PULL_ALLOC(ndr, r->out.needed);
28084 ZERO_STRUCTP(r->out.needed);
28086 if (flags & NDR_OUT) {
28087 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28088 NDR_PULL_ALLOC(ndr, r->out._ndr_size);
28090 _mem_save__ndr_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
28091 NDR_PULL_SET_MEM_CTX(ndr, r->out._ndr_size, LIBNDR_FLAG_REF_ALLOC);
28092 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out._ndr_size));
28093 NDR_PULL_SET_MEM_CTX(ndr, _mem_save__ndr_size_0, LIBNDR_FLAG_REF_ALLOC);
28094 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28095 NDR_PULL_ALLOC(ndr, r->out.key_buffer);
28097 _mem_save_key_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
28098 NDR_PULL_SET_MEM_CTX(ndr, r->out.key_buffer, LIBNDR_FLAG_REF_ALLOC);
28100 struct ndr_pull *_ndr_key_buffer;
28101 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_key_buffer, 0, *r->out._ndr_size * 2));
28102 NDR_CHECK(ndr_pull_set_switch_value(_ndr_key_buffer, r->out.key_buffer, *r->out._ndr_size));
28103 NDR_CHECK(ndr_pull_spoolss_KeyNames(_ndr_key_buffer, NDR_SCALARS|NDR_BUFFERS, r->out.key_buffer));
28104 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_key_buffer, 0, *r->out._ndr_size * 2));
28106 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_key_buffer_0, LIBNDR_FLAG_REF_ALLOC);
28107 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28108 NDR_PULL_ALLOC(ndr, r->out.needed);
28110 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
28111 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
28112 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
28113 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
28114 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28116 return NDR_ERR_SUCCESS;
28119 _PUBLIC_ void ndr_print_spoolss_EnumPrinterKey(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterKey *r)
28121 ndr_print_struct(ndr, name, "spoolss_EnumPrinterKey");
28122 ndr->depth++;
28123 if (flags & NDR_SET_VALUES) {
28124 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28126 if (flags & NDR_IN) {
28127 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterKey");
28128 ndr->depth++;
28129 ndr_print_ptr(ndr, "handle", r->in.handle);
28130 ndr->depth++;
28131 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28132 ndr->depth--;
28133 ndr_print_string(ndr, "key_name", r->in.key_name);
28134 ndr_print_uint32(ndr, "offered", r->in.offered);
28135 ndr->depth--;
28137 if (flags & NDR_OUT) {
28138 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterKey");
28139 ndr->depth++;
28140 ndr_print_ptr(ndr, "_ndr_size", r->out._ndr_size);
28141 ndr->depth++;
28142 ndr_print_uint32(ndr, "_ndr_size", *r->out._ndr_size);
28143 ndr->depth--;
28144 ndr_print_ptr(ndr, "key_buffer", r->out.key_buffer);
28145 ndr->depth++;
28146 ndr_print_set_switch_value(ndr, r->out.key_buffer, *r->out._ndr_size);
28147 ndr_print_spoolss_KeyNames(ndr, "key_buffer", r->out.key_buffer);
28148 ndr->depth--;
28149 ndr_print_ptr(ndr, "needed", r->out.needed);
28150 ndr->depth++;
28151 ndr_print_uint32(ndr, "needed", *r->out.needed);
28152 ndr->depth--;
28153 ndr_print_WERROR(ndr, "result", r->out.result);
28154 ndr->depth--;
28156 ndr->depth--;
28159 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDataEx *r)
28161 if (flags & NDR_IN) {
28162 if (r->in.handle == NULL) {
28163 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28165 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28166 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28167 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28168 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28169 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.key_name, ndr_charset_length(r->in.key_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
28170 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
28171 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28172 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
28173 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.value_name, ndr_charset_length(r->in.value_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
28175 if (flags & NDR_OUT) {
28176 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28178 return NDR_ERR_SUCCESS;
28181 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDataEx *r)
28183 TALLOC_CTX *_mem_save_handle_0;
28184 if (flags & NDR_IN) {
28185 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28186 NDR_PULL_ALLOC(ndr, r->in.handle);
28188 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28189 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
28190 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28191 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28192 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
28193 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
28194 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
28195 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.key_name), ndr_get_array_length(ndr, &r->in.key_name));
28197 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
28198 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.key_name, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t), CH_UTF16));
28199 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
28200 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
28201 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
28202 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.value_name), ndr_get_array_length(ndr, &r->in.value_name));
28204 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
28205 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.value_name, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t), CH_UTF16));
28207 if (flags & NDR_OUT) {
28208 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28210 return NDR_ERR_SUCCESS;
28213 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDataEx *r)
28215 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDataEx");
28216 ndr->depth++;
28217 if (flags & NDR_SET_VALUES) {
28218 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28220 if (flags & NDR_IN) {
28221 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDataEx");
28222 ndr->depth++;
28223 ndr_print_ptr(ndr, "handle", r->in.handle);
28224 ndr->depth++;
28225 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28226 ndr->depth--;
28227 ndr_print_string(ndr, "key_name", r->in.key_name);
28228 ndr_print_string(ndr, "value_name", r->in.value_name);
28229 ndr->depth--;
28231 if (flags & NDR_OUT) {
28232 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDataEx");
28233 ndr->depth++;
28234 ndr_print_WERROR(ndr, "result", r->out.result);
28235 ndr->depth--;
28237 ndr->depth--;
28240 static enum ndr_err_code ndr_push_spoolss_DeletePrinterKey(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterKey *r)
28242 if (flags & NDR_IN) {
28243 if (r->in.handle == NULL) {
28244 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28246 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28247 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28248 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28249 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28250 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.key_name, ndr_charset_length(r->in.key_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
28252 if (flags & NDR_OUT) {
28253 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28255 return NDR_ERR_SUCCESS;
28258 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterKey(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterKey *r)
28260 TALLOC_CTX *_mem_save_handle_0;
28261 if (flags & NDR_IN) {
28262 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28263 NDR_PULL_ALLOC(ndr, r->in.handle);
28265 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28266 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
28267 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28268 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28269 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
28270 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
28271 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
28272 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.key_name), ndr_get_array_length(ndr, &r->in.key_name));
28274 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
28275 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.key_name, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t), CH_UTF16));
28277 if (flags & NDR_OUT) {
28278 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28280 return NDR_ERR_SUCCESS;
28283 _PUBLIC_ void ndr_print_spoolss_DeletePrinterKey(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterKey *r)
28285 ndr_print_struct(ndr, name, "spoolss_DeletePrinterKey");
28286 ndr->depth++;
28287 if (flags & NDR_SET_VALUES) {
28288 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28290 if (flags & NDR_IN) {
28291 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterKey");
28292 ndr->depth++;
28293 ndr_print_ptr(ndr, "handle", r->in.handle);
28294 ndr->depth++;
28295 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28296 ndr->depth--;
28297 ndr_print_string(ndr, "key_name", r->in.key_name);
28298 ndr->depth--;
28300 if (flags & NDR_OUT) {
28301 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterKey");
28302 ndr->depth++;
28303 ndr_print_WERROR(ndr, "result", r->out.result);
28304 ndr->depth--;
28306 ndr->depth--;
28309 static enum ndr_err_code ndr_push_spoolss_53(struct ndr_push *ndr, int flags, const struct spoolss_53 *r)
28311 if (flags & NDR_IN) {
28313 if (flags & NDR_OUT) {
28314 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28316 return NDR_ERR_SUCCESS;
28319 static enum ndr_err_code ndr_pull_spoolss_53(struct ndr_pull *ndr, int flags, struct spoolss_53 *r)
28321 if (flags & NDR_IN) {
28323 if (flags & NDR_OUT) {
28324 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28326 return NDR_ERR_SUCCESS;
28329 _PUBLIC_ void ndr_print_spoolss_53(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_53 *r)
28331 ndr_print_struct(ndr, name, "spoolss_53");
28332 ndr->depth++;
28333 if (flags & NDR_SET_VALUES) {
28334 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28336 if (flags & NDR_IN) {
28337 ndr_print_struct(ndr, "in", "spoolss_53");
28338 ndr->depth++;
28339 ndr->depth--;
28341 if (flags & NDR_OUT) {
28342 ndr_print_struct(ndr, "out", "spoolss_53");
28343 ndr->depth++;
28344 ndr_print_WERROR(ndr, "result", r->out.result);
28345 ndr->depth--;
28347 ndr->depth--;
28350 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDriverEx(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDriverEx *r)
28352 if (flags & NDR_IN) {
28353 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
28354 if (r->in.server) {
28355 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
28356 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28357 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
28358 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
28360 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
28361 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28362 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
28363 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
28364 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
28365 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28366 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
28367 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver, ndr_charset_length(r->in.driver, CH_UTF16), sizeof(uint16_t), CH_UTF16));
28368 NDR_CHECK(ndr_push_spoolss_DeleteDriverFlags(ndr, NDR_SCALARS, r->in.delete_flags));
28369 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.version));
28371 if (flags & NDR_OUT) {
28372 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28374 return NDR_ERR_SUCCESS;
28377 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDriverEx(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDriverEx *r)
28379 uint32_t _ptr_server;
28380 TALLOC_CTX *_mem_save_server_0;
28381 if (flags & NDR_IN) {
28382 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
28383 if (_ptr_server) {
28384 NDR_PULL_ALLOC(ndr, r->in.server);
28385 } else {
28386 r->in.server = NULL;
28388 if (r->in.server) {
28389 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
28390 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
28391 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
28392 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
28393 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
28394 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.server), ndr_get_array_length(ndr, &r->in.server));
28396 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
28397 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
28398 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
28400 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
28401 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
28402 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
28403 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.architecture), ndr_get_array_length(ndr, &r->in.architecture));
28405 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
28406 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
28407 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver));
28408 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.driver));
28409 if (ndr_get_array_length(ndr, &r->in.driver) > ndr_get_array_size(ndr, &r->in.driver)) {
28410 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.driver), ndr_get_array_length(ndr, &r->in.driver));
28412 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t)));
28413 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t), CH_UTF16));
28414 NDR_CHECK(ndr_pull_spoolss_DeleteDriverFlags(ndr, NDR_SCALARS, &r->in.delete_flags));
28415 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.version));
28417 if (flags & NDR_OUT) {
28418 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28420 return NDR_ERR_SUCCESS;
28423 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDriverEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDriverEx *r)
28425 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDriverEx");
28426 ndr->depth++;
28427 if (flags & NDR_SET_VALUES) {
28428 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28430 if (flags & NDR_IN) {
28431 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDriverEx");
28432 ndr->depth++;
28433 ndr_print_ptr(ndr, "server", r->in.server);
28434 ndr->depth++;
28435 if (r->in.server) {
28436 ndr_print_string(ndr, "server", r->in.server);
28438 ndr->depth--;
28439 ndr_print_string(ndr, "architecture", r->in.architecture);
28440 ndr_print_string(ndr, "driver", r->in.driver);
28441 ndr_print_spoolss_DeleteDriverFlags(ndr, "delete_flags", r->in.delete_flags);
28442 ndr_print_uint32(ndr, "version", r->in.version);
28443 ndr->depth--;
28445 if (flags & NDR_OUT) {
28446 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDriverEx");
28447 ndr->depth++;
28448 ndr_print_WERROR(ndr, "result", r->out.result);
28449 ndr->depth--;
28451 ndr->depth--;
28454 static enum ndr_err_code ndr_push_spoolss_55(struct ndr_push *ndr, int flags, const struct spoolss_55 *r)
28456 if (flags & NDR_IN) {
28458 if (flags & NDR_OUT) {
28459 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28461 return NDR_ERR_SUCCESS;
28464 static enum ndr_err_code ndr_pull_spoolss_55(struct ndr_pull *ndr, int flags, struct spoolss_55 *r)
28466 if (flags & NDR_IN) {
28468 if (flags & NDR_OUT) {
28469 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28471 return NDR_ERR_SUCCESS;
28474 _PUBLIC_ void ndr_print_spoolss_55(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_55 *r)
28476 ndr_print_struct(ndr, name, "spoolss_55");
28477 ndr->depth++;
28478 if (flags & NDR_SET_VALUES) {
28479 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28481 if (flags & NDR_IN) {
28482 ndr_print_struct(ndr, "in", "spoolss_55");
28483 ndr->depth++;
28484 ndr->depth--;
28486 if (flags & NDR_OUT) {
28487 ndr_print_struct(ndr, "out", "spoolss_55");
28488 ndr->depth++;
28489 ndr_print_WERROR(ndr, "result", r->out.result);
28490 ndr->depth--;
28492 ndr->depth--;
28495 static enum ndr_err_code ndr_push_spoolss_56(struct ndr_push *ndr, int flags, const struct spoolss_56 *r)
28497 if (flags & NDR_IN) {
28499 if (flags & NDR_OUT) {
28500 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28502 return NDR_ERR_SUCCESS;
28505 static enum ndr_err_code ndr_pull_spoolss_56(struct ndr_pull *ndr, int flags, struct spoolss_56 *r)
28507 if (flags & NDR_IN) {
28509 if (flags & NDR_OUT) {
28510 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28512 return NDR_ERR_SUCCESS;
28515 _PUBLIC_ void ndr_print_spoolss_56(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_56 *r)
28517 ndr_print_struct(ndr, name, "spoolss_56");
28518 ndr->depth++;
28519 if (flags & NDR_SET_VALUES) {
28520 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28522 if (flags & NDR_IN) {
28523 ndr_print_struct(ndr, "in", "spoolss_56");
28524 ndr->depth++;
28525 ndr->depth--;
28527 if (flags & NDR_OUT) {
28528 ndr_print_struct(ndr, "out", "spoolss_56");
28529 ndr->depth++;
28530 ndr_print_WERROR(ndr, "result", r->out.result);
28531 ndr->depth--;
28533 ndr->depth--;
28536 static enum ndr_err_code ndr_push_spoolss_57(struct ndr_push *ndr, int flags, const struct spoolss_57 *r)
28538 if (flags & NDR_IN) {
28540 if (flags & NDR_OUT) {
28541 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28543 return NDR_ERR_SUCCESS;
28546 static enum ndr_err_code ndr_pull_spoolss_57(struct ndr_pull *ndr, int flags, struct spoolss_57 *r)
28548 if (flags & NDR_IN) {
28550 if (flags & NDR_OUT) {
28551 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28553 return NDR_ERR_SUCCESS;
28556 _PUBLIC_ void ndr_print_spoolss_57(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_57 *r)
28558 ndr_print_struct(ndr, name, "spoolss_57");
28559 ndr->depth++;
28560 if (flags & NDR_SET_VALUES) {
28561 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28563 if (flags & NDR_IN) {
28564 ndr_print_struct(ndr, "in", "spoolss_57");
28565 ndr->depth++;
28566 ndr->depth--;
28568 if (flags & NDR_OUT) {
28569 ndr_print_struct(ndr, "out", "spoolss_57");
28570 ndr->depth++;
28571 ndr_print_WERROR(ndr, "result", r->out.result);
28572 ndr->depth--;
28574 ndr->depth--;
28577 static enum ndr_err_code ndr_push_spoolss_XcvData(struct ndr_push *ndr, int flags, const struct spoolss_XcvData *r)
28579 if (flags & NDR_IN) {
28580 if (r->in.handle == NULL) {
28581 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28583 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28584 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.function_name, CH_UTF16)));
28585 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28586 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.function_name, CH_UTF16)));
28587 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.function_name, ndr_charset_length(r->in.function_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
28588 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.in_data));
28589 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.in_data.length));
28590 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.out_data_size));
28591 if (r->in.status_code == NULL) {
28592 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28594 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.status_code));
28596 if (flags & NDR_OUT) {
28597 if (r->out.out_data == NULL) {
28598 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28600 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.out_data_size));
28601 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.out_data, r->in.out_data_size));
28602 if (r->out.needed == NULL) {
28603 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28605 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
28606 if (r->out.status_code == NULL) {
28607 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28609 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.status_code));
28610 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28612 return NDR_ERR_SUCCESS;
28615 static enum ndr_err_code ndr_pull_spoolss_XcvData(struct ndr_pull *ndr, int flags, struct spoolss_XcvData *r)
28617 TALLOC_CTX *_mem_save_handle_0;
28618 TALLOC_CTX *_mem_save_needed_0;
28619 TALLOC_CTX *_mem_save_status_code_0;
28620 if (flags & NDR_IN) {
28621 ZERO_STRUCT(r->out);
28623 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28624 NDR_PULL_ALLOC(ndr, r->in.handle);
28626 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28627 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
28628 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28629 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28630 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.function_name));
28631 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.function_name));
28632 if (ndr_get_array_length(ndr, &r->in.function_name) > ndr_get_array_size(ndr, &r->in.function_name)) {
28633 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.function_name), ndr_get_array_length(ndr, &r->in.function_name));
28635 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.function_name), sizeof(uint16_t)));
28636 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.function_name, ndr_get_array_length(ndr, &r->in.function_name), sizeof(uint16_t), CH_UTF16));
28637 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->in.in_data));
28638 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._in_data_length));
28639 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.out_data_size));
28640 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28641 NDR_PULL_ALLOC(ndr, r->in.status_code);
28643 _mem_save_status_code_0 = NDR_PULL_GET_MEM_CTX(ndr);
28644 NDR_PULL_SET_MEM_CTX(ndr, r->in.status_code, LIBNDR_FLAG_REF_ALLOC);
28645 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.status_code));
28646 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_code_0, LIBNDR_FLAG_REF_ALLOC);
28647 NDR_PULL_ALLOC_N(ndr, r->out.out_data, r->in.out_data_size);
28648 memset(r->out.out_data, 0, (r->in.out_data_size) * sizeof(*r->out.out_data));
28649 NDR_PULL_ALLOC(ndr, r->out.needed);
28650 ZERO_STRUCTP(r->out.needed);
28651 NDR_PULL_ALLOC(ndr, r->out.status_code);
28652 *r->out.status_code = *r->in.status_code;
28654 if (flags & NDR_OUT) {
28655 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.out_data));
28656 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28657 NDR_PULL_ALLOC_N(ndr, r->out.out_data, ndr_get_array_size(ndr, &r->out.out_data));
28659 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.out_data, ndr_get_array_size(ndr, &r->out.out_data)));
28660 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28661 NDR_PULL_ALLOC(ndr, r->out.needed);
28663 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
28664 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
28665 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
28666 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
28667 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28668 NDR_PULL_ALLOC(ndr, r->out.status_code);
28670 _mem_save_status_code_0 = NDR_PULL_GET_MEM_CTX(ndr);
28671 NDR_PULL_SET_MEM_CTX(ndr, r->out.status_code, LIBNDR_FLAG_REF_ALLOC);
28672 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.status_code));
28673 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_code_0, LIBNDR_FLAG_REF_ALLOC);
28674 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28675 if (r->out.out_data) {
28676 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.out_data, r->in.out_data_size));
28679 return NDR_ERR_SUCCESS;
28682 _PUBLIC_ void ndr_print_spoolss_XcvData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_XcvData *r)
28684 ndr_print_struct(ndr, name, "spoolss_XcvData");
28685 ndr->depth++;
28686 if (flags & NDR_SET_VALUES) {
28687 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28689 if (flags & NDR_IN) {
28690 ndr_print_struct(ndr, "in", "spoolss_XcvData");
28691 ndr->depth++;
28692 ndr_print_ptr(ndr, "handle", r->in.handle);
28693 ndr->depth++;
28694 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28695 ndr->depth--;
28696 ndr_print_string(ndr, "function_name", r->in.function_name);
28697 ndr_print_DATA_BLOB(ndr, "in_data", r->in.in_data);
28698 ndr_print_uint32(ndr, "_in_data_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->in.in_data.length:r->in._in_data_length);
28699 ndr_print_uint32(ndr, "out_data_size", r->in.out_data_size);
28700 ndr_print_ptr(ndr, "status_code", r->in.status_code);
28701 ndr->depth++;
28702 ndr_print_uint32(ndr, "status_code", *r->in.status_code);
28703 ndr->depth--;
28704 ndr->depth--;
28706 if (flags & NDR_OUT) {
28707 ndr_print_struct(ndr, "out", "spoolss_XcvData");
28708 ndr->depth++;
28709 ndr_print_ptr(ndr, "out_data", r->out.out_data);
28710 ndr->depth++;
28711 ndr_print_array_uint8(ndr, "out_data", r->out.out_data, r->in.out_data_size);
28712 ndr->depth--;
28713 ndr_print_ptr(ndr, "needed", r->out.needed);
28714 ndr->depth++;
28715 ndr_print_uint32(ndr, "needed", *r->out.needed);
28716 ndr->depth--;
28717 ndr_print_ptr(ndr, "status_code", r->out.status_code);
28718 ndr->depth++;
28719 ndr_print_uint32(ndr, "status_code", *r->out.status_code);
28720 ndr->depth--;
28721 ndr_print_WERROR(ndr, "result", r->out.result);
28722 ndr->depth--;
28724 ndr->depth--;
28727 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_AddPrinterDriverEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterDriverEx *r)
28729 if (flags & NDR_IN) {
28730 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
28731 if (r->in.servername) {
28732 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
28733 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28734 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
28735 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
28737 if (r->in.info_ctr == NULL) {
28738 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28740 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
28741 NDR_CHECK(ndr_push_spoolss_AddPrinterDriverExFlags(ndr, NDR_SCALARS, r->in.flags));
28743 if (flags & NDR_OUT) {
28744 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28746 return NDR_ERR_SUCCESS;
28749 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_AddPrinterDriverEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterDriverEx *r)
28751 uint32_t _ptr_servername;
28752 TALLOC_CTX *_mem_save_servername_0;
28753 TALLOC_CTX *_mem_save_info_ctr_0;
28754 if (flags & NDR_IN) {
28755 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
28756 if (_ptr_servername) {
28757 NDR_PULL_ALLOC(ndr, r->in.servername);
28758 } else {
28759 r->in.servername = NULL;
28761 if (r->in.servername) {
28762 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
28763 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
28764 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
28765 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
28766 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
28767 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.servername), ndr_get_array_length(ndr, &r->in.servername));
28769 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
28770 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
28771 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
28773 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28774 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
28776 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
28777 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
28778 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
28779 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
28780 NDR_CHECK(ndr_pull_spoolss_AddPrinterDriverExFlags(ndr, NDR_SCALARS, &r->in.flags));
28782 if (flags & NDR_OUT) {
28783 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28785 return NDR_ERR_SUCCESS;
28788 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriverEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterDriverEx *r)
28790 ndr_print_struct(ndr, name, "spoolss_AddPrinterDriverEx");
28791 ndr->depth++;
28792 if (flags & NDR_SET_VALUES) {
28793 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28795 if (flags & NDR_IN) {
28796 ndr_print_struct(ndr, "in", "spoolss_AddPrinterDriverEx");
28797 ndr->depth++;
28798 ndr_print_ptr(ndr, "servername", r->in.servername);
28799 ndr->depth++;
28800 if (r->in.servername) {
28801 ndr_print_string(ndr, "servername", r->in.servername);
28803 ndr->depth--;
28804 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
28805 ndr->depth++;
28806 ndr_print_spoolss_AddDriverInfoCtr(ndr, "info_ctr", r->in.info_ctr);
28807 ndr->depth--;
28808 ndr_print_spoolss_AddPrinterDriverExFlags(ndr, "flags", r->in.flags);
28809 ndr->depth--;
28811 if (flags & NDR_OUT) {
28812 ndr_print_struct(ndr, "out", "spoolss_AddPrinterDriverEx");
28813 ndr->depth++;
28814 ndr_print_WERROR(ndr, "result", r->out.result);
28815 ndr->depth--;
28817 ndr->depth--;
28820 static enum ndr_err_code ndr_push_spoolss_5a(struct ndr_push *ndr, int flags, const struct spoolss_5a *r)
28822 if (flags & NDR_IN) {
28824 if (flags & NDR_OUT) {
28825 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28827 return NDR_ERR_SUCCESS;
28830 static enum ndr_err_code ndr_pull_spoolss_5a(struct ndr_pull *ndr, int flags, struct spoolss_5a *r)
28832 if (flags & NDR_IN) {
28834 if (flags & NDR_OUT) {
28835 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28837 return NDR_ERR_SUCCESS;
28840 _PUBLIC_ void ndr_print_spoolss_5a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5a *r)
28842 ndr_print_struct(ndr, name, "spoolss_5a");
28843 ndr->depth++;
28844 if (flags & NDR_SET_VALUES) {
28845 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28847 if (flags & NDR_IN) {
28848 ndr_print_struct(ndr, "in", "spoolss_5a");
28849 ndr->depth++;
28850 ndr->depth--;
28852 if (flags & NDR_OUT) {
28853 ndr_print_struct(ndr, "out", "spoolss_5a");
28854 ndr->depth++;
28855 ndr_print_WERROR(ndr, "result", r->out.result);
28856 ndr->depth--;
28858 ndr->depth--;
28861 static enum ndr_err_code ndr_push_spoolss_5b(struct ndr_push *ndr, int flags, const struct spoolss_5b *r)
28863 if (flags & NDR_IN) {
28865 if (flags & NDR_OUT) {
28866 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28868 return NDR_ERR_SUCCESS;
28871 static enum ndr_err_code ndr_pull_spoolss_5b(struct ndr_pull *ndr, int flags, struct spoolss_5b *r)
28873 if (flags & NDR_IN) {
28875 if (flags & NDR_OUT) {
28876 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28878 return NDR_ERR_SUCCESS;
28881 _PUBLIC_ void ndr_print_spoolss_5b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5b *r)
28883 ndr_print_struct(ndr, name, "spoolss_5b");
28884 ndr->depth++;
28885 if (flags & NDR_SET_VALUES) {
28886 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28888 if (flags & NDR_IN) {
28889 ndr_print_struct(ndr, "in", "spoolss_5b");
28890 ndr->depth++;
28891 ndr->depth--;
28893 if (flags & NDR_OUT) {
28894 ndr_print_struct(ndr, "out", "spoolss_5b");
28895 ndr->depth++;
28896 ndr_print_WERROR(ndr, "result", r->out.result);
28897 ndr->depth--;
28899 ndr->depth--;
28902 static enum ndr_err_code ndr_push_spoolss_5c(struct ndr_push *ndr, int flags, const struct spoolss_5c *r)
28904 if (flags & NDR_IN) {
28906 if (flags & NDR_OUT) {
28907 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28909 return NDR_ERR_SUCCESS;
28912 static enum ndr_err_code ndr_pull_spoolss_5c(struct ndr_pull *ndr, int flags, struct spoolss_5c *r)
28914 if (flags & NDR_IN) {
28916 if (flags & NDR_OUT) {
28917 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28919 return NDR_ERR_SUCCESS;
28922 _PUBLIC_ void ndr_print_spoolss_5c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5c *r)
28924 ndr_print_struct(ndr, name, "spoolss_5c");
28925 ndr->depth++;
28926 if (flags & NDR_SET_VALUES) {
28927 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28929 if (flags & NDR_IN) {
28930 ndr_print_struct(ndr, "in", "spoolss_5c");
28931 ndr->depth++;
28932 ndr->depth--;
28934 if (flags & NDR_OUT) {
28935 ndr_print_struct(ndr, "out", "spoolss_5c");
28936 ndr->depth++;
28937 ndr_print_WERROR(ndr, "result", r->out.result);
28938 ndr->depth--;
28940 ndr->depth--;
28943 static enum ndr_err_code ndr_push_spoolss_5d(struct ndr_push *ndr, int flags, const struct spoolss_5d *r)
28945 if (flags & NDR_IN) {
28947 if (flags & NDR_OUT) {
28948 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28950 return NDR_ERR_SUCCESS;
28953 static enum ndr_err_code ndr_pull_spoolss_5d(struct ndr_pull *ndr, int flags, struct spoolss_5d *r)
28955 if (flags & NDR_IN) {
28957 if (flags & NDR_OUT) {
28958 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28960 return NDR_ERR_SUCCESS;
28963 _PUBLIC_ void ndr_print_spoolss_5d(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5d *r)
28965 ndr_print_struct(ndr, name, "spoolss_5d");
28966 ndr->depth++;
28967 if (flags & NDR_SET_VALUES) {
28968 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28970 if (flags & NDR_IN) {
28971 ndr_print_struct(ndr, "in", "spoolss_5d");
28972 ndr->depth++;
28973 ndr->depth--;
28975 if (flags & NDR_OUT) {
28976 ndr_print_struct(ndr, "out", "spoolss_5d");
28977 ndr->depth++;
28978 ndr_print_WERROR(ndr, "result", r->out.result);
28979 ndr->depth--;
28981 ndr->depth--;
28984 static enum ndr_err_code ndr_push_spoolss_5e(struct ndr_push *ndr, int flags, const struct spoolss_5e *r)
28986 if (flags & NDR_IN) {
28988 if (flags & NDR_OUT) {
28989 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28991 return NDR_ERR_SUCCESS;
28994 static enum ndr_err_code ndr_pull_spoolss_5e(struct ndr_pull *ndr, int flags, struct spoolss_5e *r)
28996 if (flags & NDR_IN) {
28998 if (flags & NDR_OUT) {
28999 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29001 return NDR_ERR_SUCCESS;
29004 _PUBLIC_ void ndr_print_spoolss_5e(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5e *r)
29006 ndr_print_struct(ndr, name, "spoolss_5e");
29007 ndr->depth++;
29008 if (flags & NDR_SET_VALUES) {
29009 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29011 if (flags & NDR_IN) {
29012 ndr_print_struct(ndr, "in", "spoolss_5e");
29013 ndr->depth++;
29014 ndr->depth--;
29016 if (flags & NDR_OUT) {
29017 ndr_print_struct(ndr, "out", "spoolss_5e");
29018 ndr->depth++;
29019 ndr_print_WERROR(ndr, "result", r->out.result);
29020 ndr->depth--;
29022 ndr->depth--;
29025 static enum ndr_err_code ndr_push_spoolss_5f(struct ndr_push *ndr, int flags, const struct spoolss_5f *r)
29027 if (flags & NDR_IN) {
29029 if (flags & NDR_OUT) {
29030 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29032 return NDR_ERR_SUCCESS;
29035 static enum ndr_err_code ndr_pull_spoolss_5f(struct ndr_pull *ndr, int flags, struct spoolss_5f *r)
29037 if (flags & NDR_IN) {
29039 if (flags & NDR_OUT) {
29040 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29042 return NDR_ERR_SUCCESS;
29045 _PUBLIC_ void ndr_print_spoolss_5f(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5f *r)
29047 ndr_print_struct(ndr, name, "spoolss_5f");
29048 ndr->depth++;
29049 if (flags & NDR_SET_VALUES) {
29050 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29052 if (flags & NDR_IN) {
29053 ndr_print_struct(ndr, "in", "spoolss_5f");
29054 ndr->depth++;
29055 ndr->depth--;
29057 if (flags & NDR_OUT) {
29058 ndr_print_struct(ndr, "out", "spoolss_5f");
29059 ndr->depth++;
29060 ndr_print_WERROR(ndr, "result", r->out.result);
29061 ndr->depth--;
29063 ndr->depth--;
29066 static enum ndr_err_code ndr_push_spoolss_60(struct ndr_push *ndr, int flags, const struct spoolss_60 *r)
29068 if (flags & NDR_IN) {
29070 if (flags & NDR_OUT) {
29071 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29073 return NDR_ERR_SUCCESS;
29076 static enum ndr_err_code ndr_pull_spoolss_60(struct ndr_pull *ndr, int flags, struct spoolss_60 *r)
29078 if (flags & NDR_IN) {
29080 if (flags & NDR_OUT) {
29081 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29083 return NDR_ERR_SUCCESS;
29086 _PUBLIC_ void ndr_print_spoolss_60(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_60 *r)
29088 ndr_print_struct(ndr, name, "spoolss_60");
29089 ndr->depth++;
29090 if (flags & NDR_SET_VALUES) {
29091 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29093 if (flags & NDR_IN) {
29094 ndr_print_struct(ndr, "in", "spoolss_60");
29095 ndr->depth++;
29096 ndr->depth--;
29098 if (flags & NDR_OUT) {
29099 ndr_print_struct(ndr, "out", "spoolss_60");
29100 ndr->depth++;
29101 ndr_print_WERROR(ndr, "result", r->out.result);
29102 ndr->depth--;
29104 ndr->depth--;
29107 static enum ndr_err_code ndr_push_spoolss_61(struct ndr_push *ndr, int flags, const struct spoolss_61 *r)
29109 if (flags & NDR_IN) {
29111 if (flags & NDR_OUT) {
29112 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29114 return NDR_ERR_SUCCESS;
29117 static enum ndr_err_code ndr_pull_spoolss_61(struct ndr_pull *ndr, int flags, struct spoolss_61 *r)
29119 if (flags & NDR_IN) {
29121 if (flags & NDR_OUT) {
29122 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29124 return NDR_ERR_SUCCESS;
29127 _PUBLIC_ void ndr_print_spoolss_61(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_61 *r)
29129 ndr_print_struct(ndr, name, "spoolss_61");
29130 ndr->depth++;
29131 if (flags & NDR_SET_VALUES) {
29132 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29134 if (flags & NDR_IN) {
29135 ndr_print_struct(ndr, "in", "spoolss_61");
29136 ndr->depth++;
29137 ndr->depth--;
29139 if (flags & NDR_OUT) {
29140 ndr_print_struct(ndr, "out", "spoolss_61");
29141 ndr->depth++;
29142 ndr_print_WERROR(ndr, "result", r->out.result);
29143 ndr->depth--;
29145 ndr->depth--;
29148 static enum ndr_err_code ndr_push_spoolss_62(struct ndr_push *ndr, int flags, const struct spoolss_62 *r)
29150 if (flags & NDR_IN) {
29152 if (flags & NDR_OUT) {
29153 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29155 return NDR_ERR_SUCCESS;
29158 static enum ndr_err_code ndr_pull_spoolss_62(struct ndr_pull *ndr, int flags, struct spoolss_62 *r)
29160 if (flags & NDR_IN) {
29162 if (flags & NDR_OUT) {
29163 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29165 return NDR_ERR_SUCCESS;
29168 _PUBLIC_ void ndr_print_spoolss_62(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_62 *r)
29170 ndr_print_struct(ndr, name, "spoolss_62");
29171 ndr->depth++;
29172 if (flags & NDR_SET_VALUES) {
29173 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29175 if (flags & NDR_IN) {
29176 ndr_print_struct(ndr, "in", "spoolss_62");
29177 ndr->depth++;
29178 ndr->depth--;
29180 if (flags & NDR_OUT) {
29181 ndr_print_struct(ndr, "out", "spoolss_62");
29182 ndr->depth++;
29183 ndr_print_WERROR(ndr, "result", r->out.result);
29184 ndr->depth--;
29186 ndr->depth--;
29189 static enum ndr_err_code ndr_push_spoolss_63(struct ndr_push *ndr, int flags, const struct spoolss_63 *r)
29191 if (flags & NDR_IN) {
29193 if (flags & NDR_OUT) {
29194 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29196 return NDR_ERR_SUCCESS;
29199 static enum ndr_err_code ndr_pull_spoolss_63(struct ndr_pull *ndr, int flags, struct spoolss_63 *r)
29201 if (flags & NDR_IN) {
29203 if (flags & NDR_OUT) {
29204 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29206 return NDR_ERR_SUCCESS;
29209 _PUBLIC_ void ndr_print_spoolss_63(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_63 *r)
29211 ndr_print_struct(ndr, name, "spoolss_63");
29212 ndr->depth++;
29213 if (flags & NDR_SET_VALUES) {
29214 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29216 if (flags & NDR_IN) {
29217 ndr_print_struct(ndr, "in", "spoolss_63");
29218 ndr->depth++;
29219 ndr->depth--;
29221 if (flags & NDR_OUT) {
29222 ndr_print_struct(ndr, "out", "spoolss_63");
29223 ndr->depth++;
29224 ndr_print_WERROR(ndr, "result", r->out.result);
29225 ndr->depth--;
29227 ndr->depth--;
29230 static enum ndr_err_code ndr_push_spoolss_64(struct ndr_push *ndr, int flags, const struct spoolss_64 *r)
29232 if (flags & NDR_IN) {
29234 if (flags & NDR_OUT) {
29235 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29237 return NDR_ERR_SUCCESS;
29240 static enum ndr_err_code ndr_pull_spoolss_64(struct ndr_pull *ndr, int flags, struct spoolss_64 *r)
29242 if (flags & NDR_IN) {
29244 if (flags & NDR_OUT) {
29245 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29247 return NDR_ERR_SUCCESS;
29250 _PUBLIC_ void ndr_print_spoolss_64(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_64 *r)
29252 ndr_print_struct(ndr, name, "spoolss_64");
29253 ndr->depth++;
29254 if (flags & NDR_SET_VALUES) {
29255 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29257 if (flags & NDR_IN) {
29258 ndr_print_struct(ndr, "in", "spoolss_64");
29259 ndr->depth++;
29260 ndr->depth--;
29262 if (flags & NDR_OUT) {
29263 ndr_print_struct(ndr, "out", "spoolss_64");
29264 ndr->depth++;
29265 ndr_print_WERROR(ndr, "result", r->out.result);
29266 ndr->depth--;
29268 ndr->depth--;
29271 static enum ndr_err_code ndr_push_spoolss_65(struct ndr_push *ndr, int flags, const struct spoolss_65 *r)
29273 if (flags & NDR_IN) {
29275 if (flags & NDR_OUT) {
29276 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29278 return NDR_ERR_SUCCESS;
29281 static enum ndr_err_code ndr_pull_spoolss_65(struct ndr_pull *ndr, int flags, struct spoolss_65 *r)
29283 if (flags & NDR_IN) {
29285 if (flags & NDR_OUT) {
29286 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29288 return NDR_ERR_SUCCESS;
29291 _PUBLIC_ void ndr_print_spoolss_65(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_65 *r)
29293 ndr_print_struct(ndr, name, "spoolss_65");
29294 ndr->depth++;
29295 if (flags & NDR_SET_VALUES) {
29296 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29298 if (flags & NDR_IN) {
29299 ndr_print_struct(ndr, "in", "spoolss_65");
29300 ndr->depth++;
29301 ndr->depth--;
29303 if (flags & NDR_OUT) {
29304 ndr_print_struct(ndr, "out", "spoolss_65");
29305 ndr->depth++;
29306 ndr_print_WERROR(ndr, "result", r->out.result);
29307 ndr->depth--;
29309 ndr->depth--;
29312 static enum ndr_err_code ndr_push_spoolss_GetCorePrinterDrivers(struct ndr_push *ndr, int flags, const struct spoolss_GetCorePrinterDrivers *r)
29314 uint32_t cntr_core_printer_drivers_1;
29315 if (flags & NDR_IN) {
29316 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
29317 if (r->in.servername) {
29318 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
29319 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29320 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
29321 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
29323 if (r->in.architecture == NULL) {
29324 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29326 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
29327 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29328 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
29329 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
29330 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.core_driver_size));
29331 if (r->in.core_driver_dependencies == NULL) {
29332 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29334 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.core_driver_size));
29335 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.core_driver_dependencies, r->in.core_driver_size, sizeof(uint16_t), CH_UTF16));
29336 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.core_printer_driver_count));
29338 if (flags & NDR_OUT) {
29339 if (r->out.core_printer_drivers == NULL) {
29340 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29342 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.core_printer_driver_count));
29343 for (cntr_core_printer_drivers_1 = 0; cntr_core_printer_drivers_1 < r->in.core_printer_driver_count; cntr_core_printer_drivers_1++) {
29344 NDR_CHECK(ndr_push_spoolss_CorePrinterDriver(ndr, NDR_SCALARS, &r->out.core_printer_drivers[cntr_core_printer_drivers_1]));
29346 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29348 return NDR_ERR_SUCCESS;
29351 static enum ndr_err_code ndr_pull_spoolss_GetCorePrinterDrivers(struct ndr_pull *ndr, int flags, struct spoolss_GetCorePrinterDrivers *r)
29353 uint32_t _ptr_servername;
29354 uint32_t cntr_core_printer_drivers_1;
29355 TALLOC_CTX *_mem_save_servername_0;
29356 TALLOC_CTX *_mem_save_core_printer_drivers_1;
29357 if (flags & NDR_IN) {
29358 ZERO_STRUCT(r->out);
29360 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
29361 if (_ptr_servername) {
29362 NDR_PULL_ALLOC(ndr, r->in.servername);
29363 } else {
29364 r->in.servername = NULL;
29366 if (r->in.servername) {
29367 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
29368 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
29369 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
29370 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
29371 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
29372 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.servername), ndr_get_array_length(ndr, &r->in.servername));
29374 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
29375 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
29376 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
29378 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
29379 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
29380 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
29381 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.architecture), ndr_get_array_length(ndr, &r->in.architecture));
29383 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
29384 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
29385 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.core_driver_size));
29386 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.core_driver_dependencies));
29387 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.core_driver_dependencies, ndr_get_array_size(ndr, &r->in.core_driver_dependencies), sizeof(uint16_t), CH_UTF16));
29388 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.core_printer_driver_count));
29389 NDR_PULL_ALLOC_N(ndr, r->out.core_printer_drivers, r->in.core_printer_driver_count);
29390 memset(r->out.core_printer_drivers, 0, (r->in.core_printer_driver_count) * sizeof(*r->out.core_printer_drivers));
29391 if (r->in.core_driver_dependencies) {
29392 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.core_driver_dependencies, r->in.core_driver_size));
29395 if (flags & NDR_OUT) {
29396 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.core_printer_drivers));
29397 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29398 NDR_PULL_ALLOC_N(ndr, r->out.core_printer_drivers, ndr_get_array_size(ndr, &r->out.core_printer_drivers));
29400 _mem_save_core_printer_drivers_1 = NDR_PULL_GET_MEM_CTX(ndr);
29401 NDR_PULL_SET_MEM_CTX(ndr, r->out.core_printer_drivers, 0);
29402 for (cntr_core_printer_drivers_1 = 0; cntr_core_printer_drivers_1 < r->in.core_printer_driver_count; cntr_core_printer_drivers_1++) {
29403 NDR_CHECK(ndr_pull_spoolss_CorePrinterDriver(ndr, NDR_SCALARS, &r->out.core_printer_drivers[cntr_core_printer_drivers_1]));
29405 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_printer_drivers_1, 0);
29406 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29407 if (r->out.core_printer_drivers) {
29408 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.core_printer_drivers, r->in.core_printer_driver_count));
29411 return NDR_ERR_SUCCESS;
29414 _PUBLIC_ void ndr_print_spoolss_GetCorePrinterDrivers(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetCorePrinterDrivers *r)
29416 uint32_t cntr_core_printer_drivers_1;
29417 ndr_print_struct(ndr, name, "spoolss_GetCorePrinterDrivers");
29418 ndr->depth++;
29419 if (flags & NDR_SET_VALUES) {
29420 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29422 if (flags & NDR_IN) {
29423 ndr_print_struct(ndr, "in", "spoolss_GetCorePrinterDrivers");
29424 ndr->depth++;
29425 ndr_print_ptr(ndr, "servername", r->in.servername);
29426 ndr->depth++;
29427 if (r->in.servername) {
29428 ndr_print_string(ndr, "servername", r->in.servername);
29430 ndr->depth--;
29431 ndr_print_ptr(ndr, "architecture", r->in.architecture);
29432 ndr->depth++;
29433 ndr_print_string(ndr, "architecture", r->in.architecture);
29434 ndr->depth--;
29435 ndr_print_uint32(ndr, "core_driver_size", r->in.core_driver_size);
29436 ndr_print_ptr(ndr, "core_driver_dependencies", r->in.core_driver_dependencies);
29437 ndr->depth++;
29438 ndr_print_string(ndr, "core_driver_dependencies", r->in.core_driver_dependencies);
29439 ndr->depth--;
29440 ndr_print_uint32(ndr, "core_printer_driver_count", r->in.core_printer_driver_count);
29441 ndr->depth--;
29443 if (flags & NDR_OUT) {
29444 ndr_print_struct(ndr, "out", "spoolss_GetCorePrinterDrivers");
29445 ndr->depth++;
29446 ndr_print_ptr(ndr, "core_printer_drivers", r->out.core_printer_drivers);
29447 ndr->depth++;
29448 ndr->print(ndr, "%s: ARRAY(%d)", "core_printer_drivers", (int)r->in.core_printer_driver_count);
29449 ndr->depth++;
29450 for (cntr_core_printer_drivers_1=0;cntr_core_printer_drivers_1<r->in.core_printer_driver_count;cntr_core_printer_drivers_1++) {
29451 char *idx_1=NULL;
29452 if (asprintf(&idx_1, "[%d]", cntr_core_printer_drivers_1) != -1) {
29453 ndr_print_spoolss_CorePrinterDriver(ndr, "core_printer_drivers", &r->out.core_printer_drivers[cntr_core_printer_drivers_1]);
29454 free(idx_1);
29457 ndr->depth--;
29458 ndr->depth--;
29459 ndr_print_WERROR(ndr, "result", r->out.result);
29460 ndr->depth--;
29462 ndr->depth--;
29465 static enum ndr_err_code ndr_push_spoolss_67(struct ndr_push *ndr, int flags, const struct spoolss_67 *r)
29467 if (flags & NDR_IN) {
29469 if (flags & NDR_OUT) {
29470 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29472 return NDR_ERR_SUCCESS;
29475 static enum ndr_err_code ndr_pull_spoolss_67(struct ndr_pull *ndr, int flags, struct spoolss_67 *r)
29477 if (flags & NDR_IN) {
29479 if (flags & NDR_OUT) {
29480 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29482 return NDR_ERR_SUCCESS;
29485 _PUBLIC_ void ndr_print_spoolss_67(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_67 *r)
29487 ndr_print_struct(ndr, name, "spoolss_67");
29488 ndr->depth++;
29489 if (flags & NDR_SET_VALUES) {
29490 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29492 if (flags & NDR_IN) {
29493 ndr_print_struct(ndr, "in", "spoolss_67");
29494 ndr->depth++;
29495 ndr->depth--;
29497 if (flags & NDR_OUT) {
29498 ndr_print_struct(ndr, "out", "spoolss_67");
29499 ndr->depth++;
29500 ndr_print_WERROR(ndr, "result", r->out.result);
29501 ndr->depth--;
29503 ndr->depth--;
29506 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriverPackagePath(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriverPackagePath *r)
29508 if (flags & NDR_IN) {
29509 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
29510 if (r->in.servername) {
29511 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
29512 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29513 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
29514 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
29516 if (r->in.architecture == NULL) {
29517 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29519 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
29520 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29521 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
29522 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
29523 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.language));
29524 if (r->in.language) {
29525 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.language, CH_UTF16)));
29526 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29527 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.language, CH_UTF16)));
29528 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.language, ndr_charset_length(r->in.language, CH_UTF16), sizeof(uint16_t), CH_UTF16));
29530 if (r->in.package_id == NULL) {
29531 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29533 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.package_id, CH_UTF16)));
29534 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29535 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.package_id, CH_UTF16)));
29536 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.package_id, ndr_charset_length(r->in.package_id, CH_UTF16), sizeof(uint16_t), CH_UTF16));
29537 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.driver_package_cab));
29538 if (r->in.driver_package_cab) {
29539 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.driver_package_cab_size));
29540 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver_package_cab, r->in.driver_package_cab_size, sizeof(uint16_t), CH_UTF16));
29542 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.driver_package_cab_size));
29544 if (flags & NDR_OUT) {
29545 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.driver_package_cab));
29546 if (r->out.driver_package_cab) {
29547 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.driver_package_cab_size));
29548 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->out.driver_package_cab, r->in.driver_package_cab_size, sizeof(uint16_t), CH_UTF16));
29550 if (r->out.required == NULL) {
29551 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29553 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.required));
29554 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29556 return NDR_ERR_SUCCESS;
29559 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriverPackagePath(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriverPackagePath *r)
29561 uint32_t _ptr_servername;
29562 uint32_t _ptr_language;
29563 uint32_t _ptr_driver_package_cab;
29564 TALLOC_CTX *_mem_save_servername_0;
29565 TALLOC_CTX *_mem_save_language_0;
29566 TALLOC_CTX *_mem_save_driver_package_cab_0;
29567 TALLOC_CTX *_mem_save_required_0;
29568 if (flags & NDR_IN) {
29569 ZERO_STRUCT(r->out);
29571 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
29572 if (_ptr_servername) {
29573 NDR_PULL_ALLOC(ndr, r->in.servername);
29574 } else {
29575 r->in.servername = NULL;
29577 if (r->in.servername) {
29578 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
29579 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
29580 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
29581 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
29582 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
29583 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.servername), ndr_get_array_length(ndr, &r->in.servername));
29585 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
29586 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
29587 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
29589 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
29590 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
29591 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
29592 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.architecture), ndr_get_array_length(ndr, &r->in.architecture));
29594 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
29595 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
29596 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_language));
29597 if (_ptr_language) {
29598 NDR_PULL_ALLOC(ndr, r->in.language);
29599 } else {
29600 r->in.language = NULL;
29602 if (r->in.language) {
29603 _mem_save_language_0 = NDR_PULL_GET_MEM_CTX(ndr);
29604 NDR_PULL_SET_MEM_CTX(ndr, r->in.language, 0);
29605 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.language));
29606 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.language));
29607 if (ndr_get_array_length(ndr, &r->in.language) > ndr_get_array_size(ndr, &r->in.language)) {
29608 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.language), ndr_get_array_length(ndr, &r->in.language));
29610 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.language), sizeof(uint16_t)));
29611 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.language, ndr_get_array_length(ndr, &r->in.language), sizeof(uint16_t), CH_UTF16));
29612 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_language_0, 0);
29614 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.package_id));
29615 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.package_id));
29616 if (ndr_get_array_length(ndr, &r->in.package_id) > ndr_get_array_size(ndr, &r->in.package_id)) {
29617 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.package_id), ndr_get_array_length(ndr, &r->in.package_id));
29619 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.package_id), sizeof(uint16_t)));
29620 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.package_id, ndr_get_array_length(ndr, &r->in.package_id), sizeof(uint16_t), CH_UTF16));
29621 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_package_cab));
29622 if (_ptr_driver_package_cab) {
29623 NDR_PULL_ALLOC(ndr, r->in.driver_package_cab);
29624 } else {
29625 r->in.driver_package_cab = NULL;
29627 if (r->in.driver_package_cab) {
29628 _mem_save_driver_package_cab_0 = NDR_PULL_GET_MEM_CTX(ndr);
29629 NDR_PULL_SET_MEM_CTX(ndr, r->in.driver_package_cab, 0);
29630 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver_package_cab));
29631 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver_package_cab, ndr_get_array_size(ndr, &r->in.driver_package_cab), sizeof(uint16_t), CH_UTF16));
29632 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_package_cab_0, 0);
29634 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.driver_package_cab_size));
29635 NDR_PULL_ALLOC(ndr, r->out.required);
29636 ZERO_STRUCTP(r->out.required);
29637 if (r->in.driver_package_cab) {
29638 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.driver_package_cab, r->in.driver_package_cab_size));
29641 if (flags & NDR_OUT) {
29642 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_package_cab));
29643 if (_ptr_driver_package_cab) {
29644 NDR_PULL_ALLOC(ndr, r->out.driver_package_cab);
29645 } else {
29646 r->out.driver_package_cab = NULL;
29648 if (r->out.driver_package_cab) {
29649 _mem_save_driver_package_cab_0 = NDR_PULL_GET_MEM_CTX(ndr);
29650 NDR_PULL_SET_MEM_CTX(ndr, r->out.driver_package_cab, 0);
29651 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.driver_package_cab));
29652 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->out.driver_package_cab, ndr_get_array_size(ndr, &r->out.driver_package_cab), sizeof(uint16_t), CH_UTF16));
29653 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_package_cab_0, 0);
29655 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29656 NDR_PULL_ALLOC(ndr, r->out.required);
29658 _mem_save_required_0 = NDR_PULL_GET_MEM_CTX(ndr);
29659 NDR_PULL_SET_MEM_CTX(ndr, r->out.required, LIBNDR_FLAG_REF_ALLOC);
29660 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.required));
29661 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_required_0, LIBNDR_FLAG_REF_ALLOC);
29662 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29663 if (r->out.driver_package_cab) {
29664 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.driver_package_cab, r->in.driver_package_cab_size));
29667 return NDR_ERR_SUCCESS;
29670 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriverPackagePath(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriverPackagePath *r)
29672 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriverPackagePath");
29673 ndr->depth++;
29674 if (flags & NDR_SET_VALUES) {
29675 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29677 if (flags & NDR_IN) {
29678 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriverPackagePath");
29679 ndr->depth++;
29680 ndr_print_ptr(ndr, "servername", r->in.servername);
29681 ndr->depth++;
29682 if (r->in.servername) {
29683 ndr_print_string(ndr, "servername", r->in.servername);
29685 ndr->depth--;
29686 ndr_print_ptr(ndr, "architecture", r->in.architecture);
29687 ndr->depth++;
29688 ndr_print_string(ndr, "architecture", r->in.architecture);
29689 ndr->depth--;
29690 ndr_print_ptr(ndr, "language", r->in.language);
29691 ndr->depth++;
29692 if (r->in.language) {
29693 ndr_print_string(ndr, "language", r->in.language);
29695 ndr->depth--;
29696 ndr_print_ptr(ndr, "package_id", r->in.package_id);
29697 ndr->depth++;
29698 ndr_print_string(ndr, "package_id", r->in.package_id);
29699 ndr->depth--;
29700 ndr_print_ptr(ndr, "driver_package_cab", r->in.driver_package_cab);
29701 ndr->depth++;
29702 if (r->in.driver_package_cab) {
29703 ndr_print_string(ndr, "driver_package_cab", r->in.driver_package_cab);
29705 ndr->depth--;
29706 ndr_print_uint32(ndr, "driver_package_cab_size", r->in.driver_package_cab_size);
29707 ndr->depth--;
29709 if (flags & NDR_OUT) {
29710 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriverPackagePath");
29711 ndr->depth++;
29712 ndr_print_ptr(ndr, "driver_package_cab", r->out.driver_package_cab);
29713 ndr->depth++;
29714 if (r->out.driver_package_cab) {
29715 ndr_print_string(ndr, "driver_package_cab", r->out.driver_package_cab);
29717 ndr->depth--;
29718 ndr_print_ptr(ndr, "required", r->out.required);
29719 ndr->depth++;
29720 ndr_print_uint32(ndr, "required", *r->out.required);
29721 ndr->depth--;
29722 ndr_print_WERROR(ndr, "result", r->out.result);
29723 ndr->depth--;
29725 ndr->depth--;
29728 static enum ndr_err_code ndr_push_spoolss_69(struct ndr_push *ndr, int flags, const struct spoolss_69 *r)
29730 if (flags & NDR_IN) {
29732 if (flags & NDR_OUT) {
29733 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29735 return NDR_ERR_SUCCESS;
29738 static enum ndr_err_code ndr_pull_spoolss_69(struct ndr_pull *ndr, int flags, struct spoolss_69 *r)
29740 if (flags & NDR_IN) {
29742 if (flags & NDR_OUT) {
29743 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29745 return NDR_ERR_SUCCESS;
29748 _PUBLIC_ void ndr_print_spoolss_69(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_69 *r)
29750 ndr_print_struct(ndr, name, "spoolss_69");
29751 ndr->depth++;
29752 if (flags & NDR_SET_VALUES) {
29753 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29755 if (flags & NDR_IN) {
29756 ndr_print_struct(ndr, "in", "spoolss_69");
29757 ndr->depth++;
29758 ndr->depth--;
29760 if (flags & NDR_OUT) {
29761 ndr_print_struct(ndr, "out", "spoolss_69");
29762 ndr->depth++;
29763 ndr_print_WERROR(ndr, "result", r->out.result);
29764 ndr->depth--;
29766 ndr->depth--;
29769 static enum ndr_err_code ndr_push_spoolss_6a(struct ndr_push *ndr, int flags, const struct spoolss_6a *r)
29771 if (flags & NDR_IN) {
29773 if (flags & NDR_OUT) {
29774 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29776 return NDR_ERR_SUCCESS;
29779 static enum ndr_err_code ndr_pull_spoolss_6a(struct ndr_pull *ndr, int flags, struct spoolss_6a *r)
29781 if (flags & NDR_IN) {
29783 if (flags & NDR_OUT) {
29784 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29786 return NDR_ERR_SUCCESS;
29789 _PUBLIC_ void ndr_print_spoolss_6a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_6a *r)
29791 ndr_print_struct(ndr, name, "spoolss_6a");
29792 ndr->depth++;
29793 if (flags & NDR_SET_VALUES) {
29794 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29796 if (flags & NDR_IN) {
29797 ndr_print_struct(ndr, "in", "spoolss_6a");
29798 ndr->depth++;
29799 ndr->depth--;
29801 if (flags & NDR_OUT) {
29802 ndr_print_struct(ndr, "out", "spoolss_6a");
29803 ndr->depth++;
29804 ndr_print_WERROR(ndr, "result", r->out.result);
29805 ndr->depth--;
29807 ndr->depth--;
29810 static enum ndr_err_code ndr_push_spoolss_6b(struct ndr_push *ndr, int flags, const struct spoolss_6b *r)
29812 if (flags & NDR_IN) {
29814 if (flags & NDR_OUT) {
29815 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29817 return NDR_ERR_SUCCESS;
29820 static enum ndr_err_code ndr_pull_spoolss_6b(struct ndr_pull *ndr, int flags, struct spoolss_6b *r)
29822 if (flags & NDR_IN) {
29824 if (flags & NDR_OUT) {
29825 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29827 return NDR_ERR_SUCCESS;
29830 _PUBLIC_ void ndr_print_spoolss_6b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_6b *r)
29832 ndr_print_struct(ndr, name, "spoolss_6b");
29833 ndr->depth++;
29834 if (flags & NDR_SET_VALUES) {
29835 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29837 if (flags & NDR_IN) {
29838 ndr_print_struct(ndr, "in", "spoolss_6b");
29839 ndr->depth++;
29840 ndr->depth--;
29842 if (flags & NDR_OUT) {
29843 ndr_print_struct(ndr, "out", "spoolss_6b");
29844 ndr->depth++;
29845 ndr_print_WERROR(ndr, "result", r->out.result);
29846 ndr->depth--;
29848 ndr->depth--;
29851 static enum ndr_err_code ndr_push_spoolss_6c(struct ndr_push *ndr, int flags, const struct spoolss_6c *r)
29853 if (flags & NDR_IN) {
29855 if (flags & NDR_OUT) {
29856 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29858 return NDR_ERR_SUCCESS;
29861 static enum ndr_err_code ndr_pull_spoolss_6c(struct ndr_pull *ndr, int flags, struct spoolss_6c *r)
29863 if (flags & NDR_IN) {
29865 if (flags & NDR_OUT) {
29866 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29868 return NDR_ERR_SUCCESS;
29871 _PUBLIC_ void ndr_print_spoolss_6c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_6c *r)
29873 ndr_print_struct(ndr, name, "spoolss_6c");
29874 ndr->depth++;
29875 if (flags & NDR_SET_VALUES) {
29876 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29878 if (flags & NDR_IN) {
29879 ndr_print_struct(ndr, "in", "spoolss_6c");
29880 ndr->depth++;
29881 ndr->depth--;
29883 if (flags & NDR_OUT) {
29884 ndr_print_struct(ndr, "out", "spoolss_6c");
29885 ndr->depth++;
29886 ndr_print_WERROR(ndr, "result", r->out.result);
29887 ndr->depth--;
29889 ndr->depth--;
29892 static enum ndr_err_code ndr_push_spoolss_6d(struct ndr_push *ndr, int flags, const struct spoolss_6d *r)
29894 if (flags & NDR_IN) {
29896 if (flags & NDR_OUT) {
29897 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29899 return NDR_ERR_SUCCESS;
29902 static enum ndr_err_code ndr_pull_spoolss_6d(struct ndr_pull *ndr, int flags, struct spoolss_6d *r)
29904 if (flags & NDR_IN) {
29906 if (flags & NDR_OUT) {
29907 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29909 return NDR_ERR_SUCCESS;
29912 _PUBLIC_ void ndr_print_spoolss_6d(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_6d *r)
29914 ndr_print_struct(ndr, name, "spoolss_6d");
29915 ndr->depth++;
29916 if (flags & NDR_SET_VALUES) {
29917 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29919 if (flags & NDR_IN) {
29920 ndr_print_struct(ndr, "in", "spoolss_6d");
29921 ndr->depth++;
29922 ndr->depth--;
29924 if (flags & NDR_OUT) {
29925 ndr_print_struct(ndr, "out", "spoolss_6d");
29926 ndr->depth++;
29927 ndr_print_WERROR(ndr, "result", r->out.result);
29928 ndr->depth--;
29930 ndr->depth--;
29933 static const struct ndr_interface_call spoolss_calls[] = {
29935 "spoolss_EnumPrinters",
29936 sizeof(struct spoolss_EnumPrinters),
29937 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinters,
29938 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinters,
29939 (ndr_print_function_t) ndr_print_spoolss_EnumPrinters,
29940 false,
29943 "spoolss_OpenPrinter",
29944 sizeof(struct spoolss_OpenPrinter),
29945 (ndr_push_flags_fn_t) ndr_push_spoolss_OpenPrinter,
29946 (ndr_pull_flags_fn_t) ndr_pull_spoolss_OpenPrinter,
29947 (ndr_print_function_t) ndr_print_spoolss_OpenPrinter,
29948 false,
29951 "spoolss_SetJob",
29952 sizeof(struct spoolss_SetJob),
29953 (ndr_push_flags_fn_t) ndr_push_spoolss_SetJob,
29954 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetJob,
29955 (ndr_print_function_t) ndr_print_spoolss_SetJob,
29956 false,
29959 "spoolss_GetJob",
29960 sizeof(struct spoolss_GetJob),
29961 (ndr_push_flags_fn_t) ndr_push_spoolss_GetJob,
29962 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetJob,
29963 (ndr_print_function_t) ndr_print_spoolss_GetJob,
29964 false,
29967 "spoolss_EnumJobs",
29968 sizeof(struct spoolss_EnumJobs),
29969 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumJobs,
29970 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumJobs,
29971 (ndr_print_function_t) ndr_print_spoolss_EnumJobs,
29972 false,
29975 "spoolss_AddPrinter",
29976 sizeof(struct spoolss_AddPrinter),
29977 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinter,
29978 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinter,
29979 (ndr_print_function_t) ndr_print_spoolss_AddPrinter,
29980 false,
29983 "spoolss_DeletePrinter",
29984 sizeof(struct spoolss_DeletePrinter),
29985 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinter,
29986 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinter,
29987 (ndr_print_function_t) ndr_print_spoolss_DeletePrinter,
29988 false,
29991 "spoolss_SetPrinter",
29992 sizeof(struct spoolss_SetPrinter),
29993 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinter,
29994 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinter,
29995 (ndr_print_function_t) ndr_print_spoolss_SetPrinter,
29996 false,
29999 "spoolss_GetPrinter",
30000 sizeof(struct spoolss_GetPrinter),
30001 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinter,
30002 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinter,
30003 (ndr_print_function_t) ndr_print_spoolss_GetPrinter,
30004 false,
30007 "spoolss_AddPrinterDriver",
30008 sizeof(struct spoolss_AddPrinterDriver),
30009 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterDriver,
30010 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterDriver,
30011 (ndr_print_function_t) ndr_print_spoolss_AddPrinterDriver,
30012 false,
30015 "spoolss_EnumPrinterDrivers",
30016 sizeof(struct spoolss_EnumPrinterDrivers),
30017 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterDrivers,
30018 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterDrivers,
30019 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterDrivers,
30020 false,
30023 "spoolss_GetPrinterDriver",
30024 sizeof(struct spoolss_GetPrinterDriver),
30025 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriver,
30026 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriver,
30027 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriver,
30028 false,
30031 "spoolss_GetPrinterDriverDirectory",
30032 sizeof(struct spoolss_GetPrinterDriverDirectory),
30033 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriverDirectory,
30034 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriverDirectory,
30035 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriverDirectory,
30036 false,
30039 "spoolss_DeletePrinterDriver",
30040 sizeof(struct spoolss_DeletePrinterDriver),
30041 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDriver,
30042 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDriver,
30043 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDriver,
30044 false,
30047 "spoolss_AddPrintProcessor",
30048 sizeof(struct spoolss_AddPrintProcessor),
30049 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrintProcessor,
30050 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrintProcessor,
30051 (ndr_print_function_t) ndr_print_spoolss_AddPrintProcessor,
30052 false,
30055 "spoolss_EnumPrintProcessors",
30056 sizeof(struct spoolss_EnumPrintProcessors),
30057 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrintProcessors,
30058 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrintProcessors,
30059 (ndr_print_function_t) ndr_print_spoolss_EnumPrintProcessors,
30060 false,
30063 "spoolss_GetPrintProcessorDirectory",
30064 sizeof(struct spoolss_GetPrintProcessorDirectory),
30065 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrintProcessorDirectory,
30066 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrintProcessorDirectory,
30067 (ndr_print_function_t) ndr_print_spoolss_GetPrintProcessorDirectory,
30068 false,
30071 "spoolss_StartDocPrinter",
30072 sizeof(struct spoolss_StartDocPrinter),
30073 (ndr_push_flags_fn_t) ndr_push_spoolss_StartDocPrinter,
30074 (ndr_pull_flags_fn_t) ndr_pull_spoolss_StartDocPrinter,
30075 (ndr_print_function_t) ndr_print_spoolss_StartDocPrinter,
30076 false,
30079 "spoolss_StartPagePrinter",
30080 sizeof(struct spoolss_StartPagePrinter),
30081 (ndr_push_flags_fn_t) ndr_push_spoolss_StartPagePrinter,
30082 (ndr_pull_flags_fn_t) ndr_pull_spoolss_StartPagePrinter,
30083 (ndr_print_function_t) ndr_print_spoolss_StartPagePrinter,
30084 false,
30087 "spoolss_WritePrinter",
30088 sizeof(struct spoolss_WritePrinter),
30089 (ndr_push_flags_fn_t) ndr_push_spoolss_WritePrinter,
30090 (ndr_pull_flags_fn_t) ndr_pull_spoolss_WritePrinter,
30091 (ndr_print_function_t) ndr_print_spoolss_WritePrinter,
30092 false,
30095 "spoolss_EndPagePrinter",
30096 sizeof(struct spoolss_EndPagePrinter),
30097 (ndr_push_flags_fn_t) ndr_push_spoolss_EndPagePrinter,
30098 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EndPagePrinter,
30099 (ndr_print_function_t) ndr_print_spoolss_EndPagePrinter,
30100 false,
30103 "spoolss_AbortPrinter",
30104 sizeof(struct spoolss_AbortPrinter),
30105 (ndr_push_flags_fn_t) ndr_push_spoolss_AbortPrinter,
30106 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AbortPrinter,
30107 (ndr_print_function_t) ndr_print_spoolss_AbortPrinter,
30108 false,
30111 "spoolss_ReadPrinter",
30112 sizeof(struct spoolss_ReadPrinter),
30113 (ndr_push_flags_fn_t) ndr_push_spoolss_ReadPrinter,
30114 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReadPrinter,
30115 (ndr_print_function_t) ndr_print_spoolss_ReadPrinter,
30116 false,
30119 "spoolss_EndDocPrinter",
30120 sizeof(struct spoolss_EndDocPrinter),
30121 (ndr_push_flags_fn_t) ndr_push_spoolss_EndDocPrinter,
30122 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EndDocPrinter,
30123 (ndr_print_function_t) ndr_print_spoolss_EndDocPrinter,
30124 false,
30127 "spoolss_AddJob",
30128 sizeof(struct spoolss_AddJob),
30129 (ndr_push_flags_fn_t) ndr_push_spoolss_AddJob,
30130 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddJob,
30131 (ndr_print_function_t) ndr_print_spoolss_AddJob,
30132 false,
30135 "spoolss_ScheduleJob",
30136 sizeof(struct spoolss_ScheduleJob),
30137 (ndr_push_flags_fn_t) ndr_push_spoolss_ScheduleJob,
30138 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ScheduleJob,
30139 (ndr_print_function_t) ndr_print_spoolss_ScheduleJob,
30140 false,
30143 "spoolss_GetPrinterData",
30144 sizeof(struct spoolss_GetPrinterData),
30145 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterData,
30146 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterData,
30147 (ndr_print_function_t) ndr_print_spoolss_GetPrinterData,
30148 false,
30151 "spoolss_SetPrinterData",
30152 sizeof(struct spoolss_SetPrinterData),
30153 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinterData,
30154 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinterData,
30155 (ndr_print_function_t) ndr_print_spoolss_SetPrinterData,
30156 false,
30159 "spoolss_WaitForPrinterChange",
30160 sizeof(struct spoolss_WaitForPrinterChange),
30161 (ndr_push_flags_fn_t) ndr_push_spoolss_WaitForPrinterChange,
30162 (ndr_pull_flags_fn_t) ndr_pull_spoolss_WaitForPrinterChange,
30163 (ndr_print_function_t) ndr_print_spoolss_WaitForPrinterChange,
30164 false,
30167 "spoolss_ClosePrinter",
30168 sizeof(struct spoolss_ClosePrinter),
30169 (ndr_push_flags_fn_t) ndr_push_spoolss_ClosePrinter,
30170 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ClosePrinter,
30171 (ndr_print_function_t) ndr_print_spoolss_ClosePrinter,
30172 false,
30175 "spoolss_AddForm",
30176 sizeof(struct spoolss_AddForm),
30177 (ndr_push_flags_fn_t) ndr_push_spoolss_AddForm,
30178 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddForm,
30179 (ndr_print_function_t) ndr_print_spoolss_AddForm,
30180 false,
30183 "spoolss_DeleteForm",
30184 sizeof(struct spoolss_DeleteForm),
30185 (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteForm,
30186 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteForm,
30187 (ndr_print_function_t) ndr_print_spoolss_DeleteForm,
30188 false,
30191 "spoolss_GetForm",
30192 sizeof(struct spoolss_GetForm),
30193 (ndr_push_flags_fn_t) ndr_push_spoolss_GetForm,
30194 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetForm,
30195 (ndr_print_function_t) ndr_print_spoolss_GetForm,
30196 false,
30199 "spoolss_SetForm",
30200 sizeof(struct spoolss_SetForm),
30201 (ndr_push_flags_fn_t) ndr_push_spoolss_SetForm,
30202 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetForm,
30203 (ndr_print_function_t) ndr_print_spoolss_SetForm,
30204 false,
30207 "spoolss_EnumForms",
30208 sizeof(struct spoolss_EnumForms),
30209 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumForms,
30210 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumForms,
30211 (ndr_print_function_t) ndr_print_spoolss_EnumForms,
30212 false,
30215 "spoolss_EnumPorts",
30216 sizeof(struct spoolss_EnumPorts),
30217 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPorts,
30218 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPorts,
30219 (ndr_print_function_t) ndr_print_spoolss_EnumPorts,
30220 false,
30223 "spoolss_EnumMonitors",
30224 sizeof(struct spoolss_EnumMonitors),
30225 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumMonitors,
30226 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumMonitors,
30227 (ndr_print_function_t) ndr_print_spoolss_EnumMonitors,
30228 false,
30231 "spoolss_AddPort",
30232 sizeof(struct spoolss_AddPort),
30233 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPort,
30234 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPort,
30235 (ndr_print_function_t) ndr_print_spoolss_AddPort,
30236 false,
30239 "spoolss_ConfigurePort",
30240 sizeof(struct spoolss_ConfigurePort),
30241 (ndr_push_flags_fn_t) ndr_push_spoolss_ConfigurePort,
30242 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ConfigurePort,
30243 (ndr_print_function_t) ndr_print_spoolss_ConfigurePort,
30244 false,
30247 "spoolss_DeletePort",
30248 sizeof(struct spoolss_DeletePort),
30249 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePort,
30250 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePort,
30251 (ndr_print_function_t) ndr_print_spoolss_DeletePort,
30252 false,
30255 "spoolss_CreatePrinterIC",
30256 sizeof(struct spoolss_CreatePrinterIC),
30257 (ndr_push_flags_fn_t) ndr_push_spoolss_CreatePrinterIC,
30258 (ndr_pull_flags_fn_t) ndr_pull_spoolss_CreatePrinterIC,
30259 (ndr_print_function_t) ndr_print_spoolss_CreatePrinterIC,
30260 false,
30263 "spoolss_PlayGDIScriptOnPrinterIC",
30264 sizeof(struct spoolss_PlayGDIScriptOnPrinterIC),
30265 (ndr_push_flags_fn_t) ndr_push_spoolss_PlayGDIScriptOnPrinterIC,
30266 (ndr_pull_flags_fn_t) ndr_pull_spoolss_PlayGDIScriptOnPrinterIC,
30267 (ndr_print_function_t) ndr_print_spoolss_PlayGDIScriptOnPrinterIC,
30268 false,
30271 "spoolss_DeletePrinterIC",
30272 sizeof(struct spoolss_DeletePrinterIC),
30273 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterIC,
30274 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterIC,
30275 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterIC,
30276 false,
30279 "spoolss_AddPrinterConnection",
30280 sizeof(struct spoolss_AddPrinterConnection),
30281 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterConnection,
30282 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterConnection,
30283 (ndr_print_function_t) ndr_print_spoolss_AddPrinterConnection,
30284 false,
30287 "spoolss_DeletePrinterConnection",
30288 sizeof(struct spoolss_DeletePrinterConnection),
30289 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterConnection,
30290 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterConnection,
30291 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterConnection,
30292 false,
30295 "spoolss_PrinterMessageBox",
30296 sizeof(struct spoolss_PrinterMessageBox),
30297 (ndr_push_flags_fn_t) ndr_push_spoolss_PrinterMessageBox,
30298 (ndr_pull_flags_fn_t) ndr_pull_spoolss_PrinterMessageBox,
30299 (ndr_print_function_t) ndr_print_spoolss_PrinterMessageBox,
30300 false,
30303 "spoolss_AddMonitor",
30304 sizeof(struct spoolss_AddMonitor),
30305 (ndr_push_flags_fn_t) ndr_push_spoolss_AddMonitor,
30306 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddMonitor,
30307 (ndr_print_function_t) ndr_print_spoolss_AddMonitor,
30308 false,
30311 "spoolss_DeleteMonitor",
30312 sizeof(struct spoolss_DeleteMonitor),
30313 (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteMonitor,
30314 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteMonitor,
30315 (ndr_print_function_t) ndr_print_spoolss_DeleteMonitor,
30316 false,
30319 "spoolss_DeletePrintProcessor",
30320 sizeof(struct spoolss_DeletePrintProcessor),
30321 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrintProcessor,
30322 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrintProcessor,
30323 (ndr_print_function_t) ndr_print_spoolss_DeletePrintProcessor,
30324 false,
30327 "spoolss_AddPrintProvidor",
30328 sizeof(struct spoolss_AddPrintProvidor),
30329 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrintProvidor,
30330 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrintProvidor,
30331 (ndr_print_function_t) ndr_print_spoolss_AddPrintProvidor,
30332 false,
30335 "spoolss_DeletePrintProvidor",
30336 sizeof(struct spoolss_DeletePrintProvidor),
30337 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrintProvidor,
30338 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrintProvidor,
30339 (ndr_print_function_t) ndr_print_spoolss_DeletePrintProvidor,
30340 false,
30343 "spoolss_EnumPrintProcDataTypes",
30344 sizeof(struct spoolss_EnumPrintProcDataTypes),
30345 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrintProcDataTypes,
30346 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrintProcDataTypes,
30347 (ndr_print_function_t) ndr_print_spoolss_EnumPrintProcDataTypes,
30348 false,
30351 "spoolss_ResetPrinter",
30352 sizeof(struct spoolss_ResetPrinter),
30353 (ndr_push_flags_fn_t) ndr_push_spoolss_ResetPrinter,
30354 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ResetPrinter,
30355 (ndr_print_function_t) ndr_print_spoolss_ResetPrinter,
30356 false,
30359 "spoolss_GetPrinterDriver2",
30360 sizeof(struct spoolss_GetPrinterDriver2),
30361 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriver2,
30362 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriver2,
30363 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriver2,
30364 false,
30367 "spoolss_FindFirstPrinterChangeNotification",
30368 sizeof(struct spoolss_FindFirstPrinterChangeNotification),
30369 (ndr_push_flags_fn_t) ndr_push_spoolss_FindFirstPrinterChangeNotification,
30370 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindFirstPrinterChangeNotification,
30371 (ndr_print_function_t) ndr_print_spoolss_FindFirstPrinterChangeNotification,
30372 false,
30375 "spoolss_FindNextPrinterChangeNotification",
30376 sizeof(struct spoolss_FindNextPrinterChangeNotification),
30377 (ndr_push_flags_fn_t) ndr_push_spoolss_FindNextPrinterChangeNotification,
30378 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindNextPrinterChangeNotification,
30379 (ndr_print_function_t) ndr_print_spoolss_FindNextPrinterChangeNotification,
30380 false,
30383 "spoolss_FindClosePrinterNotify",
30384 sizeof(struct spoolss_FindClosePrinterNotify),
30385 (ndr_push_flags_fn_t) ndr_push_spoolss_FindClosePrinterNotify,
30386 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindClosePrinterNotify,
30387 (ndr_print_function_t) ndr_print_spoolss_FindClosePrinterNotify,
30388 false,
30391 "spoolss_RouterFindFirstPrinterChangeNotificationOld",
30392 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotificationOld),
30393 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld,
30394 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld,
30395 (ndr_print_function_t) ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld,
30396 false,
30399 "spoolss_ReplyOpenPrinter",
30400 sizeof(struct spoolss_ReplyOpenPrinter),
30401 (ndr_push_flags_fn_t) ndr_push_spoolss_ReplyOpenPrinter,
30402 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReplyOpenPrinter,
30403 (ndr_print_function_t) ndr_print_spoolss_ReplyOpenPrinter,
30404 false,
30407 "spoolss_RouterReplyPrinter",
30408 sizeof(struct spoolss_RouterReplyPrinter),
30409 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterReplyPrinter,
30410 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterReplyPrinter,
30411 (ndr_print_function_t) ndr_print_spoolss_RouterReplyPrinter,
30412 false,
30415 "spoolss_ReplyClosePrinter",
30416 sizeof(struct spoolss_ReplyClosePrinter),
30417 (ndr_push_flags_fn_t) ndr_push_spoolss_ReplyClosePrinter,
30418 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReplyClosePrinter,
30419 (ndr_print_function_t) ndr_print_spoolss_ReplyClosePrinter,
30420 false,
30423 "spoolss_AddPortEx",
30424 sizeof(struct spoolss_AddPortEx),
30425 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPortEx,
30426 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPortEx,
30427 (ndr_print_function_t) ndr_print_spoolss_AddPortEx,
30428 false,
30431 "spoolss_RouterFindFirstPrinterChangeNotification",
30432 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotification),
30433 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterFindFirstPrinterChangeNotification,
30434 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification,
30435 (ndr_print_function_t) ndr_print_spoolss_RouterFindFirstPrinterChangeNotification,
30436 false,
30439 "spoolss_SpoolerInit",
30440 sizeof(struct spoolss_SpoolerInit),
30441 (ndr_push_flags_fn_t) ndr_push_spoolss_SpoolerInit,
30442 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SpoolerInit,
30443 (ndr_print_function_t) ndr_print_spoolss_SpoolerInit,
30444 false,
30447 "spoolss_ResetPrinterEx",
30448 sizeof(struct spoolss_ResetPrinterEx),
30449 (ndr_push_flags_fn_t) ndr_push_spoolss_ResetPrinterEx,
30450 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ResetPrinterEx,
30451 (ndr_print_function_t) ndr_print_spoolss_ResetPrinterEx,
30452 false,
30455 "spoolss_RemoteFindFirstPrinterChangeNotifyEx",
30456 sizeof(struct spoolss_RemoteFindFirstPrinterChangeNotifyEx),
30457 (ndr_push_flags_fn_t) ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
30458 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
30459 (ndr_print_function_t) ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
30460 false,
30463 "spoolss_RouterReplyPrinterEx",
30464 sizeof(struct spoolss_RouterReplyPrinterEx),
30465 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterReplyPrinterEx,
30466 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterReplyPrinterEx,
30467 (ndr_print_function_t) ndr_print_spoolss_RouterReplyPrinterEx,
30468 false,
30471 "spoolss_RouterRefreshPrinterChangeNotify",
30472 sizeof(struct spoolss_RouterRefreshPrinterChangeNotify),
30473 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterRefreshPrinterChangeNotify,
30474 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterRefreshPrinterChangeNotify,
30475 (ndr_print_function_t) ndr_print_spoolss_RouterRefreshPrinterChangeNotify,
30476 false,
30479 "spoolss_44",
30480 sizeof(struct spoolss_44),
30481 (ndr_push_flags_fn_t) ndr_push_spoolss_44,
30482 (ndr_pull_flags_fn_t) ndr_pull_spoolss_44,
30483 (ndr_print_function_t) ndr_print_spoolss_44,
30484 false,
30487 "spoolss_OpenPrinterEx",
30488 sizeof(struct spoolss_OpenPrinterEx),
30489 (ndr_push_flags_fn_t) ndr_push_spoolss_OpenPrinterEx,
30490 (ndr_pull_flags_fn_t) ndr_pull_spoolss_OpenPrinterEx,
30491 (ndr_print_function_t) ndr_print_spoolss_OpenPrinterEx,
30492 false,
30495 "spoolss_AddPrinterEx",
30496 sizeof(struct spoolss_AddPrinterEx),
30497 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterEx,
30498 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterEx,
30499 (ndr_print_function_t) ndr_print_spoolss_AddPrinterEx,
30500 false,
30503 "spoolss_47",
30504 sizeof(struct spoolss_47),
30505 (ndr_push_flags_fn_t) ndr_push_spoolss_47,
30506 (ndr_pull_flags_fn_t) ndr_pull_spoolss_47,
30507 (ndr_print_function_t) ndr_print_spoolss_47,
30508 false,
30511 "spoolss_EnumPrinterData",
30512 sizeof(struct spoolss_EnumPrinterData),
30513 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterData,
30514 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterData,
30515 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterData,
30516 false,
30519 "spoolss_DeletePrinterData",
30520 sizeof(struct spoolss_DeletePrinterData),
30521 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterData,
30522 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterData,
30523 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterData,
30524 false,
30527 "spoolss_4a",
30528 sizeof(struct spoolss_4a),
30529 (ndr_push_flags_fn_t) ndr_push_spoolss_4a,
30530 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4a,
30531 (ndr_print_function_t) ndr_print_spoolss_4a,
30532 false,
30535 "spoolss_4b",
30536 sizeof(struct spoolss_4b),
30537 (ndr_push_flags_fn_t) ndr_push_spoolss_4b,
30538 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4b,
30539 (ndr_print_function_t) ndr_print_spoolss_4b,
30540 false,
30543 "spoolss_4c",
30544 sizeof(struct spoolss_4c),
30545 (ndr_push_flags_fn_t) ndr_push_spoolss_4c,
30546 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4c,
30547 (ndr_print_function_t) ndr_print_spoolss_4c,
30548 false,
30551 "spoolss_SetPrinterDataEx",
30552 sizeof(struct spoolss_SetPrinterDataEx),
30553 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinterDataEx,
30554 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinterDataEx,
30555 (ndr_print_function_t) ndr_print_spoolss_SetPrinterDataEx,
30556 false,
30559 "spoolss_GetPrinterDataEx",
30560 sizeof(struct spoolss_GetPrinterDataEx),
30561 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDataEx,
30562 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDataEx,
30563 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDataEx,
30564 false,
30567 "spoolss_EnumPrinterDataEx",
30568 sizeof(struct spoolss_EnumPrinterDataEx),
30569 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterDataEx,
30570 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterDataEx,
30571 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterDataEx,
30572 false,
30575 "spoolss_EnumPrinterKey",
30576 sizeof(struct spoolss_EnumPrinterKey),
30577 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterKey,
30578 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterKey,
30579 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterKey,
30580 false,
30583 "spoolss_DeletePrinterDataEx",
30584 sizeof(struct spoolss_DeletePrinterDataEx),
30585 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDataEx,
30586 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDataEx,
30587 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDataEx,
30588 false,
30591 "spoolss_DeletePrinterKey",
30592 sizeof(struct spoolss_DeletePrinterKey),
30593 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterKey,
30594 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterKey,
30595 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterKey,
30596 false,
30599 "spoolss_53",
30600 sizeof(struct spoolss_53),
30601 (ndr_push_flags_fn_t) ndr_push_spoolss_53,
30602 (ndr_pull_flags_fn_t) ndr_pull_spoolss_53,
30603 (ndr_print_function_t) ndr_print_spoolss_53,
30604 false,
30607 "spoolss_DeletePrinterDriverEx",
30608 sizeof(struct spoolss_DeletePrinterDriverEx),
30609 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDriverEx,
30610 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDriverEx,
30611 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDriverEx,
30612 false,
30615 "spoolss_55",
30616 sizeof(struct spoolss_55),
30617 (ndr_push_flags_fn_t) ndr_push_spoolss_55,
30618 (ndr_pull_flags_fn_t) ndr_pull_spoolss_55,
30619 (ndr_print_function_t) ndr_print_spoolss_55,
30620 false,
30623 "spoolss_56",
30624 sizeof(struct spoolss_56),
30625 (ndr_push_flags_fn_t) ndr_push_spoolss_56,
30626 (ndr_pull_flags_fn_t) ndr_pull_spoolss_56,
30627 (ndr_print_function_t) ndr_print_spoolss_56,
30628 false,
30631 "spoolss_57",
30632 sizeof(struct spoolss_57),
30633 (ndr_push_flags_fn_t) ndr_push_spoolss_57,
30634 (ndr_pull_flags_fn_t) ndr_pull_spoolss_57,
30635 (ndr_print_function_t) ndr_print_spoolss_57,
30636 false,
30639 "spoolss_XcvData",
30640 sizeof(struct spoolss_XcvData),
30641 (ndr_push_flags_fn_t) ndr_push_spoolss_XcvData,
30642 (ndr_pull_flags_fn_t) ndr_pull_spoolss_XcvData,
30643 (ndr_print_function_t) ndr_print_spoolss_XcvData,
30644 false,
30647 "spoolss_AddPrinterDriverEx",
30648 sizeof(struct spoolss_AddPrinterDriverEx),
30649 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterDriverEx,
30650 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterDriverEx,
30651 (ndr_print_function_t) ndr_print_spoolss_AddPrinterDriverEx,
30652 false,
30655 "spoolss_5a",
30656 sizeof(struct spoolss_5a),
30657 (ndr_push_flags_fn_t) ndr_push_spoolss_5a,
30658 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5a,
30659 (ndr_print_function_t) ndr_print_spoolss_5a,
30660 false,
30663 "spoolss_5b",
30664 sizeof(struct spoolss_5b),
30665 (ndr_push_flags_fn_t) ndr_push_spoolss_5b,
30666 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5b,
30667 (ndr_print_function_t) ndr_print_spoolss_5b,
30668 false,
30671 "spoolss_5c",
30672 sizeof(struct spoolss_5c),
30673 (ndr_push_flags_fn_t) ndr_push_spoolss_5c,
30674 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5c,
30675 (ndr_print_function_t) ndr_print_spoolss_5c,
30676 false,
30679 "spoolss_5d",
30680 sizeof(struct spoolss_5d),
30681 (ndr_push_flags_fn_t) ndr_push_spoolss_5d,
30682 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5d,
30683 (ndr_print_function_t) ndr_print_spoolss_5d,
30684 false,
30687 "spoolss_5e",
30688 sizeof(struct spoolss_5e),
30689 (ndr_push_flags_fn_t) ndr_push_spoolss_5e,
30690 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5e,
30691 (ndr_print_function_t) ndr_print_spoolss_5e,
30692 false,
30695 "spoolss_5f",
30696 sizeof(struct spoolss_5f),
30697 (ndr_push_flags_fn_t) ndr_push_spoolss_5f,
30698 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5f,
30699 (ndr_print_function_t) ndr_print_spoolss_5f,
30700 false,
30703 "spoolss_60",
30704 sizeof(struct spoolss_60),
30705 (ndr_push_flags_fn_t) ndr_push_spoolss_60,
30706 (ndr_pull_flags_fn_t) ndr_pull_spoolss_60,
30707 (ndr_print_function_t) ndr_print_spoolss_60,
30708 false,
30711 "spoolss_61",
30712 sizeof(struct spoolss_61),
30713 (ndr_push_flags_fn_t) ndr_push_spoolss_61,
30714 (ndr_pull_flags_fn_t) ndr_pull_spoolss_61,
30715 (ndr_print_function_t) ndr_print_spoolss_61,
30716 false,
30719 "spoolss_62",
30720 sizeof(struct spoolss_62),
30721 (ndr_push_flags_fn_t) ndr_push_spoolss_62,
30722 (ndr_pull_flags_fn_t) ndr_pull_spoolss_62,
30723 (ndr_print_function_t) ndr_print_spoolss_62,
30724 false,
30727 "spoolss_63",
30728 sizeof(struct spoolss_63),
30729 (ndr_push_flags_fn_t) ndr_push_spoolss_63,
30730 (ndr_pull_flags_fn_t) ndr_pull_spoolss_63,
30731 (ndr_print_function_t) ndr_print_spoolss_63,
30732 false,
30735 "spoolss_64",
30736 sizeof(struct spoolss_64),
30737 (ndr_push_flags_fn_t) ndr_push_spoolss_64,
30738 (ndr_pull_flags_fn_t) ndr_pull_spoolss_64,
30739 (ndr_print_function_t) ndr_print_spoolss_64,
30740 false,
30743 "spoolss_65",
30744 sizeof(struct spoolss_65),
30745 (ndr_push_flags_fn_t) ndr_push_spoolss_65,
30746 (ndr_pull_flags_fn_t) ndr_pull_spoolss_65,
30747 (ndr_print_function_t) ndr_print_spoolss_65,
30748 false,
30751 "spoolss_GetCorePrinterDrivers",
30752 sizeof(struct spoolss_GetCorePrinterDrivers),
30753 (ndr_push_flags_fn_t) ndr_push_spoolss_GetCorePrinterDrivers,
30754 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetCorePrinterDrivers,
30755 (ndr_print_function_t) ndr_print_spoolss_GetCorePrinterDrivers,
30756 false,
30759 "spoolss_67",
30760 sizeof(struct spoolss_67),
30761 (ndr_push_flags_fn_t) ndr_push_spoolss_67,
30762 (ndr_pull_flags_fn_t) ndr_pull_spoolss_67,
30763 (ndr_print_function_t) ndr_print_spoolss_67,
30764 false,
30767 "spoolss_GetPrinterDriverPackagePath",
30768 sizeof(struct spoolss_GetPrinterDriverPackagePath),
30769 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriverPackagePath,
30770 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriverPackagePath,
30771 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriverPackagePath,
30772 false,
30775 "spoolss_69",
30776 sizeof(struct spoolss_69),
30777 (ndr_push_flags_fn_t) ndr_push_spoolss_69,
30778 (ndr_pull_flags_fn_t) ndr_pull_spoolss_69,
30779 (ndr_print_function_t) ndr_print_spoolss_69,
30780 false,
30783 "spoolss_6a",
30784 sizeof(struct spoolss_6a),
30785 (ndr_push_flags_fn_t) ndr_push_spoolss_6a,
30786 (ndr_pull_flags_fn_t) ndr_pull_spoolss_6a,
30787 (ndr_print_function_t) ndr_print_spoolss_6a,
30788 false,
30791 "spoolss_6b",
30792 sizeof(struct spoolss_6b),
30793 (ndr_push_flags_fn_t) ndr_push_spoolss_6b,
30794 (ndr_pull_flags_fn_t) ndr_pull_spoolss_6b,
30795 (ndr_print_function_t) ndr_print_spoolss_6b,
30796 false,
30799 "spoolss_6c",
30800 sizeof(struct spoolss_6c),
30801 (ndr_push_flags_fn_t) ndr_push_spoolss_6c,
30802 (ndr_pull_flags_fn_t) ndr_pull_spoolss_6c,
30803 (ndr_print_function_t) ndr_print_spoolss_6c,
30804 false,
30807 "spoolss_6d",
30808 sizeof(struct spoolss_6d),
30809 (ndr_push_flags_fn_t) ndr_push_spoolss_6d,
30810 (ndr_pull_flags_fn_t) ndr_pull_spoolss_6d,
30811 (ndr_print_function_t) ndr_print_spoolss_6d,
30812 false,
30814 { NULL, 0, NULL, NULL, NULL, false }
30817 static const char * const spoolss_endpoint_strings[] = {
30818 "ncacn_np:[\\pipe\\spoolss]",
30821 static const struct ndr_interface_string_array spoolss_endpoints = {
30822 .count = 1,
30823 .names = spoolss_endpoint_strings
30826 static const char * const spoolss_authservice_strings[] = {
30827 "host",
30830 static const struct ndr_interface_string_array spoolss_authservices = {
30831 .count = 1,
30832 .names = spoolss_authservice_strings
30836 const struct ndr_interface_table ndr_table_spoolss = {
30837 .name = "spoolss",
30838 .syntax_id = {
30839 {0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0x89,0xab}},
30840 NDR_SPOOLSS_VERSION
30842 .helpstring = NDR_SPOOLSS_HELPSTRING,
30843 .num_calls = 110,
30844 .calls = spoolss_calls,
30845 .endpoints = &spoolss_endpoints,
30846 .authservices = &spoolss_authservices