1 /* parser auto-generated by pidl */
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");
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);
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) {
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)
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));
92 NDR_PULL_ALLOC(ndr, r->time);
96 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
98 if (ndr_flags & NDR_BUFFERS) {
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");
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);
117 ndr_print_spoolss_Time(ndr, "time", r->time);
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)
132 NDR_CHECK(ndr_pull_enum_uint1632(ndr, NDR_SCALARS, &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;
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)
158 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &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;
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)
186 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &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;
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)
212 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &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;
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 _PUBLIC_ 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 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterStatus(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
240 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &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);
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);
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)
286 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &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);
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);
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_start(ndr, r->printername));
362 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
363 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->printername));
365 ndr->flags = _flags_save_string;
368 uint32_t _flags_save_string = ndr->flags;
369 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
371 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->servername));
372 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->servername));
373 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->servername));
375 ndr->flags = _flags_save_string;
378 return NDR_ERR_SUCCESS;
381 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo0(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo0 *r)
383 uint32_t _ptr_printername;
384 TALLOC_CTX *_mem_save_printername_0;
385 uint32_t _ptr_servername;
386 TALLOC_CTX *_mem_save_servername_0;
387 if (ndr_flags & NDR_SCALARS) {
388 NDR_CHECK(ndr_pull_align(ndr, 5));
390 uint32_t _flags_save_string = ndr->flags;
391 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
392 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
393 if (_ptr_printername) {
394 NDR_PULL_ALLOC(ndr, r->printername);
395 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
397 r->printername = NULL;
399 ndr->flags = _flags_save_string;
402 uint32_t _flags_save_string = ndr->flags;
403 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
404 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
405 if (_ptr_servername) {
406 NDR_PULL_ALLOC(ndr, r->servername);
407 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
409 r->servername = NULL;
411 ndr->flags = _flags_save_string;
413 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
414 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_jobs));
415 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_bytes));
416 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->time));
417 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->global_counter));
418 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
419 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
420 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->free_build));
421 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->spooling));
422 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_spooling));
423 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->session_counter));
424 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_out_of_paper));
425 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_not_ready));
426 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->job_error));
427 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->number_of_processors));
428 NDR_CHECK(ndr_pull_spoolss_ProcessorType(ndr, NDR_SCALARS, &r->processor_type));
429 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->high_part_total_bytes));
430 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->change_id));
431 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->last_error));
432 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
433 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->enumerate_network_printers));
434 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->c_setprinter));
435 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor_architecture));
436 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->processor_level));
437 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ref_ic));
438 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
439 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved3));
440 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
442 if (ndr_flags & NDR_BUFFERS) {
444 uint32_t _flags_save_string = ndr->flags;
445 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
446 if (r->printername) {
447 uint32_t _relative_save_offset;
448 _relative_save_offset = ndr->offset;
449 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
450 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
451 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
452 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
453 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
454 if (ndr->offset > ndr->relative_highest_offset) {
455 ndr->relative_highest_offset = ndr->offset;
457 ndr->offset = _relative_save_offset;
459 ndr->flags = _flags_save_string;
462 uint32_t _flags_save_string = ndr->flags;
463 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
465 uint32_t _relative_save_offset;
466 _relative_save_offset = ndr->offset;
467 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
468 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
469 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
470 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
471 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
472 if (ndr->offset > ndr->relative_highest_offset) {
473 ndr->relative_highest_offset = ndr->offset;
475 ndr->offset = _relative_save_offset;
477 ndr->flags = _flags_save_string;
480 return NDR_ERR_SUCCESS;
483 _PUBLIC_ void ndr_print_spoolss_PrinterInfo0(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo0 *r)
485 ndr_print_struct(ndr, name, "spoolss_PrinterInfo0");
487 ndr_print_ptr(ndr, "printername", r->printername);
489 if (r->printername) {
490 ndr_print_string(ndr, "printername", r->printername);
493 ndr_print_ptr(ndr, "servername", r->servername);
496 ndr_print_string(ndr, "servername", r->servername);
499 ndr_print_uint32(ndr, "cjobs", r->cjobs);
500 ndr_print_uint32(ndr, "total_jobs", r->total_jobs);
501 ndr_print_uint32(ndr, "total_bytes", r->total_bytes);
502 ndr_print_spoolss_Time(ndr, "time", &r->time);
503 ndr_print_uint32(ndr, "global_counter", r->global_counter);
504 ndr_print_uint32(ndr, "total_pages", r->total_pages);
505 ndr_print_uint32(ndr, "version", r->version);
506 ndr_print_uint32(ndr, "free_build", r->free_build);
507 ndr_print_uint32(ndr, "spooling", r->spooling);
508 ndr_print_uint32(ndr, "max_spooling", r->max_spooling);
509 ndr_print_uint32(ndr, "session_counter", r->session_counter);
510 ndr_print_uint32(ndr, "num_error_out_of_paper", r->num_error_out_of_paper);
511 ndr_print_uint32(ndr, "num_error_not_ready", r->num_error_not_ready);
512 ndr_print_spoolss_JobStatus(ndr, "job_error", r->job_error);
513 ndr_print_uint32(ndr, "number_of_processors", r->number_of_processors);
514 ndr_print_spoolss_ProcessorType(ndr, "processor_type", r->processor_type);
515 ndr_print_uint32(ndr, "high_part_total_bytes", r->high_part_total_bytes);
516 ndr_print_uint32(ndr, "change_id", r->change_id);
517 ndr_print_WERROR(ndr, "last_error", r->last_error);
518 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
519 ndr_print_uint32(ndr, "enumerate_network_printers", r->enumerate_network_printers);
520 ndr_print_uint32(ndr, "c_setprinter", r->c_setprinter);
521 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor_architecture", r->processor_architecture);
522 ndr_print_uint16(ndr, "processor_level", r->processor_level);
523 ndr_print_uint32(ndr, "ref_ic", r->ref_ic);
524 ndr_print_uint32(ndr, "reserved2", r->reserved2);
525 ndr_print_uint32(ndr, "reserved3", r->reserved3);
529 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo0(const struct spoolss_PrinterInfo0 *r, struct smb_iconv_convenience *ic, int flags)
531 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo0, ic);
534 static enum ndr_err_code ndr_push_spoolss_DeviceModeFields(struct ndr_push *ndr, int ndr_flags, uint32_t r)
536 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
537 return NDR_ERR_SUCCESS;
540 static enum ndr_err_code ndr_pull_spoolss_DeviceModeFields(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
543 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
545 return NDR_ERR_SUCCESS;
548 _PUBLIC_ void ndr_print_spoolss_DeviceModeFields(struct ndr_print *ndr, const char *name, uint32_t r)
550 ndr_print_uint32(ndr, name, r);
552 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_ORIENTATION", DEVMODE_ORIENTATION, r);
553 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PAPERSIZE", DEVMODE_PAPERSIZE, r);
554 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PAPERLENGTH", DEVMODE_PAPERLENGTH, r);
555 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PAPERWIDTH", DEVMODE_PAPERWIDTH, r);
556 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_SCALE", DEVMODE_SCALE, r);
557 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_POSITION", DEVMODE_POSITION, r);
558 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_NUP", DEVMODE_NUP, r);
559 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_COPIES", DEVMODE_COPIES, r);
560 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DEFAULTSOURCE", DEVMODE_DEFAULTSOURCE, r);
561 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PRINTQUALITY", DEVMODE_PRINTQUALITY, r);
562 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_COLOR", DEVMODE_COLOR, r);
563 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DUPLEX", DEVMODE_DUPLEX, r);
564 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_YRESOLUTION", DEVMODE_YRESOLUTION, r);
565 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_TTOPTION", DEVMODE_TTOPTION, r);
566 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_COLLATE", DEVMODE_COLLATE, r);
567 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_FORMNAME", DEVMODE_FORMNAME, r);
568 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_LOGPIXELS", DEVMODE_LOGPIXELS, r);
569 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_BITSPERPEL", DEVMODE_BITSPERPEL, r);
570 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PELSWIDTH", DEVMODE_PELSWIDTH, r);
571 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PELSHEIGHT", DEVMODE_PELSHEIGHT, r);
572 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DISPLAYFLAGS", DEVMODE_DISPLAYFLAGS, r);
573 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DISPLAYFREQUENCY", DEVMODE_DISPLAYFREQUENCY, r);
574 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_ICMMETHOD", DEVMODE_ICMMETHOD, r);
575 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_ICMINTENT", DEVMODE_ICMINTENT, r);
576 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_MEDIATYPE", DEVMODE_MEDIATYPE, r);
577 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DITHERTYPE", DEVMODE_DITHERTYPE, r);
578 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PANNINGWIDTH", DEVMODE_PANNINGWIDTH, r);
579 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PANNINGHEIGHT", DEVMODE_PANNINGHEIGHT, r);
583 static enum ndr_err_code ndr_push_spoolss_DeviceModeSpecVersion(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeSpecVersion r)
585 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
586 return NDR_ERR_SUCCESS;
589 static enum ndr_err_code ndr_pull_spoolss_DeviceModeSpecVersion(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeSpecVersion *r)
592 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
594 return NDR_ERR_SUCCESS;
597 _PUBLIC_ void ndr_print_spoolss_DeviceModeSpecVersion(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeSpecVersion r)
599 const char *val = NULL;
602 case DMSPEC_NT3: val = "DMSPEC_NT3"; break;
603 case DMSPEC_WIN95_98_ME: val = "DMSPEC_WIN95_98_ME"; break;
604 case DMSPEC_NT4_AND_ABOVE: val = "DMSPEC_NT4_AND_ABOVE"; break;
606 ndr_print_enum(ndr, name, "ENUM", val, r);
609 static enum ndr_err_code ndr_push_spoolss_DeviceModeOrientation(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeOrientation r)
611 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
612 return NDR_ERR_SUCCESS;
615 static enum ndr_err_code ndr_pull_spoolss_DeviceModeOrientation(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeOrientation *r)
618 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
620 return NDR_ERR_SUCCESS;
623 _PUBLIC_ void ndr_print_spoolss_DeviceModeOrientation(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeOrientation r)
625 const char *val = NULL;
628 case DMORIENT_PORTRAIT: val = "DMORIENT_PORTRAIT"; break;
629 case DMORIENT_LANDSCAPE: val = "DMORIENT_LANDSCAPE"; break;
631 ndr_print_enum(ndr, name, "ENUM", val, r);
634 static enum ndr_err_code ndr_push_spoolss_DeviceModePaperSize(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModePaperSize r)
636 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
637 return NDR_ERR_SUCCESS;
640 static enum ndr_err_code ndr_pull_spoolss_DeviceModePaperSize(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModePaperSize *r)
643 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
645 return NDR_ERR_SUCCESS;
648 _PUBLIC_ void ndr_print_spoolss_DeviceModePaperSize(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModePaperSize r)
650 const char *val = NULL;
653 case DMPAPER_LETTER: val = "DMPAPER_LETTER"; break;
654 case DMPAPER_LETTERSMALL: val = "DMPAPER_LETTERSMALL"; break;
655 case DMPAPER_TABLOID: val = "DMPAPER_TABLOID"; break;
656 case DMPAPER_LEDGER: val = "DMPAPER_LEDGER"; break;
657 case DMPAPER_LEGAL: val = "DMPAPER_LEGAL"; break;
658 case DMPAPER_STATEMENT: val = "DMPAPER_STATEMENT"; break;
659 case DMPAPER_EXECUTIVE: val = "DMPAPER_EXECUTIVE"; break;
660 case DMPAPER_A3: val = "DMPAPER_A3"; break;
661 case DMPAPER_A4: val = "DMPAPER_A4"; break;
662 case DMPAPER_A4SMALL: val = "DMPAPER_A4SMALL"; break;
663 case DMPAPER_A5: val = "DMPAPER_A5"; break;
664 case DMPAPER_B4: val = "DMPAPER_B4"; break;
665 case DMPAPER_B5: val = "DMPAPER_B5"; break;
666 case DMPAPER_FOLIO: val = "DMPAPER_FOLIO"; break;
667 case DMPAPER_QUARTO: val = "DMPAPER_QUARTO"; break;
668 case DMPAPER_10X14: val = "DMPAPER_10X14"; break;
669 case DMPAPER_11X17: val = "DMPAPER_11X17"; break;
670 case DMPAPER_NOTE: val = "DMPAPER_NOTE"; break;
671 case DMPAPER_ENV_9: val = "DMPAPER_ENV_9"; break;
672 case DMPAPER_ENV_10: val = "DMPAPER_ENV_10"; break;
673 case DMPAPER_ENV_11: val = "DMPAPER_ENV_11"; break;
674 case DMPAPER_ENV_12: val = "DMPAPER_ENV_12"; break;
675 case DMPAPER_ENV_14: val = "DMPAPER_ENV_14"; break;
676 case DMPAPER_CSHEET: val = "DMPAPER_CSHEET"; break;
677 case DMPAPER_DSHEET: val = "DMPAPER_DSHEET"; break;
678 case DMPAPER_ESHEET: val = "DMPAPER_ESHEET"; break;
679 case DMPAPER_ENV_DL: val = "DMPAPER_ENV_DL"; break;
680 case DMPAPER_ENV_C5: val = "DMPAPER_ENV_C5"; break;
681 case DMPAPER_ENV_C3: val = "DMPAPER_ENV_C3"; break;
682 case DMPAPER_ENV_C4: val = "DMPAPER_ENV_C4"; break;
683 case DMPAPER_ENV_C6: val = "DMPAPER_ENV_C6"; break;
684 case DMPAPER_ENV_C65: val = "DMPAPER_ENV_C65"; break;
685 case DMPAPER_ENV_B4: val = "DMPAPER_ENV_B4"; break;
686 case DMPAPER_ENV_B5: val = "DMPAPER_ENV_B5"; break;
687 case DMPAPER_ENV_B6: val = "DMPAPER_ENV_B6"; break;
688 case DMPAPER_ENV_ITALY: val = "DMPAPER_ENV_ITALY"; break;
689 case DMPAPER_ENV_MONARCH: val = "DMPAPER_ENV_MONARCH"; break;
690 case DMPAPER_ENV_PERSONAL: val = "DMPAPER_ENV_PERSONAL"; break;
691 case DMPAPER_FANFOLD_US: val = "DMPAPER_FANFOLD_US"; break;
692 case DMPAPER_FANFOLD_STD_GERMAN: val = "DMPAPER_FANFOLD_STD_GERMAN"; break;
693 case DMPAPER_FANFOLD_LGL_GERMAN: val = "DMPAPER_FANFOLD_LGL_GERMAN"; break;
694 case DMPAPER_DBL_JAPANESE_POSTCARD: val = "DMPAPER_DBL_JAPANESE_POSTCARD"; break;
695 case DMPAPER_A6: val = "DMPAPER_A6"; break;
696 case DMPAPER_JENV_KAKU2: val = "DMPAPER_JENV_KAKU2"; break;
697 case DMPAPER_JENV_KAKU3: val = "DMPAPER_JENV_KAKU3"; break;
698 case DMPAPER_JENV_CHOU3: val = "DMPAPER_JENV_CHOU3"; break;
699 case DMPAPER_JENV_CHOU4: val = "DMPAPER_JENV_CHOU4"; break;
700 case DMPAPER_LETTER_ROTATED: val = "DMPAPER_LETTER_ROTATED"; break;
701 case DMPAPER_A3_ROTATED: val = "DMPAPER_A3_ROTATED"; break;
702 case DMPAPER_A4_ROTATED: val = "DMPAPER_A4_ROTATED"; break;
703 case DMPAPER_A5_ROTATED: val = "DMPAPER_A5_ROTATED"; break;
704 case DMPAPER_B4_JIS_ROTATED: val = "DMPAPER_B4_JIS_ROTATED"; break;
705 case DMPAPER_B5_JIS_ROTATED: val = "DMPAPER_B5_JIS_ROTATED"; break;
706 case DMPAPER_JAPANESE_POSTCARD_ROTATED: val = "DMPAPER_JAPANESE_POSTCARD_ROTATED"; break;
707 case DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED: val = "DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED"; break;
708 case DMPAPER_A6_ROTATED: val = "DMPAPER_A6_ROTATED"; break;
709 case DMPAPER_JENV_KAKU2_ROTATED: val = "DMPAPER_JENV_KAKU2_ROTATED"; break;
710 case DMPAPER_JENV_KAKU3_ROTATED: val = "DMPAPER_JENV_KAKU3_ROTATED"; break;
711 case DMPAPER_JENV_CHOU3_ROTATED: val = "DMPAPER_JENV_CHOU3_ROTATED"; break;
712 case DMPAPER_JENV_CHOU4_ROTATED: val = "DMPAPER_JENV_CHOU4_ROTATED"; break;
713 case DMPAPER_B6_JIS: val = "DMPAPER_B6_JIS"; break;
714 case DMPAPER_B6_JIS_ROTATED: val = "DMPAPER_B6_JIS_ROTATED"; break;
715 case DMPAPER_12X11: val = "DMPAPER_12X11"; break;
716 case DMPAPER_JENV_YOU4: val = "DMPAPER_JENV_YOU4"; break;
717 case DMPAPER_JENV_YOU4_ROTATED: val = "DMPAPER_JENV_YOU4_ROTATED"; break;
718 case DMPAPER_P16K: val = "DMPAPER_P16K"; break;
719 case DMPAPER_P32K: val = "DMPAPER_P32K"; break;
720 case DMPAPER_P32KBIG: val = "DMPAPER_P32KBIG"; break;
721 case DMPAPER_PENV_1: val = "DMPAPER_PENV_1"; break;
722 case DMPAPER_PENV_2: val = "DMPAPER_PENV_2"; break;
723 case DMPAPER_PENV_3: val = "DMPAPER_PENV_3"; break;
724 case DMPAPER_PENV_4: val = "DMPAPER_PENV_4"; break;
725 case DMPAPER_PENV_5: val = "DMPAPER_PENV_5"; break;
726 case DMPAPER_PENV_6: val = "DMPAPER_PENV_6"; break;
727 case DMPAPER_PENV_7: val = "DMPAPER_PENV_7"; break;
728 case DMPAPER_PENV_8: val = "DMPAPER_PENV_8"; break;
729 case DMPAPER_PENV_9: val = "DMPAPER_PENV_9"; break;
730 case DMPAPER_PENV_10: val = "DMPAPER_PENV_10"; break;
731 case DMPAPER_P16K_ROTATED: val = "DMPAPER_P16K_ROTATED"; break;
732 case DMPAPER_P32K_ROTATED: val = "DMPAPER_P32K_ROTATED"; break;
733 case DMPAPER_P32KBIG_ROTATED: val = "DMPAPER_P32KBIG_ROTATED"; break;
734 case DMPAPER_PENV_1_ROTATED: val = "DMPAPER_PENV_1_ROTATED"; break;
735 case DMPAPER_PENV_2_ROTATED: val = "DMPAPER_PENV_2_ROTATED"; break;
736 case DMPAPER_PENV_3_ROTATED: val = "DMPAPER_PENV_3_ROTATED"; break;
737 case DMPAPER_PENV_4_ROTATED: val = "DMPAPER_PENV_4_ROTATED"; break;
738 case DMPAPER_PENV_5_ROTATED: val = "DMPAPER_PENV_5_ROTATED"; break;
739 case DMPAPER_PENV_6_ROTATED: val = "DMPAPER_PENV_6_ROTATED"; break;
740 case DMPAPER_PENV_7_ROTATED: val = "DMPAPER_PENV_7_ROTATED"; break;
741 case DMPAPER_PENV_8_ROTATED: val = "DMPAPER_PENV_8_ROTATED"; break;
742 case DMPAPER_PENV_9_ROTATED: val = "DMPAPER_PENV_9_ROTATED"; break;
743 case DMPAPER_PENV_10_ROTATED: val = "DMPAPER_PENV_10_ROTATED"; break;
745 ndr_print_enum(ndr, name, "ENUM", val, r);
748 static enum ndr_err_code ndr_push_spoolss_DeviceModeDefaultSource(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeDefaultSource r)
750 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
751 return NDR_ERR_SUCCESS;
754 static enum ndr_err_code ndr_pull_spoolss_DeviceModeDefaultSource(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeDefaultSource *r)
757 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
759 return NDR_ERR_SUCCESS;
762 _PUBLIC_ void ndr_print_spoolss_DeviceModeDefaultSource(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeDefaultSource r)
764 const char *val = NULL;
767 case DMBIN_UPPER: val = "DMBIN_UPPER"; break;
768 case DMBIN_LOWER: val = "DMBIN_LOWER"; break;
769 case DMBIN_MIDDLE: val = "DMBIN_MIDDLE"; break;
770 case DMBIN_MANUAL: val = "DMBIN_MANUAL"; break;
771 case DMBIN_ENVELOPE: val = "DMBIN_ENVELOPE"; break;
772 case DMBIN_ENVMANUAL: val = "DMBIN_ENVMANUAL"; break;
773 case DMBIN_AUTO: val = "DMBIN_AUTO"; break;
774 case DMBIN_TRACTOR: val = "DMBIN_TRACTOR"; break;
775 case DMBIN_SMALLFMT: val = "DMBIN_SMALLFMT"; break;
776 case DMBIN_LARGEFMT: val = "DMBIN_LARGEFMT"; break;
777 case DMBIN_LARGECAPACITY: val = "DMBIN_LARGECAPACITY"; break;
778 case DMBIN_CASSETTE: val = "DMBIN_CASSETTE"; break;
779 case DMBIN_FORMSOURCE: val = "DMBIN_FORMSOURCE"; break;
781 ndr_print_enum(ndr, name, "ENUM", val, r);
784 static enum ndr_err_code ndr_push_spoolss_DeviceModePrintQuality(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModePrintQuality r)
786 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
787 return NDR_ERR_SUCCESS;
790 static enum ndr_err_code ndr_pull_spoolss_DeviceModePrintQuality(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModePrintQuality *r)
793 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
795 return NDR_ERR_SUCCESS;
798 _PUBLIC_ void ndr_print_spoolss_DeviceModePrintQuality(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModePrintQuality r)
800 const char *val = NULL;
803 case DMRES_HIGH: val = "DMRES_HIGH"; break;
804 case DMRES_MEDIUM: val = "DMRES_MEDIUM"; break;
805 case DMRES_LOW: val = "DMRES_LOW"; break;
806 case DMRES_DRAFT: val = "DMRES_DRAFT"; break;
808 ndr_print_enum(ndr, name, "ENUM", val, r);
811 static enum ndr_err_code ndr_push_spoolss_DeviceModeColor(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeColor r)
813 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
814 return NDR_ERR_SUCCESS;
817 static enum ndr_err_code ndr_pull_spoolss_DeviceModeColor(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeColor *r)
820 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
822 return NDR_ERR_SUCCESS;
825 _PUBLIC_ void ndr_print_spoolss_DeviceModeColor(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeColor r)
827 const char *val = NULL;
830 case DMRES_MONOCHROME: val = "DMRES_MONOCHROME"; break;
831 case DMRES_COLOR: val = "DMRES_COLOR"; break;
833 ndr_print_enum(ndr, name, "ENUM", val, r);
836 static enum ndr_err_code ndr_push_spoolss_DeviceModeDuplex(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeDuplex r)
838 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
839 return NDR_ERR_SUCCESS;
842 static enum ndr_err_code ndr_pull_spoolss_DeviceModeDuplex(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeDuplex *r)
845 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
847 return NDR_ERR_SUCCESS;
850 _PUBLIC_ void ndr_print_spoolss_DeviceModeDuplex(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeDuplex r)
852 const char *val = NULL;
855 case DMDUP_SIMPLEX: val = "DMDUP_SIMPLEX"; break;
856 case DMDUP_VERTICAL: val = "DMDUP_VERTICAL"; break;
857 case DMDUP_HORIZONTAL: val = "DMDUP_HORIZONTAL"; break;
859 ndr_print_enum(ndr, name, "ENUM", val, r);
862 static enum ndr_err_code ndr_push_spoolss_DeviceModeTTOption(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeTTOption r)
864 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
865 return NDR_ERR_SUCCESS;
868 static enum ndr_err_code ndr_pull_spoolss_DeviceModeTTOption(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeTTOption *r)
871 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
873 return NDR_ERR_SUCCESS;
876 _PUBLIC_ void ndr_print_spoolss_DeviceModeTTOption(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeTTOption r)
878 const char *val = NULL;
881 case DMTT_BITMAP: val = "DMTT_BITMAP"; break;
882 case DMTT_DOWNLOAD: val = "DMTT_DOWNLOAD"; break;
883 case DMTT_SUBDEV: val = "DMTT_SUBDEV"; break;
884 case DMTT_DOWNLOAD_OUTLINE: val = "DMTT_DOWNLOAD_OUTLINE"; break;
886 ndr_print_enum(ndr, name, "ENUM", val, r);
889 static enum ndr_err_code ndr_push_spoolss_DeviceModeCollate(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeCollate r)
891 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
892 return NDR_ERR_SUCCESS;
895 static enum ndr_err_code ndr_pull_spoolss_DeviceModeCollate(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeCollate *r)
898 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
900 return NDR_ERR_SUCCESS;
903 _PUBLIC_ void ndr_print_spoolss_DeviceModeCollate(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeCollate r)
905 const char *val = NULL;
908 case DMCOLLATE_FALSE: val = "DMCOLLATE_FALSE"; break;
909 case DMCOLLATE_TRUE: val = "DMCOLLATE_TRUE"; break;
911 ndr_print_enum(ndr, name, "ENUM", val, r);
914 static enum ndr_err_code ndr_push_spoolss_DeviceModeNUp(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeNUp r)
916 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
917 return NDR_ERR_SUCCESS;
920 static enum ndr_err_code ndr_pull_spoolss_DeviceModeNUp(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeNUp *r)
923 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
925 return NDR_ERR_SUCCESS;
928 _PUBLIC_ void ndr_print_spoolss_DeviceModeNUp(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeNUp r)
930 const char *val = NULL;
933 case DMNUP_SYSTEM: val = "DMNUP_SYSTEM"; break;
934 case DMNUP_ONEUP: val = "DMNUP_ONEUP"; break;
936 ndr_print_enum(ndr, name, "ENUM", val, r);
939 static enum ndr_err_code ndr_push_spoolss_DeviceModeICMMethod(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeICMMethod r)
941 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
942 return NDR_ERR_SUCCESS;
945 static enum ndr_err_code ndr_pull_spoolss_DeviceModeICMMethod(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeICMMethod *r)
948 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
950 return NDR_ERR_SUCCESS;
953 _PUBLIC_ void ndr_print_spoolss_DeviceModeICMMethod(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeICMMethod r)
955 const char *val = NULL;
958 case DMICMMETHOD_NONE: val = "DMICMMETHOD_NONE"; break;
959 case DMICMMETHOD_SYSTEM: val = "DMICMMETHOD_SYSTEM"; break;
960 case DMICMMETHOD_DRIVER: val = "DMICMMETHOD_DRIVER"; break;
961 case DMICMMETHOD_DEVICE: val = "DMICMMETHOD_DEVICE"; break;
963 ndr_print_enum(ndr, name, "ENUM", val, r);
966 static enum ndr_err_code ndr_push_spoolss_DeviceModeICMIntent(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeICMIntent r)
968 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
969 return NDR_ERR_SUCCESS;
972 static enum ndr_err_code ndr_pull_spoolss_DeviceModeICMIntent(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeICMIntent *r)
975 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
977 return NDR_ERR_SUCCESS;
980 _PUBLIC_ void ndr_print_spoolss_DeviceModeICMIntent(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeICMIntent r)
982 const char *val = NULL;
985 case DMICM_SATURATE: val = "DMICM_SATURATE"; break;
986 case DMICM_CONTRAST: val = "DMICM_CONTRAST"; break;
987 case DMICM_COLORIMETRIC: val = "DMICM_COLORIMETRIC"; break;
988 case DMICM_ABS_COLORIMETRIC: val = "DMICM_ABS_COLORIMETRIC"; break;
990 ndr_print_enum(ndr, name, "ENUM", val, r);
993 static enum ndr_err_code ndr_push_spoolss_DeviceModeMediaType(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeMediaType r)
995 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
996 return NDR_ERR_SUCCESS;
999 static enum ndr_err_code ndr_pull_spoolss_DeviceModeMediaType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeMediaType *r)
1002 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
1004 return NDR_ERR_SUCCESS;
1007 _PUBLIC_ void ndr_print_spoolss_DeviceModeMediaType(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeMediaType r)
1009 const char *val = NULL;
1012 case DMMEDIA_STANDARD: val = "DMMEDIA_STANDARD"; break;
1013 case DMMEDIA_TRANSPARENCY: val = "DMMEDIA_TRANSPARENCY"; break;
1014 case DMMEDIA_GLOSSY: val = "DMMEDIA_GLOSSY"; break;
1016 ndr_print_enum(ndr, name, "ENUM", val, r);
1019 static enum ndr_err_code ndr_push_spoolss_DeviceModeDitherType(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeDitherType r)
1021 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
1022 return NDR_ERR_SUCCESS;
1025 static enum ndr_err_code ndr_pull_spoolss_DeviceModeDitherType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeDitherType *r)
1028 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
1030 return NDR_ERR_SUCCESS;
1033 _PUBLIC_ void ndr_print_spoolss_DeviceModeDitherType(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeDitherType r)
1035 const char *val = NULL;
1038 case DMDITHER_NONE: val = "DMDITHER_NONE"; break;
1039 case DMDITHER_COARSE: val = "DMDITHER_COARSE"; break;
1040 case DMDITHER_FINE: val = "DMDITHER_FINE"; break;
1041 case DMDITHER_LINEART: val = "DMDITHER_LINEART"; break;
1042 case DMDITHER_ERRORDIFFUSION: val = "DMDITHER_ERRORDIFFUSION"; break;
1043 case DMDITHER_RESERVED6: val = "DMDITHER_RESERVED6"; break;
1044 case DMDITHER_RESERVED7: val = "DMDITHER_RESERVED7"; break;
1045 case DMDITHER_RESERVED8: val = "DMDITHER_RESERVED8"; break;
1046 case DMDITHER_RESERVED9: val = "DMDITHER_RESERVED9"; break;
1047 case DMDITHER_GRAYSCALE: val = "DMDITHER_GRAYSCALE"; break;
1049 ndr_print_enum(ndr, name, "ENUM", val, r);
1052 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DeviceMode(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DeviceMode *r)
1054 if (ndr_flags & NDR_SCALARS) {
1055 NDR_CHECK(ndr_push_align(ndr, 4));
1056 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->devicename, MAXDEVICENAME, sizeof(uint16_t), CH_UTF16));
1057 NDR_CHECK(ndr_push_spoolss_DeviceModeSpecVersion(ndr, NDR_SCALARS, r->specversion));
1058 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->driverversion));
1059 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->size));
1060 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->driverextra_data.length));
1061 NDR_CHECK(ndr_push_spoolss_DeviceModeFields(ndr, NDR_SCALARS, r->fields));
1062 NDR_CHECK(ndr_push_spoolss_DeviceModeOrientation(ndr, NDR_SCALARS, r->orientation));
1063 NDR_CHECK(ndr_push_spoolss_DeviceModePaperSize(ndr, NDR_SCALARS, r->papersize));
1064 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->paperlength));
1065 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->paperwidth));
1066 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->scale));
1067 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->copies));
1068 NDR_CHECK(ndr_push_spoolss_DeviceModeDefaultSource(ndr, NDR_SCALARS, r->defaultsource));
1069 NDR_CHECK(ndr_push_spoolss_DeviceModePrintQuality(ndr, NDR_SCALARS, r->printquality));
1070 NDR_CHECK(ndr_push_spoolss_DeviceModeColor(ndr, NDR_SCALARS, r->color));
1071 NDR_CHECK(ndr_push_spoolss_DeviceModeDuplex(ndr, NDR_SCALARS, r->duplex));
1072 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->yresolution));
1073 NDR_CHECK(ndr_push_spoolss_DeviceModeTTOption(ndr, NDR_SCALARS, r->ttoption));
1074 NDR_CHECK(ndr_push_spoolss_DeviceModeCollate(ndr, NDR_SCALARS, r->collate));
1075 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->formname, MAXDEVICENAME, sizeof(uint16_t), CH_UTF16));
1076 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logpixels));
1077 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bitsperpel));
1078 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pelswidth));
1079 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pelsheight));
1080 NDR_CHECK(ndr_push_spoolss_DeviceModeNUp(ndr, NDR_SCALARS, r->displayflags));
1081 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->displayfrequency));
1082 NDR_CHECK(ndr_push_spoolss_DeviceModeICMMethod(ndr, NDR_SCALARS, r->icmmethod));
1083 NDR_CHECK(ndr_push_spoolss_DeviceModeICMIntent(ndr, NDR_SCALARS, r->icmintent));
1084 NDR_CHECK(ndr_push_spoolss_DeviceModeMediaType(ndr, NDR_SCALARS, r->mediatype));
1085 NDR_CHECK(ndr_push_spoolss_DeviceModeDitherType(ndr, NDR_SCALARS, r->dithertype));
1086 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved1));
1087 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved2));
1088 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->panningwidth));
1089 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->panningheight));
1091 uint32_t _flags_save_DATA_BLOB = ndr->flags;
1092 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
1094 struct ndr_push *_ndr_driverextra_data;
1095 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_driverextra_data, 0, r->driverextra_data.length));
1096 NDR_CHECK(ndr_push_DATA_BLOB(_ndr_driverextra_data, NDR_SCALARS, r->driverextra_data));
1097 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_driverextra_data, 0, r->driverextra_data.length));
1099 ndr->flags = _flags_save_DATA_BLOB;
1101 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
1103 if (ndr_flags & NDR_BUFFERS) {
1105 return NDR_ERR_SUCCESS;
1108 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DeviceMode(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DeviceMode *r)
1110 if (ndr_flags & NDR_SCALARS) {
1111 NDR_CHECK(ndr_pull_align(ndr, 4));
1112 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->devicename, MAXDEVICENAME, sizeof(uint16_t), CH_UTF16));
1113 NDR_CHECK(ndr_pull_spoolss_DeviceModeSpecVersion(ndr, NDR_SCALARS, &r->specversion));
1114 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->driverversion));
1115 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
1116 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->__driverextra_length));
1117 NDR_CHECK(ndr_pull_spoolss_DeviceModeFields(ndr, NDR_SCALARS, &r->fields));
1118 NDR_CHECK(ndr_pull_spoolss_DeviceModeOrientation(ndr, NDR_SCALARS, &r->orientation));
1119 NDR_CHECK(ndr_pull_spoolss_DeviceModePaperSize(ndr, NDR_SCALARS, &r->papersize));
1120 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->paperlength));
1121 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->paperwidth));
1122 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->scale));
1123 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->copies));
1124 NDR_CHECK(ndr_pull_spoolss_DeviceModeDefaultSource(ndr, NDR_SCALARS, &r->defaultsource));
1125 NDR_CHECK(ndr_pull_spoolss_DeviceModePrintQuality(ndr, NDR_SCALARS, &r->printquality));
1126 NDR_CHECK(ndr_pull_spoolss_DeviceModeColor(ndr, NDR_SCALARS, &r->color));
1127 NDR_CHECK(ndr_pull_spoolss_DeviceModeDuplex(ndr, NDR_SCALARS, &r->duplex));
1128 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->yresolution));
1129 NDR_CHECK(ndr_pull_spoolss_DeviceModeTTOption(ndr, NDR_SCALARS, &r->ttoption));
1130 NDR_CHECK(ndr_pull_spoolss_DeviceModeCollate(ndr, NDR_SCALARS, &r->collate));
1131 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->formname, MAXDEVICENAME, sizeof(uint16_t), CH_UTF16));
1132 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logpixels));
1133 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bitsperpel));
1134 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pelswidth));
1135 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pelsheight));
1136 NDR_CHECK(ndr_pull_spoolss_DeviceModeNUp(ndr, NDR_SCALARS, &r->displayflags));
1137 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->displayfrequency));
1138 NDR_CHECK(ndr_pull_spoolss_DeviceModeICMMethod(ndr, NDR_SCALARS, &r->icmmethod));
1139 NDR_CHECK(ndr_pull_spoolss_DeviceModeICMIntent(ndr, NDR_SCALARS, &r->icmintent));
1140 NDR_CHECK(ndr_pull_spoolss_DeviceModeMediaType(ndr, NDR_SCALARS, &r->mediatype));
1141 NDR_CHECK(ndr_pull_spoolss_DeviceModeDitherType(ndr, NDR_SCALARS, &r->dithertype));
1142 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved1));
1143 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
1144 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->panningwidth));
1145 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->panningheight));
1147 uint32_t _flags_save_DATA_BLOB = ndr->flags;
1148 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
1150 struct ndr_pull *_ndr_driverextra_data;
1151 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_driverextra_data, 0, r->__driverextra_length));
1152 NDR_CHECK(ndr_pull_DATA_BLOB(_ndr_driverextra_data, NDR_SCALARS, &r->driverextra_data));
1153 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_driverextra_data, 0, r->__driverextra_length));
1155 ndr->flags = _flags_save_DATA_BLOB;
1157 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
1159 if (ndr_flags & NDR_BUFFERS) {
1161 return NDR_ERR_SUCCESS;
1164 _PUBLIC_ void ndr_print_spoolss_DeviceMode(struct ndr_print *ndr, const char *name, const struct spoolss_DeviceMode *r)
1166 ndr_print_struct(ndr, name, "spoolss_DeviceMode");
1168 ndr_print_string(ndr, "devicename", r->devicename);
1169 ndr_print_spoolss_DeviceModeSpecVersion(ndr, "specversion", r->specversion);
1170 ndr_print_uint16(ndr, "driverversion", r->driverversion);
1171 ndr_print_uint16(ndr, "size", r->size);
1172 ndr_print_uint16(ndr, "__driverextra_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->driverextra_data.length:r->__driverextra_length);
1173 ndr_print_spoolss_DeviceModeFields(ndr, "fields", r->fields);
1174 ndr_print_spoolss_DeviceModeOrientation(ndr, "orientation", r->orientation);
1175 ndr_print_spoolss_DeviceModePaperSize(ndr, "papersize", r->papersize);
1176 ndr_print_uint16(ndr, "paperlength", r->paperlength);
1177 ndr_print_uint16(ndr, "paperwidth", r->paperwidth);
1178 ndr_print_uint16(ndr, "scale", r->scale);
1179 ndr_print_uint16(ndr, "copies", r->copies);
1180 ndr_print_spoolss_DeviceModeDefaultSource(ndr, "defaultsource", r->defaultsource);
1181 ndr_print_spoolss_DeviceModePrintQuality(ndr, "printquality", r->printquality);
1182 ndr_print_spoolss_DeviceModeColor(ndr, "color", r->color);
1183 ndr_print_spoolss_DeviceModeDuplex(ndr, "duplex", r->duplex);
1184 ndr_print_uint16(ndr, "yresolution", r->yresolution);
1185 ndr_print_spoolss_DeviceModeTTOption(ndr, "ttoption", r->ttoption);
1186 ndr_print_spoolss_DeviceModeCollate(ndr, "collate", r->collate);
1187 ndr_print_string(ndr, "formname", r->formname);
1188 ndr_print_uint16(ndr, "logpixels", r->logpixels);
1189 ndr_print_uint32(ndr, "bitsperpel", r->bitsperpel);
1190 ndr_print_uint32(ndr, "pelswidth", r->pelswidth);
1191 ndr_print_uint32(ndr, "pelsheight", r->pelsheight);
1192 ndr_print_spoolss_DeviceModeNUp(ndr, "displayflags", r->displayflags);
1193 ndr_print_uint32(ndr, "displayfrequency", r->displayfrequency);
1194 ndr_print_spoolss_DeviceModeICMMethod(ndr, "icmmethod", r->icmmethod);
1195 ndr_print_spoolss_DeviceModeICMIntent(ndr, "icmintent", r->icmintent);
1196 ndr_print_spoolss_DeviceModeMediaType(ndr, "mediatype", r->mediatype);
1197 ndr_print_spoolss_DeviceModeDitherType(ndr, "dithertype", r->dithertype);
1198 ndr_print_uint32(ndr, "reserved1", r->reserved1);
1199 ndr_print_uint32(ndr, "reserved2", r->reserved2);
1200 ndr_print_uint32(ndr, "panningwidth", r->panningwidth);
1201 ndr_print_uint32(ndr, "panningheight", r->panningheight);
1202 ndr_print_DATA_BLOB(ndr, "driverextra_data", r->driverextra_data);
1206 _PUBLIC_ size_t ndr_size_spoolss_DeviceMode(const struct spoolss_DeviceMode *r, struct smb_iconv_convenience *ic, int flags)
1208 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DeviceMode, ic);
1211 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
1213 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
1214 return NDR_ERR_SUCCESS;
1217 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
1220 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
1222 return NDR_ERR_SUCCESS;
1225 _PUBLIC_ void ndr_print_spoolss_EnumPrinterFlags(struct ndr_print *ndr, const char *name, uint32_t r)
1227 ndr_print_uint32(ndr, name, r);
1229 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_DEFAULT", PRINTER_ENUM_DEFAULT, r);
1230 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_LOCAL", PRINTER_ENUM_LOCAL, r);
1231 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_CONNECTIONS", PRINTER_ENUM_CONNECTIONS, r);
1232 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_FAVORITE", PRINTER_ENUM_FAVORITE, r);
1233 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_NAME", PRINTER_ENUM_NAME, r);
1234 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_REMOTE", PRINTER_ENUM_REMOTE, r);
1235 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_SHARED", PRINTER_ENUM_SHARED, r);
1236 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_NETWORK", PRINTER_ENUM_NETWORK, r);
1237 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_EXPAND", PRINTER_ENUM_EXPAND, r);
1238 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_CONTAINER", PRINTER_ENUM_CONTAINER, r);
1239 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON1", PRINTER_ENUM_ICON1, r);
1240 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON2", PRINTER_ENUM_ICON2, r);
1241 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON3", PRINTER_ENUM_ICON3, r);
1242 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON4", PRINTER_ENUM_ICON4, r);
1243 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON5", PRINTER_ENUM_ICON5, r);
1244 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON6", PRINTER_ENUM_ICON6, r);
1245 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON7", PRINTER_ENUM_ICON7, r);
1246 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON8", PRINTER_ENUM_ICON8, r);
1247 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_HIDE", PRINTER_ENUM_HIDE, r);
1251 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterAttributes(struct ndr_push *ndr, int ndr_flags, uint32_t r)
1253 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
1254 return NDR_ERR_SUCCESS;
1257 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterAttributes(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
1260 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
1262 return NDR_ERR_SUCCESS;
1265 _PUBLIC_ void ndr_print_spoolss_PrinterAttributes(struct ndr_print *ndr, const char *name, uint32_t r)
1267 ndr_print_uint32(ndr, name, r);
1269 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_QUEUED", PRINTER_ATTRIBUTE_QUEUED, r);
1270 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DIRECT", PRINTER_ATTRIBUTE_DIRECT, r);
1271 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DEFAULT", PRINTER_ATTRIBUTE_DEFAULT, r);
1272 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_SHARED", PRINTER_ATTRIBUTE_SHARED, r);
1273 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_NETWORK", PRINTER_ATTRIBUTE_NETWORK, r);
1274 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_HIDDEN", PRINTER_ATTRIBUTE_HIDDEN, r);
1275 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_LOCAL", PRINTER_ATTRIBUTE_LOCAL, r);
1276 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_ENABLE_DEVQ", PRINTER_ATTRIBUTE_ENABLE_DEVQ, r);
1277 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS", PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS, r);
1278 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST", PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST, r);
1279 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_WORK_OFFLINE", PRINTER_ATTRIBUTE_WORK_OFFLINE, r);
1280 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_ENABLE_BIDI", PRINTER_ATTRIBUTE_ENABLE_BIDI, r);
1281 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_RAW_ONLY", PRINTER_ATTRIBUTE_RAW_ONLY, r);
1282 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_PUBLISHED", PRINTER_ATTRIBUTE_PUBLISHED, r);
1283 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_FAX", PRINTER_ATTRIBUTE_FAX, r);
1284 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_TS", PRINTER_ATTRIBUTE_TS, r);
1288 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo1 *r)
1290 if (ndr_flags & NDR_SCALARS) {
1291 NDR_CHECK(ndr_push_align(ndr, 5));
1292 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->flags));
1294 uint32_t _flags_save_string = ndr->flags;
1295 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1296 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->description));
1297 ndr->flags = _flags_save_string;
1300 uint32_t _flags_save_string = ndr->flags;
1301 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1302 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->name));
1303 ndr->flags = _flags_save_string;
1306 uint32_t _flags_save_string = ndr->flags;
1307 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1308 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->comment));
1309 ndr->flags = _flags_save_string;
1311 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
1313 if (ndr_flags & NDR_BUFFERS) {
1315 uint32_t _flags_save_string = ndr->flags;
1316 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1317 if (r->description) {
1318 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->description));
1319 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->description));
1320 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->description));
1322 ndr->flags = _flags_save_string;
1325 uint32_t _flags_save_string = ndr->flags;
1326 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1328 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->name));
1329 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->name));
1330 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->name));
1332 ndr->flags = _flags_save_string;
1335 uint32_t _flags_save_string = ndr->flags;
1336 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1338 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->comment));
1339 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->comment));
1340 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->comment));
1342 ndr->flags = _flags_save_string;
1345 return NDR_ERR_SUCCESS;
1348 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo1 *r)
1350 uint32_t _ptr_description;
1351 TALLOC_CTX *_mem_save_description_0;
1353 TALLOC_CTX *_mem_save_name_0;
1354 uint32_t _ptr_comment;
1355 TALLOC_CTX *_mem_save_comment_0;
1356 if (ndr_flags & NDR_SCALARS) {
1357 NDR_CHECK(ndr_pull_align(ndr, 5));
1358 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->flags));
1360 uint32_t _flags_save_string = ndr->flags;
1361 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1362 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
1363 if (_ptr_description) {
1364 NDR_PULL_ALLOC(ndr, r->description);
1365 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->description, _ptr_description));
1367 r->description = NULL;
1369 ndr->flags = _flags_save_string;
1372 uint32_t _flags_save_string = ndr->flags;
1373 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1374 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
1376 NDR_PULL_ALLOC(ndr, r->name);
1377 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->name, _ptr_name));
1381 ndr->flags = _flags_save_string;
1384 uint32_t _flags_save_string = ndr->flags;
1385 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1386 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
1388 NDR_PULL_ALLOC(ndr, r->comment);
1389 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->comment, _ptr_comment));
1393 ndr->flags = _flags_save_string;
1395 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
1397 if (ndr_flags & NDR_BUFFERS) {
1399 uint32_t _flags_save_string = ndr->flags;
1400 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1401 if (r->description) {
1402 uint32_t _relative_save_offset;
1403 _relative_save_offset = ndr->offset;
1404 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->description));
1405 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
1406 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
1407 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->description));
1408 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
1409 if (ndr->offset > ndr->relative_highest_offset) {
1410 ndr->relative_highest_offset = ndr->offset;
1412 ndr->offset = _relative_save_offset;
1414 ndr->flags = _flags_save_string;
1417 uint32_t _flags_save_string = ndr->flags;
1418 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1420 uint32_t _relative_save_offset;
1421 _relative_save_offset = ndr->offset;
1422 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->name));
1423 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
1424 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
1425 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->name));
1426 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
1427 if (ndr->offset > ndr->relative_highest_offset) {
1428 ndr->relative_highest_offset = ndr->offset;
1430 ndr->offset = _relative_save_offset;
1432 ndr->flags = _flags_save_string;
1435 uint32_t _flags_save_string = ndr->flags;
1436 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1438 uint32_t _relative_save_offset;
1439 _relative_save_offset = ndr->offset;
1440 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->comment));
1441 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
1442 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
1443 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->comment));
1444 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
1445 if (ndr->offset > ndr->relative_highest_offset) {
1446 ndr->relative_highest_offset = ndr->offset;
1448 ndr->offset = _relative_save_offset;
1450 ndr->flags = _flags_save_string;
1453 return NDR_ERR_SUCCESS;
1456 _PUBLIC_ void ndr_print_spoolss_PrinterInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo1 *r)
1458 ndr_print_struct(ndr, name, "spoolss_PrinterInfo1");
1460 ndr_print_spoolss_PrinterAttributes(ndr, "flags", r->flags);
1461 ndr_print_ptr(ndr, "description", r->description);
1463 if (r->description) {
1464 ndr_print_string(ndr, "description", r->description);
1467 ndr_print_ptr(ndr, "name", r->name);
1470 ndr_print_string(ndr, "name", r->name);
1473 ndr_print_ptr(ndr, "comment", r->comment);
1476 ndr_print_string(ndr, "comment", r->comment);
1482 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo1(const struct spoolss_PrinterInfo1 *r, struct smb_iconv_convenience *ic, int flags)
1484 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo1, ic);
1487 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo2 *r)
1489 uint32_t _ptr_servername;
1490 TALLOC_CTX *_mem_save_servername_0;
1491 uint32_t _ptr_printername;
1492 TALLOC_CTX *_mem_save_printername_0;
1493 uint32_t _ptr_sharename;
1494 TALLOC_CTX *_mem_save_sharename_0;
1495 uint32_t _ptr_portname;
1496 TALLOC_CTX *_mem_save_portname_0;
1497 uint32_t _ptr_drivername;
1498 TALLOC_CTX *_mem_save_drivername_0;
1499 uint32_t _ptr_comment;
1500 TALLOC_CTX *_mem_save_comment_0;
1501 uint32_t _ptr_location;
1502 TALLOC_CTX *_mem_save_location_0;
1503 uint32_t _ptr_devmode;
1504 TALLOC_CTX *_mem_save_devmode_0;
1505 uint32_t _ptr_sepfile;
1506 TALLOC_CTX *_mem_save_sepfile_0;
1507 uint32_t _ptr_printprocessor;
1508 TALLOC_CTX *_mem_save_printprocessor_0;
1509 uint32_t _ptr_datatype;
1510 TALLOC_CTX *_mem_save_datatype_0;
1511 uint32_t _ptr_parameters;
1512 TALLOC_CTX *_mem_save_parameters_0;
1513 uint32_t _ptr_secdesc;
1514 TALLOC_CTX *_mem_save_secdesc_0;
1515 if (ndr_flags & NDR_SCALARS) {
1516 NDR_CHECK(ndr_pull_align(ndr, 5));
1518 uint32_t _flags_save_string = ndr->flags;
1519 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1520 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
1521 if (_ptr_servername) {
1522 NDR_PULL_ALLOC(ndr, r->servername);
1523 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
1525 r->servername = NULL;
1527 ndr->flags = _flags_save_string;
1530 uint32_t _flags_save_string = ndr->flags;
1531 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1532 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
1533 if (_ptr_printername) {
1534 NDR_PULL_ALLOC(ndr, r->printername);
1535 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
1537 r->printername = NULL;
1539 ndr->flags = _flags_save_string;
1542 uint32_t _flags_save_string = ndr->flags;
1543 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1544 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sharename));
1545 if (_ptr_sharename) {
1546 NDR_PULL_ALLOC(ndr, r->sharename);
1547 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->sharename, _ptr_sharename));
1549 r->sharename = NULL;
1551 ndr->flags = _flags_save_string;
1554 uint32_t _flags_save_string = ndr->flags;
1555 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1556 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
1557 if (_ptr_portname) {
1558 NDR_PULL_ALLOC(ndr, r->portname);
1559 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->portname, _ptr_portname));
1563 ndr->flags = _flags_save_string;
1566 uint32_t _flags_save_string = ndr->flags;
1567 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1568 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_drivername));
1569 if (_ptr_drivername) {
1570 NDR_PULL_ALLOC(ndr, r->drivername);
1571 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->drivername, _ptr_drivername));
1573 r->drivername = NULL;
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 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
1582 NDR_PULL_ALLOC(ndr, r->comment);
1583 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->comment, _ptr_comment));
1587 ndr->flags = _flags_save_string;
1590 uint32_t _flags_save_string = ndr->flags;
1591 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1592 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_location));
1593 if (_ptr_location) {
1594 NDR_PULL_ALLOC(ndr, r->location);
1595 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->location, _ptr_location));
1599 ndr->flags = _flags_save_string;
1602 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
1603 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
1604 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
1606 NDR_PULL_ALLOC(ndr, r->devmode);
1607 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
1611 ndr->flags = _flags_save_spoolss_DeviceMode;
1614 uint32_t _flags_save_string = ndr->flags;
1615 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1616 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sepfile));
1618 NDR_PULL_ALLOC(ndr, r->sepfile);
1619 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->sepfile, _ptr_sepfile));
1623 ndr->flags = _flags_save_string;
1626 uint32_t _flags_save_string = ndr->flags;
1627 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1628 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printprocessor));
1629 if (_ptr_printprocessor) {
1630 NDR_PULL_ALLOC(ndr, r->printprocessor);
1631 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printprocessor, _ptr_printprocessor));
1633 r->printprocessor = NULL;
1635 ndr->flags = _flags_save_string;
1638 uint32_t _flags_save_string = ndr->flags;
1639 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1640 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
1641 if (_ptr_datatype) {
1642 NDR_PULL_ALLOC(ndr, r->datatype);
1643 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->datatype, _ptr_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 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
1653 if (_ptr_parameters) {
1654 NDR_PULL_ALLOC(ndr, r->parameters);
1655 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->parameters, _ptr_parameters));
1657 r->parameters = NULL;
1659 ndr->flags = _flags_save_string;
1662 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
1663 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
1664 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
1666 NDR_PULL_ALLOC(ndr, r->secdesc);
1667 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
1671 ndr->flags = _flags_save_spoolss_security_descriptor;
1673 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
1674 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
1675 if (r->priority > 99) {
1676 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
1678 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->defaultpriority));
1679 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->starttime));
1680 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->untiltime));
1681 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
1682 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
1683 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->averageppm));
1684 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
1686 if (ndr_flags & NDR_BUFFERS) {
1688 uint32_t _flags_save_string = ndr->flags;
1689 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1690 if (r->servername) {
1691 uint32_t _relative_save_offset;
1692 _relative_save_offset = ndr->offset;
1693 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
1694 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1695 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
1696 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
1697 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
1698 if (ndr->offset > ndr->relative_highest_offset) {
1699 ndr->relative_highest_offset = ndr->offset;
1701 ndr->offset = _relative_save_offset;
1703 ndr->flags = _flags_save_string;
1706 uint32_t _flags_save_string = ndr->flags;
1707 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1708 if (r->printername) {
1709 uint32_t _relative_save_offset;
1710 _relative_save_offset = ndr->offset;
1711 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
1712 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1713 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
1714 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
1715 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
1716 if (ndr->offset > ndr->relative_highest_offset) {
1717 ndr->relative_highest_offset = ndr->offset;
1719 ndr->offset = _relative_save_offset;
1721 ndr->flags = _flags_save_string;
1724 uint32_t _flags_save_string = ndr->flags;
1725 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1727 uint32_t _relative_save_offset;
1728 _relative_save_offset = ndr->offset;
1729 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->sharename));
1730 _mem_save_sharename_0 = NDR_PULL_GET_MEM_CTX(ndr);
1731 NDR_PULL_SET_MEM_CTX(ndr, r->sharename, 0);
1732 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->sharename));
1733 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sharename_0, 0);
1734 if (ndr->offset > ndr->relative_highest_offset) {
1735 ndr->relative_highest_offset = ndr->offset;
1737 ndr->offset = _relative_save_offset;
1739 ndr->flags = _flags_save_string;
1742 uint32_t _flags_save_string = ndr->flags;
1743 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1745 uint32_t _relative_save_offset;
1746 _relative_save_offset = ndr->offset;
1747 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->portname));
1748 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
1749 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
1750 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->portname));
1751 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
1752 if (ndr->offset > ndr->relative_highest_offset) {
1753 ndr->relative_highest_offset = ndr->offset;
1755 ndr->offset = _relative_save_offset;
1757 ndr->flags = _flags_save_string;
1760 uint32_t _flags_save_string = ndr->flags;
1761 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1762 if (r->drivername) {
1763 uint32_t _relative_save_offset;
1764 _relative_save_offset = ndr->offset;
1765 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->drivername));
1766 _mem_save_drivername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1767 NDR_PULL_SET_MEM_CTX(ndr, r->drivername, 0);
1768 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->drivername));
1769 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_drivername_0, 0);
1770 if (ndr->offset > ndr->relative_highest_offset) {
1771 ndr->relative_highest_offset = ndr->offset;
1773 ndr->offset = _relative_save_offset;
1775 ndr->flags = _flags_save_string;
1778 uint32_t _flags_save_string = ndr->flags;
1779 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1781 uint32_t _relative_save_offset;
1782 _relative_save_offset = ndr->offset;
1783 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->comment));
1784 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
1785 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
1786 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->comment));
1787 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
1788 if (ndr->offset > ndr->relative_highest_offset) {
1789 ndr->relative_highest_offset = ndr->offset;
1791 ndr->offset = _relative_save_offset;
1793 ndr->flags = _flags_save_string;
1796 uint32_t _flags_save_string = ndr->flags;
1797 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1799 uint32_t _relative_save_offset;
1800 _relative_save_offset = ndr->offset;
1801 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->location));
1802 _mem_save_location_0 = NDR_PULL_GET_MEM_CTX(ndr);
1803 NDR_PULL_SET_MEM_CTX(ndr, r->location, 0);
1804 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->location));
1805 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_location_0, 0);
1806 if (ndr->offset > ndr->relative_highest_offset) {
1807 ndr->relative_highest_offset = ndr->offset;
1809 ndr->offset = _relative_save_offset;
1811 ndr->flags = _flags_save_string;
1814 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
1815 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
1817 uint32_t _relative_save_offset;
1818 _relative_save_offset = ndr->offset;
1819 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
1820 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
1821 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
1823 struct ndr_pull *_ndr_devmode;
1824 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
1825 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
1826 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
1828 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
1829 if (ndr->offset > ndr->relative_highest_offset) {
1830 ndr->relative_highest_offset = ndr->offset;
1832 ndr->offset = _relative_save_offset;
1834 ndr->flags = _flags_save_spoolss_DeviceMode;
1837 uint32_t _flags_save_string = ndr->flags;
1838 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1840 uint32_t _relative_save_offset;
1841 _relative_save_offset = ndr->offset;
1842 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->sepfile));
1843 _mem_save_sepfile_0 = NDR_PULL_GET_MEM_CTX(ndr);
1844 NDR_PULL_SET_MEM_CTX(ndr, r->sepfile, 0);
1845 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->sepfile));
1846 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sepfile_0, 0);
1847 if (ndr->offset > ndr->relative_highest_offset) {
1848 ndr->relative_highest_offset = ndr->offset;
1850 ndr->offset = _relative_save_offset;
1852 ndr->flags = _flags_save_string;
1855 uint32_t _flags_save_string = ndr->flags;
1856 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1857 if (r->printprocessor) {
1858 uint32_t _relative_save_offset;
1859 _relative_save_offset = ndr->offset;
1860 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printprocessor));
1861 _mem_save_printprocessor_0 = NDR_PULL_GET_MEM_CTX(ndr);
1862 NDR_PULL_SET_MEM_CTX(ndr, r->printprocessor, 0);
1863 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printprocessor));
1864 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printprocessor_0, 0);
1865 if (ndr->offset > ndr->relative_highest_offset) {
1866 ndr->relative_highest_offset = ndr->offset;
1868 ndr->offset = _relative_save_offset;
1870 ndr->flags = _flags_save_string;
1873 uint32_t _flags_save_string = ndr->flags;
1874 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1876 uint32_t _relative_save_offset;
1877 _relative_save_offset = ndr->offset;
1878 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->datatype));
1879 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
1880 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
1881 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->datatype));
1882 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
1883 if (ndr->offset > ndr->relative_highest_offset) {
1884 ndr->relative_highest_offset = ndr->offset;
1886 ndr->offset = _relative_save_offset;
1888 ndr->flags = _flags_save_string;
1891 uint32_t _flags_save_string = ndr->flags;
1892 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1893 if (r->parameters) {
1894 uint32_t _relative_save_offset;
1895 _relative_save_offset = ndr->offset;
1896 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->parameters));
1897 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
1898 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
1899 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->parameters));
1900 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
1901 if (ndr->offset > ndr->relative_highest_offset) {
1902 ndr->relative_highest_offset = ndr->offset;
1904 ndr->offset = _relative_save_offset;
1906 ndr->flags = _flags_save_string;
1909 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
1910 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
1912 uint32_t _relative_save_offset;
1913 _relative_save_offset = ndr->offset;
1914 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
1915 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
1916 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
1918 struct ndr_pull *_ndr_secdesc;
1919 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
1920 NDR_CHECK(ndr_pull_spoolss_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
1921 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
1923 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
1924 if (ndr->offset > ndr->relative_highest_offset) {
1925 ndr->relative_highest_offset = ndr->offset;
1927 ndr->offset = _relative_save_offset;
1929 ndr->flags = _flags_save_spoolss_security_descriptor;
1932 return NDR_ERR_SUCCESS;
1935 _PUBLIC_ void ndr_print_spoolss_PrinterInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo2 *r)
1937 ndr_print_struct(ndr, name, "spoolss_PrinterInfo2");
1939 ndr_print_ptr(ndr, "servername", r->servername);
1941 if (r->servername) {
1942 ndr_print_string(ndr, "servername", r->servername);
1945 ndr_print_ptr(ndr, "printername", r->printername);
1947 if (r->printername) {
1948 ndr_print_string(ndr, "printername", r->printername);
1951 ndr_print_ptr(ndr, "sharename", r->sharename);
1954 ndr_print_string(ndr, "sharename", r->sharename);
1957 ndr_print_ptr(ndr, "portname", r->portname);
1960 ndr_print_string(ndr, "portname", r->portname);
1963 ndr_print_ptr(ndr, "drivername", r->drivername);
1965 if (r->drivername) {
1966 ndr_print_string(ndr, "drivername", r->drivername);
1969 ndr_print_ptr(ndr, "comment", r->comment);
1972 ndr_print_string(ndr, "comment", r->comment);
1975 ndr_print_ptr(ndr, "location", r->location);
1978 ndr_print_string(ndr, "location", r->location);
1981 ndr_print_ptr(ndr, "devmode", r->devmode);
1984 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
1987 ndr_print_ptr(ndr, "sepfile", r->sepfile);
1990 ndr_print_string(ndr, "sepfile", r->sepfile);
1993 ndr_print_ptr(ndr, "printprocessor", r->printprocessor);
1995 if (r->printprocessor) {
1996 ndr_print_string(ndr, "printprocessor", r->printprocessor);
1999 ndr_print_ptr(ndr, "datatype", r->datatype);
2002 ndr_print_string(ndr, "datatype", r->datatype);
2005 ndr_print_ptr(ndr, "parameters", r->parameters);
2007 if (r->parameters) {
2008 ndr_print_string(ndr, "parameters", r->parameters);
2011 ndr_print_ptr(ndr, "secdesc", r->secdesc);
2014 ndr_print_spoolss_security_descriptor(ndr, "secdesc", r->secdesc);
2017 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
2018 ndr_print_uint32(ndr, "priority", r->priority);
2019 ndr_print_uint32(ndr, "defaultpriority", r->defaultpriority);
2020 ndr_print_uint32(ndr, "starttime", r->starttime);
2021 ndr_print_uint32(ndr, "untiltime", r->untiltime);
2022 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
2023 ndr_print_uint32(ndr, "cjobs", r->cjobs);
2024 ndr_print_uint32(ndr, "averageppm", r->averageppm);
2028 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo2(const struct spoolss_PrinterInfo2 *r, struct smb_iconv_convenience *ic, int flags)
2030 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo2, ic);
2033 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo3 *r)
2035 if (ndr_flags & NDR_SCALARS) {
2036 NDR_CHECK(ndr_push_align(ndr, 5));
2038 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
2039 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
2040 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
2041 ndr->flags = _flags_save_spoolss_security_descriptor;
2043 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2045 if (ndr_flags & NDR_BUFFERS) {
2047 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
2048 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
2050 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->secdesc));
2052 struct ndr_push *_ndr_secdesc;
2053 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
2054 NDR_CHECK(ndr_push_spoolss_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
2055 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
2057 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->secdesc));
2059 ndr->flags = _flags_save_spoolss_security_descriptor;
2062 return NDR_ERR_SUCCESS;
2065 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo3 *r)
2067 uint32_t _ptr_secdesc;
2068 TALLOC_CTX *_mem_save_secdesc_0;
2069 if (ndr_flags & NDR_SCALARS) {
2070 NDR_CHECK(ndr_pull_align(ndr, 5));
2072 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
2073 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
2074 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
2076 NDR_PULL_ALLOC(ndr, r->secdesc);
2077 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
2081 ndr->flags = _flags_save_spoolss_security_descriptor;
2083 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2085 if (ndr_flags & NDR_BUFFERS) {
2087 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
2088 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
2090 uint32_t _relative_save_offset;
2091 _relative_save_offset = ndr->offset;
2092 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
2093 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
2094 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
2096 struct ndr_pull *_ndr_secdesc;
2097 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
2098 NDR_CHECK(ndr_pull_spoolss_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
2099 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
2101 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
2102 if (ndr->offset > ndr->relative_highest_offset) {
2103 ndr->relative_highest_offset = ndr->offset;
2105 ndr->offset = _relative_save_offset;
2107 ndr->flags = _flags_save_spoolss_security_descriptor;
2110 return NDR_ERR_SUCCESS;
2113 _PUBLIC_ void ndr_print_spoolss_PrinterInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo3 *r)
2115 ndr_print_struct(ndr, name, "spoolss_PrinterInfo3");
2117 ndr_print_ptr(ndr, "secdesc", r->secdesc);
2120 ndr_print_spoolss_security_descriptor(ndr, "secdesc", r->secdesc);
2126 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo3(const struct spoolss_PrinterInfo3 *r, struct smb_iconv_convenience *ic, int flags)
2128 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo3, ic);
2131 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo4 *r)
2133 if (ndr_flags & NDR_SCALARS) {
2134 NDR_CHECK(ndr_push_align(ndr, 5));
2136 uint32_t _flags_save_string = ndr->flags;
2137 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2138 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
2139 ndr->flags = _flags_save_string;
2142 uint32_t _flags_save_string = ndr->flags;
2143 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2144 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->servername));
2145 ndr->flags = _flags_save_string;
2147 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
2148 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2150 if (ndr_flags & NDR_BUFFERS) {
2152 uint32_t _flags_save_string = ndr->flags;
2153 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2154 if (r->printername) {
2155 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->printername));
2156 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
2157 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->printername));
2159 ndr->flags = _flags_save_string;
2162 uint32_t _flags_save_string = ndr->flags;
2163 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2164 if (r->servername) {
2165 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->servername));
2166 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->servername));
2167 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->servername));
2169 ndr->flags = _flags_save_string;
2172 return NDR_ERR_SUCCESS;
2175 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo4 *r)
2177 uint32_t _ptr_printername;
2178 TALLOC_CTX *_mem_save_printername_0;
2179 uint32_t _ptr_servername;
2180 TALLOC_CTX *_mem_save_servername_0;
2181 if (ndr_flags & NDR_SCALARS) {
2182 NDR_CHECK(ndr_pull_align(ndr, 5));
2184 uint32_t _flags_save_string = ndr->flags;
2185 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2186 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
2187 if (_ptr_printername) {
2188 NDR_PULL_ALLOC(ndr, r->printername);
2189 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
2191 r->printername = NULL;
2193 ndr->flags = _flags_save_string;
2196 uint32_t _flags_save_string = ndr->flags;
2197 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2198 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
2199 if (_ptr_servername) {
2200 NDR_PULL_ALLOC(ndr, r->servername);
2201 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
2203 r->servername = NULL;
2205 ndr->flags = _flags_save_string;
2207 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
2208 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2210 if (ndr_flags & NDR_BUFFERS) {
2212 uint32_t _flags_save_string = ndr->flags;
2213 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2214 if (r->printername) {
2215 uint32_t _relative_save_offset;
2216 _relative_save_offset = ndr->offset;
2217 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
2218 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
2219 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
2220 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
2221 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
2222 if (ndr->offset > ndr->relative_highest_offset) {
2223 ndr->relative_highest_offset = ndr->offset;
2225 ndr->offset = _relative_save_offset;
2227 ndr->flags = _flags_save_string;
2230 uint32_t _flags_save_string = ndr->flags;
2231 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2232 if (r->servername) {
2233 uint32_t _relative_save_offset;
2234 _relative_save_offset = ndr->offset;
2235 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
2236 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
2237 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
2238 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
2239 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
2240 if (ndr->offset > ndr->relative_highest_offset) {
2241 ndr->relative_highest_offset = ndr->offset;
2243 ndr->offset = _relative_save_offset;
2245 ndr->flags = _flags_save_string;
2248 return NDR_ERR_SUCCESS;
2251 _PUBLIC_ void ndr_print_spoolss_PrinterInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo4 *r)
2253 ndr_print_struct(ndr, name, "spoolss_PrinterInfo4");
2255 ndr_print_ptr(ndr, "printername", r->printername);
2257 if (r->printername) {
2258 ndr_print_string(ndr, "printername", r->printername);
2261 ndr_print_ptr(ndr, "servername", r->servername);
2263 if (r->servername) {
2264 ndr_print_string(ndr, "servername", r->servername);
2267 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
2271 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo4(const struct spoolss_PrinterInfo4 *r, struct smb_iconv_convenience *ic, int flags)
2273 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo4, ic);
2276 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo5 *r)
2278 if (ndr_flags & NDR_SCALARS) {
2279 NDR_CHECK(ndr_push_align(ndr, 5));
2281 uint32_t _flags_save_string = ndr->flags;
2282 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2283 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
2284 ndr->flags = _flags_save_string;
2287 uint32_t _flags_save_string = ndr->flags;
2288 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2289 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->portname));
2290 ndr->flags = _flags_save_string;
2292 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
2293 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->device_not_selected_timeout));
2294 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->transmission_retry_timeout));
2295 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2297 if (ndr_flags & NDR_BUFFERS) {
2299 uint32_t _flags_save_string = ndr->flags;
2300 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2301 if (r->printername) {
2302 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->printername));
2303 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
2304 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->printername));
2306 ndr->flags = _flags_save_string;
2309 uint32_t _flags_save_string = ndr->flags;
2310 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2312 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->portname));
2313 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->portname));
2314 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->portname));
2316 ndr->flags = _flags_save_string;
2319 return NDR_ERR_SUCCESS;
2322 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo5 *r)
2324 uint32_t _ptr_printername;
2325 TALLOC_CTX *_mem_save_printername_0;
2326 uint32_t _ptr_portname;
2327 TALLOC_CTX *_mem_save_portname_0;
2328 if (ndr_flags & NDR_SCALARS) {
2329 NDR_CHECK(ndr_pull_align(ndr, 5));
2331 uint32_t _flags_save_string = ndr->flags;
2332 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2333 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
2334 if (_ptr_printername) {
2335 NDR_PULL_ALLOC(ndr, r->printername);
2336 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
2338 r->printername = NULL;
2340 ndr->flags = _flags_save_string;
2343 uint32_t _flags_save_string = ndr->flags;
2344 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2345 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
2346 if (_ptr_portname) {
2347 NDR_PULL_ALLOC(ndr, r->portname);
2348 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->portname, _ptr_portname));
2352 ndr->flags = _flags_save_string;
2354 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
2355 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->device_not_selected_timeout));
2356 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->transmission_retry_timeout));
2357 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2359 if (ndr_flags & NDR_BUFFERS) {
2361 uint32_t _flags_save_string = ndr->flags;
2362 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2363 if (r->printername) {
2364 uint32_t _relative_save_offset;
2365 _relative_save_offset = ndr->offset;
2366 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
2367 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
2368 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
2369 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
2370 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
2371 if (ndr->offset > ndr->relative_highest_offset) {
2372 ndr->relative_highest_offset = ndr->offset;
2374 ndr->offset = _relative_save_offset;
2376 ndr->flags = _flags_save_string;
2379 uint32_t _flags_save_string = ndr->flags;
2380 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2382 uint32_t _relative_save_offset;
2383 _relative_save_offset = ndr->offset;
2384 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->portname));
2385 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
2386 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
2387 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->portname));
2388 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
2389 if (ndr->offset > ndr->relative_highest_offset) {
2390 ndr->relative_highest_offset = ndr->offset;
2392 ndr->offset = _relative_save_offset;
2394 ndr->flags = _flags_save_string;
2397 return NDR_ERR_SUCCESS;
2400 _PUBLIC_ void ndr_print_spoolss_PrinterInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo5 *r)
2402 ndr_print_struct(ndr, name, "spoolss_PrinterInfo5");
2404 ndr_print_ptr(ndr, "printername", r->printername);
2406 if (r->printername) {
2407 ndr_print_string(ndr, "printername", r->printername);
2410 ndr_print_ptr(ndr, "portname", r->portname);
2413 ndr_print_string(ndr, "portname", r->portname);
2416 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
2417 ndr_print_uint32(ndr, "device_not_selected_timeout", r->device_not_selected_timeout);
2418 ndr_print_uint32(ndr, "transmission_retry_timeout", r->transmission_retry_timeout);
2422 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo5(const struct spoolss_PrinterInfo5 *r, struct smb_iconv_convenience *ic, int flags)
2424 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo5, ic);
2427 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo6 *r)
2429 if (ndr_flags & NDR_SCALARS) {
2430 NDR_CHECK(ndr_push_align(ndr, 4));
2431 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
2432 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
2434 if (ndr_flags & NDR_BUFFERS) {
2436 return NDR_ERR_SUCCESS;
2439 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo6 *r)
2441 if (ndr_flags & NDR_SCALARS) {
2442 NDR_CHECK(ndr_pull_align(ndr, 4));
2443 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
2444 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
2446 if (ndr_flags & NDR_BUFFERS) {
2448 return NDR_ERR_SUCCESS;
2451 _PUBLIC_ void ndr_print_spoolss_PrinterInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo6 *r)
2453 ndr_print_struct(ndr, name, "spoolss_PrinterInfo6");
2455 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
2459 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo6(const struct spoolss_PrinterInfo6 *r, struct smb_iconv_convenience *ic, int flags)
2461 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo6, ic);
2464 static enum ndr_err_code ndr_push_spoolss_DsPrintAction(struct ndr_push *ndr, int ndr_flags, uint32_t r)
2466 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
2467 return NDR_ERR_SUCCESS;
2470 static enum ndr_err_code ndr_pull_spoolss_DsPrintAction(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
2473 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
2475 return NDR_ERR_SUCCESS;
2478 _PUBLIC_ void ndr_print_spoolss_DsPrintAction(struct ndr_print *ndr, const char *name, uint32_t r)
2480 ndr_print_uint32(ndr, name, r);
2482 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_PUBLISH", DSPRINT_PUBLISH, r);
2483 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_UPDATE", DSPRINT_UPDATE, r);
2484 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_UNPUBLISH", DSPRINT_UNPUBLISH, r);
2485 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_REPUBLISH", DSPRINT_REPUBLISH, r);
2486 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_PENDING", DSPRINT_PENDING, r);
2490 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo7(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo7 *r)
2492 if (ndr_flags & NDR_SCALARS) {
2493 NDR_CHECK(ndr_push_align(ndr, 5));
2495 uint32_t _flags_save_string = ndr->flags;
2496 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2497 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->guid));
2498 ndr->flags = _flags_save_string;
2500 NDR_CHECK(ndr_push_spoolss_DsPrintAction(ndr, NDR_SCALARS, r->action));
2501 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2503 if (ndr_flags & NDR_BUFFERS) {
2505 uint32_t _flags_save_string = ndr->flags;
2506 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2508 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->guid));
2509 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->guid));
2510 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->guid));
2512 ndr->flags = _flags_save_string;
2515 return NDR_ERR_SUCCESS;
2518 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo7(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo7 *r)
2521 TALLOC_CTX *_mem_save_guid_0;
2522 if (ndr_flags & NDR_SCALARS) {
2523 NDR_CHECK(ndr_pull_align(ndr, 5));
2525 uint32_t _flags_save_string = ndr->flags;
2526 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2527 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_guid));
2529 NDR_PULL_ALLOC(ndr, r->guid);
2530 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->guid, _ptr_guid));
2534 ndr->flags = _flags_save_string;
2536 NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr, NDR_SCALARS, &r->action));
2537 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2539 if (ndr_flags & NDR_BUFFERS) {
2541 uint32_t _flags_save_string = ndr->flags;
2542 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2544 uint32_t _relative_save_offset;
2545 _relative_save_offset = ndr->offset;
2546 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->guid));
2547 _mem_save_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
2548 NDR_PULL_SET_MEM_CTX(ndr, r->guid, 0);
2549 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->guid));
2550 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_guid_0, 0);
2551 if (ndr->offset > ndr->relative_highest_offset) {
2552 ndr->relative_highest_offset = ndr->offset;
2554 ndr->offset = _relative_save_offset;
2556 ndr->flags = _flags_save_string;
2559 return NDR_ERR_SUCCESS;
2562 _PUBLIC_ void ndr_print_spoolss_PrinterInfo7(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo7 *r)
2564 ndr_print_struct(ndr, name, "spoolss_PrinterInfo7");
2566 ndr_print_ptr(ndr, "guid", r->guid);
2569 ndr_print_string(ndr, "guid", r->guid);
2572 ndr_print_spoolss_DsPrintAction(ndr, "action", r->action);
2576 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo7(const struct spoolss_PrinterInfo7 *r, struct smb_iconv_convenience *ic, int flags)
2578 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo7, ic);
2581 static enum ndr_err_code ndr_push_spoolss_DeviceModeInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DeviceModeInfo *r)
2583 if (ndr_flags & NDR_SCALARS) {
2584 NDR_CHECK(ndr_push_align(ndr, 5));
2586 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
2587 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
2588 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
2589 ndr->flags = _flags_save_spoolss_DeviceMode;
2591 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2593 if (ndr_flags & NDR_BUFFERS) {
2595 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
2596 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
2598 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->devmode));
2600 struct ndr_push *_ndr_devmode;
2601 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
2602 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2603 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
2605 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->devmode));
2607 ndr->flags = _flags_save_spoolss_DeviceMode;
2610 return NDR_ERR_SUCCESS;
2613 static enum ndr_err_code ndr_pull_spoolss_DeviceModeInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DeviceModeInfo *r)
2615 uint32_t _ptr_devmode;
2616 TALLOC_CTX *_mem_save_devmode_0;
2617 if (ndr_flags & NDR_SCALARS) {
2618 NDR_CHECK(ndr_pull_align(ndr, 5));
2620 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
2621 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
2622 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
2624 NDR_PULL_ALLOC(ndr, r->devmode);
2625 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
2629 ndr->flags = _flags_save_spoolss_DeviceMode;
2631 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2633 if (ndr_flags & NDR_BUFFERS) {
2635 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
2636 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
2638 uint32_t _relative_save_offset;
2639 _relative_save_offset = ndr->offset;
2640 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
2641 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
2642 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
2644 struct ndr_pull *_ndr_devmode;
2645 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
2646 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2647 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
2649 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
2650 if (ndr->offset > ndr->relative_highest_offset) {
2651 ndr->relative_highest_offset = ndr->offset;
2653 ndr->offset = _relative_save_offset;
2655 ndr->flags = _flags_save_spoolss_DeviceMode;
2658 return NDR_ERR_SUCCESS;
2661 _PUBLIC_ void ndr_print_spoolss_DeviceModeInfo(struct ndr_print *ndr, const char *name, const struct spoolss_DeviceModeInfo *r)
2663 ndr_print_struct(ndr, name, "spoolss_DeviceModeInfo");
2665 ndr_print_ptr(ndr, "devmode", r->devmode);
2668 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
2674 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrinterInfo *r)
2676 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
2678 uint32_t _flags_save_UNION = ndr->flags;
2679 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
2680 if (ndr_flags & NDR_SCALARS) {
2681 int level = ndr_push_get_switch_value(ndr, r);
2682 NDR_CHECK(ndr_push_union_align(ndr, 5));
2685 NDR_CHECK(ndr_push_align(ndr, 5));
2686 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2687 NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr, NDR_SCALARS, &r->info0));
2691 NDR_CHECK(ndr_push_align(ndr, 5));
2692 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2693 NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr, NDR_SCALARS, &r->info1));
2697 NDR_CHECK(ndr_push_align(ndr, 5));
2698 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2699 NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr, NDR_SCALARS, &r->info2));
2703 NDR_CHECK(ndr_push_align(ndr, 5));
2704 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2705 NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr, NDR_SCALARS, &r->info3));
2709 NDR_CHECK(ndr_push_align(ndr, 5));
2710 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2711 NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr, NDR_SCALARS, &r->info4));
2715 NDR_CHECK(ndr_push_align(ndr, 5));
2716 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2717 NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr, NDR_SCALARS, &r->info5));
2721 NDR_CHECK(ndr_push_align(ndr, 4));
2722 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2723 NDR_CHECK(ndr_push_spoolss_PrinterInfo6(ndr, NDR_SCALARS, &r->info6));
2727 NDR_CHECK(ndr_push_align(ndr, 5));
2728 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2729 NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr, NDR_SCALARS, &r->info7));
2733 NDR_CHECK(ndr_push_align(ndr, 5));
2734 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2735 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info8));
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_DeviceModeInfo(ndr, NDR_SCALARS, &r->info9));
2749 if (ndr_flags & NDR_BUFFERS) {
2750 int level = ndr_push_get_switch_value(ndr, r);
2751 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
2754 NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr, NDR_BUFFERS, &r->info0));
2758 NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr, NDR_BUFFERS, &r->info1));
2762 NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr, NDR_BUFFERS, &r->info2));
2766 NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr, NDR_BUFFERS, &r->info3));
2770 NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr, NDR_BUFFERS, &r->info4));
2774 NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr, NDR_BUFFERS, &r->info5));
2781 NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr, NDR_BUFFERS, &r->info7));
2785 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info8));
2789 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info9));
2797 ndr->flags = _flags_save_UNION;
2799 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
2800 return NDR_ERR_SUCCESS;
2803 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrinterInfo *r)
2805 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
2808 uint32_t _flags_save_UNION = ndr->flags;
2809 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
2810 level = ndr_pull_get_switch_value(ndr, r);
2811 if (ndr_flags & NDR_SCALARS) {
2812 NDR_CHECK(ndr_pull_union_align(ndr, 5));
2815 NDR_CHECK(ndr_pull_align(ndr, 5));
2816 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2817 NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr, NDR_SCALARS, &r->info0));
2821 NDR_CHECK(ndr_pull_align(ndr, 5));
2822 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2823 NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr, NDR_SCALARS, &r->info1));
2827 NDR_CHECK(ndr_pull_align(ndr, 5));
2828 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2829 NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr, NDR_SCALARS, &r->info2));
2833 NDR_CHECK(ndr_pull_align(ndr, 5));
2834 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2835 NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr, NDR_SCALARS, &r->info3));
2839 NDR_CHECK(ndr_pull_align(ndr, 5));
2840 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2841 NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr, NDR_SCALARS, &r->info4));
2845 NDR_CHECK(ndr_pull_align(ndr, 5));
2846 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2847 NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr, NDR_SCALARS, &r->info5));
2851 NDR_CHECK(ndr_pull_align(ndr, 4));
2852 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2853 NDR_CHECK(ndr_pull_spoolss_PrinterInfo6(ndr, NDR_SCALARS, &r->info6));
2857 NDR_CHECK(ndr_pull_align(ndr, 5));
2858 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2859 NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr, NDR_SCALARS, &r->info7));
2863 NDR_CHECK(ndr_pull_align(ndr, 5));
2864 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2865 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info8));
2869 NDR_CHECK(ndr_pull_align(ndr, 5));
2870 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2871 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info9));
2879 if (ndr_flags & NDR_BUFFERS) {
2880 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
2883 NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr, NDR_BUFFERS, &r->info0));
2887 NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr, NDR_BUFFERS, &r->info1));
2891 NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr, NDR_BUFFERS, &r->info2));
2895 NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr, NDR_BUFFERS, &r->info3));
2899 NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr, NDR_BUFFERS, &r->info4));
2903 NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr, NDR_BUFFERS, &r->info5));
2910 NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr, NDR_BUFFERS, &r->info7));
2914 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info8));
2918 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info9));
2926 ndr->flags = _flags_save_UNION;
2928 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
2929 return NDR_ERR_SUCCESS;
2932 _PUBLIC_ void ndr_print_spoolss_PrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrinterInfo *r)
2936 uint32_t _flags_save_UNION = ndr->flags;
2937 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
2938 level = ndr_print_get_switch_value(ndr, r);
2939 ndr_print_union(ndr, name, level, "spoolss_PrinterInfo");
2942 ndr_print_spoolss_PrinterInfo0(ndr, "info0", &r->info0);
2946 ndr_print_spoolss_PrinterInfo1(ndr, "info1", &r->info1);
2950 ndr_print_spoolss_PrinterInfo2(ndr, "info2", &r->info2);
2954 ndr_print_spoolss_PrinterInfo3(ndr, "info3", &r->info3);
2958 ndr_print_spoolss_PrinterInfo4(ndr, "info4", &r->info4);
2962 ndr_print_spoolss_PrinterInfo5(ndr, "info5", &r->info5);
2966 ndr_print_spoolss_PrinterInfo6(ndr, "info6", &r->info6);
2970 ndr_print_spoolss_PrinterInfo7(ndr, "info7", &r->info7);
2974 ndr_print_spoolss_DeviceModeInfo(ndr, "info8", &r->info8);
2978 ndr_print_spoolss_DeviceModeInfo(ndr, "info9", &r->info9);
2985 ndr->flags = _flags_save_UNION;
2989 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo(const union spoolss_PrinterInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
2991 flags |= LIBNDR_FLAG_RELATIVE_REVERSE;
2992 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo, ic);
2995 static enum ndr_err_code ndr_push_spoolss_DevmodeContainer(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DevmodeContainer *r)
2997 if (ndr_flags & NDR_SCALARS) {
2998 NDR_CHECK(ndr_push_align(ndr, 5));
2999 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags)));
3000 NDR_CHECK(ndr_push_unique_ptr(ndr, r->devmode));
3001 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
3003 if (ndr_flags & NDR_BUFFERS) {
3006 struct ndr_push *_ndr_devmode;
3007 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 4, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags)));
3008 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
3009 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 4, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags)));
3013 return NDR_ERR_SUCCESS;
3016 static enum ndr_err_code ndr_pull_spoolss_DevmodeContainer(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DevmodeContainer *r)
3018 uint32_t _ptr_devmode;
3019 TALLOC_CTX *_mem_save_devmode_0;
3020 if (ndr_flags & NDR_SCALARS) {
3021 NDR_CHECK(ndr_pull_align(ndr, 5));
3022 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
3023 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
3025 NDR_PULL_ALLOC(ndr, r->devmode);
3029 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
3031 if (ndr_flags & NDR_BUFFERS) {
3033 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
3034 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
3036 struct ndr_pull *_ndr_devmode;
3037 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 4, r->_ndr_size));
3038 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
3039 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 4, r->_ndr_size));
3041 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
3044 return NDR_ERR_SUCCESS;
3047 _PUBLIC_ void ndr_print_spoolss_DevmodeContainer(struct ndr_print *ndr, const char *name, const struct spoolss_DevmodeContainer *r)
3049 ndr_print_struct(ndr, name, "spoolss_DevmodeContainer");
3051 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);
3052 ndr_print_ptr(ndr, "devmode", r->devmode);
3055 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
3061 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo1 *r)
3063 if (ndr_flags & NDR_SCALARS) {
3064 NDR_CHECK(ndr_push_align(ndr, 5));
3065 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
3067 uint32_t _flags_save_string = ndr->flags;
3068 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3069 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printer_name));
3070 ndr->flags = _flags_save_string;
3073 uint32_t _flags_save_string = ndr->flags;
3074 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3075 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->server_name));
3076 ndr->flags = _flags_save_string;
3079 uint32_t _flags_save_string = ndr->flags;
3080 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3081 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->user_name));
3082 ndr->flags = _flags_save_string;
3085 uint32_t _flags_save_string = ndr->flags;
3086 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3087 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->document_name));
3088 ndr->flags = _flags_save_string;
3091 uint32_t _flags_save_string = ndr->flags;
3092 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3093 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_type));
3094 ndr->flags = _flags_save_string;
3097 uint32_t _flags_save_string = ndr->flags;
3098 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3099 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->text_status));
3100 ndr->flags = _flags_save_string;
3102 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
3103 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
3104 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
3105 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
3106 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
3107 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
3108 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
3110 if (ndr_flags & NDR_BUFFERS) {
3112 uint32_t _flags_save_string = ndr->flags;
3113 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3114 if (r->printer_name) {
3115 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->printer_name));
3116 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printer_name));
3117 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->printer_name));
3119 ndr->flags = _flags_save_string;
3122 uint32_t _flags_save_string = ndr->flags;
3123 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3124 if (r->server_name) {
3125 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->server_name));
3126 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server_name));
3127 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->server_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);
3135 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->user_name));
3136 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
3137 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->user_name));
3139 ndr->flags = _flags_save_string;
3142 uint32_t _flags_save_string = ndr->flags;
3143 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3144 if (r->document_name) {
3145 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->document_name));
3146 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->document_name));
3147 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->document_name));
3149 ndr->flags = _flags_save_string;
3152 uint32_t _flags_save_string = ndr->flags;
3153 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3155 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_type));
3156 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_type));
3157 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_type));
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->text_status) {
3165 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->text_status));
3166 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->text_status));
3167 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->text_status));
3169 ndr->flags = _flags_save_string;
3172 return NDR_ERR_SUCCESS;
3175 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo1 *r)
3177 uint32_t _ptr_printer_name;
3178 TALLOC_CTX *_mem_save_printer_name_0;
3179 uint32_t _ptr_server_name;
3180 TALLOC_CTX *_mem_save_server_name_0;
3181 uint32_t _ptr_user_name;
3182 TALLOC_CTX *_mem_save_user_name_0;
3183 uint32_t _ptr_document_name;
3184 TALLOC_CTX *_mem_save_document_name_0;
3185 uint32_t _ptr_data_type;
3186 TALLOC_CTX *_mem_save_data_type_0;
3187 uint32_t _ptr_text_status;
3188 TALLOC_CTX *_mem_save_text_status_0;
3189 if (ndr_flags & NDR_SCALARS) {
3190 NDR_CHECK(ndr_pull_align(ndr, 5));
3191 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
3193 uint32_t _flags_save_string = ndr->flags;
3194 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3195 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
3196 if (_ptr_printer_name) {
3197 NDR_PULL_ALLOC(ndr, r->printer_name);
3198 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printer_name, _ptr_printer_name));
3200 r->printer_name = NULL;
3202 ndr->flags = _flags_save_string;
3205 uint32_t _flags_save_string = ndr->flags;
3206 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3207 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
3208 if (_ptr_server_name) {
3209 NDR_PULL_ALLOC(ndr, r->server_name);
3210 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->server_name, _ptr_server_name));
3212 r->server_name = NULL;
3214 ndr->flags = _flags_save_string;
3217 uint32_t _flags_save_string = ndr->flags;
3218 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3219 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
3220 if (_ptr_user_name) {
3221 NDR_PULL_ALLOC(ndr, r->user_name);
3222 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->user_name, _ptr_user_name));
3224 r->user_name = NULL;
3226 ndr->flags = _flags_save_string;
3229 uint32_t _flags_save_string = ndr->flags;
3230 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3231 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
3232 if (_ptr_document_name) {
3233 NDR_PULL_ALLOC(ndr, r->document_name);
3234 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->document_name, _ptr_document_name));
3236 r->document_name = NULL;
3238 ndr->flags = _flags_save_string;
3241 uint32_t _flags_save_string = ndr->flags;
3242 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3243 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
3244 if (_ptr_data_type) {
3245 NDR_PULL_ALLOC(ndr, r->data_type);
3246 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_type, _ptr_data_type));
3248 r->data_type = NULL;
3250 ndr->flags = _flags_save_string;
3253 uint32_t _flags_save_string = ndr->flags;
3254 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3255 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
3256 if (_ptr_text_status) {
3257 NDR_PULL_ALLOC(ndr, r->text_status);
3258 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->text_status, _ptr_text_status));
3260 r->text_status = NULL;
3262 ndr->flags = _flags_save_string;
3264 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
3265 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
3266 if (r->priority > 99) {
3267 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
3269 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
3270 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
3271 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
3272 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
3273 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
3275 if (ndr_flags & NDR_BUFFERS) {
3277 uint32_t _flags_save_string = ndr->flags;
3278 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3279 if (r->printer_name) {
3280 uint32_t _relative_save_offset;
3281 _relative_save_offset = ndr->offset;
3282 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printer_name));
3283 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3284 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
3285 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printer_name));
3286 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
3287 if (ndr->offset > ndr->relative_highest_offset) {
3288 ndr->relative_highest_offset = ndr->offset;
3290 ndr->offset = _relative_save_offset;
3292 ndr->flags = _flags_save_string;
3295 uint32_t _flags_save_string = ndr->flags;
3296 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3297 if (r->server_name) {
3298 uint32_t _relative_save_offset;
3299 _relative_save_offset = ndr->offset;
3300 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->server_name));
3301 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3302 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
3303 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->server_name));
3304 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
3305 if (ndr->offset > ndr->relative_highest_offset) {
3306 ndr->relative_highest_offset = ndr->offset;
3308 ndr->offset = _relative_save_offset;
3310 ndr->flags = _flags_save_string;
3313 uint32_t _flags_save_string = ndr->flags;
3314 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3316 uint32_t _relative_save_offset;
3317 _relative_save_offset = ndr->offset;
3318 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->user_name));
3319 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3320 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
3321 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
3322 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
3323 if (ndr->offset > ndr->relative_highest_offset) {
3324 ndr->relative_highest_offset = ndr->offset;
3326 ndr->offset = _relative_save_offset;
3328 ndr->flags = _flags_save_string;
3331 uint32_t _flags_save_string = ndr->flags;
3332 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3333 if (r->document_name) {
3334 uint32_t _relative_save_offset;
3335 _relative_save_offset = ndr->offset;
3336 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->document_name));
3337 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3338 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
3339 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->document_name));
3340 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
3341 if (ndr->offset > ndr->relative_highest_offset) {
3342 ndr->relative_highest_offset = ndr->offset;
3344 ndr->offset = _relative_save_offset;
3346 ndr->flags = _flags_save_string;
3349 uint32_t _flags_save_string = ndr->flags;
3350 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3352 uint32_t _relative_save_offset;
3353 _relative_save_offset = ndr->offset;
3354 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_type));
3355 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
3356 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
3357 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_type));
3358 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
3359 if (ndr->offset > ndr->relative_highest_offset) {
3360 ndr->relative_highest_offset = ndr->offset;
3362 ndr->offset = _relative_save_offset;
3364 ndr->flags = _flags_save_string;
3367 uint32_t _flags_save_string = ndr->flags;
3368 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3369 if (r->text_status) {
3370 uint32_t _relative_save_offset;
3371 _relative_save_offset = ndr->offset;
3372 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->text_status));
3373 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
3374 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
3375 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->text_status));
3376 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
3377 if (ndr->offset > ndr->relative_highest_offset) {
3378 ndr->relative_highest_offset = ndr->offset;
3380 ndr->offset = _relative_save_offset;
3382 ndr->flags = _flags_save_string;
3385 return NDR_ERR_SUCCESS;
3388 _PUBLIC_ void ndr_print_spoolss_JobInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo1 *r)
3390 ndr_print_struct(ndr, name, "spoolss_JobInfo1");
3392 ndr_print_uint32(ndr, "job_id", r->job_id);
3393 ndr_print_ptr(ndr, "printer_name", r->printer_name);
3395 if (r->printer_name) {
3396 ndr_print_string(ndr, "printer_name", r->printer_name);
3399 ndr_print_ptr(ndr, "server_name", r->server_name);
3401 if (r->server_name) {
3402 ndr_print_string(ndr, "server_name", r->server_name);
3405 ndr_print_ptr(ndr, "user_name", r->user_name);
3408 ndr_print_string(ndr, "user_name", r->user_name);
3411 ndr_print_ptr(ndr, "document_name", r->document_name);
3413 if (r->document_name) {
3414 ndr_print_string(ndr, "document_name", r->document_name);
3417 ndr_print_ptr(ndr, "data_type", r->data_type);
3420 ndr_print_string(ndr, "data_type", r->data_type);
3423 ndr_print_ptr(ndr, "text_status", r->text_status);
3425 if (r->text_status) {
3426 ndr_print_string(ndr, "text_status", r->text_status);
3429 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
3430 ndr_print_uint32(ndr, "priority", r->priority);
3431 ndr_print_uint32(ndr, "position", r->position);
3432 ndr_print_uint32(ndr, "total_pages", r->total_pages);
3433 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
3434 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
3438 _PUBLIC_ size_t ndr_size_spoolss_JobInfo1(const struct spoolss_JobInfo1 *r, struct smb_iconv_convenience *ic, int flags)
3440 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo1, ic);
3443 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo2 *r)
3445 if (ndr_flags & NDR_SCALARS) {
3446 NDR_CHECK(ndr_push_align(ndr, 5));
3447 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
3449 uint32_t _flags_save_string = ndr->flags;
3450 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3451 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printer_name));
3452 ndr->flags = _flags_save_string;
3455 uint32_t _flags_save_string = ndr->flags;
3456 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3457 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->server_name));
3458 ndr->flags = _flags_save_string;
3461 uint32_t _flags_save_string = ndr->flags;
3462 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3463 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->user_name));
3464 ndr->flags = _flags_save_string;
3467 uint32_t _flags_save_string = ndr->flags;
3468 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3469 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->document_name));
3470 ndr->flags = _flags_save_string;
3473 uint32_t _flags_save_string = ndr->flags;
3474 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3475 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->notify_name));
3476 ndr->flags = _flags_save_string;
3479 uint32_t _flags_save_string = ndr->flags;
3480 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3481 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_type));
3482 ndr->flags = _flags_save_string;
3485 uint32_t _flags_save_string = ndr->flags;
3486 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3487 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor));
3488 ndr->flags = _flags_save_string;
3491 uint32_t _flags_save_string = ndr->flags;
3492 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3493 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->parameters));
3494 ndr->flags = _flags_save_string;
3497 uint32_t _flags_save_string = ndr->flags;
3498 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3499 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
3500 ndr->flags = _flags_save_string;
3503 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
3504 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
3505 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
3506 ndr->flags = _flags_save_spoolss_DeviceMode;
3509 uint32_t _flags_save_string = ndr->flags;
3510 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3511 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->text_status));
3512 ndr->flags = _flags_save_string;
3515 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
3516 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
3517 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
3518 ndr->flags = _flags_save_spoolss_security_descriptor;
3520 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
3521 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
3522 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
3523 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
3524 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
3525 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
3526 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
3527 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
3528 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
3529 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
3530 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
3532 if (ndr_flags & NDR_BUFFERS) {
3534 uint32_t _flags_save_string = ndr->flags;
3535 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3536 if (r->printer_name) {
3537 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->printer_name));
3538 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printer_name));
3539 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->printer_name));
3541 ndr->flags = _flags_save_string;
3544 uint32_t _flags_save_string = ndr->flags;
3545 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3546 if (r->server_name) {
3547 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->server_name));
3548 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server_name));
3549 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->server_name));
3551 ndr->flags = _flags_save_string;
3554 uint32_t _flags_save_string = ndr->flags;
3555 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3557 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->user_name));
3558 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
3559 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->user_name));
3561 ndr->flags = _flags_save_string;
3564 uint32_t _flags_save_string = ndr->flags;
3565 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3566 if (r->document_name) {
3567 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->document_name));
3568 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->document_name));
3569 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->document_name));
3571 ndr->flags = _flags_save_string;
3574 uint32_t _flags_save_string = ndr->flags;
3575 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3576 if (r->notify_name) {
3577 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->notify_name));
3578 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->notify_name));
3579 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->notify_name));
3581 ndr->flags = _flags_save_string;
3584 uint32_t _flags_save_string = ndr->flags;
3585 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3587 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_type));
3588 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_type));
3589 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_type));
3591 ndr->flags = _flags_save_string;
3594 uint32_t _flags_save_string = ndr->flags;
3595 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3596 if (r->print_processor) {
3597 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->print_processor));
3598 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor));
3599 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, 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_start(ndr, r->parameters));
3608 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->parameters));
3609 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->parameters));
3611 ndr->flags = _flags_save_string;
3614 uint32_t _flags_save_string = ndr->flags;
3615 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3616 if (r->driver_name) {
3617 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
3618 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
3619 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
3621 ndr->flags = _flags_save_string;
3624 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
3625 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
3627 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->devmode));
3629 struct ndr_push *_ndr_devmode;
3630 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
3631 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
3632 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
3634 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->devmode));
3636 ndr->flags = _flags_save_spoolss_DeviceMode;
3639 uint32_t _flags_save_string = ndr->flags;
3640 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3641 if (r->text_status) {
3642 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->text_status));
3643 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->text_status));
3644 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->text_status));
3646 ndr->flags = _flags_save_string;
3649 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
3650 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
3652 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->secdesc));
3654 struct ndr_push *_ndr_secdesc;
3655 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
3656 NDR_CHECK(ndr_push_spoolss_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
3657 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
3659 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->secdesc));
3661 ndr->flags = _flags_save_spoolss_security_descriptor;
3664 return NDR_ERR_SUCCESS;
3667 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo2 *r)
3669 uint32_t _ptr_printer_name;
3670 TALLOC_CTX *_mem_save_printer_name_0;
3671 uint32_t _ptr_server_name;
3672 TALLOC_CTX *_mem_save_server_name_0;
3673 uint32_t _ptr_user_name;
3674 TALLOC_CTX *_mem_save_user_name_0;
3675 uint32_t _ptr_document_name;
3676 TALLOC_CTX *_mem_save_document_name_0;
3677 uint32_t _ptr_notify_name;
3678 TALLOC_CTX *_mem_save_notify_name_0;
3679 uint32_t _ptr_data_type;
3680 TALLOC_CTX *_mem_save_data_type_0;
3681 uint32_t _ptr_print_processor;
3682 TALLOC_CTX *_mem_save_print_processor_0;
3683 uint32_t _ptr_parameters;
3684 TALLOC_CTX *_mem_save_parameters_0;
3685 uint32_t _ptr_driver_name;
3686 TALLOC_CTX *_mem_save_driver_name_0;
3687 uint32_t _ptr_devmode;
3688 TALLOC_CTX *_mem_save_devmode_0;
3689 uint32_t _ptr_text_status;
3690 TALLOC_CTX *_mem_save_text_status_0;
3691 uint32_t _ptr_secdesc;
3692 TALLOC_CTX *_mem_save_secdesc_0;
3693 if (ndr_flags & NDR_SCALARS) {
3694 NDR_CHECK(ndr_pull_align(ndr, 5));
3695 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
3697 uint32_t _flags_save_string = ndr->flags;
3698 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3699 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
3700 if (_ptr_printer_name) {
3701 NDR_PULL_ALLOC(ndr, r->printer_name);
3702 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printer_name, _ptr_printer_name));
3704 r->printer_name = NULL;
3706 ndr->flags = _flags_save_string;
3709 uint32_t _flags_save_string = ndr->flags;
3710 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3711 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
3712 if (_ptr_server_name) {
3713 NDR_PULL_ALLOC(ndr, r->server_name);
3714 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->server_name, _ptr_server_name));
3716 r->server_name = NULL;
3718 ndr->flags = _flags_save_string;
3721 uint32_t _flags_save_string = ndr->flags;
3722 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3723 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
3724 if (_ptr_user_name) {
3725 NDR_PULL_ALLOC(ndr, r->user_name);
3726 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->user_name, _ptr_user_name));
3728 r->user_name = NULL;
3730 ndr->flags = _flags_save_string;
3733 uint32_t _flags_save_string = ndr->flags;
3734 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3735 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
3736 if (_ptr_document_name) {
3737 NDR_PULL_ALLOC(ndr, r->document_name);
3738 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->document_name, _ptr_document_name));
3740 r->document_name = NULL;
3742 ndr->flags = _flags_save_string;
3745 uint32_t _flags_save_string = ndr->flags;
3746 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3747 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
3748 if (_ptr_notify_name) {
3749 NDR_PULL_ALLOC(ndr, r->notify_name);
3750 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->notify_name, _ptr_notify_name));
3752 r->notify_name = NULL;
3754 ndr->flags = _flags_save_string;
3757 uint32_t _flags_save_string = ndr->flags;
3758 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3759 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
3760 if (_ptr_data_type) {
3761 NDR_PULL_ALLOC(ndr, r->data_type);
3762 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_type, _ptr_data_type));
3764 r->data_type = NULL;
3766 ndr->flags = _flags_save_string;
3769 uint32_t _flags_save_string = ndr->flags;
3770 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3771 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
3772 if (_ptr_print_processor) {
3773 NDR_PULL_ALLOC(ndr, r->print_processor);
3774 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor, _ptr_print_processor));
3776 r->print_processor = NULL;
3778 ndr->flags = _flags_save_string;
3781 uint32_t _flags_save_string = ndr->flags;
3782 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3783 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
3784 if (_ptr_parameters) {
3785 NDR_PULL_ALLOC(ndr, r->parameters);
3786 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->parameters, _ptr_parameters));
3788 r->parameters = NULL;
3790 ndr->flags = _flags_save_string;
3793 uint32_t _flags_save_string = ndr->flags;
3794 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3795 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
3796 if (_ptr_driver_name) {
3797 NDR_PULL_ALLOC(ndr, r->driver_name);
3798 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
3800 r->driver_name = NULL;
3802 ndr->flags = _flags_save_string;
3805 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
3806 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
3807 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
3809 NDR_PULL_ALLOC(ndr, r->devmode);
3810 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
3814 ndr->flags = _flags_save_spoolss_DeviceMode;
3817 uint32_t _flags_save_string = ndr->flags;
3818 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3819 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
3820 if (_ptr_text_status) {
3821 NDR_PULL_ALLOC(ndr, r->text_status);
3822 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->text_status, _ptr_text_status));
3824 r->text_status = NULL;
3826 ndr->flags = _flags_save_string;
3829 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
3830 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
3831 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
3833 NDR_PULL_ALLOC(ndr, r->secdesc);
3834 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
3838 ndr->flags = _flags_save_spoolss_security_descriptor;
3840 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
3841 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
3842 if (r->priority > 99) {
3843 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
3845 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
3846 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
3847 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
3848 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
3849 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
3850 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
3851 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
3852 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
3853 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
3855 if (ndr_flags & NDR_BUFFERS) {
3857 uint32_t _flags_save_string = ndr->flags;
3858 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3859 if (r->printer_name) {
3860 uint32_t _relative_save_offset;
3861 _relative_save_offset = ndr->offset;
3862 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printer_name));
3863 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3864 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
3865 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printer_name));
3866 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
3867 if (ndr->offset > ndr->relative_highest_offset) {
3868 ndr->relative_highest_offset = ndr->offset;
3870 ndr->offset = _relative_save_offset;
3872 ndr->flags = _flags_save_string;
3875 uint32_t _flags_save_string = ndr->flags;
3876 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3877 if (r->server_name) {
3878 uint32_t _relative_save_offset;
3879 _relative_save_offset = ndr->offset;
3880 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->server_name));
3881 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3882 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
3883 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->server_name));
3884 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
3885 if (ndr->offset > ndr->relative_highest_offset) {
3886 ndr->relative_highest_offset = ndr->offset;
3888 ndr->offset = _relative_save_offset;
3890 ndr->flags = _flags_save_string;
3893 uint32_t _flags_save_string = ndr->flags;
3894 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3896 uint32_t _relative_save_offset;
3897 _relative_save_offset = ndr->offset;
3898 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->user_name));
3899 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3900 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
3901 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
3902 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
3903 if (ndr->offset > ndr->relative_highest_offset) {
3904 ndr->relative_highest_offset = ndr->offset;
3906 ndr->offset = _relative_save_offset;
3908 ndr->flags = _flags_save_string;
3911 uint32_t _flags_save_string = ndr->flags;
3912 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3913 if (r->document_name) {
3914 uint32_t _relative_save_offset;
3915 _relative_save_offset = ndr->offset;
3916 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->document_name));
3917 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3918 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
3919 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->document_name));
3920 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
3921 if (ndr->offset > ndr->relative_highest_offset) {
3922 ndr->relative_highest_offset = ndr->offset;
3924 ndr->offset = _relative_save_offset;
3926 ndr->flags = _flags_save_string;
3929 uint32_t _flags_save_string = ndr->flags;
3930 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3931 if (r->notify_name) {
3932 uint32_t _relative_save_offset;
3933 _relative_save_offset = ndr->offset;
3934 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->notify_name));
3935 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3936 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
3937 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->notify_name));
3938 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
3939 if (ndr->offset > ndr->relative_highest_offset) {
3940 ndr->relative_highest_offset = ndr->offset;
3942 ndr->offset = _relative_save_offset;
3944 ndr->flags = _flags_save_string;
3947 uint32_t _flags_save_string = ndr->flags;
3948 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3950 uint32_t _relative_save_offset;
3951 _relative_save_offset = ndr->offset;
3952 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_type));
3953 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
3954 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
3955 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_type));
3956 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
3957 if (ndr->offset > ndr->relative_highest_offset) {
3958 ndr->relative_highest_offset = ndr->offset;
3960 ndr->offset = _relative_save_offset;
3962 ndr->flags = _flags_save_string;
3965 uint32_t _flags_save_string = ndr->flags;
3966 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3967 if (r->print_processor) {
3968 uint32_t _relative_save_offset;
3969 _relative_save_offset = ndr->offset;
3970 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor));
3971 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
3972 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
3973 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor));
3974 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
3975 if (ndr->offset > ndr->relative_highest_offset) {
3976 ndr->relative_highest_offset = ndr->offset;
3978 ndr->offset = _relative_save_offset;
3980 ndr->flags = _flags_save_string;
3983 uint32_t _flags_save_string = ndr->flags;
3984 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3985 if (r->parameters) {
3986 uint32_t _relative_save_offset;
3987 _relative_save_offset = ndr->offset;
3988 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->parameters));
3989 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
3990 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
3991 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->parameters));
3992 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
3993 if (ndr->offset > ndr->relative_highest_offset) {
3994 ndr->relative_highest_offset = ndr->offset;
3996 ndr->offset = _relative_save_offset;
3998 ndr->flags = _flags_save_string;
4001 uint32_t _flags_save_string = ndr->flags;
4002 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4003 if (r->driver_name) {
4004 uint32_t _relative_save_offset;
4005 _relative_save_offset = ndr->offset;
4006 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
4007 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4008 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
4009 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
4010 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
4011 if (ndr->offset > ndr->relative_highest_offset) {
4012 ndr->relative_highest_offset = ndr->offset;
4014 ndr->offset = _relative_save_offset;
4016 ndr->flags = _flags_save_string;
4019 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
4020 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
4022 uint32_t _relative_save_offset;
4023 _relative_save_offset = ndr->offset;
4024 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
4025 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
4026 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
4028 struct ndr_pull *_ndr_devmode;
4029 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
4030 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
4031 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
4033 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
4034 if (ndr->offset > ndr->relative_highest_offset) {
4035 ndr->relative_highest_offset = ndr->offset;
4037 ndr->offset = _relative_save_offset;
4039 ndr->flags = _flags_save_spoolss_DeviceMode;
4042 uint32_t _flags_save_string = ndr->flags;
4043 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4044 if (r->text_status) {
4045 uint32_t _relative_save_offset;
4046 _relative_save_offset = ndr->offset;
4047 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->text_status));
4048 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
4049 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
4050 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->text_status));
4051 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
4052 if (ndr->offset > ndr->relative_highest_offset) {
4053 ndr->relative_highest_offset = ndr->offset;
4055 ndr->offset = _relative_save_offset;
4057 ndr->flags = _flags_save_string;
4060 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
4061 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
4063 uint32_t _relative_save_offset;
4064 _relative_save_offset = ndr->offset;
4065 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
4066 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
4067 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
4069 struct ndr_pull *_ndr_secdesc;
4070 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
4071 NDR_CHECK(ndr_pull_spoolss_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
4072 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
4074 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
4075 if (ndr->offset > ndr->relative_highest_offset) {
4076 ndr->relative_highest_offset = ndr->offset;
4078 ndr->offset = _relative_save_offset;
4080 ndr->flags = _flags_save_spoolss_security_descriptor;
4083 return NDR_ERR_SUCCESS;
4086 _PUBLIC_ void ndr_print_spoolss_JobInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo2 *r)
4088 ndr_print_struct(ndr, name, "spoolss_JobInfo2");
4090 ndr_print_uint32(ndr, "job_id", r->job_id);
4091 ndr_print_ptr(ndr, "printer_name", r->printer_name);
4093 if (r->printer_name) {
4094 ndr_print_string(ndr, "printer_name", r->printer_name);
4097 ndr_print_ptr(ndr, "server_name", r->server_name);
4099 if (r->server_name) {
4100 ndr_print_string(ndr, "server_name", r->server_name);
4103 ndr_print_ptr(ndr, "user_name", r->user_name);
4106 ndr_print_string(ndr, "user_name", r->user_name);
4109 ndr_print_ptr(ndr, "document_name", r->document_name);
4111 if (r->document_name) {
4112 ndr_print_string(ndr, "document_name", r->document_name);
4115 ndr_print_ptr(ndr, "notify_name", r->notify_name);
4117 if (r->notify_name) {
4118 ndr_print_string(ndr, "notify_name", r->notify_name);
4121 ndr_print_ptr(ndr, "data_type", r->data_type);
4124 ndr_print_string(ndr, "data_type", r->data_type);
4127 ndr_print_ptr(ndr, "print_processor", r->print_processor);
4129 if (r->print_processor) {
4130 ndr_print_string(ndr, "print_processor", r->print_processor);
4133 ndr_print_ptr(ndr, "parameters", r->parameters);
4135 if (r->parameters) {
4136 ndr_print_string(ndr, "parameters", r->parameters);
4139 ndr_print_ptr(ndr, "driver_name", r->driver_name);
4141 if (r->driver_name) {
4142 ndr_print_string(ndr, "driver_name", r->driver_name);
4145 ndr_print_ptr(ndr, "devmode", r->devmode);
4148 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
4151 ndr_print_ptr(ndr, "text_status", r->text_status);
4153 if (r->text_status) {
4154 ndr_print_string(ndr, "text_status", r->text_status);
4157 ndr_print_ptr(ndr, "secdesc", r->secdesc);
4160 ndr_print_spoolss_security_descriptor(ndr, "secdesc", r->secdesc);
4163 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
4164 ndr_print_uint32(ndr, "priority", r->priority);
4165 ndr_print_uint32(ndr, "position", r->position);
4166 ndr_print_uint32(ndr, "start_time", r->start_time);
4167 ndr_print_uint32(ndr, "until_time", r->until_time);
4168 ndr_print_uint32(ndr, "total_pages", r->total_pages);
4169 ndr_print_uint32(ndr, "size", r->size);
4170 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
4171 ndr_print_uint32(ndr, "time", r->time);
4172 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
4176 _PUBLIC_ size_t ndr_size_spoolss_JobInfo2(const struct spoolss_JobInfo2 *r, struct smb_iconv_convenience *ic, int flags)
4178 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo2, ic);
4181 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo3 *r)
4183 if (ndr_flags & NDR_SCALARS) {
4184 NDR_CHECK(ndr_push_align(ndr, 4));
4185 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
4186 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->next_job_id));
4187 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
4188 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
4190 if (ndr_flags & NDR_BUFFERS) {
4192 return NDR_ERR_SUCCESS;
4195 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo3 *r)
4197 if (ndr_flags & NDR_SCALARS) {
4198 NDR_CHECK(ndr_pull_align(ndr, 4));
4199 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
4200 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->next_job_id));
4201 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
4202 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
4204 if (ndr_flags & NDR_BUFFERS) {
4206 return NDR_ERR_SUCCESS;
4209 _PUBLIC_ void ndr_print_spoolss_JobInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo3 *r)
4211 ndr_print_struct(ndr, name, "spoolss_JobInfo3");
4213 ndr_print_uint32(ndr, "job_id", r->job_id);
4214 ndr_print_uint32(ndr, "next_job_id", r->next_job_id);
4215 ndr_print_uint32(ndr, "reserved", r->reserved);
4219 _PUBLIC_ size_t ndr_size_spoolss_JobInfo3(const struct spoolss_JobInfo3 *r, struct smb_iconv_convenience *ic, int flags)
4221 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo3, ic);
4224 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo4 *r)
4226 if (ndr_flags & NDR_SCALARS) {
4227 NDR_CHECK(ndr_push_align(ndr, 5));
4228 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
4230 uint32_t _flags_save_string = ndr->flags;
4231 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4232 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printer_name));
4233 ndr->flags = _flags_save_string;
4236 uint32_t _flags_save_string = ndr->flags;
4237 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4238 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->server_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 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->user_name));
4245 ndr->flags = _flags_save_string;
4248 uint32_t _flags_save_string = ndr->flags;
4249 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4250 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->document_name));
4251 ndr->flags = _flags_save_string;
4254 uint32_t _flags_save_string = ndr->flags;
4255 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4256 NDR_CHECK(ndr_push_relative_ptr1(ndr, 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 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_type));
4263 ndr->flags = _flags_save_string;
4266 uint32_t _flags_save_string = ndr->flags;
4267 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4268 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor));
4269 ndr->flags = _flags_save_string;
4272 uint32_t _flags_save_string = ndr->flags;
4273 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4274 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->parameters));
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 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
4281 ndr->flags = _flags_save_string;
4284 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
4285 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
4286 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
4287 ndr->flags = _flags_save_spoolss_DeviceMode;
4290 uint32_t _flags_save_string = ndr->flags;
4291 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4292 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->text_status));
4293 ndr->flags = _flags_save_string;
4296 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
4297 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
4298 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
4299 ndr->flags = _flags_save_spoolss_security_descriptor;
4301 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
4302 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
4303 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
4304 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
4305 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
4306 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
4307 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
4308 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
4309 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
4310 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
4311 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size_high));
4312 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
4314 if (ndr_flags & NDR_BUFFERS) {
4316 uint32_t _flags_save_string = ndr->flags;
4317 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4318 if (r->printer_name) {
4319 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->printer_name));
4320 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printer_name));
4321 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->printer_name));
4323 ndr->flags = _flags_save_string;
4326 uint32_t _flags_save_string = ndr->flags;
4327 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4328 if (r->server_name) {
4329 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->server_name));
4330 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server_name));
4331 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->server_name));
4333 ndr->flags = _flags_save_string;
4336 uint32_t _flags_save_string = ndr->flags;
4337 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4339 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->user_name));
4340 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
4341 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->user_name));
4343 ndr->flags = _flags_save_string;
4346 uint32_t _flags_save_string = ndr->flags;
4347 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4348 if (r->document_name) {
4349 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->document_name));
4350 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->document_name));
4351 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->document_name));
4353 ndr->flags = _flags_save_string;
4356 uint32_t _flags_save_string = ndr->flags;
4357 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4358 if (r->notify_name) {
4359 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->notify_name));
4360 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->notify_name));
4361 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->notify_name));
4363 ndr->flags = _flags_save_string;
4366 uint32_t _flags_save_string = ndr->flags;
4367 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4369 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_type));
4370 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_type));
4371 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_type));
4373 ndr->flags = _flags_save_string;
4376 uint32_t _flags_save_string = ndr->flags;
4377 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4378 if (r->print_processor) {
4379 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->print_processor));
4380 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor));
4381 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->print_processor));
4383 ndr->flags = _flags_save_string;
4386 uint32_t _flags_save_string = ndr->flags;
4387 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4388 if (r->parameters) {
4389 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->parameters));
4390 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->parameters));
4391 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->parameters));
4393 ndr->flags = _flags_save_string;
4396 uint32_t _flags_save_string = ndr->flags;
4397 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4398 if (r->driver_name) {
4399 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
4400 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
4401 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
4403 ndr->flags = _flags_save_string;
4406 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
4407 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
4409 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->devmode));
4411 struct ndr_push *_ndr_devmode;
4412 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
4413 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
4414 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
4416 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->devmode));
4418 ndr->flags = _flags_save_spoolss_DeviceMode;
4421 uint32_t _flags_save_string = ndr->flags;
4422 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4423 if (r->text_status) {
4424 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->text_status));
4425 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->text_status));
4426 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->text_status));
4428 ndr->flags = _flags_save_string;
4431 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
4432 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
4434 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->secdesc));
4436 struct ndr_push *_ndr_secdesc;
4437 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
4438 NDR_CHECK(ndr_push_spoolss_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
4439 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
4441 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->secdesc));
4443 ndr->flags = _flags_save_spoolss_security_descriptor;
4446 return NDR_ERR_SUCCESS;
4449 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo4 *r)
4451 uint32_t _ptr_printer_name;
4452 TALLOC_CTX *_mem_save_printer_name_0;
4453 uint32_t _ptr_server_name;
4454 TALLOC_CTX *_mem_save_server_name_0;
4455 uint32_t _ptr_user_name;
4456 TALLOC_CTX *_mem_save_user_name_0;
4457 uint32_t _ptr_document_name;
4458 TALLOC_CTX *_mem_save_document_name_0;
4459 uint32_t _ptr_notify_name;
4460 TALLOC_CTX *_mem_save_notify_name_0;
4461 uint32_t _ptr_data_type;
4462 TALLOC_CTX *_mem_save_data_type_0;
4463 uint32_t _ptr_print_processor;
4464 TALLOC_CTX *_mem_save_print_processor_0;
4465 uint32_t _ptr_parameters;
4466 TALLOC_CTX *_mem_save_parameters_0;
4467 uint32_t _ptr_driver_name;
4468 TALLOC_CTX *_mem_save_driver_name_0;
4469 uint32_t _ptr_devmode;
4470 TALLOC_CTX *_mem_save_devmode_0;
4471 uint32_t _ptr_text_status;
4472 TALLOC_CTX *_mem_save_text_status_0;
4473 uint32_t _ptr_secdesc;
4474 TALLOC_CTX *_mem_save_secdesc_0;
4475 if (ndr_flags & NDR_SCALARS) {
4476 NDR_CHECK(ndr_pull_align(ndr, 5));
4477 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
4479 uint32_t _flags_save_string = ndr->flags;
4480 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4481 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
4482 if (_ptr_printer_name) {
4483 NDR_PULL_ALLOC(ndr, r->printer_name);
4484 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printer_name, _ptr_printer_name));
4486 r->printer_name = NULL;
4488 ndr->flags = _flags_save_string;
4491 uint32_t _flags_save_string = ndr->flags;
4492 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4493 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
4494 if (_ptr_server_name) {
4495 NDR_PULL_ALLOC(ndr, r->server_name);
4496 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->server_name, _ptr_server_name));
4498 r->server_name = NULL;
4500 ndr->flags = _flags_save_string;
4503 uint32_t _flags_save_string = ndr->flags;
4504 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4505 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
4506 if (_ptr_user_name) {
4507 NDR_PULL_ALLOC(ndr, r->user_name);
4508 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->user_name, _ptr_user_name));
4510 r->user_name = NULL;
4512 ndr->flags = _flags_save_string;
4515 uint32_t _flags_save_string = ndr->flags;
4516 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4517 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
4518 if (_ptr_document_name) {
4519 NDR_PULL_ALLOC(ndr, r->document_name);
4520 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->document_name, _ptr_document_name));
4522 r->document_name = NULL;
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 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
4530 if (_ptr_notify_name) {
4531 NDR_PULL_ALLOC(ndr, r->notify_name);
4532 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->notify_name, _ptr_notify_name));
4534 r->notify_name = NULL;
4536 ndr->flags = _flags_save_string;
4539 uint32_t _flags_save_string = ndr->flags;
4540 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4541 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
4542 if (_ptr_data_type) {
4543 NDR_PULL_ALLOC(ndr, r->data_type);
4544 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_type, _ptr_data_type));
4546 r->data_type = NULL;
4548 ndr->flags = _flags_save_string;
4551 uint32_t _flags_save_string = ndr->flags;
4552 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4553 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
4554 if (_ptr_print_processor) {
4555 NDR_PULL_ALLOC(ndr, r->print_processor);
4556 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor, _ptr_print_processor));
4558 r->print_processor = NULL;
4560 ndr->flags = _flags_save_string;
4563 uint32_t _flags_save_string = ndr->flags;
4564 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4565 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
4566 if (_ptr_parameters) {
4567 NDR_PULL_ALLOC(ndr, r->parameters);
4568 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->parameters, _ptr_parameters));
4570 r->parameters = NULL;
4572 ndr->flags = _flags_save_string;
4575 uint32_t _flags_save_string = ndr->flags;
4576 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4577 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
4578 if (_ptr_driver_name) {
4579 NDR_PULL_ALLOC(ndr, r->driver_name);
4580 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
4582 r->driver_name = NULL;
4584 ndr->flags = _flags_save_string;
4587 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
4588 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
4589 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
4591 NDR_PULL_ALLOC(ndr, r->devmode);
4592 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
4596 ndr->flags = _flags_save_spoolss_DeviceMode;
4599 uint32_t _flags_save_string = ndr->flags;
4600 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4601 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
4602 if (_ptr_text_status) {
4603 NDR_PULL_ALLOC(ndr, r->text_status);
4604 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->text_status, _ptr_text_status));
4606 r->text_status = NULL;
4608 ndr->flags = _flags_save_string;
4611 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
4612 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
4613 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
4615 NDR_PULL_ALLOC(ndr, r->secdesc);
4616 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
4620 ndr->flags = _flags_save_spoolss_security_descriptor;
4622 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
4623 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
4624 if (r->priority > 99) {
4625 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
4627 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
4628 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
4629 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
4630 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
4631 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
4632 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
4633 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
4634 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
4635 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size_high));
4636 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
4638 if (ndr_flags & NDR_BUFFERS) {
4640 uint32_t _flags_save_string = ndr->flags;
4641 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4642 if (r->printer_name) {
4643 uint32_t _relative_save_offset;
4644 _relative_save_offset = ndr->offset;
4645 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printer_name));
4646 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4647 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
4648 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printer_name));
4649 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
4650 if (ndr->offset > ndr->relative_highest_offset) {
4651 ndr->relative_highest_offset = ndr->offset;
4653 ndr->offset = _relative_save_offset;
4655 ndr->flags = _flags_save_string;
4658 uint32_t _flags_save_string = ndr->flags;
4659 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4660 if (r->server_name) {
4661 uint32_t _relative_save_offset;
4662 _relative_save_offset = ndr->offset;
4663 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->server_name));
4664 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4665 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
4666 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->server_name));
4667 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
4668 if (ndr->offset > ndr->relative_highest_offset) {
4669 ndr->relative_highest_offset = ndr->offset;
4671 ndr->offset = _relative_save_offset;
4673 ndr->flags = _flags_save_string;
4676 uint32_t _flags_save_string = ndr->flags;
4677 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4679 uint32_t _relative_save_offset;
4680 _relative_save_offset = ndr->offset;
4681 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->user_name));
4682 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4683 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
4684 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
4685 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
4686 if (ndr->offset > ndr->relative_highest_offset) {
4687 ndr->relative_highest_offset = ndr->offset;
4689 ndr->offset = _relative_save_offset;
4691 ndr->flags = _flags_save_string;
4694 uint32_t _flags_save_string = ndr->flags;
4695 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4696 if (r->document_name) {
4697 uint32_t _relative_save_offset;
4698 _relative_save_offset = ndr->offset;
4699 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->document_name));
4700 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4701 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
4702 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->document_name));
4703 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
4704 if (ndr->offset > ndr->relative_highest_offset) {
4705 ndr->relative_highest_offset = ndr->offset;
4707 ndr->offset = _relative_save_offset;
4709 ndr->flags = _flags_save_string;
4712 uint32_t _flags_save_string = ndr->flags;
4713 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4714 if (r->notify_name) {
4715 uint32_t _relative_save_offset;
4716 _relative_save_offset = ndr->offset;
4717 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->notify_name));
4718 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4719 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
4720 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->notify_name));
4721 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
4722 if (ndr->offset > ndr->relative_highest_offset) {
4723 ndr->relative_highest_offset = ndr->offset;
4725 ndr->offset = _relative_save_offset;
4727 ndr->flags = _flags_save_string;
4730 uint32_t _flags_save_string = ndr->flags;
4731 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4733 uint32_t _relative_save_offset;
4734 _relative_save_offset = ndr->offset;
4735 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_type));
4736 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
4737 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
4738 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_type));
4739 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
4740 if (ndr->offset > ndr->relative_highest_offset) {
4741 ndr->relative_highest_offset = ndr->offset;
4743 ndr->offset = _relative_save_offset;
4745 ndr->flags = _flags_save_string;
4748 uint32_t _flags_save_string = ndr->flags;
4749 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4750 if (r->print_processor) {
4751 uint32_t _relative_save_offset;
4752 _relative_save_offset = ndr->offset;
4753 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor));
4754 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
4755 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
4756 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor));
4757 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
4758 if (ndr->offset > ndr->relative_highest_offset) {
4759 ndr->relative_highest_offset = ndr->offset;
4761 ndr->offset = _relative_save_offset;
4763 ndr->flags = _flags_save_string;
4766 uint32_t _flags_save_string = ndr->flags;
4767 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4768 if (r->parameters) {
4769 uint32_t _relative_save_offset;
4770 _relative_save_offset = ndr->offset;
4771 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->parameters));
4772 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
4773 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
4774 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->parameters));
4775 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
4776 if (ndr->offset > ndr->relative_highest_offset) {
4777 ndr->relative_highest_offset = ndr->offset;
4779 ndr->offset = _relative_save_offset;
4781 ndr->flags = _flags_save_string;
4784 uint32_t _flags_save_string = ndr->flags;
4785 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4786 if (r->driver_name) {
4787 uint32_t _relative_save_offset;
4788 _relative_save_offset = ndr->offset;
4789 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
4790 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4791 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
4792 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
4793 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
4794 if (ndr->offset > ndr->relative_highest_offset) {
4795 ndr->relative_highest_offset = ndr->offset;
4797 ndr->offset = _relative_save_offset;
4799 ndr->flags = _flags_save_string;
4802 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
4803 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
4805 uint32_t _relative_save_offset;
4806 _relative_save_offset = ndr->offset;
4807 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
4808 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
4809 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
4811 struct ndr_pull *_ndr_devmode;
4812 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
4813 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
4814 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
4816 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
4817 if (ndr->offset > ndr->relative_highest_offset) {
4818 ndr->relative_highest_offset = ndr->offset;
4820 ndr->offset = _relative_save_offset;
4822 ndr->flags = _flags_save_spoolss_DeviceMode;
4825 uint32_t _flags_save_string = ndr->flags;
4826 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4827 if (r->text_status) {
4828 uint32_t _relative_save_offset;
4829 _relative_save_offset = ndr->offset;
4830 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->text_status));
4831 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
4832 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
4833 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->text_status));
4834 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
4835 if (ndr->offset > ndr->relative_highest_offset) {
4836 ndr->relative_highest_offset = ndr->offset;
4838 ndr->offset = _relative_save_offset;
4840 ndr->flags = _flags_save_string;
4843 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
4844 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
4846 uint32_t _relative_save_offset;
4847 _relative_save_offset = ndr->offset;
4848 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
4849 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
4850 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
4852 struct ndr_pull *_ndr_secdesc;
4853 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
4854 NDR_CHECK(ndr_pull_spoolss_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
4855 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
4857 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
4858 if (ndr->offset > ndr->relative_highest_offset) {
4859 ndr->relative_highest_offset = ndr->offset;
4861 ndr->offset = _relative_save_offset;
4863 ndr->flags = _flags_save_spoolss_security_descriptor;
4866 return NDR_ERR_SUCCESS;
4869 _PUBLIC_ void ndr_print_spoolss_JobInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo4 *r)
4871 ndr_print_struct(ndr, name, "spoolss_JobInfo4");
4873 ndr_print_uint32(ndr, "job_id", r->job_id);
4874 ndr_print_ptr(ndr, "printer_name", r->printer_name);
4876 if (r->printer_name) {
4877 ndr_print_string(ndr, "printer_name", r->printer_name);
4880 ndr_print_ptr(ndr, "server_name", r->server_name);
4882 if (r->server_name) {
4883 ndr_print_string(ndr, "server_name", r->server_name);
4886 ndr_print_ptr(ndr, "user_name", r->user_name);
4889 ndr_print_string(ndr, "user_name", r->user_name);
4892 ndr_print_ptr(ndr, "document_name", r->document_name);
4894 if (r->document_name) {
4895 ndr_print_string(ndr, "document_name", r->document_name);
4898 ndr_print_ptr(ndr, "notify_name", r->notify_name);
4900 if (r->notify_name) {
4901 ndr_print_string(ndr, "notify_name", r->notify_name);
4904 ndr_print_ptr(ndr, "data_type", r->data_type);
4907 ndr_print_string(ndr, "data_type", r->data_type);
4910 ndr_print_ptr(ndr, "print_processor", r->print_processor);
4912 if (r->print_processor) {
4913 ndr_print_string(ndr, "print_processor", r->print_processor);
4916 ndr_print_ptr(ndr, "parameters", r->parameters);
4918 if (r->parameters) {
4919 ndr_print_string(ndr, "parameters", r->parameters);
4922 ndr_print_ptr(ndr, "driver_name", r->driver_name);
4924 if (r->driver_name) {
4925 ndr_print_string(ndr, "driver_name", r->driver_name);
4928 ndr_print_ptr(ndr, "devmode", r->devmode);
4931 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
4934 ndr_print_ptr(ndr, "text_status", r->text_status);
4936 if (r->text_status) {
4937 ndr_print_string(ndr, "text_status", r->text_status);
4940 ndr_print_ptr(ndr, "secdesc", r->secdesc);
4943 ndr_print_spoolss_security_descriptor(ndr, "secdesc", r->secdesc);
4946 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
4947 ndr_print_uint32(ndr, "priority", r->priority);
4948 ndr_print_uint32(ndr, "position", r->position);
4949 ndr_print_uint32(ndr, "start_time", r->start_time);
4950 ndr_print_uint32(ndr, "until_time", r->until_time);
4951 ndr_print_uint32(ndr, "total_pages", r->total_pages);
4952 ndr_print_uint32(ndr, "size", r->size);
4953 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
4954 ndr_print_uint32(ndr, "time", r->time);
4955 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
4956 ndr_print_uint32(ndr, "size_high", r->size_high);
4960 _PUBLIC_ size_t ndr_size_spoolss_JobInfo4(const struct spoolss_JobInfo4 *r, struct smb_iconv_convenience *ic, int flags)
4962 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo4, ic);
4965 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_JobInfo *r)
4967 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
4969 uint32_t _flags_save_UNION = ndr->flags;
4970 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
4971 if (ndr_flags & NDR_SCALARS) {
4972 int level = ndr_push_get_switch_value(ndr, r);
4973 NDR_CHECK(ndr_push_union_align(ndr, 5));
4976 NDR_CHECK(ndr_push_align(ndr, 5));
4977 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
4978 NDR_CHECK(ndr_push_spoolss_JobInfo1(ndr, NDR_SCALARS, &r->info1));
4982 NDR_CHECK(ndr_push_align(ndr, 5));
4983 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
4984 NDR_CHECK(ndr_push_spoolss_JobInfo2(ndr, NDR_SCALARS, &r->info2));
4988 NDR_CHECK(ndr_push_align(ndr, 4));
4989 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
4990 NDR_CHECK(ndr_push_spoolss_JobInfo3(ndr, NDR_SCALARS, &r->info3));
4994 NDR_CHECK(ndr_push_align(ndr, 5));
4995 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
4996 NDR_CHECK(ndr_push_spoolss_JobInfo4(ndr, NDR_SCALARS, &r->info4));
5004 if (ndr_flags & NDR_BUFFERS) {
5005 int level = ndr_push_get_switch_value(ndr, r);
5006 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
5009 NDR_CHECK(ndr_push_spoolss_JobInfo1(ndr, NDR_BUFFERS, &r->info1));
5013 NDR_CHECK(ndr_push_spoolss_JobInfo2(ndr, NDR_BUFFERS, &r->info2));
5020 NDR_CHECK(ndr_push_spoolss_JobInfo4(ndr, NDR_BUFFERS, &r->info4));
5028 ndr->flags = _flags_save_UNION;
5030 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
5031 return NDR_ERR_SUCCESS;
5034 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_JobInfo *r)
5036 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
5039 uint32_t _flags_save_UNION = ndr->flags;
5040 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
5041 level = ndr_pull_get_switch_value(ndr, r);
5042 if (ndr_flags & NDR_SCALARS) {
5043 NDR_CHECK(ndr_pull_union_align(ndr, 5));
5046 NDR_CHECK(ndr_pull_align(ndr, 5));
5047 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
5048 NDR_CHECK(ndr_pull_spoolss_JobInfo1(ndr, NDR_SCALARS, &r->info1));
5052 NDR_CHECK(ndr_pull_align(ndr, 5));
5053 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
5054 NDR_CHECK(ndr_pull_spoolss_JobInfo2(ndr, NDR_SCALARS, &r->info2));
5058 NDR_CHECK(ndr_pull_align(ndr, 4));
5059 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
5060 NDR_CHECK(ndr_pull_spoolss_JobInfo3(ndr, NDR_SCALARS, &r->info3));
5064 NDR_CHECK(ndr_pull_align(ndr, 5));
5065 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
5066 NDR_CHECK(ndr_pull_spoolss_JobInfo4(ndr, NDR_SCALARS, &r->info4));
5074 if (ndr_flags & NDR_BUFFERS) {
5075 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
5078 NDR_CHECK(ndr_pull_spoolss_JobInfo1(ndr, NDR_BUFFERS, &r->info1));
5082 NDR_CHECK(ndr_pull_spoolss_JobInfo2(ndr, NDR_BUFFERS, &r->info2));
5089 NDR_CHECK(ndr_pull_spoolss_JobInfo4(ndr, NDR_BUFFERS, &r->info4));
5097 ndr->flags = _flags_save_UNION;
5099 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
5100 return NDR_ERR_SUCCESS;
5103 _PUBLIC_ void ndr_print_spoolss_JobInfo(struct ndr_print *ndr, const char *name, const union spoolss_JobInfo *r)
5107 uint32_t _flags_save_UNION = ndr->flags;
5108 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
5109 level = ndr_print_get_switch_value(ndr, r);
5110 ndr_print_union(ndr, name, level, "spoolss_JobInfo");
5113 ndr_print_spoolss_JobInfo1(ndr, "info1", &r->info1);
5117 ndr_print_spoolss_JobInfo2(ndr, "info2", &r->info2);
5121 ndr_print_spoolss_JobInfo3(ndr, "info3", &r->info3);
5125 ndr_print_spoolss_JobInfo4(ndr, "info4", &r->info4);
5132 ndr->flags = _flags_save_UNION;
5136 _PUBLIC_ size_t ndr_size_spoolss_JobInfo(const union spoolss_JobInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
5138 flags |= LIBNDR_FLAG_RELATIVE_REVERSE;
5139 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo, ic);
5142 static enum ndr_err_code ndr_push_spoolss_SetJobInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetJobInfo1 *r)
5144 if (ndr_flags & NDR_SCALARS) {
5145 NDR_CHECK(ndr_push_align(ndr, 5));
5146 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
5147 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printer_name));
5148 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_name));
5149 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user_name));
5150 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
5151 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_type));
5152 NDR_CHECK(ndr_push_unique_ptr(ndr, r->text_status));
5153 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
5154 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
5155 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
5156 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
5157 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
5158 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5159 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
5161 if (ndr_flags & NDR_BUFFERS) {
5162 if (r->printer_name) {
5163 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
5164 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5165 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
5166 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printer_name, ndr_charset_length(r->printer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5168 if (r->server_name) {
5169 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
5170 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5171 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
5172 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_name, ndr_charset_length(r->server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5175 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5176 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5177 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5178 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user_name, ndr_charset_length(r->user_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5180 if (r->document_name) {
5181 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5182 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5183 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5184 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5187 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5188 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5189 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5190 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_type, ndr_charset_length(r->data_type, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5192 if (r->text_status) {
5193 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
5194 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5195 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
5196 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->text_status, ndr_charset_length(r->text_status, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5199 return NDR_ERR_SUCCESS;
5202 static enum ndr_err_code ndr_pull_spoolss_SetJobInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetJobInfo1 *r)
5204 uint32_t _ptr_printer_name;
5205 TALLOC_CTX *_mem_save_printer_name_0;
5206 uint32_t _ptr_server_name;
5207 TALLOC_CTX *_mem_save_server_name_0;
5208 uint32_t _ptr_user_name;
5209 TALLOC_CTX *_mem_save_user_name_0;
5210 uint32_t _ptr_document_name;
5211 TALLOC_CTX *_mem_save_document_name_0;
5212 uint32_t _ptr_data_type;
5213 TALLOC_CTX *_mem_save_data_type_0;
5214 uint32_t _ptr_text_status;
5215 TALLOC_CTX *_mem_save_text_status_0;
5216 if (ndr_flags & NDR_SCALARS) {
5217 NDR_CHECK(ndr_pull_align(ndr, 5));
5218 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
5219 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
5220 if (_ptr_printer_name) {
5221 NDR_PULL_ALLOC(ndr, r->printer_name);
5223 r->printer_name = NULL;
5225 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
5226 if (_ptr_server_name) {
5227 NDR_PULL_ALLOC(ndr, r->server_name);
5229 r->server_name = NULL;
5231 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
5232 if (_ptr_user_name) {
5233 NDR_PULL_ALLOC(ndr, r->user_name);
5235 r->user_name = NULL;
5237 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
5238 if (_ptr_document_name) {
5239 NDR_PULL_ALLOC(ndr, r->document_name);
5241 r->document_name = NULL;
5243 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
5244 if (_ptr_data_type) {
5245 NDR_PULL_ALLOC(ndr, r->data_type);
5247 r->data_type = NULL;
5249 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
5250 if (_ptr_text_status) {
5251 NDR_PULL_ALLOC(ndr, r->text_status);
5253 r->text_status = NULL;
5255 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
5256 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
5257 if (r->priority > 99) {
5258 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
5260 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
5261 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
5262 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
5263 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5264 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
5266 if (ndr_flags & NDR_BUFFERS) {
5267 if (r->printer_name) {
5268 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5269 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
5270 NDR_CHECK(ndr_pull_array_size(ndr, &r->printer_name));
5271 NDR_CHECK(ndr_pull_array_length(ndr, &r->printer_name));
5272 if (ndr_get_array_length(ndr, &r->printer_name) > ndr_get_array_size(ndr, &r->printer_name)) {
5273 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));
5275 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t)));
5276 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printer_name, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t), CH_UTF16));
5277 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
5279 if (r->server_name) {
5280 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5281 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
5282 NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name));
5283 NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name));
5284 if (ndr_get_array_length(ndr, &r->server_name) > ndr_get_array_size(ndr, &r->server_name)) {
5285 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));
5287 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t)));
5288 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t), CH_UTF16));
5289 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
5292 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5293 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
5294 NDR_CHECK(ndr_pull_array_size(ndr, &r->user_name));
5295 NDR_CHECK(ndr_pull_array_length(ndr, &r->user_name));
5296 if (ndr_get_array_length(ndr, &r->user_name) > ndr_get_array_size(ndr, &r->user_name)) {
5297 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));
5299 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t)));
5300 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t), CH_UTF16));
5301 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
5303 if (r->document_name) {
5304 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5305 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
5306 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
5307 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
5308 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
5309 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));
5311 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
5312 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
5313 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
5316 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
5317 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
5318 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_type));
5319 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_type));
5320 if (ndr_get_array_length(ndr, &r->data_type) > ndr_get_array_size(ndr, &r->data_type)) {
5321 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));
5323 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t)));
5324 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_type, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t), CH_UTF16));
5325 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
5327 if (r->text_status) {
5328 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
5329 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
5330 NDR_CHECK(ndr_pull_array_size(ndr, &r->text_status));
5331 NDR_CHECK(ndr_pull_array_length(ndr, &r->text_status));
5332 if (ndr_get_array_length(ndr, &r->text_status) > ndr_get_array_size(ndr, &r->text_status)) {
5333 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));
5335 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t)));
5336 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->text_status, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t), CH_UTF16));
5337 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
5340 return NDR_ERR_SUCCESS;
5343 _PUBLIC_ void ndr_print_spoolss_SetJobInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_SetJobInfo1 *r)
5345 ndr_print_struct(ndr, name, "spoolss_SetJobInfo1");
5347 ndr_print_uint32(ndr, "job_id", r->job_id);
5348 ndr_print_ptr(ndr, "printer_name", r->printer_name);
5350 if (r->printer_name) {
5351 ndr_print_string(ndr, "printer_name", r->printer_name);
5354 ndr_print_ptr(ndr, "server_name", r->server_name);
5356 if (r->server_name) {
5357 ndr_print_string(ndr, "server_name", r->server_name);
5360 ndr_print_ptr(ndr, "user_name", r->user_name);
5363 ndr_print_string(ndr, "user_name", r->user_name);
5366 ndr_print_ptr(ndr, "document_name", r->document_name);
5368 if (r->document_name) {
5369 ndr_print_string(ndr, "document_name", r->document_name);
5372 ndr_print_ptr(ndr, "data_type", r->data_type);
5375 ndr_print_string(ndr, "data_type", r->data_type);
5378 ndr_print_ptr(ndr, "text_status", r->text_status);
5380 if (r->text_status) {
5381 ndr_print_string(ndr, "text_status", r->text_status);
5384 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
5385 ndr_print_uint32(ndr, "priority", r->priority);
5386 ndr_print_uint32(ndr, "position", r->position);
5387 ndr_print_uint32(ndr, "total_pages", r->total_pages);
5388 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
5389 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
5393 static enum ndr_err_code ndr_push_spoolss_SetJobInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetJobInfo2 *r)
5395 if (ndr_flags & NDR_SCALARS) {
5396 NDR_CHECK(ndr_push_align(ndr, 5));
5397 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
5398 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printer_name));
5399 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_name));
5400 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user_name));
5401 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
5402 NDR_CHECK(ndr_push_unique_ptr(ndr, r->notify_name));
5403 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_type));
5404 NDR_CHECK(ndr_push_unique_ptr(ndr, r->print_processor));
5405 NDR_CHECK(ndr_push_unique_ptr(ndr, r->parameters));
5406 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
5407 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_devmode_ptr));
5408 NDR_CHECK(ndr_push_unique_ptr(ndr, r->text_status));
5409 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_secdesc_ptr));
5410 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
5411 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
5412 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
5413 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
5414 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
5415 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
5416 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
5417 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5418 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
5419 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
5420 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
5422 if (ndr_flags & NDR_BUFFERS) {
5423 if (r->printer_name) {
5424 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
5425 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5426 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
5427 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printer_name, ndr_charset_length(r->printer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5429 if (r->server_name) {
5430 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
5431 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5432 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
5433 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_name, ndr_charset_length(r->server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5436 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5437 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5438 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5439 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user_name, ndr_charset_length(r->user_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5441 if (r->document_name) {
5442 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5443 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5444 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5445 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5447 if (r->notify_name) {
5448 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
5449 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5450 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
5451 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->notify_name, ndr_charset_length(r->notify_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5454 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5455 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5456 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5457 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_type, ndr_charset_length(r->data_type, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5459 if (r->print_processor) {
5460 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
5461 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5462 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
5463 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->print_processor, ndr_charset_length(r->print_processor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5465 if (r->parameters) {
5466 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
5467 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5468 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
5469 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->parameters, ndr_charset_length(r->parameters, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5471 if (r->driver_name) {
5472 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5473 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5474 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5475 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5477 if (r->text_status) {
5478 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
5479 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5480 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
5481 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->text_status, ndr_charset_length(r->text_status, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5484 return NDR_ERR_SUCCESS;
5487 static enum ndr_err_code ndr_pull_spoolss_SetJobInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetJobInfo2 *r)
5489 uint32_t _ptr_printer_name;
5490 TALLOC_CTX *_mem_save_printer_name_0;
5491 uint32_t _ptr_server_name;
5492 TALLOC_CTX *_mem_save_server_name_0;
5493 uint32_t _ptr_user_name;
5494 TALLOC_CTX *_mem_save_user_name_0;
5495 uint32_t _ptr_document_name;
5496 TALLOC_CTX *_mem_save_document_name_0;
5497 uint32_t _ptr_notify_name;
5498 TALLOC_CTX *_mem_save_notify_name_0;
5499 uint32_t _ptr_data_type;
5500 TALLOC_CTX *_mem_save_data_type_0;
5501 uint32_t _ptr_print_processor;
5502 TALLOC_CTX *_mem_save_print_processor_0;
5503 uint32_t _ptr_parameters;
5504 TALLOC_CTX *_mem_save_parameters_0;
5505 uint32_t _ptr_driver_name;
5506 TALLOC_CTX *_mem_save_driver_name_0;
5507 uint32_t _ptr_text_status;
5508 TALLOC_CTX *_mem_save_text_status_0;
5509 if (ndr_flags & NDR_SCALARS) {
5510 NDR_CHECK(ndr_pull_align(ndr, 5));
5511 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
5512 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
5513 if (_ptr_printer_name) {
5514 NDR_PULL_ALLOC(ndr, r->printer_name);
5516 r->printer_name = NULL;
5518 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
5519 if (_ptr_server_name) {
5520 NDR_PULL_ALLOC(ndr, r->server_name);
5522 r->server_name = NULL;
5524 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
5525 if (_ptr_user_name) {
5526 NDR_PULL_ALLOC(ndr, r->user_name);
5528 r->user_name = NULL;
5530 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
5531 if (_ptr_document_name) {
5532 NDR_PULL_ALLOC(ndr, r->document_name);
5534 r->document_name = NULL;
5536 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
5537 if (_ptr_notify_name) {
5538 NDR_PULL_ALLOC(ndr, r->notify_name);
5540 r->notify_name = NULL;
5542 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
5543 if (_ptr_data_type) {
5544 NDR_PULL_ALLOC(ndr, r->data_type);
5546 r->data_type = NULL;
5548 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
5549 if (_ptr_print_processor) {
5550 NDR_PULL_ALLOC(ndr, r->print_processor);
5552 r->print_processor = NULL;
5554 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
5555 if (_ptr_parameters) {
5556 NDR_PULL_ALLOC(ndr, r->parameters);
5558 r->parameters = NULL;
5560 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
5561 if (_ptr_driver_name) {
5562 NDR_PULL_ALLOC(ndr, r->driver_name);
5564 r->driver_name = NULL;
5566 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_devmode_ptr));
5567 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
5568 if (_ptr_text_status) {
5569 NDR_PULL_ALLOC(ndr, r->text_status);
5571 r->text_status = NULL;
5573 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_secdesc_ptr));
5574 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
5575 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
5576 if (r->priority > 99) {
5577 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
5579 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
5580 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
5581 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
5582 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
5583 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
5584 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5585 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
5586 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
5587 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
5589 if (ndr_flags & NDR_BUFFERS) {
5590 if (r->printer_name) {
5591 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5592 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
5593 NDR_CHECK(ndr_pull_array_size(ndr, &r->printer_name));
5594 NDR_CHECK(ndr_pull_array_length(ndr, &r->printer_name));
5595 if (ndr_get_array_length(ndr, &r->printer_name) > ndr_get_array_size(ndr, &r->printer_name)) {
5596 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));
5598 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t)));
5599 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printer_name, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t), CH_UTF16));
5600 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
5602 if (r->server_name) {
5603 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5604 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
5605 NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name));
5606 NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name));
5607 if (ndr_get_array_length(ndr, &r->server_name) > ndr_get_array_size(ndr, &r->server_name)) {
5608 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));
5610 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t)));
5611 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t), CH_UTF16));
5612 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
5615 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5616 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
5617 NDR_CHECK(ndr_pull_array_size(ndr, &r->user_name));
5618 NDR_CHECK(ndr_pull_array_length(ndr, &r->user_name));
5619 if (ndr_get_array_length(ndr, &r->user_name) > ndr_get_array_size(ndr, &r->user_name)) {
5620 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));
5622 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t)));
5623 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t), CH_UTF16));
5624 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
5626 if (r->document_name) {
5627 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5628 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
5629 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
5630 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
5631 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
5632 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));
5634 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
5635 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
5636 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
5638 if (r->notify_name) {
5639 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5640 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
5641 NDR_CHECK(ndr_pull_array_size(ndr, &r->notify_name));
5642 NDR_CHECK(ndr_pull_array_length(ndr, &r->notify_name));
5643 if (ndr_get_array_length(ndr, &r->notify_name) > ndr_get_array_size(ndr, &r->notify_name)) {
5644 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));
5646 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t)));
5647 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->notify_name, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t), CH_UTF16));
5648 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
5651 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
5652 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
5653 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_type));
5654 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_type));
5655 if (ndr_get_array_length(ndr, &r->data_type) > ndr_get_array_size(ndr, &r->data_type)) {
5656 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));
5658 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t)));
5659 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_type, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t), CH_UTF16));
5660 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
5662 if (r->print_processor) {
5663 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
5664 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
5665 NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
5666 NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
5667 if (ndr_get_array_length(ndr, &r->print_processor) > ndr_get_array_size(ndr, &r->print_processor)) {
5668 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));
5670 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t)));
5671 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t), CH_UTF16));
5672 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
5674 if (r->parameters) {
5675 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
5676 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
5677 NDR_CHECK(ndr_pull_array_size(ndr, &r->parameters));
5678 NDR_CHECK(ndr_pull_array_length(ndr, &r->parameters));
5679 if (ndr_get_array_length(ndr, &r->parameters) > ndr_get_array_size(ndr, &r->parameters)) {
5680 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));
5682 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t)));
5683 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t), CH_UTF16));
5684 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
5686 if (r->driver_name) {
5687 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5688 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
5689 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
5690 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
5691 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
5692 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));
5694 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
5695 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
5696 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
5698 if (r->text_status) {
5699 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
5700 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
5701 NDR_CHECK(ndr_pull_array_size(ndr, &r->text_status));
5702 NDR_CHECK(ndr_pull_array_length(ndr, &r->text_status));
5703 if (ndr_get_array_length(ndr, &r->text_status) > ndr_get_array_size(ndr, &r->text_status)) {
5704 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));
5706 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t)));
5707 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->text_status, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t), CH_UTF16));
5708 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
5711 return NDR_ERR_SUCCESS;
5714 _PUBLIC_ void ndr_print_spoolss_SetJobInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_SetJobInfo2 *r)
5716 ndr_print_struct(ndr, name, "spoolss_SetJobInfo2");
5718 ndr_print_uint32(ndr, "job_id", r->job_id);
5719 ndr_print_ptr(ndr, "printer_name", r->printer_name);
5721 if (r->printer_name) {
5722 ndr_print_string(ndr, "printer_name", r->printer_name);
5725 ndr_print_ptr(ndr, "server_name", r->server_name);
5727 if (r->server_name) {
5728 ndr_print_string(ndr, "server_name", r->server_name);
5731 ndr_print_ptr(ndr, "user_name", r->user_name);
5734 ndr_print_string(ndr, "user_name", r->user_name);
5737 ndr_print_ptr(ndr, "document_name", r->document_name);
5739 if (r->document_name) {
5740 ndr_print_string(ndr, "document_name", r->document_name);
5743 ndr_print_ptr(ndr, "notify_name", r->notify_name);
5745 if (r->notify_name) {
5746 ndr_print_string(ndr, "notify_name", r->notify_name);
5749 ndr_print_ptr(ndr, "data_type", r->data_type);
5752 ndr_print_string(ndr, "data_type", r->data_type);
5755 ndr_print_ptr(ndr, "print_processor", r->print_processor);
5757 if (r->print_processor) {
5758 ndr_print_string(ndr, "print_processor", r->print_processor);
5761 ndr_print_ptr(ndr, "parameters", r->parameters);
5763 if (r->parameters) {
5764 ndr_print_string(ndr, "parameters", r->parameters);
5767 ndr_print_ptr(ndr, "driver_name", r->driver_name);
5769 if (r->driver_name) {
5770 ndr_print_string(ndr, "driver_name", r->driver_name);
5773 ndr_print_uint32(ndr, "_devmode_ptr", r->_devmode_ptr);
5774 ndr_print_ptr(ndr, "text_status", r->text_status);
5776 if (r->text_status) {
5777 ndr_print_string(ndr, "text_status", r->text_status);
5780 ndr_print_uint32(ndr, "_secdesc_ptr", r->_secdesc_ptr);
5781 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
5782 ndr_print_uint32(ndr, "priority", r->priority);
5783 ndr_print_uint32(ndr, "position", r->position);
5784 ndr_print_uint32(ndr, "start_time", r->start_time);
5785 ndr_print_uint32(ndr, "until_time", r->until_time);
5786 ndr_print_uint32(ndr, "total_pages", r->total_pages);
5787 ndr_print_uint32(ndr, "size", r->size);
5788 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
5789 ndr_print_uint32(ndr, "time", r->time);
5790 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
5794 static enum ndr_err_code ndr_push_spoolss_SetJobInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetJobInfo4 *r)
5796 if (ndr_flags & NDR_SCALARS) {
5797 NDR_CHECK(ndr_push_align(ndr, 5));
5798 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
5799 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printer_name));
5800 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_name));
5801 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user_name));
5802 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
5803 NDR_CHECK(ndr_push_unique_ptr(ndr, r->notify_name));
5804 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_type));
5805 NDR_CHECK(ndr_push_unique_ptr(ndr, r->print_processor));
5806 NDR_CHECK(ndr_push_unique_ptr(ndr, r->parameters));
5807 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
5808 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_devmode_ptr));
5809 NDR_CHECK(ndr_push_unique_ptr(ndr, r->text_status));
5810 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_secdesc_ptr));
5811 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
5812 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
5813 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
5814 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
5815 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
5816 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
5817 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
5818 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5819 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
5820 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
5821 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size_high));
5822 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
5824 if (ndr_flags & NDR_BUFFERS) {
5825 if (r->printer_name) {
5826 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
5827 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5828 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
5829 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printer_name, ndr_charset_length(r->printer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5831 if (r->server_name) {
5832 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
5833 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5834 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
5835 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_name, ndr_charset_length(r->server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5838 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5839 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5840 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5841 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user_name, ndr_charset_length(r->user_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5843 if (r->document_name) {
5844 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5845 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5846 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5847 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5849 if (r->notify_name) {
5850 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
5851 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5852 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
5853 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->notify_name, ndr_charset_length(r->notify_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5856 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5857 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5858 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5859 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_type, ndr_charset_length(r->data_type, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5861 if (r->print_processor) {
5862 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
5863 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5864 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
5865 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->print_processor, ndr_charset_length(r->print_processor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5867 if (r->parameters) {
5868 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
5869 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5870 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
5871 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->parameters, ndr_charset_length(r->parameters, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5873 if (r->driver_name) {
5874 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5875 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5876 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5877 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5879 if (r->text_status) {
5880 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
5881 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5882 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
5883 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->text_status, ndr_charset_length(r->text_status, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5886 return NDR_ERR_SUCCESS;
5889 static enum ndr_err_code ndr_pull_spoolss_SetJobInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetJobInfo4 *r)
5891 uint32_t _ptr_printer_name;
5892 TALLOC_CTX *_mem_save_printer_name_0;
5893 uint32_t _ptr_server_name;
5894 TALLOC_CTX *_mem_save_server_name_0;
5895 uint32_t _ptr_user_name;
5896 TALLOC_CTX *_mem_save_user_name_0;
5897 uint32_t _ptr_document_name;
5898 TALLOC_CTX *_mem_save_document_name_0;
5899 uint32_t _ptr_notify_name;
5900 TALLOC_CTX *_mem_save_notify_name_0;
5901 uint32_t _ptr_data_type;
5902 TALLOC_CTX *_mem_save_data_type_0;
5903 uint32_t _ptr_print_processor;
5904 TALLOC_CTX *_mem_save_print_processor_0;
5905 uint32_t _ptr_parameters;
5906 TALLOC_CTX *_mem_save_parameters_0;
5907 uint32_t _ptr_driver_name;
5908 TALLOC_CTX *_mem_save_driver_name_0;
5909 uint32_t _ptr_text_status;
5910 TALLOC_CTX *_mem_save_text_status_0;
5911 if (ndr_flags & NDR_SCALARS) {
5912 NDR_CHECK(ndr_pull_align(ndr, 5));
5913 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
5914 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
5915 if (_ptr_printer_name) {
5916 NDR_PULL_ALLOC(ndr, r->printer_name);
5918 r->printer_name = NULL;
5920 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
5921 if (_ptr_server_name) {
5922 NDR_PULL_ALLOC(ndr, r->server_name);
5924 r->server_name = NULL;
5926 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
5927 if (_ptr_user_name) {
5928 NDR_PULL_ALLOC(ndr, r->user_name);
5930 r->user_name = NULL;
5932 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
5933 if (_ptr_document_name) {
5934 NDR_PULL_ALLOC(ndr, r->document_name);
5936 r->document_name = NULL;
5938 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
5939 if (_ptr_notify_name) {
5940 NDR_PULL_ALLOC(ndr, r->notify_name);
5942 r->notify_name = NULL;
5944 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
5945 if (_ptr_data_type) {
5946 NDR_PULL_ALLOC(ndr, r->data_type);
5948 r->data_type = NULL;
5950 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
5951 if (_ptr_print_processor) {
5952 NDR_PULL_ALLOC(ndr, r->print_processor);
5954 r->print_processor = NULL;
5956 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
5957 if (_ptr_parameters) {
5958 NDR_PULL_ALLOC(ndr, r->parameters);
5960 r->parameters = NULL;
5962 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
5963 if (_ptr_driver_name) {
5964 NDR_PULL_ALLOC(ndr, r->driver_name);
5966 r->driver_name = NULL;
5968 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_devmode_ptr));
5969 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
5970 if (_ptr_text_status) {
5971 NDR_PULL_ALLOC(ndr, r->text_status);
5973 r->text_status = NULL;
5975 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_secdesc_ptr));
5976 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
5977 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
5978 if (r->priority > 99) {
5979 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
5981 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
5982 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
5983 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
5984 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
5985 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
5986 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5987 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
5988 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
5989 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size_high));
5990 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
5992 if (ndr_flags & NDR_BUFFERS) {
5993 if (r->printer_name) {
5994 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5995 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
5996 NDR_CHECK(ndr_pull_array_size(ndr, &r->printer_name));
5997 NDR_CHECK(ndr_pull_array_length(ndr, &r->printer_name));
5998 if (ndr_get_array_length(ndr, &r->printer_name) > ndr_get_array_size(ndr, &r->printer_name)) {
5999 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));
6001 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t)));
6002 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printer_name, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t), CH_UTF16));
6003 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
6005 if (r->server_name) {
6006 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6007 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
6008 NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name));
6009 NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name));
6010 if (ndr_get_array_length(ndr, &r->server_name) > ndr_get_array_size(ndr, &r->server_name)) {
6011 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));
6013 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t)));
6014 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t), CH_UTF16));
6015 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
6018 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6019 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
6020 NDR_CHECK(ndr_pull_array_size(ndr, &r->user_name));
6021 NDR_CHECK(ndr_pull_array_length(ndr, &r->user_name));
6022 if (ndr_get_array_length(ndr, &r->user_name) > ndr_get_array_size(ndr, &r->user_name)) {
6023 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));
6025 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t)));
6026 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t), CH_UTF16));
6027 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
6029 if (r->document_name) {
6030 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6031 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
6032 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
6033 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
6034 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
6035 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));
6037 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
6038 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
6039 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
6041 if (r->notify_name) {
6042 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6043 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
6044 NDR_CHECK(ndr_pull_array_size(ndr, &r->notify_name));
6045 NDR_CHECK(ndr_pull_array_length(ndr, &r->notify_name));
6046 if (ndr_get_array_length(ndr, &r->notify_name) > ndr_get_array_size(ndr, &r->notify_name)) {
6047 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));
6049 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t)));
6050 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->notify_name, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t), CH_UTF16));
6051 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
6054 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
6055 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
6056 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_type));
6057 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_type));
6058 if (ndr_get_array_length(ndr, &r->data_type) > ndr_get_array_size(ndr, &r->data_type)) {
6059 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));
6061 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t)));
6062 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_type, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t), CH_UTF16));
6063 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
6065 if (r->print_processor) {
6066 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
6067 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
6068 NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
6069 NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
6070 if (ndr_get_array_length(ndr, &r->print_processor) > ndr_get_array_size(ndr, &r->print_processor)) {
6071 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));
6073 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t)));
6074 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t), CH_UTF16));
6075 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
6077 if (r->parameters) {
6078 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
6079 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
6080 NDR_CHECK(ndr_pull_array_size(ndr, &r->parameters));
6081 NDR_CHECK(ndr_pull_array_length(ndr, &r->parameters));
6082 if (ndr_get_array_length(ndr, &r->parameters) > ndr_get_array_size(ndr, &r->parameters)) {
6083 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));
6085 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t)));
6086 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t), CH_UTF16));
6087 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
6089 if (r->driver_name) {
6090 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6091 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
6092 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
6093 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
6094 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
6095 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));
6097 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
6098 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
6099 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
6101 if (r->text_status) {
6102 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
6103 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
6104 NDR_CHECK(ndr_pull_array_size(ndr, &r->text_status));
6105 NDR_CHECK(ndr_pull_array_length(ndr, &r->text_status));
6106 if (ndr_get_array_length(ndr, &r->text_status) > ndr_get_array_size(ndr, &r->text_status)) {
6107 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));
6109 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t)));
6110 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->text_status, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t), CH_UTF16));
6111 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
6114 return NDR_ERR_SUCCESS;
6117 _PUBLIC_ void ndr_print_spoolss_SetJobInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_SetJobInfo4 *r)
6119 ndr_print_struct(ndr, name, "spoolss_SetJobInfo4");
6121 ndr_print_uint32(ndr, "job_id", r->job_id);
6122 ndr_print_ptr(ndr, "printer_name", r->printer_name);
6124 if (r->printer_name) {
6125 ndr_print_string(ndr, "printer_name", r->printer_name);
6128 ndr_print_ptr(ndr, "server_name", r->server_name);
6130 if (r->server_name) {
6131 ndr_print_string(ndr, "server_name", r->server_name);
6134 ndr_print_ptr(ndr, "user_name", r->user_name);
6137 ndr_print_string(ndr, "user_name", r->user_name);
6140 ndr_print_ptr(ndr, "document_name", r->document_name);
6142 if (r->document_name) {
6143 ndr_print_string(ndr, "document_name", r->document_name);
6146 ndr_print_ptr(ndr, "notify_name", r->notify_name);
6148 if (r->notify_name) {
6149 ndr_print_string(ndr, "notify_name", r->notify_name);
6152 ndr_print_ptr(ndr, "data_type", r->data_type);
6155 ndr_print_string(ndr, "data_type", r->data_type);
6158 ndr_print_ptr(ndr, "print_processor", r->print_processor);
6160 if (r->print_processor) {
6161 ndr_print_string(ndr, "print_processor", r->print_processor);
6164 ndr_print_ptr(ndr, "parameters", r->parameters);
6166 if (r->parameters) {
6167 ndr_print_string(ndr, "parameters", r->parameters);
6170 ndr_print_ptr(ndr, "driver_name", r->driver_name);
6172 if (r->driver_name) {
6173 ndr_print_string(ndr, "driver_name", r->driver_name);
6176 ndr_print_uint32(ndr, "_devmode_ptr", r->_devmode_ptr);
6177 ndr_print_ptr(ndr, "text_status", r->text_status);
6179 if (r->text_status) {
6180 ndr_print_string(ndr, "text_status", r->text_status);
6183 ndr_print_uint32(ndr, "_secdesc_ptr", r->_secdesc_ptr);
6184 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
6185 ndr_print_uint32(ndr, "priority", r->priority);
6186 ndr_print_uint32(ndr, "position", r->position);
6187 ndr_print_uint32(ndr, "start_time", r->start_time);
6188 ndr_print_uint32(ndr, "until_time", r->until_time);
6189 ndr_print_uint32(ndr, "total_pages", r->total_pages);
6190 ndr_print_uint32(ndr, "size", r->size);
6191 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
6192 ndr_print_uint32(ndr, "time", r->time);
6193 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
6194 ndr_print_uint32(ndr, "size_high", r->size_high);
6198 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_SetJobInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_SetJobInfo *r)
6200 if (ndr_flags & NDR_SCALARS) {
6201 int level = ndr_push_get_switch_value(ndr, r);
6202 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
6203 NDR_CHECK(ndr_push_union_align(ndr, 5));
6206 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
6210 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
6214 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
6218 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
6226 if (ndr_flags & NDR_BUFFERS) {
6227 int level = ndr_push_get_switch_value(ndr, r);
6231 NDR_CHECK(ndr_push_spoolss_SetJobInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
6237 NDR_CHECK(ndr_push_spoolss_SetJobInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
6243 NDR_CHECK(ndr_push_spoolss_JobInfo3(ndr, NDR_SCALARS, r->info3));
6249 NDR_CHECK(ndr_push_spoolss_SetJobInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
6258 return NDR_ERR_SUCCESS;
6261 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_SetJobInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_SetJobInfo *r)
6265 TALLOC_CTX *_mem_save_info1_0;
6266 TALLOC_CTX *_mem_save_info2_0;
6267 TALLOC_CTX *_mem_save_info3_0;
6268 TALLOC_CTX *_mem_save_info4_0;
6269 level = ndr_pull_get_switch_value(ndr, r);
6270 if (ndr_flags & NDR_SCALARS) {
6271 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
6272 if (_level != level) {
6273 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
6275 NDR_CHECK(ndr_pull_union_align(ndr, 5));
6278 uint32_t _ptr_info1;
6279 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
6281 NDR_PULL_ALLOC(ndr, r->info1);
6288 uint32_t _ptr_info2;
6289 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
6291 NDR_PULL_ALLOC(ndr, r->info2);
6298 uint32_t _ptr_info3;
6299 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
6301 NDR_PULL_ALLOC(ndr, r->info3);
6308 uint32_t _ptr_info4;
6309 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
6311 NDR_PULL_ALLOC(ndr, r->info4);
6322 if (ndr_flags & NDR_BUFFERS) {
6326 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
6327 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
6328 NDR_CHECK(ndr_pull_spoolss_SetJobInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
6329 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
6335 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
6336 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
6337 NDR_CHECK(ndr_pull_spoolss_SetJobInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
6338 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
6344 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
6345 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
6346 NDR_CHECK(ndr_pull_spoolss_JobInfo3(ndr, NDR_SCALARS, r->info3));
6347 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
6353 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
6354 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
6355 NDR_CHECK(ndr_pull_spoolss_SetJobInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
6356 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
6365 return NDR_ERR_SUCCESS;
6368 _PUBLIC_ void ndr_print_spoolss_SetJobInfo(struct ndr_print *ndr, const char *name, const union spoolss_SetJobInfo *r)
6371 level = ndr_print_get_switch_value(ndr, r);
6372 ndr_print_union(ndr, name, level, "spoolss_SetJobInfo");
6375 ndr_print_ptr(ndr, "info1", r->info1);
6378 ndr_print_spoolss_SetJobInfo1(ndr, "info1", r->info1);
6384 ndr_print_ptr(ndr, "info2", r->info2);
6387 ndr_print_spoolss_SetJobInfo2(ndr, "info2", r->info2);
6393 ndr_print_ptr(ndr, "info3", r->info3);
6396 ndr_print_spoolss_JobInfo3(ndr, "info3", r->info3);
6402 ndr_print_ptr(ndr, "info4", r->info4);
6405 ndr_print_spoolss_SetJobInfo4(ndr, "info4", r->info4);
6416 static enum ndr_err_code ndr_push_spoolss_JobInfoContainer(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfoContainer *r)
6418 if (ndr_flags & NDR_SCALARS) {
6419 NDR_CHECK(ndr_push_align(ndr, 5));
6420 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
6421 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
6422 NDR_CHECK(ndr_push_spoolss_SetJobInfo(ndr, NDR_SCALARS, &r->info));
6423 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
6425 if (ndr_flags & NDR_BUFFERS) {
6426 NDR_CHECK(ndr_push_spoolss_SetJobInfo(ndr, NDR_BUFFERS, &r->info));
6428 return NDR_ERR_SUCCESS;
6431 static enum ndr_err_code ndr_pull_spoolss_JobInfoContainer(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfoContainer *r)
6433 if (ndr_flags & NDR_SCALARS) {
6434 NDR_CHECK(ndr_pull_align(ndr, 5));
6435 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
6436 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
6437 NDR_CHECK(ndr_pull_spoolss_SetJobInfo(ndr, NDR_SCALARS, &r->info));
6438 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
6440 if (ndr_flags & NDR_BUFFERS) {
6441 NDR_CHECK(ndr_pull_spoolss_SetJobInfo(ndr, NDR_BUFFERS, &r->info));
6443 return NDR_ERR_SUCCESS;
6446 _PUBLIC_ void ndr_print_spoolss_JobInfoContainer(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfoContainer *r)
6448 ndr_print_struct(ndr, name, "spoolss_JobInfoContainer");
6450 ndr_print_uint32(ndr, "level", r->level);
6451 ndr_print_set_switch_value(ndr, &r->info, r->level);
6452 ndr_print_spoolss_SetJobInfo(ndr, "info", &r->info);
6456 static enum ndr_err_code ndr_push_spoolss_JobControl(struct ndr_push *ndr, int ndr_flags, enum spoolss_JobControl r)
6458 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
6459 return NDR_ERR_SUCCESS;
6462 static enum ndr_err_code ndr_pull_spoolss_JobControl(struct ndr_pull *ndr, int ndr_flags, enum spoolss_JobControl *r)
6465 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
6467 return NDR_ERR_SUCCESS;
6470 _PUBLIC_ void ndr_print_spoolss_JobControl(struct ndr_print *ndr, const char *name, enum spoolss_JobControl r)
6472 const char *val = NULL;
6475 case SPOOLSS_JOB_CONTROL_PAUSE: val = "SPOOLSS_JOB_CONTROL_PAUSE"; break;
6476 case SPOOLSS_JOB_CONTROL_RESUME: val = "SPOOLSS_JOB_CONTROL_RESUME"; break;
6477 case SPOOLSS_JOB_CONTROL_CANCEL: val = "SPOOLSS_JOB_CONTROL_CANCEL"; break;
6478 case SPOOLSS_JOB_CONTROL_RESTART: val = "SPOOLSS_JOB_CONTROL_RESTART"; break;
6479 case SPOOLSS_JOB_CONTROL_DELETE: val = "SPOOLSS_JOB_CONTROL_DELETE"; break;
6480 case SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER: val = "SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER"; break;
6481 case SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED: val = "SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED"; break;
6482 case SPOOLSS_JOB_CONTROL_RETAIN: val = "SPOOLSS_JOB_CONTROL_RETAIN"; break;
6483 case SPOOLSS_JOB_CONTROL_RELEASE: val = "SPOOLSS_JOB_CONTROL_RELEASE"; break;
6485 ndr_print_enum(ndr, name, "ENUM", val, r);
6488 static enum ndr_err_code ndr_push_spoolss_PrinterControl(struct ndr_push *ndr, int ndr_flags, enum spoolss_PrinterControl r)
6490 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
6491 return NDR_ERR_SUCCESS;
6494 static enum ndr_err_code ndr_pull_spoolss_PrinterControl(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PrinterControl *r)
6497 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
6499 return NDR_ERR_SUCCESS;
6502 _PUBLIC_ void ndr_print_spoolss_PrinterControl(struct ndr_print *ndr, const char *name, enum spoolss_PrinterControl r)
6504 const char *val = NULL;
6507 case SPOOLSS_PRINTER_CONTROL_UNPAUSE: val = "SPOOLSS_PRINTER_CONTROL_UNPAUSE"; break;
6508 case SPOOLSS_PRINTER_CONTROL_PAUSE: val = "SPOOLSS_PRINTER_CONTROL_PAUSE"; break;
6509 case SPOOLSS_PRINTER_CONTROL_RESUME: val = "SPOOLSS_PRINTER_CONTROL_RESUME"; break;
6510 case SPOOLSS_PRINTER_CONTROL_PURGE: val = "SPOOLSS_PRINTER_CONTROL_PURGE"; break;
6511 case SPOOLSS_PRINTER_CONTROL_SET_STATUS: val = "SPOOLSS_PRINTER_CONTROL_SET_STATUS"; break;
6513 ndr_print_enum(ndr, name, "ENUM", val, r);
6516 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo0(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo0 *r)
6518 if (ndr_flags & NDR_SCALARS) {
6519 NDR_CHECK(ndr_push_align(ndr, 5));
6520 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
6521 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
6522 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
6523 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_jobs));
6524 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_bytes));
6525 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->time));
6526 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->global_counter));
6527 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
6528 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
6529 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->free_build));
6530 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->spooling));
6531 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_spooling));
6532 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->session_counter));
6533 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_out_of_paper));
6534 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_not_ready));
6535 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_error));
6536 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->number_of_processors));
6537 NDR_CHECK(ndr_push_spoolss_ProcessorType(ndr, NDR_SCALARS, r->processor_type));
6538 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->high_part_total_bytes));
6539 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->change_id));
6540 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->last_error));
6541 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->status));
6542 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->enumerate_network_printers));
6543 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->c_setprinter));
6544 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor_architecture));
6545 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->processor_level));
6546 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ref_ic));
6547 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved2));
6548 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved3));
6549 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
6551 if (ndr_flags & NDR_BUFFERS) {
6552 if (r->servername) {
6553 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
6554 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6555 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
6556 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6558 if (r->printername) {
6559 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6560 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6561 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6562 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6565 return NDR_ERR_SUCCESS;
6568 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo0(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo0 *r)
6570 uint32_t _ptr_servername;
6571 TALLOC_CTX *_mem_save_servername_0;
6572 uint32_t _ptr_printername;
6573 TALLOC_CTX *_mem_save_printername_0;
6574 if (ndr_flags & NDR_SCALARS) {
6575 NDR_CHECK(ndr_pull_align(ndr, 5));
6576 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
6577 if (_ptr_servername) {
6578 NDR_PULL_ALLOC(ndr, r->servername);
6580 r->servername = NULL;
6582 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
6583 if (_ptr_printername) {
6584 NDR_PULL_ALLOC(ndr, r->printername);
6586 r->printername = NULL;
6588 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
6589 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_jobs));
6590 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_bytes));
6591 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->time));
6592 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->global_counter));
6593 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
6594 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
6595 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->free_build));
6596 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->spooling));
6597 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_spooling));
6598 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->session_counter));
6599 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_out_of_paper));
6600 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_not_ready));
6601 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_error));
6602 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->number_of_processors));
6603 NDR_CHECK(ndr_pull_spoolss_ProcessorType(ndr, NDR_SCALARS, &r->processor_type));
6604 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->high_part_total_bytes));
6605 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->change_id));
6606 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->last_error));
6607 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->status));
6608 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->enumerate_network_printers));
6609 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->c_setprinter));
6610 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor_architecture));
6611 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->processor_level));
6612 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ref_ic));
6613 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
6614 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved3));
6615 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
6617 if (ndr_flags & NDR_BUFFERS) {
6618 if (r->servername) {
6619 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6620 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
6621 NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
6622 NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
6623 if (ndr_get_array_length(ndr, &r->servername) > ndr_get_array_size(ndr, &r->servername)) {
6624 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));
6626 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t)));
6627 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t), CH_UTF16));
6628 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
6630 if (r->printername) {
6631 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6632 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
6633 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
6634 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
6635 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
6636 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));
6638 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
6639 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
6640 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
6643 return NDR_ERR_SUCCESS;
6646 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo0(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo0 *r)
6648 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo0");
6650 ndr_print_ptr(ndr, "servername", r->servername);
6652 if (r->servername) {
6653 ndr_print_string(ndr, "servername", r->servername);
6656 ndr_print_ptr(ndr, "printername", r->printername);
6658 if (r->printername) {
6659 ndr_print_string(ndr, "printername", r->printername);
6662 ndr_print_uint32(ndr, "cjobs", r->cjobs);
6663 ndr_print_uint32(ndr, "total_jobs", r->total_jobs);
6664 ndr_print_uint32(ndr, "total_bytes", r->total_bytes);
6665 ndr_print_spoolss_Time(ndr, "time", &r->time);
6666 ndr_print_uint32(ndr, "global_counter", r->global_counter);
6667 ndr_print_uint32(ndr, "total_pages", r->total_pages);
6668 ndr_print_uint32(ndr, "version", r->version);
6669 ndr_print_uint32(ndr, "free_build", r->free_build);
6670 ndr_print_uint32(ndr, "spooling", r->spooling);
6671 ndr_print_uint32(ndr, "max_spooling", r->max_spooling);
6672 ndr_print_uint32(ndr, "session_counter", r->session_counter);
6673 ndr_print_uint32(ndr, "num_error_out_of_paper", r->num_error_out_of_paper);
6674 ndr_print_uint32(ndr, "num_error_not_ready", r->num_error_not_ready);
6675 ndr_print_uint32(ndr, "job_error", r->job_error);
6676 ndr_print_uint32(ndr, "number_of_processors", r->number_of_processors);
6677 ndr_print_spoolss_ProcessorType(ndr, "processor_type", r->processor_type);
6678 ndr_print_uint32(ndr, "high_part_total_bytes", r->high_part_total_bytes);
6679 ndr_print_uint32(ndr, "change_id", r->change_id);
6680 ndr_print_WERROR(ndr, "last_error", r->last_error);
6681 ndr_print_uint32(ndr, "status", r->status);
6682 ndr_print_uint32(ndr, "enumerate_network_printers", r->enumerate_network_printers);
6683 ndr_print_uint32(ndr, "c_setprinter", r->c_setprinter);
6684 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor_architecture", r->processor_architecture);
6685 ndr_print_uint16(ndr, "processor_level", r->processor_level);
6686 ndr_print_uint32(ndr, "ref_ic", r->ref_ic);
6687 ndr_print_uint32(ndr, "reserved2", r->reserved2);
6688 ndr_print_uint32(ndr, "reserved3", r->reserved3);
6692 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo1 *r)
6694 if (ndr_flags & NDR_SCALARS) {
6695 NDR_CHECK(ndr_push_align(ndr, 5));
6696 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->flags));
6697 NDR_CHECK(ndr_push_unique_ptr(ndr, r->description));
6698 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
6699 NDR_CHECK(ndr_push_unique_ptr(ndr, r->comment));
6700 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
6702 if (ndr_flags & NDR_BUFFERS) {
6703 if (r->description) {
6704 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->description, CH_UTF16)));
6705 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6706 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->description, CH_UTF16)));
6707 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->description, ndr_charset_length(r->description, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6710 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
6711 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6712 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
6713 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, ndr_charset_length(r->name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6716 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
6717 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6718 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
6719 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->comment, ndr_charset_length(r->comment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6722 return NDR_ERR_SUCCESS;
6725 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo1 *r)
6727 uint32_t _ptr_description;
6728 TALLOC_CTX *_mem_save_description_0;
6730 TALLOC_CTX *_mem_save_name_0;
6731 uint32_t _ptr_comment;
6732 TALLOC_CTX *_mem_save_comment_0;
6733 if (ndr_flags & NDR_SCALARS) {
6734 NDR_CHECK(ndr_pull_align(ndr, 5));
6735 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->flags));
6736 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
6737 if (_ptr_description) {
6738 NDR_PULL_ALLOC(ndr, r->description);
6740 r->description = NULL;
6742 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
6744 NDR_PULL_ALLOC(ndr, r->name);
6748 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
6750 NDR_PULL_ALLOC(ndr, r->comment);
6754 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
6756 if (ndr_flags & NDR_BUFFERS) {
6757 if (r->description) {
6758 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
6759 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
6760 NDR_CHECK(ndr_pull_array_size(ndr, &r->description));
6761 NDR_CHECK(ndr_pull_array_length(ndr, &r->description));
6762 if (ndr_get_array_length(ndr, &r->description) > ndr_get_array_size(ndr, &r->description)) {
6763 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));
6765 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->description), sizeof(uint16_t)));
6766 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->description, ndr_get_array_length(ndr, &r->description), sizeof(uint16_t), CH_UTF16));
6767 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
6770 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6771 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
6772 NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
6773 NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
6774 if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) {
6775 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));
6777 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t)));
6778 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16));
6779 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
6782 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
6783 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
6784 NDR_CHECK(ndr_pull_array_size(ndr, &r->comment));
6785 NDR_CHECK(ndr_pull_array_length(ndr, &r->comment));
6786 if (ndr_get_array_length(ndr, &r->comment) > ndr_get_array_size(ndr, &r->comment)) {
6787 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));
6789 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t)));
6790 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t), CH_UTF16));
6791 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
6794 return NDR_ERR_SUCCESS;
6797 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo1 *r)
6799 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo1");
6801 ndr_print_spoolss_PrinterAttributes(ndr, "flags", r->flags);
6802 ndr_print_ptr(ndr, "description", r->description);
6804 if (r->description) {
6805 ndr_print_string(ndr, "description", r->description);
6808 ndr_print_ptr(ndr, "name", r->name);
6811 ndr_print_string(ndr, "name", r->name);
6814 ndr_print_ptr(ndr, "comment", r->comment);
6817 ndr_print_string(ndr, "comment", r->comment);
6823 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo2 *r)
6825 if (ndr_flags & NDR_SCALARS) {
6826 NDR_CHECK(ndr_push_align(ndr, 5));
6827 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
6828 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
6829 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sharename));
6830 NDR_CHECK(ndr_push_unique_ptr(ndr, r->portname));
6831 NDR_CHECK(ndr_push_unique_ptr(ndr, r->drivername));
6832 NDR_CHECK(ndr_push_unique_ptr(ndr, r->comment));
6833 NDR_CHECK(ndr_push_unique_ptr(ndr, r->location));
6834 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->devmode_ptr));
6835 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sepfile));
6836 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printprocessor));
6837 NDR_CHECK(ndr_push_unique_ptr(ndr, r->datatype));
6838 NDR_CHECK(ndr_push_unique_ptr(ndr, r->parameters));
6839 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->secdesc_ptr));
6840 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
6841 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
6842 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->defaultpriority));
6843 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->starttime));
6844 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->untiltime));
6845 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
6846 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
6847 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->averageppm));
6848 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
6850 if (ndr_flags & NDR_BUFFERS) {
6851 if (r->servername) {
6852 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
6853 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6854 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
6855 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6857 if (r->printername) {
6858 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6859 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6860 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6861 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6864 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->sharename, CH_UTF16)));
6865 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6866 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->sharename, CH_UTF16)));
6867 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->sharename, ndr_charset_length(r->sharename, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6870 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
6871 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6872 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
6873 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, ndr_charset_length(r->portname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6875 if (r->drivername) {
6876 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->drivername, CH_UTF16)));
6877 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6878 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->drivername, CH_UTF16)));
6879 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->drivername, ndr_charset_length(r->drivername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6882 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
6883 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6884 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
6885 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->comment, ndr_charset_length(r->comment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6888 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->location, CH_UTF16)));
6889 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6890 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->location, CH_UTF16)));
6891 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->location, ndr_charset_length(r->location, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6894 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->sepfile, CH_UTF16)));
6895 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6896 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->sepfile, CH_UTF16)));
6897 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->sepfile, ndr_charset_length(r->sepfile, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6899 if (r->printprocessor) {
6900 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printprocessor, CH_UTF16)));
6901 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6902 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printprocessor, CH_UTF16)));
6903 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printprocessor, ndr_charset_length(r->printprocessor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6906 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
6907 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6908 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
6909 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->datatype, ndr_charset_length(r->datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6911 if (r->parameters) {
6912 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
6913 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6914 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
6915 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->parameters, ndr_charset_length(r->parameters, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6918 return NDR_ERR_SUCCESS;
6921 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo2 *r)
6923 uint32_t _ptr_servername;
6924 TALLOC_CTX *_mem_save_servername_0;
6925 uint32_t _ptr_printername;
6926 TALLOC_CTX *_mem_save_printername_0;
6927 uint32_t _ptr_sharename;
6928 TALLOC_CTX *_mem_save_sharename_0;
6929 uint32_t _ptr_portname;
6930 TALLOC_CTX *_mem_save_portname_0;
6931 uint32_t _ptr_drivername;
6932 TALLOC_CTX *_mem_save_drivername_0;
6933 uint32_t _ptr_comment;
6934 TALLOC_CTX *_mem_save_comment_0;
6935 uint32_t _ptr_location;
6936 TALLOC_CTX *_mem_save_location_0;
6937 uint32_t _ptr_sepfile;
6938 TALLOC_CTX *_mem_save_sepfile_0;
6939 uint32_t _ptr_printprocessor;
6940 TALLOC_CTX *_mem_save_printprocessor_0;
6941 uint32_t _ptr_datatype;
6942 TALLOC_CTX *_mem_save_datatype_0;
6943 uint32_t _ptr_parameters;
6944 TALLOC_CTX *_mem_save_parameters_0;
6945 if (ndr_flags & NDR_SCALARS) {
6946 NDR_CHECK(ndr_pull_align(ndr, 5));
6947 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
6948 if (_ptr_servername) {
6949 NDR_PULL_ALLOC(ndr, r->servername);
6951 r->servername = NULL;
6953 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
6954 if (_ptr_printername) {
6955 NDR_PULL_ALLOC(ndr, r->printername);
6957 r->printername = NULL;
6959 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sharename));
6960 if (_ptr_sharename) {
6961 NDR_PULL_ALLOC(ndr, r->sharename);
6963 r->sharename = NULL;
6965 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
6966 if (_ptr_portname) {
6967 NDR_PULL_ALLOC(ndr, r->portname);
6971 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_drivername));
6972 if (_ptr_drivername) {
6973 NDR_PULL_ALLOC(ndr, r->drivername);
6975 r->drivername = NULL;
6977 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
6979 NDR_PULL_ALLOC(ndr, r->comment);
6983 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_location));
6984 if (_ptr_location) {
6985 NDR_PULL_ALLOC(ndr, r->location);
6989 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->devmode_ptr));
6990 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sepfile));
6992 NDR_PULL_ALLOC(ndr, r->sepfile);
6996 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printprocessor));
6997 if (_ptr_printprocessor) {
6998 NDR_PULL_ALLOC(ndr, r->printprocessor);
7000 r->printprocessor = NULL;
7002 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
7003 if (_ptr_datatype) {
7004 NDR_PULL_ALLOC(ndr, r->datatype);
7008 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
7009 if (_ptr_parameters) {
7010 NDR_PULL_ALLOC(ndr, r->parameters);
7012 r->parameters = NULL;
7014 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->secdesc_ptr));
7015 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
7016 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
7017 if (r->priority > 99) {
7018 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
7020 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->defaultpriority));
7021 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->starttime));
7022 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->untiltime));
7023 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
7024 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
7025 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->averageppm));
7026 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
7028 if (ndr_flags & NDR_BUFFERS) {
7029 if (r->servername) {
7030 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
7031 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
7032 NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
7033 NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
7034 if (ndr_get_array_length(ndr, &r->servername) > ndr_get_array_size(ndr, &r->servername)) {
7035 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));
7037 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t)));
7038 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t), CH_UTF16));
7039 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
7041 if (r->printername) {
7042 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
7043 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
7044 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
7045 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
7046 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
7047 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));
7049 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
7050 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
7051 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
7054 _mem_save_sharename_0 = NDR_PULL_GET_MEM_CTX(ndr);
7055 NDR_PULL_SET_MEM_CTX(ndr, r->sharename, 0);
7056 NDR_CHECK(ndr_pull_array_size(ndr, &r->sharename));
7057 NDR_CHECK(ndr_pull_array_length(ndr, &r->sharename));
7058 if (ndr_get_array_length(ndr, &r->sharename) > ndr_get_array_size(ndr, &r->sharename)) {
7059 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));
7061 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->sharename), sizeof(uint16_t)));
7062 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->sharename, ndr_get_array_length(ndr, &r->sharename), sizeof(uint16_t), CH_UTF16));
7063 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sharename_0, 0);
7066 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
7067 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
7068 NDR_CHECK(ndr_pull_array_size(ndr, &r->portname));
7069 NDR_CHECK(ndr_pull_array_length(ndr, &r->portname));
7070 if (ndr_get_array_length(ndr, &r->portname) > ndr_get_array_size(ndr, &r->portname)) {
7071 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));
7073 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t)));
7074 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t), CH_UTF16));
7075 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
7077 if (r->drivername) {
7078 _mem_save_drivername_0 = NDR_PULL_GET_MEM_CTX(ndr);
7079 NDR_PULL_SET_MEM_CTX(ndr, r->drivername, 0);
7080 NDR_CHECK(ndr_pull_array_size(ndr, &r->drivername));
7081 NDR_CHECK(ndr_pull_array_length(ndr, &r->drivername));
7082 if (ndr_get_array_length(ndr, &r->drivername) > ndr_get_array_size(ndr, &r->drivername)) {
7083 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));
7085 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->drivername), sizeof(uint16_t)));
7086 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->drivername, ndr_get_array_length(ndr, &r->drivername), sizeof(uint16_t), CH_UTF16));
7087 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_drivername_0, 0);
7090 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
7091 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
7092 NDR_CHECK(ndr_pull_array_size(ndr, &r->comment));
7093 NDR_CHECK(ndr_pull_array_length(ndr, &r->comment));
7094 if (ndr_get_array_length(ndr, &r->comment) > ndr_get_array_size(ndr, &r->comment)) {
7095 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));
7097 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t)));
7098 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t), CH_UTF16));
7099 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
7102 _mem_save_location_0 = NDR_PULL_GET_MEM_CTX(ndr);
7103 NDR_PULL_SET_MEM_CTX(ndr, r->location, 0);
7104 NDR_CHECK(ndr_pull_array_size(ndr, &r->location));
7105 NDR_CHECK(ndr_pull_array_length(ndr, &r->location));
7106 if (ndr_get_array_length(ndr, &r->location) > ndr_get_array_size(ndr, &r->location)) {
7107 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));
7109 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->location), sizeof(uint16_t)));
7110 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->location, ndr_get_array_length(ndr, &r->location), sizeof(uint16_t), CH_UTF16));
7111 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_location_0, 0);
7114 _mem_save_sepfile_0 = NDR_PULL_GET_MEM_CTX(ndr);
7115 NDR_PULL_SET_MEM_CTX(ndr, r->sepfile, 0);
7116 NDR_CHECK(ndr_pull_array_size(ndr, &r->sepfile));
7117 NDR_CHECK(ndr_pull_array_length(ndr, &r->sepfile));
7118 if (ndr_get_array_length(ndr, &r->sepfile) > ndr_get_array_size(ndr, &r->sepfile)) {
7119 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));
7121 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->sepfile), sizeof(uint16_t)));
7122 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->sepfile, ndr_get_array_length(ndr, &r->sepfile), sizeof(uint16_t), CH_UTF16));
7123 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sepfile_0, 0);
7125 if (r->printprocessor) {
7126 _mem_save_printprocessor_0 = NDR_PULL_GET_MEM_CTX(ndr);
7127 NDR_PULL_SET_MEM_CTX(ndr, r->printprocessor, 0);
7128 NDR_CHECK(ndr_pull_array_size(ndr, &r->printprocessor));
7129 NDR_CHECK(ndr_pull_array_length(ndr, &r->printprocessor));
7130 if (ndr_get_array_length(ndr, &r->printprocessor) > ndr_get_array_size(ndr, &r->printprocessor)) {
7131 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));
7133 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printprocessor), sizeof(uint16_t)));
7134 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printprocessor, ndr_get_array_length(ndr, &r->printprocessor), sizeof(uint16_t), CH_UTF16));
7135 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printprocessor_0, 0);
7138 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
7139 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
7140 NDR_CHECK(ndr_pull_array_size(ndr, &r->datatype));
7141 NDR_CHECK(ndr_pull_array_length(ndr, &r->datatype));
7142 if (ndr_get_array_length(ndr, &r->datatype) > ndr_get_array_size(ndr, &r->datatype)) {
7143 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));
7145 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t)));
7146 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->datatype, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t), CH_UTF16));
7147 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
7149 if (r->parameters) {
7150 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
7151 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
7152 NDR_CHECK(ndr_pull_array_size(ndr, &r->parameters));
7153 NDR_CHECK(ndr_pull_array_length(ndr, &r->parameters));
7154 if (ndr_get_array_length(ndr, &r->parameters) > ndr_get_array_size(ndr, &r->parameters)) {
7155 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));
7157 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t)));
7158 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t), CH_UTF16));
7159 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
7162 return NDR_ERR_SUCCESS;
7165 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo2 *r)
7167 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo2");
7169 ndr_print_ptr(ndr, "servername", r->servername);
7171 if (r->servername) {
7172 ndr_print_string(ndr, "servername", r->servername);
7175 ndr_print_ptr(ndr, "printername", r->printername);
7177 if (r->printername) {
7178 ndr_print_string(ndr, "printername", r->printername);
7181 ndr_print_ptr(ndr, "sharename", r->sharename);
7184 ndr_print_string(ndr, "sharename", r->sharename);
7187 ndr_print_ptr(ndr, "portname", r->portname);
7190 ndr_print_string(ndr, "portname", r->portname);
7193 ndr_print_ptr(ndr, "drivername", r->drivername);
7195 if (r->drivername) {
7196 ndr_print_string(ndr, "drivername", r->drivername);
7199 ndr_print_ptr(ndr, "comment", r->comment);
7202 ndr_print_string(ndr, "comment", r->comment);
7205 ndr_print_ptr(ndr, "location", r->location);
7208 ndr_print_string(ndr, "location", r->location);
7211 ndr_print_uint32(ndr, "devmode_ptr", r->devmode_ptr);
7212 ndr_print_ptr(ndr, "sepfile", r->sepfile);
7215 ndr_print_string(ndr, "sepfile", r->sepfile);
7218 ndr_print_ptr(ndr, "printprocessor", r->printprocessor);
7220 if (r->printprocessor) {
7221 ndr_print_string(ndr, "printprocessor", r->printprocessor);
7224 ndr_print_ptr(ndr, "datatype", r->datatype);
7227 ndr_print_string(ndr, "datatype", r->datatype);
7230 ndr_print_ptr(ndr, "parameters", r->parameters);
7232 if (r->parameters) {
7233 ndr_print_string(ndr, "parameters", r->parameters);
7236 ndr_print_uint32(ndr, "secdesc_ptr", r->secdesc_ptr);
7237 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
7238 ndr_print_uint32(ndr, "priority", r->priority);
7239 ndr_print_uint32(ndr, "defaultpriority", r->defaultpriority);
7240 ndr_print_uint32(ndr, "starttime", r->starttime);
7241 ndr_print_uint32(ndr, "untiltime", r->untiltime);
7242 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
7243 ndr_print_uint32(ndr, "cjobs", r->cjobs);
7244 ndr_print_uint32(ndr, "averageppm", r->averageppm);
7248 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo3 *r)
7250 if (ndr_flags & NDR_SCALARS) {
7251 NDR_CHECK(ndr_push_align(ndr, 4));
7252 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sec_desc_ptr));
7253 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
7255 if (ndr_flags & NDR_BUFFERS) {
7257 return NDR_ERR_SUCCESS;
7260 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo3 *r)
7262 if (ndr_flags & NDR_SCALARS) {
7263 NDR_CHECK(ndr_pull_align(ndr, 4));
7264 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sec_desc_ptr));
7265 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
7267 if (ndr_flags & NDR_BUFFERS) {
7269 return NDR_ERR_SUCCESS;
7272 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo3 *r)
7274 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo3");
7276 ndr_print_uint32(ndr, "sec_desc_ptr", r->sec_desc_ptr);
7280 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo4 *r)
7282 if (ndr_flags & NDR_SCALARS) {
7283 NDR_CHECK(ndr_push_align(ndr, 5));
7284 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
7285 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
7286 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
7287 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
7289 if (ndr_flags & NDR_BUFFERS) {
7290 if (r->printername) {
7291 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
7292 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7293 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
7294 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7296 if (r->servername) {
7297 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
7298 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7299 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
7300 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7303 return NDR_ERR_SUCCESS;
7306 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo4 *r)
7308 uint32_t _ptr_printername;
7309 TALLOC_CTX *_mem_save_printername_0;
7310 uint32_t _ptr_servername;
7311 TALLOC_CTX *_mem_save_servername_0;
7312 if (ndr_flags & NDR_SCALARS) {
7313 NDR_CHECK(ndr_pull_align(ndr, 5));
7314 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
7315 if (_ptr_printername) {
7316 NDR_PULL_ALLOC(ndr, r->printername);
7318 r->printername = NULL;
7320 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
7321 if (_ptr_servername) {
7322 NDR_PULL_ALLOC(ndr, r->servername);
7324 r->servername = NULL;
7326 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
7327 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
7329 if (ndr_flags & NDR_BUFFERS) {
7330 if (r->printername) {
7331 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
7332 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
7333 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
7334 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
7335 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
7336 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));
7338 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
7339 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
7340 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
7342 if (r->servername) {
7343 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
7344 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
7345 NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
7346 NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
7347 if (ndr_get_array_length(ndr, &r->servername) > ndr_get_array_size(ndr, &r->servername)) {
7348 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));
7350 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t)));
7351 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t), CH_UTF16));
7352 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
7355 return NDR_ERR_SUCCESS;
7358 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo4 *r)
7360 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo4");
7362 ndr_print_ptr(ndr, "printername", r->printername);
7364 if (r->printername) {
7365 ndr_print_string(ndr, "printername", r->printername);
7368 ndr_print_ptr(ndr, "servername", r->servername);
7370 if (r->servername) {
7371 ndr_print_string(ndr, "servername", r->servername);
7374 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
7378 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo5 *r)
7380 if (ndr_flags & NDR_SCALARS) {
7381 NDR_CHECK(ndr_push_align(ndr, 5));
7382 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
7383 NDR_CHECK(ndr_push_unique_ptr(ndr, r->portname));
7384 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
7385 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->device_not_selected_timeout));
7386 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->transmission_retry_timeout));
7387 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
7389 if (ndr_flags & NDR_BUFFERS) {
7390 if (r->printername) {
7391 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
7392 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7393 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
7394 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7397 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
7398 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7399 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
7400 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, ndr_charset_length(r->portname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7403 return NDR_ERR_SUCCESS;
7406 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo5 *r)
7408 uint32_t _ptr_printername;
7409 TALLOC_CTX *_mem_save_printername_0;
7410 uint32_t _ptr_portname;
7411 TALLOC_CTX *_mem_save_portname_0;
7412 if (ndr_flags & NDR_SCALARS) {
7413 NDR_CHECK(ndr_pull_align(ndr, 5));
7414 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
7415 if (_ptr_printername) {
7416 NDR_PULL_ALLOC(ndr, r->printername);
7418 r->printername = NULL;
7420 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
7421 if (_ptr_portname) {
7422 NDR_PULL_ALLOC(ndr, r->portname);
7426 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
7427 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->device_not_selected_timeout));
7428 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->transmission_retry_timeout));
7429 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
7431 if (ndr_flags & NDR_BUFFERS) {
7432 if (r->printername) {
7433 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
7434 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
7435 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
7436 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
7437 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
7438 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));
7440 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
7441 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
7442 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
7445 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
7446 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
7447 NDR_CHECK(ndr_pull_array_size(ndr, &r->portname));
7448 NDR_CHECK(ndr_pull_array_length(ndr, &r->portname));
7449 if (ndr_get_array_length(ndr, &r->portname) > ndr_get_array_size(ndr, &r->portname)) {
7450 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));
7452 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t)));
7453 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t), CH_UTF16));
7454 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
7457 return NDR_ERR_SUCCESS;
7460 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo5 *r)
7462 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo5");
7464 ndr_print_ptr(ndr, "printername", r->printername);
7466 if (r->printername) {
7467 ndr_print_string(ndr, "printername", r->printername);
7470 ndr_print_ptr(ndr, "portname", r->portname);
7473 ndr_print_string(ndr, "portname", r->portname);
7476 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
7477 ndr_print_uint32(ndr, "device_not_selected_timeout", r->device_not_selected_timeout);
7478 ndr_print_uint32(ndr, "transmission_retry_timeout", r->transmission_retry_timeout);
7482 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo6 *r)
7484 if (ndr_flags & NDR_SCALARS) {
7485 NDR_CHECK(ndr_push_align(ndr, 4));
7486 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
7487 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
7489 if (ndr_flags & NDR_BUFFERS) {
7491 return NDR_ERR_SUCCESS;
7494 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo6 *r)
7496 if (ndr_flags & NDR_SCALARS) {
7497 NDR_CHECK(ndr_pull_align(ndr, 4));
7498 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
7499 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
7501 if (ndr_flags & NDR_BUFFERS) {
7503 return NDR_ERR_SUCCESS;
7506 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo6 *r)
7508 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo6");
7510 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
7514 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo7(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo7 *r)
7516 if (ndr_flags & NDR_SCALARS) {
7517 NDR_CHECK(ndr_push_align(ndr, 5));
7518 NDR_CHECK(ndr_push_unique_ptr(ndr, r->guid));
7519 NDR_CHECK(ndr_push_spoolss_DsPrintAction(ndr, NDR_SCALARS, r->action));
7520 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
7522 if (ndr_flags & NDR_BUFFERS) {
7524 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->guid, CH_UTF16)));
7525 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7526 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->guid, CH_UTF16)));
7527 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->guid, ndr_charset_length(r->guid, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7530 return NDR_ERR_SUCCESS;
7533 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo7(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo7 *r)
7536 TALLOC_CTX *_mem_save_guid_0;
7537 if (ndr_flags & NDR_SCALARS) {
7538 NDR_CHECK(ndr_pull_align(ndr, 5));
7539 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_guid));
7541 NDR_PULL_ALLOC(ndr, r->guid);
7545 NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr, NDR_SCALARS, &r->action));
7546 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
7548 if (ndr_flags & NDR_BUFFERS) {
7550 _mem_save_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
7551 NDR_PULL_SET_MEM_CTX(ndr, r->guid, 0);
7552 NDR_CHECK(ndr_pull_array_size(ndr, &r->guid));
7553 NDR_CHECK(ndr_pull_array_length(ndr, &r->guid));
7554 if (ndr_get_array_length(ndr, &r->guid) > ndr_get_array_size(ndr, &r->guid)) {
7555 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));
7557 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->guid), sizeof(uint16_t)));
7558 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->guid, ndr_get_array_length(ndr, &r->guid), sizeof(uint16_t), CH_UTF16));
7559 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_guid_0, 0);
7562 return NDR_ERR_SUCCESS;
7565 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo7(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo7 *r)
7567 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo7");
7569 ndr_print_ptr(ndr, "guid", r->guid);
7572 ndr_print_string(ndr, "guid", r->guid);
7575 ndr_print_spoolss_DsPrintAction(ndr, "action", r->action);
7579 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo8(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo8 *r)
7581 if (ndr_flags & NDR_SCALARS) {
7582 NDR_CHECK(ndr_push_align(ndr, 4));
7583 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->devmode_ptr));
7584 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
7586 if (ndr_flags & NDR_BUFFERS) {
7588 return NDR_ERR_SUCCESS;
7591 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo8(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo8 *r)
7593 if (ndr_flags & NDR_SCALARS) {
7594 NDR_CHECK(ndr_pull_align(ndr, 4));
7595 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->devmode_ptr));
7596 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
7598 if (ndr_flags & NDR_BUFFERS) {
7600 return NDR_ERR_SUCCESS;
7603 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo8(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo8 *r)
7605 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo8");
7607 ndr_print_uint32(ndr, "devmode_ptr", r->devmode_ptr);
7611 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo9(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo9 *r)
7613 if (ndr_flags & NDR_SCALARS) {
7614 NDR_CHECK(ndr_push_align(ndr, 4));
7615 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->devmode_ptr));
7616 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
7618 if (ndr_flags & NDR_BUFFERS) {
7620 return NDR_ERR_SUCCESS;
7623 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo9(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo9 *r)
7625 if (ndr_flags & NDR_SCALARS) {
7626 NDR_CHECK(ndr_pull_align(ndr, 4));
7627 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->devmode_ptr));
7628 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
7630 if (ndr_flags & NDR_BUFFERS) {
7632 return NDR_ERR_SUCCESS;
7635 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo9(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo9 *r)
7637 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo9");
7639 ndr_print_uint32(ndr, "devmode_ptr", r->devmode_ptr);
7643 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_SetPrinterInfo *r)
7645 if (ndr_flags & NDR_SCALARS) {
7646 int level = ndr_push_get_switch_value(ndr, r);
7647 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
7648 NDR_CHECK(ndr_push_union_align(ndr, 5));
7651 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info0));
7655 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
7659 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
7663 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
7667 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
7671 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info5));
7675 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info6));
7679 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info7));
7683 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info8));
7687 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info9));
7695 if (ndr_flags & NDR_BUFFERS) {
7696 int level = ndr_push_get_switch_value(ndr, r);
7700 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo0(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
7706 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7712 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
7718 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo3(ndr, NDR_SCALARS, r->info3));
7724 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
7730 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo5(ndr, NDR_SCALARS|NDR_BUFFERS, r->info5));
7736 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo6(ndr, NDR_SCALARS, r->info6));
7742 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo7(ndr, NDR_SCALARS|NDR_BUFFERS, r->info7));
7748 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo8(ndr, NDR_SCALARS, r->info8));
7754 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo9(ndr, NDR_SCALARS, r->info9));
7763 return NDR_ERR_SUCCESS;
7766 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_SetPrinterInfo *r)
7770 TALLOC_CTX *_mem_save_info0_0;
7771 TALLOC_CTX *_mem_save_info1_0;
7772 TALLOC_CTX *_mem_save_info2_0;
7773 TALLOC_CTX *_mem_save_info3_0;
7774 TALLOC_CTX *_mem_save_info4_0;
7775 TALLOC_CTX *_mem_save_info5_0;
7776 TALLOC_CTX *_mem_save_info6_0;
7777 TALLOC_CTX *_mem_save_info7_0;
7778 TALLOC_CTX *_mem_save_info8_0;
7779 TALLOC_CTX *_mem_save_info9_0;
7780 level = ndr_pull_get_switch_value(ndr, r);
7781 if (ndr_flags & NDR_SCALARS) {
7782 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
7783 if (_level != level) {
7784 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
7786 NDR_CHECK(ndr_pull_union_align(ndr, 5));
7789 uint32_t _ptr_info0;
7790 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0));
7792 NDR_PULL_ALLOC(ndr, r->info0);
7799 uint32_t _ptr_info1;
7800 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
7802 NDR_PULL_ALLOC(ndr, r->info1);
7809 uint32_t _ptr_info2;
7810 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
7812 NDR_PULL_ALLOC(ndr, r->info2);
7819 uint32_t _ptr_info3;
7820 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
7822 NDR_PULL_ALLOC(ndr, r->info3);
7829 uint32_t _ptr_info4;
7830 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
7832 NDR_PULL_ALLOC(ndr, r->info4);
7839 uint32_t _ptr_info5;
7840 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info5));
7842 NDR_PULL_ALLOC(ndr, r->info5);
7849 uint32_t _ptr_info6;
7850 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info6));
7852 NDR_PULL_ALLOC(ndr, r->info6);
7859 uint32_t _ptr_info7;
7860 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info7));
7862 NDR_PULL_ALLOC(ndr, r->info7);
7869 uint32_t _ptr_info8;
7870 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info8));
7872 NDR_PULL_ALLOC(ndr, r->info8);
7879 uint32_t _ptr_info9;
7880 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info9));
7882 NDR_PULL_ALLOC(ndr, r->info9);
7893 if (ndr_flags & NDR_BUFFERS) {
7897 _mem_save_info0_0 = NDR_PULL_GET_MEM_CTX(ndr);
7898 NDR_PULL_SET_MEM_CTX(ndr, r->info0, 0);
7899 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo0(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
7900 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info0_0, 0);
7906 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
7907 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
7908 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7909 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
7915 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
7916 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
7917 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
7918 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
7924 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
7925 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
7926 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo3(ndr, NDR_SCALARS, r->info3));
7927 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
7933 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
7934 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
7935 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
7936 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
7942 _mem_save_info5_0 = NDR_PULL_GET_MEM_CTX(ndr);
7943 NDR_PULL_SET_MEM_CTX(ndr, r->info5, 0);
7944 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo5(ndr, NDR_SCALARS|NDR_BUFFERS, r->info5));
7945 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info5_0, 0);
7951 _mem_save_info6_0 = NDR_PULL_GET_MEM_CTX(ndr);
7952 NDR_PULL_SET_MEM_CTX(ndr, r->info6, 0);
7953 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo6(ndr, NDR_SCALARS, r->info6));
7954 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info6_0, 0);
7960 _mem_save_info7_0 = NDR_PULL_GET_MEM_CTX(ndr);
7961 NDR_PULL_SET_MEM_CTX(ndr, r->info7, 0);
7962 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo7(ndr, NDR_SCALARS|NDR_BUFFERS, r->info7));
7963 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info7_0, 0);
7969 _mem_save_info8_0 = NDR_PULL_GET_MEM_CTX(ndr);
7970 NDR_PULL_SET_MEM_CTX(ndr, r->info8, 0);
7971 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo8(ndr, NDR_SCALARS, r->info8));
7972 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info8_0, 0);
7978 _mem_save_info9_0 = NDR_PULL_GET_MEM_CTX(ndr);
7979 NDR_PULL_SET_MEM_CTX(ndr, r->info9, 0);
7980 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo9(ndr, NDR_SCALARS, r->info9));
7981 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info9_0, 0);
7990 return NDR_ERR_SUCCESS;
7993 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_SetPrinterInfo *r)
7996 level = ndr_print_get_switch_value(ndr, r);
7997 ndr_print_union(ndr, name, level, "spoolss_SetPrinterInfo");
8000 ndr_print_ptr(ndr, "info0", r->info0);
8003 ndr_print_spoolss_SetPrinterInfo0(ndr, "info0", r->info0);
8009 ndr_print_ptr(ndr, "info1", r->info1);
8012 ndr_print_spoolss_SetPrinterInfo1(ndr, "info1", r->info1);
8018 ndr_print_ptr(ndr, "info2", r->info2);
8021 ndr_print_spoolss_SetPrinterInfo2(ndr, "info2", r->info2);
8027 ndr_print_ptr(ndr, "info3", r->info3);
8030 ndr_print_spoolss_SetPrinterInfo3(ndr, "info3", r->info3);
8036 ndr_print_ptr(ndr, "info4", r->info4);
8039 ndr_print_spoolss_SetPrinterInfo4(ndr, "info4", r->info4);
8045 ndr_print_ptr(ndr, "info5", r->info5);
8048 ndr_print_spoolss_SetPrinterInfo5(ndr, "info5", r->info5);
8054 ndr_print_ptr(ndr, "info6", r->info6);
8057 ndr_print_spoolss_SetPrinterInfo6(ndr, "info6", r->info6);
8063 ndr_print_ptr(ndr, "info7", r->info7);
8066 ndr_print_spoolss_SetPrinterInfo7(ndr, "info7", r->info7);
8072 ndr_print_ptr(ndr, "info8", r->info8);
8075 ndr_print_spoolss_SetPrinterInfo8(ndr, "info8", r->info8);
8081 ndr_print_ptr(ndr, "info9", r->info9);
8084 ndr_print_spoolss_SetPrinterInfo9(ndr, "info9", r->info9);
8095 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfoCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfoCtr *r)
8097 if (ndr_flags & NDR_SCALARS) {
8098 NDR_CHECK(ndr_push_align(ndr, 5));
8099 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
8100 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
8101 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr, NDR_SCALARS, &r->info));
8102 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8104 if (ndr_flags & NDR_BUFFERS) {
8105 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr, NDR_BUFFERS, &r->info));
8107 return NDR_ERR_SUCCESS;
8110 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfoCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfoCtr *r)
8112 if (ndr_flags & NDR_SCALARS) {
8113 NDR_CHECK(ndr_pull_align(ndr, 5));
8114 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
8115 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
8116 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr, NDR_SCALARS, &r->info));
8117 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8119 if (ndr_flags & NDR_BUFFERS) {
8120 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr, NDR_BUFFERS, &r->info));
8122 return NDR_ERR_SUCCESS;
8125 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfoCtr(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfoCtr *r)
8127 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfoCtr");
8129 ndr_print_uint32(ndr, "level", r->level);
8130 ndr_print_set_switch_value(ndr, &r->info, r->level);
8131 ndr_print_spoolss_SetPrinterInfo(ndr, "info", &r->info);
8135 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_StringArray(struct ndr_push *ndr, int ndr_flags, const struct spoolss_StringArray *r)
8137 if (ndr_flags & NDR_SCALARS) {
8138 NDR_CHECK(ndr_push_align(ndr, 4));
8139 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, (ndr_size_spoolss_StringArray(r, ndr->iconv_convenience, ndr->flags) - 4) / 2));
8141 uint32_t _flags_save_string_array = ndr->flags;
8142 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8143 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string));
8144 ndr->flags = _flags_save_string_array;
8146 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
8148 if (ndr_flags & NDR_BUFFERS) {
8150 return NDR_ERR_SUCCESS;
8153 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_StringArray(struct ndr_pull *ndr, int ndr_flags, struct spoolss_StringArray *r)
8155 if (ndr_flags & NDR_SCALARS) {
8156 NDR_CHECK(ndr_pull_align(ndr, 4));
8157 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
8159 uint32_t _flags_save_string_array = ndr->flags;
8160 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8161 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string));
8162 ndr->flags = _flags_save_string_array;
8164 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
8166 if (ndr_flags & NDR_BUFFERS) {
8168 return NDR_ERR_SUCCESS;
8171 _PUBLIC_ void ndr_print_spoolss_StringArray(struct ndr_print *ndr, const char *name, const struct spoolss_StringArray *r)
8173 ndr_print_struct(ndr, name, "spoolss_StringArray");
8175 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);
8176 ndr_print_string_array(ndr, "string", r->string);
8180 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo1 *r)
8182 if (ndr_flags & NDR_SCALARS) {
8183 NDR_CHECK(ndr_push_align(ndr, 5));
8184 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
8185 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8187 if (ndr_flags & NDR_BUFFERS) {
8188 if (r->driver_name) {
8189 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8190 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8191 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8192 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8195 return NDR_ERR_SUCCESS;
8198 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo1 *r)
8200 uint32_t _ptr_driver_name;
8201 TALLOC_CTX *_mem_save_driver_name_0;
8202 if (ndr_flags & NDR_SCALARS) {
8203 NDR_CHECK(ndr_pull_align(ndr, 5));
8204 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8205 if (_ptr_driver_name) {
8206 NDR_PULL_ALLOC(ndr, r->driver_name);
8208 r->driver_name = NULL;
8210 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8212 if (ndr_flags & NDR_BUFFERS) {
8213 if (r->driver_name) {
8214 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8215 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8216 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
8217 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
8218 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
8219 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));
8221 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
8222 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
8223 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8226 return NDR_ERR_SUCCESS;
8229 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo1 *r)
8231 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo1");
8233 ndr_print_ptr(ndr, "driver_name", r->driver_name);
8235 if (r->driver_name) {
8236 ndr_print_string(ndr, "driver_name", r->driver_name);
8242 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverOSVersion(struct ndr_push *ndr, int ndr_flags, enum spoolss_DriverOSVersion r)
8244 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
8245 return NDR_ERR_SUCCESS;
8248 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverOSVersion(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DriverOSVersion *r)
8251 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
8253 return NDR_ERR_SUCCESS;
8256 _PUBLIC_ void ndr_print_spoolss_DriverOSVersion(struct ndr_print *ndr, const char *name, enum spoolss_DriverOSVersion r)
8258 const char *val = NULL;
8261 case SPOOLSS_DRIVER_VERSION_9X: val = "SPOOLSS_DRIVER_VERSION_9X"; break;
8262 case SPOOLSS_DRIVER_VERSION_NT35: val = "SPOOLSS_DRIVER_VERSION_NT35"; break;
8263 case SPOOLSS_DRIVER_VERSION_NT4: val = "SPOOLSS_DRIVER_VERSION_NT4"; break;
8264 case SPOOLSS_DRIVER_VERSION_200X: val = "SPOOLSS_DRIVER_VERSION_200X"; break;
8266 ndr_print_enum(ndr, name, "ENUM", val, r);
8269 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo2 *r)
8271 if (ndr_flags & NDR_SCALARS) {
8272 NDR_CHECK(ndr_push_align(ndr, 5));
8273 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
8274 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
8275 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
8276 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
8277 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
8278 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
8279 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8281 if (ndr_flags & NDR_BUFFERS) {
8282 if (r->driver_name) {
8283 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8284 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8285 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8286 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8288 if (r->architecture) {
8289 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8290 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8291 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8292 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8294 if (r->driver_path) {
8295 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8296 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8297 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8298 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8301 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8302 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8303 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8304 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8306 if (r->config_file) {
8307 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8308 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8309 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8310 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8313 return NDR_ERR_SUCCESS;
8316 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo2 *r)
8318 uint32_t _ptr_driver_name;
8319 TALLOC_CTX *_mem_save_driver_name_0;
8320 uint32_t _ptr_architecture;
8321 TALLOC_CTX *_mem_save_architecture_0;
8322 uint32_t _ptr_driver_path;
8323 TALLOC_CTX *_mem_save_driver_path_0;
8324 uint32_t _ptr_data_file;
8325 TALLOC_CTX *_mem_save_data_file_0;
8326 uint32_t _ptr_config_file;
8327 TALLOC_CTX *_mem_save_config_file_0;
8328 if (ndr_flags & NDR_SCALARS) {
8329 NDR_CHECK(ndr_pull_align(ndr, 5));
8330 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
8331 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8332 if (_ptr_driver_name) {
8333 NDR_PULL_ALLOC(ndr, r->driver_name);
8335 r->driver_name = NULL;
8337 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
8338 if (_ptr_architecture) {
8339 NDR_PULL_ALLOC(ndr, r->architecture);
8341 r->architecture = NULL;
8343 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
8344 if (_ptr_driver_path) {
8345 NDR_PULL_ALLOC(ndr, r->driver_path);
8347 r->driver_path = NULL;
8349 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
8350 if (_ptr_data_file) {
8351 NDR_PULL_ALLOC(ndr, r->data_file);
8353 r->data_file = NULL;
8355 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
8356 if (_ptr_config_file) {
8357 NDR_PULL_ALLOC(ndr, r->config_file);
8359 r->config_file = NULL;
8361 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8363 if (ndr_flags & NDR_BUFFERS) {
8364 if (r->driver_name) {
8365 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8366 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8367 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
8368 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
8369 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
8370 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));
8372 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
8373 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
8374 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8376 if (r->architecture) {
8377 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
8378 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
8379 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
8380 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
8381 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
8382 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));
8384 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
8385 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
8386 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
8388 if (r->driver_path) {
8389 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
8390 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
8391 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
8392 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
8393 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
8394 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));
8396 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
8397 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
8398 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
8401 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8402 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
8403 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
8404 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
8405 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
8406 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));
8408 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
8409 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
8410 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
8412 if (r->config_file) {
8413 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8414 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
8415 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
8416 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
8417 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
8418 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));
8420 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
8421 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
8422 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
8425 return NDR_ERR_SUCCESS;
8428 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo2 *r)
8430 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo2");
8432 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
8433 ndr_print_ptr(ndr, "driver_name", r->driver_name);
8435 if (r->driver_name) {
8436 ndr_print_string(ndr, "driver_name", r->driver_name);
8439 ndr_print_ptr(ndr, "architecture", r->architecture);
8441 if (r->architecture) {
8442 ndr_print_string(ndr, "architecture", r->architecture);
8445 ndr_print_ptr(ndr, "driver_path", r->driver_path);
8447 if (r->driver_path) {
8448 ndr_print_string(ndr, "driver_path", r->driver_path);
8451 ndr_print_ptr(ndr, "data_file", r->data_file);
8454 ndr_print_string(ndr, "data_file", r->data_file);
8457 ndr_print_ptr(ndr, "config_file", r->config_file);
8459 if (r->config_file) {
8460 ndr_print_string(ndr, "config_file", r->config_file);
8466 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo3 *r)
8468 if (ndr_flags & NDR_SCALARS) {
8469 NDR_CHECK(ndr_push_align(ndr, 5));
8470 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
8471 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
8472 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
8473 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
8474 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
8475 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
8476 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
8477 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
8478 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
8479 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8480 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
8481 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8483 if (ndr_flags & NDR_BUFFERS) {
8484 if (r->driver_name) {
8485 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8486 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8487 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8488 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8490 if (r->architecture) {
8491 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8492 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8493 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8494 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8496 if (r->driver_path) {
8497 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8498 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8499 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8500 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8503 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8504 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8505 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8506 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8508 if (r->config_file) {
8509 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8510 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8511 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8512 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8515 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8516 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8517 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8518 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8520 if (r->monitor_name) {
8521 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8522 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8523 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8524 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8526 if (r->default_datatype) {
8527 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8528 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8529 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8530 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8532 if (r->dependent_files) {
8533 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8536 return NDR_ERR_SUCCESS;
8539 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo3 *r)
8541 uint32_t _ptr_driver_name;
8542 TALLOC_CTX *_mem_save_driver_name_0;
8543 uint32_t _ptr_architecture;
8544 TALLOC_CTX *_mem_save_architecture_0;
8545 uint32_t _ptr_driver_path;
8546 TALLOC_CTX *_mem_save_driver_path_0;
8547 uint32_t _ptr_data_file;
8548 TALLOC_CTX *_mem_save_data_file_0;
8549 uint32_t _ptr_config_file;
8550 TALLOC_CTX *_mem_save_config_file_0;
8551 uint32_t _ptr_help_file;
8552 TALLOC_CTX *_mem_save_help_file_0;
8553 uint32_t _ptr_monitor_name;
8554 TALLOC_CTX *_mem_save_monitor_name_0;
8555 uint32_t _ptr_default_datatype;
8556 TALLOC_CTX *_mem_save_default_datatype_0;
8557 uint32_t _ptr_dependent_files;
8558 TALLOC_CTX *_mem_save_dependent_files_0;
8559 if (ndr_flags & NDR_SCALARS) {
8560 NDR_CHECK(ndr_pull_align(ndr, 5));
8561 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
8562 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8563 if (_ptr_driver_name) {
8564 NDR_PULL_ALLOC(ndr, r->driver_name);
8566 r->driver_name = NULL;
8568 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
8569 if (_ptr_architecture) {
8570 NDR_PULL_ALLOC(ndr, r->architecture);
8572 r->architecture = NULL;
8574 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
8575 if (_ptr_driver_path) {
8576 NDR_PULL_ALLOC(ndr, r->driver_path);
8578 r->driver_path = NULL;
8580 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
8581 if (_ptr_data_file) {
8582 NDR_PULL_ALLOC(ndr, r->data_file);
8584 r->data_file = NULL;
8586 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
8587 if (_ptr_config_file) {
8588 NDR_PULL_ALLOC(ndr, r->config_file);
8590 r->config_file = NULL;
8592 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
8593 if (_ptr_help_file) {
8594 NDR_PULL_ALLOC(ndr, r->help_file);
8596 r->help_file = NULL;
8598 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
8599 if (_ptr_monitor_name) {
8600 NDR_PULL_ALLOC(ndr, r->monitor_name);
8602 r->monitor_name = NULL;
8604 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
8605 if (_ptr_default_datatype) {
8606 NDR_PULL_ALLOC(ndr, r->default_datatype);
8608 r->default_datatype = NULL;
8610 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
8611 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
8612 if (_ptr_dependent_files) {
8613 NDR_PULL_ALLOC(ndr, r->dependent_files);
8615 r->dependent_files = NULL;
8617 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8619 if (ndr_flags & NDR_BUFFERS) {
8620 if (r->driver_name) {
8621 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8622 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8623 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
8624 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
8625 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
8626 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));
8628 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
8629 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
8630 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8632 if (r->architecture) {
8633 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
8634 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
8635 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
8636 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
8637 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
8638 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));
8640 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
8641 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
8642 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
8644 if (r->driver_path) {
8645 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
8646 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
8647 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
8648 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
8649 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
8650 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));
8652 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
8653 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
8654 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
8657 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8658 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
8659 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
8660 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
8661 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
8662 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));
8664 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
8665 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
8666 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
8668 if (r->config_file) {
8669 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8670 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
8671 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
8672 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
8673 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
8674 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));
8676 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
8677 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
8678 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
8681 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8682 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
8683 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
8684 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
8685 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
8686 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));
8688 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
8689 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
8690 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
8692 if (r->monitor_name) {
8693 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8694 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
8695 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
8696 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
8697 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
8698 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));
8700 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
8701 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
8702 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
8704 if (r->default_datatype) {
8705 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
8706 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
8707 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
8708 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
8709 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
8710 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));
8712 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
8713 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
8714 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
8716 if (r->dependent_files) {
8717 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
8718 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
8719 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8720 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
8723 return NDR_ERR_SUCCESS;
8726 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo3 *r)
8728 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo3");
8730 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
8731 ndr_print_ptr(ndr, "driver_name", r->driver_name);
8733 if (r->driver_name) {
8734 ndr_print_string(ndr, "driver_name", r->driver_name);
8737 ndr_print_ptr(ndr, "architecture", r->architecture);
8739 if (r->architecture) {
8740 ndr_print_string(ndr, "architecture", r->architecture);
8743 ndr_print_ptr(ndr, "driver_path", r->driver_path);
8745 if (r->driver_path) {
8746 ndr_print_string(ndr, "driver_path", r->driver_path);
8749 ndr_print_ptr(ndr, "data_file", r->data_file);
8752 ndr_print_string(ndr, "data_file", r->data_file);
8755 ndr_print_ptr(ndr, "config_file", r->config_file);
8757 if (r->config_file) {
8758 ndr_print_string(ndr, "config_file", r->config_file);
8761 ndr_print_ptr(ndr, "help_file", r->help_file);
8764 ndr_print_string(ndr, "help_file", r->help_file);
8767 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
8769 if (r->monitor_name) {
8770 ndr_print_string(ndr, "monitor_name", r->monitor_name);
8773 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
8775 if (r->default_datatype) {
8776 ndr_print_string(ndr, "default_datatype", r->default_datatype);
8779 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);
8780 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
8782 if (r->dependent_files) {
8783 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
8789 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo4 *r)
8791 if (ndr_flags & NDR_SCALARS) {
8792 NDR_CHECK(ndr_push_align(ndr, 5));
8793 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
8794 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
8795 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
8796 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
8797 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
8798 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
8799 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
8800 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
8801 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
8802 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8803 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
8804 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8805 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
8806 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8808 if (ndr_flags & NDR_BUFFERS) {
8809 if (r->driver_name) {
8810 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8811 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8812 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8813 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8815 if (r->architecture) {
8816 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8817 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8818 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8819 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8821 if (r->driver_path) {
8822 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8823 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8824 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8825 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8828 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8829 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8830 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8831 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8833 if (r->config_file) {
8834 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8835 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8836 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8837 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8840 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8841 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8842 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8843 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8845 if (r->monitor_name) {
8846 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8847 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8848 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8849 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8851 if (r->default_datatype) {
8852 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8853 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8854 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8855 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8857 if (r->dependent_files) {
8858 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8860 if (r->previous_names) {
8861 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
8864 return NDR_ERR_SUCCESS;
8867 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo4 *r)
8869 uint32_t _ptr_driver_name;
8870 TALLOC_CTX *_mem_save_driver_name_0;
8871 uint32_t _ptr_architecture;
8872 TALLOC_CTX *_mem_save_architecture_0;
8873 uint32_t _ptr_driver_path;
8874 TALLOC_CTX *_mem_save_driver_path_0;
8875 uint32_t _ptr_data_file;
8876 TALLOC_CTX *_mem_save_data_file_0;
8877 uint32_t _ptr_config_file;
8878 TALLOC_CTX *_mem_save_config_file_0;
8879 uint32_t _ptr_help_file;
8880 TALLOC_CTX *_mem_save_help_file_0;
8881 uint32_t _ptr_monitor_name;
8882 TALLOC_CTX *_mem_save_monitor_name_0;
8883 uint32_t _ptr_default_datatype;
8884 TALLOC_CTX *_mem_save_default_datatype_0;
8885 uint32_t _ptr_dependent_files;
8886 TALLOC_CTX *_mem_save_dependent_files_0;
8887 uint32_t _ptr_previous_names;
8888 TALLOC_CTX *_mem_save_previous_names_0;
8889 if (ndr_flags & NDR_SCALARS) {
8890 NDR_CHECK(ndr_pull_align(ndr, 5));
8891 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
8892 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8893 if (_ptr_driver_name) {
8894 NDR_PULL_ALLOC(ndr, r->driver_name);
8896 r->driver_name = NULL;
8898 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
8899 if (_ptr_architecture) {
8900 NDR_PULL_ALLOC(ndr, r->architecture);
8902 r->architecture = NULL;
8904 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
8905 if (_ptr_driver_path) {
8906 NDR_PULL_ALLOC(ndr, r->driver_path);
8908 r->driver_path = NULL;
8910 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
8911 if (_ptr_data_file) {
8912 NDR_PULL_ALLOC(ndr, r->data_file);
8914 r->data_file = NULL;
8916 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
8917 if (_ptr_config_file) {
8918 NDR_PULL_ALLOC(ndr, r->config_file);
8920 r->config_file = NULL;
8922 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
8923 if (_ptr_help_file) {
8924 NDR_PULL_ALLOC(ndr, r->help_file);
8926 r->help_file = NULL;
8928 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
8929 if (_ptr_monitor_name) {
8930 NDR_PULL_ALLOC(ndr, r->monitor_name);
8932 r->monitor_name = NULL;
8934 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
8935 if (_ptr_default_datatype) {
8936 NDR_PULL_ALLOC(ndr, r->default_datatype);
8938 r->default_datatype = NULL;
8940 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
8941 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
8942 if (_ptr_dependent_files) {
8943 NDR_PULL_ALLOC(ndr, r->dependent_files);
8945 r->dependent_files = NULL;
8947 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
8948 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
8949 if (_ptr_previous_names) {
8950 NDR_PULL_ALLOC(ndr, r->previous_names);
8952 r->previous_names = NULL;
8954 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8956 if (ndr_flags & NDR_BUFFERS) {
8957 if (r->driver_name) {
8958 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8959 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8960 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
8961 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
8962 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
8963 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));
8965 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
8966 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
8967 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8969 if (r->architecture) {
8970 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
8971 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
8972 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
8973 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
8974 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
8975 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));
8977 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
8978 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
8979 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
8981 if (r->driver_path) {
8982 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
8983 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
8984 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
8985 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
8986 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
8987 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));
8989 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
8990 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
8991 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
8994 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8995 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
8996 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
8997 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
8998 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
8999 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));
9001 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
9002 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
9003 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
9005 if (r->config_file) {
9006 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9007 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
9008 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
9009 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
9010 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
9011 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));
9013 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
9014 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
9015 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
9018 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9019 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
9020 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
9021 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
9022 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
9023 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));
9025 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
9026 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
9027 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
9029 if (r->monitor_name) {
9030 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9031 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
9032 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
9033 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
9034 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
9035 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));
9037 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
9038 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
9039 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
9041 if (r->default_datatype) {
9042 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
9043 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
9044 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
9045 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
9046 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
9047 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));
9049 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
9050 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
9051 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
9053 if (r->dependent_files) {
9054 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
9055 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
9056 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
9057 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
9059 if (r->previous_names) {
9060 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
9061 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
9062 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
9063 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
9066 return NDR_ERR_SUCCESS;
9069 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo4 *r)
9071 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo4");
9073 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
9074 ndr_print_ptr(ndr, "driver_name", r->driver_name);
9076 if (r->driver_name) {
9077 ndr_print_string(ndr, "driver_name", r->driver_name);
9080 ndr_print_ptr(ndr, "architecture", r->architecture);
9082 if (r->architecture) {
9083 ndr_print_string(ndr, "architecture", r->architecture);
9086 ndr_print_ptr(ndr, "driver_path", r->driver_path);
9088 if (r->driver_path) {
9089 ndr_print_string(ndr, "driver_path", r->driver_path);
9092 ndr_print_ptr(ndr, "data_file", r->data_file);
9095 ndr_print_string(ndr, "data_file", r->data_file);
9098 ndr_print_ptr(ndr, "config_file", r->config_file);
9100 if (r->config_file) {
9101 ndr_print_string(ndr, "config_file", r->config_file);
9104 ndr_print_ptr(ndr, "help_file", r->help_file);
9107 ndr_print_string(ndr, "help_file", r->help_file);
9110 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
9112 if (r->monitor_name) {
9113 ndr_print_string(ndr, "monitor_name", r->monitor_name);
9116 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
9118 if (r->default_datatype) {
9119 ndr_print_string(ndr, "default_datatype", r->default_datatype);
9122 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);
9123 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
9125 if (r->dependent_files) {
9126 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
9129 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);
9130 ndr_print_ptr(ndr, "previous_names", r->previous_names);
9132 if (r->previous_names) {
9133 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
9139 static enum ndr_err_code ndr_push_spoolss_DriverAttributes(struct ndr_push *ndr, int ndr_flags, uint32_t r)
9141 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
9142 return NDR_ERR_SUCCESS;
9145 static enum ndr_err_code ndr_pull_spoolss_DriverAttributes(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
9148 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
9150 return NDR_ERR_SUCCESS;
9153 _PUBLIC_ void ndr_print_spoolss_DriverAttributes(struct ndr_print *ndr, const char *name, uint32_t r)
9155 ndr_print_uint32(ndr, name, r);
9157 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_DRIVER_PACKAGE_AWARE", PRINTER_DRIVER_PACKAGE_AWARE, r);
9161 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo6 *r)
9163 if (ndr_flags & NDR_SCALARS) {
9164 NDR_CHECK(ndr_push_align(ndr, 8));
9165 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
9166 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
9167 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
9168 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
9169 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
9170 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
9171 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
9172 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
9173 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
9174 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9175 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
9176 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9177 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
9178 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
9179 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
9180 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_name));
9181 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_url));
9182 NDR_CHECK(ndr_push_unique_ptr(ndr, r->hardware_id));
9183 NDR_CHECK(ndr_push_unique_ptr(ndr, r->provider));
9184 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
9186 if (ndr_flags & NDR_BUFFERS) {
9187 if (r->driver_name) {
9188 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
9189 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9190 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
9191 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9193 if (r->architecture) {
9194 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
9195 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9196 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
9197 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9199 if (r->driver_path) {
9200 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
9201 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9202 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
9203 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9206 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
9207 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9208 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
9209 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9211 if (r->config_file) {
9212 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
9213 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9214 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
9215 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9218 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
9219 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9220 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
9221 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9223 if (r->monitor_name) {
9224 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
9225 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9226 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
9227 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9229 if (r->default_datatype) {
9230 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
9231 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9232 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
9233 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9235 if (r->dependent_files) {
9236 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
9238 if (r->previous_names) {
9239 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
9241 if (r->manufacturer_name) {
9242 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
9243 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9244 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
9245 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_name, ndr_charset_length(r->manufacturer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9247 if (r->manufacturer_url) {
9248 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
9249 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9250 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
9251 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_url, ndr_charset_length(r->manufacturer_url, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9253 if (r->hardware_id) {
9254 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
9255 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9256 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
9257 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_id, ndr_charset_length(r->hardware_id, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9260 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
9261 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9262 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
9263 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->provider, ndr_charset_length(r->provider, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9266 return NDR_ERR_SUCCESS;
9269 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo6 *r)
9271 uint32_t _ptr_driver_name;
9272 TALLOC_CTX *_mem_save_driver_name_0;
9273 uint32_t _ptr_architecture;
9274 TALLOC_CTX *_mem_save_architecture_0;
9275 uint32_t _ptr_driver_path;
9276 TALLOC_CTX *_mem_save_driver_path_0;
9277 uint32_t _ptr_data_file;
9278 TALLOC_CTX *_mem_save_data_file_0;
9279 uint32_t _ptr_config_file;
9280 TALLOC_CTX *_mem_save_config_file_0;
9281 uint32_t _ptr_help_file;
9282 TALLOC_CTX *_mem_save_help_file_0;
9283 uint32_t _ptr_monitor_name;
9284 TALLOC_CTX *_mem_save_monitor_name_0;
9285 uint32_t _ptr_default_datatype;
9286 TALLOC_CTX *_mem_save_default_datatype_0;
9287 uint32_t _ptr_dependent_files;
9288 TALLOC_CTX *_mem_save_dependent_files_0;
9289 uint32_t _ptr_previous_names;
9290 TALLOC_CTX *_mem_save_previous_names_0;
9291 uint32_t _ptr_manufacturer_name;
9292 TALLOC_CTX *_mem_save_manufacturer_name_0;
9293 uint32_t _ptr_manufacturer_url;
9294 TALLOC_CTX *_mem_save_manufacturer_url_0;
9295 uint32_t _ptr_hardware_id;
9296 TALLOC_CTX *_mem_save_hardware_id_0;
9297 uint32_t _ptr_provider;
9298 TALLOC_CTX *_mem_save_provider_0;
9299 if (ndr_flags & NDR_SCALARS) {
9300 NDR_CHECK(ndr_pull_align(ndr, 8));
9301 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
9302 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
9303 if (_ptr_driver_name) {
9304 NDR_PULL_ALLOC(ndr, r->driver_name);
9306 r->driver_name = NULL;
9308 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
9309 if (_ptr_architecture) {
9310 NDR_PULL_ALLOC(ndr, r->architecture);
9312 r->architecture = NULL;
9314 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
9315 if (_ptr_driver_path) {
9316 NDR_PULL_ALLOC(ndr, r->driver_path);
9318 r->driver_path = NULL;
9320 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
9321 if (_ptr_data_file) {
9322 NDR_PULL_ALLOC(ndr, r->data_file);
9324 r->data_file = NULL;
9326 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
9327 if (_ptr_config_file) {
9328 NDR_PULL_ALLOC(ndr, r->config_file);
9330 r->config_file = NULL;
9332 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
9333 if (_ptr_help_file) {
9334 NDR_PULL_ALLOC(ndr, r->help_file);
9336 r->help_file = NULL;
9338 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
9339 if (_ptr_monitor_name) {
9340 NDR_PULL_ALLOC(ndr, r->monitor_name);
9342 r->monitor_name = NULL;
9344 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
9345 if (_ptr_default_datatype) {
9346 NDR_PULL_ALLOC(ndr, r->default_datatype);
9348 r->default_datatype = NULL;
9350 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
9351 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
9352 if (_ptr_dependent_files) {
9353 NDR_PULL_ALLOC(ndr, r->dependent_files);
9355 r->dependent_files = NULL;
9357 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
9358 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
9359 if (_ptr_previous_names) {
9360 NDR_PULL_ALLOC(ndr, r->previous_names);
9362 r->previous_names = NULL;
9364 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
9365 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
9366 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
9367 if (_ptr_manufacturer_name) {
9368 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
9370 r->manufacturer_name = NULL;
9372 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
9373 if (_ptr_manufacturer_url) {
9374 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
9376 r->manufacturer_url = NULL;
9378 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
9379 if (_ptr_hardware_id) {
9380 NDR_PULL_ALLOC(ndr, r->hardware_id);
9382 r->hardware_id = NULL;
9384 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
9385 if (_ptr_provider) {
9386 NDR_PULL_ALLOC(ndr, r->provider);
9390 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
9392 if (ndr_flags & NDR_BUFFERS) {
9393 if (r->driver_name) {
9394 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9395 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
9396 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
9397 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
9398 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
9399 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));
9401 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
9402 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
9403 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
9405 if (r->architecture) {
9406 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
9407 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
9408 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
9409 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
9410 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
9411 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));
9413 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
9414 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
9415 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
9417 if (r->driver_path) {
9418 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
9419 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
9420 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
9421 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
9422 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
9423 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));
9425 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
9426 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
9427 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
9430 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9431 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
9432 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
9433 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
9434 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
9435 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));
9437 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
9438 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
9439 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
9441 if (r->config_file) {
9442 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9443 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
9444 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
9445 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
9446 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
9447 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));
9449 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
9450 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
9451 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
9454 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9455 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
9456 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
9457 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
9458 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
9459 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));
9461 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
9462 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
9463 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
9465 if (r->monitor_name) {
9466 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9467 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
9468 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
9469 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
9470 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
9471 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));
9473 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
9474 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
9475 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
9477 if (r->default_datatype) {
9478 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
9479 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
9480 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
9481 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
9482 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
9483 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));
9485 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
9486 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
9487 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
9489 if (r->dependent_files) {
9490 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
9491 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
9492 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
9493 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
9495 if (r->previous_names) {
9496 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
9497 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
9498 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
9499 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
9501 if (r->manufacturer_name) {
9502 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9503 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
9504 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_name));
9505 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_name));
9506 if (ndr_get_array_length(ndr, &r->manufacturer_name) > ndr_get_array_size(ndr, &r->manufacturer_name)) {
9507 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));
9509 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t)));
9510 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_name, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t), CH_UTF16));
9511 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
9513 if (r->manufacturer_url) {
9514 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
9515 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
9516 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_url));
9517 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_url));
9518 if (ndr_get_array_length(ndr, &r->manufacturer_url) > ndr_get_array_size(ndr, &r->manufacturer_url)) {
9519 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));
9521 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t)));
9522 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_url, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t), CH_UTF16));
9523 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
9525 if (r->hardware_id) {
9526 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
9527 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
9528 NDR_CHECK(ndr_pull_array_size(ndr, &r->hardware_id));
9529 NDR_CHECK(ndr_pull_array_length(ndr, &r->hardware_id));
9530 if (ndr_get_array_length(ndr, &r->hardware_id) > ndr_get_array_size(ndr, &r->hardware_id)) {
9531 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));
9533 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t)));
9534 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_id, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t), CH_UTF16));
9535 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
9538 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
9539 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
9540 NDR_CHECK(ndr_pull_array_size(ndr, &r->provider));
9541 NDR_CHECK(ndr_pull_array_length(ndr, &r->provider));
9542 if (ndr_get_array_length(ndr, &r->provider) > ndr_get_array_size(ndr, &r->provider)) {
9543 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));
9545 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t)));
9546 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->provider, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t), CH_UTF16));
9547 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
9550 return NDR_ERR_SUCCESS;
9553 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo6 *r)
9555 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo6");
9557 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
9558 ndr_print_ptr(ndr, "driver_name", r->driver_name);
9560 if (r->driver_name) {
9561 ndr_print_string(ndr, "driver_name", r->driver_name);
9564 ndr_print_ptr(ndr, "architecture", r->architecture);
9566 if (r->architecture) {
9567 ndr_print_string(ndr, "architecture", r->architecture);
9570 ndr_print_ptr(ndr, "driver_path", r->driver_path);
9572 if (r->driver_path) {
9573 ndr_print_string(ndr, "driver_path", r->driver_path);
9576 ndr_print_ptr(ndr, "data_file", r->data_file);
9579 ndr_print_string(ndr, "data_file", r->data_file);
9582 ndr_print_ptr(ndr, "config_file", r->config_file);
9584 if (r->config_file) {
9585 ndr_print_string(ndr, "config_file", r->config_file);
9588 ndr_print_ptr(ndr, "help_file", r->help_file);
9591 ndr_print_string(ndr, "help_file", r->help_file);
9594 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
9596 if (r->monitor_name) {
9597 ndr_print_string(ndr, "monitor_name", r->monitor_name);
9600 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
9602 if (r->default_datatype) {
9603 ndr_print_string(ndr, "default_datatype", r->default_datatype);
9606 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);
9607 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
9609 if (r->dependent_files) {
9610 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
9613 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);
9614 ndr_print_ptr(ndr, "previous_names", r->previous_names);
9616 if (r->previous_names) {
9617 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
9620 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
9621 ndr_print_hyper(ndr, "driver_version", r->driver_version);
9622 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
9624 if (r->manufacturer_name) {
9625 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
9628 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
9630 if (r->manufacturer_url) {
9631 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
9634 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
9636 if (r->hardware_id) {
9637 ndr_print_string(ndr, "hardware_id", r->hardware_id);
9640 ndr_print_ptr(ndr, "provider", r->provider);
9643 ndr_print_string(ndr, "provider", r->provider);
9649 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo8(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo8 *r)
9651 if (ndr_flags & NDR_SCALARS) {
9652 NDR_CHECK(ndr_push_align(ndr, 8));
9653 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
9654 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
9655 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
9656 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
9657 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
9658 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
9659 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
9660 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
9661 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
9662 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9663 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
9664 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9665 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
9666 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
9667 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
9668 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_name));
9669 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_url));
9670 NDR_CHECK(ndr_push_unique_ptr(ndr, r->hardware_id));
9671 NDR_CHECK(ndr_push_unique_ptr(ndr, r->provider));
9672 NDR_CHECK(ndr_push_unique_ptr(ndr, r->print_processor));
9673 NDR_CHECK(ndr_push_unique_ptr(ndr, r->vendor_setup));
9674 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->color_profiles, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9675 NDR_CHECK(ndr_push_unique_ptr(ndr, r->color_profiles));
9676 NDR_CHECK(ndr_push_unique_ptr(ndr, r->inf_path));
9677 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->printer_driver_attributes));
9678 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->core_driver_dependencies, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9679 NDR_CHECK(ndr_push_unique_ptr(ndr, r->core_driver_dependencies));
9680 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->min_inbox_driver_ver_date));
9681 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->min_inbox_driver_ver_version));
9682 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
9684 if (ndr_flags & NDR_BUFFERS) {
9685 if (r->driver_name) {
9686 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
9687 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9688 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
9689 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9691 if (r->architecture) {
9692 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
9693 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9694 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
9695 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9697 if (r->driver_path) {
9698 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
9699 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9700 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
9701 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9704 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
9705 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9706 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
9707 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9709 if (r->config_file) {
9710 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
9711 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9712 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
9713 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9716 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
9717 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9718 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
9719 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9721 if (r->monitor_name) {
9722 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
9723 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9724 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
9725 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9727 if (r->default_datatype) {
9728 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
9729 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9730 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
9731 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9733 if (r->dependent_files) {
9734 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
9736 if (r->previous_names) {
9737 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
9739 if (r->manufacturer_name) {
9740 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
9741 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9742 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
9743 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_name, ndr_charset_length(r->manufacturer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9745 if (r->manufacturer_url) {
9746 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
9747 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9748 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
9749 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_url, ndr_charset_length(r->manufacturer_url, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9751 if (r->hardware_id) {
9752 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
9753 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9754 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
9755 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_id, ndr_charset_length(r->hardware_id, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9758 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
9759 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9760 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
9761 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->provider, ndr_charset_length(r->provider, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9763 if (r->print_processor) {
9764 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
9765 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9766 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
9767 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->print_processor, ndr_charset_length(r->print_processor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9769 if (r->vendor_setup) {
9770 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->vendor_setup, CH_UTF16)));
9771 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9772 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->vendor_setup, CH_UTF16)));
9773 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->vendor_setup, ndr_charset_length(r->vendor_setup, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9775 if (r->color_profiles) {
9776 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->color_profiles));
9779 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->inf_path, CH_UTF16)));
9780 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9781 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->inf_path, CH_UTF16)));
9782 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->inf_path, ndr_charset_length(r->inf_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9784 if (r->core_driver_dependencies) {
9785 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->core_driver_dependencies));
9788 return NDR_ERR_SUCCESS;
9791 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo8(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo8 *r)
9793 uint32_t _ptr_driver_name;
9794 TALLOC_CTX *_mem_save_driver_name_0;
9795 uint32_t _ptr_architecture;
9796 TALLOC_CTX *_mem_save_architecture_0;
9797 uint32_t _ptr_driver_path;
9798 TALLOC_CTX *_mem_save_driver_path_0;
9799 uint32_t _ptr_data_file;
9800 TALLOC_CTX *_mem_save_data_file_0;
9801 uint32_t _ptr_config_file;
9802 TALLOC_CTX *_mem_save_config_file_0;
9803 uint32_t _ptr_help_file;
9804 TALLOC_CTX *_mem_save_help_file_0;
9805 uint32_t _ptr_monitor_name;
9806 TALLOC_CTX *_mem_save_monitor_name_0;
9807 uint32_t _ptr_default_datatype;
9808 TALLOC_CTX *_mem_save_default_datatype_0;
9809 uint32_t _ptr_dependent_files;
9810 TALLOC_CTX *_mem_save_dependent_files_0;
9811 uint32_t _ptr_previous_names;
9812 TALLOC_CTX *_mem_save_previous_names_0;
9813 uint32_t _ptr_manufacturer_name;
9814 TALLOC_CTX *_mem_save_manufacturer_name_0;
9815 uint32_t _ptr_manufacturer_url;
9816 TALLOC_CTX *_mem_save_manufacturer_url_0;
9817 uint32_t _ptr_hardware_id;
9818 TALLOC_CTX *_mem_save_hardware_id_0;
9819 uint32_t _ptr_provider;
9820 TALLOC_CTX *_mem_save_provider_0;
9821 uint32_t _ptr_print_processor;
9822 TALLOC_CTX *_mem_save_print_processor_0;
9823 uint32_t _ptr_vendor_setup;
9824 TALLOC_CTX *_mem_save_vendor_setup_0;
9825 uint32_t _ptr_color_profiles;
9826 TALLOC_CTX *_mem_save_color_profiles_0;
9827 uint32_t _ptr_inf_path;
9828 TALLOC_CTX *_mem_save_inf_path_0;
9829 uint32_t _ptr_core_driver_dependencies;
9830 TALLOC_CTX *_mem_save_core_driver_dependencies_0;
9831 if (ndr_flags & NDR_SCALARS) {
9832 NDR_CHECK(ndr_pull_align(ndr, 8));
9833 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
9834 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
9835 if (_ptr_driver_name) {
9836 NDR_PULL_ALLOC(ndr, r->driver_name);
9838 r->driver_name = NULL;
9840 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
9841 if (_ptr_architecture) {
9842 NDR_PULL_ALLOC(ndr, r->architecture);
9844 r->architecture = NULL;
9846 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
9847 if (_ptr_driver_path) {
9848 NDR_PULL_ALLOC(ndr, r->driver_path);
9850 r->driver_path = NULL;
9852 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
9853 if (_ptr_data_file) {
9854 NDR_PULL_ALLOC(ndr, r->data_file);
9856 r->data_file = NULL;
9858 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
9859 if (_ptr_config_file) {
9860 NDR_PULL_ALLOC(ndr, r->config_file);
9862 r->config_file = NULL;
9864 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
9865 if (_ptr_help_file) {
9866 NDR_PULL_ALLOC(ndr, r->help_file);
9868 r->help_file = NULL;
9870 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
9871 if (_ptr_monitor_name) {
9872 NDR_PULL_ALLOC(ndr, r->monitor_name);
9874 r->monitor_name = NULL;
9876 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
9877 if (_ptr_default_datatype) {
9878 NDR_PULL_ALLOC(ndr, r->default_datatype);
9880 r->default_datatype = NULL;
9882 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
9883 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
9884 if (_ptr_dependent_files) {
9885 NDR_PULL_ALLOC(ndr, r->dependent_files);
9887 r->dependent_files = NULL;
9889 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
9890 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
9891 if (_ptr_previous_names) {
9892 NDR_PULL_ALLOC(ndr, r->previous_names);
9894 r->previous_names = NULL;
9896 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
9897 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
9898 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
9899 if (_ptr_manufacturer_name) {
9900 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
9902 r->manufacturer_name = NULL;
9904 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
9905 if (_ptr_manufacturer_url) {
9906 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
9908 r->manufacturer_url = NULL;
9910 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
9911 if (_ptr_hardware_id) {
9912 NDR_PULL_ALLOC(ndr, r->hardware_id);
9914 r->hardware_id = NULL;
9916 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
9917 if (_ptr_provider) {
9918 NDR_PULL_ALLOC(ndr, r->provider);
9922 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
9923 if (_ptr_print_processor) {
9924 NDR_PULL_ALLOC(ndr, r->print_processor);
9926 r->print_processor = NULL;
9928 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_vendor_setup));
9929 if (_ptr_vendor_setup) {
9930 NDR_PULL_ALLOC(ndr, r->vendor_setup);
9932 r->vendor_setup = NULL;
9934 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_color_profiles));
9935 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_color_profiles));
9936 if (_ptr_color_profiles) {
9937 NDR_PULL_ALLOC(ndr, r->color_profiles);
9939 r->color_profiles = NULL;
9941 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_inf_path));
9942 if (_ptr_inf_path) {
9943 NDR_PULL_ALLOC(ndr, r->inf_path);
9947 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->printer_driver_attributes));
9948 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_core_driver_dependencies));
9949 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_core_driver_dependencies));
9950 if (_ptr_core_driver_dependencies) {
9951 NDR_PULL_ALLOC(ndr, r->core_driver_dependencies);
9953 r->core_driver_dependencies = NULL;
9955 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_date));
9956 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_version));
9957 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
9959 if (ndr_flags & NDR_BUFFERS) {
9960 if (r->driver_name) {
9961 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9962 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
9963 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
9964 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
9965 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
9966 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));
9968 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
9969 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
9970 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
9972 if (r->architecture) {
9973 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
9974 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
9975 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
9976 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
9977 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
9978 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));
9980 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
9981 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
9982 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
9984 if (r->driver_path) {
9985 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
9986 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
9987 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
9988 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
9989 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
9990 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));
9992 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
9993 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
9994 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
9997 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9998 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
9999 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
10000 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
10001 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
10002 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));
10004 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
10005 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
10006 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
10008 if (r->config_file) {
10009 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10010 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
10011 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
10012 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
10013 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
10014 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));
10016 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
10017 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
10018 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
10020 if (r->help_file) {
10021 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10022 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
10023 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
10024 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
10025 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
10026 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));
10028 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
10029 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
10030 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
10032 if (r->monitor_name) {
10033 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10034 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
10035 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
10036 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
10037 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
10038 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));
10040 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
10041 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
10042 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
10044 if (r->default_datatype) {
10045 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
10046 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
10047 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
10048 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
10049 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
10050 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));
10052 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
10053 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
10054 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
10056 if (r->dependent_files) {
10057 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
10058 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
10059 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
10060 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
10062 if (r->previous_names) {
10063 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
10064 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
10065 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
10066 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
10068 if (r->manufacturer_name) {
10069 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10070 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
10071 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_name));
10072 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_name));
10073 if (ndr_get_array_length(ndr, &r->manufacturer_name) > ndr_get_array_size(ndr, &r->manufacturer_name)) {
10074 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));
10076 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t)));
10077 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_name, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t), CH_UTF16));
10078 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
10080 if (r->manufacturer_url) {
10081 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
10082 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
10083 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_url));
10084 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_url));
10085 if (ndr_get_array_length(ndr, &r->manufacturer_url) > ndr_get_array_size(ndr, &r->manufacturer_url)) {
10086 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));
10088 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t)));
10089 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_url, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t), CH_UTF16));
10090 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
10092 if (r->hardware_id) {
10093 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
10094 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
10095 NDR_CHECK(ndr_pull_array_size(ndr, &r->hardware_id));
10096 NDR_CHECK(ndr_pull_array_length(ndr, &r->hardware_id));
10097 if (ndr_get_array_length(ndr, &r->hardware_id) > ndr_get_array_size(ndr, &r->hardware_id)) {
10098 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));
10100 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t)));
10101 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_id, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t), CH_UTF16));
10102 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
10105 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
10106 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
10107 NDR_CHECK(ndr_pull_array_size(ndr, &r->provider));
10108 NDR_CHECK(ndr_pull_array_length(ndr, &r->provider));
10109 if (ndr_get_array_length(ndr, &r->provider) > ndr_get_array_size(ndr, &r->provider)) {
10110 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));
10112 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t)));
10113 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->provider, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t), CH_UTF16));
10114 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
10116 if (r->print_processor) {
10117 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
10118 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
10119 NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
10120 NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
10121 if (ndr_get_array_length(ndr, &r->print_processor) > ndr_get_array_size(ndr, &r->print_processor)) {
10122 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));
10124 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t)));
10125 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t), CH_UTF16));
10126 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
10128 if (r->vendor_setup) {
10129 _mem_save_vendor_setup_0 = NDR_PULL_GET_MEM_CTX(ndr);
10130 NDR_PULL_SET_MEM_CTX(ndr, r->vendor_setup, 0);
10131 NDR_CHECK(ndr_pull_array_size(ndr, &r->vendor_setup));
10132 NDR_CHECK(ndr_pull_array_length(ndr, &r->vendor_setup));
10133 if (ndr_get_array_length(ndr, &r->vendor_setup) > ndr_get_array_size(ndr, &r->vendor_setup)) {
10134 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));
10136 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->vendor_setup), sizeof(uint16_t)));
10137 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->vendor_setup, ndr_get_array_length(ndr, &r->vendor_setup), sizeof(uint16_t), CH_UTF16));
10138 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vendor_setup_0, 0);
10140 if (r->color_profiles) {
10141 _mem_save_color_profiles_0 = NDR_PULL_GET_MEM_CTX(ndr);
10142 NDR_PULL_SET_MEM_CTX(ndr, r->color_profiles, 0);
10143 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->color_profiles));
10144 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_color_profiles_0, 0);
10147 _mem_save_inf_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
10148 NDR_PULL_SET_MEM_CTX(ndr, r->inf_path, 0);
10149 NDR_CHECK(ndr_pull_array_size(ndr, &r->inf_path));
10150 NDR_CHECK(ndr_pull_array_length(ndr, &r->inf_path));
10151 if (ndr_get_array_length(ndr, &r->inf_path) > ndr_get_array_size(ndr, &r->inf_path)) {
10152 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));
10154 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->inf_path), sizeof(uint16_t)));
10155 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->inf_path, ndr_get_array_length(ndr, &r->inf_path), sizeof(uint16_t), CH_UTF16));
10156 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_inf_path_0, 0);
10158 if (r->core_driver_dependencies) {
10159 _mem_save_core_driver_dependencies_0 = NDR_PULL_GET_MEM_CTX(ndr);
10160 NDR_PULL_SET_MEM_CTX(ndr, r->core_driver_dependencies, 0);
10161 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->core_driver_dependencies));
10162 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_driver_dependencies_0, 0);
10165 return NDR_ERR_SUCCESS;
10168 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo8(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo8 *r)
10170 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo8");
10172 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
10173 ndr_print_ptr(ndr, "driver_name", r->driver_name);
10175 if (r->driver_name) {
10176 ndr_print_string(ndr, "driver_name", r->driver_name);
10179 ndr_print_ptr(ndr, "architecture", r->architecture);
10181 if (r->architecture) {
10182 ndr_print_string(ndr, "architecture", r->architecture);
10185 ndr_print_ptr(ndr, "driver_path", r->driver_path);
10187 if (r->driver_path) {
10188 ndr_print_string(ndr, "driver_path", r->driver_path);
10191 ndr_print_ptr(ndr, "data_file", r->data_file);
10193 if (r->data_file) {
10194 ndr_print_string(ndr, "data_file", r->data_file);
10197 ndr_print_ptr(ndr, "config_file", r->config_file);
10199 if (r->config_file) {
10200 ndr_print_string(ndr, "config_file", r->config_file);
10203 ndr_print_ptr(ndr, "help_file", r->help_file);
10205 if (r->help_file) {
10206 ndr_print_string(ndr, "help_file", r->help_file);
10209 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
10211 if (r->monitor_name) {
10212 ndr_print_string(ndr, "monitor_name", r->monitor_name);
10215 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
10217 if (r->default_datatype) {
10218 ndr_print_string(ndr, "default_datatype", r->default_datatype);
10221 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);
10222 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
10224 if (r->dependent_files) {
10225 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
10228 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);
10229 ndr_print_ptr(ndr, "previous_names", r->previous_names);
10231 if (r->previous_names) {
10232 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
10235 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
10236 ndr_print_hyper(ndr, "driver_version", r->driver_version);
10237 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
10239 if (r->manufacturer_name) {
10240 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
10243 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
10245 if (r->manufacturer_url) {
10246 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
10249 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
10251 if (r->hardware_id) {
10252 ndr_print_string(ndr, "hardware_id", r->hardware_id);
10255 ndr_print_ptr(ndr, "provider", r->provider);
10258 ndr_print_string(ndr, "provider", r->provider);
10261 ndr_print_ptr(ndr, "print_processor", r->print_processor);
10263 if (r->print_processor) {
10264 ndr_print_string(ndr, "print_processor", r->print_processor);
10267 ndr_print_ptr(ndr, "vendor_setup", r->vendor_setup);
10269 if (r->vendor_setup) {
10270 ndr_print_string(ndr, "vendor_setup", r->vendor_setup);
10273 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);
10274 ndr_print_ptr(ndr, "color_profiles", r->color_profiles);
10276 if (r->color_profiles) {
10277 ndr_print_spoolss_StringArray(ndr, "color_profiles", r->color_profiles);
10280 ndr_print_ptr(ndr, "inf_path", r->inf_path);
10283 ndr_print_string(ndr, "inf_path", r->inf_path);
10286 ndr_print_uint32(ndr, "printer_driver_attributes", r->printer_driver_attributes);
10287 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);
10288 ndr_print_ptr(ndr, "core_driver_dependencies", r->core_driver_dependencies);
10290 if (r->core_driver_dependencies) {
10291 ndr_print_spoolss_StringArray(ndr, "core_driver_dependencies", r->core_driver_dependencies);
10294 ndr_print_NTTIME(ndr, "min_inbox_driver_ver_date", r->min_inbox_driver_ver_date);
10295 ndr_print_hyper(ndr, "min_inbox_driver_ver_version", r->min_inbox_driver_ver_version);
10299 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_AddDriverInfo *r)
10301 if (ndr_flags & NDR_SCALARS) {
10302 int level = ndr_push_get_switch_value(ndr, r);
10303 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
10304 NDR_CHECK(ndr_push_union_align(ndr, 5));
10307 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
10311 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
10315 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
10319 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
10323 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info6));
10327 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info8));
10331 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
10334 if (ndr_flags & NDR_BUFFERS) {
10335 int level = ndr_push_get_switch_value(ndr, r);
10339 NDR_CHECK(ndr_push_spoolss_AddDriverInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
10345 NDR_CHECK(ndr_push_spoolss_AddDriverInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
10351 NDR_CHECK(ndr_push_spoolss_AddDriverInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3));
10357 NDR_CHECK(ndr_push_spoolss_AddDriverInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
10363 NDR_CHECK(ndr_push_spoolss_AddDriverInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->info6));
10369 NDR_CHECK(ndr_push_spoolss_AddDriverInfo8(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
10374 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
10377 return NDR_ERR_SUCCESS;
10380 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_AddDriverInfo *r)
10384 TALLOC_CTX *_mem_save_info1_0;
10385 TALLOC_CTX *_mem_save_info2_0;
10386 TALLOC_CTX *_mem_save_info3_0;
10387 TALLOC_CTX *_mem_save_info4_0;
10388 TALLOC_CTX *_mem_save_info6_0;
10389 TALLOC_CTX *_mem_save_info8_0;
10390 level = ndr_pull_get_switch_value(ndr, r);
10391 if (ndr_flags & NDR_SCALARS) {
10392 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
10393 if (_level != level) {
10394 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
10396 NDR_CHECK(ndr_pull_union_align(ndr, 5));
10399 uint32_t _ptr_info1;
10400 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
10402 NDR_PULL_ALLOC(ndr, r->info1);
10409 uint32_t _ptr_info2;
10410 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
10412 NDR_PULL_ALLOC(ndr, r->info2);
10419 uint32_t _ptr_info3;
10420 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
10422 NDR_PULL_ALLOC(ndr, r->info3);
10429 uint32_t _ptr_info4;
10430 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
10432 NDR_PULL_ALLOC(ndr, r->info4);
10439 uint32_t _ptr_info6;
10440 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info6));
10442 NDR_PULL_ALLOC(ndr, r->info6);
10449 uint32_t _ptr_info8;
10450 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info8));
10452 NDR_PULL_ALLOC(ndr, r->info8);
10459 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
10462 if (ndr_flags & NDR_BUFFERS) {
10466 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
10467 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
10468 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
10469 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
10475 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
10476 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
10477 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
10478 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
10484 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
10485 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
10486 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3));
10487 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
10493 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
10494 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
10495 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
10496 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
10502 _mem_save_info6_0 = NDR_PULL_GET_MEM_CTX(ndr);
10503 NDR_PULL_SET_MEM_CTX(ndr, r->info6, 0);
10504 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->info6));
10505 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info6_0, 0);
10511 _mem_save_info8_0 = NDR_PULL_GET_MEM_CTX(ndr);
10512 NDR_PULL_SET_MEM_CTX(ndr, r->info8, 0);
10513 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo8(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
10514 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info8_0, 0);
10519 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
10522 return NDR_ERR_SUCCESS;
10525 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo(struct ndr_print *ndr, const char *name, const union spoolss_AddDriverInfo *r)
10528 level = ndr_print_get_switch_value(ndr, r);
10529 ndr_print_union(ndr, name, level, "spoolss_AddDriverInfo");
10532 ndr_print_ptr(ndr, "info1", r->info1);
10535 ndr_print_spoolss_AddDriverInfo1(ndr, "info1", r->info1);
10541 ndr_print_ptr(ndr, "info2", r->info2);
10544 ndr_print_spoolss_AddDriverInfo2(ndr, "info2", r->info2);
10550 ndr_print_ptr(ndr, "info3", r->info3);
10553 ndr_print_spoolss_AddDriverInfo3(ndr, "info3", r->info3);
10559 ndr_print_ptr(ndr, "info4", r->info4);
10562 ndr_print_spoolss_AddDriverInfo4(ndr, "info4", r->info4);
10568 ndr_print_ptr(ndr, "info6", r->info6);
10571 ndr_print_spoolss_AddDriverInfo6(ndr, "info6", r->info6);
10577 ndr_print_ptr(ndr, "info8", r->info8);
10580 ndr_print_spoolss_AddDriverInfo8(ndr, "info8", r->info8);
10586 ndr_print_bad_level(ndr, name, level);
10590 static enum ndr_err_code ndr_push_spoolss_AddDriverInfoCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfoCtr *r)
10592 if (ndr_flags & NDR_SCALARS) {
10593 NDR_CHECK(ndr_push_align(ndr, 5));
10594 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
10595 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
10596 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr, NDR_SCALARS, &r->info));
10597 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
10599 if (ndr_flags & NDR_BUFFERS) {
10600 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr, NDR_BUFFERS, &r->info));
10602 return NDR_ERR_SUCCESS;
10605 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfoCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfoCtr *r)
10607 if (ndr_flags & NDR_SCALARS) {
10608 NDR_CHECK(ndr_pull_align(ndr, 5));
10609 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
10610 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
10611 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr, NDR_SCALARS, &r->info));
10612 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
10614 if (ndr_flags & NDR_BUFFERS) {
10615 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr, NDR_BUFFERS, &r->info));
10617 return NDR_ERR_SUCCESS;
10620 _PUBLIC_ void ndr_print_spoolss_AddDriverInfoCtr(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfoCtr *r)
10622 ndr_print_struct(ndr, name, "spoolss_AddDriverInfoCtr");
10624 ndr_print_uint32(ndr, "level", r->level);
10625 ndr_print_set_switch_value(ndr, &r->info, r->level);
10626 ndr_print_spoolss_AddDriverInfo(ndr, "info", &r->info);
10630 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo1 *r)
10632 if (ndr_flags & NDR_SCALARS) {
10633 NDR_CHECK(ndr_push_align(ndr, 5));
10635 uint32_t _flags_save_string = ndr->flags;
10636 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10637 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
10638 ndr->flags = _flags_save_string;
10640 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
10642 if (ndr_flags & NDR_BUFFERS) {
10644 uint32_t _flags_save_string = ndr->flags;
10645 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10646 if (r->driver_name) {
10647 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
10648 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
10649 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
10651 ndr->flags = _flags_save_string;
10654 return NDR_ERR_SUCCESS;
10657 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo1 *r)
10659 uint32_t _ptr_driver_name;
10660 TALLOC_CTX *_mem_save_driver_name_0;
10661 if (ndr_flags & NDR_SCALARS) {
10662 NDR_CHECK(ndr_pull_align(ndr, 5));
10664 uint32_t _flags_save_string = ndr->flags;
10665 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10666 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
10667 if (_ptr_driver_name) {
10668 NDR_PULL_ALLOC(ndr, r->driver_name);
10669 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
10671 r->driver_name = NULL;
10673 ndr->flags = _flags_save_string;
10675 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
10677 if (ndr_flags & NDR_BUFFERS) {
10679 uint32_t _flags_save_string = ndr->flags;
10680 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10681 if (r->driver_name) {
10682 uint32_t _relative_save_offset;
10683 _relative_save_offset = ndr->offset;
10684 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
10685 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10686 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
10687 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
10688 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
10689 if (ndr->offset > ndr->relative_highest_offset) {
10690 ndr->relative_highest_offset = ndr->offset;
10692 ndr->offset = _relative_save_offset;
10694 ndr->flags = _flags_save_string;
10697 return NDR_ERR_SUCCESS;
10700 _PUBLIC_ void ndr_print_spoolss_DriverInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo1 *r)
10702 ndr_print_struct(ndr, name, "spoolss_DriverInfo1");
10704 ndr_print_ptr(ndr, "driver_name", r->driver_name);
10706 if (r->driver_name) {
10707 ndr_print_string(ndr, "driver_name", r->driver_name);
10713 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo1(const struct spoolss_DriverInfo1 *r, struct smb_iconv_convenience *ic, int flags)
10715 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo1, ic);
10718 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo2 *r)
10720 if (ndr_flags & NDR_SCALARS) {
10721 NDR_CHECK(ndr_push_align(ndr, 5));
10722 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
10724 uint32_t _flags_save_string = ndr->flags;
10725 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10726 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
10727 ndr->flags = _flags_save_string;
10730 uint32_t _flags_save_string = ndr->flags;
10731 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10732 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
10733 ndr->flags = _flags_save_string;
10736 uint32_t _flags_save_string = ndr->flags;
10737 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10738 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
10739 ndr->flags = _flags_save_string;
10742 uint32_t _flags_save_string = ndr->flags;
10743 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10744 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
10745 ndr->flags = _flags_save_string;
10748 uint32_t _flags_save_string = ndr->flags;
10749 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10750 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
10751 ndr->flags = _flags_save_string;
10753 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
10755 if (ndr_flags & NDR_BUFFERS) {
10757 uint32_t _flags_save_string = ndr->flags;
10758 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10759 if (r->driver_name) {
10760 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
10761 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
10762 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
10764 ndr->flags = _flags_save_string;
10767 uint32_t _flags_save_string = ndr->flags;
10768 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10769 if (r->architecture) {
10770 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->architecture));
10771 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
10772 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->architecture));
10774 ndr->flags = _flags_save_string;
10777 uint32_t _flags_save_string = ndr->flags;
10778 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10779 if (r->driver_path) {
10780 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_path));
10781 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
10782 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_path));
10784 ndr->flags = _flags_save_string;
10787 uint32_t _flags_save_string = ndr->flags;
10788 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10789 if (r->data_file) {
10790 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_file));
10791 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
10792 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_file));
10794 ndr->flags = _flags_save_string;
10797 uint32_t _flags_save_string = ndr->flags;
10798 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10799 if (r->config_file) {
10800 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->config_file));
10801 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
10802 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->config_file));
10804 ndr->flags = _flags_save_string;
10807 return NDR_ERR_SUCCESS;
10810 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo2 *r)
10812 uint32_t _ptr_driver_name;
10813 TALLOC_CTX *_mem_save_driver_name_0;
10814 uint32_t _ptr_architecture;
10815 TALLOC_CTX *_mem_save_architecture_0;
10816 uint32_t _ptr_driver_path;
10817 TALLOC_CTX *_mem_save_driver_path_0;
10818 uint32_t _ptr_data_file;
10819 TALLOC_CTX *_mem_save_data_file_0;
10820 uint32_t _ptr_config_file;
10821 TALLOC_CTX *_mem_save_config_file_0;
10822 if (ndr_flags & NDR_SCALARS) {
10823 NDR_CHECK(ndr_pull_align(ndr, 5));
10824 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
10826 uint32_t _flags_save_string = ndr->flags;
10827 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10828 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
10829 if (_ptr_driver_name) {
10830 NDR_PULL_ALLOC(ndr, r->driver_name);
10831 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
10833 r->driver_name = NULL;
10835 ndr->flags = _flags_save_string;
10838 uint32_t _flags_save_string = ndr->flags;
10839 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10840 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
10841 if (_ptr_architecture) {
10842 NDR_PULL_ALLOC(ndr, r->architecture);
10843 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
10845 r->architecture = NULL;
10847 ndr->flags = _flags_save_string;
10850 uint32_t _flags_save_string = ndr->flags;
10851 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10852 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
10853 if (_ptr_driver_path) {
10854 NDR_PULL_ALLOC(ndr, r->driver_path);
10855 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
10857 r->driver_path = NULL;
10859 ndr->flags = _flags_save_string;
10862 uint32_t _flags_save_string = ndr->flags;
10863 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10864 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
10865 if (_ptr_data_file) {
10866 NDR_PULL_ALLOC(ndr, r->data_file);
10867 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
10869 r->data_file = NULL;
10871 ndr->flags = _flags_save_string;
10874 uint32_t _flags_save_string = ndr->flags;
10875 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10876 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
10877 if (_ptr_config_file) {
10878 NDR_PULL_ALLOC(ndr, r->config_file);
10879 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
10881 r->config_file = NULL;
10883 ndr->flags = _flags_save_string;
10885 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
10887 if (ndr_flags & NDR_BUFFERS) {
10889 uint32_t _flags_save_string = ndr->flags;
10890 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10891 if (r->driver_name) {
10892 uint32_t _relative_save_offset;
10893 _relative_save_offset = ndr->offset;
10894 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
10895 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10896 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
10897 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
10898 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
10899 if (ndr->offset > ndr->relative_highest_offset) {
10900 ndr->relative_highest_offset = ndr->offset;
10902 ndr->offset = _relative_save_offset;
10904 ndr->flags = _flags_save_string;
10907 uint32_t _flags_save_string = ndr->flags;
10908 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10909 if (r->architecture) {
10910 uint32_t _relative_save_offset;
10911 _relative_save_offset = ndr->offset;
10912 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
10913 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
10914 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
10915 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
10916 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
10917 if (ndr->offset > ndr->relative_highest_offset) {
10918 ndr->relative_highest_offset = ndr->offset;
10920 ndr->offset = _relative_save_offset;
10922 ndr->flags = _flags_save_string;
10925 uint32_t _flags_save_string = ndr->flags;
10926 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10927 if (r->driver_path) {
10928 uint32_t _relative_save_offset;
10929 _relative_save_offset = ndr->offset;
10930 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
10931 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
10932 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
10933 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
10934 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
10935 if (ndr->offset > ndr->relative_highest_offset) {
10936 ndr->relative_highest_offset = ndr->offset;
10938 ndr->offset = _relative_save_offset;
10940 ndr->flags = _flags_save_string;
10943 uint32_t _flags_save_string = ndr->flags;
10944 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10945 if (r->data_file) {
10946 uint32_t _relative_save_offset;
10947 _relative_save_offset = ndr->offset;
10948 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
10949 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10950 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
10951 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
10952 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
10953 if (ndr->offset > ndr->relative_highest_offset) {
10954 ndr->relative_highest_offset = ndr->offset;
10956 ndr->offset = _relative_save_offset;
10958 ndr->flags = _flags_save_string;
10961 uint32_t _flags_save_string = ndr->flags;
10962 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10963 if (r->config_file) {
10964 uint32_t _relative_save_offset;
10965 _relative_save_offset = ndr->offset;
10966 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
10967 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10968 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
10969 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
10970 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
10971 if (ndr->offset > ndr->relative_highest_offset) {
10972 ndr->relative_highest_offset = ndr->offset;
10974 ndr->offset = _relative_save_offset;
10976 ndr->flags = _flags_save_string;
10979 return NDR_ERR_SUCCESS;
10982 _PUBLIC_ void ndr_print_spoolss_DriverInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo2 *r)
10984 ndr_print_struct(ndr, name, "spoolss_DriverInfo2");
10986 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
10987 ndr_print_ptr(ndr, "driver_name", r->driver_name);
10989 if (r->driver_name) {
10990 ndr_print_string(ndr, "driver_name", r->driver_name);
10993 ndr_print_ptr(ndr, "architecture", r->architecture);
10995 if (r->architecture) {
10996 ndr_print_string(ndr, "architecture", r->architecture);
10999 ndr_print_ptr(ndr, "driver_path", r->driver_path);
11001 if (r->driver_path) {
11002 ndr_print_string(ndr, "driver_path", r->driver_path);
11005 ndr_print_ptr(ndr, "data_file", r->data_file);
11007 if (r->data_file) {
11008 ndr_print_string(ndr, "data_file", r->data_file);
11011 ndr_print_ptr(ndr, "config_file", r->config_file);
11013 if (r->config_file) {
11014 ndr_print_string(ndr, "config_file", r->config_file);
11020 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo2(const struct spoolss_DriverInfo2 *r, struct smb_iconv_convenience *ic, int flags)
11022 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo2, ic);
11025 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo3 *r)
11027 if (ndr_flags & NDR_SCALARS) {
11028 NDR_CHECK(ndr_push_align(ndr, 5));
11029 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
11031 uint32_t _flags_save_string = ndr->flags;
11032 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11033 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
11034 ndr->flags = _flags_save_string;
11037 uint32_t _flags_save_string = ndr->flags;
11038 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11039 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
11040 ndr->flags = _flags_save_string;
11043 uint32_t _flags_save_string = ndr->flags;
11044 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11045 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
11046 ndr->flags = _flags_save_string;
11049 uint32_t _flags_save_string = ndr->flags;
11050 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11051 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
11052 ndr->flags = _flags_save_string;
11055 uint32_t _flags_save_string = ndr->flags;
11056 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11057 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
11058 ndr->flags = _flags_save_string;
11061 uint32_t _flags_save_string = ndr->flags;
11062 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11063 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
11064 ndr->flags = _flags_save_string;
11067 uint32_t _flags_save_string_array = ndr->flags;
11068 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11069 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
11070 ndr->flags = _flags_save_string_array;
11073 uint32_t _flags_save_string = ndr->flags;
11074 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11075 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
11076 ndr->flags = _flags_save_string;
11079 uint32_t _flags_save_string = ndr->flags;
11080 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11081 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
11082 ndr->flags = _flags_save_string;
11084 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
11086 if (ndr_flags & NDR_BUFFERS) {
11088 uint32_t _flags_save_string = ndr->flags;
11089 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11090 if (r->driver_name) {
11091 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
11092 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
11093 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
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->architecture) {
11101 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->architecture));
11102 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
11103 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->architecture));
11105 ndr->flags = _flags_save_string;
11108 uint32_t _flags_save_string = ndr->flags;
11109 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11110 if (r->driver_path) {
11111 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_path));
11112 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
11113 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_path));
11115 ndr->flags = _flags_save_string;
11118 uint32_t _flags_save_string = ndr->flags;
11119 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11120 if (r->data_file) {
11121 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_file));
11122 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
11123 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_file));
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 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->config_file));
11132 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
11133 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->config_file));
11135 ndr->flags = _flags_save_string;
11138 uint32_t _flags_save_string = ndr->flags;
11139 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11140 if (r->help_file) {
11141 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->help_file));
11142 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
11143 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->help_file));
11145 ndr->flags = _flags_save_string;
11148 uint32_t _flags_save_string_array = ndr->flags;
11149 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11150 if (r->dependent_files) {
11151 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->dependent_files));
11152 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
11153 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->dependent_files));
11155 ndr->flags = _flags_save_string_array;
11158 uint32_t _flags_save_string = ndr->flags;
11159 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11160 if (r->monitor_name) {
11161 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name));
11162 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
11163 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->monitor_name));
11165 ndr->flags = _flags_save_string;
11168 uint32_t _flags_save_string = ndr->flags;
11169 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11170 if (r->default_datatype) {
11171 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->default_datatype));
11172 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
11173 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->default_datatype));
11175 ndr->flags = _flags_save_string;
11178 return NDR_ERR_SUCCESS;
11181 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo3 *r)
11183 uint32_t _ptr_driver_name;
11184 TALLOC_CTX *_mem_save_driver_name_0;
11185 uint32_t _ptr_architecture;
11186 TALLOC_CTX *_mem_save_architecture_0;
11187 uint32_t _ptr_driver_path;
11188 TALLOC_CTX *_mem_save_driver_path_0;
11189 uint32_t _ptr_data_file;
11190 TALLOC_CTX *_mem_save_data_file_0;
11191 uint32_t _ptr_config_file;
11192 TALLOC_CTX *_mem_save_config_file_0;
11193 uint32_t _ptr_help_file;
11194 TALLOC_CTX *_mem_save_help_file_0;
11195 uint32_t _ptr_dependent_files;
11196 TALLOC_CTX *_mem_save_dependent_files_0;
11197 uint32_t _ptr_monitor_name;
11198 TALLOC_CTX *_mem_save_monitor_name_0;
11199 uint32_t _ptr_default_datatype;
11200 TALLOC_CTX *_mem_save_default_datatype_0;
11201 if (ndr_flags & NDR_SCALARS) {
11202 NDR_CHECK(ndr_pull_align(ndr, 5));
11203 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
11205 uint32_t _flags_save_string = ndr->flags;
11206 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11207 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
11208 if (_ptr_driver_name) {
11209 NDR_PULL_ALLOC(ndr, r->driver_name);
11210 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
11212 r->driver_name = NULL;
11214 ndr->flags = _flags_save_string;
11217 uint32_t _flags_save_string = ndr->flags;
11218 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11219 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
11220 if (_ptr_architecture) {
11221 NDR_PULL_ALLOC(ndr, r->architecture);
11222 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
11224 r->architecture = NULL;
11226 ndr->flags = _flags_save_string;
11229 uint32_t _flags_save_string = ndr->flags;
11230 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11231 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
11232 if (_ptr_driver_path) {
11233 NDR_PULL_ALLOC(ndr, r->driver_path);
11234 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
11236 r->driver_path = NULL;
11238 ndr->flags = _flags_save_string;
11241 uint32_t _flags_save_string = ndr->flags;
11242 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11243 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
11244 if (_ptr_data_file) {
11245 NDR_PULL_ALLOC(ndr, r->data_file);
11246 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
11248 r->data_file = NULL;
11250 ndr->flags = _flags_save_string;
11253 uint32_t _flags_save_string = ndr->flags;
11254 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11255 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
11256 if (_ptr_config_file) {
11257 NDR_PULL_ALLOC(ndr, r->config_file);
11258 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
11260 r->config_file = NULL;
11262 ndr->flags = _flags_save_string;
11265 uint32_t _flags_save_string = ndr->flags;
11266 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11267 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
11268 if (_ptr_help_file) {
11269 NDR_PULL_ALLOC(ndr, r->help_file);
11270 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
11272 r->help_file = NULL;
11274 ndr->flags = _flags_save_string;
11277 uint32_t _flags_save_string_array = ndr->flags;
11278 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11279 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
11280 if (_ptr_dependent_files) {
11281 NDR_PULL_ALLOC(ndr, r->dependent_files);
11282 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
11284 r->dependent_files = NULL;
11286 ndr->flags = _flags_save_string_array;
11289 uint32_t _flags_save_string = ndr->flags;
11290 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11291 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
11292 if (_ptr_monitor_name) {
11293 NDR_PULL_ALLOC(ndr, r->monitor_name);
11294 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
11296 r->monitor_name = NULL;
11298 ndr->flags = _flags_save_string;
11301 uint32_t _flags_save_string = ndr->flags;
11302 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11303 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
11304 if (_ptr_default_datatype) {
11305 NDR_PULL_ALLOC(ndr, r->default_datatype);
11306 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
11308 r->default_datatype = NULL;
11310 ndr->flags = _flags_save_string;
11312 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
11314 if (ndr_flags & NDR_BUFFERS) {
11316 uint32_t _flags_save_string = ndr->flags;
11317 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11318 if (r->driver_name) {
11319 uint32_t _relative_save_offset;
11320 _relative_save_offset = ndr->offset;
11321 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
11322 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11323 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
11324 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
11325 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
11326 if (ndr->offset > ndr->relative_highest_offset) {
11327 ndr->relative_highest_offset = ndr->offset;
11329 ndr->offset = _relative_save_offset;
11331 ndr->flags = _flags_save_string;
11334 uint32_t _flags_save_string = ndr->flags;
11335 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11336 if (r->architecture) {
11337 uint32_t _relative_save_offset;
11338 _relative_save_offset = ndr->offset;
11339 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
11340 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
11341 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
11342 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
11343 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
11344 if (ndr->offset > ndr->relative_highest_offset) {
11345 ndr->relative_highest_offset = ndr->offset;
11347 ndr->offset = _relative_save_offset;
11349 ndr->flags = _flags_save_string;
11352 uint32_t _flags_save_string = ndr->flags;
11353 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11354 if (r->driver_path) {
11355 uint32_t _relative_save_offset;
11356 _relative_save_offset = ndr->offset;
11357 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
11358 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
11359 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
11360 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
11361 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
11362 if (ndr->offset > ndr->relative_highest_offset) {
11363 ndr->relative_highest_offset = ndr->offset;
11365 ndr->offset = _relative_save_offset;
11367 ndr->flags = _flags_save_string;
11370 uint32_t _flags_save_string = ndr->flags;
11371 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11372 if (r->data_file) {
11373 uint32_t _relative_save_offset;
11374 _relative_save_offset = ndr->offset;
11375 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
11376 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11377 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
11378 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
11379 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
11380 if (ndr->offset > ndr->relative_highest_offset) {
11381 ndr->relative_highest_offset = ndr->offset;
11383 ndr->offset = _relative_save_offset;
11385 ndr->flags = _flags_save_string;
11388 uint32_t _flags_save_string = ndr->flags;
11389 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11390 if (r->config_file) {
11391 uint32_t _relative_save_offset;
11392 _relative_save_offset = ndr->offset;
11393 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
11394 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11395 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
11396 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
11397 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
11398 if (ndr->offset > ndr->relative_highest_offset) {
11399 ndr->relative_highest_offset = ndr->offset;
11401 ndr->offset = _relative_save_offset;
11403 ndr->flags = _flags_save_string;
11406 uint32_t _flags_save_string = ndr->flags;
11407 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11408 if (r->help_file) {
11409 uint32_t _relative_save_offset;
11410 _relative_save_offset = ndr->offset;
11411 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
11412 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11413 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
11414 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
11415 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
11416 if (ndr->offset > ndr->relative_highest_offset) {
11417 ndr->relative_highest_offset = ndr->offset;
11419 ndr->offset = _relative_save_offset;
11421 ndr->flags = _flags_save_string;
11424 uint32_t _flags_save_string_array = ndr->flags;
11425 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11426 if (r->dependent_files) {
11427 uint32_t _relative_save_offset;
11428 _relative_save_offset = ndr->offset;
11429 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
11430 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
11431 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
11432 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
11433 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
11434 if (ndr->offset > ndr->relative_highest_offset) {
11435 ndr->relative_highest_offset = ndr->offset;
11437 ndr->offset = _relative_save_offset;
11439 ndr->flags = _flags_save_string_array;
11442 uint32_t _flags_save_string = ndr->flags;
11443 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11444 if (r->monitor_name) {
11445 uint32_t _relative_save_offset;
11446 _relative_save_offset = ndr->offset;
11447 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
11448 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11449 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
11450 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
11451 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
11452 if (ndr->offset > ndr->relative_highest_offset) {
11453 ndr->relative_highest_offset = ndr->offset;
11455 ndr->offset = _relative_save_offset;
11457 ndr->flags = _flags_save_string;
11460 uint32_t _flags_save_string = ndr->flags;
11461 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11462 if (r->default_datatype) {
11463 uint32_t _relative_save_offset;
11464 _relative_save_offset = ndr->offset;
11465 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
11466 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
11467 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
11468 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
11469 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
11470 if (ndr->offset > ndr->relative_highest_offset) {
11471 ndr->relative_highest_offset = ndr->offset;
11473 ndr->offset = _relative_save_offset;
11475 ndr->flags = _flags_save_string;
11478 return NDR_ERR_SUCCESS;
11481 _PUBLIC_ void ndr_print_spoolss_DriverInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo3 *r)
11483 ndr_print_struct(ndr, name, "spoolss_DriverInfo3");
11485 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
11486 ndr_print_ptr(ndr, "driver_name", r->driver_name);
11488 if (r->driver_name) {
11489 ndr_print_string(ndr, "driver_name", r->driver_name);
11492 ndr_print_ptr(ndr, "architecture", r->architecture);
11494 if (r->architecture) {
11495 ndr_print_string(ndr, "architecture", r->architecture);
11498 ndr_print_ptr(ndr, "driver_path", r->driver_path);
11500 if (r->driver_path) {
11501 ndr_print_string(ndr, "driver_path", r->driver_path);
11504 ndr_print_ptr(ndr, "data_file", r->data_file);
11506 if (r->data_file) {
11507 ndr_print_string(ndr, "data_file", r->data_file);
11510 ndr_print_ptr(ndr, "config_file", r->config_file);
11512 if (r->config_file) {
11513 ndr_print_string(ndr, "config_file", r->config_file);
11516 ndr_print_ptr(ndr, "help_file", r->help_file);
11518 if (r->help_file) {
11519 ndr_print_string(ndr, "help_file", r->help_file);
11522 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
11524 if (r->dependent_files) {
11525 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
11528 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
11530 if (r->monitor_name) {
11531 ndr_print_string(ndr, "monitor_name", r->monitor_name);
11534 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
11536 if (r->default_datatype) {
11537 ndr_print_string(ndr, "default_datatype", r->default_datatype);
11543 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo3(const struct spoolss_DriverInfo3 *r, struct smb_iconv_convenience *ic, int flags)
11545 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo3, ic);
11548 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo4 *r)
11550 if (ndr_flags & NDR_SCALARS) {
11551 NDR_CHECK(ndr_push_align(ndr, 5));
11552 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
11554 uint32_t _flags_save_string = ndr->flags;
11555 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11556 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
11557 ndr->flags = _flags_save_string;
11560 uint32_t _flags_save_string = ndr->flags;
11561 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11562 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
11563 ndr->flags = _flags_save_string;
11566 uint32_t _flags_save_string = ndr->flags;
11567 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11568 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
11569 ndr->flags = _flags_save_string;
11572 uint32_t _flags_save_string = ndr->flags;
11573 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11574 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
11575 ndr->flags = _flags_save_string;
11578 uint32_t _flags_save_string = ndr->flags;
11579 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11580 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
11581 ndr->flags = _flags_save_string;
11584 uint32_t _flags_save_string = ndr->flags;
11585 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11586 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
11587 ndr->flags = _flags_save_string;
11590 uint32_t _flags_save_string_array = ndr->flags;
11591 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11592 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
11593 ndr->flags = _flags_save_string_array;
11596 uint32_t _flags_save_string = ndr->flags;
11597 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11598 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
11599 ndr->flags = _flags_save_string;
11602 uint32_t _flags_save_string = ndr->flags;
11603 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11604 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
11605 ndr->flags = _flags_save_string;
11608 uint32_t _flags_save_string_array = ndr->flags;
11609 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11610 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
11611 ndr->flags = _flags_save_string_array;
11613 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
11615 if (ndr_flags & NDR_BUFFERS) {
11617 uint32_t _flags_save_string = ndr->flags;
11618 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11619 if (r->driver_name) {
11620 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
11621 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
11622 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
11624 ndr->flags = _flags_save_string;
11627 uint32_t _flags_save_string = ndr->flags;
11628 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11629 if (r->architecture) {
11630 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->architecture));
11631 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
11632 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->architecture));
11634 ndr->flags = _flags_save_string;
11637 uint32_t _flags_save_string = ndr->flags;
11638 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11639 if (r->driver_path) {
11640 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_path));
11641 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
11642 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_path));
11644 ndr->flags = _flags_save_string;
11647 uint32_t _flags_save_string = ndr->flags;
11648 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11649 if (r->data_file) {
11650 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_file));
11651 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
11652 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_file));
11654 ndr->flags = _flags_save_string;
11657 uint32_t _flags_save_string = ndr->flags;
11658 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11659 if (r->config_file) {
11660 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->config_file));
11661 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
11662 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->config_file));
11664 ndr->flags = _flags_save_string;
11667 uint32_t _flags_save_string = ndr->flags;
11668 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11669 if (r->help_file) {
11670 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->help_file));
11671 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
11672 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->help_file));
11674 ndr->flags = _flags_save_string;
11677 uint32_t _flags_save_string_array = ndr->flags;
11678 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11679 if (r->dependent_files) {
11680 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->dependent_files));
11681 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
11682 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->dependent_files));
11684 ndr->flags = _flags_save_string_array;
11687 uint32_t _flags_save_string = ndr->flags;
11688 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11689 if (r->monitor_name) {
11690 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name));
11691 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
11692 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->monitor_name));
11694 ndr->flags = _flags_save_string;
11697 uint32_t _flags_save_string = ndr->flags;
11698 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11699 if (r->default_datatype) {
11700 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->default_datatype));
11701 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
11702 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->default_datatype));
11704 ndr->flags = _flags_save_string;
11707 uint32_t _flags_save_string_array = ndr->flags;
11708 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11709 if (r->previous_names) {
11710 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->previous_names));
11711 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
11712 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->previous_names));
11714 ndr->flags = _flags_save_string_array;
11717 return NDR_ERR_SUCCESS;
11720 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo4 *r)
11722 uint32_t _ptr_driver_name;
11723 TALLOC_CTX *_mem_save_driver_name_0;
11724 uint32_t _ptr_architecture;
11725 TALLOC_CTX *_mem_save_architecture_0;
11726 uint32_t _ptr_driver_path;
11727 TALLOC_CTX *_mem_save_driver_path_0;
11728 uint32_t _ptr_data_file;
11729 TALLOC_CTX *_mem_save_data_file_0;
11730 uint32_t _ptr_config_file;
11731 TALLOC_CTX *_mem_save_config_file_0;
11732 uint32_t _ptr_help_file;
11733 TALLOC_CTX *_mem_save_help_file_0;
11734 uint32_t _ptr_dependent_files;
11735 TALLOC_CTX *_mem_save_dependent_files_0;
11736 uint32_t _ptr_monitor_name;
11737 TALLOC_CTX *_mem_save_monitor_name_0;
11738 uint32_t _ptr_default_datatype;
11739 TALLOC_CTX *_mem_save_default_datatype_0;
11740 uint32_t _ptr_previous_names;
11741 TALLOC_CTX *_mem_save_previous_names_0;
11742 if (ndr_flags & NDR_SCALARS) {
11743 NDR_CHECK(ndr_pull_align(ndr, 5));
11744 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
11746 uint32_t _flags_save_string = ndr->flags;
11747 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11748 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
11749 if (_ptr_driver_name) {
11750 NDR_PULL_ALLOC(ndr, r->driver_name);
11751 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
11753 r->driver_name = NULL;
11755 ndr->flags = _flags_save_string;
11758 uint32_t _flags_save_string = ndr->flags;
11759 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11760 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
11761 if (_ptr_architecture) {
11762 NDR_PULL_ALLOC(ndr, r->architecture);
11763 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
11765 r->architecture = NULL;
11767 ndr->flags = _flags_save_string;
11770 uint32_t _flags_save_string = ndr->flags;
11771 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11772 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
11773 if (_ptr_driver_path) {
11774 NDR_PULL_ALLOC(ndr, r->driver_path);
11775 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
11777 r->driver_path = NULL;
11779 ndr->flags = _flags_save_string;
11782 uint32_t _flags_save_string = ndr->flags;
11783 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11784 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
11785 if (_ptr_data_file) {
11786 NDR_PULL_ALLOC(ndr, r->data_file);
11787 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
11789 r->data_file = NULL;
11791 ndr->flags = _flags_save_string;
11794 uint32_t _flags_save_string = ndr->flags;
11795 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11796 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
11797 if (_ptr_config_file) {
11798 NDR_PULL_ALLOC(ndr, r->config_file);
11799 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
11801 r->config_file = NULL;
11803 ndr->flags = _flags_save_string;
11806 uint32_t _flags_save_string = ndr->flags;
11807 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11808 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
11809 if (_ptr_help_file) {
11810 NDR_PULL_ALLOC(ndr, r->help_file);
11811 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
11813 r->help_file = NULL;
11815 ndr->flags = _flags_save_string;
11818 uint32_t _flags_save_string_array = ndr->flags;
11819 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11820 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
11821 if (_ptr_dependent_files) {
11822 NDR_PULL_ALLOC(ndr, r->dependent_files);
11823 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
11825 r->dependent_files = NULL;
11827 ndr->flags = _flags_save_string_array;
11830 uint32_t _flags_save_string = ndr->flags;
11831 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11832 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
11833 if (_ptr_monitor_name) {
11834 NDR_PULL_ALLOC(ndr, r->monitor_name);
11835 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
11837 r->monitor_name = NULL;
11839 ndr->flags = _flags_save_string;
11842 uint32_t _flags_save_string = ndr->flags;
11843 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11844 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
11845 if (_ptr_default_datatype) {
11846 NDR_PULL_ALLOC(ndr, r->default_datatype);
11847 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
11849 r->default_datatype = NULL;
11851 ndr->flags = _flags_save_string;
11854 uint32_t _flags_save_string_array = ndr->flags;
11855 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11856 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
11857 if (_ptr_previous_names) {
11858 NDR_PULL_ALLOC(ndr, r->previous_names);
11859 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
11861 r->previous_names = NULL;
11863 ndr->flags = _flags_save_string_array;
11865 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
11867 if (ndr_flags & NDR_BUFFERS) {
11869 uint32_t _flags_save_string = ndr->flags;
11870 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11871 if (r->driver_name) {
11872 uint32_t _relative_save_offset;
11873 _relative_save_offset = ndr->offset;
11874 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
11875 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11876 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
11877 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
11878 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
11879 if (ndr->offset > ndr->relative_highest_offset) {
11880 ndr->relative_highest_offset = ndr->offset;
11882 ndr->offset = _relative_save_offset;
11884 ndr->flags = _flags_save_string;
11887 uint32_t _flags_save_string = ndr->flags;
11888 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11889 if (r->architecture) {
11890 uint32_t _relative_save_offset;
11891 _relative_save_offset = ndr->offset;
11892 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
11893 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
11894 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
11895 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
11896 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
11897 if (ndr->offset > ndr->relative_highest_offset) {
11898 ndr->relative_highest_offset = ndr->offset;
11900 ndr->offset = _relative_save_offset;
11902 ndr->flags = _flags_save_string;
11905 uint32_t _flags_save_string = ndr->flags;
11906 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11907 if (r->driver_path) {
11908 uint32_t _relative_save_offset;
11909 _relative_save_offset = ndr->offset;
11910 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
11911 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
11912 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
11913 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
11914 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
11915 if (ndr->offset > ndr->relative_highest_offset) {
11916 ndr->relative_highest_offset = ndr->offset;
11918 ndr->offset = _relative_save_offset;
11920 ndr->flags = _flags_save_string;
11923 uint32_t _flags_save_string = ndr->flags;
11924 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11925 if (r->data_file) {
11926 uint32_t _relative_save_offset;
11927 _relative_save_offset = ndr->offset;
11928 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
11929 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11930 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
11931 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
11932 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
11933 if (ndr->offset > ndr->relative_highest_offset) {
11934 ndr->relative_highest_offset = ndr->offset;
11936 ndr->offset = _relative_save_offset;
11938 ndr->flags = _flags_save_string;
11941 uint32_t _flags_save_string = ndr->flags;
11942 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11943 if (r->config_file) {
11944 uint32_t _relative_save_offset;
11945 _relative_save_offset = ndr->offset;
11946 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
11947 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11948 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
11949 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
11950 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
11951 if (ndr->offset > ndr->relative_highest_offset) {
11952 ndr->relative_highest_offset = ndr->offset;
11954 ndr->offset = _relative_save_offset;
11956 ndr->flags = _flags_save_string;
11959 uint32_t _flags_save_string = ndr->flags;
11960 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11961 if (r->help_file) {
11962 uint32_t _relative_save_offset;
11963 _relative_save_offset = ndr->offset;
11964 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
11965 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11966 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
11967 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
11968 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
11969 if (ndr->offset > ndr->relative_highest_offset) {
11970 ndr->relative_highest_offset = ndr->offset;
11972 ndr->offset = _relative_save_offset;
11974 ndr->flags = _flags_save_string;
11977 uint32_t _flags_save_string_array = ndr->flags;
11978 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11979 if (r->dependent_files) {
11980 uint32_t _relative_save_offset;
11981 _relative_save_offset = ndr->offset;
11982 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
11983 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
11984 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
11985 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
11986 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
11987 if (ndr->offset > ndr->relative_highest_offset) {
11988 ndr->relative_highest_offset = ndr->offset;
11990 ndr->offset = _relative_save_offset;
11992 ndr->flags = _flags_save_string_array;
11995 uint32_t _flags_save_string = ndr->flags;
11996 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11997 if (r->monitor_name) {
11998 uint32_t _relative_save_offset;
11999 _relative_save_offset = ndr->offset;
12000 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
12001 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12002 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
12003 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
12004 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
12005 if (ndr->offset > ndr->relative_highest_offset) {
12006 ndr->relative_highest_offset = ndr->offset;
12008 ndr->offset = _relative_save_offset;
12010 ndr->flags = _flags_save_string;
12013 uint32_t _flags_save_string = ndr->flags;
12014 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12015 if (r->default_datatype) {
12016 uint32_t _relative_save_offset;
12017 _relative_save_offset = ndr->offset;
12018 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
12019 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
12020 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
12021 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
12022 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
12023 if (ndr->offset > ndr->relative_highest_offset) {
12024 ndr->relative_highest_offset = ndr->offset;
12026 ndr->offset = _relative_save_offset;
12028 ndr->flags = _flags_save_string;
12031 uint32_t _flags_save_string_array = ndr->flags;
12032 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12033 if (r->previous_names) {
12034 uint32_t _relative_save_offset;
12035 _relative_save_offset = ndr->offset;
12036 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
12037 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
12038 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
12039 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
12040 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
12041 if (ndr->offset > ndr->relative_highest_offset) {
12042 ndr->relative_highest_offset = ndr->offset;
12044 ndr->offset = _relative_save_offset;
12046 ndr->flags = _flags_save_string_array;
12049 return NDR_ERR_SUCCESS;
12052 _PUBLIC_ void ndr_print_spoolss_DriverInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo4 *r)
12054 ndr_print_struct(ndr, name, "spoolss_DriverInfo4");
12056 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
12057 ndr_print_ptr(ndr, "driver_name", r->driver_name);
12059 if (r->driver_name) {
12060 ndr_print_string(ndr, "driver_name", r->driver_name);
12063 ndr_print_ptr(ndr, "architecture", r->architecture);
12065 if (r->architecture) {
12066 ndr_print_string(ndr, "architecture", r->architecture);
12069 ndr_print_ptr(ndr, "driver_path", r->driver_path);
12071 if (r->driver_path) {
12072 ndr_print_string(ndr, "driver_path", r->driver_path);
12075 ndr_print_ptr(ndr, "data_file", r->data_file);
12077 if (r->data_file) {
12078 ndr_print_string(ndr, "data_file", r->data_file);
12081 ndr_print_ptr(ndr, "config_file", r->config_file);
12083 if (r->config_file) {
12084 ndr_print_string(ndr, "config_file", r->config_file);
12087 ndr_print_ptr(ndr, "help_file", r->help_file);
12089 if (r->help_file) {
12090 ndr_print_string(ndr, "help_file", r->help_file);
12093 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
12095 if (r->dependent_files) {
12096 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
12099 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
12101 if (r->monitor_name) {
12102 ndr_print_string(ndr, "monitor_name", r->monitor_name);
12105 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
12107 if (r->default_datatype) {
12108 ndr_print_string(ndr, "default_datatype", r->default_datatype);
12111 ndr_print_ptr(ndr, "previous_names", r->previous_names);
12113 if (r->previous_names) {
12114 ndr_print_string_array(ndr, "previous_names", r->previous_names);
12120 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo4(const struct spoolss_DriverInfo4 *r, struct smb_iconv_convenience *ic, int flags)
12122 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo4, ic);
12125 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo5 *r)
12127 if (ndr_flags & NDR_SCALARS) {
12128 NDR_CHECK(ndr_push_align(ndr, 5));
12129 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
12131 uint32_t _flags_save_string = ndr->flags;
12132 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12133 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
12134 ndr->flags = _flags_save_string;
12137 uint32_t _flags_save_string = ndr->flags;
12138 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12139 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
12140 ndr->flags = _flags_save_string;
12143 uint32_t _flags_save_string = ndr->flags;
12144 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12145 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
12146 ndr->flags = _flags_save_string;
12149 uint32_t _flags_save_string = ndr->flags;
12150 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12151 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
12152 ndr->flags = _flags_save_string;
12155 uint32_t _flags_save_string = ndr->flags;
12156 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12157 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
12158 ndr->flags = _flags_save_string;
12160 NDR_CHECK(ndr_push_spoolss_DriverAttributes(ndr, NDR_SCALARS, r->driver_attributes));
12161 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->config_version));
12162 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->driver_version));
12163 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
12165 if (ndr_flags & NDR_BUFFERS) {
12167 uint32_t _flags_save_string = ndr->flags;
12168 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12169 if (r->driver_name) {
12170 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
12171 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
12172 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
12174 ndr->flags = _flags_save_string;
12177 uint32_t _flags_save_string = ndr->flags;
12178 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12179 if (r->architecture) {
12180 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->architecture));
12181 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
12182 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->architecture));
12184 ndr->flags = _flags_save_string;
12187 uint32_t _flags_save_string = ndr->flags;
12188 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12189 if (r->driver_path) {
12190 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_path));
12191 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
12192 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_path));
12194 ndr->flags = _flags_save_string;
12197 uint32_t _flags_save_string = ndr->flags;
12198 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12199 if (r->data_file) {
12200 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_file));
12201 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
12202 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_file));
12204 ndr->flags = _flags_save_string;
12207 uint32_t _flags_save_string = ndr->flags;
12208 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12209 if (r->config_file) {
12210 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->config_file));
12211 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
12212 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->config_file));
12214 ndr->flags = _flags_save_string;
12217 return NDR_ERR_SUCCESS;
12220 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo5 *r)
12222 uint32_t _ptr_driver_name;
12223 TALLOC_CTX *_mem_save_driver_name_0;
12224 uint32_t _ptr_architecture;
12225 TALLOC_CTX *_mem_save_architecture_0;
12226 uint32_t _ptr_driver_path;
12227 TALLOC_CTX *_mem_save_driver_path_0;
12228 uint32_t _ptr_data_file;
12229 TALLOC_CTX *_mem_save_data_file_0;
12230 uint32_t _ptr_config_file;
12231 TALLOC_CTX *_mem_save_config_file_0;
12232 if (ndr_flags & NDR_SCALARS) {
12233 NDR_CHECK(ndr_pull_align(ndr, 5));
12234 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
12236 uint32_t _flags_save_string = ndr->flags;
12237 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12238 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
12239 if (_ptr_driver_name) {
12240 NDR_PULL_ALLOC(ndr, r->driver_name);
12241 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
12243 r->driver_name = NULL;
12245 ndr->flags = _flags_save_string;
12248 uint32_t _flags_save_string = ndr->flags;
12249 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12250 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
12251 if (_ptr_architecture) {
12252 NDR_PULL_ALLOC(ndr, r->architecture);
12253 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
12255 r->architecture = NULL;
12257 ndr->flags = _flags_save_string;
12260 uint32_t _flags_save_string = ndr->flags;
12261 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12262 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
12263 if (_ptr_driver_path) {
12264 NDR_PULL_ALLOC(ndr, r->driver_path);
12265 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
12267 r->driver_path = NULL;
12269 ndr->flags = _flags_save_string;
12272 uint32_t _flags_save_string = ndr->flags;
12273 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12274 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
12275 if (_ptr_data_file) {
12276 NDR_PULL_ALLOC(ndr, r->data_file);
12277 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
12279 r->data_file = NULL;
12281 ndr->flags = _flags_save_string;
12284 uint32_t _flags_save_string = ndr->flags;
12285 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12286 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
12287 if (_ptr_config_file) {
12288 NDR_PULL_ALLOC(ndr, r->config_file);
12289 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
12291 r->config_file = NULL;
12293 ndr->flags = _flags_save_string;
12295 NDR_CHECK(ndr_pull_spoolss_DriverAttributes(ndr, NDR_SCALARS, &r->driver_attributes));
12296 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->config_version));
12297 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->driver_version));
12298 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
12300 if (ndr_flags & NDR_BUFFERS) {
12302 uint32_t _flags_save_string = ndr->flags;
12303 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12304 if (r->driver_name) {
12305 uint32_t _relative_save_offset;
12306 _relative_save_offset = ndr->offset;
12307 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
12308 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12309 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
12310 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
12311 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
12312 if (ndr->offset > ndr->relative_highest_offset) {
12313 ndr->relative_highest_offset = ndr->offset;
12315 ndr->offset = _relative_save_offset;
12317 ndr->flags = _flags_save_string;
12320 uint32_t _flags_save_string = ndr->flags;
12321 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12322 if (r->architecture) {
12323 uint32_t _relative_save_offset;
12324 _relative_save_offset = ndr->offset;
12325 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
12326 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
12327 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
12328 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
12329 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
12330 if (ndr->offset > ndr->relative_highest_offset) {
12331 ndr->relative_highest_offset = ndr->offset;
12333 ndr->offset = _relative_save_offset;
12335 ndr->flags = _flags_save_string;
12338 uint32_t _flags_save_string = ndr->flags;
12339 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12340 if (r->driver_path) {
12341 uint32_t _relative_save_offset;
12342 _relative_save_offset = ndr->offset;
12343 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
12344 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
12345 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
12346 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
12347 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
12348 if (ndr->offset > ndr->relative_highest_offset) {
12349 ndr->relative_highest_offset = ndr->offset;
12351 ndr->offset = _relative_save_offset;
12353 ndr->flags = _flags_save_string;
12356 uint32_t _flags_save_string = ndr->flags;
12357 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12358 if (r->data_file) {
12359 uint32_t _relative_save_offset;
12360 _relative_save_offset = ndr->offset;
12361 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
12362 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12363 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
12364 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
12365 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
12366 if (ndr->offset > ndr->relative_highest_offset) {
12367 ndr->relative_highest_offset = ndr->offset;
12369 ndr->offset = _relative_save_offset;
12371 ndr->flags = _flags_save_string;
12374 uint32_t _flags_save_string = ndr->flags;
12375 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12376 if (r->config_file) {
12377 uint32_t _relative_save_offset;
12378 _relative_save_offset = ndr->offset;
12379 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
12380 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12381 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
12382 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
12383 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
12384 if (ndr->offset > ndr->relative_highest_offset) {
12385 ndr->relative_highest_offset = ndr->offset;
12387 ndr->offset = _relative_save_offset;
12389 ndr->flags = _flags_save_string;
12392 return NDR_ERR_SUCCESS;
12395 _PUBLIC_ void ndr_print_spoolss_DriverInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo5 *r)
12397 ndr_print_struct(ndr, name, "spoolss_DriverInfo5");
12399 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
12400 ndr_print_ptr(ndr, "driver_name", r->driver_name);
12402 if (r->driver_name) {
12403 ndr_print_string(ndr, "driver_name", r->driver_name);
12406 ndr_print_ptr(ndr, "architecture", r->architecture);
12408 if (r->architecture) {
12409 ndr_print_string(ndr, "architecture", r->architecture);
12412 ndr_print_ptr(ndr, "driver_path", r->driver_path);
12414 if (r->driver_path) {
12415 ndr_print_string(ndr, "driver_path", r->driver_path);
12418 ndr_print_ptr(ndr, "data_file", r->data_file);
12420 if (r->data_file) {
12421 ndr_print_string(ndr, "data_file", r->data_file);
12424 ndr_print_ptr(ndr, "config_file", r->config_file);
12426 if (r->config_file) {
12427 ndr_print_string(ndr, "config_file", r->config_file);
12430 ndr_print_spoolss_DriverAttributes(ndr, "driver_attributes", r->driver_attributes);
12431 ndr_print_uint32(ndr, "config_version", r->config_version);
12432 ndr_print_uint32(ndr, "driver_version", r->driver_version);
12436 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo5(const struct spoolss_DriverInfo5 *r, struct smb_iconv_convenience *ic, int flags)
12438 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo5, ic);
12441 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo6 *r)
12443 if (ndr_flags & NDR_SCALARS) {
12444 NDR_CHECK(ndr_push_align(ndr, 8));
12445 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
12447 uint32_t _flags_save_string = ndr->flags;
12448 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12449 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
12450 ndr->flags = _flags_save_string;
12453 uint32_t _flags_save_string = ndr->flags;
12454 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12455 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
12456 ndr->flags = _flags_save_string;
12459 uint32_t _flags_save_string = ndr->flags;
12460 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12461 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
12462 ndr->flags = _flags_save_string;
12465 uint32_t _flags_save_string = ndr->flags;
12466 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12467 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
12468 ndr->flags = _flags_save_string;
12471 uint32_t _flags_save_string = ndr->flags;
12472 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12473 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
12474 ndr->flags = _flags_save_string;
12477 uint32_t _flags_save_string = ndr->flags;
12478 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12479 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
12480 ndr->flags = _flags_save_string;
12483 uint32_t _flags_save_string_array = ndr->flags;
12484 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12485 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
12486 ndr->flags = _flags_save_string_array;
12489 uint32_t _flags_save_string = ndr->flags;
12490 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12491 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
12492 ndr->flags = _flags_save_string;
12495 uint32_t _flags_save_string = ndr->flags;
12496 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12497 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
12498 ndr->flags = _flags_save_string;
12501 uint32_t _flags_save_string_array = ndr->flags;
12502 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12503 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
12504 ndr->flags = _flags_save_string_array;
12506 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
12507 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
12509 uint32_t _flags_save_string = ndr->flags;
12510 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12511 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_name));
12512 ndr->flags = _flags_save_string;
12515 uint32_t _flags_save_string = ndr->flags;
12516 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12517 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_url));
12518 ndr->flags = _flags_save_string;
12521 uint32_t _flags_save_string = ndr->flags;
12522 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12523 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->hardware_id));
12524 ndr->flags = _flags_save_string;
12527 uint32_t _flags_save_string = ndr->flags;
12528 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12529 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->provider));
12530 ndr->flags = _flags_save_string;
12532 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
12534 if (ndr_flags & NDR_BUFFERS) {
12536 uint32_t _flags_save_string = ndr->flags;
12537 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12538 if (r->driver_name) {
12539 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
12540 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
12541 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
12543 ndr->flags = _flags_save_string;
12546 uint32_t _flags_save_string = ndr->flags;
12547 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12548 if (r->architecture) {
12549 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->architecture));
12550 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
12551 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->architecture));
12553 ndr->flags = _flags_save_string;
12556 uint32_t _flags_save_string = ndr->flags;
12557 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12558 if (r->driver_path) {
12559 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_path));
12560 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
12561 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_path));
12563 ndr->flags = _flags_save_string;
12566 uint32_t _flags_save_string = ndr->flags;
12567 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12568 if (r->data_file) {
12569 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_file));
12570 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
12571 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_file));
12573 ndr->flags = _flags_save_string;
12576 uint32_t _flags_save_string = ndr->flags;
12577 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12578 if (r->config_file) {
12579 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->config_file));
12580 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
12581 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->config_file));
12583 ndr->flags = _flags_save_string;
12586 uint32_t _flags_save_string = ndr->flags;
12587 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12588 if (r->help_file) {
12589 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->help_file));
12590 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
12591 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->help_file));
12593 ndr->flags = _flags_save_string;
12596 uint32_t _flags_save_string_array = ndr->flags;
12597 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12598 if (r->dependent_files) {
12599 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->dependent_files));
12600 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
12601 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->dependent_files));
12603 ndr->flags = _flags_save_string_array;
12606 uint32_t _flags_save_string = ndr->flags;
12607 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12608 if (r->monitor_name) {
12609 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name));
12610 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
12611 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->monitor_name));
12613 ndr->flags = _flags_save_string;
12616 uint32_t _flags_save_string = ndr->flags;
12617 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12618 if (r->default_datatype) {
12619 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->default_datatype));
12620 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
12621 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->default_datatype));
12623 ndr->flags = _flags_save_string;
12626 uint32_t _flags_save_string_array = ndr->flags;
12627 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12628 if (r->previous_names) {
12629 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->previous_names));
12630 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
12631 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->previous_names));
12633 ndr->flags = _flags_save_string_array;
12636 uint32_t _flags_save_string = ndr->flags;
12637 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12638 if (r->manufacturer_name) {
12639 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->manufacturer_name));
12640 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_name));
12641 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->manufacturer_name));
12643 ndr->flags = _flags_save_string;
12646 uint32_t _flags_save_string = ndr->flags;
12647 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12648 if (r->manufacturer_url) {
12649 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->manufacturer_url));
12650 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_url));
12651 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->manufacturer_url));
12653 ndr->flags = _flags_save_string;
12656 uint32_t _flags_save_string = ndr->flags;
12657 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12658 if (r->hardware_id) {
12659 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->hardware_id));
12660 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->hardware_id));
12661 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->hardware_id));
12663 ndr->flags = _flags_save_string;
12666 uint32_t _flags_save_string = ndr->flags;
12667 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12669 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->provider));
12670 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->provider));
12671 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->provider));
12673 ndr->flags = _flags_save_string;
12676 return NDR_ERR_SUCCESS;
12679 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo6 *r)
12681 uint32_t _ptr_driver_name;
12682 TALLOC_CTX *_mem_save_driver_name_0;
12683 uint32_t _ptr_architecture;
12684 TALLOC_CTX *_mem_save_architecture_0;
12685 uint32_t _ptr_driver_path;
12686 TALLOC_CTX *_mem_save_driver_path_0;
12687 uint32_t _ptr_data_file;
12688 TALLOC_CTX *_mem_save_data_file_0;
12689 uint32_t _ptr_config_file;
12690 TALLOC_CTX *_mem_save_config_file_0;
12691 uint32_t _ptr_help_file;
12692 TALLOC_CTX *_mem_save_help_file_0;
12693 uint32_t _ptr_dependent_files;
12694 TALLOC_CTX *_mem_save_dependent_files_0;
12695 uint32_t _ptr_monitor_name;
12696 TALLOC_CTX *_mem_save_monitor_name_0;
12697 uint32_t _ptr_default_datatype;
12698 TALLOC_CTX *_mem_save_default_datatype_0;
12699 uint32_t _ptr_previous_names;
12700 TALLOC_CTX *_mem_save_previous_names_0;
12701 uint32_t _ptr_manufacturer_name;
12702 TALLOC_CTX *_mem_save_manufacturer_name_0;
12703 uint32_t _ptr_manufacturer_url;
12704 TALLOC_CTX *_mem_save_manufacturer_url_0;
12705 uint32_t _ptr_hardware_id;
12706 TALLOC_CTX *_mem_save_hardware_id_0;
12707 uint32_t _ptr_provider;
12708 TALLOC_CTX *_mem_save_provider_0;
12709 if (ndr_flags & NDR_SCALARS) {
12710 NDR_CHECK(ndr_pull_align(ndr, 8));
12711 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
12713 uint32_t _flags_save_string = ndr->flags;
12714 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12715 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
12716 if (_ptr_driver_name) {
12717 NDR_PULL_ALLOC(ndr, r->driver_name);
12718 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
12720 r->driver_name = NULL;
12722 ndr->flags = _flags_save_string;
12725 uint32_t _flags_save_string = ndr->flags;
12726 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12727 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
12728 if (_ptr_architecture) {
12729 NDR_PULL_ALLOC(ndr, r->architecture);
12730 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
12732 r->architecture = NULL;
12734 ndr->flags = _flags_save_string;
12737 uint32_t _flags_save_string = ndr->flags;
12738 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12739 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
12740 if (_ptr_driver_path) {
12741 NDR_PULL_ALLOC(ndr, r->driver_path);
12742 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
12744 r->driver_path = NULL;
12746 ndr->flags = _flags_save_string;
12749 uint32_t _flags_save_string = ndr->flags;
12750 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12751 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
12752 if (_ptr_data_file) {
12753 NDR_PULL_ALLOC(ndr, r->data_file);
12754 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
12756 r->data_file = NULL;
12758 ndr->flags = _flags_save_string;
12761 uint32_t _flags_save_string = ndr->flags;
12762 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12763 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
12764 if (_ptr_config_file) {
12765 NDR_PULL_ALLOC(ndr, r->config_file);
12766 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
12768 r->config_file = NULL;
12770 ndr->flags = _flags_save_string;
12773 uint32_t _flags_save_string = ndr->flags;
12774 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12775 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
12776 if (_ptr_help_file) {
12777 NDR_PULL_ALLOC(ndr, r->help_file);
12778 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
12780 r->help_file = NULL;
12782 ndr->flags = _flags_save_string;
12785 uint32_t _flags_save_string_array = ndr->flags;
12786 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12787 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
12788 if (_ptr_dependent_files) {
12789 NDR_PULL_ALLOC(ndr, r->dependent_files);
12790 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
12792 r->dependent_files = NULL;
12794 ndr->flags = _flags_save_string_array;
12797 uint32_t _flags_save_string = ndr->flags;
12798 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12799 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
12800 if (_ptr_monitor_name) {
12801 NDR_PULL_ALLOC(ndr, r->monitor_name);
12802 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
12804 r->monitor_name = NULL;
12806 ndr->flags = _flags_save_string;
12809 uint32_t _flags_save_string = ndr->flags;
12810 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12811 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
12812 if (_ptr_default_datatype) {
12813 NDR_PULL_ALLOC(ndr, r->default_datatype);
12814 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
12816 r->default_datatype = NULL;
12818 ndr->flags = _flags_save_string;
12821 uint32_t _flags_save_string_array = ndr->flags;
12822 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12823 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
12824 if (_ptr_previous_names) {
12825 NDR_PULL_ALLOC(ndr, r->previous_names);
12826 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
12828 r->previous_names = NULL;
12830 ndr->flags = _flags_save_string_array;
12832 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
12833 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
12835 uint32_t _flags_save_string = ndr->flags;
12836 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12837 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
12838 if (_ptr_manufacturer_name) {
12839 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
12840 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_name, _ptr_manufacturer_name));
12842 r->manufacturer_name = NULL;
12844 ndr->flags = _flags_save_string;
12847 uint32_t _flags_save_string = ndr->flags;
12848 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12849 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
12850 if (_ptr_manufacturer_url) {
12851 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
12852 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_url, _ptr_manufacturer_url));
12854 r->manufacturer_url = NULL;
12856 ndr->flags = _flags_save_string;
12859 uint32_t _flags_save_string = ndr->flags;
12860 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12861 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
12862 if (_ptr_hardware_id) {
12863 NDR_PULL_ALLOC(ndr, r->hardware_id);
12864 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->hardware_id, _ptr_hardware_id));
12866 r->hardware_id = NULL;
12868 ndr->flags = _flags_save_string;
12871 uint32_t _flags_save_string = ndr->flags;
12872 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12873 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
12874 if (_ptr_provider) {
12875 NDR_PULL_ALLOC(ndr, r->provider);
12876 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->provider, _ptr_provider));
12878 r->provider = NULL;
12880 ndr->flags = _flags_save_string;
12882 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
12884 if (ndr_flags & NDR_BUFFERS) {
12886 uint32_t _flags_save_string = ndr->flags;
12887 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12888 if (r->driver_name) {
12889 uint32_t _relative_save_offset;
12890 _relative_save_offset = ndr->offset;
12891 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
12892 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12893 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
12894 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
12895 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
12896 if (ndr->offset > ndr->relative_highest_offset) {
12897 ndr->relative_highest_offset = ndr->offset;
12899 ndr->offset = _relative_save_offset;
12901 ndr->flags = _flags_save_string;
12904 uint32_t _flags_save_string = ndr->flags;
12905 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12906 if (r->architecture) {
12907 uint32_t _relative_save_offset;
12908 _relative_save_offset = ndr->offset;
12909 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
12910 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
12911 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
12912 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
12913 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
12914 if (ndr->offset > ndr->relative_highest_offset) {
12915 ndr->relative_highest_offset = ndr->offset;
12917 ndr->offset = _relative_save_offset;
12919 ndr->flags = _flags_save_string;
12922 uint32_t _flags_save_string = ndr->flags;
12923 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12924 if (r->driver_path) {
12925 uint32_t _relative_save_offset;
12926 _relative_save_offset = ndr->offset;
12927 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
12928 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
12929 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
12930 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
12931 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
12932 if (ndr->offset > ndr->relative_highest_offset) {
12933 ndr->relative_highest_offset = ndr->offset;
12935 ndr->offset = _relative_save_offset;
12937 ndr->flags = _flags_save_string;
12940 uint32_t _flags_save_string = ndr->flags;
12941 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12942 if (r->data_file) {
12943 uint32_t _relative_save_offset;
12944 _relative_save_offset = ndr->offset;
12945 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
12946 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12947 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
12948 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
12949 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
12950 if (ndr->offset > ndr->relative_highest_offset) {
12951 ndr->relative_highest_offset = ndr->offset;
12953 ndr->offset = _relative_save_offset;
12955 ndr->flags = _flags_save_string;
12958 uint32_t _flags_save_string = ndr->flags;
12959 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12960 if (r->config_file) {
12961 uint32_t _relative_save_offset;
12962 _relative_save_offset = ndr->offset;
12963 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
12964 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12965 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
12966 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
12967 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
12968 if (ndr->offset > ndr->relative_highest_offset) {
12969 ndr->relative_highest_offset = ndr->offset;
12971 ndr->offset = _relative_save_offset;
12973 ndr->flags = _flags_save_string;
12976 uint32_t _flags_save_string = ndr->flags;
12977 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12978 if (r->help_file) {
12979 uint32_t _relative_save_offset;
12980 _relative_save_offset = ndr->offset;
12981 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
12982 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12983 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
12984 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
12985 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
12986 if (ndr->offset > ndr->relative_highest_offset) {
12987 ndr->relative_highest_offset = ndr->offset;
12989 ndr->offset = _relative_save_offset;
12991 ndr->flags = _flags_save_string;
12994 uint32_t _flags_save_string_array = ndr->flags;
12995 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12996 if (r->dependent_files) {
12997 uint32_t _relative_save_offset;
12998 _relative_save_offset = ndr->offset;
12999 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
13000 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
13001 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
13002 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
13003 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
13004 if (ndr->offset > ndr->relative_highest_offset) {
13005 ndr->relative_highest_offset = ndr->offset;
13007 ndr->offset = _relative_save_offset;
13009 ndr->flags = _flags_save_string_array;
13012 uint32_t _flags_save_string = ndr->flags;
13013 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13014 if (r->monitor_name) {
13015 uint32_t _relative_save_offset;
13016 _relative_save_offset = ndr->offset;
13017 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
13018 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13019 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
13020 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
13021 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
13022 if (ndr->offset > ndr->relative_highest_offset) {
13023 ndr->relative_highest_offset = ndr->offset;
13025 ndr->offset = _relative_save_offset;
13027 ndr->flags = _flags_save_string;
13030 uint32_t _flags_save_string = ndr->flags;
13031 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13032 if (r->default_datatype) {
13033 uint32_t _relative_save_offset;
13034 _relative_save_offset = ndr->offset;
13035 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
13036 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
13037 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
13038 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
13039 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
13040 if (ndr->offset > ndr->relative_highest_offset) {
13041 ndr->relative_highest_offset = ndr->offset;
13043 ndr->offset = _relative_save_offset;
13045 ndr->flags = _flags_save_string;
13048 uint32_t _flags_save_string_array = ndr->flags;
13049 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13050 if (r->previous_names) {
13051 uint32_t _relative_save_offset;
13052 _relative_save_offset = ndr->offset;
13053 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
13054 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
13055 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
13056 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
13057 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
13058 if (ndr->offset > ndr->relative_highest_offset) {
13059 ndr->relative_highest_offset = ndr->offset;
13061 ndr->offset = _relative_save_offset;
13063 ndr->flags = _flags_save_string_array;
13066 uint32_t _flags_save_string = ndr->flags;
13067 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13068 if (r->manufacturer_name) {
13069 uint32_t _relative_save_offset;
13070 _relative_save_offset = ndr->offset;
13071 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_name));
13072 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13073 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
13074 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_name));
13075 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
13076 if (ndr->offset > ndr->relative_highest_offset) {
13077 ndr->relative_highest_offset = ndr->offset;
13079 ndr->offset = _relative_save_offset;
13081 ndr->flags = _flags_save_string;
13084 uint32_t _flags_save_string = ndr->flags;
13085 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13086 if (r->manufacturer_url) {
13087 uint32_t _relative_save_offset;
13088 _relative_save_offset = ndr->offset;
13089 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_url));
13090 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
13091 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
13092 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_url));
13093 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
13094 if (ndr->offset > ndr->relative_highest_offset) {
13095 ndr->relative_highest_offset = ndr->offset;
13097 ndr->offset = _relative_save_offset;
13099 ndr->flags = _flags_save_string;
13102 uint32_t _flags_save_string = ndr->flags;
13103 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13104 if (r->hardware_id) {
13105 uint32_t _relative_save_offset;
13106 _relative_save_offset = ndr->offset;
13107 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->hardware_id));
13108 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
13109 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
13110 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->hardware_id));
13111 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
13112 if (ndr->offset > ndr->relative_highest_offset) {
13113 ndr->relative_highest_offset = ndr->offset;
13115 ndr->offset = _relative_save_offset;
13117 ndr->flags = _flags_save_string;
13120 uint32_t _flags_save_string = ndr->flags;
13121 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13123 uint32_t _relative_save_offset;
13124 _relative_save_offset = ndr->offset;
13125 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->provider));
13126 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
13127 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
13128 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->provider));
13129 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
13130 if (ndr->offset > ndr->relative_highest_offset) {
13131 ndr->relative_highest_offset = ndr->offset;
13133 ndr->offset = _relative_save_offset;
13135 ndr->flags = _flags_save_string;
13138 return NDR_ERR_SUCCESS;
13141 _PUBLIC_ void ndr_print_spoolss_DriverInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo6 *r)
13143 ndr_print_struct(ndr, name, "spoolss_DriverInfo6");
13145 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
13146 ndr_print_ptr(ndr, "driver_name", r->driver_name);
13148 if (r->driver_name) {
13149 ndr_print_string(ndr, "driver_name", r->driver_name);
13152 ndr_print_ptr(ndr, "architecture", r->architecture);
13154 if (r->architecture) {
13155 ndr_print_string(ndr, "architecture", r->architecture);
13158 ndr_print_ptr(ndr, "driver_path", r->driver_path);
13160 if (r->driver_path) {
13161 ndr_print_string(ndr, "driver_path", r->driver_path);
13164 ndr_print_ptr(ndr, "data_file", r->data_file);
13166 if (r->data_file) {
13167 ndr_print_string(ndr, "data_file", r->data_file);
13170 ndr_print_ptr(ndr, "config_file", r->config_file);
13172 if (r->config_file) {
13173 ndr_print_string(ndr, "config_file", r->config_file);
13176 ndr_print_ptr(ndr, "help_file", r->help_file);
13178 if (r->help_file) {
13179 ndr_print_string(ndr, "help_file", r->help_file);
13182 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
13184 if (r->dependent_files) {
13185 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
13188 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
13190 if (r->monitor_name) {
13191 ndr_print_string(ndr, "monitor_name", r->monitor_name);
13194 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
13196 if (r->default_datatype) {
13197 ndr_print_string(ndr, "default_datatype", r->default_datatype);
13200 ndr_print_ptr(ndr, "previous_names", r->previous_names);
13202 if (r->previous_names) {
13203 ndr_print_string_array(ndr, "previous_names", r->previous_names);
13206 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
13207 ndr_print_hyper(ndr, "driver_version", r->driver_version);
13208 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
13210 if (r->manufacturer_name) {
13211 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
13214 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
13216 if (r->manufacturer_url) {
13217 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
13220 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
13222 if (r->hardware_id) {
13223 ndr_print_string(ndr, "hardware_id", r->hardware_id);
13226 ndr_print_ptr(ndr, "provider", r->provider);
13229 ndr_print_string(ndr, "provider", r->provider);
13235 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo6(const struct spoolss_DriverInfo6 *r, struct smb_iconv_convenience *ic, int flags)
13237 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo6, ic);
13240 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo7(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo7 *r)
13242 if (ndr_flags & NDR_SCALARS) {
13243 NDR_CHECK(ndr_push_align(ndr, 5));
13244 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
13245 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
13247 uint32_t _flags_save_string = ndr->flags;
13248 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13249 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
13250 ndr->flags = _flags_save_string;
13253 uint32_t _flags_save_string = ndr->flags;
13254 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13255 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->inf_name));
13256 ndr->flags = _flags_save_string;
13259 uint32_t _flags_save_string = ndr->flags;
13260 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13261 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->install_source_root));
13262 ndr->flags = _flags_save_string;
13264 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
13266 if (ndr_flags & NDR_BUFFERS) {
13268 uint32_t _flags_save_string = ndr->flags;
13269 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13270 if (r->driver_name) {
13271 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
13272 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
13273 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
13275 ndr->flags = _flags_save_string;
13278 uint32_t _flags_save_string = ndr->flags;
13279 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13281 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->inf_name));
13282 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->inf_name));
13283 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->inf_name));
13285 ndr->flags = _flags_save_string;
13288 uint32_t _flags_save_string = ndr->flags;
13289 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13290 if (r->install_source_root) {
13291 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->install_source_root));
13292 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->install_source_root));
13293 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->install_source_root));
13295 ndr->flags = _flags_save_string;
13298 return NDR_ERR_SUCCESS;
13301 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo7(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo7 *r)
13303 uint32_t _ptr_driver_name;
13304 TALLOC_CTX *_mem_save_driver_name_0;
13305 uint32_t _ptr_inf_name;
13306 TALLOC_CTX *_mem_save_inf_name_0;
13307 uint32_t _ptr_install_source_root;
13308 TALLOC_CTX *_mem_save_install_source_root_0;
13309 if (ndr_flags & NDR_SCALARS) {
13310 NDR_CHECK(ndr_pull_align(ndr, 5));
13311 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
13312 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
13314 uint32_t _flags_save_string = ndr->flags;
13315 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13316 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
13317 if (_ptr_driver_name) {
13318 NDR_PULL_ALLOC(ndr, r->driver_name);
13319 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
13321 r->driver_name = NULL;
13323 ndr->flags = _flags_save_string;
13326 uint32_t _flags_save_string = ndr->flags;
13327 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13328 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_inf_name));
13329 if (_ptr_inf_name) {
13330 NDR_PULL_ALLOC(ndr, r->inf_name);
13331 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->inf_name, _ptr_inf_name));
13333 r->inf_name = NULL;
13335 ndr->flags = _flags_save_string;
13338 uint32_t _flags_save_string = ndr->flags;
13339 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13340 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_install_source_root));
13341 if (_ptr_install_source_root) {
13342 NDR_PULL_ALLOC(ndr, r->install_source_root);
13343 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->install_source_root, _ptr_install_source_root));
13345 r->install_source_root = NULL;
13347 ndr->flags = _flags_save_string;
13349 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
13351 if (ndr_flags & NDR_BUFFERS) {
13353 uint32_t _flags_save_string = ndr->flags;
13354 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13355 if (r->driver_name) {
13356 uint32_t _relative_save_offset;
13357 _relative_save_offset = ndr->offset;
13358 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
13359 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13360 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
13361 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
13362 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
13363 if (ndr->offset > ndr->relative_highest_offset) {
13364 ndr->relative_highest_offset = ndr->offset;
13366 ndr->offset = _relative_save_offset;
13368 ndr->flags = _flags_save_string;
13371 uint32_t _flags_save_string = ndr->flags;
13372 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13374 uint32_t _relative_save_offset;
13375 _relative_save_offset = ndr->offset;
13376 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->inf_name));
13377 _mem_save_inf_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13378 NDR_PULL_SET_MEM_CTX(ndr, r->inf_name, 0);
13379 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->inf_name));
13380 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_inf_name_0, 0);
13381 if (ndr->offset > ndr->relative_highest_offset) {
13382 ndr->relative_highest_offset = ndr->offset;
13384 ndr->offset = _relative_save_offset;
13386 ndr->flags = _flags_save_string;
13389 uint32_t _flags_save_string = ndr->flags;
13390 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13391 if (r->install_source_root) {
13392 uint32_t _relative_save_offset;
13393 _relative_save_offset = ndr->offset;
13394 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->install_source_root));
13395 _mem_save_install_source_root_0 = NDR_PULL_GET_MEM_CTX(ndr);
13396 NDR_PULL_SET_MEM_CTX(ndr, r->install_source_root, 0);
13397 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->install_source_root));
13398 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_install_source_root_0, 0);
13399 if (ndr->offset > ndr->relative_highest_offset) {
13400 ndr->relative_highest_offset = ndr->offset;
13402 ndr->offset = _relative_save_offset;
13404 ndr->flags = _flags_save_string;
13407 return NDR_ERR_SUCCESS;
13410 _PUBLIC_ void ndr_print_spoolss_DriverInfo7(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo7 *r)
13412 ndr_print_struct(ndr, name, "spoolss_DriverInfo7");
13414 ndr_print_uint32(ndr, "size", r->size);
13415 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
13416 ndr_print_ptr(ndr, "driver_name", r->driver_name);
13418 if (r->driver_name) {
13419 ndr_print_string(ndr, "driver_name", r->driver_name);
13422 ndr_print_ptr(ndr, "inf_name", r->inf_name);
13425 ndr_print_string(ndr, "inf_name", r->inf_name);
13428 ndr_print_ptr(ndr, "install_source_root", r->install_source_root);
13430 if (r->install_source_root) {
13431 ndr_print_string(ndr, "install_source_root", r->install_source_root);
13437 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo7(const struct spoolss_DriverInfo7 *r, struct smb_iconv_convenience *ic, int flags)
13439 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo7, ic);
13442 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo8(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo8 *r)
13444 if (ndr_flags & NDR_SCALARS) {
13445 NDR_CHECK(ndr_push_align(ndr, 8));
13446 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
13448 uint32_t _flags_save_string = ndr->flags;
13449 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13450 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
13451 ndr->flags = _flags_save_string;
13454 uint32_t _flags_save_string = ndr->flags;
13455 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13456 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
13457 ndr->flags = _flags_save_string;
13460 uint32_t _flags_save_string = ndr->flags;
13461 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13462 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
13463 ndr->flags = _flags_save_string;
13466 uint32_t _flags_save_string = ndr->flags;
13467 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13468 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
13469 ndr->flags = _flags_save_string;
13472 uint32_t _flags_save_string = ndr->flags;
13473 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13474 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
13475 ndr->flags = _flags_save_string;
13478 uint32_t _flags_save_string = ndr->flags;
13479 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13480 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
13481 ndr->flags = _flags_save_string;
13484 uint32_t _flags_save_string_array = ndr->flags;
13485 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13486 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
13487 ndr->flags = _flags_save_string_array;
13490 uint32_t _flags_save_string = ndr->flags;
13491 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13492 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
13493 ndr->flags = _flags_save_string;
13496 uint32_t _flags_save_string = ndr->flags;
13497 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13498 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
13499 ndr->flags = _flags_save_string;
13502 uint32_t _flags_save_string_array = ndr->flags;
13503 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13504 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
13505 ndr->flags = _flags_save_string_array;
13507 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
13508 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
13510 uint32_t _flags_save_string = ndr->flags;
13511 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13512 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_name));
13513 ndr->flags = _flags_save_string;
13516 uint32_t _flags_save_string = ndr->flags;
13517 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13518 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_url));
13519 ndr->flags = _flags_save_string;
13522 uint32_t _flags_save_string = ndr->flags;
13523 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13524 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->hardware_id));
13525 ndr->flags = _flags_save_string;
13528 uint32_t _flags_save_string = ndr->flags;
13529 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13530 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->provider));
13531 ndr->flags = _flags_save_string;
13534 uint32_t _flags_save_string = ndr->flags;
13535 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13536 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor));
13537 ndr->flags = _flags_save_string;
13540 uint32_t _flags_save_string = ndr->flags;
13541 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13542 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->vendor_setup));
13543 ndr->flags = _flags_save_string;
13546 uint32_t _flags_save_string_array = ndr->flags;
13547 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13548 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->color_profiles));
13549 ndr->flags = _flags_save_string_array;
13552 uint32_t _flags_save_string = ndr->flags;
13553 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13554 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->inf_path));
13555 ndr->flags = _flags_save_string;
13557 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->printer_driver_attributes));
13559 uint32_t _flags_save_string_array = ndr->flags;
13560 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13561 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->core_driver_dependencies));
13562 ndr->flags = _flags_save_string_array;
13564 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->min_inbox_driver_ver_date));
13565 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->min_inbox_driver_ver_version));
13566 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
13568 if (ndr_flags & NDR_BUFFERS) {
13570 uint32_t _flags_save_string = ndr->flags;
13571 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13572 if (r->driver_name) {
13573 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
13574 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
13575 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
13577 ndr->flags = _flags_save_string;
13580 uint32_t _flags_save_string = ndr->flags;
13581 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13582 if (r->architecture) {
13583 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->architecture));
13584 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
13585 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->architecture));
13587 ndr->flags = _flags_save_string;
13590 uint32_t _flags_save_string = ndr->flags;
13591 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13592 if (r->driver_path) {
13593 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_path));
13594 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
13595 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_path));
13597 ndr->flags = _flags_save_string;
13600 uint32_t _flags_save_string = ndr->flags;
13601 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13602 if (r->data_file) {
13603 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_file));
13604 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
13605 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_file));
13607 ndr->flags = _flags_save_string;
13610 uint32_t _flags_save_string = ndr->flags;
13611 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13612 if (r->config_file) {
13613 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->config_file));
13614 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
13615 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->config_file));
13617 ndr->flags = _flags_save_string;
13620 uint32_t _flags_save_string = ndr->flags;
13621 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13622 if (r->help_file) {
13623 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->help_file));
13624 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
13625 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->help_file));
13627 ndr->flags = _flags_save_string;
13630 uint32_t _flags_save_string_array = ndr->flags;
13631 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13632 if (r->dependent_files) {
13633 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->dependent_files));
13634 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
13635 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->dependent_files));
13637 ndr->flags = _flags_save_string_array;
13640 uint32_t _flags_save_string = ndr->flags;
13641 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13642 if (r->monitor_name) {
13643 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name));
13644 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
13645 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->monitor_name));
13647 ndr->flags = _flags_save_string;
13650 uint32_t _flags_save_string = ndr->flags;
13651 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13652 if (r->default_datatype) {
13653 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->default_datatype));
13654 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
13655 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->default_datatype));
13657 ndr->flags = _flags_save_string;
13660 uint32_t _flags_save_string_array = ndr->flags;
13661 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13662 if (r->previous_names) {
13663 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->previous_names));
13664 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
13665 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->previous_names));
13667 ndr->flags = _flags_save_string_array;
13670 uint32_t _flags_save_string = ndr->flags;
13671 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13672 if (r->manufacturer_name) {
13673 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->manufacturer_name));
13674 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_name));
13675 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->manufacturer_name));
13677 ndr->flags = _flags_save_string;
13680 uint32_t _flags_save_string = ndr->flags;
13681 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13682 if (r->manufacturer_url) {
13683 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->manufacturer_url));
13684 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_url));
13685 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->manufacturer_url));
13687 ndr->flags = _flags_save_string;
13690 uint32_t _flags_save_string = ndr->flags;
13691 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13692 if (r->hardware_id) {
13693 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->hardware_id));
13694 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->hardware_id));
13695 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->hardware_id));
13697 ndr->flags = _flags_save_string;
13700 uint32_t _flags_save_string = ndr->flags;
13701 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13703 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->provider));
13704 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->provider));
13705 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->provider));
13707 ndr->flags = _flags_save_string;
13710 uint32_t _flags_save_string = ndr->flags;
13711 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13712 if (r->print_processor) {
13713 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->print_processor));
13714 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor));
13715 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->print_processor));
13717 ndr->flags = _flags_save_string;
13720 uint32_t _flags_save_string = ndr->flags;
13721 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13722 if (r->vendor_setup) {
13723 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->vendor_setup));
13724 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->vendor_setup));
13725 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->vendor_setup));
13727 ndr->flags = _flags_save_string;
13730 uint32_t _flags_save_string_array = ndr->flags;
13731 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13732 if (r->color_profiles) {
13733 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->color_profiles));
13734 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->color_profiles));
13735 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->color_profiles));
13737 ndr->flags = _flags_save_string_array;
13740 uint32_t _flags_save_string = ndr->flags;
13741 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13743 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->inf_path));
13744 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->inf_path));
13745 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->inf_path));
13747 ndr->flags = _flags_save_string;
13750 uint32_t _flags_save_string_array = ndr->flags;
13751 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13752 if (r->core_driver_dependencies) {
13753 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->core_driver_dependencies));
13754 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->core_driver_dependencies));
13755 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->core_driver_dependencies));
13757 ndr->flags = _flags_save_string_array;
13760 return NDR_ERR_SUCCESS;
13763 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo8(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo8 *r)
13765 uint32_t _ptr_driver_name;
13766 TALLOC_CTX *_mem_save_driver_name_0;
13767 uint32_t _ptr_architecture;
13768 TALLOC_CTX *_mem_save_architecture_0;
13769 uint32_t _ptr_driver_path;
13770 TALLOC_CTX *_mem_save_driver_path_0;
13771 uint32_t _ptr_data_file;
13772 TALLOC_CTX *_mem_save_data_file_0;
13773 uint32_t _ptr_config_file;
13774 TALLOC_CTX *_mem_save_config_file_0;
13775 uint32_t _ptr_help_file;
13776 TALLOC_CTX *_mem_save_help_file_0;
13777 uint32_t _ptr_dependent_files;
13778 TALLOC_CTX *_mem_save_dependent_files_0;
13779 uint32_t _ptr_monitor_name;
13780 TALLOC_CTX *_mem_save_monitor_name_0;
13781 uint32_t _ptr_default_datatype;
13782 TALLOC_CTX *_mem_save_default_datatype_0;
13783 uint32_t _ptr_previous_names;
13784 TALLOC_CTX *_mem_save_previous_names_0;
13785 uint32_t _ptr_manufacturer_name;
13786 TALLOC_CTX *_mem_save_manufacturer_name_0;
13787 uint32_t _ptr_manufacturer_url;
13788 TALLOC_CTX *_mem_save_manufacturer_url_0;
13789 uint32_t _ptr_hardware_id;
13790 TALLOC_CTX *_mem_save_hardware_id_0;
13791 uint32_t _ptr_provider;
13792 TALLOC_CTX *_mem_save_provider_0;
13793 uint32_t _ptr_print_processor;
13794 TALLOC_CTX *_mem_save_print_processor_0;
13795 uint32_t _ptr_vendor_setup;
13796 TALLOC_CTX *_mem_save_vendor_setup_0;
13797 uint32_t _ptr_color_profiles;
13798 TALLOC_CTX *_mem_save_color_profiles_0;
13799 uint32_t _ptr_inf_path;
13800 TALLOC_CTX *_mem_save_inf_path_0;
13801 uint32_t _ptr_core_driver_dependencies;
13802 TALLOC_CTX *_mem_save_core_driver_dependencies_0;
13803 if (ndr_flags & NDR_SCALARS) {
13804 NDR_CHECK(ndr_pull_align(ndr, 8));
13805 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
13807 uint32_t _flags_save_string = ndr->flags;
13808 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13809 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
13810 if (_ptr_driver_name) {
13811 NDR_PULL_ALLOC(ndr, r->driver_name);
13812 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
13814 r->driver_name = NULL;
13816 ndr->flags = _flags_save_string;
13819 uint32_t _flags_save_string = ndr->flags;
13820 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13821 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
13822 if (_ptr_architecture) {
13823 NDR_PULL_ALLOC(ndr, r->architecture);
13824 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
13826 r->architecture = NULL;
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 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
13834 if (_ptr_driver_path) {
13835 NDR_PULL_ALLOC(ndr, r->driver_path);
13836 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
13838 r->driver_path = NULL;
13840 ndr->flags = _flags_save_string;
13843 uint32_t _flags_save_string = ndr->flags;
13844 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13845 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
13846 if (_ptr_data_file) {
13847 NDR_PULL_ALLOC(ndr, r->data_file);
13848 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
13850 r->data_file = NULL;
13852 ndr->flags = _flags_save_string;
13855 uint32_t _flags_save_string = ndr->flags;
13856 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13857 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
13858 if (_ptr_config_file) {
13859 NDR_PULL_ALLOC(ndr, r->config_file);
13860 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
13862 r->config_file = NULL;
13864 ndr->flags = _flags_save_string;
13867 uint32_t _flags_save_string = ndr->flags;
13868 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13869 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
13870 if (_ptr_help_file) {
13871 NDR_PULL_ALLOC(ndr, r->help_file);
13872 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
13874 r->help_file = NULL;
13876 ndr->flags = _flags_save_string;
13879 uint32_t _flags_save_string_array = ndr->flags;
13880 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13881 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
13882 if (_ptr_dependent_files) {
13883 NDR_PULL_ALLOC(ndr, r->dependent_files);
13884 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
13886 r->dependent_files = NULL;
13888 ndr->flags = _flags_save_string_array;
13891 uint32_t _flags_save_string = ndr->flags;
13892 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13893 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
13894 if (_ptr_monitor_name) {
13895 NDR_PULL_ALLOC(ndr, r->monitor_name);
13896 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
13898 r->monitor_name = NULL;
13900 ndr->flags = _flags_save_string;
13903 uint32_t _flags_save_string = ndr->flags;
13904 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13905 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
13906 if (_ptr_default_datatype) {
13907 NDR_PULL_ALLOC(ndr, r->default_datatype);
13908 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
13910 r->default_datatype = NULL;
13912 ndr->flags = _flags_save_string;
13915 uint32_t _flags_save_string_array = ndr->flags;
13916 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13917 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
13918 if (_ptr_previous_names) {
13919 NDR_PULL_ALLOC(ndr, r->previous_names);
13920 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
13922 r->previous_names = NULL;
13924 ndr->flags = _flags_save_string_array;
13926 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
13927 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
13929 uint32_t _flags_save_string = ndr->flags;
13930 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13931 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
13932 if (_ptr_manufacturer_name) {
13933 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
13934 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_name, _ptr_manufacturer_name));
13936 r->manufacturer_name = NULL;
13938 ndr->flags = _flags_save_string;
13941 uint32_t _flags_save_string = ndr->flags;
13942 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13943 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
13944 if (_ptr_manufacturer_url) {
13945 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
13946 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_url, _ptr_manufacturer_url));
13948 r->manufacturer_url = NULL;
13950 ndr->flags = _flags_save_string;
13953 uint32_t _flags_save_string = ndr->flags;
13954 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13955 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
13956 if (_ptr_hardware_id) {
13957 NDR_PULL_ALLOC(ndr, r->hardware_id);
13958 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->hardware_id, _ptr_hardware_id));
13960 r->hardware_id = NULL;
13962 ndr->flags = _flags_save_string;
13965 uint32_t _flags_save_string = ndr->flags;
13966 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13967 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
13968 if (_ptr_provider) {
13969 NDR_PULL_ALLOC(ndr, r->provider);
13970 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->provider, _ptr_provider));
13972 r->provider = NULL;
13974 ndr->flags = _flags_save_string;
13977 uint32_t _flags_save_string = ndr->flags;
13978 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13979 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
13980 if (_ptr_print_processor) {
13981 NDR_PULL_ALLOC(ndr, r->print_processor);
13982 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor, _ptr_print_processor));
13984 r->print_processor = NULL;
13986 ndr->flags = _flags_save_string;
13989 uint32_t _flags_save_string = ndr->flags;
13990 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13991 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_vendor_setup));
13992 if (_ptr_vendor_setup) {
13993 NDR_PULL_ALLOC(ndr, r->vendor_setup);
13994 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->vendor_setup, _ptr_vendor_setup));
13996 r->vendor_setup = NULL;
13998 ndr->flags = _flags_save_string;
14001 uint32_t _flags_save_string_array = ndr->flags;
14002 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14003 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_color_profiles));
14004 if (_ptr_color_profiles) {
14005 NDR_PULL_ALLOC(ndr, r->color_profiles);
14006 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->color_profiles, _ptr_color_profiles));
14008 r->color_profiles = NULL;
14010 ndr->flags = _flags_save_string_array;
14013 uint32_t _flags_save_string = ndr->flags;
14014 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14015 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_inf_path));
14016 if (_ptr_inf_path) {
14017 NDR_PULL_ALLOC(ndr, r->inf_path);
14018 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->inf_path, _ptr_inf_path));
14020 r->inf_path = NULL;
14022 ndr->flags = _flags_save_string;
14024 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->printer_driver_attributes));
14026 uint32_t _flags_save_string_array = ndr->flags;
14027 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14028 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_core_driver_dependencies));
14029 if (_ptr_core_driver_dependencies) {
14030 NDR_PULL_ALLOC(ndr, r->core_driver_dependencies);
14031 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->core_driver_dependencies, _ptr_core_driver_dependencies));
14033 r->core_driver_dependencies = NULL;
14035 ndr->flags = _flags_save_string_array;
14037 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_date));
14038 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_version));
14039 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
14041 if (ndr_flags & NDR_BUFFERS) {
14043 uint32_t _flags_save_string = ndr->flags;
14044 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14045 if (r->driver_name) {
14046 uint32_t _relative_save_offset;
14047 _relative_save_offset = ndr->offset;
14048 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
14049 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14050 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
14051 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
14052 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
14053 if (ndr->offset > ndr->relative_highest_offset) {
14054 ndr->relative_highest_offset = ndr->offset;
14056 ndr->offset = _relative_save_offset;
14058 ndr->flags = _flags_save_string;
14061 uint32_t _flags_save_string = ndr->flags;
14062 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14063 if (r->architecture) {
14064 uint32_t _relative_save_offset;
14065 _relative_save_offset = ndr->offset;
14066 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
14067 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
14068 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
14069 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
14070 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
14071 if (ndr->offset > ndr->relative_highest_offset) {
14072 ndr->relative_highest_offset = ndr->offset;
14074 ndr->offset = _relative_save_offset;
14076 ndr->flags = _flags_save_string;
14079 uint32_t _flags_save_string = ndr->flags;
14080 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14081 if (r->driver_path) {
14082 uint32_t _relative_save_offset;
14083 _relative_save_offset = ndr->offset;
14084 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
14085 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
14086 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
14087 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
14088 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
14089 if (ndr->offset > ndr->relative_highest_offset) {
14090 ndr->relative_highest_offset = ndr->offset;
14092 ndr->offset = _relative_save_offset;
14094 ndr->flags = _flags_save_string;
14097 uint32_t _flags_save_string = ndr->flags;
14098 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14099 if (r->data_file) {
14100 uint32_t _relative_save_offset;
14101 _relative_save_offset = ndr->offset;
14102 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
14103 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
14104 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
14105 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
14106 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
14107 if (ndr->offset > ndr->relative_highest_offset) {
14108 ndr->relative_highest_offset = ndr->offset;
14110 ndr->offset = _relative_save_offset;
14112 ndr->flags = _flags_save_string;
14115 uint32_t _flags_save_string = ndr->flags;
14116 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14117 if (r->config_file) {
14118 uint32_t _relative_save_offset;
14119 _relative_save_offset = ndr->offset;
14120 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
14121 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
14122 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
14123 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
14124 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
14125 if (ndr->offset > ndr->relative_highest_offset) {
14126 ndr->relative_highest_offset = ndr->offset;
14128 ndr->offset = _relative_save_offset;
14130 ndr->flags = _flags_save_string;
14133 uint32_t _flags_save_string = ndr->flags;
14134 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14135 if (r->help_file) {
14136 uint32_t _relative_save_offset;
14137 _relative_save_offset = ndr->offset;
14138 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
14139 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
14140 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
14141 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
14142 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
14143 if (ndr->offset > ndr->relative_highest_offset) {
14144 ndr->relative_highest_offset = ndr->offset;
14146 ndr->offset = _relative_save_offset;
14148 ndr->flags = _flags_save_string;
14151 uint32_t _flags_save_string_array = ndr->flags;
14152 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14153 if (r->dependent_files) {
14154 uint32_t _relative_save_offset;
14155 _relative_save_offset = ndr->offset;
14156 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
14157 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
14158 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
14159 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
14160 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
14161 if (ndr->offset > ndr->relative_highest_offset) {
14162 ndr->relative_highest_offset = ndr->offset;
14164 ndr->offset = _relative_save_offset;
14166 ndr->flags = _flags_save_string_array;
14169 uint32_t _flags_save_string = ndr->flags;
14170 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14171 if (r->monitor_name) {
14172 uint32_t _relative_save_offset;
14173 _relative_save_offset = ndr->offset;
14174 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
14175 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14176 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
14177 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
14178 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
14179 if (ndr->offset > ndr->relative_highest_offset) {
14180 ndr->relative_highest_offset = ndr->offset;
14182 ndr->offset = _relative_save_offset;
14184 ndr->flags = _flags_save_string;
14187 uint32_t _flags_save_string = ndr->flags;
14188 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14189 if (r->default_datatype) {
14190 uint32_t _relative_save_offset;
14191 _relative_save_offset = ndr->offset;
14192 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
14193 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
14194 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
14195 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
14196 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
14197 if (ndr->offset > ndr->relative_highest_offset) {
14198 ndr->relative_highest_offset = ndr->offset;
14200 ndr->offset = _relative_save_offset;
14202 ndr->flags = _flags_save_string;
14205 uint32_t _flags_save_string_array = ndr->flags;
14206 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14207 if (r->previous_names) {
14208 uint32_t _relative_save_offset;
14209 _relative_save_offset = ndr->offset;
14210 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
14211 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
14212 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
14213 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
14214 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
14215 if (ndr->offset > ndr->relative_highest_offset) {
14216 ndr->relative_highest_offset = ndr->offset;
14218 ndr->offset = _relative_save_offset;
14220 ndr->flags = _flags_save_string_array;
14223 uint32_t _flags_save_string = ndr->flags;
14224 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14225 if (r->manufacturer_name) {
14226 uint32_t _relative_save_offset;
14227 _relative_save_offset = ndr->offset;
14228 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_name));
14229 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14230 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
14231 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_name));
14232 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
14233 if (ndr->offset > ndr->relative_highest_offset) {
14234 ndr->relative_highest_offset = ndr->offset;
14236 ndr->offset = _relative_save_offset;
14238 ndr->flags = _flags_save_string;
14241 uint32_t _flags_save_string = ndr->flags;
14242 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14243 if (r->manufacturer_url) {
14244 uint32_t _relative_save_offset;
14245 _relative_save_offset = ndr->offset;
14246 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_url));
14247 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
14248 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
14249 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_url));
14250 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
14251 if (ndr->offset > ndr->relative_highest_offset) {
14252 ndr->relative_highest_offset = ndr->offset;
14254 ndr->offset = _relative_save_offset;
14256 ndr->flags = _flags_save_string;
14259 uint32_t _flags_save_string = ndr->flags;
14260 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14261 if (r->hardware_id) {
14262 uint32_t _relative_save_offset;
14263 _relative_save_offset = ndr->offset;
14264 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->hardware_id));
14265 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
14266 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
14267 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->hardware_id));
14268 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
14269 if (ndr->offset > ndr->relative_highest_offset) {
14270 ndr->relative_highest_offset = ndr->offset;
14272 ndr->offset = _relative_save_offset;
14274 ndr->flags = _flags_save_string;
14277 uint32_t _flags_save_string = ndr->flags;
14278 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14280 uint32_t _relative_save_offset;
14281 _relative_save_offset = ndr->offset;
14282 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->provider));
14283 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
14284 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
14285 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->provider));
14286 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
14287 if (ndr->offset > ndr->relative_highest_offset) {
14288 ndr->relative_highest_offset = ndr->offset;
14290 ndr->offset = _relative_save_offset;
14292 ndr->flags = _flags_save_string;
14295 uint32_t _flags_save_string = ndr->flags;
14296 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14297 if (r->print_processor) {
14298 uint32_t _relative_save_offset;
14299 _relative_save_offset = ndr->offset;
14300 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor));
14301 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
14302 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
14303 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor));
14304 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
14305 if (ndr->offset > ndr->relative_highest_offset) {
14306 ndr->relative_highest_offset = ndr->offset;
14308 ndr->offset = _relative_save_offset;
14310 ndr->flags = _flags_save_string;
14313 uint32_t _flags_save_string = ndr->flags;
14314 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14315 if (r->vendor_setup) {
14316 uint32_t _relative_save_offset;
14317 _relative_save_offset = ndr->offset;
14318 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->vendor_setup));
14319 _mem_save_vendor_setup_0 = NDR_PULL_GET_MEM_CTX(ndr);
14320 NDR_PULL_SET_MEM_CTX(ndr, r->vendor_setup, 0);
14321 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->vendor_setup));
14322 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vendor_setup_0, 0);
14323 if (ndr->offset > ndr->relative_highest_offset) {
14324 ndr->relative_highest_offset = ndr->offset;
14326 ndr->offset = _relative_save_offset;
14328 ndr->flags = _flags_save_string;
14331 uint32_t _flags_save_string_array = ndr->flags;
14332 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14333 if (r->color_profiles) {
14334 uint32_t _relative_save_offset;
14335 _relative_save_offset = ndr->offset;
14336 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->color_profiles));
14337 _mem_save_color_profiles_0 = NDR_PULL_GET_MEM_CTX(ndr);
14338 NDR_PULL_SET_MEM_CTX(ndr, r->color_profiles, 0);
14339 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->color_profiles));
14340 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_color_profiles_0, 0);
14341 if (ndr->offset > ndr->relative_highest_offset) {
14342 ndr->relative_highest_offset = ndr->offset;
14344 ndr->offset = _relative_save_offset;
14346 ndr->flags = _flags_save_string_array;
14349 uint32_t _flags_save_string = ndr->flags;
14350 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14352 uint32_t _relative_save_offset;
14353 _relative_save_offset = ndr->offset;
14354 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->inf_path));
14355 _mem_save_inf_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
14356 NDR_PULL_SET_MEM_CTX(ndr, r->inf_path, 0);
14357 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->inf_path));
14358 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_inf_path_0, 0);
14359 if (ndr->offset > ndr->relative_highest_offset) {
14360 ndr->relative_highest_offset = ndr->offset;
14362 ndr->offset = _relative_save_offset;
14364 ndr->flags = _flags_save_string;
14367 uint32_t _flags_save_string_array = ndr->flags;
14368 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14369 if (r->core_driver_dependencies) {
14370 uint32_t _relative_save_offset;
14371 _relative_save_offset = ndr->offset;
14372 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->core_driver_dependencies));
14373 _mem_save_core_driver_dependencies_0 = NDR_PULL_GET_MEM_CTX(ndr);
14374 NDR_PULL_SET_MEM_CTX(ndr, r->core_driver_dependencies, 0);
14375 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->core_driver_dependencies));
14376 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_driver_dependencies_0, 0);
14377 if (ndr->offset > ndr->relative_highest_offset) {
14378 ndr->relative_highest_offset = ndr->offset;
14380 ndr->offset = _relative_save_offset;
14382 ndr->flags = _flags_save_string_array;
14385 return NDR_ERR_SUCCESS;
14388 _PUBLIC_ void ndr_print_spoolss_DriverInfo8(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo8 *r)
14390 ndr_print_struct(ndr, name, "spoolss_DriverInfo8");
14392 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
14393 ndr_print_ptr(ndr, "driver_name", r->driver_name);
14395 if (r->driver_name) {
14396 ndr_print_string(ndr, "driver_name", r->driver_name);
14399 ndr_print_ptr(ndr, "architecture", r->architecture);
14401 if (r->architecture) {
14402 ndr_print_string(ndr, "architecture", r->architecture);
14405 ndr_print_ptr(ndr, "driver_path", r->driver_path);
14407 if (r->driver_path) {
14408 ndr_print_string(ndr, "driver_path", r->driver_path);
14411 ndr_print_ptr(ndr, "data_file", r->data_file);
14413 if (r->data_file) {
14414 ndr_print_string(ndr, "data_file", r->data_file);
14417 ndr_print_ptr(ndr, "config_file", r->config_file);
14419 if (r->config_file) {
14420 ndr_print_string(ndr, "config_file", r->config_file);
14423 ndr_print_ptr(ndr, "help_file", r->help_file);
14425 if (r->help_file) {
14426 ndr_print_string(ndr, "help_file", r->help_file);
14429 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
14431 if (r->dependent_files) {
14432 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
14435 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
14437 if (r->monitor_name) {
14438 ndr_print_string(ndr, "monitor_name", r->monitor_name);
14441 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
14443 if (r->default_datatype) {
14444 ndr_print_string(ndr, "default_datatype", r->default_datatype);
14447 ndr_print_ptr(ndr, "previous_names", r->previous_names);
14449 if (r->previous_names) {
14450 ndr_print_string_array(ndr, "previous_names", r->previous_names);
14453 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
14454 ndr_print_hyper(ndr, "driver_version", r->driver_version);
14455 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
14457 if (r->manufacturer_name) {
14458 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
14461 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
14463 if (r->manufacturer_url) {
14464 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
14467 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
14469 if (r->hardware_id) {
14470 ndr_print_string(ndr, "hardware_id", r->hardware_id);
14473 ndr_print_ptr(ndr, "provider", r->provider);
14476 ndr_print_string(ndr, "provider", r->provider);
14479 ndr_print_ptr(ndr, "print_processor", r->print_processor);
14481 if (r->print_processor) {
14482 ndr_print_string(ndr, "print_processor", r->print_processor);
14485 ndr_print_ptr(ndr, "vendor_setup", r->vendor_setup);
14487 if (r->vendor_setup) {
14488 ndr_print_string(ndr, "vendor_setup", r->vendor_setup);
14491 ndr_print_ptr(ndr, "color_profiles", r->color_profiles);
14493 if (r->color_profiles) {
14494 ndr_print_string_array(ndr, "color_profiles", r->color_profiles);
14497 ndr_print_ptr(ndr, "inf_path", r->inf_path);
14500 ndr_print_string(ndr, "inf_path", r->inf_path);
14503 ndr_print_uint32(ndr, "printer_driver_attributes", r->printer_driver_attributes);
14504 ndr_print_ptr(ndr, "core_driver_dependencies", r->core_driver_dependencies);
14506 if (r->core_driver_dependencies) {
14507 ndr_print_string_array(ndr, "core_driver_dependencies", r->core_driver_dependencies);
14510 ndr_print_NTTIME(ndr, "min_inbox_driver_ver_date", r->min_inbox_driver_ver_date);
14511 ndr_print_hyper(ndr, "min_inbox_driver_ver_version", r->min_inbox_driver_ver_version);
14515 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo8(const struct spoolss_DriverInfo8 *r, struct smb_iconv_convenience *ic, int flags)
14517 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo8, ic);
14520 static enum ndr_err_code ndr_push_spoolss_DriverFileType(struct ndr_push *ndr, int ndr_flags, enum spoolss_DriverFileType r)
14522 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
14523 return NDR_ERR_SUCCESS;
14526 static enum ndr_err_code ndr_pull_spoolss_DriverFileType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DriverFileType *r)
14529 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
14531 return NDR_ERR_SUCCESS;
14534 _PUBLIC_ void ndr_print_spoolss_DriverFileType(struct ndr_print *ndr, const char *name, enum spoolss_DriverFileType r)
14536 const char *val = NULL;
14539 case SPOOLSS_DRIVER_FILE_TYPE_RENDERING: val = "SPOOLSS_DRIVER_FILE_TYPE_RENDERING"; break;
14540 case SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION: val = "SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION"; break;
14541 case SPOOLSS_DRIVER_FILE_TYPE_DATA: val = "SPOOLSS_DRIVER_FILE_TYPE_DATA"; break;
14542 case SPOOLSS_DRIVER_FILE_TYPE_HELP: val = "SPOOLSS_DRIVER_FILE_TYPE_HELP"; break;
14543 case SPOOLSS_DRIVER_FILE_TYPE_OTHER: val = "SPOOLSS_DRIVER_FILE_TYPE_OTHER"; break;
14545 ndr_print_enum(ndr, name, "ENUM", val, r);
14548 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverFileInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverFileInfo *r)
14550 if (ndr_flags & NDR_SCALARS) {
14551 NDR_CHECK(ndr_push_align(ndr, 5));
14553 uint32_t _flags_save_string = ndr->flags;
14554 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14555 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->file_name));
14556 ndr->flags = _flags_save_string;
14558 NDR_CHECK(ndr_push_spoolss_DriverFileType(ndr, NDR_SCALARS, r->file_type));
14559 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->file_version));
14560 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
14562 if (ndr_flags & NDR_BUFFERS) {
14564 uint32_t _flags_save_string = ndr->flags;
14565 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14566 if (r->file_name) {
14567 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->file_name));
14568 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->file_name));
14569 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->file_name));
14571 ndr->flags = _flags_save_string;
14574 return NDR_ERR_SUCCESS;
14577 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverFileInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverFileInfo *r)
14579 uint32_t _ptr_file_name;
14580 TALLOC_CTX *_mem_save_file_name_0;
14581 if (ndr_flags & NDR_SCALARS) {
14582 NDR_CHECK(ndr_pull_align(ndr, 5));
14584 uint32_t _flags_save_string = ndr->flags;
14585 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14586 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_file_name));
14587 if (_ptr_file_name) {
14588 NDR_PULL_ALLOC(ndr, r->file_name);
14589 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->file_name, _ptr_file_name));
14591 r->file_name = NULL;
14593 ndr->flags = _flags_save_string;
14595 NDR_CHECK(ndr_pull_spoolss_DriverFileType(ndr, NDR_SCALARS, &r->file_type));
14596 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->file_version));
14597 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
14599 if (ndr_flags & NDR_BUFFERS) {
14601 uint32_t _flags_save_string = ndr->flags;
14602 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14603 if (r->file_name) {
14604 uint32_t _relative_save_offset;
14605 _relative_save_offset = ndr->offset;
14606 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->file_name));
14607 _mem_save_file_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14608 NDR_PULL_SET_MEM_CTX(ndr, r->file_name, 0);
14609 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->file_name));
14610 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_file_name_0, 0);
14611 if (ndr->offset > ndr->relative_highest_offset) {
14612 ndr->relative_highest_offset = ndr->offset;
14614 ndr->offset = _relative_save_offset;
14616 ndr->flags = _flags_save_string;
14619 return NDR_ERR_SUCCESS;
14622 _PUBLIC_ void ndr_print_spoolss_DriverFileInfo(struct ndr_print *ndr, const char *name, const struct spoolss_DriverFileInfo *r)
14624 ndr_print_struct(ndr, name, "spoolss_DriverFileInfo");
14626 ndr_print_ptr(ndr, "file_name", r->file_name);
14628 if (r->file_name) {
14629 ndr_print_string(ndr, "file_name", r->file_name);
14632 ndr_print_spoolss_DriverFileType(ndr, "file_type", r->file_type);
14633 ndr_print_uint32(ndr, "file_version", r->file_version);
14637 _PUBLIC_ void ndr_print_spoolss_DriverInfo101(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo101 *r)
14639 uint32_t cntr_file_info_1;
14640 ndr_print_struct(ndr, name, "spoolss_DriverInfo101");
14642 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
14643 ndr_print_ptr(ndr, "driver_name", r->driver_name);
14645 if (r->driver_name) {
14646 ndr_print_string(ndr, "driver_name", r->driver_name);
14649 ndr_print_ptr(ndr, "architecture", r->architecture);
14651 if (r->architecture) {
14652 ndr_print_string(ndr, "architecture", r->architecture);
14655 ndr_print_ptr(ndr, "file_info", r->file_info);
14657 if (r->file_info) {
14658 ndr->print(ndr, "%s: ARRAY(%d)", "file_info", (int)r->file_count);
14660 for (cntr_file_info_1=0;cntr_file_info_1<r->file_count;cntr_file_info_1++) {
14662 if (asprintf(&idx_1, "[%d]", cntr_file_info_1) != -1) {
14663 ndr_print_spoolss_DriverFileInfo(ndr, "file_info", &r->file_info[cntr_file_info_1]);
14670 ndr_print_uint32(ndr, "file_count", r->file_count);
14671 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
14673 if (r->monitor_name) {
14674 ndr_print_string(ndr, "monitor_name", r->monitor_name);
14677 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
14679 if (r->default_datatype) {
14680 ndr_print_string(ndr, "default_datatype", r->default_datatype);
14683 ndr_print_ptr(ndr, "previous_names", r->previous_names);
14685 if (r->previous_names) {
14686 ndr_print_string_array(ndr, "previous_names", r->previous_names);
14689 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
14690 ndr_print_hyper(ndr, "driver_version", r->driver_version);
14691 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
14693 if (r->manufacturer_name) {
14694 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
14697 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
14699 if (r->manufacturer_url) {
14700 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
14703 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
14705 if (r->hardware_id) {
14706 ndr_print_string(ndr, "hardware_id", r->hardware_id);
14709 ndr_print_ptr(ndr, "provider", r->provider);
14712 ndr_print_string(ndr, "provider", r->provider);
14718 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo101(const struct spoolss_DriverInfo101 *r, struct smb_iconv_convenience *ic, int flags)
14720 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo101, ic);
14723 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DriverInfo *r)
14725 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
14727 uint32_t _flags_save_UNION = ndr->flags;
14728 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
14729 if (ndr_flags & NDR_SCALARS) {
14730 int level = ndr_push_get_switch_value(ndr, r);
14731 NDR_CHECK(ndr_push_union_align(ndr, 8));
14734 NDR_CHECK(ndr_push_align(ndr, 5));
14735 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14736 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr, NDR_SCALARS, &r->info1));
14740 NDR_CHECK(ndr_push_align(ndr, 5));
14741 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14742 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr, NDR_SCALARS, &r->info2));
14746 NDR_CHECK(ndr_push_align(ndr, 5));
14747 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14748 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr, NDR_SCALARS, &r->info3));
14752 NDR_CHECK(ndr_push_align(ndr, 5));
14753 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14754 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr, NDR_SCALARS, &r->info4));
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_DriverInfo5(ndr, NDR_SCALARS, &r->info5));
14764 NDR_CHECK(ndr_push_align(ndr, 8));
14765 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14766 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr, NDR_SCALARS, &r->info6));
14770 NDR_CHECK(ndr_push_align(ndr, 5));
14771 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14772 NDR_CHECK(ndr_push_spoolss_DriverInfo7(ndr, NDR_SCALARS, &r->info7));
14776 NDR_CHECK(ndr_push_align(ndr, 8));
14777 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14778 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr, NDR_SCALARS, &r->info8));
14782 NDR_CHECK(ndr_push_align(ndr, 8));
14783 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14784 NDR_CHECK(ndr_push_spoolss_DriverInfo101(ndr, NDR_SCALARS, &r->info101));
14792 if (ndr_flags & NDR_BUFFERS) {
14793 int level = ndr_push_get_switch_value(ndr, r);
14794 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
14797 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr, NDR_BUFFERS, &r->info1));
14801 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr, NDR_BUFFERS, &r->info2));
14805 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr, NDR_BUFFERS, &r->info3));
14809 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr, NDR_BUFFERS, &r->info4));
14813 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr, NDR_BUFFERS, &r->info5));
14817 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr, NDR_BUFFERS, &r->info6));
14821 NDR_CHECK(ndr_push_spoolss_DriverInfo7(ndr, NDR_BUFFERS, &r->info7));
14825 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr, NDR_BUFFERS, &r->info8));
14829 NDR_CHECK(ndr_push_spoolss_DriverInfo101(ndr, NDR_BUFFERS, &r->info101));
14837 ndr->flags = _flags_save_UNION;
14839 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
14840 return NDR_ERR_SUCCESS;
14843 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DriverInfo *r)
14845 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
14848 uint32_t _flags_save_UNION = ndr->flags;
14849 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
14850 level = ndr_pull_get_switch_value(ndr, r);
14851 if (ndr_flags & NDR_SCALARS) {
14852 NDR_CHECK(ndr_pull_union_align(ndr, 8));
14855 NDR_CHECK(ndr_pull_align(ndr, 5));
14856 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14857 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr, NDR_SCALARS, &r->info1));
14861 NDR_CHECK(ndr_pull_align(ndr, 5));
14862 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14863 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr, NDR_SCALARS, &r->info2));
14867 NDR_CHECK(ndr_pull_align(ndr, 5));
14868 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14869 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr, NDR_SCALARS, &r->info3));
14873 NDR_CHECK(ndr_pull_align(ndr, 5));
14874 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14875 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr, NDR_SCALARS, &r->info4));
14879 NDR_CHECK(ndr_pull_align(ndr, 5));
14880 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14881 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr, NDR_SCALARS, &r->info5));
14885 NDR_CHECK(ndr_pull_align(ndr, 8));
14886 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14887 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr, NDR_SCALARS, &r->info6));
14891 NDR_CHECK(ndr_pull_align(ndr, 5));
14892 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14893 NDR_CHECK(ndr_pull_spoolss_DriverInfo7(ndr, NDR_SCALARS, &r->info7));
14897 NDR_CHECK(ndr_pull_align(ndr, 8));
14898 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14899 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr, NDR_SCALARS, &r->info8));
14903 NDR_CHECK(ndr_pull_align(ndr, 8));
14904 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14905 NDR_CHECK(ndr_pull_spoolss_DriverInfo101(ndr, NDR_SCALARS, &r->info101));
14913 if (ndr_flags & NDR_BUFFERS) {
14914 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
14917 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr, NDR_BUFFERS, &r->info1));
14921 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr, NDR_BUFFERS, &r->info2));
14925 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr, NDR_BUFFERS, &r->info3));
14929 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr, NDR_BUFFERS, &r->info4));
14933 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr, NDR_BUFFERS, &r->info5));
14937 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr, NDR_BUFFERS, &r->info6));
14941 NDR_CHECK(ndr_pull_spoolss_DriverInfo7(ndr, NDR_BUFFERS, &r->info7));
14945 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr, NDR_BUFFERS, &r->info8));
14949 NDR_CHECK(ndr_pull_spoolss_DriverInfo101(ndr, NDR_BUFFERS, &r->info101));
14957 ndr->flags = _flags_save_UNION;
14959 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
14960 return NDR_ERR_SUCCESS;
14963 _PUBLIC_ void ndr_print_spoolss_DriverInfo(struct ndr_print *ndr, const char *name, const union spoolss_DriverInfo *r)
14967 uint32_t _flags_save_UNION = ndr->flags;
14968 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
14969 level = ndr_print_get_switch_value(ndr, r);
14970 ndr_print_union(ndr, name, level, "spoolss_DriverInfo");
14973 ndr_print_spoolss_DriverInfo1(ndr, "info1", &r->info1);
14977 ndr_print_spoolss_DriverInfo2(ndr, "info2", &r->info2);
14981 ndr_print_spoolss_DriverInfo3(ndr, "info3", &r->info3);
14985 ndr_print_spoolss_DriverInfo4(ndr, "info4", &r->info4);
14989 ndr_print_spoolss_DriverInfo5(ndr, "info5", &r->info5);
14993 ndr_print_spoolss_DriverInfo6(ndr, "info6", &r->info6);
14997 ndr_print_spoolss_DriverInfo7(ndr, "info7", &r->info7);
15001 ndr_print_spoolss_DriverInfo8(ndr, "info8", &r->info8);
15005 ndr_print_spoolss_DriverInfo101(ndr, "info101", &r->info101);
15012 ndr->flags = _flags_save_UNION;
15016 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo(const union spoolss_DriverInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
15018 flags |= LIBNDR_FLAG_RELATIVE_REVERSE;
15019 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo, ic);
15022 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverDirectoryInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverDirectoryInfo1 *r)
15024 if (ndr_flags & NDR_SCALARS) {
15025 NDR_CHECK(ndr_push_align(ndr, 4));
15027 uint32_t _flags_save_string = ndr->flags;
15028 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15029 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->directory_name));
15030 ndr->flags = _flags_save_string;
15032 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
15034 if (ndr_flags & NDR_BUFFERS) {
15036 return NDR_ERR_SUCCESS;
15039 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverDirectoryInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverDirectoryInfo1 *r)
15041 if (ndr_flags & NDR_SCALARS) {
15042 NDR_CHECK(ndr_pull_align(ndr, 4));
15044 uint32_t _flags_save_string = ndr->flags;
15045 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15046 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->directory_name));
15047 ndr->flags = _flags_save_string;
15049 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
15051 if (ndr_flags & NDR_BUFFERS) {
15053 return NDR_ERR_SUCCESS;
15056 _PUBLIC_ void ndr_print_spoolss_DriverDirectoryInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DriverDirectoryInfo1 *r)
15058 ndr_print_struct(ndr, name, "spoolss_DriverDirectoryInfo1");
15060 ndr_print_string(ndr, "directory_name", r->directory_name);
15064 _PUBLIC_ size_t ndr_size_spoolss_DriverDirectoryInfo1(const struct spoolss_DriverDirectoryInfo1 *r, struct smb_iconv_convenience *ic, int flags)
15066 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverDirectoryInfo1, ic);
15069 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverDirectoryInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DriverDirectoryInfo *r)
15071 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
15073 uint32_t _flags_save_UNION = ndr->flags;
15074 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
15075 if (ndr_flags & NDR_SCALARS) {
15076 int level = ndr_push_get_switch_value(ndr, r);
15077 NDR_CHECK(ndr_push_union_align(ndr, 4));
15080 NDR_CHECK(ndr_push_align(ndr, 4));
15081 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15082 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
15086 NDR_CHECK(ndr_push_align(ndr, 4));
15087 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15088 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
15093 if (ndr_flags & NDR_BUFFERS) {
15094 int level = ndr_push_get_switch_value(ndr, r);
15095 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
15105 ndr->flags = _flags_save_UNION;
15107 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
15108 return NDR_ERR_SUCCESS;
15111 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverDirectoryInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DriverDirectoryInfo *r)
15113 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
15116 uint32_t _flags_save_UNION = ndr->flags;
15117 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
15118 level = ndr_pull_get_switch_value(ndr, r);
15119 if (ndr_flags & NDR_SCALARS) {
15120 NDR_CHECK(ndr_pull_union_align(ndr, 4));
15123 NDR_CHECK(ndr_pull_align(ndr, 4));
15124 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15125 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
15129 NDR_CHECK(ndr_pull_align(ndr, 4));
15130 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15131 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
15136 if (ndr_flags & NDR_BUFFERS) {
15137 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
15147 ndr->flags = _flags_save_UNION;
15149 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
15150 return NDR_ERR_SUCCESS;
15153 _PUBLIC_ void ndr_print_spoolss_DriverDirectoryInfo(struct ndr_print *ndr, const char *name, const union spoolss_DriverDirectoryInfo *r)
15157 uint32_t _flags_save_UNION = ndr->flags;
15158 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
15159 level = ndr_print_get_switch_value(ndr, r);
15160 ndr_print_union(ndr, name, level, "spoolss_DriverDirectoryInfo");
15163 ndr_print_spoolss_DriverDirectoryInfo1(ndr, "info1", &r->info1);
15167 ndr_print_spoolss_DriverDirectoryInfo1(ndr, "info1", &r->info1);
15171 ndr->flags = _flags_save_UNION;
15175 _PUBLIC_ size_t ndr_size_spoolss_DriverDirectoryInfo(const union spoolss_DriverDirectoryInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
15177 flags |= LIBNDR_FLAG_RELATIVE_REVERSE;
15178 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverDirectoryInfo, ic);
15181 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcessorInfo1 *r)
15183 if (ndr_flags & NDR_SCALARS) {
15184 NDR_CHECK(ndr_push_align(ndr, 5));
15186 uint32_t _flags_save_string = ndr->flags;
15187 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15188 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor_name));
15189 ndr->flags = _flags_save_string;
15191 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
15193 if (ndr_flags & NDR_BUFFERS) {
15195 uint32_t _flags_save_string = ndr->flags;
15196 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15197 if (r->print_processor_name) {
15198 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->print_processor_name));
15199 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor_name));
15200 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->print_processor_name));
15202 ndr->flags = _flags_save_string;
15205 return NDR_ERR_SUCCESS;
15208 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcessorInfo1 *r)
15210 uint32_t _ptr_print_processor_name;
15211 TALLOC_CTX *_mem_save_print_processor_name_0;
15212 if (ndr_flags & NDR_SCALARS) {
15213 NDR_CHECK(ndr_pull_align(ndr, 5));
15215 uint32_t _flags_save_string = ndr->flags;
15216 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15217 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor_name));
15218 if (_ptr_print_processor_name) {
15219 NDR_PULL_ALLOC(ndr, r->print_processor_name);
15220 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor_name, _ptr_print_processor_name));
15222 r->print_processor_name = NULL;
15224 ndr->flags = _flags_save_string;
15226 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
15228 if (ndr_flags & NDR_BUFFERS) {
15230 uint32_t _flags_save_string = ndr->flags;
15231 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15232 if (r->print_processor_name) {
15233 uint32_t _relative_save_offset;
15234 _relative_save_offset = ndr->offset;
15235 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor_name));
15236 _mem_save_print_processor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15237 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor_name, 0);
15238 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor_name));
15239 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_name_0, 0);
15240 if (ndr->offset > ndr->relative_highest_offset) {
15241 ndr->relative_highest_offset = ndr->offset;
15243 ndr->offset = _relative_save_offset;
15245 ndr->flags = _flags_save_string;
15248 return NDR_ERR_SUCCESS;
15251 _PUBLIC_ void ndr_print_spoolss_PrintProcessorInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcessorInfo1 *r)
15253 ndr_print_struct(ndr, name, "spoolss_PrintProcessorInfo1");
15255 ndr_print_ptr(ndr, "print_processor_name", r->print_processor_name);
15257 if (r->print_processor_name) {
15258 ndr_print_string(ndr, "print_processor_name", r->print_processor_name);
15264 _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorInfo1(const struct spoolss_PrintProcessorInfo1 *r, struct smb_iconv_convenience *ic, int flags)
15266 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorInfo1, ic);
15269 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcessorInfo *r)
15271 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
15273 uint32_t _flags_save_UNION = ndr->flags;
15274 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
15275 if (ndr_flags & NDR_SCALARS) {
15276 int level = ndr_push_get_switch_value(ndr, r);
15277 NDR_CHECK(ndr_push_union_align(ndr, 5));
15280 NDR_CHECK(ndr_push_align(ndr, 5));
15281 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15282 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr, NDR_SCALARS, &r->info1));
15290 if (ndr_flags & NDR_BUFFERS) {
15291 int level = ndr_push_get_switch_value(ndr, r);
15292 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
15295 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr, NDR_BUFFERS, &r->info1));
15303 ndr->flags = _flags_save_UNION;
15305 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
15306 return NDR_ERR_SUCCESS;
15309 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcessorInfo *r)
15311 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
15314 uint32_t _flags_save_UNION = ndr->flags;
15315 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
15316 level = ndr_pull_get_switch_value(ndr, r);
15317 if (ndr_flags & NDR_SCALARS) {
15318 NDR_CHECK(ndr_pull_union_align(ndr, 5));
15321 NDR_CHECK(ndr_pull_align(ndr, 5));
15322 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15323 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr, NDR_SCALARS, &r->info1));
15331 if (ndr_flags & NDR_BUFFERS) {
15332 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
15335 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr, NDR_BUFFERS, &r->info1));
15343 ndr->flags = _flags_save_UNION;
15345 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
15346 return NDR_ERR_SUCCESS;
15349 _PUBLIC_ void ndr_print_spoolss_PrintProcessorInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcessorInfo *r)
15353 uint32_t _flags_save_UNION = ndr->flags;
15354 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
15355 level = ndr_print_get_switch_value(ndr, r);
15356 ndr_print_union(ndr, name, level, "spoolss_PrintProcessorInfo");
15359 ndr_print_spoolss_PrintProcessorInfo1(ndr, "info1", &r->info1);
15366 ndr->flags = _flags_save_UNION;
15370 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorDirectoryInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcessorDirectoryInfo1 *r)
15372 if (ndr_flags & NDR_SCALARS) {
15373 NDR_CHECK(ndr_push_align(ndr, 4));
15375 uint32_t _flags_save_string = ndr->flags;
15376 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15377 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->directory_name));
15378 ndr->flags = _flags_save_string;
15380 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
15382 if (ndr_flags & NDR_BUFFERS) {
15384 return NDR_ERR_SUCCESS;
15387 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorDirectoryInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcessorDirectoryInfo1 *r)
15389 if (ndr_flags & NDR_SCALARS) {
15390 NDR_CHECK(ndr_pull_align(ndr, 4));
15392 uint32_t _flags_save_string = ndr->flags;
15393 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15394 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->directory_name));
15395 ndr->flags = _flags_save_string;
15397 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
15399 if (ndr_flags & NDR_BUFFERS) {
15401 return NDR_ERR_SUCCESS;
15404 _PUBLIC_ void ndr_print_spoolss_PrintProcessorDirectoryInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcessorDirectoryInfo1 *r)
15406 ndr_print_struct(ndr, name, "spoolss_PrintProcessorDirectoryInfo1");
15408 ndr_print_string(ndr, "directory_name", r->directory_name);
15412 _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorDirectoryInfo1(const struct spoolss_PrintProcessorDirectoryInfo1 *r, struct smb_iconv_convenience *ic, int flags)
15414 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorDirectoryInfo1, ic);
15417 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorDirectoryInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcessorDirectoryInfo *r)
15419 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
15421 uint32_t _flags_save_UNION = ndr->flags;
15422 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
15423 if (ndr_flags & NDR_SCALARS) {
15424 int level = ndr_push_get_switch_value(ndr, r);
15425 NDR_CHECK(ndr_push_union_align(ndr, 4));
15428 NDR_CHECK(ndr_push_align(ndr, 4));
15429 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15430 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
15434 NDR_CHECK(ndr_push_align(ndr, 4));
15435 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15436 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
15441 if (ndr_flags & NDR_BUFFERS) {
15442 int level = ndr_push_get_switch_value(ndr, r);
15443 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
15453 ndr->flags = _flags_save_UNION;
15455 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
15456 return NDR_ERR_SUCCESS;
15459 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorDirectoryInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcessorDirectoryInfo *r)
15461 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
15464 uint32_t _flags_save_UNION = ndr->flags;
15465 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
15466 level = ndr_pull_get_switch_value(ndr, r);
15467 if (ndr_flags & NDR_SCALARS) {
15468 NDR_CHECK(ndr_pull_union_align(ndr, 4));
15471 NDR_CHECK(ndr_pull_align(ndr, 4));
15472 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15473 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
15477 NDR_CHECK(ndr_pull_align(ndr, 4));
15478 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15479 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
15484 if (ndr_flags & NDR_BUFFERS) {
15485 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
15495 ndr->flags = _flags_save_UNION;
15497 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
15498 return NDR_ERR_SUCCESS;
15501 _PUBLIC_ void ndr_print_spoolss_PrintProcessorDirectoryInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcessorDirectoryInfo *r)
15505 uint32_t _flags_save_UNION = ndr->flags;
15506 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
15507 level = ndr_print_get_switch_value(ndr, r);
15508 ndr_print_union(ndr, name, level, "spoolss_PrintProcessorDirectoryInfo");
15511 ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr, "info1", &r->info1);
15515 ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr, "info1", &r->info1);
15519 ndr->flags = _flags_save_UNION;
15523 _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorDirectoryInfo(const union spoolss_PrintProcessorDirectoryInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
15525 flags |= LIBNDR_FLAG_RELATIVE_REVERSE;
15526 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorDirectoryInfo, ic);
15529 static enum ndr_err_code ndr_push_spoolss_DocumentInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DocumentInfo1 *r)
15531 if (ndr_flags & NDR_SCALARS) {
15532 NDR_CHECK(ndr_push_align(ndr, 5));
15533 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
15534 NDR_CHECK(ndr_push_unique_ptr(ndr, r->output_file));
15535 NDR_CHECK(ndr_push_unique_ptr(ndr, r->datatype));
15536 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
15538 if (ndr_flags & NDR_BUFFERS) {
15539 if (r->document_name) {
15540 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
15541 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
15542 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
15543 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15545 if (r->output_file) {
15546 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->output_file, CH_UTF16)));
15547 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
15548 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->output_file, CH_UTF16)));
15549 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->output_file, ndr_charset_length(r->output_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15552 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
15553 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
15554 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
15555 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->datatype, ndr_charset_length(r->datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15558 return NDR_ERR_SUCCESS;
15561 static enum ndr_err_code ndr_pull_spoolss_DocumentInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DocumentInfo1 *r)
15563 uint32_t _ptr_document_name;
15564 TALLOC_CTX *_mem_save_document_name_0;
15565 uint32_t _ptr_output_file;
15566 TALLOC_CTX *_mem_save_output_file_0;
15567 uint32_t _ptr_datatype;
15568 TALLOC_CTX *_mem_save_datatype_0;
15569 if (ndr_flags & NDR_SCALARS) {
15570 NDR_CHECK(ndr_pull_align(ndr, 5));
15571 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
15572 if (_ptr_document_name) {
15573 NDR_PULL_ALLOC(ndr, r->document_name);
15575 r->document_name = NULL;
15577 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_output_file));
15578 if (_ptr_output_file) {
15579 NDR_PULL_ALLOC(ndr, r->output_file);
15581 r->output_file = NULL;
15583 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
15584 if (_ptr_datatype) {
15585 NDR_PULL_ALLOC(ndr, r->datatype);
15587 r->datatype = NULL;
15589 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
15591 if (ndr_flags & NDR_BUFFERS) {
15592 if (r->document_name) {
15593 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15594 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
15595 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
15596 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
15597 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
15598 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));
15600 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
15601 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
15602 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
15604 if (r->output_file) {
15605 _mem_save_output_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
15606 NDR_PULL_SET_MEM_CTX(ndr, r->output_file, 0);
15607 NDR_CHECK(ndr_pull_array_size(ndr, &r->output_file));
15608 NDR_CHECK(ndr_pull_array_length(ndr, &r->output_file));
15609 if (ndr_get_array_length(ndr, &r->output_file) > ndr_get_array_size(ndr, &r->output_file)) {
15610 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));
15612 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->output_file), sizeof(uint16_t)));
15613 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->output_file, ndr_get_array_length(ndr, &r->output_file), sizeof(uint16_t), CH_UTF16));
15614 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_output_file_0, 0);
15617 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
15618 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
15619 NDR_CHECK(ndr_pull_array_size(ndr, &r->datatype));
15620 NDR_CHECK(ndr_pull_array_length(ndr, &r->datatype));
15621 if (ndr_get_array_length(ndr, &r->datatype) > ndr_get_array_size(ndr, &r->datatype)) {
15622 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));
15624 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t)));
15625 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->datatype, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t), CH_UTF16));
15626 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
15629 return NDR_ERR_SUCCESS;
15632 _PUBLIC_ void ndr_print_spoolss_DocumentInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DocumentInfo1 *r)
15634 ndr_print_struct(ndr, name, "spoolss_DocumentInfo1");
15636 ndr_print_ptr(ndr, "document_name", r->document_name);
15638 if (r->document_name) {
15639 ndr_print_string(ndr, "document_name", r->document_name);
15642 ndr_print_ptr(ndr, "output_file", r->output_file);
15644 if (r->output_file) {
15645 ndr_print_string(ndr, "output_file", r->output_file);
15648 ndr_print_ptr(ndr, "datatype", r->datatype);
15651 ndr_print_string(ndr, "datatype", r->datatype);
15657 static enum ndr_err_code ndr_push_spoolss_DocumentInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DocumentInfo *r)
15659 if (ndr_flags & NDR_SCALARS) {
15660 int level = ndr_push_get_switch_value(ndr, r);
15661 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
15662 NDR_CHECK(ndr_push_union_align(ndr, 5));
15665 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
15679 if (ndr_flags & NDR_BUFFERS) {
15680 int level = ndr_push_get_switch_value(ndr, r);
15684 NDR_CHECK(ndr_push_spoolss_DocumentInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
15699 return NDR_ERR_SUCCESS;
15702 static enum ndr_err_code ndr_pull_spoolss_DocumentInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DocumentInfo *r)
15706 TALLOC_CTX *_mem_save_info1_0;
15707 level = ndr_pull_get_switch_value(ndr, r);
15708 if (ndr_flags & NDR_SCALARS) {
15709 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
15710 if (_level != level) {
15711 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
15713 NDR_CHECK(ndr_pull_union_align(ndr, 5));
15716 uint32_t _ptr_info1;
15717 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
15719 NDR_PULL_ALLOC(ndr, r->info1);
15736 if (ndr_flags & NDR_BUFFERS) {
15740 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
15741 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
15742 NDR_CHECK(ndr_pull_spoolss_DocumentInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
15743 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
15758 return NDR_ERR_SUCCESS;
15761 _PUBLIC_ void ndr_print_spoolss_DocumentInfo(struct ndr_print *ndr, const char *name, const union spoolss_DocumentInfo *r)
15764 level = ndr_print_get_switch_value(ndr, r);
15765 ndr_print_union(ndr, name, level, "spoolss_DocumentInfo");
15768 ndr_print_ptr(ndr, "info1", r->info1);
15771 ndr_print_spoolss_DocumentInfo1(ndr, "info1", r->info1);
15788 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OSVersion(struct ndr_push *ndr, int ndr_flags, const struct spoolss_OSVersion *r)
15790 if (ndr_flags & NDR_SCALARS) {
15791 NDR_CHECK(ndr_push_align(ndr, 4));
15792 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_OSVersion(r, ndr->iconv_convenience, ndr->flags)));
15793 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->major));
15794 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minor));
15795 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
15796 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
15798 uint32_t _flags_save_string = ndr->flags;
15799 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15801 struct ndr_push *_ndr_extra_string;
15802 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
15803 NDR_CHECK(ndr_push_string(_ndr_extra_string, NDR_SCALARS, r->extra_string));
15804 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_extra_string, 0, 256));
15806 ndr->flags = _flags_save_string;
15808 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
15810 if (ndr_flags & NDR_BUFFERS) {
15812 return NDR_ERR_SUCCESS;
15815 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OSVersion(struct ndr_pull *ndr, int ndr_flags, struct spoolss_OSVersion *r)
15817 if (ndr_flags & NDR_SCALARS) {
15818 NDR_CHECK(ndr_pull_align(ndr, 4));
15819 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
15820 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->major));
15821 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minor));
15822 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
15823 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->platform_id));
15825 uint32_t _flags_save_string = ndr->flags;
15826 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15828 struct ndr_pull *_ndr_extra_string;
15829 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
15830 NDR_CHECK(ndr_pull_string(_ndr_extra_string, NDR_SCALARS, &r->extra_string));
15831 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_extra_string, 0, 256));
15833 ndr->flags = _flags_save_string;
15835 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
15837 if (ndr_flags & NDR_BUFFERS) {
15839 return NDR_ERR_SUCCESS;
15842 _PUBLIC_ void ndr_print_spoolss_OSVersion(struct ndr_print *ndr, const char *name, const struct spoolss_OSVersion *r)
15844 ndr_print_struct(ndr, name, "spoolss_OSVersion");
15846 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);
15847 ndr_print_uint32(ndr, "major", r->major);
15848 ndr_print_uint32(ndr, "minor", r->minor);
15849 ndr_print_uint32(ndr, "build", r->build);
15850 ndr_print_uint32(ndr, "platform_id", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->platform_id);
15851 ndr_print_string(ndr, "extra_string", r->extra_string);
15855 _PUBLIC_ size_t ndr_size_spoolss_OSVersion(const struct spoolss_OSVersion *r, struct smb_iconv_convenience *ic, int flags)
15857 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_OSVersion, ic);
15860 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OSVersionEx(struct ndr_push *ndr, int ndr_flags, const struct spoolss_OSVersionEx *r)
15862 if (ndr_flags & NDR_SCALARS) {
15863 NDR_CHECK(ndr_push_align(ndr, 4));
15864 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_OSVersionEx(r, ndr->iconv_convenience, ndr->flags)));
15865 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->major));
15866 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minor));
15867 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
15868 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
15870 uint32_t _flags_save_string = ndr->flags;
15871 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15873 struct ndr_push *_ndr_extra_string;
15874 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
15875 NDR_CHECK(ndr_push_string(_ndr_extra_string, NDR_SCALARS, r->extra_string));
15876 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_extra_string, 0, 256));
15878 ndr->flags = _flags_save_string;
15880 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->service_pack_major));
15881 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->service_pack_minor));
15882 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->suite_mask));
15883 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->product_type));
15884 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->reserved));
15885 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
15887 if (ndr_flags & NDR_BUFFERS) {
15889 return NDR_ERR_SUCCESS;
15892 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OSVersionEx(struct ndr_pull *ndr, int ndr_flags, struct spoolss_OSVersionEx *r)
15894 if (ndr_flags & NDR_SCALARS) {
15895 NDR_CHECK(ndr_pull_align(ndr, 4));
15896 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
15897 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->major));
15898 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minor));
15899 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
15900 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->platform_id));
15902 uint32_t _flags_save_string = ndr->flags;
15903 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15905 struct ndr_pull *_ndr_extra_string;
15906 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
15907 NDR_CHECK(ndr_pull_string(_ndr_extra_string, NDR_SCALARS, &r->extra_string));
15908 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_extra_string, 0, 256));
15910 ndr->flags = _flags_save_string;
15912 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->service_pack_major));
15913 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->service_pack_minor));
15914 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->suite_mask));
15915 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->product_type));
15916 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->reserved));
15917 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
15919 if (ndr_flags & NDR_BUFFERS) {
15921 return NDR_ERR_SUCCESS;
15924 _PUBLIC_ void ndr_print_spoolss_OSVersionEx(struct ndr_print *ndr, const char *name, const struct spoolss_OSVersionEx *r)
15926 ndr_print_struct(ndr, name, "spoolss_OSVersionEx");
15928 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);
15929 ndr_print_uint32(ndr, "major", r->major);
15930 ndr_print_uint32(ndr, "minor", r->minor);
15931 ndr_print_uint32(ndr, "build", r->build);
15932 ndr_print_uint32(ndr, "platform_id", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->platform_id);
15933 ndr_print_string(ndr, "extra_string", r->extra_string);
15934 ndr_print_uint16(ndr, "service_pack_major", r->service_pack_major);
15935 ndr_print_uint16(ndr, "service_pack_minor", r->service_pack_minor);
15936 ndr_print_uint16(ndr, "suite_mask", r->suite_mask);
15937 ndr_print_uint8(ndr, "product_type", r->product_type);
15938 ndr_print_uint8(ndr, "reserved", r->reserved);
15942 _PUBLIC_ size_t ndr_size_spoolss_OSVersionEx(const struct spoolss_OSVersionEx *r, struct smb_iconv_convenience *ic, int flags)
15944 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_OSVersionEx, ic);
15947 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterData(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrinterData *r)
15949 if (ndr_flags & NDR_SCALARS) {
15950 int level = ndr_push_get_switch_value(ndr, r);
15951 NDR_CHECK(ndr_push_union_align(ndr, 4));
15958 uint32_t _flags_save_string = ndr->flags;
15959 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15960 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->string));
15961 ndr->flags = _flags_save_string;
15967 uint32_t _flags_save_DATA_BLOB = ndr->flags;
15968 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
15969 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->binary));
15970 ndr->flags = _flags_save_DATA_BLOB;
15975 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->value));
15978 case REG_MULTI_SZ: {
15980 uint32_t _flags_save_string_array = ndr->flags;
15981 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15982 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string_array));
15983 ndr->flags = _flags_save_string_array;
15989 uint32_t _flags_save_DATA_BLOB = ndr->flags;
15990 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
15991 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->data));
15992 ndr->flags = _flags_save_DATA_BLOB;
15998 if (ndr_flags & NDR_BUFFERS) {
15999 int level = ndr_push_get_switch_value(ndr, r);
16021 return NDR_ERR_SUCCESS;
16024 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterData(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrinterData *r)
16027 level = ndr_pull_get_switch_value(ndr, r);
16028 if (ndr_flags & NDR_SCALARS) {
16029 NDR_CHECK(ndr_pull_union_align(ndr, 4));
16036 uint32_t _flags_save_string = ndr->flags;
16037 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16038 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->string));
16039 ndr->flags = _flags_save_string;
16045 uint32_t _flags_save_DATA_BLOB = ndr->flags;
16046 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
16047 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->binary));
16048 ndr->flags = _flags_save_DATA_BLOB;
16053 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->value));
16056 case REG_MULTI_SZ: {
16058 uint32_t _flags_save_string_array = ndr->flags;
16059 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16060 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string_array));
16061 ndr->flags = _flags_save_string_array;
16067 uint32_t _flags_save_DATA_BLOB = ndr->flags;
16068 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
16069 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->data));
16070 ndr->flags = _flags_save_DATA_BLOB;
16076 if (ndr_flags & NDR_BUFFERS) {
16098 return NDR_ERR_SUCCESS;
16101 _PUBLIC_ void ndr_print_spoolss_PrinterData(struct ndr_print *ndr, const char *name, const union spoolss_PrinterData *r)
16104 level = ndr_print_get_switch_value(ndr, r);
16105 ndr_print_union(ndr, name, level, "spoolss_PrinterData");
16111 ndr_print_string(ndr, "string", r->string);
16115 ndr_print_DATA_BLOB(ndr, "binary", r->binary);
16119 ndr_print_uint32(ndr, "value", r->value);
16123 ndr_print_string_array(ndr, "string_array", r->string_array);
16127 ndr_print_DATA_BLOB(ndr, "data", r->data);
16133 static enum ndr_err_code ndr_push_spoolss_FormFlags(struct ndr_push *ndr, int ndr_flags, enum spoolss_FormFlags r)
16135 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
16136 return NDR_ERR_SUCCESS;
16139 static enum ndr_err_code ndr_pull_spoolss_FormFlags(struct ndr_pull *ndr, int ndr_flags, enum spoolss_FormFlags *r)
16142 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
16144 return NDR_ERR_SUCCESS;
16147 _PUBLIC_ void ndr_print_spoolss_FormFlags(struct ndr_print *ndr, const char *name, enum spoolss_FormFlags r)
16149 const char *val = NULL;
16152 case SPOOLSS_FORM_USER: val = "SPOOLSS_FORM_USER"; break;
16153 case SPOOLSS_FORM_BUILTIN: val = "SPOOLSS_FORM_BUILTIN"; break;
16154 case SPOOLSS_FORM_PRINTER: val = "SPOOLSS_FORM_PRINTER"; break;
16156 ndr_print_enum(ndr, name, "ENUM", val, r);
16159 static enum ndr_err_code ndr_push_spoolss_FormSize(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormSize *r)
16161 if (ndr_flags & NDR_SCALARS) {
16162 NDR_CHECK(ndr_push_align(ndr, 4));
16163 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->width));
16164 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->height));
16165 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
16167 if (ndr_flags & NDR_BUFFERS) {
16169 return NDR_ERR_SUCCESS;
16172 static enum ndr_err_code ndr_pull_spoolss_FormSize(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormSize *r)
16174 if (ndr_flags & NDR_SCALARS) {
16175 NDR_CHECK(ndr_pull_align(ndr, 4));
16176 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->width));
16177 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->height));
16178 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
16180 if (ndr_flags & NDR_BUFFERS) {
16182 return NDR_ERR_SUCCESS;
16185 _PUBLIC_ void ndr_print_spoolss_FormSize(struct ndr_print *ndr, const char *name, const struct spoolss_FormSize *r)
16187 ndr_print_struct(ndr, name, "spoolss_FormSize");
16189 ndr_print_uint32(ndr, "width", r->width);
16190 ndr_print_uint32(ndr, "height", r->height);
16194 static enum ndr_err_code ndr_push_spoolss_FormArea(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormArea *r)
16196 if (ndr_flags & NDR_SCALARS) {
16197 NDR_CHECK(ndr_push_align(ndr, 4));
16198 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->left));
16199 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->top));
16200 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->right));
16201 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bottom));
16202 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
16204 if (ndr_flags & NDR_BUFFERS) {
16206 return NDR_ERR_SUCCESS;
16209 static enum ndr_err_code ndr_pull_spoolss_FormArea(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormArea *r)
16211 if (ndr_flags & NDR_SCALARS) {
16212 NDR_CHECK(ndr_pull_align(ndr, 4));
16213 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->left));
16214 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->top));
16215 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->right));
16216 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bottom));
16217 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
16219 if (ndr_flags & NDR_BUFFERS) {
16221 return NDR_ERR_SUCCESS;
16224 _PUBLIC_ void ndr_print_spoolss_FormArea(struct ndr_print *ndr, const char *name, const struct spoolss_FormArea *r)
16226 ndr_print_struct(ndr, name, "spoolss_FormArea");
16228 ndr_print_uint32(ndr, "left", r->left);
16229 ndr_print_uint32(ndr, "top", r->top);
16230 ndr_print_uint32(ndr, "right", r->right);
16231 ndr_print_uint32(ndr, "bottom", r->bottom);
16235 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormInfo1 *r)
16237 if (ndr_flags & NDR_SCALARS) {
16238 NDR_CHECK(ndr_push_align(ndr, 5));
16239 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
16241 uint32_t _flags_save_string = ndr->flags;
16242 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16243 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->form_name));
16244 ndr->flags = _flags_save_string;
16246 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
16247 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
16248 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
16250 if (ndr_flags & NDR_BUFFERS) {
16252 uint32_t _flags_save_string = ndr->flags;
16253 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16254 if (r->form_name) {
16255 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->form_name));
16256 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->form_name));
16257 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->form_name));
16259 ndr->flags = _flags_save_string;
16262 return NDR_ERR_SUCCESS;
16265 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormInfo1 *r)
16267 uint32_t _ptr_form_name;
16268 TALLOC_CTX *_mem_save_form_name_0;
16269 if (ndr_flags & NDR_SCALARS) {
16270 NDR_CHECK(ndr_pull_align(ndr, 5));
16271 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
16273 uint32_t _flags_save_string = ndr->flags;
16274 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16275 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
16276 if (_ptr_form_name) {
16277 NDR_PULL_ALLOC(ndr, r->form_name);
16278 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->form_name, _ptr_form_name));
16280 r->form_name = NULL;
16282 ndr->flags = _flags_save_string;
16284 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
16285 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
16286 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
16288 if (ndr_flags & NDR_BUFFERS) {
16290 uint32_t _flags_save_string = ndr->flags;
16291 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16292 if (r->form_name) {
16293 uint32_t _relative_save_offset;
16294 _relative_save_offset = ndr->offset;
16295 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->form_name));
16296 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16297 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
16298 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->form_name));
16299 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
16300 if (ndr->offset > ndr->relative_highest_offset) {
16301 ndr->relative_highest_offset = ndr->offset;
16303 ndr->offset = _relative_save_offset;
16305 ndr->flags = _flags_save_string;
16308 return NDR_ERR_SUCCESS;
16311 _PUBLIC_ void ndr_print_spoolss_FormInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_FormInfo1 *r)
16313 ndr_print_struct(ndr, name, "spoolss_FormInfo1");
16315 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
16316 ndr_print_ptr(ndr, "form_name", r->form_name);
16318 if (r->form_name) {
16319 ndr_print_string(ndr, "form_name", r->form_name);
16322 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
16323 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
16327 _PUBLIC_ size_t ndr_size_spoolss_FormInfo1(const struct spoolss_FormInfo1 *r, struct smb_iconv_convenience *ic, int flags)
16329 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo1, ic);
16332 static enum ndr_err_code ndr_push_spoolss_FormStringType(struct ndr_push *ndr, int ndr_flags, uint32_t r)
16334 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
16335 return NDR_ERR_SUCCESS;
16338 static enum ndr_err_code ndr_pull_spoolss_FormStringType(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
16341 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
16343 return NDR_ERR_SUCCESS;
16346 _PUBLIC_ void ndr_print_spoolss_FormStringType(struct ndr_print *ndr, const char *name, uint32_t r)
16348 ndr_print_uint32(ndr, name, r);
16350 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_NONE", SPOOLSS_FORM_STRING_TYPE_NONE, r);
16351 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_MUI_DLL", SPOOLSS_FORM_STRING_TYPE_MUI_DLL, r);
16352 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_LANG_PAIR", SPOOLSS_FORM_STRING_TYPE_LANG_PAIR, r);
16356 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormInfo2 *r)
16358 if (ndr_flags & NDR_SCALARS) {
16359 NDR_CHECK(ndr_push_align(ndr, 5));
16360 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
16362 uint32_t _flags_save_string = ndr->flags;
16363 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16364 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->form_name));
16365 ndr->flags = _flags_save_string;
16367 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
16368 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
16370 uint32_t _flags_save_string = ndr->flags;
16371 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
16372 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->keyword));
16373 ndr->flags = _flags_save_string;
16375 NDR_CHECK(ndr_push_spoolss_FormStringType(ndr, NDR_SCALARS, r->string_type));
16377 uint32_t _flags_save_string = ndr->flags;
16378 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16379 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->mui_dll));
16380 ndr->flags = _flags_save_string;
16382 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ressource_id));
16384 uint32_t _flags_save_string = ndr->flags;
16385 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16386 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->display_name));
16387 ndr->flags = _flags_save_string;
16389 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lang_id));
16390 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->unused));
16391 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
16393 if (ndr_flags & NDR_BUFFERS) {
16395 uint32_t _flags_save_string = ndr->flags;
16396 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16397 if (r->form_name) {
16398 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->form_name));
16399 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->form_name));
16400 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->form_name));
16402 ndr->flags = _flags_save_string;
16405 uint32_t _flags_save_string = ndr->flags;
16406 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
16408 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->keyword));
16409 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->keyword));
16410 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->keyword));
16412 ndr->flags = _flags_save_string;
16415 uint32_t _flags_save_string = ndr->flags;
16416 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16418 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->mui_dll));
16419 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->mui_dll));
16420 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->mui_dll));
16422 ndr->flags = _flags_save_string;
16425 uint32_t _flags_save_string = ndr->flags;
16426 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16427 if (r->display_name) {
16428 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->display_name));
16429 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->display_name));
16430 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->display_name));
16432 ndr->flags = _flags_save_string;
16435 return NDR_ERR_SUCCESS;
16438 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormInfo2 *r)
16440 uint32_t _ptr_form_name;
16441 TALLOC_CTX *_mem_save_form_name_0;
16442 uint32_t _ptr_keyword;
16443 TALLOC_CTX *_mem_save_keyword_0;
16444 uint32_t _ptr_mui_dll;
16445 TALLOC_CTX *_mem_save_mui_dll_0;
16446 uint32_t _ptr_display_name;
16447 TALLOC_CTX *_mem_save_display_name_0;
16448 if (ndr_flags & NDR_SCALARS) {
16449 NDR_CHECK(ndr_pull_align(ndr, 5));
16450 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
16452 uint32_t _flags_save_string = ndr->flags;
16453 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16454 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
16455 if (_ptr_form_name) {
16456 NDR_PULL_ALLOC(ndr, r->form_name);
16457 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->form_name, _ptr_form_name));
16459 r->form_name = NULL;
16461 ndr->flags = _flags_save_string;
16463 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
16464 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
16466 uint32_t _flags_save_string = ndr->flags;
16467 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
16468 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyword));
16469 if (_ptr_keyword) {
16470 NDR_PULL_ALLOC(ndr, r->keyword);
16471 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->keyword, _ptr_keyword));
16475 ndr->flags = _flags_save_string;
16477 NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr, NDR_SCALARS, &r->string_type));
16479 uint32_t _flags_save_string = ndr->flags;
16480 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16481 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_mui_dll));
16482 if (_ptr_mui_dll) {
16483 NDR_PULL_ALLOC(ndr, r->mui_dll);
16484 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->mui_dll, _ptr_mui_dll));
16488 ndr->flags = _flags_save_string;
16490 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ressource_id));
16492 uint32_t _flags_save_string = ndr->flags;
16493 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16494 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_display_name));
16495 if (_ptr_display_name) {
16496 NDR_PULL_ALLOC(ndr, r->display_name);
16497 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->display_name, _ptr_display_name));
16499 r->display_name = NULL;
16501 ndr->flags = _flags_save_string;
16503 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lang_id));
16504 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->unused));
16505 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
16507 if (ndr_flags & NDR_BUFFERS) {
16509 uint32_t _flags_save_string = ndr->flags;
16510 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16511 if (r->form_name) {
16512 uint32_t _relative_save_offset;
16513 _relative_save_offset = ndr->offset;
16514 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->form_name));
16515 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16516 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
16517 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->form_name));
16518 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
16519 if (ndr->offset > ndr->relative_highest_offset) {
16520 ndr->relative_highest_offset = ndr->offset;
16522 ndr->offset = _relative_save_offset;
16524 ndr->flags = _flags_save_string;
16527 uint32_t _flags_save_string = ndr->flags;
16528 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
16530 uint32_t _relative_save_offset;
16531 _relative_save_offset = ndr->offset;
16532 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->keyword));
16533 _mem_save_keyword_0 = NDR_PULL_GET_MEM_CTX(ndr);
16534 NDR_PULL_SET_MEM_CTX(ndr, r->keyword, 0);
16535 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->keyword));
16536 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyword_0, 0);
16537 if (ndr->offset > ndr->relative_highest_offset) {
16538 ndr->relative_highest_offset = ndr->offset;
16540 ndr->offset = _relative_save_offset;
16542 ndr->flags = _flags_save_string;
16545 uint32_t _flags_save_string = ndr->flags;
16546 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16548 uint32_t _relative_save_offset;
16549 _relative_save_offset = ndr->offset;
16550 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->mui_dll));
16551 _mem_save_mui_dll_0 = NDR_PULL_GET_MEM_CTX(ndr);
16552 NDR_PULL_SET_MEM_CTX(ndr, r->mui_dll, 0);
16553 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->mui_dll));
16554 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_mui_dll_0, 0);
16555 if (ndr->offset > ndr->relative_highest_offset) {
16556 ndr->relative_highest_offset = ndr->offset;
16558 ndr->offset = _relative_save_offset;
16560 ndr->flags = _flags_save_string;
16563 uint32_t _flags_save_string = ndr->flags;
16564 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16565 if (r->display_name) {
16566 uint32_t _relative_save_offset;
16567 _relative_save_offset = ndr->offset;
16568 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->display_name));
16569 _mem_save_display_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16570 NDR_PULL_SET_MEM_CTX(ndr, r->display_name, 0);
16571 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->display_name));
16572 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_display_name_0, 0);
16573 if (ndr->offset > ndr->relative_highest_offset) {
16574 ndr->relative_highest_offset = ndr->offset;
16576 ndr->offset = _relative_save_offset;
16578 ndr->flags = _flags_save_string;
16581 return NDR_ERR_SUCCESS;
16584 _PUBLIC_ void ndr_print_spoolss_FormInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_FormInfo2 *r)
16586 ndr_print_struct(ndr, name, "spoolss_FormInfo2");
16588 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
16589 ndr_print_ptr(ndr, "form_name", r->form_name);
16591 if (r->form_name) {
16592 ndr_print_string(ndr, "form_name", r->form_name);
16595 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
16596 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
16597 ndr_print_ptr(ndr, "keyword", r->keyword);
16600 ndr_print_string(ndr, "keyword", r->keyword);
16603 ndr_print_spoolss_FormStringType(ndr, "string_type", r->string_type);
16604 ndr_print_ptr(ndr, "mui_dll", r->mui_dll);
16607 ndr_print_string(ndr, "mui_dll", r->mui_dll);
16610 ndr_print_uint32(ndr, "ressource_id", r->ressource_id);
16611 ndr_print_ptr(ndr, "display_name", r->display_name);
16613 if (r->display_name) {
16614 ndr_print_string(ndr, "display_name", r->display_name);
16617 ndr_print_uint16(ndr, "lang_id", r->lang_id);
16618 ndr_print_uint16(ndr, "unused", r->unused);
16622 _PUBLIC_ size_t ndr_size_spoolss_FormInfo2(const struct spoolss_FormInfo2 *r, struct smb_iconv_convenience *ic, int flags)
16624 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo2, ic);
16627 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_FormInfo *r)
16629 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
16631 uint32_t _flags_save_UNION = ndr->flags;
16632 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
16633 if (ndr_flags & NDR_SCALARS) {
16634 int level = ndr_push_get_switch_value(ndr, r);
16635 NDR_CHECK(ndr_push_union_align(ndr, 5));
16638 NDR_CHECK(ndr_push_align(ndr, 5));
16639 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16640 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr, NDR_SCALARS, &r->info1));
16644 NDR_CHECK(ndr_push_align(ndr, 5));
16645 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16646 NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr, NDR_SCALARS, &r->info2));
16654 if (ndr_flags & NDR_BUFFERS) {
16655 int level = ndr_push_get_switch_value(ndr, r);
16656 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
16659 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr, NDR_BUFFERS, &r->info1));
16663 NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr, NDR_BUFFERS, &r->info2));
16671 ndr->flags = _flags_save_UNION;
16673 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
16674 return NDR_ERR_SUCCESS;
16677 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_FormInfo *r)
16679 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
16682 uint32_t _flags_save_UNION = ndr->flags;
16683 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
16684 level = ndr_pull_get_switch_value(ndr, r);
16685 if (ndr_flags & NDR_SCALARS) {
16686 NDR_CHECK(ndr_pull_union_align(ndr, 5));
16689 NDR_CHECK(ndr_pull_align(ndr, 5));
16690 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16691 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr, NDR_SCALARS, &r->info1));
16695 NDR_CHECK(ndr_pull_align(ndr, 5));
16696 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16697 NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr, NDR_SCALARS, &r->info2));
16705 if (ndr_flags & NDR_BUFFERS) {
16706 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
16709 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr, NDR_BUFFERS, &r->info1));
16713 NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr, NDR_BUFFERS, &r->info2));
16721 ndr->flags = _flags_save_UNION;
16723 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
16724 return NDR_ERR_SUCCESS;
16727 _PUBLIC_ void ndr_print_spoolss_FormInfo(struct ndr_print *ndr, const char *name, const union spoolss_FormInfo *r)
16731 uint32_t _flags_save_UNION = ndr->flags;
16732 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
16733 level = ndr_print_get_switch_value(ndr, r);
16734 ndr_print_union(ndr, name, level, "spoolss_FormInfo");
16737 ndr_print_spoolss_FormInfo1(ndr, "info1", &r->info1);
16741 ndr_print_spoolss_FormInfo2(ndr, "info2", &r->info2);
16748 ndr->flags = _flags_save_UNION;
16752 _PUBLIC_ size_t ndr_size_spoolss_FormInfo(const union spoolss_FormInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
16754 flags |= LIBNDR_FLAG_RELATIVE_REVERSE;
16755 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo, ic);
16758 static enum ndr_err_code ndr_push_spoolss_AddFormInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddFormInfo1 *r)
16760 if (ndr_flags & NDR_SCALARS) {
16761 NDR_CHECK(ndr_push_align(ndr, 5));
16762 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
16763 NDR_CHECK(ndr_push_unique_ptr(ndr, r->form_name));
16764 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
16765 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
16766 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
16768 if (ndr_flags & NDR_BUFFERS) {
16769 if (r->form_name) {
16770 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
16771 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
16772 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
16773 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->form_name, ndr_charset_length(r->form_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16776 return NDR_ERR_SUCCESS;
16779 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddFormInfo1 *r)
16781 uint32_t _ptr_form_name;
16782 TALLOC_CTX *_mem_save_form_name_0;
16783 if (ndr_flags & NDR_SCALARS) {
16784 NDR_CHECK(ndr_pull_align(ndr, 5));
16785 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
16786 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
16787 if (_ptr_form_name) {
16788 NDR_PULL_ALLOC(ndr, r->form_name);
16790 r->form_name = NULL;
16792 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
16793 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
16794 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
16796 if (ndr_flags & NDR_BUFFERS) {
16797 if (r->form_name) {
16798 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16799 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
16800 NDR_CHECK(ndr_pull_array_size(ndr, &r->form_name));
16801 NDR_CHECK(ndr_pull_array_length(ndr, &r->form_name));
16802 if (ndr_get_array_length(ndr, &r->form_name) > ndr_get_array_size(ndr, &r->form_name)) {
16803 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));
16805 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t)));
16806 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->form_name, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t), CH_UTF16));
16807 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
16810 return NDR_ERR_SUCCESS;
16813 _PUBLIC_ void ndr_print_spoolss_AddFormInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_AddFormInfo1 *r)
16815 ndr_print_struct(ndr, name, "spoolss_AddFormInfo1");
16817 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
16818 ndr_print_ptr(ndr, "form_name", r->form_name);
16820 if (r->form_name) {
16821 ndr_print_string(ndr, "form_name", r->form_name);
16824 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
16825 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
16829 static enum ndr_err_code ndr_push_spoolss_AddFormInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddFormInfo2 *r)
16831 if (ndr_flags & NDR_SCALARS) {
16832 NDR_CHECK(ndr_push_align(ndr, 5));
16833 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
16834 NDR_CHECK(ndr_push_unique_ptr(ndr, r->form_name));
16835 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
16836 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
16837 NDR_CHECK(ndr_push_unique_ptr(ndr, r->keyword));
16838 NDR_CHECK(ndr_push_spoolss_FormStringType(ndr, NDR_SCALARS, r->string_type));
16839 NDR_CHECK(ndr_push_unique_ptr(ndr, r->mui_dll));
16840 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ressource_id));
16841 NDR_CHECK(ndr_push_unique_ptr(ndr, r->display_name));
16842 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->lang_id));
16843 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
16845 if (ndr_flags & NDR_BUFFERS) {
16846 if (r->form_name) {
16847 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
16848 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
16849 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
16850 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->form_name, ndr_charset_length(r->form_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16853 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->keyword, CH_DOS)));
16854 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
16855 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->keyword, CH_DOS)));
16856 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->keyword, ndr_charset_length(r->keyword, CH_DOS), sizeof(uint8_t), CH_DOS));
16859 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->mui_dll, CH_UTF16)));
16860 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
16861 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->mui_dll, CH_UTF16)));
16862 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->mui_dll, ndr_charset_length(r->mui_dll, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16864 if (r->display_name) {
16865 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->display_name, CH_UTF16)));
16866 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
16867 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->display_name, CH_UTF16)));
16868 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->display_name, ndr_charset_length(r->display_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16871 return NDR_ERR_SUCCESS;
16874 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddFormInfo2 *r)
16876 uint32_t _ptr_form_name;
16877 TALLOC_CTX *_mem_save_form_name_0;
16878 uint32_t _ptr_keyword;
16879 TALLOC_CTX *_mem_save_keyword_0;
16880 uint32_t _ptr_mui_dll;
16881 TALLOC_CTX *_mem_save_mui_dll_0;
16882 uint32_t _ptr_display_name;
16883 TALLOC_CTX *_mem_save_display_name_0;
16884 if (ndr_flags & NDR_SCALARS) {
16885 NDR_CHECK(ndr_pull_align(ndr, 5));
16886 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
16887 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
16888 if (_ptr_form_name) {
16889 NDR_PULL_ALLOC(ndr, r->form_name);
16891 r->form_name = NULL;
16893 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
16894 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
16895 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyword));
16896 if (_ptr_keyword) {
16897 NDR_PULL_ALLOC(ndr, r->keyword);
16901 NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr, NDR_SCALARS, &r->string_type));
16902 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_mui_dll));
16903 if (_ptr_mui_dll) {
16904 NDR_PULL_ALLOC(ndr, r->mui_dll);
16908 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ressource_id));
16909 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_display_name));
16910 if (_ptr_display_name) {
16911 NDR_PULL_ALLOC(ndr, r->display_name);
16913 r->display_name = NULL;
16915 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->lang_id));
16916 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
16918 if (ndr_flags & NDR_BUFFERS) {
16919 if (r->form_name) {
16920 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16921 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
16922 NDR_CHECK(ndr_pull_array_size(ndr, &r->form_name));
16923 NDR_CHECK(ndr_pull_array_length(ndr, &r->form_name));
16924 if (ndr_get_array_length(ndr, &r->form_name) > ndr_get_array_size(ndr, &r->form_name)) {
16925 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));
16927 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t)));
16928 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->form_name, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t), CH_UTF16));
16929 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
16932 _mem_save_keyword_0 = NDR_PULL_GET_MEM_CTX(ndr);
16933 NDR_PULL_SET_MEM_CTX(ndr, r->keyword, 0);
16934 NDR_CHECK(ndr_pull_array_size(ndr, &r->keyword));
16935 NDR_CHECK(ndr_pull_array_length(ndr, &r->keyword));
16936 if (ndr_get_array_length(ndr, &r->keyword) > ndr_get_array_size(ndr, &r->keyword)) {
16937 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));
16939 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->keyword), sizeof(uint8_t)));
16940 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->keyword, ndr_get_array_length(ndr, &r->keyword), sizeof(uint8_t), CH_DOS));
16941 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyword_0, 0);
16944 _mem_save_mui_dll_0 = NDR_PULL_GET_MEM_CTX(ndr);
16945 NDR_PULL_SET_MEM_CTX(ndr, r->mui_dll, 0);
16946 NDR_CHECK(ndr_pull_array_size(ndr, &r->mui_dll));
16947 NDR_CHECK(ndr_pull_array_length(ndr, &r->mui_dll));
16948 if (ndr_get_array_length(ndr, &r->mui_dll) > ndr_get_array_size(ndr, &r->mui_dll)) {
16949 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));
16951 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->mui_dll), sizeof(uint16_t)));
16952 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->mui_dll, ndr_get_array_length(ndr, &r->mui_dll), sizeof(uint16_t), CH_UTF16));
16953 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_mui_dll_0, 0);
16955 if (r->display_name) {
16956 _mem_save_display_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16957 NDR_PULL_SET_MEM_CTX(ndr, r->display_name, 0);
16958 NDR_CHECK(ndr_pull_array_size(ndr, &r->display_name));
16959 NDR_CHECK(ndr_pull_array_length(ndr, &r->display_name));
16960 if (ndr_get_array_length(ndr, &r->display_name) > ndr_get_array_size(ndr, &r->display_name)) {
16961 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));
16963 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->display_name), sizeof(uint16_t)));
16964 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->display_name, ndr_get_array_length(ndr, &r->display_name), sizeof(uint16_t), CH_UTF16));
16965 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_display_name_0, 0);
16968 return NDR_ERR_SUCCESS;
16971 _PUBLIC_ void ndr_print_spoolss_AddFormInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_AddFormInfo2 *r)
16973 ndr_print_struct(ndr, name, "spoolss_AddFormInfo2");
16975 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
16976 ndr_print_ptr(ndr, "form_name", r->form_name);
16978 if (r->form_name) {
16979 ndr_print_string(ndr, "form_name", r->form_name);
16982 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
16983 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
16984 ndr_print_ptr(ndr, "keyword", r->keyword);
16987 ndr_print_string(ndr, "keyword", r->keyword);
16990 ndr_print_spoolss_FormStringType(ndr, "string_type", r->string_type);
16991 ndr_print_ptr(ndr, "mui_dll", r->mui_dll);
16994 ndr_print_string(ndr, "mui_dll", r->mui_dll);
16997 ndr_print_uint32(ndr, "ressource_id", r->ressource_id);
16998 ndr_print_ptr(ndr, "display_name", r->display_name);
17000 if (r->display_name) {
17001 ndr_print_string(ndr, "display_name", r->display_name);
17004 ndr_print_uint32(ndr, "lang_id", r->lang_id);
17008 static enum ndr_err_code ndr_push_spoolss_AddFormInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_AddFormInfo *r)
17010 if (ndr_flags & NDR_SCALARS) {
17011 int level = ndr_push_get_switch_value(ndr, r);
17012 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
17013 NDR_CHECK(ndr_push_union_align(ndr, 5));
17016 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
17020 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
17024 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
17027 if (ndr_flags & NDR_BUFFERS) {
17028 int level = ndr_push_get_switch_value(ndr, r);
17032 NDR_CHECK(ndr_push_spoolss_AddFormInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
17038 NDR_CHECK(ndr_push_spoolss_AddFormInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
17043 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
17046 return NDR_ERR_SUCCESS;
17049 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_AddFormInfo *r)
17053 TALLOC_CTX *_mem_save_info1_0;
17054 TALLOC_CTX *_mem_save_info2_0;
17055 level = ndr_pull_get_switch_value(ndr, r);
17056 if (ndr_flags & NDR_SCALARS) {
17057 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
17058 if (_level != level) {
17059 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
17061 NDR_CHECK(ndr_pull_union_align(ndr, 5));
17064 uint32_t _ptr_info1;
17065 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
17067 NDR_PULL_ALLOC(ndr, r->info1);
17074 uint32_t _ptr_info2;
17075 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
17077 NDR_PULL_ALLOC(ndr, r->info2);
17084 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
17087 if (ndr_flags & NDR_BUFFERS) {
17091 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
17092 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
17093 NDR_CHECK(ndr_pull_spoolss_AddFormInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
17094 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
17100 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
17101 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
17102 NDR_CHECK(ndr_pull_spoolss_AddFormInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
17103 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
17108 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
17111 return NDR_ERR_SUCCESS;
17114 _PUBLIC_ void ndr_print_spoolss_AddFormInfo(struct ndr_print *ndr, const char *name, const union spoolss_AddFormInfo *r)
17117 level = ndr_print_get_switch_value(ndr, r);
17118 ndr_print_union(ndr, name, level, "spoolss_AddFormInfo");
17121 ndr_print_ptr(ndr, "info1", r->info1);
17124 ndr_print_spoolss_AddFormInfo1(ndr, "info1", r->info1);
17130 ndr_print_ptr(ndr, "info2", r->info2);
17133 ndr_print_spoolss_AddFormInfo2(ndr, "info2", r->info2);
17139 ndr_print_bad_level(ndr, name, level);
17143 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo1 *r)
17145 if (ndr_flags & NDR_SCALARS) {
17146 NDR_CHECK(ndr_push_align(ndr, 5));
17148 uint32_t _flags_save_string = ndr->flags;
17149 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17150 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
17151 ndr->flags = _flags_save_string;
17153 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17155 if (ndr_flags & NDR_BUFFERS) {
17157 uint32_t _flags_save_string = ndr->flags;
17158 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17159 if (r->port_name) {
17160 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->port_name));
17161 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
17162 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->port_name));
17164 ndr->flags = _flags_save_string;
17167 return NDR_ERR_SUCCESS;
17170 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo1 *r)
17172 uint32_t _ptr_port_name;
17173 TALLOC_CTX *_mem_save_port_name_0;
17174 if (ndr_flags & NDR_SCALARS) {
17175 NDR_CHECK(ndr_pull_align(ndr, 5));
17177 uint32_t _flags_save_string = ndr->flags;
17178 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17179 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
17180 if (_ptr_port_name) {
17181 NDR_PULL_ALLOC(ndr, r->port_name);
17182 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
17184 r->port_name = NULL;
17186 ndr->flags = _flags_save_string;
17188 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17190 if (ndr_flags & NDR_BUFFERS) {
17192 uint32_t _flags_save_string = ndr->flags;
17193 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17194 if (r->port_name) {
17195 uint32_t _relative_save_offset;
17196 _relative_save_offset = ndr->offset;
17197 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
17198 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17199 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
17200 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
17201 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
17202 if (ndr->offset > ndr->relative_highest_offset) {
17203 ndr->relative_highest_offset = ndr->offset;
17205 ndr->offset = _relative_save_offset;
17207 ndr->flags = _flags_save_string;
17210 return NDR_ERR_SUCCESS;
17213 _PUBLIC_ void ndr_print_spoolss_PortInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo1 *r)
17215 ndr_print_struct(ndr, name, "spoolss_PortInfo1");
17217 ndr_print_ptr(ndr, "port_name", r->port_name);
17219 if (r->port_name) {
17220 ndr_print_string(ndr, "port_name", r->port_name);
17226 _PUBLIC_ size_t ndr_size_spoolss_PortInfo1(const struct spoolss_PortInfo1 *r, struct smb_iconv_convenience *ic, int flags)
17228 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfo1, ic);
17231 static enum ndr_err_code ndr_push_spoolss_PortType(struct ndr_push *ndr, int ndr_flags, uint32_t r)
17233 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
17234 return NDR_ERR_SUCCESS;
17237 static enum ndr_err_code ndr_pull_spoolss_PortType(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
17240 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
17242 return NDR_ERR_SUCCESS;
17245 _PUBLIC_ void ndr_print_spoolss_PortType(struct ndr_print *ndr, const char *name, uint32_t r)
17247 ndr_print_uint32(ndr, name, r);
17249 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_WRITE", SPOOLSS_PORT_TYPE_WRITE, r);
17250 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_READ", SPOOLSS_PORT_TYPE_READ, r);
17251 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_REDIRECTED", SPOOLSS_PORT_TYPE_REDIRECTED, r);
17252 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_NET_ATTACHED", SPOOLSS_PORT_TYPE_NET_ATTACHED, r);
17256 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo2 *r)
17258 if (ndr_flags & NDR_SCALARS) {
17259 NDR_CHECK(ndr_push_align(ndr, 5));
17261 uint32_t _flags_save_string = ndr->flags;
17262 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17263 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
17264 ndr->flags = _flags_save_string;
17267 uint32_t _flags_save_string = ndr->flags;
17268 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17269 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
17270 ndr->flags = _flags_save_string;
17273 uint32_t _flags_save_string = ndr->flags;
17274 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17275 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->description));
17276 ndr->flags = _flags_save_string;
17278 NDR_CHECK(ndr_push_spoolss_PortType(ndr, NDR_SCALARS, r->port_type));
17279 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
17280 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17282 if (ndr_flags & NDR_BUFFERS) {
17284 uint32_t _flags_save_string = ndr->flags;
17285 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17286 if (r->port_name) {
17287 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->port_name));
17288 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
17289 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->port_name));
17291 ndr->flags = _flags_save_string;
17294 uint32_t _flags_save_string = ndr->flags;
17295 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17296 if (r->monitor_name) {
17297 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name));
17298 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
17299 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->monitor_name));
17301 ndr->flags = _flags_save_string;
17304 uint32_t _flags_save_string = ndr->flags;
17305 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17306 if (r->description) {
17307 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->description));
17308 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->description));
17309 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->description));
17311 ndr->flags = _flags_save_string;
17314 return NDR_ERR_SUCCESS;
17317 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo2 *r)
17319 uint32_t _ptr_port_name;
17320 TALLOC_CTX *_mem_save_port_name_0;
17321 uint32_t _ptr_monitor_name;
17322 TALLOC_CTX *_mem_save_monitor_name_0;
17323 uint32_t _ptr_description;
17324 TALLOC_CTX *_mem_save_description_0;
17325 if (ndr_flags & NDR_SCALARS) {
17326 NDR_CHECK(ndr_pull_align(ndr, 5));
17328 uint32_t _flags_save_string = ndr->flags;
17329 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17330 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
17331 if (_ptr_port_name) {
17332 NDR_PULL_ALLOC(ndr, r->port_name);
17333 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
17335 r->port_name = NULL;
17337 ndr->flags = _flags_save_string;
17340 uint32_t _flags_save_string = ndr->flags;
17341 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17342 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
17343 if (_ptr_monitor_name) {
17344 NDR_PULL_ALLOC(ndr, r->monitor_name);
17345 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
17347 r->monitor_name = NULL;
17349 ndr->flags = _flags_save_string;
17352 uint32_t _flags_save_string = ndr->flags;
17353 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17354 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
17355 if (_ptr_description) {
17356 NDR_PULL_ALLOC(ndr, r->description);
17357 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->description, _ptr_description));
17359 r->description = NULL;
17361 ndr->flags = _flags_save_string;
17363 NDR_CHECK(ndr_pull_spoolss_PortType(ndr, NDR_SCALARS, &r->port_type));
17364 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
17365 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17367 if (ndr_flags & NDR_BUFFERS) {
17369 uint32_t _flags_save_string = ndr->flags;
17370 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17371 if (r->port_name) {
17372 uint32_t _relative_save_offset;
17373 _relative_save_offset = ndr->offset;
17374 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
17375 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17376 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
17377 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
17378 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
17379 if (ndr->offset > ndr->relative_highest_offset) {
17380 ndr->relative_highest_offset = ndr->offset;
17382 ndr->offset = _relative_save_offset;
17384 ndr->flags = _flags_save_string;
17387 uint32_t _flags_save_string = ndr->flags;
17388 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17389 if (r->monitor_name) {
17390 uint32_t _relative_save_offset;
17391 _relative_save_offset = ndr->offset;
17392 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
17393 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17394 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
17395 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
17396 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
17397 if (ndr->offset > ndr->relative_highest_offset) {
17398 ndr->relative_highest_offset = ndr->offset;
17400 ndr->offset = _relative_save_offset;
17402 ndr->flags = _flags_save_string;
17405 uint32_t _flags_save_string = ndr->flags;
17406 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17407 if (r->description) {
17408 uint32_t _relative_save_offset;
17409 _relative_save_offset = ndr->offset;
17410 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->description));
17411 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
17412 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
17413 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->description));
17414 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
17415 if (ndr->offset > ndr->relative_highest_offset) {
17416 ndr->relative_highest_offset = ndr->offset;
17418 ndr->offset = _relative_save_offset;
17420 ndr->flags = _flags_save_string;
17423 return NDR_ERR_SUCCESS;
17426 _PUBLIC_ void ndr_print_spoolss_PortInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo2 *r)
17428 ndr_print_struct(ndr, name, "spoolss_PortInfo2");
17430 ndr_print_ptr(ndr, "port_name", r->port_name);
17432 if (r->port_name) {
17433 ndr_print_string(ndr, "port_name", r->port_name);
17436 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
17438 if (r->monitor_name) {
17439 ndr_print_string(ndr, "monitor_name", r->monitor_name);
17442 ndr_print_ptr(ndr, "description", r->description);
17444 if (r->description) {
17445 ndr_print_string(ndr, "description", r->description);
17448 ndr_print_spoolss_PortType(ndr, "port_type", r->port_type);
17449 ndr_print_uint32(ndr, "reserved", r->reserved);
17453 _PUBLIC_ size_t ndr_size_spoolss_PortInfo2(const struct spoolss_PortInfo2 *r, struct smb_iconv_convenience *ic, int flags)
17455 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfo2, ic);
17458 static enum ndr_err_code ndr_push_spoolss_PortStatus(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortStatus r)
17460 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
17461 return NDR_ERR_SUCCESS;
17464 static enum ndr_err_code ndr_pull_spoolss_PortStatus(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortStatus *r)
17467 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
17469 return NDR_ERR_SUCCESS;
17472 _PUBLIC_ void ndr_print_spoolss_PortStatus(struct ndr_print *ndr, const char *name, enum spoolss_PortStatus r)
17474 const char *val = NULL;
17477 case PORT_STATUS_CLEAR: val = "PORT_STATUS_CLEAR"; break;
17478 case PORT_STATUS_OFFLINE: val = "PORT_STATUS_OFFLINE"; break;
17479 case PORT_STATUS_PAPER_JAM: val = "PORT_STATUS_PAPER_JAM"; break;
17480 case PORT_STATUS_PAPER_OUT: val = "PORT_STATUS_PAPER_OUT"; break;
17481 case PORT_STATUS_OUTPUT_BIN_FULL: val = "PORT_STATUS_OUTPUT_BIN_FULL"; break;
17482 case PORT_STATUS_PAPER_PROBLEM: val = "PORT_STATUS_PAPER_PROBLEM"; break;
17483 case PORT_STATUS_NO_TONER: val = "PORT_STATUS_NO_TONER"; break;
17484 case PORT_STATUS_DOOR_OPEN: val = "PORT_STATUS_DOOR_OPEN"; break;
17485 case PORT_STATUS_USER_INTERVENTION: val = "PORT_STATUS_USER_INTERVENTION"; break;
17486 case PORT_STATUS_OUT_OF_MEMORY: val = "PORT_STATUS_OUT_OF_MEMORY"; break;
17487 case PORT_STATUS_TONER_LOW: val = "PORT_STATUS_TONER_LOW"; break;
17488 case PORT_STATUS_WARMING_UP: val = "PORT_STATUS_WARMING_UP"; break;
17489 case PORT_STATUS_POWER_SAVE: val = "PORT_STATUS_POWER_SAVE"; break;
17491 ndr_print_enum(ndr, name, "ENUM", val, r);
17494 static enum ndr_err_code ndr_push_spoolss_PortSeverity(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortSeverity r)
17496 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
17497 return NDR_ERR_SUCCESS;
17500 static enum ndr_err_code ndr_pull_spoolss_PortSeverity(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortSeverity *r)
17503 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
17505 return NDR_ERR_SUCCESS;
17508 _PUBLIC_ void ndr_print_spoolss_PortSeverity(struct ndr_print *ndr, const char *name, enum spoolss_PortSeverity r)
17510 const char *val = NULL;
17513 case PORT_STATUS_TYPE_ERROR: val = "PORT_STATUS_TYPE_ERROR"; break;
17514 case PORT_STATUS_TYPE_WARNING: val = "PORT_STATUS_TYPE_WARNING"; break;
17515 case PORT_STATUS_TYPE_INFO: val = "PORT_STATUS_TYPE_INFO"; break;
17517 ndr_print_enum(ndr, name, "ENUM", val, r);
17520 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo3 *r)
17522 if (ndr_flags & NDR_SCALARS) {
17523 NDR_CHECK(ndr_push_align(ndr, 5));
17524 NDR_CHECK(ndr_push_spoolss_PortStatus(ndr, NDR_SCALARS, r->status));
17526 uint32_t _flags_save_string = ndr->flags;
17527 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17528 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->status_string));
17529 ndr->flags = _flags_save_string;
17531 NDR_CHECK(ndr_push_spoolss_PortSeverity(ndr, NDR_SCALARS, r->severity));
17532 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17534 if (ndr_flags & NDR_BUFFERS) {
17536 uint32_t _flags_save_string = ndr->flags;
17537 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17538 if (r->status_string) {
17539 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->status_string));
17540 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->status_string));
17541 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->status_string));
17543 ndr->flags = _flags_save_string;
17546 return NDR_ERR_SUCCESS;
17549 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo3 *r)
17551 uint32_t _ptr_status_string;
17552 TALLOC_CTX *_mem_save_status_string_0;
17553 if (ndr_flags & NDR_SCALARS) {
17554 NDR_CHECK(ndr_pull_align(ndr, 5));
17555 NDR_CHECK(ndr_pull_spoolss_PortStatus(ndr, NDR_SCALARS, &r->status));
17557 uint32_t _flags_save_string = ndr->flags;
17558 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17559 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_status_string));
17560 if (_ptr_status_string) {
17561 NDR_PULL_ALLOC(ndr, r->status_string);
17562 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->status_string, _ptr_status_string));
17564 r->status_string = NULL;
17566 ndr->flags = _flags_save_string;
17568 NDR_CHECK(ndr_pull_spoolss_PortSeverity(ndr, NDR_SCALARS, &r->severity));
17569 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17571 if (ndr_flags & NDR_BUFFERS) {
17573 uint32_t _flags_save_string = ndr->flags;
17574 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17575 if (r->status_string) {
17576 uint32_t _relative_save_offset;
17577 _relative_save_offset = ndr->offset;
17578 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->status_string));
17579 _mem_save_status_string_0 = NDR_PULL_GET_MEM_CTX(ndr);
17580 NDR_PULL_SET_MEM_CTX(ndr, r->status_string, 0);
17581 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->status_string));
17582 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_string_0, 0);
17583 if (ndr->offset > ndr->relative_highest_offset) {
17584 ndr->relative_highest_offset = ndr->offset;
17586 ndr->offset = _relative_save_offset;
17588 ndr->flags = _flags_save_string;
17591 return NDR_ERR_SUCCESS;
17594 _PUBLIC_ void ndr_print_spoolss_PortInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo3 *r)
17596 ndr_print_struct(ndr, name, "spoolss_PortInfo3");
17598 ndr_print_spoolss_PortStatus(ndr, "status", r->status);
17599 ndr_print_ptr(ndr, "status_string", r->status_string);
17601 if (r->status_string) {
17602 ndr_print_string(ndr, "status_string", r->status_string);
17605 ndr_print_spoolss_PortSeverity(ndr, "severity", r->severity);
17609 _PUBLIC_ size_t ndr_size_spoolss_PortInfo3(const struct spoolss_PortInfo3 *r, struct smb_iconv_convenience *ic, int flags)
17611 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfo3, ic);
17614 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfoFF(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfoFF *r)
17616 if (ndr_flags & NDR_SCALARS) {
17617 NDR_CHECK(ndr_push_align(ndr, 5));
17619 uint32_t _flags_save_string = ndr->flags;
17620 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17621 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
17622 ndr->flags = _flags_save_string;
17624 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->monitor_data));
17625 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17627 if (ndr_flags & NDR_BUFFERS) {
17629 uint32_t _flags_save_string = ndr->flags;
17630 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17631 if (r->port_name) {
17632 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->port_name));
17633 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
17634 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->port_name));
17636 ndr->flags = _flags_save_string;
17639 return NDR_ERR_SUCCESS;
17642 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfoFF(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfoFF *r)
17644 uint32_t _ptr_port_name;
17645 TALLOC_CTX *_mem_save_port_name_0;
17646 if (ndr_flags & NDR_SCALARS) {
17647 NDR_CHECK(ndr_pull_align(ndr, 5));
17649 uint32_t _flags_save_string = ndr->flags;
17650 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17651 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
17652 if (_ptr_port_name) {
17653 NDR_PULL_ALLOC(ndr, r->port_name);
17654 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
17656 r->port_name = NULL;
17658 ndr->flags = _flags_save_string;
17660 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->monitor_data));
17661 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17663 if (ndr_flags & NDR_BUFFERS) {
17665 uint32_t _flags_save_string = ndr->flags;
17666 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17667 if (r->port_name) {
17668 uint32_t _relative_save_offset;
17669 _relative_save_offset = ndr->offset;
17670 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
17671 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17672 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
17673 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
17674 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
17675 if (ndr->offset > ndr->relative_highest_offset) {
17676 ndr->relative_highest_offset = ndr->offset;
17678 ndr->offset = _relative_save_offset;
17680 ndr->flags = _flags_save_string;
17683 return NDR_ERR_SUCCESS;
17686 _PUBLIC_ void ndr_print_spoolss_PortInfoFF(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfoFF *r)
17688 ndr_print_struct(ndr, name, "spoolss_PortInfoFF");
17690 ndr_print_ptr(ndr, "port_name", r->port_name);
17692 if (r->port_name) {
17693 ndr_print_string(ndr, "port_name", r->port_name);
17696 ndr_print_DATA_BLOB(ndr, "monitor_data", r->monitor_data);
17700 _PUBLIC_ size_t ndr_size_spoolss_PortInfoFF(const struct spoolss_PortInfoFF *r, struct smb_iconv_convenience *ic, int flags)
17702 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfoFF, ic);
17705 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PortInfo *r)
17707 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
17709 uint32_t _flags_save_UNION = ndr->flags;
17710 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
17711 if (ndr_flags & NDR_SCALARS) {
17712 int level = ndr_push_get_switch_value(ndr, r);
17713 NDR_CHECK(ndr_push_union_align(ndr, 5));
17716 NDR_CHECK(ndr_push_align(ndr, 5));
17717 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
17718 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr, NDR_SCALARS, &r->info1));
17722 NDR_CHECK(ndr_push_align(ndr, 5));
17723 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
17724 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr, NDR_SCALARS, &r->info2));
17728 NDR_CHECK(ndr_push_align(ndr, 5));
17729 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
17730 NDR_CHECK(ndr_push_spoolss_PortInfo3(ndr, NDR_SCALARS, &r->info3));
17734 NDR_CHECK(ndr_push_align(ndr, 5));
17735 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
17736 NDR_CHECK(ndr_push_spoolss_PortInfoFF(ndr, NDR_SCALARS, &r->infoFF));
17744 if (ndr_flags & NDR_BUFFERS) {
17745 int level = ndr_push_get_switch_value(ndr, r);
17746 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
17749 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr, NDR_BUFFERS, &r->info1));
17753 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr, NDR_BUFFERS, &r->info2));
17757 NDR_CHECK(ndr_push_spoolss_PortInfo3(ndr, NDR_BUFFERS, &r->info3));
17761 NDR_CHECK(ndr_push_spoolss_PortInfoFF(ndr, NDR_BUFFERS, &r->infoFF));
17769 ndr->flags = _flags_save_UNION;
17771 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
17772 return NDR_ERR_SUCCESS;
17775 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PortInfo *r)
17777 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
17780 uint32_t _flags_save_UNION = ndr->flags;
17781 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
17782 level = ndr_pull_get_switch_value(ndr, r);
17783 if (ndr_flags & NDR_SCALARS) {
17784 NDR_CHECK(ndr_pull_union_align(ndr, 5));
17787 NDR_CHECK(ndr_pull_align(ndr, 5));
17788 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
17789 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr, NDR_SCALARS, &r->info1));
17793 NDR_CHECK(ndr_pull_align(ndr, 5));
17794 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
17795 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr, NDR_SCALARS, &r->info2));
17799 NDR_CHECK(ndr_pull_align(ndr, 5));
17800 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
17801 NDR_CHECK(ndr_pull_spoolss_PortInfo3(ndr, NDR_SCALARS, &r->info3));
17805 NDR_CHECK(ndr_pull_align(ndr, 5));
17806 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
17807 NDR_CHECK(ndr_pull_spoolss_PortInfoFF(ndr, NDR_SCALARS, &r->infoFF));
17815 if (ndr_flags & NDR_BUFFERS) {
17816 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
17819 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr, NDR_BUFFERS, &r->info1));
17823 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr, NDR_BUFFERS, &r->info2));
17827 NDR_CHECK(ndr_pull_spoolss_PortInfo3(ndr, NDR_BUFFERS, &r->info3));
17831 NDR_CHECK(ndr_pull_spoolss_PortInfoFF(ndr, NDR_BUFFERS, &r->infoFF));
17839 ndr->flags = _flags_save_UNION;
17841 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
17842 return NDR_ERR_SUCCESS;
17845 _PUBLIC_ void ndr_print_spoolss_PortInfo(struct ndr_print *ndr, const char *name, const union spoolss_PortInfo *r)
17849 uint32_t _flags_save_UNION = ndr->flags;
17850 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
17851 level = ndr_print_get_switch_value(ndr, r);
17852 ndr_print_union(ndr, name, level, "spoolss_PortInfo");
17855 ndr_print_spoolss_PortInfo1(ndr, "info1", &r->info1);
17859 ndr_print_spoolss_PortInfo2(ndr, "info2", &r->info2);
17863 ndr_print_spoolss_PortInfo3(ndr, "info3", &r->info3);
17867 ndr_print_spoolss_PortInfoFF(ndr, "infoFF", &r->infoFF);
17874 ndr->flags = _flags_save_UNION;
17878 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorInfo1 *r)
17880 if (ndr_flags & NDR_SCALARS) {
17881 NDR_CHECK(ndr_push_align(ndr, 5));
17883 uint32_t _flags_save_string = ndr->flags;
17884 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17885 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
17886 ndr->flags = _flags_save_string;
17888 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17890 if (ndr_flags & NDR_BUFFERS) {
17892 uint32_t _flags_save_string = ndr->flags;
17893 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17894 if (r->monitor_name) {
17895 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name));
17896 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
17897 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->monitor_name));
17899 ndr->flags = _flags_save_string;
17902 return NDR_ERR_SUCCESS;
17905 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorInfo1 *r)
17907 uint32_t _ptr_monitor_name;
17908 TALLOC_CTX *_mem_save_monitor_name_0;
17909 if (ndr_flags & NDR_SCALARS) {
17910 NDR_CHECK(ndr_pull_align(ndr, 5));
17912 uint32_t _flags_save_string = ndr->flags;
17913 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17914 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
17915 if (_ptr_monitor_name) {
17916 NDR_PULL_ALLOC(ndr, r->monitor_name);
17917 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
17919 r->monitor_name = NULL;
17921 ndr->flags = _flags_save_string;
17923 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17925 if (ndr_flags & NDR_BUFFERS) {
17927 uint32_t _flags_save_string = ndr->flags;
17928 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17929 if (r->monitor_name) {
17930 uint32_t _relative_save_offset;
17931 _relative_save_offset = ndr->offset;
17932 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
17933 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17934 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
17935 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
17936 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
17937 if (ndr->offset > ndr->relative_highest_offset) {
17938 ndr->relative_highest_offset = ndr->offset;
17940 ndr->offset = _relative_save_offset;
17942 ndr->flags = _flags_save_string;
17945 return NDR_ERR_SUCCESS;
17948 _PUBLIC_ void ndr_print_spoolss_MonitorInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorInfo1 *r)
17950 ndr_print_struct(ndr, name, "spoolss_MonitorInfo1");
17952 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
17954 if (r->monitor_name) {
17955 ndr_print_string(ndr, "monitor_name", r->monitor_name);
17961 _PUBLIC_ size_t ndr_size_spoolss_MonitorInfo1(const struct spoolss_MonitorInfo1 *r, struct smb_iconv_convenience *ic, int flags)
17963 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_MonitorInfo1, ic);
17966 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorInfo2 *r)
17968 if (ndr_flags & NDR_SCALARS) {
17969 NDR_CHECK(ndr_push_align(ndr, 5));
17971 uint32_t _flags_save_string = ndr->flags;
17972 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17973 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
17974 ndr->flags = _flags_save_string;
17977 uint32_t _flags_save_string = ndr->flags;
17978 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17979 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->environment));
17980 ndr->flags = _flags_save_string;
17983 uint32_t _flags_save_string = ndr->flags;
17984 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17985 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dll_name));
17986 ndr->flags = _flags_save_string;
17988 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17990 if (ndr_flags & NDR_BUFFERS) {
17992 uint32_t _flags_save_string = ndr->flags;
17993 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17994 if (r->monitor_name) {
17995 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name));
17996 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
17997 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->monitor_name));
17999 ndr->flags = _flags_save_string;
18002 uint32_t _flags_save_string = ndr->flags;
18003 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18004 if (r->environment) {
18005 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->environment));
18006 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->environment));
18007 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->environment));
18009 ndr->flags = _flags_save_string;
18012 uint32_t _flags_save_string = ndr->flags;
18013 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18015 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->dll_name));
18016 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dll_name));
18017 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->dll_name));
18019 ndr->flags = _flags_save_string;
18022 return NDR_ERR_SUCCESS;
18025 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorInfo2 *r)
18027 uint32_t _ptr_monitor_name;
18028 TALLOC_CTX *_mem_save_monitor_name_0;
18029 uint32_t _ptr_environment;
18030 TALLOC_CTX *_mem_save_environment_0;
18031 uint32_t _ptr_dll_name;
18032 TALLOC_CTX *_mem_save_dll_name_0;
18033 if (ndr_flags & NDR_SCALARS) {
18034 NDR_CHECK(ndr_pull_align(ndr, 5));
18036 uint32_t _flags_save_string = ndr->flags;
18037 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18038 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
18039 if (_ptr_monitor_name) {
18040 NDR_PULL_ALLOC(ndr, r->monitor_name);
18041 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
18043 r->monitor_name = NULL;
18045 ndr->flags = _flags_save_string;
18048 uint32_t _flags_save_string = ndr->flags;
18049 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18050 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
18051 if (_ptr_environment) {
18052 NDR_PULL_ALLOC(ndr, r->environment);
18053 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->environment, _ptr_environment));
18055 r->environment = NULL;
18057 ndr->flags = _flags_save_string;
18060 uint32_t _flags_save_string = ndr->flags;
18061 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18062 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dll_name));
18063 if (_ptr_dll_name) {
18064 NDR_PULL_ALLOC(ndr, r->dll_name);
18065 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dll_name, _ptr_dll_name));
18067 r->dll_name = NULL;
18069 ndr->flags = _flags_save_string;
18071 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
18073 if (ndr_flags & NDR_BUFFERS) {
18075 uint32_t _flags_save_string = ndr->flags;
18076 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18077 if (r->monitor_name) {
18078 uint32_t _relative_save_offset;
18079 _relative_save_offset = ndr->offset;
18080 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
18081 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
18082 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
18083 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
18084 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
18085 if (ndr->offset > ndr->relative_highest_offset) {
18086 ndr->relative_highest_offset = ndr->offset;
18088 ndr->offset = _relative_save_offset;
18090 ndr->flags = _flags_save_string;
18093 uint32_t _flags_save_string = ndr->flags;
18094 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18095 if (r->environment) {
18096 uint32_t _relative_save_offset;
18097 _relative_save_offset = ndr->offset;
18098 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->environment));
18099 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
18100 NDR_PULL_SET_MEM_CTX(ndr, r->environment, 0);
18101 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->environment));
18102 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
18103 if (ndr->offset > ndr->relative_highest_offset) {
18104 ndr->relative_highest_offset = ndr->offset;
18106 ndr->offset = _relative_save_offset;
18108 ndr->flags = _flags_save_string;
18111 uint32_t _flags_save_string = ndr->flags;
18112 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18114 uint32_t _relative_save_offset;
18115 _relative_save_offset = ndr->offset;
18116 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dll_name));
18117 _mem_save_dll_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
18118 NDR_PULL_SET_MEM_CTX(ndr, r->dll_name, 0);
18119 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->dll_name));
18120 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dll_name_0, 0);
18121 if (ndr->offset > ndr->relative_highest_offset) {
18122 ndr->relative_highest_offset = ndr->offset;
18124 ndr->offset = _relative_save_offset;
18126 ndr->flags = _flags_save_string;
18129 return NDR_ERR_SUCCESS;
18132 _PUBLIC_ void ndr_print_spoolss_MonitorInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorInfo2 *r)
18134 ndr_print_struct(ndr, name, "spoolss_MonitorInfo2");
18136 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
18138 if (r->monitor_name) {
18139 ndr_print_string(ndr, "monitor_name", r->monitor_name);
18142 ndr_print_ptr(ndr, "environment", r->environment);
18144 if (r->environment) {
18145 ndr_print_string(ndr, "environment", r->environment);
18148 ndr_print_ptr(ndr, "dll_name", r->dll_name);
18151 ndr_print_string(ndr, "dll_name", r->dll_name);
18157 _PUBLIC_ size_t ndr_size_spoolss_MonitorInfo2(const struct spoolss_MonitorInfo2 *r, struct smb_iconv_convenience *ic, int flags)
18159 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_MonitorInfo2, ic);
18162 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_MonitorInfo *r)
18164 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
18166 uint32_t _flags_save_UNION = ndr->flags;
18167 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
18168 if (ndr_flags & NDR_SCALARS) {
18169 int level = ndr_push_get_switch_value(ndr, r);
18170 NDR_CHECK(ndr_push_union_align(ndr, 5));
18173 NDR_CHECK(ndr_push_align(ndr, 5));
18174 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
18175 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr, NDR_SCALARS, &r->info1));
18179 NDR_CHECK(ndr_push_align(ndr, 5));
18180 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
18181 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr, NDR_SCALARS, &r->info2));
18189 if (ndr_flags & NDR_BUFFERS) {
18190 int level = ndr_push_get_switch_value(ndr, r);
18191 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
18194 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr, NDR_BUFFERS, &r->info1));
18198 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr, NDR_BUFFERS, &r->info2));
18206 ndr->flags = _flags_save_UNION;
18208 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
18209 return NDR_ERR_SUCCESS;
18212 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_MonitorInfo *r)
18214 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
18217 uint32_t _flags_save_UNION = ndr->flags;
18218 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
18219 level = ndr_pull_get_switch_value(ndr, r);
18220 if (ndr_flags & NDR_SCALARS) {
18221 NDR_CHECK(ndr_pull_union_align(ndr, 5));
18224 NDR_CHECK(ndr_pull_align(ndr, 5));
18225 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
18226 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr, NDR_SCALARS, &r->info1));
18230 NDR_CHECK(ndr_pull_align(ndr, 5));
18231 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
18232 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr, NDR_SCALARS, &r->info2));
18240 if (ndr_flags & NDR_BUFFERS) {
18241 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
18244 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr, NDR_BUFFERS, &r->info1));
18248 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr, NDR_BUFFERS, &r->info2));
18256 ndr->flags = _flags_save_UNION;
18258 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
18259 return NDR_ERR_SUCCESS;
18262 _PUBLIC_ void ndr_print_spoolss_MonitorInfo(struct ndr_print *ndr, const char *name, const union spoolss_MonitorInfo *r)
18266 uint32_t _flags_save_UNION = ndr->flags;
18267 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
18268 level = ndr_print_get_switch_value(ndr, r);
18269 ndr_print_union(ndr, name, level, "spoolss_MonitorInfo");
18272 ndr_print_spoolss_MonitorInfo1(ndr, "info1", &r->info1);
18276 ndr_print_spoolss_MonitorInfo2(ndr, "info2", &r->info2);
18283 ndr->flags = _flags_save_UNION;
18287 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcDataTypesInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcDataTypesInfo1 *r)
18289 if (ndr_flags & NDR_SCALARS) {
18290 NDR_CHECK(ndr_push_align(ndr, 5));
18292 uint32_t _flags_save_string = ndr->flags;
18293 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18294 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->name_array));
18295 ndr->flags = _flags_save_string;
18297 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18299 if (ndr_flags & NDR_BUFFERS) {
18301 uint32_t _flags_save_string = ndr->flags;
18302 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18303 if (r->name_array) {
18304 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->name_array));
18305 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->name_array));
18306 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->name_array));
18308 ndr->flags = _flags_save_string;
18311 return NDR_ERR_SUCCESS;
18314 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcDataTypesInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcDataTypesInfo1 *r)
18316 uint32_t _ptr_name_array;
18317 TALLOC_CTX *_mem_save_name_array_0;
18318 if (ndr_flags & NDR_SCALARS) {
18319 NDR_CHECK(ndr_pull_align(ndr, 5));
18321 uint32_t _flags_save_string = ndr->flags;
18322 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18323 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name_array));
18324 if (_ptr_name_array) {
18325 NDR_PULL_ALLOC(ndr, r->name_array);
18326 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->name_array, _ptr_name_array));
18328 r->name_array = NULL;
18330 ndr->flags = _flags_save_string;
18332 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
18334 if (ndr_flags & NDR_BUFFERS) {
18336 uint32_t _flags_save_string = ndr->flags;
18337 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18338 if (r->name_array) {
18339 uint32_t _relative_save_offset;
18340 _relative_save_offset = ndr->offset;
18341 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->name_array));
18342 _mem_save_name_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
18343 NDR_PULL_SET_MEM_CTX(ndr, r->name_array, 0);
18344 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->name_array));
18345 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_array_0, 0);
18346 if (ndr->offset > ndr->relative_highest_offset) {
18347 ndr->relative_highest_offset = ndr->offset;
18349 ndr->offset = _relative_save_offset;
18351 ndr->flags = _flags_save_string;
18354 return NDR_ERR_SUCCESS;
18357 _PUBLIC_ void ndr_print_spoolss_PrintProcDataTypesInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcDataTypesInfo1 *r)
18359 ndr_print_struct(ndr, name, "spoolss_PrintProcDataTypesInfo1");
18361 ndr_print_ptr(ndr, "name_array", r->name_array);
18363 if (r->name_array) {
18364 ndr_print_string(ndr, "name_array", r->name_array);
18370 _PUBLIC_ size_t ndr_size_spoolss_PrintProcDataTypesInfo1(const struct spoolss_PrintProcDataTypesInfo1 *r, struct smb_iconv_convenience *ic, int flags)
18372 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcDataTypesInfo1, ic);
18375 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcDataTypesInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcDataTypesInfo *r)
18377 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
18379 uint32_t _flags_save_UNION = ndr->flags;
18380 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
18381 if (ndr_flags & NDR_SCALARS) {
18382 int level = ndr_push_get_switch_value(ndr, r);
18383 NDR_CHECK(ndr_push_union_align(ndr, 5));
18386 NDR_CHECK(ndr_push_align(ndr, 5));
18387 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
18388 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo1(ndr, NDR_SCALARS, &r->info1));
18396 if (ndr_flags & NDR_BUFFERS) {
18397 int level = ndr_push_get_switch_value(ndr, r);
18398 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
18401 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo1(ndr, NDR_BUFFERS, &r->info1));
18409 ndr->flags = _flags_save_UNION;
18411 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
18412 return NDR_ERR_SUCCESS;
18415 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcDataTypesInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcDataTypesInfo *r)
18417 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
18420 uint32_t _flags_save_UNION = ndr->flags;
18421 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
18422 level = ndr_pull_get_switch_value(ndr, r);
18423 if (ndr_flags & NDR_SCALARS) {
18424 NDR_CHECK(ndr_pull_union_align(ndr, 5));
18427 NDR_CHECK(ndr_pull_align(ndr, 5));
18428 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
18429 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo1(ndr, NDR_SCALARS, &r->info1));
18437 if (ndr_flags & NDR_BUFFERS) {
18438 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
18441 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo1(ndr, NDR_BUFFERS, &r->info1));
18449 ndr->flags = _flags_save_UNION;
18451 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
18452 return NDR_ERR_SUCCESS;
18455 _PUBLIC_ void ndr_print_spoolss_PrintProcDataTypesInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcDataTypesInfo *r)
18459 uint32_t _flags_save_UNION = ndr->flags;
18460 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
18461 level = ndr_print_get_switch_value(ndr, r);
18462 ndr_print_union(ndr, name, level, "spoolss_PrintProcDataTypesInfo");
18465 ndr_print_spoolss_PrintProcDataTypesInfo1(ndr, "info1", &r->info1);
18472 ndr->flags = _flags_save_UNION;
18476 static enum ndr_err_code ndr_push_spoolss_PrinterChangeFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
18478 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
18479 return NDR_ERR_SUCCESS;
18482 static enum ndr_err_code ndr_pull_spoolss_PrinterChangeFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
18485 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
18487 return NDR_ERR_SUCCESS;
18490 _PUBLIC_ void ndr_print_spoolss_PrinterChangeFlags(struct ndr_print *ndr, const char *name, uint32_t r)
18492 ndr_print_uint32(ndr, name, r);
18494 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER", PRINTER_CHANGE_ADD_PRINTER, r);
18495 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER", PRINTER_CHANGE_SET_PRINTER, r);
18496 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER", PRINTER_CHANGE_DELETE_PRINTER, r);
18497 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_FAILED_CONNECTION_PRINTER", PRINTER_CHANGE_FAILED_CONNECTION_PRINTER, r);
18498 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_JOB", PRINTER_CHANGE_ADD_JOB, r);
18499 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_JOB", PRINTER_CHANGE_SET_JOB, r);
18500 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_JOB", PRINTER_CHANGE_DELETE_JOB, r);
18501 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_WRITE_JOB", PRINTER_CHANGE_WRITE_JOB, r);
18502 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_FORM", PRINTER_CHANGE_ADD_FORM, r);
18503 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_FORM", PRINTER_CHANGE_SET_FORM, r);
18504 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_FORM", PRINTER_CHANGE_DELETE_FORM, r);
18505 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PORT", PRINTER_CHANGE_ADD_PORT, r);
18506 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_CONFIGURE_PORT", PRINTER_CHANGE_CONFIGURE_PORT, r);
18507 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PORT", PRINTER_CHANGE_DELETE_PORT, r);
18508 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINT_PROCESSOR", PRINTER_CHANGE_ADD_PRINT_PROCESSOR, r);
18509 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINT_PROCESSOR", PRINTER_CHANGE_DELETE_PRINT_PROCESSOR, r);
18510 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SERVER", PRINTER_CHANGE_SERVER, r);
18511 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER_DRIVER", PRINTER_CHANGE_ADD_PRINTER_DRIVER, r);
18512 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER_DRIVER", PRINTER_CHANGE_SET_PRINTER_DRIVER, r);
18513 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER_DRIVER", PRINTER_CHANGE_DELETE_PRINTER_DRIVER, r);
18514 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_TIMEOUT", PRINTER_CHANGE_TIMEOUT, r);
18518 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobNotifyField(struct ndr_push *ndr, int ndr_flags, enum spoolss_JobNotifyField r)
18520 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
18521 return NDR_ERR_SUCCESS;
18524 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobNotifyField(struct ndr_pull *ndr, int ndr_flags, enum spoolss_JobNotifyField *r)
18527 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
18529 return NDR_ERR_SUCCESS;
18532 _PUBLIC_ void ndr_print_spoolss_JobNotifyField(struct ndr_print *ndr, const char *name, enum spoolss_JobNotifyField r)
18534 const char *val = NULL;
18537 case JOB_NOTIFY_FIELD_PRINTER_NAME: val = "JOB_NOTIFY_FIELD_PRINTER_NAME"; break;
18538 case JOB_NOTIFY_FIELD_MACHINE_NAME: val = "JOB_NOTIFY_FIELD_MACHINE_NAME"; break;
18539 case JOB_NOTIFY_FIELD_PORT_NAME: val = "JOB_NOTIFY_FIELD_PORT_NAME"; break;
18540 case JOB_NOTIFY_FIELD_USER_NAME: val = "JOB_NOTIFY_FIELD_USER_NAME"; break;
18541 case JOB_NOTIFY_FIELD_NOTIFY_NAME: val = "JOB_NOTIFY_FIELD_NOTIFY_NAME"; break;
18542 case JOB_NOTIFY_FIELD_DATATYPE: val = "JOB_NOTIFY_FIELD_DATATYPE"; break;
18543 case JOB_NOTIFY_FIELD_PRINT_PROCESSOR: val = "JOB_NOTIFY_FIELD_PRINT_PROCESSOR"; break;
18544 case JOB_NOTIFY_FIELD_PARAMETERS: val = "JOB_NOTIFY_FIELD_PARAMETERS"; break;
18545 case JOB_NOTIFY_FIELD_DRIVER_NAME: val = "JOB_NOTIFY_FIELD_DRIVER_NAME"; break;
18546 case JOB_NOTIFY_FIELD_DEVMODE: val = "JOB_NOTIFY_FIELD_DEVMODE"; break;
18547 case JOB_NOTIFY_FIELD_STATUS: val = "JOB_NOTIFY_FIELD_STATUS"; break;
18548 case JOB_NOTIFY_FIELD_STATUS_STRING: val = "JOB_NOTIFY_FIELD_STATUS_STRING"; break;
18549 case JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR: val = "JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR"; break;
18550 case JOB_NOTIFY_FIELD_DOCUMENT: val = "JOB_NOTIFY_FIELD_DOCUMENT"; break;
18551 case JOB_NOTIFY_FIELD_PRIORITY: val = "JOB_NOTIFY_FIELD_PRIORITY"; break;
18552 case JOB_NOTIFY_FIELD_POSITION: val = "JOB_NOTIFY_FIELD_POSITION"; break;
18553 case JOB_NOTIFY_FIELD_SUBMITTED: val = "JOB_NOTIFY_FIELD_SUBMITTED"; break;
18554 case JOB_NOTIFY_FIELD_START_TIME: val = "JOB_NOTIFY_FIELD_START_TIME"; break;
18555 case JOB_NOTIFY_FIELD_UNTIL_TIME: val = "JOB_NOTIFY_FIELD_UNTIL_TIME"; break;
18556 case JOB_NOTIFY_FIELD_TIME: val = "JOB_NOTIFY_FIELD_TIME"; break;
18557 case JOB_NOTIFY_FIELD_TOTAL_PAGES: val = "JOB_NOTIFY_FIELD_TOTAL_PAGES"; break;
18558 case JOB_NOTIFY_FIELD_PAGES_PRINTED: val = "JOB_NOTIFY_FIELD_PAGES_PRINTED"; break;
18559 case JOB_NOTIFY_FIELD_TOTAL_BYTES: val = "JOB_NOTIFY_FIELD_TOTAL_BYTES"; break;
18560 case JOB_NOTIFY_FIELD_BYTES_PRINTED: val = "JOB_NOTIFY_FIELD_BYTES_PRINTED"; break;
18562 ndr_print_enum(ndr, name, "ENUM", val, r);
18565 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintNotifyField(struct ndr_push *ndr, int ndr_flags, enum spoolss_PrintNotifyField r)
18567 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
18568 return NDR_ERR_SUCCESS;
18571 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintNotifyField(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PrintNotifyField *r)
18574 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
18576 return NDR_ERR_SUCCESS;
18579 _PUBLIC_ void ndr_print_spoolss_PrintNotifyField(struct ndr_print *ndr, const char *name, enum spoolss_PrintNotifyField r)
18581 const char *val = NULL;
18584 case PRINTER_NOTIFY_FIELD_SERVER_NAME: val = "PRINTER_NOTIFY_FIELD_SERVER_NAME"; break;
18585 case PRINTER_NOTIFY_FIELD_PRINTER_NAME: val = "PRINTER_NOTIFY_FIELD_PRINTER_NAME"; break;
18586 case PRINTER_NOTIFY_FIELD_SHARE_NAME: val = "PRINTER_NOTIFY_FIELD_SHARE_NAME"; break;
18587 case PRINTER_NOTIFY_FIELD_PORT_NAME: val = "PRINTER_NOTIFY_FIELD_PORT_NAME"; break;
18588 case PRINTER_NOTIFY_FIELD_DRIVER_NAME: val = "PRINTER_NOTIFY_FIELD_DRIVER_NAME"; break;
18589 case PRINTER_NOTIFY_FIELD_COMMENT: val = "PRINTER_NOTIFY_FIELD_COMMENT"; break;
18590 case PRINTER_NOTIFY_FIELD_LOCATION: val = "PRINTER_NOTIFY_FIELD_LOCATION"; break;
18591 case PRINTER_NOTIFY_FIELD_DEVMODE: val = "PRINTER_NOTIFY_FIELD_DEVMODE"; break;
18592 case PRINTER_NOTIFY_FIELD_SEPFILE: val = "PRINTER_NOTIFY_FIELD_SEPFILE"; break;
18593 case PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR: val = "PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR"; break;
18594 case PRINTER_NOTIFY_FIELD_PARAMETERS: val = "PRINTER_NOTIFY_FIELD_PARAMETERS"; break;
18595 case PRINTER_NOTIFY_FIELD_DATATYPE: val = "PRINTER_NOTIFY_FIELD_DATATYPE"; break;
18596 case PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR: val = "PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR"; break;
18597 case PRINTER_NOTIFY_FIELD_ATTRIBUTES: val = "PRINTER_NOTIFY_FIELD_ATTRIBUTES"; break;
18598 case PRINTER_NOTIFY_FIELD_PRIORITY: val = "PRINTER_NOTIFY_FIELD_PRIORITY"; break;
18599 case PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY: val = "PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY"; break;
18600 case PRINTER_NOTIFY_FIELD_START_TIME: val = "PRINTER_NOTIFY_FIELD_START_TIME"; break;
18601 case PRINTER_NOTIFY_FIELD_UNTIL_TIME: val = "PRINTER_NOTIFY_FIELD_UNTIL_TIME"; break;
18602 case PRINTER_NOTIFY_FIELD_STATUS: val = "PRINTER_NOTIFY_FIELD_STATUS"; break;
18603 case PRINTER_NOTIFY_FIELD_STATUS_STRING: val = "PRINTER_NOTIFY_FIELD_STATUS_STRING"; break;
18604 case PRINTER_NOTIFY_FIELD_CJOBS: val = "PRINTER_NOTIFY_FIELD_CJOBS"; break;
18605 case PRINTER_NOTIFY_FIELD_AVERAGE_PPM: val = "PRINTER_NOTIFY_FIELD_AVERAGE_PPM"; break;
18606 case PRINTER_NOTIFY_FIELD_TOTAL_PAGES: val = "PRINTER_NOTIFY_FIELD_TOTAL_PAGES"; break;
18607 case PRINTER_NOTIFY_FIELD_PAGES_PRINTED: val = "PRINTER_NOTIFY_FIELD_PAGES_PRINTED"; break;
18608 case PRINTER_NOTIFY_FIELD_TOTAL_BYTES: val = "PRINTER_NOTIFY_FIELD_TOTAL_BYTES"; break;
18609 case PRINTER_NOTIFY_FIELD_BYTES_PRINTED: val = "PRINTER_NOTIFY_FIELD_BYTES_PRINTED"; break;
18610 case PRINTER_NOTIFY_FIELD_OBJECT_GUID: val = "PRINTER_NOTIFY_FIELD_OBJECT_GUID"; break;
18611 case PRINTER_NOTIFY_FIELD_FRIENDLY_NAME: val = "PRINTER_NOTIFY_FIELD_FRIENDLY_NAME"; break;
18613 ndr_print_enum(ndr, name, "ENUM", val, r);
18616 static enum ndr_err_code ndr_push_spoolss_NotifyType(struct ndr_push *ndr, int ndr_flags, enum spoolss_NotifyType r)
18618 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
18619 return NDR_ERR_SUCCESS;
18622 static enum ndr_err_code ndr_pull_spoolss_NotifyType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_NotifyType *r)
18625 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
18627 return NDR_ERR_SUCCESS;
18630 _PUBLIC_ void ndr_print_spoolss_NotifyType(struct ndr_print *ndr, const char *name, enum spoolss_NotifyType r)
18632 const char *val = NULL;
18635 case PRINTER_NOTIFY_TYPE: val = "PRINTER_NOTIFY_TYPE"; break;
18636 case JOB_NOTIFY_TYPE: val = "JOB_NOTIFY_TYPE"; break;
18638 ndr_print_enum(ndr, name, "ENUM", val, r);
18641 static enum ndr_err_code ndr_push_spoolss_Field(struct ndr_push *ndr, int ndr_flags, const union spoolss_Field *r)
18643 if (ndr_flags & NDR_SCALARS) {
18644 int level = ndr_push_get_switch_value(ndr, r);
18645 NDR_CHECK(ndr_push_union_align(ndr, 2));
18647 case PRINTER_NOTIFY_TYPE: {
18648 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->field));
18651 case JOB_NOTIFY_TYPE: {
18652 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->field));
18656 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->field));
18661 if (ndr_flags & NDR_BUFFERS) {
18662 int level = ndr_push_get_switch_value(ndr, r);
18664 case PRINTER_NOTIFY_TYPE:
18667 case JOB_NOTIFY_TYPE:
18675 return NDR_ERR_SUCCESS;
18678 static enum ndr_err_code ndr_pull_spoolss_Field(struct ndr_pull *ndr, int ndr_flags, union spoolss_Field *r)
18681 level = ndr_pull_get_switch_value(ndr, r);
18682 if (ndr_flags & NDR_SCALARS) {
18683 NDR_CHECK(ndr_pull_union_align(ndr, 2));
18685 case PRINTER_NOTIFY_TYPE: {
18686 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->field));
18689 case JOB_NOTIFY_TYPE: {
18690 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->field));
18694 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->field));
18699 if (ndr_flags & NDR_BUFFERS) {
18701 case PRINTER_NOTIFY_TYPE:
18704 case JOB_NOTIFY_TYPE:
18712 return NDR_ERR_SUCCESS;
18715 static enum ndr_err_code ndr_push_spoolss_NotifyOptionType(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyOptionType *r)
18717 uint32_t cntr_fields_1;
18718 if (ndr_flags & NDR_SCALARS) {
18719 NDR_CHECK(ndr_push_align(ndr, 5));
18720 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr, NDR_SCALARS, r->type));
18721 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->u1));
18722 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u2));
18723 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u3));
18724 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
18725 NDR_CHECK(ndr_push_unique_ptr(ndr, r->fields));
18726 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18728 if (ndr_flags & NDR_BUFFERS) {
18730 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
18731 for (cntr_fields_1 = 0; cntr_fields_1 < r->count; cntr_fields_1++) {
18732 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->fields[cntr_fields_1], r->type));
18733 NDR_CHECK(ndr_push_spoolss_Field(ndr, NDR_SCALARS, &r->fields[cntr_fields_1]));
18737 return NDR_ERR_SUCCESS;
18740 static enum ndr_err_code ndr_pull_spoolss_NotifyOptionType(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyOptionType *r)
18742 uint32_t _ptr_fields;
18743 uint32_t cntr_fields_1;
18744 TALLOC_CTX *_mem_save_fields_0;
18745 TALLOC_CTX *_mem_save_fields_1;
18746 if (ndr_flags & NDR_SCALARS) {
18747 NDR_CHECK(ndr_pull_align(ndr, 5));
18748 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr, NDR_SCALARS, &r->type));
18749 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->u1));
18750 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u2));
18751 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u3));
18752 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
18753 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_fields));
18755 NDR_PULL_ALLOC(ndr, r->fields);
18759 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
18761 if (ndr_flags & NDR_BUFFERS) {
18763 _mem_save_fields_0 = NDR_PULL_GET_MEM_CTX(ndr);
18764 NDR_PULL_SET_MEM_CTX(ndr, r->fields, 0);
18765 NDR_CHECK(ndr_pull_array_size(ndr, &r->fields));
18766 NDR_PULL_ALLOC_N(ndr, r->fields, ndr_get_array_size(ndr, &r->fields));
18767 _mem_save_fields_1 = NDR_PULL_GET_MEM_CTX(ndr);
18768 NDR_PULL_SET_MEM_CTX(ndr, r->fields, 0);
18769 for (cntr_fields_1 = 0; cntr_fields_1 < r->count; cntr_fields_1++) {
18770 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->fields[cntr_fields_1], r->type));
18771 NDR_CHECK(ndr_pull_spoolss_Field(ndr, NDR_SCALARS, &r->fields[cntr_fields_1]));
18773 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fields_1, 0);
18774 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fields_0, 0);
18777 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->fields, r->count));
18780 return NDR_ERR_SUCCESS;
18783 _PUBLIC_ void ndr_print_spoolss_NotifyOptionType(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyOptionType *r)
18785 uint32_t cntr_fields_1;
18786 ndr_print_struct(ndr, name, "spoolss_NotifyOptionType");
18788 ndr_print_spoolss_NotifyType(ndr, "type", r->type);
18789 ndr_print_uint16(ndr, "u1", r->u1);
18790 ndr_print_uint32(ndr, "u2", r->u2);
18791 ndr_print_uint32(ndr, "u3", r->u3);
18792 ndr_print_uint32(ndr, "count", r->count);
18793 ndr_print_ptr(ndr, "fields", r->fields);
18796 ndr->print(ndr, "%s: ARRAY(%d)", "fields", (int)r->count);
18798 for (cntr_fields_1=0;cntr_fields_1<r->count;cntr_fields_1++) {
18800 if (asprintf(&idx_1, "[%d]", cntr_fields_1) != -1) {
18801 ndr_print_set_switch_value(ndr, &r->fields[cntr_fields_1], r->type);
18802 ndr_print_spoolss_Field(ndr, "fields", &r->fields[cntr_fields_1]);
18812 static enum ndr_err_code ndr_push_spoolssNotifyOptionFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
18814 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
18815 return NDR_ERR_SUCCESS;
18818 static enum ndr_err_code ndr_pull_spoolssNotifyOptionFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
18821 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
18823 return NDR_ERR_SUCCESS;
18826 _PUBLIC_ void ndr_print_spoolssNotifyOptionFlags(struct ndr_print *ndr, const char *name, uint32_t r)
18828 ndr_print_uint32(ndr, name, r);
18830 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_OPTIONS_REFRESH", PRINTER_NOTIFY_OPTIONS_REFRESH, r);
18834 static enum ndr_err_code ndr_push_spoolss_NotifyOption(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyOption *r)
18836 uint32_t cntr_types_1;
18837 if (ndr_flags & NDR_SCALARS) {
18838 NDR_CHECK(ndr_push_align(ndr, 5));
18839 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
18840 NDR_CHECK(ndr_push_spoolssNotifyOptionFlags(ndr, NDR_SCALARS, r->flags));
18841 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
18842 NDR_CHECK(ndr_push_unique_ptr(ndr, r->types));
18843 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18845 if (ndr_flags & NDR_BUFFERS) {
18847 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
18848 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
18849 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr, NDR_SCALARS, &r->types[cntr_types_1]));
18851 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
18852 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr, NDR_BUFFERS, &r->types[cntr_types_1]));
18856 return NDR_ERR_SUCCESS;
18859 static enum ndr_err_code ndr_pull_spoolss_NotifyOption(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyOption *r)
18861 uint32_t _ptr_types;
18862 uint32_t cntr_types_1;
18863 TALLOC_CTX *_mem_save_types_0;
18864 TALLOC_CTX *_mem_save_types_1;
18865 if (ndr_flags & NDR_SCALARS) {
18866 NDR_CHECK(ndr_pull_align(ndr, 5));
18867 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
18868 NDR_CHECK(ndr_pull_spoolssNotifyOptionFlags(ndr, NDR_SCALARS, &r->flags));
18869 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
18870 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_types));
18872 NDR_PULL_ALLOC(ndr, r->types);
18876 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
18878 if (ndr_flags & NDR_BUFFERS) {
18880 _mem_save_types_0 = NDR_PULL_GET_MEM_CTX(ndr);
18881 NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
18882 NDR_CHECK(ndr_pull_array_size(ndr, &r->types));
18883 NDR_PULL_ALLOC_N(ndr, r->types, ndr_get_array_size(ndr, &r->types));
18884 _mem_save_types_1 = NDR_PULL_GET_MEM_CTX(ndr);
18885 NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
18886 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
18887 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr, NDR_SCALARS, &r->types[cntr_types_1]));
18889 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
18890 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr, NDR_BUFFERS, &r->types[cntr_types_1]));
18892 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_1, 0);
18893 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_0, 0);
18896 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->types, r->count));
18899 return NDR_ERR_SUCCESS;
18902 _PUBLIC_ void ndr_print_spoolss_NotifyOption(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyOption *r)
18904 uint32_t cntr_types_1;
18905 ndr_print_struct(ndr, name, "spoolss_NotifyOption");
18907 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
18908 ndr_print_spoolssNotifyOptionFlags(ndr, "flags", r->flags);
18909 ndr_print_uint32(ndr, "count", r->count);
18910 ndr_print_ptr(ndr, "types", r->types);
18913 ndr->print(ndr, "%s: ARRAY(%d)", "types", (int)r->count);
18915 for (cntr_types_1=0;cntr_types_1<r->count;cntr_types_1++) {
18917 if (asprintf(&idx_1, "[%d]", cntr_types_1) != -1) {
18918 ndr_print_spoolss_NotifyOptionType(ndr, "types", &r->types[cntr_types_1]);
18928 static enum ndr_err_code ndr_push_spoolss_NotifyString(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyString *r)
18930 if (ndr_flags & NDR_SCALARS) {
18931 NDR_CHECK(ndr_push_align(ndr, 5));
18932 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
18933 NDR_CHECK(ndr_push_unique_ptr(ndr, r->string));
18934 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18936 if (ndr_flags & NDR_BUFFERS) {
18938 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->size / 2));
18939 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->string, r->size / 2, sizeof(uint16_t), CH_UTF16));
18942 return NDR_ERR_SUCCESS;
18945 static enum ndr_err_code ndr_pull_spoolss_NotifyString(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyString *r)
18947 uint32_t _ptr_string;
18948 TALLOC_CTX *_mem_save_string_0;
18949 if (ndr_flags & NDR_SCALARS) {
18950 NDR_CHECK(ndr_pull_align(ndr, 5));
18951 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
18952 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_string));
18954 NDR_PULL_ALLOC(ndr, r->string);
18958 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
18960 if (ndr_flags & NDR_BUFFERS) {
18962 _mem_save_string_0 = NDR_PULL_GET_MEM_CTX(ndr);
18963 NDR_PULL_SET_MEM_CTX(ndr, r->string, 0);
18964 NDR_CHECK(ndr_pull_array_size(ndr, &r->string));
18965 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->string, ndr_get_array_size(ndr, &r->string), sizeof(uint16_t), CH_UTF16));
18966 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_string_0, 0);
18969 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->string, r->size / 2));
18972 return NDR_ERR_SUCCESS;
18975 _PUBLIC_ void ndr_print_spoolss_NotifyString(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyString *r)
18977 ndr_print_struct(ndr, name, "spoolss_NotifyString");
18979 ndr_print_uint32(ndr, "size", r->size);
18980 ndr_print_ptr(ndr, "string", r->string);
18983 ndr_print_string(ndr, "string", r->string);
18989 static enum ndr_err_code ndr_push_spoolss_NotifyTable(struct ndr_push *ndr, int ndr_flags, enum spoolss_NotifyTable r)
18991 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
18992 return NDR_ERR_SUCCESS;
18995 static enum ndr_err_code ndr_pull_spoolss_NotifyTable(struct ndr_pull *ndr, int ndr_flags, enum spoolss_NotifyTable *r)
18998 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
19000 return NDR_ERR_SUCCESS;
19003 _PUBLIC_ void ndr_print_spoolss_NotifyTable(struct ndr_print *ndr, const char *name, enum spoolss_NotifyTable r)
19005 const char *val = NULL;
19008 case NOTIFY_TABLE_DWORD: val = "NOTIFY_TABLE_DWORD"; break;
19009 case NOTIFY_TABLE_STRING: val = "NOTIFY_TABLE_STRING"; break;
19010 case NOTIFY_TABLE_DEVMODE: val = "NOTIFY_TABLE_DEVMODE"; break;
19011 case NOTIFY_TABLE_TIME: val = "NOTIFY_TABLE_TIME"; break;
19012 case NOTIFY_TABLE_SECURITYDESCRIPTOR: val = "NOTIFY_TABLE_SECURITYDESCRIPTOR"; break;
19014 ndr_print_enum(ndr, name, "ENUM", val, r);
19017 static enum ndr_err_code ndr_push_spoolss_NotifyData(struct ndr_push *ndr, int ndr_flags, const union spoolss_NotifyData *r)
19019 if (ndr_flags & NDR_SCALARS) {
19020 int level = ndr_push_get_switch_value(ndr, r);
19021 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
19022 NDR_CHECK(ndr_push_union_align(ndr, 5));
19025 uint32_t cntr_integer_0;
19026 for (cntr_integer_0 = 0; cntr_integer_0 < 2; cntr_integer_0++) {
19027 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->integer[cntr_integer_0]));
19032 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr, NDR_SCALARS, &r->string));
19036 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS, &r->devmode));
19040 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr, NDR_SCALARS, &r->time));
19044 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sd));
19048 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19051 if (ndr_flags & NDR_BUFFERS) {
19052 int level = ndr_push_get_switch_value(ndr, r);
19058 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr, NDR_BUFFERS, &r->string));
19062 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_BUFFERS, &r->devmode));
19066 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr, NDR_BUFFERS, &r->time));
19070 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd));
19074 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19077 return NDR_ERR_SUCCESS;
19080 static enum ndr_err_code ndr_pull_spoolss_NotifyData(struct ndr_pull *ndr, int ndr_flags, union spoolss_NotifyData *r)
19084 level = ndr_pull_get_switch_value(ndr, r);
19085 if (ndr_flags & NDR_SCALARS) {
19086 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
19087 if (_level != level) {
19088 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
19090 NDR_CHECK(ndr_pull_union_align(ndr, 5));
19093 uint32_t cntr_integer_0;
19094 for (cntr_integer_0 = 0; cntr_integer_0 < 2; cntr_integer_0++) {
19095 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->integer[cntr_integer_0]));
19100 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr, NDR_SCALARS, &r->string));
19104 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS, &r->devmode));
19108 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr, NDR_SCALARS, &r->time));
19112 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sd));
19116 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19119 if (ndr_flags & NDR_BUFFERS) {
19125 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr, NDR_BUFFERS, &r->string));
19129 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_BUFFERS, &r->devmode));
19133 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr, NDR_BUFFERS, &r->time));
19137 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd));
19141 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19144 return NDR_ERR_SUCCESS;
19147 _PUBLIC_ void ndr_print_spoolss_NotifyData(struct ndr_print *ndr, const char *name, const union spoolss_NotifyData *r)
19150 uint32_t cntr_integer_0;
19151 level = ndr_print_get_switch_value(ndr, r);
19152 ndr_print_union(ndr, name, level, "spoolss_NotifyData");
19155 ndr->print(ndr, "%s: ARRAY(%d)", "integer", (int)2);
19157 for (cntr_integer_0=0;cntr_integer_0<2;cntr_integer_0++) {
19159 if (asprintf(&idx_0, "[%d]", cntr_integer_0) != -1) {
19160 ndr_print_uint32(ndr, "integer", r->integer[cntr_integer_0]);
19168 ndr_print_spoolss_NotifyString(ndr, "string", &r->string);
19172 ndr_print_spoolss_DevmodeContainer(ndr, "devmode", &r->devmode);
19176 ndr_print_spoolss_TimeCtr(ndr, "time", &r->time);
19180 ndr_print_sec_desc_buf(ndr, "sd", &r->sd);
19184 ndr_print_bad_level(ndr, name, level);
19188 static enum ndr_err_code ndr_push_spoolss_Notify(struct ndr_push *ndr, int ndr_flags, const struct spoolss_Notify *r)
19190 if (ndr_flags & NDR_SCALARS) {
19191 NDR_CHECK(ndr_push_align(ndr, 5));
19192 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr, NDR_SCALARS, r->type));
19193 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->field, r->type));
19194 NDR_CHECK(ndr_push_spoolss_Field(ndr, NDR_SCALARS, &r->field));
19195 NDR_CHECK(ndr_push_spoolss_NotifyTable(ndr, NDR_SCALARS, r->variable_type));
19196 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
19197 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->data, r->variable_type));
19198 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr, NDR_SCALARS, &r->data));
19199 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
19201 if (ndr_flags & NDR_BUFFERS) {
19202 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr, NDR_BUFFERS, &r->data));
19204 return NDR_ERR_SUCCESS;
19207 static enum ndr_err_code ndr_pull_spoolss_Notify(struct ndr_pull *ndr, int ndr_flags, struct spoolss_Notify *r)
19209 if (ndr_flags & NDR_SCALARS) {
19210 NDR_CHECK(ndr_pull_align(ndr, 5));
19211 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr, NDR_SCALARS, &r->type));
19212 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->field, r->type));
19213 NDR_CHECK(ndr_pull_spoolss_Field(ndr, NDR_SCALARS, &r->field));
19214 NDR_CHECK(ndr_pull_spoolss_NotifyTable(ndr, NDR_SCALARS, &r->variable_type));
19215 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
19216 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->data, r->variable_type));
19217 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr, NDR_SCALARS, &r->data));
19218 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
19220 if (ndr_flags & NDR_BUFFERS) {
19221 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr, NDR_BUFFERS, &r->data));
19223 return NDR_ERR_SUCCESS;
19226 _PUBLIC_ void ndr_print_spoolss_Notify(struct ndr_print *ndr, const char *name, const struct spoolss_Notify *r)
19228 ndr_print_struct(ndr, name, "spoolss_Notify");
19230 ndr_print_spoolss_NotifyType(ndr, "type", r->type);
19231 ndr_print_set_switch_value(ndr, &r->field, r->type);
19232 ndr_print_spoolss_Field(ndr, "field", &r->field);
19233 ndr_print_spoolss_NotifyTable(ndr, "variable_type", r->variable_type);
19234 ndr_print_uint32(ndr, "job_id", r->job_id);
19235 ndr_print_set_switch_value(ndr, &r->data, r->variable_type);
19236 ndr_print_spoolss_NotifyData(ndr, "data", &r->data);
19240 static enum ndr_err_code ndr_push_spoolss_NotifyInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyInfo *r)
19242 uint32_t cntr_notifies_0;
19243 if (ndr_flags & NDR_SCALARS) {
19244 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
19245 NDR_CHECK(ndr_push_align(ndr, 5));
19246 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
19247 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
19248 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
19249 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
19250 NDR_CHECK(ndr_push_spoolss_Notify(ndr, NDR_SCALARS, &r->notifies[cntr_notifies_0]));
19252 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
19254 if (ndr_flags & NDR_BUFFERS) {
19255 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
19256 NDR_CHECK(ndr_push_spoolss_Notify(ndr, NDR_BUFFERS, &r->notifies[cntr_notifies_0]));
19259 return NDR_ERR_SUCCESS;
19262 static enum ndr_err_code ndr_pull_spoolss_NotifyInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyInfo *r)
19264 uint32_t cntr_notifies_0;
19265 TALLOC_CTX *_mem_save_notifies_0;
19266 if (ndr_flags & NDR_SCALARS) {
19267 NDR_CHECK(ndr_pull_array_size(ndr, &r->notifies));
19268 NDR_CHECK(ndr_pull_align(ndr, 5));
19269 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
19270 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
19271 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
19272 NDR_PULL_ALLOC_N(ndr, r->notifies, ndr_get_array_size(ndr, &r->notifies));
19273 _mem_save_notifies_0 = NDR_PULL_GET_MEM_CTX(ndr);
19274 NDR_PULL_SET_MEM_CTX(ndr, r->notifies, 0);
19275 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
19276 NDR_CHECK(ndr_pull_spoolss_Notify(ndr, NDR_SCALARS, &r->notifies[cntr_notifies_0]));
19278 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notifies_0, 0);
19280 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->notifies, r->count));
19282 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
19284 if (ndr_flags & NDR_BUFFERS) {
19285 _mem_save_notifies_0 = NDR_PULL_GET_MEM_CTX(ndr);
19286 NDR_PULL_SET_MEM_CTX(ndr, r->notifies, 0);
19287 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
19288 NDR_CHECK(ndr_pull_spoolss_Notify(ndr, NDR_BUFFERS, &r->notifies[cntr_notifies_0]));
19290 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notifies_0, 0);
19292 return NDR_ERR_SUCCESS;
19295 _PUBLIC_ void ndr_print_spoolss_NotifyInfo(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyInfo *r)
19297 uint32_t cntr_notifies_0;
19298 ndr_print_struct(ndr, name, "spoolss_NotifyInfo");
19300 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
19301 ndr_print_uint32(ndr, "flags", r->flags);
19302 ndr_print_uint32(ndr, "count", r->count);
19303 ndr->print(ndr, "%s: ARRAY(%d)", "notifies", (int)r->count);
19305 for (cntr_notifies_0=0;cntr_notifies_0<r->count;cntr_notifies_0++) {
19307 if (asprintf(&idx_0, "[%d]", cntr_notifies_0) != -1) {
19308 ndr_print_spoolss_Notify(ndr, "notifies", &r->notifies[cntr_notifies_0]);
19316 static enum ndr_err_code ndr_push_spoolss_ReplyPrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_ReplyPrinterInfo *r)
19318 if (ndr_flags & NDR_SCALARS) {
19319 int level = ndr_push_get_switch_value(ndr, r);
19320 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
19321 NDR_CHECK(ndr_push_union_align(ndr, 5));
19324 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info0));
19328 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19331 if (ndr_flags & NDR_BUFFERS) {
19332 int level = ndr_push_get_switch_value(ndr, r);
19336 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
19341 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19344 return NDR_ERR_SUCCESS;
19347 static enum ndr_err_code ndr_pull_spoolss_ReplyPrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_ReplyPrinterInfo *r)
19351 TALLOC_CTX *_mem_save_info0_0;
19352 level = ndr_pull_get_switch_value(ndr, r);
19353 if (ndr_flags & NDR_SCALARS) {
19354 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
19355 if (_level != level) {
19356 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
19358 NDR_CHECK(ndr_pull_union_align(ndr, 5));
19361 uint32_t _ptr_info0;
19362 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0));
19364 NDR_PULL_ALLOC(ndr, r->info0);
19371 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19374 if (ndr_flags & NDR_BUFFERS) {
19378 _mem_save_info0_0 = NDR_PULL_GET_MEM_CTX(ndr);
19379 NDR_PULL_SET_MEM_CTX(ndr, r->info0, 0);
19380 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
19381 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info0_0, 0);
19386 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19389 return NDR_ERR_SUCCESS;
19392 _PUBLIC_ void ndr_print_spoolss_ReplyPrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_ReplyPrinterInfo *r)
19395 level = ndr_print_get_switch_value(ndr, r);
19396 ndr_print_union(ndr, name, level, "spoolss_ReplyPrinterInfo");
19399 ndr_print_ptr(ndr, "info0", r->info0);
19402 ndr_print_spoolss_NotifyInfo(ndr, "info0", r->info0);
19408 ndr_print_bad_level(ndr, name, level);
19412 static enum ndr_err_code ndr_push_spoolss_PrinterNotifyFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
19414 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
19415 return NDR_ERR_SUCCESS;
19418 static enum ndr_err_code ndr_pull_spoolss_PrinterNotifyFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
19421 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
19423 return NDR_ERR_SUCCESS;
19426 _PUBLIC_ void ndr_print_spoolss_PrinterNotifyFlags(struct ndr_print *ndr, const char *name, uint32_t r)
19428 ndr_print_uint32(ndr, name, r);
19430 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDED", PRINTER_NOTIFY_INFO_DISCARDED, r);
19431 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDNOTED", PRINTER_NOTIFY_INFO_DISCARDNOTED, r);
19432 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_COLOR_MISMATCH", PRINTER_NOTIFY_INFO_COLOR_MISMATCH, r);
19436 static enum ndr_err_code ndr_push_spoolss_UserLevel1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel1 *r)
19438 if (ndr_flags & NDR_SCALARS) {
19439 NDR_CHECK(ndr_push_align(ndr, 5));
19440 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
19441 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client));
19442 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
19443 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
19444 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr, NDR_SCALARS, r->major));
19445 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr, NDR_SCALARS, r->minor));
19446 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor));
19447 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
19449 if (ndr_flags & NDR_BUFFERS) {
19451 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
19452 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
19453 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
19454 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client, ndr_charset_length(r->client, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19457 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
19458 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
19459 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
19460 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19463 return NDR_ERR_SUCCESS;
19466 static enum ndr_err_code ndr_pull_spoolss_UserLevel1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel1 *r)
19468 uint32_t _ptr_client;
19469 TALLOC_CTX *_mem_save_client_0;
19470 uint32_t _ptr_user;
19471 TALLOC_CTX *_mem_save_user_0;
19472 if (ndr_flags & NDR_SCALARS) {
19473 NDR_CHECK(ndr_pull_align(ndr, 5));
19474 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
19475 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client));
19477 NDR_PULL_ALLOC(ndr, r->client);
19481 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
19483 NDR_PULL_ALLOC(ndr, r->user);
19487 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
19488 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr, NDR_SCALARS, &r->major));
19489 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr, NDR_SCALARS, &r->minor));
19490 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor));
19491 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
19493 if (ndr_flags & NDR_BUFFERS) {
19495 _mem_save_client_0 = NDR_PULL_GET_MEM_CTX(ndr);
19496 NDR_PULL_SET_MEM_CTX(ndr, r->client, 0);
19497 NDR_CHECK(ndr_pull_array_size(ndr, &r->client));
19498 NDR_CHECK(ndr_pull_array_length(ndr, &r->client));
19499 if (ndr_get_array_length(ndr, &r->client) > ndr_get_array_size(ndr, &r->client)) {
19500 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));
19502 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t)));
19503 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t), CH_UTF16));
19504 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0);
19507 _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
19508 NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
19509 NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
19510 NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
19511 if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) {
19512 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));
19514 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t)));
19515 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16));
19516 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
19519 return NDR_ERR_SUCCESS;
19522 _PUBLIC_ void ndr_print_spoolss_UserLevel1(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel1 *r)
19524 ndr_print_struct(ndr, name, "spoolss_UserLevel1");
19526 ndr_print_uint32(ndr, "size", r->size);
19527 ndr_print_ptr(ndr, "client", r->client);
19530 ndr_print_string(ndr, "client", r->client);
19533 ndr_print_ptr(ndr, "user", r->user);
19536 ndr_print_string(ndr, "user", r->user);
19539 ndr_print_uint32(ndr, "build", r->build);
19540 ndr_print_spoolss_MajorVersion(ndr, "major", r->major);
19541 ndr_print_spoolss_MinorVersion(ndr, "minor", r->minor);
19542 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor", r->processor);
19546 static enum ndr_err_code ndr_push_spoolss_UserLevel2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel2 *r)
19548 if (ndr_flags & NDR_SCALARS) {
19549 NDR_CHECK(ndr_push_align(ndr, 4));
19550 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->not_used));
19551 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
19553 if (ndr_flags & NDR_BUFFERS) {
19555 return NDR_ERR_SUCCESS;
19558 static enum ndr_err_code ndr_pull_spoolss_UserLevel2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel2 *r)
19560 if (ndr_flags & NDR_SCALARS) {
19561 NDR_CHECK(ndr_pull_align(ndr, 4));
19562 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->not_used));
19563 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
19565 if (ndr_flags & NDR_BUFFERS) {
19567 return NDR_ERR_SUCCESS;
19570 _PUBLIC_ void ndr_print_spoolss_UserLevel2(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel2 *r)
19572 ndr_print_struct(ndr, name, "spoolss_UserLevel2");
19574 ndr_print_uint32(ndr, "not_used", r->not_used);
19578 static enum ndr_err_code ndr_push_spoolss_UserLevel3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel3 *r)
19580 if (ndr_flags & NDR_SCALARS) {
19581 NDR_CHECK(ndr_push_align(ndr, 5));
19582 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
19583 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
19584 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size2));
19585 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client));
19586 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
19587 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
19588 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr, NDR_SCALARS, r->major));
19589 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr, NDR_SCALARS, r->minor));
19590 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor));
19591 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->reserved));
19592 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
19594 if (ndr_flags & NDR_BUFFERS) {
19596 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
19597 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
19598 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
19599 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client, ndr_charset_length(r->client, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19602 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
19603 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
19604 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
19605 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19608 return NDR_ERR_SUCCESS;
19611 static enum ndr_err_code ndr_pull_spoolss_UserLevel3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel3 *r)
19613 uint32_t _ptr_client;
19614 TALLOC_CTX *_mem_save_client_0;
19615 uint32_t _ptr_user;
19616 TALLOC_CTX *_mem_save_user_0;
19617 if (ndr_flags & NDR_SCALARS) {
19618 NDR_CHECK(ndr_pull_align(ndr, 5));
19619 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
19620 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
19621 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size2));
19622 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client));
19624 NDR_PULL_ALLOC(ndr, r->client);
19628 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
19630 NDR_PULL_ALLOC(ndr, r->user);
19634 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
19635 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr, NDR_SCALARS, &r->major));
19636 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr, NDR_SCALARS, &r->minor));
19637 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor));
19638 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->reserved));
19639 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
19641 if (ndr_flags & NDR_BUFFERS) {
19643 _mem_save_client_0 = NDR_PULL_GET_MEM_CTX(ndr);
19644 NDR_PULL_SET_MEM_CTX(ndr, r->client, 0);
19645 NDR_CHECK(ndr_pull_array_size(ndr, &r->client));
19646 NDR_CHECK(ndr_pull_array_length(ndr, &r->client));
19647 if (ndr_get_array_length(ndr, &r->client) > ndr_get_array_size(ndr, &r->client)) {
19648 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));
19650 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t)));
19651 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t), CH_UTF16));
19652 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0);
19655 _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
19656 NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
19657 NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
19658 NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
19659 if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) {
19660 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));
19662 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t)));
19663 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16));
19664 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
19667 return NDR_ERR_SUCCESS;
19670 _PUBLIC_ void ndr_print_spoolss_UserLevel3(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel3 *r)
19672 ndr_print_struct(ndr, name, "spoolss_UserLevel3");
19674 ndr_print_uint32(ndr, "size", r->size);
19675 ndr_print_uint32(ndr, "flags", r->flags);
19676 ndr_print_uint32(ndr, "size2", r->size2);
19677 ndr_print_ptr(ndr, "client", r->client);
19680 ndr_print_string(ndr, "client", r->client);
19683 ndr_print_ptr(ndr, "user", r->user);
19686 ndr_print_string(ndr, "user", r->user);
19689 ndr_print_uint32(ndr, "build", r->build);
19690 ndr_print_spoolss_MajorVersion(ndr, "major", r->major);
19691 ndr_print_spoolss_MinorVersion(ndr, "minor", r->minor);
19692 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor", r->processor);
19693 ndr_print_udlong(ndr, "reserved", r->reserved);
19697 static enum ndr_err_code ndr_push_spoolss_UserLevel(struct ndr_push *ndr, int ndr_flags, const union spoolss_UserLevel *r)
19699 if (ndr_flags & NDR_SCALARS) {
19700 int level = ndr_push_get_switch_value(ndr, r);
19701 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
19702 NDR_CHECK(ndr_push_union_align(ndr, 5));
19705 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level1));
19709 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level2));
19713 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level3));
19717 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19720 if (ndr_flags & NDR_BUFFERS) {
19721 int level = ndr_push_get_switch_value(ndr, r);
19725 NDR_CHECK(ndr_push_spoolss_UserLevel1(ndr, NDR_SCALARS|NDR_BUFFERS, r->level1));
19731 NDR_CHECK(ndr_push_spoolss_UserLevel2(ndr, NDR_SCALARS, r->level2));
19737 NDR_CHECK(ndr_push_spoolss_UserLevel3(ndr, NDR_SCALARS|NDR_BUFFERS, r->level3));
19742 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19745 return NDR_ERR_SUCCESS;
19748 static enum ndr_err_code ndr_pull_spoolss_UserLevel(struct ndr_pull *ndr, int ndr_flags, union spoolss_UserLevel *r)
19752 TALLOC_CTX *_mem_save_level1_0;
19753 TALLOC_CTX *_mem_save_level2_0;
19754 TALLOC_CTX *_mem_save_level3_0;
19755 level = ndr_pull_get_switch_value(ndr, r);
19756 if (ndr_flags & NDR_SCALARS) {
19757 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
19758 if (_level != level) {
19759 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
19761 NDR_CHECK(ndr_pull_union_align(ndr, 5));
19764 uint32_t _ptr_level1;
19765 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level1));
19767 NDR_PULL_ALLOC(ndr, r->level1);
19774 uint32_t _ptr_level2;
19775 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level2));
19777 NDR_PULL_ALLOC(ndr, r->level2);
19784 uint32_t _ptr_level3;
19785 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level3));
19787 NDR_PULL_ALLOC(ndr, r->level3);
19794 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19797 if (ndr_flags & NDR_BUFFERS) {
19801 _mem_save_level1_0 = NDR_PULL_GET_MEM_CTX(ndr);
19802 NDR_PULL_SET_MEM_CTX(ndr, r->level1, 0);
19803 NDR_CHECK(ndr_pull_spoolss_UserLevel1(ndr, NDR_SCALARS|NDR_BUFFERS, r->level1));
19804 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level1_0, 0);
19810 _mem_save_level2_0 = NDR_PULL_GET_MEM_CTX(ndr);
19811 NDR_PULL_SET_MEM_CTX(ndr, r->level2, 0);
19812 NDR_CHECK(ndr_pull_spoolss_UserLevel2(ndr, NDR_SCALARS, r->level2));
19813 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level2_0, 0);
19819 _mem_save_level3_0 = NDR_PULL_GET_MEM_CTX(ndr);
19820 NDR_PULL_SET_MEM_CTX(ndr, r->level3, 0);
19821 NDR_CHECK(ndr_pull_spoolss_UserLevel3(ndr, NDR_SCALARS|NDR_BUFFERS, r->level3));
19822 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level3_0, 0);
19827 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19830 return NDR_ERR_SUCCESS;
19833 _PUBLIC_ void ndr_print_spoolss_UserLevel(struct ndr_print *ndr, const char *name, const union spoolss_UserLevel *r)
19836 level = ndr_print_get_switch_value(ndr, r);
19837 ndr_print_union(ndr, name, level, "spoolss_UserLevel");
19840 ndr_print_ptr(ndr, "level1", r->level1);
19843 ndr_print_spoolss_UserLevel1(ndr, "level1", r->level1);
19849 ndr_print_ptr(ndr, "level2", r->level2);
19852 ndr_print_spoolss_UserLevel2(ndr, "level2", r->level2);
19858 ndr_print_ptr(ndr, "level3", r->level3);
19861 ndr_print_spoolss_UserLevel3(ndr, "level3", r->level3);
19867 ndr_print_bad_level(ndr, name, level);
19871 static enum ndr_err_code ndr_push_spoolss_UserLevelCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevelCtr *r)
19873 if (ndr_flags & NDR_SCALARS) {
19874 NDR_CHECK(ndr_push_align(ndr, 5));
19875 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
19876 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->user_info, r->level));
19877 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_SCALARS, &r->user_info));
19878 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
19880 if (ndr_flags & NDR_BUFFERS) {
19881 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_BUFFERS, &r->user_info));
19883 return NDR_ERR_SUCCESS;
19886 static enum ndr_err_code ndr_pull_spoolss_UserLevelCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevelCtr *r)
19888 if (ndr_flags & NDR_SCALARS) {
19889 NDR_CHECK(ndr_pull_align(ndr, 5));
19890 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
19891 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->user_info, r->level));
19892 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_SCALARS, &r->user_info));
19893 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
19895 if (ndr_flags & NDR_BUFFERS) {
19896 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_BUFFERS, &r->user_info));
19898 return NDR_ERR_SUCCESS;
19901 _PUBLIC_ void ndr_print_spoolss_UserLevelCtr(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevelCtr *r)
19903 ndr_print_struct(ndr, name, "spoolss_UserLevelCtr");
19905 ndr_print_uint32(ndr, "level", r->level);
19906 ndr_print_set_switch_value(ndr, &r->user_info, r->level);
19907 ndr_print_spoolss_UserLevel(ndr, "user_info", &r->user_info);
19911 static enum ndr_err_code ndr_push_spoolss_AccessRights(struct ndr_push *ndr, int ndr_flags, uint32_t r)
19913 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
19914 return NDR_ERR_SUCCESS;
19917 static enum ndr_err_code ndr_pull_spoolss_AccessRights(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
19920 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
19922 return NDR_ERR_SUCCESS;
19925 _PUBLIC_ void ndr_print_spoolss_AccessRights(struct ndr_print *ndr, const char *name, uint32_t r)
19927 ndr_print_uint32(ndr, name, r);
19929 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SERVER_ACCESS_ADMINISTER", SERVER_ACCESS_ADMINISTER, r);
19930 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SERVER_ACCESS_ENUMERATE", SERVER_ACCESS_ENUMERATE, r);
19931 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ACCESS_ADMINISTER", PRINTER_ACCESS_ADMINISTER, r);
19932 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ACCESS_USE", PRINTER_ACCESS_USE, r);
19933 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_ACCESS_ADMINISTER", JOB_ACCESS_ADMINISTER, r);
19934 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_ACCESS_READ", JOB_ACCESS_READ, r);
19938 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterEnumValues(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterEnumValues *r)
19940 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
19941 if (ndr_flags & NDR_SCALARS) {
19942 NDR_CHECK(ndr_push_align(ndr, 5));
19943 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
19945 uint32_t _flags_save_string = ndr->flags;
19946 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19947 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->value_name));
19948 ndr->flags = _flags_save_string;
19950 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2 * strlen_m_term(r->value_name)));
19951 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->type));
19952 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data));
19953 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_PrinterData(r->data, r->type, ndr->iconv_convenience, ndr->flags)));
19954 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
19956 if (ndr_flags & NDR_BUFFERS) {
19957 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
19959 uint32_t _flags_save_string = ndr->flags;
19960 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19961 if (r->value_name) {
19962 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->value_name));
19963 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->value_name));
19964 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->value_name));
19966 ndr->flags = _flags_save_string;
19969 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data));
19971 struct ndr_push *_ndr_data;
19972 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_data, 0, r->data_length));
19973 NDR_CHECK(ndr_push_set_switch_value(_ndr_data, r->data, r->type));
19974 NDR_CHECK(ndr_push_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, r->data));
19975 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_data, 0, r->data_length));
19977 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data));
19980 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
19981 return NDR_ERR_SUCCESS;
19984 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterEnumValues(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterEnumValues *r)
19986 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
19987 uint32_t _ptr_value_name;
19988 TALLOC_CTX *_mem_save_value_name_0;
19989 uint32_t _ptr_data;
19990 TALLOC_CTX *_mem_save_data_0;
19991 if (ndr_flags & NDR_SCALARS) {
19992 NDR_CHECK(ndr_pull_align(ndr, 5));
19993 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
19995 uint32_t _flags_save_string = ndr->flags;
19996 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19997 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_value_name));
19998 if (_ptr_value_name) {
19999 NDR_PULL_ALLOC(ndr, r->value_name);
20000 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->value_name, _ptr_value_name));
20002 r->value_name = NULL;
20004 ndr->flags = _flags_save_string;
20006 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->value_name_len));
20007 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->type));
20008 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
20010 NDR_PULL_ALLOC(ndr, r->data);
20011 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data, _ptr_data));
20015 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->data_length));
20016 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
20018 if (ndr_flags & NDR_BUFFERS) {
20019 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
20021 uint32_t _flags_save_string = ndr->flags;
20022 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
20023 if (r->value_name) {
20024 uint32_t _relative_save_offset;
20025 _relative_save_offset = ndr->offset;
20026 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->value_name));
20027 _mem_save_value_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
20028 NDR_PULL_SET_MEM_CTX(ndr, r->value_name, 0);
20029 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->value_name));
20030 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_name_0, 0);
20031 if (ndr->offset > ndr->relative_highest_offset) {
20032 ndr->relative_highest_offset = ndr->offset;
20034 ndr->offset = _relative_save_offset;
20036 ndr->flags = _flags_save_string;
20039 uint32_t _relative_save_offset;
20040 _relative_save_offset = ndr->offset;
20041 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data));
20042 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
20043 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
20045 struct ndr_pull *_ndr_data;
20046 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_data, 0, r->data_length));
20047 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data, r->data, r->type));
20048 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, r->data));
20049 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_data, 0, r->data_length));
20051 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
20052 if (ndr->offset > ndr->relative_highest_offset) {
20053 ndr->relative_highest_offset = ndr->offset;
20055 ndr->offset = _relative_save_offset;
20058 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
20059 return NDR_ERR_SUCCESS;
20062 _PUBLIC_ void ndr_print_spoolss_PrinterEnumValues(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterEnumValues *r)
20064 ndr_print_struct(ndr, name, "spoolss_PrinterEnumValues");
20066 ndr_print_ptr(ndr, "value_name", r->value_name);
20068 if (r->value_name) {
20069 ndr_print_string(ndr, "value_name", r->value_name);
20072 ndr_print_uint32(ndr, "value_name_len", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2 * strlen_m_term(r->value_name):r->value_name_len);
20073 ndr_print_winreg_Type(ndr, "type", r->type);
20074 ndr_print_ptr(ndr, "data", r->data);
20077 ndr_print_set_switch_value(ndr, r->data, r->type);
20078 ndr_print_spoolss_PrinterData(ndr, "data", r->data);
20081 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);
20085 _PUBLIC_ size_t ndr_size_spoolss_PrinterEnumValues(const struct spoolss_PrinterEnumValues *r, struct smb_iconv_convenience *ic, int flags)
20087 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterEnumValues, ic);
20090 static enum ndr_err_code ndr_push_spoolss_KeyNames(struct ndr_push *ndr, int ndr_flags, const union spoolss_KeyNames *r)
20092 if (ndr_flags & NDR_SCALARS) {
20093 int level = ndr_push_get_switch_value(ndr, r);
20094 NDR_CHECK(ndr_push_union_align(ndr, 4));
20104 uint32_t _flags_save_string_array = ndr->flags;
20105 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
20106 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string_array));
20107 ndr->flags = _flags_save_string_array;
20113 if (ndr_flags & NDR_BUFFERS) {
20114 int level = ndr_push_get_switch_value(ndr, r);
20127 return NDR_ERR_SUCCESS;
20130 static enum ndr_err_code ndr_pull_spoolss_KeyNames(struct ndr_pull *ndr, int ndr_flags, union spoolss_KeyNames *r)
20133 level = ndr_pull_get_switch_value(ndr, r);
20134 if (ndr_flags & NDR_SCALARS) {
20135 NDR_CHECK(ndr_pull_union_align(ndr, 4));
20145 uint32_t _flags_save_string_array = ndr->flags;
20146 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
20147 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string_array));
20148 ndr->flags = _flags_save_string_array;
20154 if (ndr_flags & NDR_BUFFERS) {
20167 return NDR_ERR_SUCCESS;
20170 _PUBLIC_ void ndr_print_spoolss_KeyNames(struct ndr_print *ndr, const char *name, const union spoolss_KeyNames *r)
20173 level = ndr_print_get_switch_value(ndr, r);
20174 ndr_print_union(ndr, name, level, "spoolss_KeyNames");
20183 ndr_print_string_array(ndr, "string_array", r->string_array);
20189 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DeleteDriverFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
20191 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
20192 return NDR_ERR_SUCCESS;
20195 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DeleteDriverFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
20198 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
20200 return NDR_ERR_SUCCESS;
20203 _PUBLIC_ void ndr_print_spoolss_DeleteDriverFlags(struct ndr_print *ndr, const char *name, uint32_t r)
20205 ndr_print_uint32(ndr, name, r);
20207 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_UNUSED_FILES", DPD_DELETE_UNUSED_FILES, r);
20208 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_SPECIFIC_VERSION", DPD_DELETE_SPECIFIC_VERSION, r);
20209 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_ALL_FILES", DPD_DELETE_ALL_FILES, r);
20213 static enum ndr_err_code ndr_push_spoolss_PortProtocol(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortProtocol r)
20215 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
20216 return NDR_ERR_SUCCESS;
20219 static enum ndr_err_code ndr_pull_spoolss_PortProtocol(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortProtocol *r)
20222 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
20224 return NDR_ERR_SUCCESS;
20227 _PUBLIC_ void ndr_print_spoolss_PortProtocol(struct ndr_print *ndr, const char *name, enum spoolss_PortProtocol r)
20229 const char *val = NULL;
20232 case PROTOCOL_RAWTCP_TYPE: val = "PROTOCOL_RAWTCP_TYPE"; break;
20233 case PROTOCOL_LPR_TYPE: val = "PROTOCOL_LPR_TYPE"; break;
20235 ndr_print_enum(ndr, name, "ENUM", val, r);
20238 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortData1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortData1 *r)
20240 if (ndr_flags & NDR_SCALARS) {
20241 NDR_CHECK(ndr_push_align(ndr, 4));
20242 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, 64, sizeof(uint16_t), CH_UTF16));
20243 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0x00000001));
20244 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr, NDR_SCALARS, r->protocol));
20245 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, sizeof(r)));
20246 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
20247 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hostaddress, 49, sizeof(uint16_t), CH_UTF16));
20248 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
20249 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dblspool));
20250 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->queue, 33, sizeof(uint16_t), CH_UTF16));
20251 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->ip_address, 16, sizeof(uint16_t), CH_UTF16));
20252 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_address, 13, sizeof(uint16_t), CH_UTF16));
20253 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->device_type, 257, sizeof(uint16_t), CH_UTF16));
20254 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_number));
20255 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_enabled));
20256 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_dev_index));
20257 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
20259 if (ndr_flags & NDR_BUFFERS) {
20261 return NDR_ERR_SUCCESS;
20264 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortData1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortData1 *r)
20266 if (ndr_flags & NDR_SCALARS) {
20267 NDR_CHECK(ndr_pull_align(ndr, 4));
20268 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, 64, sizeof(uint16_t), CH_UTF16));
20269 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
20270 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr, NDR_SCALARS, &r->protocol));
20271 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
20272 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
20273 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hostaddress, 49, sizeof(uint16_t), CH_UTF16));
20274 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
20275 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dblspool));
20276 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->queue, 33, sizeof(uint16_t), CH_UTF16));
20277 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->ip_address, 16, sizeof(uint16_t), CH_UTF16));
20278 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_address, 13, sizeof(uint16_t), CH_UTF16));
20279 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device_type, 257, sizeof(uint16_t), CH_UTF16));
20280 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_number));
20281 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_enabled));
20282 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_dev_index));
20283 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
20285 if (ndr_flags & NDR_BUFFERS) {
20287 return NDR_ERR_SUCCESS;
20290 _PUBLIC_ void ndr_print_spoolss_PortData1(struct ndr_print *ndr, const char *name, const struct spoolss_PortData1 *r)
20292 ndr_print_struct(ndr, name, "spoolss_PortData1");
20294 ndr_print_string(ndr, "portname", r->portname);
20295 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x00000001:r->version);
20296 ndr_print_spoolss_PortProtocol(ndr, "protocol", r->protocol);
20297 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?sizeof(r):r->size);
20298 ndr_print_uint32(ndr, "reserved", r->reserved);
20299 ndr_print_string(ndr, "hostaddress", r->hostaddress);
20300 ndr_print_string(ndr, "snmpcommunity", r->snmpcommunity);
20301 ndr_print_uint32(ndr, "dblspool", r->dblspool);
20302 ndr_print_string(ndr, "queue", r->queue);
20303 ndr_print_string(ndr, "ip_address", r->ip_address);
20304 ndr_print_string(ndr, "hardware_address", r->hardware_address);
20305 ndr_print_string(ndr, "device_type", r->device_type);
20306 ndr_print_uint32(ndr, "port_number", r->port_number);
20307 ndr_print_uint32(ndr, "snmp_enabled", r->snmp_enabled);
20308 ndr_print_uint32(ndr, "snmp_dev_index", r->snmp_dev_index);
20312 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortData2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortData2 *r)
20314 if (ndr_flags & NDR_SCALARS) {
20315 NDR_CHECK(ndr_push_align(ndr, 4));
20316 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, 64, sizeof(uint16_t), CH_UTF16));
20317 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0x00000002));
20318 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr, NDR_SCALARS, r->protocol));
20319 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, sizeof(r)));
20320 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
20321 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hostaddress, 128, sizeof(uint16_t), CH_UTF16));
20322 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
20323 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dblspool));
20324 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->queue, 33, sizeof(uint16_t), CH_UTF16));
20325 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->device_type, 257, sizeof(uint16_t), CH_UTF16));
20326 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_number));
20327 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_enabled));
20328 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_dev_index));
20329 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_monitor_mib_index));
20330 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
20332 if (ndr_flags & NDR_BUFFERS) {
20334 return NDR_ERR_SUCCESS;
20337 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortData2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortData2 *r)
20339 if (ndr_flags & NDR_SCALARS) {
20340 NDR_CHECK(ndr_pull_align(ndr, 4));
20341 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, 64, sizeof(uint16_t), CH_UTF16));
20342 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
20343 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr, NDR_SCALARS, &r->protocol));
20344 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
20345 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
20346 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hostaddress, 128, sizeof(uint16_t), CH_UTF16));
20347 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
20348 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dblspool));
20349 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->queue, 33, sizeof(uint16_t), CH_UTF16));
20350 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device_type, 257, sizeof(uint16_t), CH_UTF16));
20351 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_number));
20352 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_enabled));
20353 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_dev_index));
20354 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_monitor_mib_index));
20355 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
20357 if (ndr_flags & NDR_BUFFERS) {
20359 return NDR_ERR_SUCCESS;
20362 _PUBLIC_ void ndr_print_spoolss_PortData2(struct ndr_print *ndr, const char *name, const struct spoolss_PortData2 *r)
20364 ndr_print_struct(ndr, name, "spoolss_PortData2");
20366 ndr_print_string(ndr, "portname", r->portname);
20367 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x00000002:r->version);
20368 ndr_print_spoolss_PortProtocol(ndr, "protocol", r->protocol);
20369 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?sizeof(r):r->size);
20370 ndr_print_uint32(ndr, "reserved", r->reserved);
20371 ndr_print_string(ndr, "hostaddress", r->hostaddress);
20372 ndr_print_string(ndr, "snmpcommunity", r->snmpcommunity);
20373 ndr_print_uint32(ndr, "dblspool", r->dblspool);
20374 ndr_print_string(ndr, "queue", r->queue);
20375 ndr_print_string(ndr, "device_type", r->device_type);
20376 ndr_print_uint32(ndr, "port_number", r->port_number);
20377 ndr_print_uint32(ndr, "snmp_enabled", r->snmp_enabled);
20378 ndr_print_uint32(ndr, "snmp_dev_index", r->snmp_dev_index);
20379 ndr_print_uint32(ndr, "port_monitor_mib_index", r->port_monitor_mib_index);
20383 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorUi(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorUi *r)
20385 if (ndr_flags & NDR_SCALARS) {
20386 NDR_CHECK(ndr_push_align(ndr, 4));
20388 uint32_t _flags_save_string = ndr->flags;
20389 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
20390 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dll_name));
20391 ndr->flags = _flags_save_string;
20393 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
20395 if (ndr_flags & NDR_BUFFERS) {
20397 return NDR_ERR_SUCCESS;
20400 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorUi(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorUi *r)
20402 if (ndr_flags & NDR_SCALARS) {
20403 NDR_CHECK(ndr_pull_align(ndr, 4));
20405 uint32_t _flags_save_string = ndr->flags;
20406 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
20407 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->dll_name));
20408 ndr->flags = _flags_save_string;
20410 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
20412 if (ndr_flags & NDR_BUFFERS) {
20414 return NDR_ERR_SUCCESS;
20417 _PUBLIC_ void ndr_print_spoolss_MonitorUi(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorUi *r)
20419 ndr_print_struct(ndr, name, "spoolss_MonitorUi");
20421 ndr_print_string(ndr, "dll_name", r->dll_name);
20425 static enum ndr_err_code ndr_push_spoolss_AddPrinterDriverExFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
20427 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
20428 return NDR_ERR_SUCCESS;
20431 static enum ndr_err_code ndr_pull_spoolss_AddPrinterDriverExFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
20434 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
20436 return NDR_ERR_SUCCESS;
20439 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriverExFlags(struct ndr_print *ndr, const char *name, uint32_t r)
20441 ndr_print_uint32(ndr, name, r);
20443 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_STRICT_UPGRADE", APD_STRICT_UPGRADE, r);
20444 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_STRICT_DOWNGRADE", APD_STRICT_DOWNGRADE, r);
20445 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_ALL_FILES", APD_COPY_ALL_FILES, r);
20446 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_NEW_FILES", APD_COPY_NEW_FILES, r);
20447 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_FROM_DIRECTORY", APD_COPY_FROM_DIRECTORY, r);
20448 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_DONT_COPY_FILES_TO_CLUSTER", APD_DONT_COPY_FILES_TO_CLUSTER, r);
20449 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_TO_ALL_SPOOLERS", APD_COPY_TO_ALL_SPOOLERS, r);
20450 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_RETURN_BLOCKING_STATUS_CODE", APD_RETURN_BLOCKING_STATUS_CODE, r);
20454 static enum ndr_err_code ndr_push_spoolss_CorePrinterDriver(struct ndr_push *ndr, int ndr_flags, const struct spoolss_CorePrinterDriver *r)
20456 if (ndr_flags & NDR_SCALARS) {
20457 NDR_CHECK(ndr_push_align(ndr, 8));
20458 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->core_driver_guid));
20459 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
20460 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
20461 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->formname, 520, sizeof(uint8_t), CH_UTF8));
20462 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
20464 if (ndr_flags & NDR_BUFFERS) {
20466 return NDR_ERR_SUCCESS;
20469 static enum ndr_err_code ndr_pull_spoolss_CorePrinterDriver(struct ndr_pull *ndr, int ndr_flags, struct spoolss_CorePrinterDriver *r)
20471 if (ndr_flags & NDR_SCALARS) {
20472 NDR_CHECK(ndr_pull_align(ndr, 8));
20473 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->core_driver_guid));
20474 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
20475 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
20476 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->formname, 520, sizeof(uint8_t), CH_UTF8));
20477 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
20479 if (ndr_flags & NDR_BUFFERS) {
20481 return NDR_ERR_SUCCESS;
20484 _PUBLIC_ void ndr_print_spoolss_CorePrinterDriver(struct ndr_print *ndr, const char *name, const struct spoolss_CorePrinterDriver *r)
20486 ndr_print_struct(ndr, name, "spoolss_CorePrinterDriver");
20488 ndr_print_GUID(ndr, "core_driver_guid", &r->core_driver_guid);
20489 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
20490 ndr_print_hyper(ndr, "driver_version", r->driver_version);
20491 ndr_print_string(ndr, "formname", r->formname);
20495 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinters(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinters *r)
20497 if (flags & NDR_IN) {
20498 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, r->in.flags));
20499 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
20500 if (r->in.server) {
20501 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20502 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
20503 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20504 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20506 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20507 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20508 if (r->in.buffer) {
20509 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
20511 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
20513 if (flags & NDR_OUT) {
20514 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
20516 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
20518 if (r->out.needed == NULL) {
20519 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20521 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
20522 if (r->out.count == NULL) {
20523 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20525 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
20526 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20528 return NDR_ERR_SUCCESS;
20531 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinters(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinters *r)
20533 uint32_t _ptr_server;
20534 uint32_t _ptr_buffer;
20535 uint32_t _ptr_info;
20536 TALLOC_CTX *_mem_save_server_0;
20537 TALLOC_CTX *_mem_save_buffer_0;
20538 TALLOC_CTX *_mem_save_info_0;
20539 TALLOC_CTX *_mem_save_needed_0;
20540 TALLOC_CTX *_mem_save_count_0;
20541 if (flags & NDR_IN) {
20542 ZERO_STRUCT(r->out);
20544 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, &r->in.flags));
20545 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
20547 NDR_PULL_ALLOC(ndr, r->in.server);
20549 r->in.server = NULL;
20551 if (r->in.server) {
20552 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
20553 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
20554 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
20555 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
20556 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
20557 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));
20559 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
20560 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
20561 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
20563 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20564 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20566 NDR_PULL_ALLOC(ndr, r->in.buffer);
20568 r->in.buffer = NULL;
20570 if (r->in.buffer) {
20571 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
20572 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20573 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
20574 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20576 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
20577 NDR_PULL_ALLOC(ndr, r->out.needed);
20578 ZERO_STRUCTP(r->out.needed);
20579 NDR_PULL_ALLOC(ndr, r->out.count);
20580 ZERO_STRUCTP(r->out.count);
20582 if (flags & NDR_OUT) {
20583 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
20585 NDR_PULL_ALLOC(ndr, r->out.info);
20587 r->out.info = NULL;
20590 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20591 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20592 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
20593 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20595 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20596 NDR_PULL_ALLOC(ndr, r->out.needed);
20598 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
20599 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
20600 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
20601 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
20602 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20603 NDR_PULL_ALLOC(ndr, r->out.count);
20605 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
20606 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
20607 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
20608 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
20609 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20611 return NDR_ERR_SUCCESS;
20614 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinters(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinters *r)
20616 uint32_t cntr_info_0;
20617 if (flags & NDR_IN) {
20618 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20619 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
20621 if (flags & NDR_OUT) {
20622 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20623 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
20624 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
20626 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20627 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
20630 return NDR_ERR_SUCCESS;
20633 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinters(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinters *r)
20635 uint32_t cntr_info_0;
20636 TALLOC_CTX *_mem_save_info_0;
20637 if (flags & NDR_IN) {
20638 ZERO_STRUCT(r->out);
20640 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20641 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
20643 if (flags & NDR_OUT) {
20644 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
20645 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20646 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20647 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20648 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
20649 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
20651 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20652 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
20654 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20656 return NDR_ERR_SUCCESS;
20659 _PUBLIC_ void ndr_print_spoolss_EnumPrinters(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinters *r)
20661 uint32_t cntr_info_2;
20662 ndr_print_struct(ndr, name, "spoolss_EnumPrinters");
20664 if (flags & NDR_SET_VALUES) {
20665 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20667 if (flags & NDR_IN) {
20668 ndr_print_struct(ndr, "in", "spoolss_EnumPrinters");
20670 ndr_print_spoolss_EnumPrinterFlags(ndr, "flags", r->in.flags);
20671 ndr_print_ptr(ndr, "server", r->in.server);
20673 if (r->in.server) {
20674 ndr_print_string(ndr, "server", r->in.server);
20677 ndr_print_uint32(ndr, "level", r->in.level);
20678 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20680 if (r->in.buffer) {
20681 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
20684 ndr_print_uint32(ndr, "offered", r->in.offered);
20687 if (flags & NDR_OUT) {
20688 ndr_print_struct(ndr, "out", "spoolss_EnumPrinters");
20690 ndr_print_ptr(ndr, "count", r->out.count);
20692 ndr_print_uint32(ndr, "count", *r->out.count);
20694 ndr_print_ptr(ndr, "info", r->out.info);
20696 ndr_print_ptr(ndr, "info", *r->out.info);
20698 if (*r->out.info) {
20699 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
20701 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
20703 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
20704 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
20705 ndr_print_spoolss_PrinterInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
20713 ndr_print_ptr(ndr, "needed", r->out.needed);
20715 ndr_print_uint32(ndr, "needed", *r->out.needed);
20717 ndr_print_WERROR(ndr, "result", r->out.result);
20723 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OpenPrinter(struct ndr_push *ndr, int flags, const struct spoolss_OpenPrinter *r)
20725 if (flags & NDR_IN) {
20726 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.printername));
20727 if (r->in.printername) {
20728 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
20729 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
20730 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
20731 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20733 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.datatype));
20734 if (r->in.datatype) {
20735 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
20736 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
20737 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
20738 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.datatype, ndr_charset_length(r->in.datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20740 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
20741 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr, NDR_SCALARS, r->in.access_mask));
20743 if (flags & NDR_OUT) {
20744 if (r->out.handle == NULL) {
20745 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20747 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
20748 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20750 return NDR_ERR_SUCCESS;
20753 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OpenPrinter(struct ndr_pull *ndr, int flags, struct spoolss_OpenPrinter *r)
20755 uint32_t _ptr_printername;
20756 uint32_t _ptr_datatype;
20757 TALLOC_CTX *_mem_save_printername_0;
20758 TALLOC_CTX *_mem_save_datatype_0;
20759 TALLOC_CTX *_mem_save_handle_0;
20760 if (flags & NDR_IN) {
20761 ZERO_STRUCT(r->out);
20763 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
20764 if (_ptr_printername) {
20765 NDR_PULL_ALLOC(ndr, r->in.printername);
20767 r->in.printername = NULL;
20769 if (r->in.printername) {
20770 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
20771 NDR_PULL_SET_MEM_CTX(ndr, r->in.printername, 0);
20772 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
20773 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
20774 if (ndr_get_array_length(ndr, &r->in.printername) > ndr_get_array_size(ndr, &r->in.printername)) {
20775 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));
20777 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t)));
20778 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t), CH_UTF16));
20779 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
20781 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
20782 if (_ptr_datatype) {
20783 NDR_PULL_ALLOC(ndr, r->in.datatype);
20785 r->in.datatype = NULL;
20787 if (r->in.datatype) {
20788 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
20789 NDR_PULL_SET_MEM_CTX(ndr, r->in.datatype, 0);
20790 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.datatype));
20791 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.datatype));
20792 if (ndr_get_array_length(ndr, &r->in.datatype) > ndr_get_array_size(ndr, &r->in.datatype)) {
20793 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));
20795 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t)));
20796 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t), CH_UTF16));
20797 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
20799 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
20800 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr, NDR_SCALARS, &r->in.access_mask));
20801 NDR_PULL_ALLOC(ndr, r->out.handle);
20802 ZERO_STRUCTP(r->out.handle);
20804 if (flags & NDR_OUT) {
20805 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20806 NDR_PULL_ALLOC(ndr, r->out.handle);
20808 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20809 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
20810 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
20811 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20812 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20814 return NDR_ERR_SUCCESS;
20817 _PUBLIC_ void ndr_print_spoolss_OpenPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_OpenPrinter *r)
20819 ndr_print_struct(ndr, name, "spoolss_OpenPrinter");
20821 if (flags & NDR_SET_VALUES) {
20822 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20824 if (flags & NDR_IN) {
20825 ndr_print_struct(ndr, "in", "spoolss_OpenPrinter");
20827 ndr_print_ptr(ndr, "printername", r->in.printername);
20829 if (r->in.printername) {
20830 ndr_print_string(ndr, "printername", r->in.printername);
20833 ndr_print_ptr(ndr, "datatype", r->in.datatype);
20835 if (r->in.datatype) {
20836 ndr_print_string(ndr, "datatype", r->in.datatype);
20839 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", &r->in.devmode_ctr);
20840 ndr_print_spoolss_AccessRights(ndr, "access_mask", r->in.access_mask);
20843 if (flags & NDR_OUT) {
20844 ndr_print_struct(ndr, "out", "spoolss_OpenPrinter");
20846 ndr_print_ptr(ndr, "handle", r->out.handle);
20848 ndr_print_policy_handle(ndr, "handle", r->out.handle);
20850 ndr_print_WERROR(ndr, "result", r->out.result);
20856 static enum ndr_err_code ndr_push_spoolss_SetJob(struct ndr_push *ndr, int flags, const struct spoolss_SetJob *r)
20858 if (flags & NDR_IN) {
20859 if (r->in.handle == NULL) {
20860 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20862 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20863 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.job_id));
20864 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.ctr));
20866 NDR_CHECK(ndr_push_spoolss_JobInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
20868 NDR_CHECK(ndr_push_spoolss_JobControl(ndr, NDR_SCALARS, r->in.command));
20870 if (flags & NDR_OUT) {
20871 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20873 return NDR_ERR_SUCCESS;
20876 static enum ndr_err_code ndr_pull_spoolss_SetJob(struct ndr_pull *ndr, int flags, struct spoolss_SetJob *r)
20879 TALLOC_CTX *_mem_save_handle_0;
20880 TALLOC_CTX *_mem_save_ctr_0;
20881 if (flags & NDR_IN) {
20882 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20883 NDR_PULL_ALLOC(ndr, r->in.handle);
20885 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20886 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20887 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20888 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20889 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.job_id));
20890 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr));
20892 NDR_PULL_ALLOC(ndr, r->in.ctr);
20897 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20898 NDR_PULL_SET_MEM_CTX(ndr, r->in.ctr, 0);
20899 NDR_CHECK(ndr_pull_spoolss_JobInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
20900 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, 0);
20902 NDR_CHECK(ndr_pull_spoolss_JobControl(ndr, NDR_SCALARS, &r->in.command));
20904 if (flags & NDR_OUT) {
20905 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20907 return NDR_ERR_SUCCESS;
20910 _PUBLIC_ void ndr_print_spoolss_SetJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetJob *r)
20912 ndr_print_struct(ndr, name, "spoolss_SetJob");
20914 if (flags & NDR_SET_VALUES) {
20915 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20917 if (flags & NDR_IN) {
20918 ndr_print_struct(ndr, "in", "spoolss_SetJob");
20920 ndr_print_ptr(ndr, "handle", r->in.handle);
20922 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20924 ndr_print_uint32(ndr, "job_id", r->in.job_id);
20925 ndr_print_ptr(ndr, "ctr", r->in.ctr);
20928 ndr_print_spoolss_JobInfoContainer(ndr, "ctr", r->in.ctr);
20931 ndr_print_spoolss_JobControl(ndr, "command", r->in.command);
20934 if (flags & NDR_OUT) {
20935 ndr_print_struct(ndr, "out", "spoolss_SetJob");
20937 ndr_print_WERROR(ndr, "result", r->out.result);
20943 static enum ndr_err_code ndr_push_spoolss_GetJob(struct ndr_push *ndr, int flags, const struct spoolss_GetJob *r)
20945 if (flags & NDR_IN) {
20946 if (r->in.handle == NULL) {
20947 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20949 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20950 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.job_id));
20951 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20952 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20953 if (r->in.buffer) {
20954 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
20956 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
20958 if (flags & NDR_OUT) {
20959 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
20962 struct ndr_push *_ndr_info;
20963 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
20964 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
20965 NDR_CHECK(ndr_push_spoolss_JobInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
20966 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
20969 if (r->out.needed == NULL) {
20970 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20972 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
20973 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20975 return NDR_ERR_SUCCESS;
20978 static enum ndr_err_code ndr_pull_spoolss_GetJob(struct ndr_pull *ndr, int flags, struct spoolss_GetJob *r)
20980 uint32_t _ptr_buffer;
20981 uint32_t _ptr_info;
20982 TALLOC_CTX *_mem_save_handle_0;
20983 TALLOC_CTX *_mem_save_buffer_0;
20984 TALLOC_CTX *_mem_save_info_0;
20985 TALLOC_CTX *_mem_save_needed_0;
20986 if (flags & NDR_IN) {
20987 ZERO_STRUCT(r->out);
20989 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20990 NDR_PULL_ALLOC(ndr, r->in.handle);
20992 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20993 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20994 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20995 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20996 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.job_id));
20997 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20998 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
21000 NDR_PULL_ALLOC(ndr, r->in.buffer);
21002 r->in.buffer = NULL;
21004 if (r->in.buffer) {
21005 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21006 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
21007 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
21008 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
21010 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21011 NDR_PULL_ALLOC(ndr, r->out.needed);
21012 ZERO_STRUCTP(r->out.needed);
21014 if (flags & NDR_OUT) {
21015 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
21017 NDR_PULL_ALLOC(ndr, r->out.info);
21019 r->out.info = NULL;
21022 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21023 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21025 struct ndr_pull *_ndr_info;
21026 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21027 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
21028 NDR_CHECK(ndr_pull_spoolss_JobInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
21029 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21031 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21033 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21034 NDR_PULL_ALLOC(ndr, r->out.needed);
21036 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21037 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21038 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21039 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21040 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21042 return NDR_ERR_SUCCESS;
21045 _PUBLIC_ void ndr_print_spoolss_GetJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetJob *r)
21047 ndr_print_struct(ndr, name, "spoolss_GetJob");
21049 if (flags & NDR_SET_VALUES) {
21050 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21052 if (flags & NDR_IN) {
21053 ndr_print_struct(ndr, "in", "spoolss_GetJob");
21055 ndr_print_ptr(ndr, "handle", r->in.handle);
21057 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21059 ndr_print_uint32(ndr, "job_id", r->in.job_id);
21060 ndr_print_uint32(ndr, "level", r->in.level);
21061 ndr_print_ptr(ndr, "buffer", r->in.buffer);
21063 if (r->in.buffer) {
21064 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
21067 ndr_print_uint32(ndr, "offered", r->in.offered);
21070 if (flags & NDR_OUT) {
21071 ndr_print_struct(ndr, "out", "spoolss_GetJob");
21073 ndr_print_ptr(ndr, "info", r->out.info);
21076 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
21077 ndr_print_spoolss_JobInfo(ndr, "info", r->out.info);
21080 ndr_print_ptr(ndr, "needed", r->out.needed);
21082 ndr_print_uint32(ndr, "needed", *r->out.needed);
21084 ndr_print_WERROR(ndr, "result", r->out.result);
21090 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumJobs(struct ndr_push *ndr, int flags, const struct _spoolss_EnumJobs *r)
21092 if (flags & NDR_IN) {
21093 if (r->in.handle == NULL) {
21094 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21096 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21097 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.firstjob));
21098 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.numjobs));
21099 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21100 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
21101 if (r->in.buffer) {
21102 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
21104 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21106 if (flags & NDR_OUT) {
21107 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
21109 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
21111 if (r->out.needed == NULL) {
21112 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21114 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21115 if (r->out.count == NULL) {
21116 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21118 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
21119 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21121 return NDR_ERR_SUCCESS;
21124 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumJobs(struct ndr_pull *ndr, int flags, struct _spoolss_EnumJobs *r)
21126 uint32_t _ptr_buffer;
21127 uint32_t _ptr_info;
21128 TALLOC_CTX *_mem_save_handle_0;
21129 TALLOC_CTX *_mem_save_buffer_0;
21130 TALLOC_CTX *_mem_save_info_0;
21131 TALLOC_CTX *_mem_save_needed_0;
21132 TALLOC_CTX *_mem_save_count_0;
21133 if (flags & NDR_IN) {
21134 ZERO_STRUCT(r->out);
21136 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21137 NDR_PULL_ALLOC(ndr, r->in.handle);
21139 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21140 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21141 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21142 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21143 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.firstjob));
21144 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.numjobs));
21145 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21146 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
21148 NDR_PULL_ALLOC(ndr, r->in.buffer);
21150 r->in.buffer = NULL;
21152 if (r->in.buffer) {
21153 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21154 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
21155 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
21156 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
21158 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21159 NDR_PULL_ALLOC(ndr, r->out.needed);
21160 ZERO_STRUCTP(r->out.needed);
21161 NDR_PULL_ALLOC(ndr, r->out.count);
21162 ZERO_STRUCTP(r->out.count);
21164 if (flags & NDR_OUT) {
21165 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
21167 NDR_PULL_ALLOC(ndr, r->out.info);
21169 r->out.info = NULL;
21172 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21173 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21174 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
21175 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21177 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21178 NDR_PULL_ALLOC(ndr, r->out.needed);
21180 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21181 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21182 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21183 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21184 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21185 NDR_PULL_ALLOC(ndr, r->out.count);
21187 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
21188 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
21189 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
21190 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
21191 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21193 return NDR_ERR_SUCCESS;
21196 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumJobs(struct ndr_push *ndr, int flags, const struct __spoolss_EnumJobs *r)
21198 uint32_t cntr_info_0;
21199 if (flags & NDR_IN) {
21200 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21201 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
21203 if (flags & NDR_OUT) {
21204 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21205 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
21206 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
21208 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21209 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
21212 return NDR_ERR_SUCCESS;
21215 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumJobs(struct ndr_pull *ndr, int flags, struct __spoolss_EnumJobs *r)
21217 uint32_t cntr_info_0;
21218 TALLOC_CTX *_mem_save_info_0;
21219 if (flags & NDR_IN) {
21220 ZERO_STRUCT(r->out);
21222 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21223 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
21225 if (flags & NDR_OUT) {
21226 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
21227 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21228 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21229 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21230 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
21231 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
21233 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21234 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
21236 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21238 return NDR_ERR_SUCCESS;
21241 _PUBLIC_ void ndr_print_spoolss_EnumJobs(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumJobs *r)
21243 uint32_t cntr_info_2;
21244 ndr_print_struct(ndr, name, "spoolss_EnumJobs");
21246 if (flags & NDR_SET_VALUES) {
21247 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21249 if (flags & NDR_IN) {
21250 ndr_print_struct(ndr, "in", "spoolss_EnumJobs");
21252 ndr_print_ptr(ndr, "handle", r->in.handle);
21254 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21256 ndr_print_uint32(ndr, "firstjob", r->in.firstjob);
21257 ndr_print_uint32(ndr, "numjobs", r->in.numjobs);
21258 ndr_print_uint32(ndr, "level", r->in.level);
21259 ndr_print_ptr(ndr, "buffer", r->in.buffer);
21261 if (r->in.buffer) {
21262 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
21265 ndr_print_uint32(ndr, "offered", r->in.offered);
21268 if (flags & NDR_OUT) {
21269 ndr_print_struct(ndr, "out", "spoolss_EnumJobs");
21271 ndr_print_ptr(ndr, "count", r->out.count);
21273 ndr_print_uint32(ndr, "count", *r->out.count);
21275 ndr_print_ptr(ndr, "info", r->out.info);
21277 ndr_print_ptr(ndr, "info", *r->out.info);
21279 if (*r->out.info) {
21280 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
21282 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
21284 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
21285 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
21286 ndr_print_spoolss_JobInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
21294 ndr_print_ptr(ndr, "needed", r->out.needed);
21296 ndr_print_uint32(ndr, "needed", *r->out.needed);
21298 ndr_print_WERROR(ndr, "result", r->out.result);
21304 static enum ndr_err_code ndr_push_spoolss_AddPrinter(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinter *r)
21306 if (flags & NDR_IN) {
21307 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
21308 if (r->in.server) {
21309 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21310 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21311 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21312 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21314 if (r->in.info_ctr == NULL) {
21315 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21317 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
21318 if (r->in.devmode_ctr == NULL) {
21319 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21321 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
21322 if (r->in.secdesc_ctr == NULL) {
21323 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21325 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
21327 if (flags & NDR_OUT) {
21328 if (r->out.handle == NULL) {
21329 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21331 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
21332 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21334 return NDR_ERR_SUCCESS;
21337 static enum ndr_err_code ndr_pull_spoolss_AddPrinter(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinter *r)
21339 uint32_t _ptr_server;
21340 TALLOC_CTX *_mem_save_server_0;
21341 TALLOC_CTX *_mem_save_info_ctr_0;
21342 TALLOC_CTX *_mem_save_devmode_ctr_0;
21343 TALLOC_CTX *_mem_save_secdesc_ctr_0;
21344 TALLOC_CTX *_mem_save_handle_0;
21345 if (flags & NDR_IN) {
21346 ZERO_STRUCT(r->out);
21348 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
21350 NDR_PULL_ALLOC(ndr, r->in.server);
21352 r->in.server = NULL;
21354 if (r->in.server) {
21355 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
21356 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
21357 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
21358 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
21359 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
21360 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));
21362 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
21363 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
21364 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
21366 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21367 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
21369 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
21370 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
21371 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
21372 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
21373 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21374 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
21376 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
21377 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
21378 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
21379 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
21380 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21381 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
21383 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
21384 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
21385 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
21386 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
21387 NDR_PULL_ALLOC(ndr, r->out.handle);
21388 ZERO_STRUCTP(r->out.handle);
21390 if (flags & NDR_OUT) {
21391 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21392 NDR_PULL_ALLOC(ndr, r->out.handle);
21394 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21395 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
21396 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
21397 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21398 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21400 return NDR_ERR_SUCCESS;
21403 _PUBLIC_ void ndr_print_spoolss_AddPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinter *r)
21405 ndr_print_struct(ndr, name, "spoolss_AddPrinter");
21407 if (flags & NDR_SET_VALUES) {
21408 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21410 if (flags & NDR_IN) {
21411 ndr_print_struct(ndr, "in", "spoolss_AddPrinter");
21413 ndr_print_ptr(ndr, "server", r->in.server);
21415 if (r->in.server) {
21416 ndr_print_string(ndr, "server", r->in.server);
21419 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
21421 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
21423 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
21425 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
21427 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
21429 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
21433 if (flags & NDR_OUT) {
21434 ndr_print_struct(ndr, "out", "spoolss_AddPrinter");
21436 ndr_print_ptr(ndr, "handle", r->out.handle);
21438 ndr_print_policy_handle(ndr, "handle", r->out.handle);
21440 ndr_print_WERROR(ndr, "result", r->out.result);
21446 static enum ndr_err_code ndr_push_spoolss_DeletePrinter(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinter *r)
21448 if (flags & NDR_IN) {
21449 if (r->in.handle == NULL) {
21450 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21452 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21454 if (flags & NDR_OUT) {
21455 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21457 return NDR_ERR_SUCCESS;
21460 static enum ndr_err_code ndr_pull_spoolss_DeletePrinter(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinter *r)
21462 TALLOC_CTX *_mem_save_handle_0;
21463 if (flags & NDR_IN) {
21464 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21465 NDR_PULL_ALLOC(ndr, r->in.handle);
21467 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21468 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21469 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21470 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21472 if (flags & NDR_OUT) {
21473 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21475 return NDR_ERR_SUCCESS;
21478 _PUBLIC_ void ndr_print_spoolss_DeletePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinter *r)
21480 ndr_print_struct(ndr, name, "spoolss_DeletePrinter");
21482 if (flags & NDR_SET_VALUES) {
21483 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21485 if (flags & NDR_IN) {
21486 ndr_print_struct(ndr, "in", "spoolss_DeletePrinter");
21488 ndr_print_ptr(ndr, "handle", r->in.handle);
21490 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21494 if (flags & NDR_OUT) {
21495 ndr_print_struct(ndr, "out", "spoolss_DeletePrinter");
21497 ndr_print_WERROR(ndr, "result", r->out.result);
21503 static enum ndr_err_code ndr_push_spoolss_SetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_SetPrinter *r)
21505 if (flags & NDR_IN) {
21506 if (r->in.handle == NULL) {
21507 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21509 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21510 if (r->in.info_ctr == NULL) {
21511 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21513 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
21514 if (r->in.devmode_ctr == NULL) {
21515 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21517 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
21518 if (r->in.secdesc_ctr == NULL) {
21519 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21521 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
21522 NDR_CHECK(ndr_push_spoolss_PrinterControl(ndr, NDR_SCALARS, r->in.command));
21524 if (flags & NDR_OUT) {
21525 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21527 return NDR_ERR_SUCCESS;
21530 static enum ndr_err_code ndr_pull_spoolss_SetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinter *r)
21532 TALLOC_CTX *_mem_save_handle_0;
21533 TALLOC_CTX *_mem_save_info_ctr_0;
21534 TALLOC_CTX *_mem_save_devmode_ctr_0;
21535 TALLOC_CTX *_mem_save_secdesc_ctr_0;
21536 if (flags & NDR_IN) {
21537 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21538 NDR_PULL_ALLOC(ndr, r->in.handle);
21540 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21541 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21542 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21543 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21544 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21545 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
21547 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
21548 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
21549 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
21550 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
21551 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21552 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
21554 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
21555 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
21556 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
21557 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
21558 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21559 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
21561 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
21562 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
21563 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
21564 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
21565 NDR_CHECK(ndr_pull_spoolss_PrinterControl(ndr, NDR_SCALARS, &r->in.command));
21567 if (flags & NDR_OUT) {
21568 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21570 return NDR_ERR_SUCCESS;
21573 _PUBLIC_ void ndr_print_spoolss_SetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinter *r)
21575 ndr_print_struct(ndr, name, "spoolss_SetPrinter");
21577 if (flags & NDR_SET_VALUES) {
21578 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21580 if (flags & NDR_IN) {
21581 ndr_print_struct(ndr, "in", "spoolss_SetPrinter");
21583 ndr_print_ptr(ndr, "handle", r->in.handle);
21585 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21587 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
21589 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
21591 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
21593 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
21595 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
21597 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
21599 ndr_print_spoolss_PrinterControl(ndr, "command", r->in.command);
21602 if (flags & NDR_OUT) {
21603 ndr_print_struct(ndr, "out", "spoolss_SetPrinter");
21605 ndr_print_WERROR(ndr, "result", r->out.result);
21611 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinter *r)
21613 if (flags & NDR_IN) {
21614 if (r->in.handle == NULL) {
21615 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21617 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21618 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21619 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
21620 if (r->in.buffer) {
21621 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
21623 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21625 if (flags & NDR_OUT) {
21626 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
21629 struct ndr_push *_ndr_info;
21630 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21631 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
21632 NDR_CHECK(ndr_push_spoolss_PrinterInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
21633 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21636 if (r->out.needed == NULL) {
21637 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21639 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21640 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21642 return NDR_ERR_SUCCESS;
21645 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinter *r)
21647 uint32_t _ptr_buffer;
21648 uint32_t _ptr_info;
21649 TALLOC_CTX *_mem_save_handle_0;
21650 TALLOC_CTX *_mem_save_buffer_0;
21651 TALLOC_CTX *_mem_save_info_0;
21652 TALLOC_CTX *_mem_save_needed_0;
21653 if (flags & NDR_IN) {
21654 ZERO_STRUCT(r->out);
21656 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21657 NDR_PULL_ALLOC(ndr, r->in.handle);
21659 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21660 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21661 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21662 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21663 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21664 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
21666 NDR_PULL_ALLOC(ndr, r->in.buffer);
21668 r->in.buffer = NULL;
21670 if (r->in.buffer) {
21671 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21672 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
21673 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
21674 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
21676 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21677 NDR_PULL_ALLOC(ndr, r->out.needed);
21678 ZERO_STRUCTP(r->out.needed);
21680 if (flags & NDR_OUT) {
21681 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
21683 NDR_PULL_ALLOC(ndr, r->out.info);
21685 r->out.info = NULL;
21688 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21689 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21691 struct ndr_pull *_ndr_info;
21692 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21693 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
21694 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
21695 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21697 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21699 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21700 NDR_PULL_ALLOC(ndr, r->out.needed);
21702 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21703 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21704 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21705 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21706 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21708 return NDR_ERR_SUCCESS;
21711 _PUBLIC_ void ndr_print_spoolss_GetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinter *r)
21713 ndr_print_struct(ndr, name, "spoolss_GetPrinter");
21715 if (flags & NDR_SET_VALUES) {
21716 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21718 if (flags & NDR_IN) {
21719 ndr_print_struct(ndr, "in", "spoolss_GetPrinter");
21721 ndr_print_ptr(ndr, "handle", r->in.handle);
21723 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21725 ndr_print_uint32(ndr, "level", r->in.level);
21726 ndr_print_ptr(ndr, "buffer", r->in.buffer);
21728 if (r->in.buffer) {
21729 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
21732 ndr_print_uint32(ndr, "offered", r->in.offered);
21735 if (flags & NDR_OUT) {
21736 ndr_print_struct(ndr, "out", "spoolss_GetPrinter");
21738 ndr_print_ptr(ndr, "info", r->out.info);
21741 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
21742 ndr_print_spoolss_PrinterInfo(ndr, "info", r->out.info);
21745 ndr_print_ptr(ndr, "needed", r->out.needed);
21747 ndr_print_uint32(ndr, "needed", *r->out.needed);
21749 ndr_print_WERROR(ndr, "result", r->out.result);
21755 static enum ndr_err_code ndr_push_spoolss_AddPrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterDriver *r)
21757 if (flags & NDR_IN) {
21758 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
21759 if (r->in.servername) {
21760 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
21761 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21762 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
21763 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21765 if (r->in.info_ctr == NULL) {
21766 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21768 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
21770 if (flags & NDR_OUT) {
21771 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21773 return NDR_ERR_SUCCESS;
21776 static enum ndr_err_code ndr_pull_spoolss_AddPrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterDriver *r)
21778 uint32_t _ptr_servername;
21779 TALLOC_CTX *_mem_save_servername_0;
21780 TALLOC_CTX *_mem_save_info_ctr_0;
21781 if (flags & NDR_IN) {
21782 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
21783 if (_ptr_servername) {
21784 NDR_PULL_ALLOC(ndr, r->in.servername);
21786 r->in.servername = NULL;
21788 if (r->in.servername) {
21789 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
21790 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
21791 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
21792 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
21793 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
21794 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));
21796 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
21797 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
21798 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
21800 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21801 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
21803 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
21804 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
21805 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
21806 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
21808 if (flags & NDR_OUT) {
21809 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21811 return NDR_ERR_SUCCESS;
21814 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterDriver *r)
21816 ndr_print_struct(ndr, name, "spoolss_AddPrinterDriver");
21818 if (flags & NDR_SET_VALUES) {
21819 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21821 if (flags & NDR_IN) {
21822 ndr_print_struct(ndr, "in", "spoolss_AddPrinterDriver");
21824 ndr_print_ptr(ndr, "servername", r->in.servername);
21826 if (r->in.servername) {
21827 ndr_print_string(ndr, "servername", r->in.servername);
21830 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
21832 ndr_print_spoolss_AddDriverInfoCtr(ndr, "info_ctr", r->in.info_ctr);
21836 if (flags & NDR_OUT) {
21837 ndr_print_struct(ndr, "out", "spoolss_AddPrinterDriver");
21839 ndr_print_WERROR(ndr, "result", r->out.result);
21845 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinterDrivers(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinterDrivers *r)
21847 if (flags & NDR_IN) {
21848 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
21849 if (r->in.server) {
21850 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21851 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21852 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21853 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21855 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
21856 if (r->in.environment) {
21857 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
21858 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21859 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
21860 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21862 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21863 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
21864 if (r->in.buffer) {
21865 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
21867 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21869 if (flags & NDR_OUT) {
21870 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
21872 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
21874 if (r->out.needed == NULL) {
21875 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21877 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21878 if (r->out.count == NULL) {
21879 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21881 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
21882 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21884 return NDR_ERR_SUCCESS;
21887 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinterDrivers *r)
21889 uint32_t _ptr_server;
21890 uint32_t _ptr_environment;
21891 uint32_t _ptr_buffer;
21892 uint32_t _ptr_info;
21893 TALLOC_CTX *_mem_save_server_0;
21894 TALLOC_CTX *_mem_save_environment_0;
21895 TALLOC_CTX *_mem_save_buffer_0;
21896 TALLOC_CTX *_mem_save_info_0;
21897 TALLOC_CTX *_mem_save_needed_0;
21898 TALLOC_CTX *_mem_save_count_0;
21899 if (flags & NDR_IN) {
21900 ZERO_STRUCT(r->out);
21902 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
21904 NDR_PULL_ALLOC(ndr, r->in.server);
21906 r->in.server = NULL;
21908 if (r->in.server) {
21909 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
21910 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
21911 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
21912 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
21913 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
21914 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));
21916 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
21917 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
21918 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
21920 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
21921 if (_ptr_environment) {
21922 NDR_PULL_ALLOC(ndr, r->in.environment);
21924 r->in.environment = NULL;
21926 if (r->in.environment) {
21927 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
21928 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
21929 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
21930 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
21931 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
21932 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));
21934 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
21935 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
21936 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
21938 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21939 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
21941 NDR_PULL_ALLOC(ndr, r->in.buffer);
21943 r->in.buffer = NULL;
21945 if (r->in.buffer) {
21946 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21947 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
21948 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
21949 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
21951 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21952 NDR_PULL_ALLOC(ndr, r->out.needed);
21953 ZERO_STRUCTP(r->out.needed);
21954 NDR_PULL_ALLOC(ndr, r->out.count);
21955 ZERO_STRUCTP(r->out.count);
21957 if (flags & NDR_OUT) {
21958 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
21960 NDR_PULL_ALLOC(ndr, r->out.info);
21962 r->out.info = NULL;
21965 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21966 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21967 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
21968 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21970 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21971 NDR_PULL_ALLOC(ndr, r->out.needed);
21973 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21974 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21975 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21976 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21977 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21978 NDR_PULL_ALLOC(ndr, r->out.count);
21980 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
21981 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
21982 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
21983 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
21984 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21986 return NDR_ERR_SUCCESS;
21989 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinterDrivers(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinterDrivers *r)
21991 uint32_t cntr_info_0;
21992 if (flags & NDR_IN) {
21993 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21994 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
21996 if (flags & NDR_OUT) {
21997 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21998 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
21999 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
22001 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22002 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
22005 return NDR_ERR_SUCCESS;
22008 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinterDrivers *r)
22010 uint32_t cntr_info_0;
22011 TALLOC_CTX *_mem_save_info_0;
22012 if (flags & NDR_IN) {
22013 ZERO_STRUCT(r->out);
22015 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22016 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
22018 if (flags & NDR_OUT) {
22019 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
22020 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22021 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22022 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22023 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
22024 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
22026 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22027 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
22029 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22031 return NDR_ERR_SUCCESS;
22034 _PUBLIC_ void ndr_print_spoolss_EnumPrinterDrivers(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterDrivers *r)
22036 uint32_t cntr_info_2;
22037 ndr_print_struct(ndr, name, "spoolss_EnumPrinterDrivers");
22039 if (flags & NDR_SET_VALUES) {
22040 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22042 if (flags & NDR_IN) {
22043 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterDrivers");
22045 ndr_print_ptr(ndr, "server", r->in.server);
22047 if (r->in.server) {
22048 ndr_print_string(ndr, "server", r->in.server);
22051 ndr_print_ptr(ndr, "environment", r->in.environment);
22053 if (r->in.environment) {
22054 ndr_print_string(ndr, "environment", r->in.environment);
22057 ndr_print_uint32(ndr, "level", r->in.level);
22058 ndr_print_ptr(ndr, "buffer", r->in.buffer);
22060 if (r->in.buffer) {
22061 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
22064 ndr_print_uint32(ndr, "offered", r->in.offered);
22067 if (flags & NDR_OUT) {
22068 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterDrivers");
22070 ndr_print_ptr(ndr, "count", r->out.count);
22072 ndr_print_uint32(ndr, "count", *r->out.count);
22074 ndr_print_ptr(ndr, "info", r->out.info);
22076 ndr_print_ptr(ndr, "info", *r->out.info);
22078 if (*r->out.info) {
22079 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
22081 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
22083 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
22084 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
22085 ndr_print_spoolss_DriverInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
22093 ndr_print_ptr(ndr, "needed", r->out.needed);
22095 ndr_print_uint32(ndr, "needed", *r->out.needed);
22097 ndr_print_WERROR(ndr, "result", r->out.result);
22103 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriver *r)
22105 if (flags & NDR_IN) {
22106 if (r->in.handle == NULL) {
22107 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22109 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22110 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.architecture));
22111 if (r->in.architecture) {
22112 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
22113 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22114 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
22115 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22117 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22118 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
22119 if (r->in.buffer) {
22120 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
22122 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22124 if (flags & NDR_OUT) {
22125 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
22128 struct ndr_push *_ndr_info;
22129 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
22130 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
22131 NDR_CHECK(ndr_push_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
22132 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
22135 if (r->out.needed == NULL) {
22136 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22138 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22139 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22141 return NDR_ERR_SUCCESS;
22144 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriver *r)
22146 uint32_t _ptr_architecture;
22147 uint32_t _ptr_buffer;
22148 uint32_t _ptr_info;
22149 TALLOC_CTX *_mem_save_handle_0;
22150 TALLOC_CTX *_mem_save_architecture_0;
22151 TALLOC_CTX *_mem_save_buffer_0;
22152 TALLOC_CTX *_mem_save_info_0;
22153 TALLOC_CTX *_mem_save_needed_0;
22154 if (flags & NDR_IN) {
22155 ZERO_STRUCT(r->out);
22157 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22158 NDR_PULL_ALLOC(ndr, r->in.handle);
22160 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22161 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22162 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22163 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22164 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
22165 if (_ptr_architecture) {
22166 NDR_PULL_ALLOC(ndr, r->in.architecture);
22168 r->in.architecture = NULL;
22170 if (r->in.architecture) {
22171 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
22172 NDR_PULL_SET_MEM_CTX(ndr, r->in.architecture, 0);
22173 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
22174 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
22175 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
22176 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));
22178 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
22179 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
22180 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
22182 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22183 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
22185 NDR_PULL_ALLOC(ndr, r->in.buffer);
22187 r->in.buffer = NULL;
22189 if (r->in.buffer) {
22190 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
22191 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
22192 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
22193 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22195 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22196 NDR_PULL_ALLOC(ndr, r->out.needed);
22197 ZERO_STRUCTP(r->out.needed);
22199 if (flags & NDR_OUT) {
22200 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
22202 NDR_PULL_ALLOC(ndr, r->out.info);
22204 r->out.info = NULL;
22207 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22208 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22210 struct ndr_pull *_ndr_info;
22211 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
22212 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
22213 NDR_CHECK(ndr_pull_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
22214 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
22216 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22218 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22219 NDR_PULL_ALLOC(ndr, r->out.needed);
22221 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22222 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22223 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22224 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22225 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22227 return NDR_ERR_SUCCESS;
22230 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriver *r)
22232 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriver");
22234 if (flags & NDR_SET_VALUES) {
22235 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22237 if (flags & NDR_IN) {
22238 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriver");
22240 ndr_print_ptr(ndr, "handle", r->in.handle);
22242 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22244 ndr_print_ptr(ndr, "architecture", r->in.architecture);
22246 if (r->in.architecture) {
22247 ndr_print_string(ndr, "architecture", r->in.architecture);
22250 ndr_print_uint32(ndr, "level", r->in.level);
22251 ndr_print_ptr(ndr, "buffer", r->in.buffer);
22253 if (r->in.buffer) {
22254 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
22257 ndr_print_uint32(ndr, "offered", r->in.offered);
22260 if (flags & NDR_OUT) {
22261 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriver");
22263 ndr_print_ptr(ndr, "info", r->out.info);
22266 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
22267 ndr_print_spoolss_DriverInfo(ndr, "info", r->out.info);
22270 ndr_print_ptr(ndr, "needed", r->out.needed);
22272 ndr_print_uint32(ndr, "needed", *r->out.needed);
22274 ndr_print_WERROR(ndr, "result", r->out.result);
22280 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinterDriverDirectory(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriverDirectory *r)
22282 if (flags & NDR_IN) {
22283 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
22284 if (r->in.server) {
22285 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22286 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22287 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22288 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22290 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
22291 if (r->in.environment) {
22292 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
22293 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22294 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
22295 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22297 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22298 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
22299 if (r->in.buffer) {
22300 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
22302 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22304 if (flags & NDR_OUT) {
22305 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
22308 struct ndr_push *_ndr_info;
22309 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
22310 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
22311 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
22312 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
22315 if (r->out.needed == NULL) {
22316 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22318 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22319 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22321 return NDR_ERR_SUCCESS;
22324 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinterDriverDirectory(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriverDirectory *r)
22326 uint32_t _ptr_server;
22327 uint32_t _ptr_environment;
22328 uint32_t _ptr_buffer;
22329 uint32_t _ptr_info;
22330 TALLOC_CTX *_mem_save_server_0;
22331 TALLOC_CTX *_mem_save_environment_0;
22332 TALLOC_CTX *_mem_save_buffer_0;
22333 TALLOC_CTX *_mem_save_info_0;
22334 TALLOC_CTX *_mem_save_needed_0;
22335 if (flags & NDR_IN) {
22336 ZERO_STRUCT(r->out);
22338 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
22340 NDR_PULL_ALLOC(ndr, r->in.server);
22342 r->in.server = NULL;
22344 if (r->in.server) {
22345 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
22346 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
22347 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
22348 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
22349 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
22350 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));
22352 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
22353 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
22354 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
22356 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
22357 if (_ptr_environment) {
22358 NDR_PULL_ALLOC(ndr, r->in.environment);
22360 r->in.environment = NULL;
22362 if (r->in.environment) {
22363 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
22364 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
22365 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
22366 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
22367 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
22368 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));
22370 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
22371 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
22372 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
22374 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22375 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
22377 NDR_PULL_ALLOC(ndr, r->in.buffer);
22379 r->in.buffer = NULL;
22381 if (r->in.buffer) {
22382 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
22383 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
22384 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
22385 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22387 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22388 NDR_PULL_ALLOC(ndr, r->out.needed);
22389 ZERO_STRUCTP(r->out.needed);
22391 if (flags & NDR_OUT) {
22392 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
22394 NDR_PULL_ALLOC(ndr, r->out.info);
22396 r->out.info = NULL;
22399 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22400 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22402 struct ndr_pull *_ndr_info;
22403 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
22404 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
22405 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
22406 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
22408 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22410 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22411 NDR_PULL_ALLOC(ndr, r->out.needed);
22413 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22414 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22415 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22416 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22417 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22419 return NDR_ERR_SUCCESS;
22422 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriverDirectory(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriverDirectory *r)
22424 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriverDirectory");
22426 if (flags & NDR_SET_VALUES) {
22427 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22429 if (flags & NDR_IN) {
22430 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriverDirectory");
22432 ndr_print_ptr(ndr, "server", r->in.server);
22434 if (r->in.server) {
22435 ndr_print_string(ndr, "server", r->in.server);
22438 ndr_print_ptr(ndr, "environment", r->in.environment);
22440 if (r->in.environment) {
22441 ndr_print_string(ndr, "environment", r->in.environment);
22444 ndr_print_uint32(ndr, "level", r->in.level);
22445 ndr_print_ptr(ndr, "buffer", r->in.buffer);
22447 if (r->in.buffer) {
22448 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
22451 ndr_print_uint32(ndr, "offered", r->in.offered);
22454 if (flags & NDR_OUT) {
22455 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriverDirectory");
22457 ndr_print_ptr(ndr, "info", r->out.info);
22460 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
22461 ndr_print_spoolss_DriverDirectoryInfo(ndr, "info", r->out.info);
22464 ndr_print_ptr(ndr, "needed", r->out.needed);
22466 ndr_print_uint32(ndr, "needed", *r->out.needed);
22468 ndr_print_WERROR(ndr, "result", r->out.result);
22474 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDriver *r)
22476 if (flags & NDR_IN) {
22477 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
22478 if (r->in.server) {
22479 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22480 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22481 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22482 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22484 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
22485 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22486 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
22487 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22488 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
22489 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22490 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
22491 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver, ndr_charset_length(r->in.driver, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22493 if (flags & NDR_OUT) {
22494 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22496 return NDR_ERR_SUCCESS;
22499 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDriver *r)
22501 uint32_t _ptr_server;
22502 TALLOC_CTX *_mem_save_server_0;
22503 if (flags & NDR_IN) {
22504 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
22506 NDR_PULL_ALLOC(ndr, r->in.server);
22508 r->in.server = NULL;
22510 if (r->in.server) {
22511 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
22512 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
22513 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
22514 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
22515 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
22516 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));
22518 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
22519 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
22520 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
22522 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
22523 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
22524 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
22525 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));
22527 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
22528 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
22529 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver));
22530 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.driver));
22531 if (ndr_get_array_length(ndr, &r->in.driver) > ndr_get_array_size(ndr, &r->in.driver)) {
22532 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));
22534 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t)));
22535 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t), CH_UTF16));
22537 if (flags & NDR_OUT) {
22538 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22540 return NDR_ERR_SUCCESS;
22543 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDriver *r)
22545 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDriver");
22547 if (flags & NDR_SET_VALUES) {
22548 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22550 if (flags & NDR_IN) {
22551 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDriver");
22553 ndr_print_ptr(ndr, "server", r->in.server);
22555 if (r->in.server) {
22556 ndr_print_string(ndr, "server", r->in.server);
22559 ndr_print_string(ndr, "architecture", r->in.architecture);
22560 ndr_print_string(ndr, "driver", r->in.driver);
22563 if (flags & NDR_OUT) {
22564 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDriver");
22566 ndr_print_WERROR(ndr, "result", r->out.result);
22572 static enum ndr_err_code ndr_push_spoolss_AddPrintProcessor(struct ndr_push *ndr, int flags, const struct spoolss_AddPrintProcessor *r)
22574 if (flags & NDR_IN) {
22575 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
22576 if (r->in.server) {
22577 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22578 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22579 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22580 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22582 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
22583 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22584 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
22585 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22586 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.path_name, CH_UTF16)));
22587 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22588 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.path_name, CH_UTF16)));
22589 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));
22590 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
22591 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22592 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
22593 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));
22595 if (flags & NDR_OUT) {
22596 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22598 return NDR_ERR_SUCCESS;
22601 static enum ndr_err_code ndr_pull_spoolss_AddPrintProcessor(struct ndr_pull *ndr, int flags, struct spoolss_AddPrintProcessor *r)
22603 uint32_t _ptr_server;
22604 TALLOC_CTX *_mem_save_server_0;
22605 if (flags & NDR_IN) {
22606 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
22608 NDR_PULL_ALLOC(ndr, r->in.server);
22610 r->in.server = NULL;
22612 if (r->in.server) {
22613 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
22614 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
22615 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
22616 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
22617 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
22618 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));
22620 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
22621 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
22622 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
22624 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
22625 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
22626 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
22627 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));
22629 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
22630 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
22631 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.path_name));
22632 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.path_name));
22633 if (ndr_get_array_length(ndr, &r->in.path_name) > ndr_get_array_size(ndr, &r->in.path_name)) {
22634 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));
22636 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.path_name), sizeof(uint16_t)));
22637 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));
22638 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.print_processor_name));
22639 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.print_processor_name));
22640 if (ndr_get_array_length(ndr, &r->in.print_processor_name) > ndr_get_array_size(ndr, &r->in.print_processor_name)) {
22641 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));
22643 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.print_processor_name), sizeof(uint16_t)));
22644 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));
22646 if (flags & NDR_OUT) {
22647 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22649 return NDR_ERR_SUCCESS;
22652 _PUBLIC_ void ndr_print_spoolss_AddPrintProcessor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrintProcessor *r)
22654 ndr_print_struct(ndr, name, "spoolss_AddPrintProcessor");
22656 if (flags & NDR_SET_VALUES) {
22657 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22659 if (flags & NDR_IN) {
22660 ndr_print_struct(ndr, "in", "spoolss_AddPrintProcessor");
22662 ndr_print_ptr(ndr, "server", r->in.server);
22664 if (r->in.server) {
22665 ndr_print_string(ndr, "server", r->in.server);
22668 ndr_print_string(ndr, "architecture", r->in.architecture);
22669 ndr_print_string(ndr, "path_name", r->in.path_name);
22670 ndr_print_string(ndr, "print_processor_name", r->in.print_processor_name);
22673 if (flags & NDR_OUT) {
22674 ndr_print_struct(ndr, "out", "spoolss_AddPrintProcessor");
22676 ndr_print_WERROR(ndr, "result", r->out.result);
22682 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrintProcessors(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrintProcessors *r)
22684 if (flags & NDR_IN) {
22685 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
22686 if (r->in.servername) {
22687 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
22688 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22689 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
22690 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22692 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
22693 if (r->in.environment) {
22694 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
22695 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22696 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
22697 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22699 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22700 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
22701 if (r->in.buffer) {
22702 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
22704 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22706 if (flags & NDR_OUT) {
22707 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
22709 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
22711 if (r->out.needed == NULL) {
22712 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22714 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22715 if (r->out.count == NULL) {
22716 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22718 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
22719 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22721 return NDR_ERR_SUCCESS;
22724 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrintProcessors(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrintProcessors *r)
22726 uint32_t _ptr_servername;
22727 uint32_t _ptr_environment;
22728 uint32_t _ptr_buffer;
22729 uint32_t _ptr_info;
22730 TALLOC_CTX *_mem_save_servername_0;
22731 TALLOC_CTX *_mem_save_environment_0;
22732 TALLOC_CTX *_mem_save_buffer_0;
22733 TALLOC_CTX *_mem_save_info_0;
22734 TALLOC_CTX *_mem_save_needed_0;
22735 TALLOC_CTX *_mem_save_count_0;
22736 if (flags & NDR_IN) {
22737 ZERO_STRUCT(r->out);
22739 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
22740 if (_ptr_servername) {
22741 NDR_PULL_ALLOC(ndr, r->in.servername);
22743 r->in.servername = NULL;
22745 if (r->in.servername) {
22746 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
22747 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
22748 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
22749 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
22750 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
22751 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));
22753 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
22754 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
22755 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
22757 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
22758 if (_ptr_environment) {
22759 NDR_PULL_ALLOC(ndr, r->in.environment);
22761 r->in.environment = NULL;
22763 if (r->in.environment) {
22764 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
22765 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
22766 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
22767 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
22768 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
22769 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));
22771 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
22772 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
22773 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
22775 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22776 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
22778 NDR_PULL_ALLOC(ndr, r->in.buffer);
22780 r->in.buffer = NULL;
22782 if (r->in.buffer) {
22783 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
22784 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
22785 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
22786 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22788 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22789 NDR_PULL_ALLOC(ndr, r->out.needed);
22790 ZERO_STRUCTP(r->out.needed);
22791 NDR_PULL_ALLOC(ndr, r->out.count);
22792 ZERO_STRUCTP(r->out.count);
22794 if (flags & NDR_OUT) {
22795 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
22797 NDR_PULL_ALLOC(ndr, r->out.info);
22799 r->out.info = NULL;
22802 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22803 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22804 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
22805 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22807 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22808 NDR_PULL_ALLOC(ndr, r->out.needed);
22810 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22811 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22812 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22813 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22814 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22815 NDR_PULL_ALLOC(ndr, r->out.count);
22817 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
22818 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
22819 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
22820 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
22821 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22823 return NDR_ERR_SUCCESS;
22826 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrintProcessors(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrintProcessors *r)
22828 uint32_t cntr_info_0;
22829 if (flags & NDR_IN) {
22830 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22831 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
22833 if (flags & NDR_OUT) {
22834 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22835 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
22836 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
22838 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22839 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
22842 return NDR_ERR_SUCCESS;
22845 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrintProcessors(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrintProcessors *r)
22847 uint32_t cntr_info_0;
22848 TALLOC_CTX *_mem_save_info_0;
22849 if (flags & NDR_IN) {
22850 ZERO_STRUCT(r->out);
22852 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22853 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
22855 if (flags & NDR_OUT) {
22856 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
22857 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22858 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22859 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22860 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
22861 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
22863 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22864 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
22866 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22868 return NDR_ERR_SUCCESS;
22871 _PUBLIC_ void ndr_print_spoolss_EnumPrintProcessors(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrintProcessors *r)
22873 uint32_t cntr_info_2;
22874 ndr_print_struct(ndr, name, "spoolss_EnumPrintProcessors");
22876 if (flags & NDR_SET_VALUES) {
22877 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22879 if (flags & NDR_IN) {
22880 ndr_print_struct(ndr, "in", "spoolss_EnumPrintProcessors");
22882 ndr_print_ptr(ndr, "servername", r->in.servername);
22884 if (r->in.servername) {
22885 ndr_print_string(ndr, "servername", r->in.servername);
22888 ndr_print_ptr(ndr, "environment", r->in.environment);
22890 if (r->in.environment) {
22891 ndr_print_string(ndr, "environment", r->in.environment);
22894 ndr_print_uint32(ndr, "level", r->in.level);
22895 ndr_print_ptr(ndr, "buffer", r->in.buffer);
22897 if (r->in.buffer) {
22898 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
22901 ndr_print_uint32(ndr, "offered", r->in.offered);
22904 if (flags & NDR_OUT) {
22905 ndr_print_struct(ndr, "out", "spoolss_EnumPrintProcessors");
22907 ndr_print_ptr(ndr, "count", r->out.count);
22909 ndr_print_uint32(ndr, "count", *r->out.count);
22911 ndr_print_ptr(ndr, "info", r->out.info);
22913 ndr_print_ptr(ndr, "info", *r->out.info);
22915 if (*r->out.info) {
22916 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
22918 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
22920 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
22921 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
22922 ndr_print_spoolss_PrintProcessorInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
22930 ndr_print_ptr(ndr, "needed", r->out.needed);
22932 ndr_print_uint32(ndr, "needed", *r->out.needed);
22934 ndr_print_WERROR(ndr, "result", r->out.result);
22940 static enum ndr_err_code ndr_push_spoolss_GetPrintProcessorDirectory(struct ndr_push *ndr, int flags, const struct spoolss_GetPrintProcessorDirectory *r)
22942 if (flags & NDR_IN) {
22943 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
22944 if (r->in.server) {
22945 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22946 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22947 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22948 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22950 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
22951 if (r->in.environment) {
22952 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
22953 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22954 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
22955 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22957 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22958 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
22959 if (r->in.buffer) {
22960 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
22962 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22964 if (flags & NDR_OUT) {
22965 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
22968 struct ndr_push *_ndr_info;
22969 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
22970 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
22971 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
22972 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
22975 if (r->out.needed == NULL) {
22976 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22978 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22979 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22981 return NDR_ERR_SUCCESS;
22984 static enum ndr_err_code ndr_pull_spoolss_GetPrintProcessorDirectory(struct ndr_pull *ndr, int flags, struct spoolss_GetPrintProcessorDirectory *r)
22986 uint32_t _ptr_server;
22987 uint32_t _ptr_environment;
22988 uint32_t _ptr_buffer;
22989 uint32_t _ptr_info;
22990 TALLOC_CTX *_mem_save_server_0;
22991 TALLOC_CTX *_mem_save_environment_0;
22992 TALLOC_CTX *_mem_save_buffer_0;
22993 TALLOC_CTX *_mem_save_info_0;
22994 TALLOC_CTX *_mem_save_needed_0;
22995 if (flags & NDR_IN) {
22996 ZERO_STRUCT(r->out);
22998 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
23000 NDR_PULL_ALLOC(ndr, r->in.server);
23002 r->in.server = NULL;
23004 if (r->in.server) {
23005 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
23006 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
23007 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
23008 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
23009 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
23010 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));
23012 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
23013 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
23014 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
23016 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
23017 if (_ptr_environment) {
23018 NDR_PULL_ALLOC(ndr, r->in.environment);
23020 r->in.environment = NULL;
23022 if (r->in.environment) {
23023 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
23024 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
23025 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
23026 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
23027 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
23028 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));
23030 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
23031 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
23032 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
23034 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23035 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
23037 NDR_PULL_ALLOC(ndr, r->in.buffer);
23039 r->in.buffer = NULL;
23041 if (r->in.buffer) {
23042 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
23043 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
23044 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
23045 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
23047 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
23048 NDR_PULL_ALLOC(ndr, r->out.needed);
23049 ZERO_STRUCTP(r->out.needed);
23051 if (flags & NDR_OUT) {
23052 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
23054 NDR_PULL_ALLOC(ndr, r->out.info);
23056 r->out.info = NULL;
23059 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
23060 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
23062 struct ndr_pull *_ndr_info;
23063 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
23064 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
23065 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
23066 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
23068 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
23070 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23071 NDR_PULL_ALLOC(ndr, r->out.needed);
23073 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
23074 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
23075 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
23076 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
23077 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23079 return NDR_ERR_SUCCESS;
23082 _PUBLIC_ void ndr_print_spoolss_GetPrintProcessorDirectory(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrintProcessorDirectory *r)
23084 ndr_print_struct(ndr, name, "spoolss_GetPrintProcessorDirectory");
23086 if (flags & NDR_SET_VALUES) {
23087 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23089 if (flags & NDR_IN) {
23090 ndr_print_struct(ndr, "in", "spoolss_GetPrintProcessorDirectory");
23092 ndr_print_ptr(ndr, "server", r->in.server);
23094 if (r->in.server) {
23095 ndr_print_string(ndr, "server", r->in.server);
23098 ndr_print_ptr(ndr, "environment", r->in.environment);
23100 if (r->in.environment) {
23101 ndr_print_string(ndr, "environment", r->in.environment);
23104 ndr_print_uint32(ndr, "level", r->in.level);
23105 ndr_print_ptr(ndr, "buffer", r->in.buffer);
23107 if (r->in.buffer) {
23108 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
23111 ndr_print_uint32(ndr, "offered", r->in.offered);
23114 if (flags & NDR_OUT) {
23115 ndr_print_struct(ndr, "out", "spoolss_GetPrintProcessorDirectory");
23117 ndr_print_ptr(ndr, "info", r->out.info);
23120 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
23121 ndr_print_spoolss_PrintProcessorDirectoryInfo(ndr, "info", r->out.info);
23124 ndr_print_ptr(ndr, "needed", r->out.needed);
23126 ndr_print_uint32(ndr, "needed", *r->out.needed);
23128 ndr_print_WERROR(ndr, "result", r->out.result);
23134 static enum ndr_err_code ndr_push_spoolss_StartDocPrinter(struct ndr_push *ndr, int flags, const struct spoolss_StartDocPrinter *r)
23136 if (flags & NDR_IN) {
23137 if (r->in.handle == NULL) {
23138 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23140 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23141 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23142 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
23143 NDR_CHECK(ndr_push_spoolss_DocumentInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
23145 if (flags & NDR_OUT) {
23146 if (r->out.job_id == NULL) {
23147 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23149 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.job_id));
23150 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23152 return NDR_ERR_SUCCESS;
23155 static enum ndr_err_code ndr_pull_spoolss_StartDocPrinter(struct ndr_pull *ndr, int flags, struct spoolss_StartDocPrinter *r)
23157 TALLOC_CTX *_mem_save_handle_0;
23158 TALLOC_CTX *_mem_save_job_id_0;
23159 if (flags & NDR_IN) {
23160 ZERO_STRUCT(r->out);
23162 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23163 NDR_PULL_ALLOC(ndr, r->in.handle);
23165 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23166 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23167 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23168 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23169 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23170 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
23171 NDR_CHECK(ndr_pull_spoolss_DocumentInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
23172 NDR_PULL_ALLOC(ndr, r->out.job_id);
23173 ZERO_STRUCTP(r->out.job_id);
23175 if (flags & NDR_OUT) {
23176 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23177 NDR_PULL_ALLOC(ndr, r->out.job_id);
23179 _mem_save_job_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
23180 NDR_PULL_SET_MEM_CTX(ndr, r->out.job_id, LIBNDR_FLAG_REF_ALLOC);
23181 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.job_id));
23182 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_job_id_0, LIBNDR_FLAG_REF_ALLOC);
23183 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23185 return NDR_ERR_SUCCESS;
23188 _PUBLIC_ void ndr_print_spoolss_StartDocPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_StartDocPrinter *r)
23190 ndr_print_struct(ndr, name, "spoolss_StartDocPrinter");
23192 if (flags & NDR_SET_VALUES) {
23193 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23195 if (flags & NDR_IN) {
23196 ndr_print_struct(ndr, "in", "spoolss_StartDocPrinter");
23198 ndr_print_ptr(ndr, "handle", r->in.handle);
23200 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23202 ndr_print_uint32(ndr, "level", r->in.level);
23203 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
23204 ndr_print_spoolss_DocumentInfo(ndr, "info", &r->in.info);
23207 if (flags & NDR_OUT) {
23208 ndr_print_struct(ndr, "out", "spoolss_StartDocPrinter");
23210 ndr_print_ptr(ndr, "job_id", r->out.job_id);
23212 ndr_print_uint32(ndr, "job_id", *r->out.job_id);
23214 ndr_print_WERROR(ndr, "result", r->out.result);
23220 static enum ndr_err_code ndr_push_spoolss_StartPagePrinter(struct ndr_push *ndr, int flags, const struct spoolss_StartPagePrinter *r)
23222 if (flags & NDR_IN) {
23223 if (r->in.handle == NULL) {
23224 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23226 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23228 if (flags & NDR_OUT) {
23229 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23231 return NDR_ERR_SUCCESS;
23234 static enum ndr_err_code ndr_pull_spoolss_StartPagePrinter(struct ndr_pull *ndr, int flags, struct spoolss_StartPagePrinter *r)
23236 TALLOC_CTX *_mem_save_handle_0;
23237 if (flags & NDR_IN) {
23238 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23239 NDR_PULL_ALLOC(ndr, r->in.handle);
23241 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23242 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23243 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23244 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23246 if (flags & NDR_OUT) {
23247 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23249 return NDR_ERR_SUCCESS;
23252 _PUBLIC_ void ndr_print_spoolss_StartPagePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_StartPagePrinter *r)
23254 ndr_print_struct(ndr, name, "spoolss_StartPagePrinter");
23256 if (flags & NDR_SET_VALUES) {
23257 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23259 if (flags & NDR_IN) {
23260 ndr_print_struct(ndr, "in", "spoolss_StartPagePrinter");
23262 ndr_print_ptr(ndr, "handle", r->in.handle);
23264 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23268 if (flags & NDR_OUT) {
23269 ndr_print_struct(ndr, "out", "spoolss_StartPagePrinter");
23271 ndr_print_WERROR(ndr, "result", r->out.result);
23277 static enum ndr_err_code ndr_push_spoolss_WritePrinter(struct ndr_push *ndr, int flags, const struct spoolss_WritePrinter *r)
23279 if (flags & NDR_IN) {
23280 if (r->in.handle == NULL) {
23281 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23283 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23284 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
23285 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data.length));
23287 if (flags & NDR_OUT) {
23288 if (r->out.num_written == NULL) {
23289 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23291 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.num_written));
23292 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23294 return NDR_ERR_SUCCESS;
23297 static enum ndr_err_code ndr_pull_spoolss_WritePrinter(struct ndr_pull *ndr, int flags, struct spoolss_WritePrinter *r)
23299 TALLOC_CTX *_mem_save_handle_0;
23300 TALLOC_CTX *_mem_save_num_written_0;
23301 if (flags & NDR_IN) {
23302 ZERO_STRUCT(r->out);
23304 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23305 NDR_PULL_ALLOC(ndr, r->in.handle);
23307 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23308 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23309 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23310 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23311 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->in.data));
23312 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._data_size));
23313 NDR_PULL_ALLOC(ndr, r->out.num_written);
23314 ZERO_STRUCTP(r->out.num_written);
23316 if (flags & NDR_OUT) {
23317 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23318 NDR_PULL_ALLOC(ndr, r->out.num_written);
23320 _mem_save_num_written_0 = NDR_PULL_GET_MEM_CTX(ndr);
23321 NDR_PULL_SET_MEM_CTX(ndr, r->out.num_written, LIBNDR_FLAG_REF_ALLOC);
23322 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.num_written));
23323 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_num_written_0, LIBNDR_FLAG_REF_ALLOC);
23324 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23326 return NDR_ERR_SUCCESS;
23329 _PUBLIC_ void ndr_print_spoolss_WritePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_WritePrinter *r)
23331 ndr_print_struct(ndr, name, "spoolss_WritePrinter");
23333 if (flags & NDR_SET_VALUES) {
23334 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23336 if (flags & NDR_IN) {
23337 ndr_print_struct(ndr, "in", "spoolss_WritePrinter");
23339 ndr_print_ptr(ndr, "handle", r->in.handle);
23341 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23343 ndr_print_DATA_BLOB(ndr, "data", r->in.data);
23344 ndr_print_uint32(ndr, "_data_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->in.data.length:r->in._data_size);
23347 if (flags & NDR_OUT) {
23348 ndr_print_struct(ndr, "out", "spoolss_WritePrinter");
23350 ndr_print_ptr(ndr, "num_written", r->out.num_written);
23352 ndr_print_uint32(ndr, "num_written", *r->out.num_written);
23354 ndr_print_WERROR(ndr, "result", r->out.result);
23360 static enum ndr_err_code ndr_push_spoolss_EndPagePrinter(struct ndr_push *ndr, int flags, const struct spoolss_EndPagePrinter *r)
23362 if (flags & NDR_IN) {
23363 if (r->in.handle == NULL) {
23364 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23366 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23368 if (flags & NDR_OUT) {
23369 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23371 return NDR_ERR_SUCCESS;
23374 static enum ndr_err_code ndr_pull_spoolss_EndPagePrinter(struct ndr_pull *ndr, int flags, struct spoolss_EndPagePrinter *r)
23376 TALLOC_CTX *_mem_save_handle_0;
23377 if (flags & NDR_IN) {
23378 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23379 NDR_PULL_ALLOC(ndr, r->in.handle);
23381 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23382 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23383 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23384 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23386 if (flags & NDR_OUT) {
23387 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23389 return NDR_ERR_SUCCESS;
23392 _PUBLIC_ void ndr_print_spoolss_EndPagePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EndPagePrinter *r)
23394 ndr_print_struct(ndr, name, "spoolss_EndPagePrinter");
23396 if (flags & NDR_SET_VALUES) {
23397 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23399 if (flags & NDR_IN) {
23400 ndr_print_struct(ndr, "in", "spoolss_EndPagePrinter");
23402 ndr_print_ptr(ndr, "handle", r->in.handle);
23404 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23408 if (flags & NDR_OUT) {
23409 ndr_print_struct(ndr, "out", "spoolss_EndPagePrinter");
23411 ndr_print_WERROR(ndr, "result", r->out.result);
23417 static enum ndr_err_code ndr_push_spoolss_AbortPrinter(struct ndr_push *ndr, int flags, const struct spoolss_AbortPrinter *r)
23419 if (flags & NDR_IN) {
23420 if (r->in.handle == NULL) {
23421 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23423 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23425 if (flags & NDR_OUT) {
23426 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23428 return NDR_ERR_SUCCESS;
23431 static enum ndr_err_code ndr_pull_spoolss_AbortPrinter(struct ndr_pull *ndr, int flags, struct spoolss_AbortPrinter *r)
23433 TALLOC_CTX *_mem_save_handle_0;
23434 if (flags & NDR_IN) {
23435 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23436 NDR_PULL_ALLOC(ndr, r->in.handle);
23438 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23439 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23440 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23441 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23443 if (flags & NDR_OUT) {
23444 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23446 return NDR_ERR_SUCCESS;
23449 _PUBLIC_ void ndr_print_spoolss_AbortPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AbortPrinter *r)
23451 ndr_print_struct(ndr, name, "spoolss_AbortPrinter");
23453 if (flags & NDR_SET_VALUES) {
23454 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23456 if (flags & NDR_IN) {
23457 ndr_print_struct(ndr, "in", "spoolss_AbortPrinter");
23459 ndr_print_ptr(ndr, "handle", r->in.handle);
23461 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23465 if (flags & NDR_OUT) {
23466 ndr_print_struct(ndr, "out", "spoolss_AbortPrinter");
23468 ndr_print_WERROR(ndr, "result", r->out.result);
23474 static enum ndr_err_code ndr_push_spoolss_ReadPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReadPrinter *r)
23476 if (flags & NDR_IN) {
23477 if (r->in.handle == NULL) {
23478 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23480 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23481 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_size));
23483 if (flags & NDR_OUT) {
23484 if (r->out.data == NULL) {
23485 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23487 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.data_size));
23488 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->in.data_size));
23489 if (r->out._data_size == NULL) {
23490 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23492 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out._data_size));
23493 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23495 return NDR_ERR_SUCCESS;
23498 static enum ndr_err_code ndr_pull_spoolss_ReadPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReadPrinter *r)
23500 TALLOC_CTX *_mem_save_handle_0;
23501 TALLOC_CTX *_mem_save__data_size_0;
23502 if (flags & NDR_IN) {
23503 ZERO_STRUCT(r->out);
23505 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23506 NDR_PULL_ALLOC(ndr, r->in.handle);
23508 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23509 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23510 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23511 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23512 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_size));
23513 NDR_PULL_ALLOC_N(ndr, r->out.data, r->in.data_size);
23514 memset(r->out.data, 0, (r->in.data_size) * sizeof(*r->out.data));
23515 NDR_PULL_ALLOC(ndr, r->out._data_size);
23516 ZERO_STRUCTP(r->out._data_size);
23518 if (flags & NDR_OUT) {
23519 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
23520 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23521 NDR_PULL_ALLOC_N(ndr, r->out.data, ndr_get_array_size(ndr, &r->out.data));
23523 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, ndr_get_array_size(ndr, &r->out.data)));
23524 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23525 NDR_PULL_ALLOC(ndr, r->out._data_size);
23527 _mem_save__data_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
23528 NDR_PULL_SET_MEM_CTX(ndr, r->out._data_size, LIBNDR_FLAG_REF_ALLOC);
23529 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out._data_size));
23530 NDR_PULL_SET_MEM_CTX(ndr, _mem_save__data_size_0, LIBNDR_FLAG_REF_ALLOC);
23531 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23533 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, r->in.data_size));
23536 return NDR_ERR_SUCCESS;
23539 _PUBLIC_ void ndr_print_spoolss_ReadPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReadPrinter *r)
23541 ndr_print_struct(ndr, name, "spoolss_ReadPrinter");
23543 if (flags & NDR_SET_VALUES) {
23544 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23546 if (flags & NDR_IN) {
23547 ndr_print_struct(ndr, "in", "spoolss_ReadPrinter");
23549 ndr_print_ptr(ndr, "handle", r->in.handle);
23551 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23553 ndr_print_uint32(ndr, "data_size", r->in.data_size);
23556 if (flags & NDR_OUT) {
23557 ndr_print_struct(ndr, "out", "spoolss_ReadPrinter");
23559 ndr_print_ptr(ndr, "data", r->out.data);
23561 ndr_print_array_uint8(ndr, "data", r->out.data, r->in.data_size);
23563 ndr_print_ptr(ndr, "_data_size", r->out._data_size);
23565 ndr_print_uint32(ndr, "_data_size", *r->out._data_size);
23567 ndr_print_WERROR(ndr, "result", r->out.result);
23573 static enum ndr_err_code ndr_push_spoolss_EndDocPrinter(struct ndr_push *ndr, int flags, const struct spoolss_EndDocPrinter *r)
23575 if (flags & NDR_IN) {
23576 if (r->in.handle == NULL) {
23577 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23579 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23581 if (flags & NDR_OUT) {
23582 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23584 return NDR_ERR_SUCCESS;
23587 static enum ndr_err_code ndr_pull_spoolss_EndDocPrinter(struct ndr_pull *ndr, int flags, struct spoolss_EndDocPrinter *r)
23589 TALLOC_CTX *_mem_save_handle_0;
23590 if (flags & NDR_IN) {
23591 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23592 NDR_PULL_ALLOC(ndr, r->in.handle);
23594 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23595 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23596 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23597 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23599 if (flags & NDR_OUT) {
23600 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23602 return NDR_ERR_SUCCESS;
23605 _PUBLIC_ void ndr_print_spoolss_EndDocPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EndDocPrinter *r)
23607 ndr_print_struct(ndr, name, "spoolss_EndDocPrinter");
23609 if (flags & NDR_SET_VALUES) {
23610 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23612 if (flags & NDR_IN) {
23613 ndr_print_struct(ndr, "in", "spoolss_EndDocPrinter");
23615 ndr_print_ptr(ndr, "handle", r->in.handle);
23617 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23621 if (flags & NDR_OUT) {
23622 ndr_print_struct(ndr, "out", "spoolss_EndDocPrinter");
23624 ndr_print_WERROR(ndr, "result", r->out.result);
23630 static enum ndr_err_code ndr_push_spoolss_AddJob(struct ndr_push *ndr, int flags, const struct spoolss_AddJob *r)
23632 if (flags & NDR_IN) {
23633 if (r->in.handle == NULL) {
23634 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23636 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23637 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23638 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
23639 if (r->in.buffer) {
23640 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.offered));
23641 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.offered));
23643 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
23645 if (flags & NDR_OUT) {
23646 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.buffer));
23647 if (r->out.buffer) {
23648 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.offered));
23649 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
23651 if (r->out.needed == NULL) {
23652 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23654 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
23655 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23657 return NDR_ERR_SUCCESS;
23660 static enum ndr_err_code ndr_pull_spoolss_AddJob(struct ndr_pull *ndr, int flags, struct spoolss_AddJob *r)
23662 uint32_t _ptr_buffer;
23663 TALLOC_CTX *_mem_save_handle_0;
23664 TALLOC_CTX *_mem_save_buffer_0;
23665 TALLOC_CTX *_mem_save_needed_0;
23666 if (flags & NDR_IN) {
23667 ZERO_STRUCT(r->out);
23669 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23670 NDR_PULL_ALLOC(ndr, r->in.handle);
23672 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23673 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23674 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23675 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23676 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23677 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
23679 NDR_PULL_ALLOC(ndr, r->in.buffer);
23681 r->in.buffer = NULL;
23683 if (r->in.buffer) {
23684 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
23685 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
23686 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
23687 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
23688 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
23689 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
23691 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
23692 NDR_PULL_ALLOC(ndr, r->out.needed);
23693 ZERO_STRUCTP(r->out.needed);
23694 if (r->in.buffer) {
23695 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.offered));
23698 if (flags & NDR_OUT) {
23699 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
23701 NDR_PULL_ALLOC(ndr, r->out.buffer);
23703 r->out.buffer = NULL;
23705 if (r->out.buffer) {
23706 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
23707 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, 0);
23708 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
23709 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
23710 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)));
23711 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
23713 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23714 NDR_PULL_ALLOC(ndr, r->out.needed);
23716 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
23717 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
23718 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
23719 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
23720 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23721 if (r->out.buffer) {
23722 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
23725 return NDR_ERR_SUCCESS;
23728 _PUBLIC_ void ndr_print_spoolss_AddJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddJob *r)
23730 ndr_print_struct(ndr, name, "spoolss_AddJob");
23732 if (flags & NDR_SET_VALUES) {
23733 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23735 if (flags & NDR_IN) {
23736 ndr_print_struct(ndr, "in", "spoolss_AddJob");
23738 ndr_print_ptr(ndr, "handle", r->in.handle);
23740 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23742 ndr_print_uint32(ndr, "level", r->in.level);
23743 ndr_print_ptr(ndr, "buffer", r->in.buffer);
23745 if (r->in.buffer) {
23746 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.offered);
23749 ndr_print_uint32(ndr, "offered", r->in.offered);
23752 if (flags & NDR_OUT) {
23753 ndr_print_struct(ndr, "out", "spoolss_AddJob");
23755 ndr_print_ptr(ndr, "buffer", r->out.buffer);
23757 if (r->out.buffer) {
23758 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
23761 ndr_print_ptr(ndr, "needed", r->out.needed);
23763 ndr_print_uint32(ndr, "needed", *r->out.needed);
23765 ndr_print_WERROR(ndr, "result", r->out.result);
23771 static enum ndr_err_code ndr_push_spoolss_ScheduleJob(struct ndr_push *ndr, int flags, const struct spoolss_ScheduleJob *r)
23773 if (flags & NDR_IN) {
23774 if (r->in.handle == NULL) {
23775 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23777 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23778 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.jobid));
23780 if (flags & NDR_OUT) {
23781 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23783 return NDR_ERR_SUCCESS;
23786 static enum ndr_err_code ndr_pull_spoolss_ScheduleJob(struct ndr_pull *ndr, int flags, struct spoolss_ScheduleJob *r)
23788 TALLOC_CTX *_mem_save_handle_0;
23789 if (flags & NDR_IN) {
23790 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23791 NDR_PULL_ALLOC(ndr, r->in.handle);
23793 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23794 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23795 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23796 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23797 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.jobid));
23799 if (flags & NDR_OUT) {
23800 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23802 return NDR_ERR_SUCCESS;
23805 _PUBLIC_ void ndr_print_spoolss_ScheduleJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ScheduleJob *r)
23807 ndr_print_struct(ndr, name, "spoolss_ScheduleJob");
23809 if (flags & NDR_SET_VALUES) {
23810 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23812 if (flags & NDR_IN) {
23813 ndr_print_struct(ndr, "in", "spoolss_ScheduleJob");
23815 ndr_print_ptr(ndr, "handle", r->in.handle);
23817 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23819 ndr_print_uint32(ndr, "jobid", r->in.jobid);
23822 if (flags & NDR_OUT) {
23823 ndr_print_struct(ndr, "out", "spoolss_ScheduleJob");
23825 ndr_print_WERROR(ndr, "result", r->out.result);
23831 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct _spoolss_GetPrinterData *r)
23833 if (flags & NDR_IN) {
23834 if (r->in.handle == NULL) {
23835 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23837 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23838 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
23839 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
23840 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
23841 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));
23842 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
23844 if (flags & NDR_OUT) {
23845 if (r->out.type == NULL) {
23846 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23848 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
23849 if (r->out.data == NULL) {
23850 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23852 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.data));
23853 if (r->out.needed == NULL) {
23854 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23856 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
23857 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23859 return NDR_ERR_SUCCESS;
23862 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct _spoolss_GetPrinterData *r)
23864 TALLOC_CTX *_mem_save_handle_0;
23865 TALLOC_CTX *_mem_save_type_0;
23866 TALLOC_CTX *_mem_save_data_0;
23867 TALLOC_CTX *_mem_save_needed_0;
23868 if (flags & NDR_IN) {
23869 ZERO_STRUCT(r->out);
23871 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23872 NDR_PULL_ALLOC(ndr, r->in.handle);
23874 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23875 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23876 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23877 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23878 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
23879 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
23880 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
23881 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));
23883 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
23884 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));
23885 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
23886 NDR_PULL_ALLOC(ndr, r->out.type);
23887 ZERO_STRUCTP(r->out.type);
23888 NDR_PULL_ALLOC(ndr, r->out.data);
23889 ZERO_STRUCTP(r->out.data);
23890 NDR_PULL_ALLOC(ndr, r->out.needed);
23891 ZERO_STRUCTP(r->out.needed);
23893 if (flags & NDR_OUT) {
23894 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23895 NDR_PULL_ALLOC(ndr, r->out.type);
23897 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
23898 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
23899 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
23900 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
23901 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23902 NDR_PULL_ALLOC(ndr, r->out.data);
23904 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
23905 NDR_PULL_SET_MEM_CTX(ndr, r->out.data, LIBNDR_FLAG_REF_ALLOC);
23906 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.data));
23907 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
23908 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23909 NDR_PULL_ALLOC(ndr, r->out.needed);
23911 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
23912 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
23913 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
23914 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
23915 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23917 return NDR_ERR_SUCCESS;
23920 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct __spoolss_GetPrinterData *r)
23922 if (flags & NDR_IN) {
23923 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
23925 if (flags & NDR_OUT) {
23926 if (r->out.data == NULL) {
23927 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23929 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.data, r->in.type));
23930 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
23932 return NDR_ERR_SUCCESS;
23935 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct __spoolss_GetPrinterData *r)
23937 TALLOC_CTX *_mem_save_data_0;
23938 if (flags & NDR_IN) {
23939 ZERO_STRUCT(r->out);
23941 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
23942 NDR_PULL_ALLOC(ndr, r->out.data);
23943 ZERO_STRUCTP(r->out.data);
23945 if (flags & NDR_OUT) {
23946 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23947 NDR_PULL_ALLOC(ndr, r->out.data);
23949 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
23950 NDR_PULL_SET_MEM_CTX(ndr, r->out.data, LIBNDR_FLAG_REF_ALLOC);
23951 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.data, r->in.type));
23952 NDR_CHECK(ndr_pull_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
23953 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
23955 return NDR_ERR_SUCCESS;
23958 _PUBLIC_ void ndr_print_spoolss_GetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterData *r)
23960 ndr_print_struct(ndr, name, "spoolss_GetPrinterData");
23962 if (flags & NDR_SET_VALUES) {
23963 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23965 if (flags & NDR_IN) {
23966 ndr_print_struct(ndr, "in", "spoolss_GetPrinterData");
23968 ndr_print_ptr(ndr, "handle", r->in.handle);
23970 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23972 ndr_print_string(ndr, "value_name", r->in.value_name);
23973 ndr_print_uint32(ndr, "offered", r->in.offered);
23976 if (flags & NDR_OUT) {
23977 ndr_print_struct(ndr, "out", "spoolss_GetPrinterData");
23979 ndr_print_ptr(ndr, "type", r->out.type);
23981 ndr_print_winreg_Type(ndr, "type", *r->out.type);
23983 ndr_print_ptr(ndr, "data", r->out.data);
23985 ndr_print_set_switch_value(ndr, r->out.data, *r->out.type);
23986 ndr_print_spoolss_PrinterData(ndr, "data", r->out.data);
23988 ndr_print_ptr(ndr, "needed", r->out.needed);
23990 ndr_print_uint32(ndr, "needed", *r->out.needed);
23992 ndr_print_WERROR(ndr, "result", r->out.result);
23998 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct _spoolss_SetPrinterData *r)
24000 if (flags & NDR_IN) {
24001 if (r->in.handle == NULL) {
24002 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24004 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24005 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
24006 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24007 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
24008 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));
24009 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
24010 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
24011 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in._offered));
24013 if (flags & NDR_OUT) {
24014 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24016 return NDR_ERR_SUCCESS;
24019 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct __spoolss_SetPrinterData *r)
24021 if (flags & NDR_IN) {
24022 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
24024 if (flags & NDR_OUT) {
24025 if (r->out.data == NULL) {
24026 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24028 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.data, r->in.type));
24029 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
24031 return NDR_ERR_SUCCESS;
24034 static enum ndr_err_code ndr_pull_spoolss_SetPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinterData *r)
24036 TALLOC_CTX *_mem_save_handle_0;
24037 if (flags & NDR_IN) {
24038 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24039 NDR_PULL_ALLOC(ndr, r->in.handle);
24041 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24042 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24043 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24044 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24045 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
24046 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
24047 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
24048 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));
24050 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
24051 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));
24052 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
24054 struct ndr_pull *_ndr_data;
24055 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_data, 4, -1));
24056 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data, &r->in.data, r->in.type));
24057 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
24058 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_data, 4, -1));
24060 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._offered));
24062 if (flags & NDR_OUT) {
24063 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24065 return NDR_ERR_SUCCESS;
24068 _PUBLIC_ void ndr_print_spoolss_SetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinterData *r)
24070 ndr_print_struct(ndr, name, "spoolss_SetPrinterData");
24072 if (flags & NDR_SET_VALUES) {
24073 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24075 if (flags & NDR_IN) {
24076 ndr_print_struct(ndr, "in", "spoolss_SetPrinterData");
24078 ndr_print_ptr(ndr, "handle", r->in.handle);
24080 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24082 ndr_print_string(ndr, "value_name", r->in.value_name);
24083 ndr_print_winreg_Type(ndr, "type", r->in.type);
24084 ndr_print_set_switch_value(ndr, &r->in.data, r->in.type);
24085 ndr_print_spoolss_PrinterData(ndr, "data", &r->in.data);
24086 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);
24089 if (flags & NDR_OUT) {
24090 ndr_print_struct(ndr, "out", "spoolss_SetPrinterData");
24092 ndr_print_WERROR(ndr, "result", r->out.result);
24098 static enum ndr_err_code ndr_push_spoolss_WaitForPrinterChange(struct ndr_push *ndr, int flags, const struct spoolss_WaitForPrinterChange *r)
24100 if (flags & NDR_IN) {
24102 if (flags & NDR_OUT) {
24103 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24105 return NDR_ERR_SUCCESS;
24108 static enum ndr_err_code ndr_pull_spoolss_WaitForPrinterChange(struct ndr_pull *ndr, int flags, struct spoolss_WaitForPrinterChange *r)
24110 if (flags & NDR_IN) {
24112 if (flags & NDR_OUT) {
24113 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24115 return NDR_ERR_SUCCESS;
24118 _PUBLIC_ void ndr_print_spoolss_WaitForPrinterChange(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_WaitForPrinterChange *r)
24120 ndr_print_struct(ndr, name, "spoolss_WaitForPrinterChange");
24122 if (flags & NDR_SET_VALUES) {
24123 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24125 if (flags & NDR_IN) {
24126 ndr_print_struct(ndr, "in", "spoolss_WaitForPrinterChange");
24130 if (flags & NDR_OUT) {
24131 ndr_print_struct(ndr, "out", "spoolss_WaitForPrinterChange");
24133 ndr_print_WERROR(ndr, "result", r->out.result);
24139 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ClosePrinter(struct ndr_push *ndr, int flags, const struct spoolss_ClosePrinter *r)
24141 if (flags & NDR_IN) {
24142 if (r->in.handle == NULL) {
24143 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24145 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24147 if (flags & NDR_OUT) {
24148 if (r->out.handle == NULL) {
24149 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24151 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
24152 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24154 return NDR_ERR_SUCCESS;
24157 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ClosePrinter(struct ndr_pull *ndr, int flags, struct spoolss_ClosePrinter *r)
24159 TALLOC_CTX *_mem_save_handle_0;
24160 if (flags & NDR_IN) {
24161 ZERO_STRUCT(r->out);
24163 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24164 NDR_PULL_ALLOC(ndr, r->in.handle);
24166 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24167 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24168 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24169 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24170 NDR_PULL_ALLOC(ndr, r->out.handle);
24171 *r->out.handle = *r->in.handle;
24173 if (flags & NDR_OUT) {
24174 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24175 NDR_PULL_ALLOC(ndr, r->out.handle);
24177 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24178 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
24179 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
24180 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24181 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24183 return NDR_ERR_SUCCESS;
24186 _PUBLIC_ void ndr_print_spoolss_ClosePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ClosePrinter *r)
24188 ndr_print_struct(ndr, name, "spoolss_ClosePrinter");
24190 if (flags & NDR_SET_VALUES) {
24191 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24193 if (flags & NDR_IN) {
24194 ndr_print_struct(ndr, "in", "spoolss_ClosePrinter");
24196 ndr_print_ptr(ndr, "handle", r->in.handle);
24198 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24202 if (flags & NDR_OUT) {
24203 ndr_print_struct(ndr, "out", "spoolss_ClosePrinter");
24205 ndr_print_ptr(ndr, "handle", r->out.handle);
24207 ndr_print_policy_handle(ndr, "handle", r->out.handle);
24209 ndr_print_WERROR(ndr, "result", r->out.result);
24215 static enum ndr_err_code ndr_push_spoolss_AddForm(struct ndr_push *ndr, int flags, const struct spoolss_AddForm *r)
24217 if (flags & NDR_IN) {
24218 if (r->in.handle == NULL) {
24219 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24221 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24222 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24223 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
24224 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
24226 if (flags & NDR_OUT) {
24227 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24229 return NDR_ERR_SUCCESS;
24232 static enum ndr_err_code ndr_pull_spoolss_AddForm(struct ndr_pull *ndr, int flags, struct spoolss_AddForm *r)
24234 TALLOC_CTX *_mem_save_handle_0;
24235 if (flags & NDR_IN) {
24236 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24237 NDR_PULL_ALLOC(ndr, r->in.handle);
24239 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24240 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24241 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24242 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24243 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24244 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
24245 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
24247 if (flags & NDR_OUT) {
24248 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24250 return NDR_ERR_SUCCESS;
24253 _PUBLIC_ void ndr_print_spoolss_AddForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddForm *r)
24255 ndr_print_struct(ndr, name, "spoolss_AddForm");
24257 if (flags & NDR_SET_VALUES) {
24258 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24260 if (flags & NDR_IN) {
24261 ndr_print_struct(ndr, "in", "spoolss_AddForm");
24263 ndr_print_ptr(ndr, "handle", r->in.handle);
24265 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24267 ndr_print_uint32(ndr, "level", r->in.level);
24268 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
24269 ndr_print_spoolss_AddFormInfo(ndr, "info", &r->in.info);
24272 if (flags & NDR_OUT) {
24273 ndr_print_struct(ndr, "out", "spoolss_AddForm");
24275 ndr_print_WERROR(ndr, "result", r->out.result);
24281 static enum ndr_err_code ndr_push_spoolss_DeleteForm(struct ndr_push *ndr, int flags, const struct spoolss_DeleteForm *r)
24283 if (flags & NDR_IN) {
24284 if (r->in.handle == NULL) {
24285 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24287 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24288 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
24289 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24290 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
24291 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));
24293 if (flags & NDR_OUT) {
24294 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24296 return NDR_ERR_SUCCESS;
24299 static enum ndr_err_code ndr_pull_spoolss_DeleteForm(struct ndr_pull *ndr, int flags, struct spoolss_DeleteForm *r)
24301 TALLOC_CTX *_mem_save_handle_0;
24302 if (flags & NDR_IN) {
24303 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24304 NDR_PULL_ALLOC(ndr, r->in.handle);
24306 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24307 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24308 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24309 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24310 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
24311 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
24312 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
24313 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));
24315 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
24316 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));
24318 if (flags & NDR_OUT) {
24319 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24321 return NDR_ERR_SUCCESS;
24324 _PUBLIC_ void ndr_print_spoolss_DeleteForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeleteForm *r)
24326 ndr_print_struct(ndr, name, "spoolss_DeleteForm");
24328 if (flags & NDR_SET_VALUES) {
24329 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24331 if (flags & NDR_IN) {
24332 ndr_print_struct(ndr, "in", "spoolss_DeleteForm");
24334 ndr_print_ptr(ndr, "handle", r->in.handle);
24336 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24338 ndr_print_string(ndr, "form_name", r->in.form_name);
24341 if (flags & NDR_OUT) {
24342 ndr_print_struct(ndr, "out", "spoolss_DeleteForm");
24344 ndr_print_WERROR(ndr, "result", r->out.result);
24350 static enum ndr_err_code ndr_push_spoolss_GetForm(struct ndr_push *ndr, int flags, const struct spoolss_GetForm *r)
24352 if (flags & NDR_IN) {
24353 if (r->in.handle == NULL) {
24354 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24356 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24357 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
24358 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24359 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
24360 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));
24361 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24362 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
24363 if (r->in.buffer) {
24364 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
24366 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
24368 if (flags & NDR_OUT) {
24369 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
24372 struct ndr_push *_ndr_info;
24373 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
24374 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
24375 NDR_CHECK(ndr_push_spoolss_FormInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
24376 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
24379 if (r->out.needed == NULL) {
24380 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24382 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
24383 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24385 return NDR_ERR_SUCCESS;
24388 static enum ndr_err_code ndr_pull_spoolss_GetForm(struct ndr_pull *ndr, int flags, struct spoolss_GetForm *r)
24390 uint32_t _ptr_buffer;
24391 uint32_t _ptr_info;
24392 TALLOC_CTX *_mem_save_handle_0;
24393 TALLOC_CTX *_mem_save_buffer_0;
24394 TALLOC_CTX *_mem_save_info_0;
24395 TALLOC_CTX *_mem_save_needed_0;
24396 if (flags & NDR_IN) {
24397 ZERO_STRUCT(r->out);
24399 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24400 NDR_PULL_ALLOC(ndr, r->in.handle);
24402 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24403 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24404 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24405 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24406 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
24407 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
24408 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
24409 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));
24411 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
24412 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));
24413 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24414 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
24416 NDR_PULL_ALLOC(ndr, r->in.buffer);
24418 r->in.buffer = NULL;
24420 if (r->in.buffer) {
24421 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
24422 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
24423 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
24424 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
24426 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
24427 NDR_PULL_ALLOC(ndr, r->out.needed);
24428 ZERO_STRUCTP(r->out.needed);
24430 if (flags & NDR_OUT) {
24431 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
24433 NDR_PULL_ALLOC(ndr, r->out.info);
24435 r->out.info = NULL;
24438 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24439 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24441 struct ndr_pull *_ndr_info;
24442 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
24443 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
24444 NDR_CHECK(ndr_pull_spoolss_FormInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
24445 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
24447 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24449 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24450 NDR_PULL_ALLOC(ndr, r->out.needed);
24452 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
24453 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
24454 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
24455 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
24456 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24458 return NDR_ERR_SUCCESS;
24461 _PUBLIC_ void ndr_print_spoolss_GetForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetForm *r)
24463 ndr_print_struct(ndr, name, "spoolss_GetForm");
24465 if (flags & NDR_SET_VALUES) {
24466 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24468 if (flags & NDR_IN) {
24469 ndr_print_struct(ndr, "in", "spoolss_GetForm");
24471 ndr_print_ptr(ndr, "handle", r->in.handle);
24473 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24475 ndr_print_string(ndr, "form_name", r->in.form_name);
24476 ndr_print_uint32(ndr, "level", r->in.level);
24477 ndr_print_ptr(ndr, "buffer", r->in.buffer);
24479 if (r->in.buffer) {
24480 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
24483 ndr_print_uint32(ndr, "offered", r->in.offered);
24486 if (flags & NDR_OUT) {
24487 ndr_print_struct(ndr, "out", "spoolss_GetForm");
24489 ndr_print_ptr(ndr, "info", r->out.info);
24492 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
24493 ndr_print_spoolss_FormInfo(ndr, "info", r->out.info);
24496 ndr_print_ptr(ndr, "needed", r->out.needed);
24498 ndr_print_uint32(ndr, "needed", *r->out.needed);
24500 ndr_print_WERROR(ndr, "result", r->out.result);
24506 static enum ndr_err_code ndr_push_spoolss_SetForm(struct ndr_push *ndr, int flags, const struct spoolss_SetForm *r)
24508 if (flags & NDR_IN) {
24509 if (r->in.handle == NULL) {
24510 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24512 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24513 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
24514 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24515 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
24516 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));
24517 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24518 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
24519 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
24521 if (flags & NDR_OUT) {
24522 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24524 return NDR_ERR_SUCCESS;
24527 static enum ndr_err_code ndr_pull_spoolss_SetForm(struct ndr_pull *ndr, int flags, struct spoolss_SetForm *r)
24529 TALLOC_CTX *_mem_save_handle_0;
24530 if (flags & NDR_IN) {
24531 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24532 NDR_PULL_ALLOC(ndr, r->in.handle);
24534 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24535 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24536 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24537 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24538 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
24539 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
24540 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
24541 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));
24543 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
24544 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));
24545 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24546 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
24547 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
24549 if (flags & NDR_OUT) {
24550 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24552 return NDR_ERR_SUCCESS;
24555 _PUBLIC_ void ndr_print_spoolss_SetForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetForm *r)
24557 ndr_print_struct(ndr, name, "spoolss_SetForm");
24559 if (flags & NDR_SET_VALUES) {
24560 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24562 if (flags & NDR_IN) {
24563 ndr_print_struct(ndr, "in", "spoolss_SetForm");
24565 ndr_print_ptr(ndr, "handle", r->in.handle);
24567 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24569 ndr_print_string(ndr, "form_name", r->in.form_name);
24570 ndr_print_uint32(ndr, "level", r->in.level);
24571 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
24572 ndr_print_spoolss_AddFormInfo(ndr, "info", &r->in.info);
24575 if (flags & NDR_OUT) {
24576 ndr_print_struct(ndr, "out", "spoolss_SetForm");
24578 ndr_print_WERROR(ndr, "result", r->out.result);
24584 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumForms(struct ndr_push *ndr, int flags, const struct _spoolss_EnumForms *r)
24586 if (flags & NDR_IN) {
24587 if (r->in.handle == NULL) {
24588 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24590 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24591 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24592 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
24593 if (r->in.buffer) {
24594 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
24596 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
24598 if (flags & NDR_OUT) {
24599 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
24601 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
24603 if (r->out.needed == NULL) {
24604 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24606 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
24607 if (r->out.count == NULL) {
24608 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24610 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
24611 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24613 return NDR_ERR_SUCCESS;
24616 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumForms(struct ndr_pull *ndr, int flags, struct _spoolss_EnumForms *r)
24618 uint32_t _ptr_buffer;
24619 uint32_t _ptr_info;
24620 TALLOC_CTX *_mem_save_handle_0;
24621 TALLOC_CTX *_mem_save_buffer_0;
24622 TALLOC_CTX *_mem_save_info_0;
24623 TALLOC_CTX *_mem_save_needed_0;
24624 TALLOC_CTX *_mem_save_count_0;
24625 if (flags & NDR_IN) {
24626 ZERO_STRUCT(r->out);
24628 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24629 NDR_PULL_ALLOC(ndr, r->in.handle);
24631 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24632 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24633 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24634 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24635 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24636 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
24638 NDR_PULL_ALLOC(ndr, r->in.buffer);
24640 r->in.buffer = NULL;
24642 if (r->in.buffer) {
24643 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
24644 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
24645 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
24646 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
24648 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
24649 NDR_PULL_ALLOC(ndr, r->out.needed);
24650 ZERO_STRUCTP(r->out.needed);
24651 NDR_PULL_ALLOC(ndr, r->out.count);
24652 ZERO_STRUCTP(r->out.count);
24654 if (flags & NDR_OUT) {
24655 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
24657 NDR_PULL_ALLOC(ndr, r->out.info);
24659 r->out.info = NULL;
24662 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24663 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24664 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
24665 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24667 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24668 NDR_PULL_ALLOC(ndr, r->out.needed);
24670 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
24671 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
24672 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
24673 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
24674 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24675 NDR_PULL_ALLOC(ndr, r->out.count);
24677 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
24678 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
24679 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
24680 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
24681 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24683 return NDR_ERR_SUCCESS;
24686 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumForms(struct ndr_push *ndr, int flags, const struct __spoolss_EnumForms *r)
24688 uint32_t cntr_info_0;
24689 if (flags & NDR_IN) {
24690 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24691 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
24693 if (flags & NDR_OUT) {
24694 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24695 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
24696 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
24698 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24699 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
24702 return NDR_ERR_SUCCESS;
24705 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumForms(struct ndr_pull *ndr, int flags, struct __spoolss_EnumForms *r)
24707 uint32_t cntr_info_0;
24708 TALLOC_CTX *_mem_save_info_0;
24709 if (flags & NDR_IN) {
24710 ZERO_STRUCT(r->out);
24712 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24713 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
24715 if (flags & NDR_OUT) {
24716 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
24717 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24718 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24719 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24720 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
24721 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
24723 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24724 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
24726 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24728 return NDR_ERR_SUCCESS;
24731 _PUBLIC_ void ndr_print_spoolss_EnumForms(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumForms *r)
24733 uint32_t cntr_info_2;
24734 ndr_print_struct(ndr, name, "spoolss_EnumForms");
24736 if (flags & NDR_SET_VALUES) {
24737 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24739 if (flags & NDR_IN) {
24740 ndr_print_struct(ndr, "in", "spoolss_EnumForms");
24742 ndr_print_ptr(ndr, "handle", r->in.handle);
24744 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24746 ndr_print_uint32(ndr, "level", r->in.level);
24747 ndr_print_ptr(ndr, "buffer", r->in.buffer);
24749 if (r->in.buffer) {
24750 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
24753 ndr_print_uint32(ndr, "offered", r->in.offered);
24756 if (flags & NDR_OUT) {
24757 ndr_print_struct(ndr, "out", "spoolss_EnumForms");
24759 ndr_print_ptr(ndr, "count", r->out.count);
24761 ndr_print_uint32(ndr, "count", *r->out.count);
24763 ndr_print_ptr(ndr, "info", r->out.info);
24765 ndr_print_ptr(ndr, "info", *r->out.info);
24767 if (*r->out.info) {
24768 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
24770 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
24772 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
24773 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
24774 ndr_print_spoolss_FormInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
24782 ndr_print_ptr(ndr, "needed", r->out.needed);
24784 ndr_print_uint32(ndr, "needed", *r->out.needed);
24786 ndr_print_WERROR(ndr, "result", r->out.result);
24792 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPorts(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPorts *r)
24794 if (flags & NDR_IN) {
24795 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
24796 if (r->in.servername) {
24797 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
24798 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24799 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
24800 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
24802 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24803 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
24804 if (r->in.buffer) {
24805 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
24807 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
24809 if (flags & NDR_OUT) {
24810 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
24812 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
24814 if (r->out.needed == NULL) {
24815 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24817 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
24818 if (r->out.count == NULL) {
24819 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24821 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
24822 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24824 return NDR_ERR_SUCCESS;
24827 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPorts(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPorts *r)
24829 uint32_t _ptr_servername;
24830 uint32_t _ptr_buffer;
24831 uint32_t _ptr_info;
24832 TALLOC_CTX *_mem_save_servername_0;
24833 TALLOC_CTX *_mem_save_buffer_0;
24834 TALLOC_CTX *_mem_save_info_0;
24835 TALLOC_CTX *_mem_save_needed_0;
24836 TALLOC_CTX *_mem_save_count_0;
24837 if (flags & NDR_IN) {
24838 ZERO_STRUCT(r->out);
24840 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
24841 if (_ptr_servername) {
24842 NDR_PULL_ALLOC(ndr, r->in.servername);
24844 r->in.servername = NULL;
24846 if (r->in.servername) {
24847 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
24848 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
24849 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
24850 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
24851 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
24852 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));
24854 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
24855 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
24856 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
24858 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24859 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
24861 NDR_PULL_ALLOC(ndr, r->in.buffer);
24863 r->in.buffer = NULL;
24865 if (r->in.buffer) {
24866 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
24867 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
24868 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
24869 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
24871 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
24872 NDR_PULL_ALLOC(ndr, r->out.needed);
24873 ZERO_STRUCTP(r->out.needed);
24874 NDR_PULL_ALLOC(ndr, r->out.count);
24875 ZERO_STRUCTP(r->out.count);
24877 if (flags & NDR_OUT) {
24878 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
24880 NDR_PULL_ALLOC(ndr, r->out.info);
24882 r->out.info = NULL;
24885 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24886 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24887 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
24888 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24890 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24891 NDR_PULL_ALLOC(ndr, r->out.needed);
24893 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
24894 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
24895 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
24896 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
24897 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24898 NDR_PULL_ALLOC(ndr, r->out.count);
24900 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
24901 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
24902 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
24903 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
24904 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24906 return NDR_ERR_SUCCESS;
24909 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPorts(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPorts *r)
24911 uint32_t cntr_info_0;
24912 if (flags & NDR_IN) {
24913 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24914 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
24916 if (flags & NDR_OUT) {
24917 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24918 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
24919 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
24921 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24922 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
24925 return NDR_ERR_SUCCESS;
24928 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPorts(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPorts *r)
24930 uint32_t cntr_info_0;
24931 TALLOC_CTX *_mem_save_info_0;
24932 if (flags & NDR_IN) {
24933 ZERO_STRUCT(r->out);
24935 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24936 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
24938 if (flags & NDR_OUT) {
24939 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
24940 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24941 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24942 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24943 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
24944 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
24946 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24947 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
24949 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24951 return NDR_ERR_SUCCESS;
24954 _PUBLIC_ void ndr_print_spoolss_EnumPorts(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPorts *r)
24956 uint32_t cntr_info_2;
24957 ndr_print_struct(ndr, name, "spoolss_EnumPorts");
24959 if (flags & NDR_SET_VALUES) {
24960 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24962 if (flags & NDR_IN) {
24963 ndr_print_struct(ndr, "in", "spoolss_EnumPorts");
24965 ndr_print_ptr(ndr, "servername", r->in.servername);
24967 if (r->in.servername) {
24968 ndr_print_string(ndr, "servername", r->in.servername);
24971 ndr_print_uint32(ndr, "level", r->in.level);
24972 ndr_print_ptr(ndr, "buffer", r->in.buffer);
24974 if (r->in.buffer) {
24975 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
24978 ndr_print_uint32(ndr, "offered", r->in.offered);
24981 if (flags & NDR_OUT) {
24982 ndr_print_struct(ndr, "out", "spoolss_EnumPorts");
24984 ndr_print_ptr(ndr, "count", r->out.count);
24986 ndr_print_uint32(ndr, "count", *r->out.count);
24988 ndr_print_ptr(ndr, "info", r->out.info);
24990 ndr_print_ptr(ndr, "info", *r->out.info);
24992 if (*r->out.info) {
24993 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
24995 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
24997 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
24998 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
24999 ndr_print_spoolss_PortInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
25007 ndr_print_ptr(ndr, "needed", r->out.needed);
25009 ndr_print_uint32(ndr, "needed", *r->out.needed);
25011 ndr_print_WERROR(ndr, "result", r->out.result);
25017 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumMonitors(struct ndr_push *ndr, int flags, const struct _spoolss_EnumMonitors *r)
25019 if (flags & NDR_IN) {
25020 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
25021 if (r->in.servername) {
25022 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
25023 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
25024 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
25025 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
25027 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
25028 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
25029 if (r->in.buffer) {
25030 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
25032 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
25034 if (flags & NDR_OUT) {
25035 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
25037 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
25039 if (r->out.needed == NULL) {
25040 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25042 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
25043 if (r->out.count == NULL) {
25044 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25046 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
25047 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25049 return NDR_ERR_SUCCESS;
25052 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumMonitors(struct ndr_pull *ndr, int flags, struct _spoolss_EnumMonitors *r)
25054 uint32_t _ptr_servername;
25055 uint32_t _ptr_buffer;
25056 uint32_t _ptr_info;
25057 TALLOC_CTX *_mem_save_servername_0;
25058 TALLOC_CTX *_mem_save_buffer_0;
25059 TALLOC_CTX *_mem_save_info_0;
25060 TALLOC_CTX *_mem_save_needed_0;
25061 TALLOC_CTX *_mem_save_count_0;
25062 if (flags & NDR_IN) {
25063 ZERO_STRUCT(r->out);
25065 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
25066 if (_ptr_servername) {
25067 NDR_PULL_ALLOC(ndr, r->in.servername);
25069 r->in.servername = NULL;
25071 if (r->in.servername) {
25072 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
25073 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
25074 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
25075 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
25076 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
25077 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));
25079 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
25080 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
25081 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
25083 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
25084 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
25086 NDR_PULL_ALLOC(ndr, r->in.buffer);
25088 r->in.buffer = NULL;
25090 if (r->in.buffer) {
25091 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
25092 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
25093 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
25094 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
25096 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
25097 NDR_PULL_ALLOC(ndr, r->out.needed);
25098 ZERO_STRUCTP(r->out.needed);
25099 NDR_PULL_ALLOC(ndr, r->out.count);
25100 ZERO_STRUCTP(r->out.count);
25102 if (flags & NDR_OUT) {
25103 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
25105 NDR_PULL_ALLOC(ndr, r->out.info);
25107 r->out.info = NULL;
25110 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
25111 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
25112 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
25113 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
25115 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25116 NDR_PULL_ALLOC(ndr, r->out.needed);
25118 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
25119 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
25120 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
25121 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
25122 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25123 NDR_PULL_ALLOC(ndr, r->out.count);
25125 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
25126 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
25127 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
25128 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
25129 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25131 return NDR_ERR_SUCCESS;
25134 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumMonitors(struct ndr_push *ndr, int flags, const struct __spoolss_EnumMonitors *r)
25136 uint32_t cntr_info_0;
25137 if (flags & NDR_IN) {
25138 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
25139 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
25141 if (flags & NDR_OUT) {
25142 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
25143 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
25144 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
25146 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
25147 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
25150 return NDR_ERR_SUCCESS;
25153 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumMonitors(struct ndr_pull *ndr, int flags, struct __spoolss_EnumMonitors *r)
25155 uint32_t cntr_info_0;
25156 TALLOC_CTX *_mem_save_info_0;
25157 if (flags & NDR_IN) {
25158 ZERO_STRUCT(r->out);
25160 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
25161 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
25163 if (flags & NDR_OUT) {
25164 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
25165 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
25166 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
25167 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
25168 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
25169 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
25171 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
25172 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
25174 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
25176 return NDR_ERR_SUCCESS;
25179 _PUBLIC_ void ndr_print_spoolss_EnumMonitors(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumMonitors *r)
25181 uint32_t cntr_info_2;
25182 ndr_print_struct(ndr, name, "spoolss_EnumMonitors");
25184 if (flags & NDR_SET_VALUES) {
25185 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25187 if (flags & NDR_IN) {
25188 ndr_print_struct(ndr, "in", "spoolss_EnumMonitors");
25190 ndr_print_ptr(ndr, "servername", r->in.servername);
25192 if (r->in.servername) {
25193 ndr_print_string(ndr, "servername", r->in.servername);
25196 ndr_print_uint32(ndr, "level", r->in.level);
25197 ndr_print_ptr(ndr, "buffer", r->in.buffer);
25199 if (r->in.buffer) {
25200 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
25203 ndr_print_uint32(ndr, "offered", r->in.offered);
25206 if (flags & NDR_OUT) {
25207 ndr_print_struct(ndr, "out", "spoolss_EnumMonitors");
25209 ndr_print_ptr(ndr, "count", r->out.count);
25211 ndr_print_uint32(ndr, "count", *r->out.count);
25213 ndr_print_ptr(ndr, "info", r->out.info);
25215 ndr_print_ptr(ndr, "info", *r->out.info);
25217 if (*r->out.info) {
25218 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
25220 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
25222 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
25223 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
25224 ndr_print_spoolss_MonitorInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
25232 ndr_print_ptr(ndr, "needed", r->out.needed);
25234 ndr_print_uint32(ndr, "needed", *r->out.needed);
25236 ndr_print_WERROR(ndr, "result", r->out.result);
25242 static enum ndr_err_code ndr_push_spoolss_AddPort(struct ndr_push *ndr, int flags, const struct spoolss_AddPort *r)
25244 if (flags & NDR_IN) {
25245 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
25246 if (r->in.server_name) {
25247 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
25248 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
25249 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
25250 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));
25252 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown));
25253 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
25254 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
25255 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
25256 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));
25258 if (flags & NDR_OUT) {
25259 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25261 return NDR_ERR_SUCCESS;
25264 static enum ndr_err_code ndr_pull_spoolss_AddPort(struct ndr_pull *ndr, int flags, struct spoolss_AddPort *r)
25266 uint32_t _ptr_server_name;
25267 TALLOC_CTX *_mem_save_server_name_0;
25268 if (flags & NDR_IN) {
25269 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
25270 if (_ptr_server_name) {
25271 NDR_PULL_ALLOC(ndr, r->in.server_name);
25273 r->in.server_name = NULL;
25275 if (r->in.server_name) {
25276 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
25277 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
25278 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
25279 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
25280 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
25281 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));
25283 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
25284 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));
25285 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
25287 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown));
25288 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.monitor_name));
25289 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.monitor_name));
25290 if (ndr_get_array_length(ndr, &r->in.monitor_name) > ndr_get_array_size(ndr, &r->in.monitor_name)) {
25291 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));
25293 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.monitor_name), sizeof(uint16_t)));
25294 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));
25296 if (flags & NDR_OUT) {
25297 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25299 return NDR_ERR_SUCCESS;
25302 _PUBLIC_ void ndr_print_spoolss_AddPort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPort *r)
25304 ndr_print_struct(ndr, name, "spoolss_AddPort");
25306 if (flags & NDR_SET_VALUES) {
25307 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25309 if (flags & NDR_IN) {
25310 ndr_print_struct(ndr, "in", "spoolss_AddPort");
25312 ndr_print_ptr(ndr, "server_name", r->in.server_name);
25314 if (r->in.server_name) {
25315 ndr_print_string(ndr, "server_name", r->in.server_name);
25318 ndr_print_uint32(ndr, "unknown", r->in.unknown);
25319 ndr_print_string(ndr, "monitor_name", r->in.monitor_name);
25322 if (flags & NDR_OUT) {
25323 ndr_print_struct(ndr, "out", "spoolss_AddPort");
25325 ndr_print_WERROR(ndr, "result", r->out.result);
25331 static enum ndr_err_code ndr_push_spoolss_ConfigurePort(struct ndr_push *ndr, int flags, const struct spoolss_ConfigurePort *r)
25333 if (flags & NDR_IN) {
25335 if (flags & NDR_OUT) {
25336 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25338 return NDR_ERR_SUCCESS;
25341 static enum ndr_err_code ndr_pull_spoolss_ConfigurePort(struct ndr_pull *ndr, int flags, struct spoolss_ConfigurePort *r)
25343 if (flags & NDR_IN) {
25345 if (flags & NDR_OUT) {
25346 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25348 return NDR_ERR_SUCCESS;
25351 _PUBLIC_ void ndr_print_spoolss_ConfigurePort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ConfigurePort *r)
25353 ndr_print_struct(ndr, name, "spoolss_ConfigurePort");
25355 if (flags & NDR_SET_VALUES) {
25356 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25358 if (flags & NDR_IN) {
25359 ndr_print_struct(ndr, "in", "spoolss_ConfigurePort");
25363 if (flags & NDR_OUT) {
25364 ndr_print_struct(ndr, "out", "spoolss_ConfigurePort");
25366 ndr_print_WERROR(ndr, "result", r->out.result);
25372 static enum ndr_err_code ndr_push_spoolss_DeletePort(struct ndr_push *ndr, int flags, const struct spoolss_DeletePort *r)
25374 if (flags & NDR_IN) {
25376 if (flags & NDR_OUT) {
25377 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25379 return NDR_ERR_SUCCESS;
25382 static enum ndr_err_code ndr_pull_spoolss_DeletePort(struct ndr_pull *ndr, int flags, struct spoolss_DeletePort *r)
25384 if (flags & NDR_IN) {
25386 if (flags & NDR_OUT) {
25387 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25389 return NDR_ERR_SUCCESS;
25392 _PUBLIC_ void ndr_print_spoolss_DeletePort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePort *r)
25394 ndr_print_struct(ndr, name, "spoolss_DeletePort");
25396 if (flags & NDR_SET_VALUES) {
25397 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25399 if (flags & NDR_IN) {
25400 ndr_print_struct(ndr, "in", "spoolss_DeletePort");
25404 if (flags & NDR_OUT) {
25405 ndr_print_struct(ndr, "out", "spoolss_DeletePort");
25407 ndr_print_WERROR(ndr, "result", r->out.result);
25413 static enum ndr_err_code ndr_push_spoolss_CreatePrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_CreatePrinterIC *r)
25415 if (flags & NDR_IN) {
25416 if (r->in.handle == NULL) {
25417 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25419 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25420 if (r->in.devmode_ctr == NULL) {
25421 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25423 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
25425 if (flags & NDR_OUT) {
25426 if (r->out.gdi_handle == NULL) {
25427 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25429 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.gdi_handle));
25430 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25432 return NDR_ERR_SUCCESS;
25435 static enum ndr_err_code ndr_pull_spoolss_CreatePrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_CreatePrinterIC *r)
25437 TALLOC_CTX *_mem_save_handle_0;
25438 TALLOC_CTX *_mem_save_gdi_handle_0;
25439 TALLOC_CTX *_mem_save_devmode_ctr_0;
25440 if (flags & NDR_IN) {
25441 ZERO_STRUCT(r->out);
25443 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25444 NDR_PULL_ALLOC(ndr, r->in.handle);
25446 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25447 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25448 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25449 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25450 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25451 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
25453 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
25454 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
25455 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
25456 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
25457 NDR_PULL_ALLOC(ndr, r->out.gdi_handle);
25458 ZERO_STRUCTP(r->out.gdi_handle);
25460 if (flags & NDR_OUT) {
25461 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25462 NDR_PULL_ALLOC(ndr, r->out.gdi_handle);
25464 _mem_save_gdi_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25465 NDR_PULL_SET_MEM_CTX(ndr, r->out.gdi_handle, LIBNDR_FLAG_REF_ALLOC);
25466 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.gdi_handle));
25467 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_gdi_handle_0, LIBNDR_FLAG_REF_ALLOC);
25468 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25470 return NDR_ERR_SUCCESS;
25473 _PUBLIC_ void ndr_print_spoolss_CreatePrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_CreatePrinterIC *r)
25475 ndr_print_struct(ndr, name, "spoolss_CreatePrinterIC");
25477 if (flags & NDR_SET_VALUES) {
25478 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25480 if (flags & NDR_IN) {
25481 ndr_print_struct(ndr, "in", "spoolss_CreatePrinterIC");
25483 ndr_print_ptr(ndr, "handle", r->in.handle);
25485 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25487 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
25489 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
25493 if (flags & NDR_OUT) {
25494 ndr_print_struct(ndr, "out", "spoolss_CreatePrinterIC");
25496 ndr_print_ptr(ndr, "gdi_handle", r->out.gdi_handle);
25498 ndr_print_policy_handle(ndr, "gdi_handle", r->out.gdi_handle);
25500 ndr_print_WERROR(ndr, "result", r->out.result);
25506 static enum ndr_err_code ndr_push_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_PlayGDIScriptOnPrinterIC *r)
25508 if (flags & NDR_IN) {
25510 if (flags & NDR_OUT) {
25511 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25513 return NDR_ERR_SUCCESS;
25516 static enum ndr_err_code ndr_pull_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_PlayGDIScriptOnPrinterIC *r)
25518 if (flags & NDR_IN) {
25520 if (flags & NDR_OUT) {
25521 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25523 return NDR_ERR_SUCCESS;
25526 _PUBLIC_ void ndr_print_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_PlayGDIScriptOnPrinterIC *r)
25528 ndr_print_struct(ndr, name, "spoolss_PlayGDIScriptOnPrinterIC");
25530 if (flags & NDR_SET_VALUES) {
25531 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25533 if (flags & NDR_IN) {
25534 ndr_print_struct(ndr, "in", "spoolss_PlayGDIScriptOnPrinterIC");
25538 if (flags & NDR_OUT) {
25539 ndr_print_struct(ndr, "out", "spoolss_PlayGDIScriptOnPrinterIC");
25541 ndr_print_WERROR(ndr, "result", r->out.result);
25547 static enum ndr_err_code ndr_push_spoolss_DeletePrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterIC *r)
25549 if (flags & NDR_IN) {
25550 if (r->in.gdi_handle == NULL) {
25551 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25553 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.gdi_handle));
25555 if (flags & NDR_OUT) {
25556 if (r->out.gdi_handle == NULL) {
25557 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25559 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.gdi_handle));
25560 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25562 return NDR_ERR_SUCCESS;
25565 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterIC *r)
25567 TALLOC_CTX *_mem_save_gdi_handle_0;
25568 if (flags & NDR_IN) {
25569 ZERO_STRUCT(r->out);
25571 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25572 NDR_PULL_ALLOC(ndr, r->in.gdi_handle);
25574 _mem_save_gdi_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25575 NDR_PULL_SET_MEM_CTX(ndr, r->in.gdi_handle, LIBNDR_FLAG_REF_ALLOC);
25576 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.gdi_handle));
25577 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_gdi_handle_0, LIBNDR_FLAG_REF_ALLOC);
25578 NDR_PULL_ALLOC(ndr, r->out.gdi_handle);
25579 *r->out.gdi_handle = *r->in.gdi_handle;
25581 if (flags & NDR_OUT) {
25582 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25583 NDR_PULL_ALLOC(ndr, r->out.gdi_handle);
25585 _mem_save_gdi_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25586 NDR_PULL_SET_MEM_CTX(ndr, r->out.gdi_handle, LIBNDR_FLAG_REF_ALLOC);
25587 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.gdi_handle));
25588 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_gdi_handle_0, LIBNDR_FLAG_REF_ALLOC);
25589 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25591 return NDR_ERR_SUCCESS;
25594 _PUBLIC_ void ndr_print_spoolss_DeletePrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterIC *r)
25596 ndr_print_struct(ndr, name, "spoolss_DeletePrinterIC");
25598 if (flags & NDR_SET_VALUES) {
25599 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25601 if (flags & NDR_IN) {
25602 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterIC");
25604 ndr_print_ptr(ndr, "gdi_handle", r->in.gdi_handle);
25606 ndr_print_policy_handle(ndr, "gdi_handle", r->in.gdi_handle);
25610 if (flags & NDR_OUT) {
25611 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterIC");
25613 ndr_print_ptr(ndr, "gdi_handle", r->out.gdi_handle);
25615 ndr_print_policy_handle(ndr, "gdi_handle", r->out.gdi_handle);
25617 ndr_print_WERROR(ndr, "result", r->out.result);
25623 static enum ndr_err_code ndr_push_spoolss_AddPrinterConnection(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterConnection *r)
25625 if (flags & NDR_IN) {
25627 if (flags & NDR_OUT) {
25628 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25630 return NDR_ERR_SUCCESS;
25633 static enum ndr_err_code ndr_pull_spoolss_AddPrinterConnection(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterConnection *r)
25635 if (flags & NDR_IN) {
25637 if (flags & NDR_OUT) {
25638 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25640 return NDR_ERR_SUCCESS;
25643 _PUBLIC_ void ndr_print_spoolss_AddPrinterConnection(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterConnection *r)
25645 ndr_print_struct(ndr, name, "spoolss_AddPrinterConnection");
25647 if (flags & NDR_SET_VALUES) {
25648 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25650 if (flags & NDR_IN) {
25651 ndr_print_struct(ndr, "in", "spoolss_AddPrinterConnection");
25655 if (flags & NDR_OUT) {
25656 ndr_print_struct(ndr, "out", "spoolss_AddPrinterConnection");
25658 ndr_print_WERROR(ndr, "result", r->out.result);
25664 static enum ndr_err_code ndr_push_spoolss_DeletePrinterConnection(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterConnection *r)
25666 if (flags & NDR_IN) {
25668 if (flags & NDR_OUT) {
25669 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25671 return NDR_ERR_SUCCESS;
25674 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterConnection(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterConnection *r)
25676 if (flags & NDR_IN) {
25678 if (flags & NDR_OUT) {
25679 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25681 return NDR_ERR_SUCCESS;
25684 _PUBLIC_ void ndr_print_spoolss_DeletePrinterConnection(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterConnection *r)
25686 ndr_print_struct(ndr, name, "spoolss_DeletePrinterConnection");
25688 if (flags & NDR_SET_VALUES) {
25689 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25691 if (flags & NDR_IN) {
25692 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterConnection");
25696 if (flags & NDR_OUT) {
25697 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterConnection");
25699 ndr_print_WERROR(ndr, "result", r->out.result);
25705 static enum ndr_err_code ndr_push_spoolss_PrinterMessageBox(struct ndr_push *ndr, int flags, const struct spoolss_PrinterMessageBox *r)
25707 if (flags & NDR_IN) {
25709 if (flags & NDR_OUT) {
25710 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25712 return NDR_ERR_SUCCESS;
25715 static enum ndr_err_code ndr_pull_spoolss_PrinterMessageBox(struct ndr_pull *ndr, int flags, struct spoolss_PrinterMessageBox *r)
25717 if (flags & NDR_IN) {
25719 if (flags & NDR_OUT) {
25720 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25722 return NDR_ERR_SUCCESS;
25725 _PUBLIC_ void ndr_print_spoolss_PrinterMessageBox(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_PrinterMessageBox *r)
25727 ndr_print_struct(ndr, name, "spoolss_PrinterMessageBox");
25729 if (flags & NDR_SET_VALUES) {
25730 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25732 if (flags & NDR_IN) {
25733 ndr_print_struct(ndr, "in", "spoolss_PrinterMessageBox");
25737 if (flags & NDR_OUT) {
25738 ndr_print_struct(ndr, "out", "spoolss_PrinterMessageBox");
25740 ndr_print_WERROR(ndr, "result", r->out.result);
25746 static enum ndr_err_code ndr_push_spoolss_AddMonitor(struct ndr_push *ndr, int flags, const struct spoolss_AddMonitor *r)
25748 if (flags & NDR_IN) {
25750 if (flags & NDR_OUT) {
25751 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25753 return NDR_ERR_SUCCESS;
25756 static enum ndr_err_code ndr_pull_spoolss_AddMonitor(struct ndr_pull *ndr, int flags, struct spoolss_AddMonitor *r)
25758 if (flags & NDR_IN) {
25760 if (flags & NDR_OUT) {
25761 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25763 return NDR_ERR_SUCCESS;
25766 _PUBLIC_ void ndr_print_spoolss_AddMonitor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddMonitor *r)
25768 ndr_print_struct(ndr, name, "spoolss_AddMonitor");
25770 if (flags & NDR_SET_VALUES) {
25771 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25773 if (flags & NDR_IN) {
25774 ndr_print_struct(ndr, "in", "spoolss_AddMonitor");
25778 if (flags & NDR_OUT) {
25779 ndr_print_struct(ndr, "out", "spoolss_AddMonitor");
25781 ndr_print_WERROR(ndr, "result", r->out.result);
25787 static enum ndr_err_code ndr_push_spoolss_DeleteMonitor(struct ndr_push *ndr, int flags, const struct spoolss_DeleteMonitor *r)
25789 if (flags & NDR_IN) {
25791 if (flags & NDR_OUT) {
25792 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25794 return NDR_ERR_SUCCESS;
25797 static enum ndr_err_code ndr_pull_spoolss_DeleteMonitor(struct ndr_pull *ndr, int flags, struct spoolss_DeleteMonitor *r)
25799 if (flags & NDR_IN) {
25801 if (flags & NDR_OUT) {
25802 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25804 return NDR_ERR_SUCCESS;
25807 _PUBLIC_ void ndr_print_spoolss_DeleteMonitor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeleteMonitor *r)
25809 ndr_print_struct(ndr, name, "spoolss_DeleteMonitor");
25811 if (flags & NDR_SET_VALUES) {
25812 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25814 if (flags & NDR_IN) {
25815 ndr_print_struct(ndr, "in", "spoolss_DeleteMonitor");
25819 if (flags & NDR_OUT) {
25820 ndr_print_struct(ndr, "out", "spoolss_DeleteMonitor");
25822 ndr_print_WERROR(ndr, "result", r->out.result);
25828 static enum ndr_err_code ndr_push_spoolss_DeletePrintProcessor(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrintProcessor *r)
25830 if (flags & NDR_IN) {
25832 if (flags & NDR_OUT) {
25833 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25835 return NDR_ERR_SUCCESS;
25838 static enum ndr_err_code ndr_pull_spoolss_DeletePrintProcessor(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrintProcessor *r)
25840 if (flags & NDR_IN) {
25842 if (flags & NDR_OUT) {
25843 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25845 return NDR_ERR_SUCCESS;
25848 _PUBLIC_ void ndr_print_spoolss_DeletePrintProcessor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrintProcessor *r)
25850 ndr_print_struct(ndr, name, "spoolss_DeletePrintProcessor");
25852 if (flags & NDR_SET_VALUES) {
25853 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25855 if (flags & NDR_IN) {
25856 ndr_print_struct(ndr, "in", "spoolss_DeletePrintProcessor");
25860 if (flags & NDR_OUT) {
25861 ndr_print_struct(ndr, "out", "spoolss_DeletePrintProcessor");
25863 ndr_print_WERROR(ndr, "result", r->out.result);
25869 static enum ndr_err_code ndr_push_spoolss_AddPrintProvidor(struct ndr_push *ndr, int flags, const struct spoolss_AddPrintProvidor *r)
25871 if (flags & NDR_IN) {
25873 if (flags & NDR_OUT) {
25874 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25876 return NDR_ERR_SUCCESS;
25879 static enum ndr_err_code ndr_pull_spoolss_AddPrintProvidor(struct ndr_pull *ndr, int flags, struct spoolss_AddPrintProvidor *r)
25881 if (flags & NDR_IN) {
25883 if (flags & NDR_OUT) {
25884 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25886 return NDR_ERR_SUCCESS;
25889 _PUBLIC_ void ndr_print_spoolss_AddPrintProvidor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrintProvidor *r)
25891 ndr_print_struct(ndr, name, "spoolss_AddPrintProvidor");
25893 if (flags & NDR_SET_VALUES) {
25894 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25896 if (flags & NDR_IN) {
25897 ndr_print_struct(ndr, "in", "spoolss_AddPrintProvidor");
25901 if (flags & NDR_OUT) {
25902 ndr_print_struct(ndr, "out", "spoolss_AddPrintProvidor");
25904 ndr_print_WERROR(ndr, "result", r->out.result);
25910 static enum ndr_err_code ndr_push_spoolss_DeletePrintProvidor(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrintProvidor *r)
25912 if (flags & NDR_IN) {
25914 if (flags & NDR_OUT) {
25915 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25917 return NDR_ERR_SUCCESS;
25920 static enum ndr_err_code ndr_pull_spoolss_DeletePrintProvidor(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrintProvidor *r)
25922 if (flags & NDR_IN) {
25924 if (flags & NDR_OUT) {
25925 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25927 return NDR_ERR_SUCCESS;
25930 _PUBLIC_ void ndr_print_spoolss_DeletePrintProvidor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrintProvidor *r)
25932 ndr_print_struct(ndr, name, "spoolss_DeletePrintProvidor");
25934 if (flags & NDR_SET_VALUES) {
25935 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25937 if (flags & NDR_IN) {
25938 ndr_print_struct(ndr, "in", "spoolss_DeletePrintProvidor");
25942 if (flags & NDR_OUT) {
25943 ndr_print_struct(ndr, "out", "spoolss_DeletePrintProvidor");
25945 ndr_print_WERROR(ndr, "result", r->out.result);
25951 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrintProcDataTypes(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrintProcDataTypes *r)
25953 if (flags & NDR_IN) {
25954 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
25955 if (r->in.servername) {
25956 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
25957 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
25958 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
25959 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
25961 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.print_processor_name));
25962 if (r->in.print_processor_name) {
25963 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
25964 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
25965 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
25966 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));
25968 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
25969 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
25970 if (r->in.buffer) {
25971 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
25973 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
25975 if (flags & NDR_OUT) {
25976 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
25978 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
25980 if (r->out.needed == NULL) {
25981 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25983 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
25984 if (r->out.count == NULL) {
25985 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25987 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
25988 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25990 return NDR_ERR_SUCCESS;
25993 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrintProcDataTypes(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrintProcDataTypes *r)
25995 uint32_t _ptr_servername;
25996 uint32_t _ptr_print_processor_name;
25997 uint32_t _ptr_buffer;
25998 uint32_t _ptr_info;
25999 TALLOC_CTX *_mem_save_servername_0;
26000 TALLOC_CTX *_mem_save_print_processor_name_0;
26001 TALLOC_CTX *_mem_save_buffer_0;
26002 TALLOC_CTX *_mem_save_info_0;
26003 TALLOC_CTX *_mem_save_needed_0;
26004 TALLOC_CTX *_mem_save_count_0;
26005 if (flags & NDR_IN) {
26006 ZERO_STRUCT(r->out);
26008 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
26009 if (_ptr_servername) {
26010 NDR_PULL_ALLOC(ndr, r->in.servername);
26012 r->in.servername = NULL;
26014 if (r->in.servername) {
26015 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
26016 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
26017 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
26018 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
26019 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
26020 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));
26022 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
26023 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
26024 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
26026 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor_name));
26027 if (_ptr_print_processor_name) {
26028 NDR_PULL_ALLOC(ndr, r->in.print_processor_name);
26030 r->in.print_processor_name = NULL;
26032 if (r->in.print_processor_name) {
26033 _mem_save_print_processor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
26034 NDR_PULL_SET_MEM_CTX(ndr, r->in.print_processor_name, 0);
26035 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.print_processor_name));
26036 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.print_processor_name));
26037 if (ndr_get_array_length(ndr, &r->in.print_processor_name) > ndr_get_array_size(ndr, &r->in.print_processor_name)) {
26038 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));
26040 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.print_processor_name), sizeof(uint16_t)));
26041 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));
26042 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_name_0, 0);
26044 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
26045 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
26047 NDR_PULL_ALLOC(ndr, r->in.buffer);
26049 r->in.buffer = NULL;
26051 if (r->in.buffer) {
26052 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
26053 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
26054 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
26055 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
26057 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
26058 NDR_PULL_ALLOC(ndr, r->out.needed);
26059 ZERO_STRUCTP(r->out.needed);
26060 NDR_PULL_ALLOC(ndr, r->out.count);
26061 ZERO_STRUCTP(r->out.count);
26063 if (flags & NDR_OUT) {
26064 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
26066 NDR_PULL_ALLOC(ndr, r->out.info);
26068 r->out.info = NULL;
26071 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
26072 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
26073 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
26074 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
26076 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26077 NDR_PULL_ALLOC(ndr, r->out.needed);
26079 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
26080 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
26081 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
26082 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
26083 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26084 NDR_PULL_ALLOC(ndr, r->out.count);
26086 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
26087 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
26088 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
26089 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
26090 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26092 return NDR_ERR_SUCCESS;
26095 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrintProcDataTypes(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrintProcDataTypes *r)
26097 uint32_t cntr_info_0;
26098 if (flags & NDR_IN) {
26099 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
26100 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
26102 if (flags & NDR_OUT) {
26103 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
26104 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
26105 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
26107 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
26108 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
26111 return NDR_ERR_SUCCESS;
26114 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrintProcDataTypes(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrintProcDataTypes *r)
26116 uint32_t cntr_info_0;
26117 TALLOC_CTX *_mem_save_info_0;
26118 if (flags & NDR_IN) {
26119 ZERO_STRUCT(r->out);
26121 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
26122 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
26124 if (flags & NDR_OUT) {
26125 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
26126 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
26127 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
26128 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
26129 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
26130 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
26132 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
26133 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
26135 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
26137 return NDR_ERR_SUCCESS;
26140 _PUBLIC_ void ndr_print_spoolss_EnumPrintProcDataTypes(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrintProcDataTypes *r)
26142 uint32_t cntr_info_2;
26143 ndr_print_struct(ndr, name, "spoolss_EnumPrintProcDataTypes");
26145 if (flags & NDR_SET_VALUES) {
26146 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26148 if (flags & NDR_IN) {
26149 ndr_print_struct(ndr, "in", "spoolss_EnumPrintProcDataTypes");
26151 ndr_print_ptr(ndr, "servername", r->in.servername);
26153 if (r->in.servername) {
26154 ndr_print_string(ndr, "servername", r->in.servername);
26157 ndr_print_ptr(ndr, "print_processor_name", r->in.print_processor_name);
26159 if (r->in.print_processor_name) {
26160 ndr_print_string(ndr, "print_processor_name", r->in.print_processor_name);
26163 ndr_print_uint32(ndr, "level", r->in.level);
26164 ndr_print_ptr(ndr, "buffer", r->in.buffer);
26166 if (r->in.buffer) {
26167 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
26170 ndr_print_uint32(ndr, "offered", r->in.offered);
26173 if (flags & NDR_OUT) {
26174 ndr_print_struct(ndr, "out", "spoolss_EnumPrintProcDataTypes");
26176 ndr_print_ptr(ndr, "count", r->out.count);
26178 ndr_print_uint32(ndr, "count", *r->out.count);
26180 ndr_print_ptr(ndr, "info", r->out.info);
26182 ndr_print_ptr(ndr, "info", *r->out.info);
26184 if (*r->out.info) {
26185 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
26187 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
26189 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
26190 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
26191 ndr_print_spoolss_PrintProcDataTypesInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
26199 ndr_print_ptr(ndr, "needed", r->out.needed);
26201 ndr_print_uint32(ndr, "needed", *r->out.needed);
26203 ndr_print_WERROR(ndr, "result", r->out.result);
26209 static enum ndr_err_code ndr_push_spoolss_ResetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ResetPrinter *r)
26211 if (flags & NDR_IN) {
26212 if (r->in.handle == NULL) {
26213 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26215 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26216 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.data_type));
26217 if (r->in.data_type) {
26218 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.data_type, CH_UTF16)));
26219 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
26220 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.data_type, CH_UTF16)));
26221 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));
26223 if (r->in.devmode_ctr == NULL) {
26224 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26226 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
26228 if (flags & NDR_OUT) {
26229 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26231 return NDR_ERR_SUCCESS;
26234 static enum ndr_err_code ndr_pull_spoolss_ResetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ResetPrinter *r)
26236 uint32_t _ptr_data_type;
26237 TALLOC_CTX *_mem_save_handle_0;
26238 TALLOC_CTX *_mem_save_data_type_0;
26239 TALLOC_CTX *_mem_save_devmode_ctr_0;
26240 if (flags & NDR_IN) {
26241 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26242 NDR_PULL_ALLOC(ndr, r->in.handle);
26244 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26245 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26246 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26247 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26248 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
26249 if (_ptr_data_type) {
26250 NDR_PULL_ALLOC(ndr, r->in.data_type);
26252 r->in.data_type = NULL;
26254 if (r->in.data_type) {
26255 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
26256 NDR_PULL_SET_MEM_CTX(ndr, r->in.data_type, 0);
26257 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.data_type));
26258 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.data_type));
26259 if (ndr_get_array_length(ndr, &r->in.data_type) > ndr_get_array_size(ndr, &r->in.data_type)) {
26260 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));
26262 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.data_type), sizeof(uint16_t)));
26263 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));
26264 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
26266 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26267 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
26269 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
26270 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
26271 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
26272 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
26274 if (flags & NDR_OUT) {
26275 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26277 return NDR_ERR_SUCCESS;
26280 _PUBLIC_ void ndr_print_spoolss_ResetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ResetPrinter *r)
26282 ndr_print_struct(ndr, name, "spoolss_ResetPrinter");
26284 if (flags & NDR_SET_VALUES) {
26285 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26287 if (flags & NDR_IN) {
26288 ndr_print_struct(ndr, "in", "spoolss_ResetPrinter");
26290 ndr_print_ptr(ndr, "handle", r->in.handle);
26292 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26294 ndr_print_ptr(ndr, "data_type", r->in.data_type);
26296 if (r->in.data_type) {
26297 ndr_print_string(ndr, "data_type", r->in.data_type);
26300 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
26302 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
26306 if (flags & NDR_OUT) {
26307 ndr_print_struct(ndr, "out", "spoolss_ResetPrinter");
26309 ndr_print_WERROR(ndr, "result", r->out.result);
26315 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriver2(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriver2 *r)
26317 if (flags & NDR_IN) {
26318 if (r->in.handle == NULL) {
26319 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26321 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26322 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.architecture));
26323 if (r->in.architecture) {
26324 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
26325 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
26326 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
26327 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26329 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
26330 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
26331 if (r->in.buffer) {
26332 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
26334 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
26335 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_major_version));
26336 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_minor_version));
26338 if (flags & NDR_OUT) {
26339 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
26342 struct ndr_push *_ndr_info;
26343 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
26344 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
26345 NDR_CHECK(ndr_push_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
26346 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
26349 if (r->out.needed == NULL) {
26350 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26352 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
26353 if (r->out.server_major_version == NULL) {
26354 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26356 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.server_major_version));
26357 if (r->out.server_minor_version == NULL) {
26358 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26360 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.server_minor_version));
26361 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26363 return NDR_ERR_SUCCESS;
26366 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriver2(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriver2 *r)
26368 uint32_t _ptr_architecture;
26369 uint32_t _ptr_buffer;
26370 uint32_t _ptr_info;
26371 TALLOC_CTX *_mem_save_handle_0;
26372 TALLOC_CTX *_mem_save_architecture_0;
26373 TALLOC_CTX *_mem_save_buffer_0;
26374 TALLOC_CTX *_mem_save_info_0;
26375 TALLOC_CTX *_mem_save_needed_0;
26376 TALLOC_CTX *_mem_save_server_major_version_0;
26377 TALLOC_CTX *_mem_save_server_minor_version_0;
26378 if (flags & NDR_IN) {
26379 ZERO_STRUCT(r->out);
26381 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26382 NDR_PULL_ALLOC(ndr, r->in.handle);
26384 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26385 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26386 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26387 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26388 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
26389 if (_ptr_architecture) {
26390 NDR_PULL_ALLOC(ndr, r->in.architecture);
26392 r->in.architecture = NULL;
26394 if (r->in.architecture) {
26395 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
26396 NDR_PULL_SET_MEM_CTX(ndr, r->in.architecture, 0);
26397 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
26398 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
26399 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
26400 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));
26402 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
26403 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
26404 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
26406 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
26407 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
26409 NDR_PULL_ALLOC(ndr, r->in.buffer);
26411 r->in.buffer = NULL;
26413 if (r->in.buffer) {
26414 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
26415 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
26416 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
26417 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
26419 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
26420 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_major_version));
26421 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_minor_version));
26422 NDR_PULL_ALLOC(ndr, r->out.needed);
26423 ZERO_STRUCTP(r->out.needed);
26424 NDR_PULL_ALLOC(ndr, r->out.server_major_version);
26425 ZERO_STRUCTP(r->out.server_major_version);
26426 NDR_PULL_ALLOC(ndr, r->out.server_minor_version);
26427 ZERO_STRUCTP(r->out.server_minor_version);
26429 if (flags & NDR_OUT) {
26430 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
26432 NDR_PULL_ALLOC(ndr, r->out.info);
26434 r->out.info = NULL;
26437 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
26438 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
26440 struct ndr_pull *_ndr_info;
26441 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
26442 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
26443 NDR_CHECK(ndr_pull_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
26444 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
26446 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
26448 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26449 NDR_PULL_ALLOC(ndr, r->out.needed);
26451 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
26452 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
26453 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
26454 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
26455 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26456 NDR_PULL_ALLOC(ndr, r->out.server_major_version);
26458 _mem_save_server_major_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
26459 NDR_PULL_SET_MEM_CTX(ndr, r->out.server_major_version, LIBNDR_FLAG_REF_ALLOC);
26460 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.server_major_version));
26461 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_major_version_0, LIBNDR_FLAG_REF_ALLOC);
26462 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26463 NDR_PULL_ALLOC(ndr, r->out.server_minor_version);
26465 _mem_save_server_minor_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
26466 NDR_PULL_SET_MEM_CTX(ndr, r->out.server_minor_version, LIBNDR_FLAG_REF_ALLOC);
26467 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.server_minor_version));
26468 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_minor_version_0, LIBNDR_FLAG_REF_ALLOC);
26469 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26471 return NDR_ERR_SUCCESS;
26474 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriver2(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriver2 *r)
26476 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriver2");
26478 if (flags & NDR_SET_VALUES) {
26479 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26481 if (flags & NDR_IN) {
26482 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriver2");
26484 ndr_print_ptr(ndr, "handle", r->in.handle);
26486 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26488 ndr_print_ptr(ndr, "architecture", r->in.architecture);
26490 if (r->in.architecture) {
26491 ndr_print_string(ndr, "architecture", r->in.architecture);
26494 ndr_print_uint32(ndr, "level", r->in.level);
26495 ndr_print_ptr(ndr, "buffer", r->in.buffer);
26497 if (r->in.buffer) {
26498 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
26501 ndr_print_uint32(ndr, "offered", r->in.offered);
26502 ndr_print_uint32(ndr, "client_major_version", r->in.client_major_version);
26503 ndr_print_uint32(ndr, "client_minor_version", r->in.client_minor_version);
26506 if (flags & NDR_OUT) {
26507 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriver2");
26509 ndr_print_ptr(ndr, "info", r->out.info);
26512 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
26513 ndr_print_spoolss_DriverInfo(ndr, "info", r->out.info);
26516 ndr_print_ptr(ndr, "needed", r->out.needed);
26518 ndr_print_uint32(ndr, "needed", *r->out.needed);
26520 ndr_print_ptr(ndr, "server_major_version", r->out.server_major_version);
26522 ndr_print_uint32(ndr, "server_major_version", *r->out.server_major_version);
26524 ndr_print_ptr(ndr, "server_minor_version", r->out.server_minor_version);
26526 ndr_print_uint32(ndr, "server_minor_version", *r->out.server_minor_version);
26528 ndr_print_WERROR(ndr, "result", r->out.result);
26534 static enum ndr_err_code ndr_push_spoolss_FindFirstPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_FindFirstPrinterChangeNotification *r)
26536 if (flags & NDR_IN) {
26538 if (flags & NDR_OUT) {
26539 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26541 return NDR_ERR_SUCCESS;
26544 static enum ndr_err_code ndr_pull_spoolss_FindFirstPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_FindFirstPrinterChangeNotification *r)
26546 if (flags & NDR_IN) {
26548 if (flags & NDR_OUT) {
26549 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26551 return NDR_ERR_SUCCESS;
26554 _PUBLIC_ void ndr_print_spoolss_FindFirstPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindFirstPrinterChangeNotification *r)
26556 ndr_print_struct(ndr, name, "spoolss_FindFirstPrinterChangeNotification");
26558 if (flags & NDR_SET_VALUES) {
26559 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26561 if (flags & NDR_IN) {
26562 ndr_print_struct(ndr, "in", "spoolss_FindFirstPrinterChangeNotification");
26566 if (flags & NDR_OUT) {
26567 ndr_print_struct(ndr, "out", "spoolss_FindFirstPrinterChangeNotification");
26569 ndr_print_WERROR(ndr, "result", r->out.result);
26575 static enum ndr_err_code ndr_push_spoolss_FindNextPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_FindNextPrinterChangeNotification *r)
26577 if (flags & NDR_IN) {
26579 if (flags & NDR_OUT) {
26580 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26582 return NDR_ERR_SUCCESS;
26585 static enum ndr_err_code ndr_pull_spoolss_FindNextPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_FindNextPrinterChangeNotification *r)
26587 if (flags & NDR_IN) {
26589 if (flags & NDR_OUT) {
26590 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26592 return NDR_ERR_SUCCESS;
26595 _PUBLIC_ void ndr_print_spoolss_FindNextPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindNextPrinterChangeNotification *r)
26597 ndr_print_struct(ndr, name, "spoolss_FindNextPrinterChangeNotification");
26599 if (flags & NDR_SET_VALUES) {
26600 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26602 if (flags & NDR_IN) {
26603 ndr_print_struct(ndr, "in", "spoolss_FindNextPrinterChangeNotification");
26607 if (flags & NDR_OUT) {
26608 ndr_print_struct(ndr, "out", "spoolss_FindNextPrinterChangeNotification");
26610 ndr_print_WERROR(ndr, "result", r->out.result);
26616 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FindClosePrinterNotify(struct ndr_push *ndr, int flags, const struct spoolss_FindClosePrinterNotify *r)
26618 if (flags & NDR_IN) {
26619 if (r->in.handle == NULL) {
26620 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26622 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26624 if (flags & NDR_OUT) {
26625 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26627 return NDR_ERR_SUCCESS;
26630 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FindClosePrinterNotify(struct ndr_pull *ndr, int flags, struct spoolss_FindClosePrinterNotify *r)
26632 TALLOC_CTX *_mem_save_handle_0;
26633 if (flags & NDR_IN) {
26634 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26635 NDR_PULL_ALLOC(ndr, r->in.handle);
26637 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26638 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26639 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26640 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26642 if (flags & NDR_OUT) {
26643 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26645 return NDR_ERR_SUCCESS;
26648 _PUBLIC_ void ndr_print_spoolss_FindClosePrinterNotify(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindClosePrinterNotify *r)
26650 ndr_print_struct(ndr, name, "spoolss_FindClosePrinterNotify");
26652 if (flags & NDR_SET_VALUES) {
26653 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26655 if (flags & NDR_IN) {
26656 ndr_print_struct(ndr, "in", "spoolss_FindClosePrinterNotify");
26658 ndr_print_ptr(ndr, "handle", r->in.handle);
26660 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26664 if (flags & NDR_OUT) {
26665 ndr_print_struct(ndr, "out", "spoolss_FindClosePrinterNotify");
26667 ndr_print_WERROR(ndr, "result", r->out.result);
26673 static enum ndr_err_code ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_push *ndr, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
26675 if (flags & NDR_IN) {
26677 if (flags & NDR_OUT) {
26678 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26680 return NDR_ERR_SUCCESS;
26683 static enum ndr_err_code ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_pull *ndr, int flags, struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
26685 if (flags & NDR_IN) {
26687 if (flags & NDR_OUT) {
26688 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26690 return NDR_ERR_SUCCESS;
26693 _PUBLIC_ void ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
26695 ndr_print_struct(ndr, name, "spoolss_RouterFindFirstPrinterChangeNotificationOld");
26697 if (flags & NDR_SET_VALUES) {
26698 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26700 if (flags & NDR_IN) {
26701 ndr_print_struct(ndr, "in", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
26705 if (flags & NDR_OUT) {
26706 ndr_print_struct(ndr, "out", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
26708 ndr_print_WERROR(ndr, "result", r->out.result);
26714 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ReplyOpenPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReplyOpenPrinter *r)
26716 if (flags & NDR_IN) {
26717 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
26718 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
26719 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
26720 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));
26721 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.printer_local));
26722 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
26723 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
26724 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
26725 if (r->in.buffer) {
26726 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.bufsize));
26727 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.bufsize));
26730 if (flags & NDR_OUT) {
26731 if (r->out.handle == NULL) {
26732 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26734 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
26735 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26737 return NDR_ERR_SUCCESS;
26740 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ReplyOpenPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReplyOpenPrinter *r)
26742 uint32_t _ptr_buffer;
26743 TALLOC_CTX *_mem_save_buffer_0;
26744 TALLOC_CTX *_mem_save_handle_0;
26745 if (flags & NDR_IN) {
26746 ZERO_STRUCT(r->out);
26748 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
26749 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
26750 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
26751 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));
26753 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
26754 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));
26755 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.printer_local));
26756 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
26757 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.bufsize));
26758 if (r->in.bufsize > 512) {
26759 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
26761 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
26763 NDR_PULL_ALLOC(ndr, r->in.buffer);
26765 r->in.buffer = NULL;
26767 if (r->in.buffer) {
26768 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
26769 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
26770 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
26771 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
26772 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
26773 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
26775 NDR_PULL_ALLOC(ndr, r->out.handle);
26776 ZERO_STRUCTP(r->out.handle);
26777 if (r->in.buffer) {
26778 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.bufsize));
26781 if (flags & NDR_OUT) {
26782 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26783 NDR_PULL_ALLOC(ndr, r->out.handle);
26785 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26786 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
26787 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
26788 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26789 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26791 return NDR_ERR_SUCCESS;
26794 _PUBLIC_ void ndr_print_spoolss_ReplyOpenPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReplyOpenPrinter *r)
26796 ndr_print_struct(ndr, name, "spoolss_ReplyOpenPrinter");
26798 if (flags & NDR_SET_VALUES) {
26799 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26801 if (flags & NDR_IN) {
26802 ndr_print_struct(ndr, "in", "spoolss_ReplyOpenPrinter");
26804 ndr_print_string(ndr, "server_name", r->in.server_name);
26805 ndr_print_uint32(ndr, "printer_local", r->in.printer_local);
26806 ndr_print_winreg_Type(ndr, "type", r->in.type);
26807 ndr_print_uint32(ndr, "bufsize", r->in.bufsize);
26808 ndr_print_ptr(ndr, "buffer", r->in.buffer);
26810 if (r->in.buffer) {
26811 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.bufsize);
26816 if (flags & NDR_OUT) {
26817 ndr_print_struct(ndr, "out", "spoolss_ReplyOpenPrinter");
26819 ndr_print_ptr(ndr, "handle", r->out.handle);
26821 ndr_print_policy_handle(ndr, "handle", r->out.handle);
26823 ndr_print_WERROR(ndr, "result", r->out.result);
26829 static enum ndr_err_code ndr_push_spoolss_RouterReplyPrinter(struct ndr_push *ndr, int flags, const struct spoolss_RouterReplyPrinter *r)
26831 if (flags & NDR_IN) {
26832 if (r->in.handle == NULL) {
26833 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26835 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26836 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
26837 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
26838 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
26839 if (r->in.buffer) {
26840 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.bufsize));
26841 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.bufsize));
26844 if (flags & NDR_OUT) {
26845 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26847 return NDR_ERR_SUCCESS;
26850 static enum ndr_err_code ndr_pull_spoolss_RouterReplyPrinter(struct ndr_pull *ndr, int flags, struct spoolss_RouterReplyPrinter *r)
26852 uint32_t _ptr_buffer;
26853 TALLOC_CTX *_mem_save_handle_0;
26854 TALLOC_CTX *_mem_save_buffer_0;
26855 if (flags & NDR_IN) {
26856 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26857 NDR_PULL_ALLOC(ndr, r->in.handle);
26859 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26860 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26861 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26862 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26863 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
26864 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.bufsize));
26865 if (r->in.bufsize > 512) {
26866 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
26868 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
26870 NDR_PULL_ALLOC(ndr, r->in.buffer);
26872 r->in.buffer = NULL;
26874 if (r->in.buffer) {
26875 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
26876 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
26877 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
26878 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
26879 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
26880 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
26882 if (r->in.buffer) {
26883 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.bufsize));
26886 if (flags & NDR_OUT) {
26887 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26889 return NDR_ERR_SUCCESS;
26892 _PUBLIC_ void ndr_print_spoolss_RouterReplyPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterReplyPrinter *r)
26894 ndr_print_struct(ndr, name, "spoolss_RouterReplyPrinter");
26896 if (flags & NDR_SET_VALUES) {
26897 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26899 if (flags & NDR_IN) {
26900 ndr_print_struct(ndr, "in", "spoolss_RouterReplyPrinter");
26902 ndr_print_ptr(ndr, "handle", r->in.handle);
26904 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26906 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
26907 ndr_print_uint32(ndr, "bufsize", r->in.bufsize);
26908 ndr_print_ptr(ndr, "buffer", r->in.buffer);
26910 if (r->in.buffer) {
26911 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.bufsize);
26916 if (flags & NDR_OUT) {
26917 ndr_print_struct(ndr, "out", "spoolss_RouterReplyPrinter");
26919 ndr_print_WERROR(ndr, "result", r->out.result);
26925 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ReplyClosePrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReplyClosePrinter *r)
26927 if (flags & NDR_IN) {
26928 if (r->in.handle == NULL) {
26929 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26931 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26933 if (flags & NDR_OUT) {
26934 if (r->out.handle == NULL) {
26935 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26937 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
26938 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26940 return NDR_ERR_SUCCESS;
26943 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ReplyClosePrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReplyClosePrinter *r)
26945 TALLOC_CTX *_mem_save_handle_0;
26946 if (flags & NDR_IN) {
26947 ZERO_STRUCT(r->out);
26949 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26950 NDR_PULL_ALLOC(ndr, r->in.handle);
26952 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26953 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26954 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26955 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26956 NDR_PULL_ALLOC(ndr, r->out.handle);
26957 *r->out.handle = *r->in.handle;
26959 if (flags & NDR_OUT) {
26960 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26961 NDR_PULL_ALLOC(ndr, r->out.handle);
26963 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26964 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
26965 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
26966 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26967 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26969 return NDR_ERR_SUCCESS;
26972 _PUBLIC_ void ndr_print_spoolss_ReplyClosePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReplyClosePrinter *r)
26974 ndr_print_struct(ndr, name, "spoolss_ReplyClosePrinter");
26976 if (flags & NDR_SET_VALUES) {
26977 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26979 if (flags & NDR_IN) {
26980 ndr_print_struct(ndr, "in", "spoolss_ReplyClosePrinter");
26982 ndr_print_ptr(ndr, "handle", r->in.handle);
26984 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26988 if (flags & NDR_OUT) {
26989 ndr_print_struct(ndr, "out", "spoolss_ReplyClosePrinter");
26991 ndr_print_ptr(ndr, "handle", r->out.handle);
26993 ndr_print_policy_handle(ndr, "handle", r->out.handle);
26995 ndr_print_WERROR(ndr, "result", r->out.result);
27001 static enum ndr_err_code ndr_push_spoolss_AddPortEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPortEx *r)
27003 if (flags & NDR_IN) {
27005 if (flags & NDR_OUT) {
27006 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27008 return NDR_ERR_SUCCESS;
27011 static enum ndr_err_code ndr_pull_spoolss_AddPortEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPortEx *r)
27013 if (flags & NDR_IN) {
27015 if (flags & NDR_OUT) {
27016 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27018 return NDR_ERR_SUCCESS;
27021 _PUBLIC_ void ndr_print_spoolss_AddPortEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPortEx *r)
27023 ndr_print_struct(ndr, name, "spoolss_AddPortEx");
27025 if (flags & NDR_SET_VALUES) {
27026 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27028 if (flags & NDR_IN) {
27029 ndr_print_struct(ndr, "in", "spoolss_AddPortEx");
27033 if (flags & NDR_OUT) {
27034 ndr_print_struct(ndr, "out", "spoolss_AddPortEx");
27036 ndr_print_WERROR(ndr, "result", r->out.result);
27042 static enum ndr_err_code ndr_push_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotification *r)
27044 if (flags & NDR_IN) {
27046 if (flags & NDR_OUT) {
27047 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27049 return NDR_ERR_SUCCESS;
27052 static enum ndr_err_code ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_RouterFindFirstPrinterChangeNotification *r)
27054 if (flags & NDR_IN) {
27056 if (flags & NDR_OUT) {
27057 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27059 return NDR_ERR_SUCCESS;
27062 _PUBLIC_ void ndr_print_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotification *r)
27064 ndr_print_struct(ndr, name, "spoolss_RouterFindFirstPrinterChangeNotification");
27066 if (flags & NDR_SET_VALUES) {
27067 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27069 if (flags & NDR_IN) {
27070 ndr_print_struct(ndr, "in", "spoolss_RouterFindFirstPrinterChangeNotification");
27074 if (flags & NDR_OUT) {
27075 ndr_print_struct(ndr, "out", "spoolss_RouterFindFirstPrinterChangeNotification");
27077 ndr_print_WERROR(ndr, "result", r->out.result);
27083 static enum ndr_err_code ndr_push_spoolss_SpoolerInit(struct ndr_push *ndr, int flags, const struct spoolss_SpoolerInit *r)
27085 if (flags & NDR_IN) {
27087 if (flags & NDR_OUT) {
27088 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27090 return NDR_ERR_SUCCESS;
27093 static enum ndr_err_code ndr_pull_spoolss_SpoolerInit(struct ndr_pull *ndr, int flags, struct spoolss_SpoolerInit *r)
27095 if (flags & NDR_IN) {
27097 if (flags & NDR_OUT) {
27098 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27100 return NDR_ERR_SUCCESS;
27103 _PUBLIC_ void ndr_print_spoolss_SpoolerInit(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SpoolerInit *r)
27105 ndr_print_struct(ndr, name, "spoolss_SpoolerInit");
27107 if (flags & NDR_SET_VALUES) {
27108 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27110 if (flags & NDR_IN) {
27111 ndr_print_struct(ndr, "in", "spoolss_SpoolerInit");
27115 if (flags & NDR_OUT) {
27116 ndr_print_struct(ndr, "out", "spoolss_SpoolerInit");
27118 ndr_print_WERROR(ndr, "result", r->out.result);
27124 static enum ndr_err_code ndr_push_spoolss_ResetPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_ResetPrinterEx *r)
27126 if (flags & NDR_IN) {
27128 if (flags & NDR_OUT) {
27129 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27131 return NDR_ERR_SUCCESS;
27134 static enum ndr_err_code ndr_pull_spoolss_ResetPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_ResetPrinterEx *r)
27136 if (flags & NDR_IN) {
27138 if (flags & NDR_OUT) {
27139 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27141 return NDR_ERR_SUCCESS;
27144 _PUBLIC_ void ndr_print_spoolss_ResetPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ResetPrinterEx *r)
27146 ndr_print_struct(ndr, name, "spoolss_ResetPrinterEx");
27148 if (flags & NDR_SET_VALUES) {
27149 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27151 if (flags & NDR_IN) {
27152 ndr_print_struct(ndr, "in", "spoolss_ResetPrinterEx");
27156 if (flags & NDR_OUT) {
27157 ndr_print_struct(ndr, "out", "spoolss_ResetPrinterEx");
27159 ndr_print_WERROR(ndr, "result", r->out.result);
27165 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_push *ndr, int flags, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
27167 if (flags & NDR_IN) {
27168 if (r->in.handle == NULL) {
27169 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27171 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27172 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
27173 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.options));
27174 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.local_machine));
27175 if (r->in.local_machine) {
27176 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.local_machine, CH_UTF16)));
27177 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27178 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.local_machine, CH_UTF16)));
27179 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));
27181 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.printer_local));
27182 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.notify_options));
27183 if (r->in.notify_options) {
27184 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.notify_options));
27187 if (flags & NDR_OUT) {
27188 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27190 return NDR_ERR_SUCCESS;
27193 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_pull *ndr, int flags, struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
27195 uint32_t _ptr_local_machine;
27196 uint32_t _ptr_notify_options;
27197 TALLOC_CTX *_mem_save_handle_0;
27198 TALLOC_CTX *_mem_save_local_machine_0;
27199 TALLOC_CTX *_mem_save_notify_options_0;
27200 if (flags & NDR_IN) {
27201 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27202 NDR_PULL_ALLOC(ndr, r->in.handle);
27204 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27205 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27206 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27207 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27208 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
27209 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.options));
27210 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_local_machine));
27211 if (_ptr_local_machine) {
27212 NDR_PULL_ALLOC(ndr, r->in.local_machine);
27214 r->in.local_machine = NULL;
27216 if (r->in.local_machine) {
27217 _mem_save_local_machine_0 = NDR_PULL_GET_MEM_CTX(ndr);
27218 NDR_PULL_SET_MEM_CTX(ndr, r->in.local_machine, 0);
27219 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.local_machine));
27220 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.local_machine));
27221 if (ndr_get_array_length(ndr, &r->in.local_machine) > ndr_get_array_size(ndr, &r->in.local_machine)) {
27222 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));
27224 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.local_machine), sizeof(uint16_t)));
27225 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));
27226 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_local_machine_0, 0);
27228 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.printer_local));
27229 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_options));
27230 if (_ptr_notify_options) {
27231 NDR_PULL_ALLOC(ndr, r->in.notify_options);
27233 r->in.notify_options = NULL;
27235 if (r->in.notify_options) {
27236 _mem_save_notify_options_0 = NDR_PULL_GET_MEM_CTX(ndr);
27237 NDR_PULL_SET_MEM_CTX(ndr, r->in.notify_options, 0);
27238 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.notify_options));
27239 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_options_0, 0);
27242 if (flags & NDR_OUT) {
27243 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27245 return NDR_ERR_SUCCESS;
27248 _PUBLIC_ void ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
27250 ndr_print_struct(ndr, name, "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
27252 if (flags & NDR_SET_VALUES) {
27253 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27255 if (flags & NDR_IN) {
27256 ndr_print_struct(ndr, "in", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
27258 ndr_print_ptr(ndr, "handle", r->in.handle);
27260 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27262 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
27263 ndr_print_uint32(ndr, "options", r->in.options);
27264 ndr_print_ptr(ndr, "local_machine", r->in.local_machine);
27266 if (r->in.local_machine) {
27267 ndr_print_string(ndr, "local_machine", r->in.local_machine);
27270 ndr_print_uint32(ndr, "printer_local", r->in.printer_local);
27271 ndr_print_ptr(ndr, "notify_options", r->in.notify_options);
27273 if (r->in.notify_options) {
27274 ndr_print_spoolss_NotifyOption(ndr, "notify_options", r->in.notify_options);
27279 if (flags & NDR_OUT) {
27280 ndr_print_struct(ndr, "out", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
27282 ndr_print_WERROR(ndr, "result", r->out.result);
27288 static enum ndr_err_code ndr_push_spoolss_RouterReplyPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_RouterReplyPrinterEx *r)
27290 if (flags & NDR_IN) {
27291 if (r->in.handle == NULL) {
27292 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27294 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27295 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.color));
27296 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
27297 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.reply_type));
27298 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.reply_type));
27299 NDR_CHECK(ndr_push_spoolss_ReplyPrinterInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
27301 if (flags & NDR_OUT) {
27302 if (r->out.reply_result == NULL) {
27303 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27305 NDR_CHECK(ndr_push_spoolss_PrinterNotifyFlags(ndr, NDR_SCALARS, *r->out.reply_result));
27306 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27308 return NDR_ERR_SUCCESS;
27311 static enum ndr_err_code ndr_pull_spoolss_RouterReplyPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_RouterReplyPrinterEx *r)
27313 TALLOC_CTX *_mem_save_handle_0;
27314 TALLOC_CTX *_mem_save_reply_result_0;
27315 if (flags & NDR_IN) {
27316 ZERO_STRUCT(r->out);
27318 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27319 NDR_PULL_ALLOC(ndr, r->in.handle);
27321 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27322 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27323 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27324 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27325 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.color));
27326 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
27327 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.reply_type));
27328 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.reply_type));
27329 NDR_CHECK(ndr_pull_spoolss_ReplyPrinterInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
27330 NDR_PULL_ALLOC(ndr, r->out.reply_result);
27331 ZERO_STRUCTP(r->out.reply_result);
27333 if (flags & NDR_OUT) {
27334 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27335 NDR_PULL_ALLOC(ndr, r->out.reply_result);
27337 _mem_save_reply_result_0 = NDR_PULL_GET_MEM_CTX(ndr);
27338 NDR_PULL_SET_MEM_CTX(ndr, r->out.reply_result, LIBNDR_FLAG_REF_ALLOC);
27339 NDR_CHECK(ndr_pull_spoolss_PrinterNotifyFlags(ndr, NDR_SCALARS, r->out.reply_result));
27340 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_reply_result_0, LIBNDR_FLAG_REF_ALLOC);
27341 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27343 return NDR_ERR_SUCCESS;
27346 _PUBLIC_ void ndr_print_spoolss_RouterReplyPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterReplyPrinterEx *r)
27348 ndr_print_struct(ndr, name, "spoolss_RouterReplyPrinterEx");
27350 if (flags & NDR_SET_VALUES) {
27351 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27353 if (flags & NDR_IN) {
27354 ndr_print_struct(ndr, "in", "spoolss_RouterReplyPrinterEx");
27356 ndr_print_ptr(ndr, "handle", r->in.handle);
27358 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27360 ndr_print_uint32(ndr, "color", r->in.color);
27361 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
27362 ndr_print_uint32(ndr, "reply_type", r->in.reply_type);
27363 ndr_print_set_switch_value(ndr, &r->in.info, r->in.reply_type);
27364 ndr_print_spoolss_ReplyPrinterInfo(ndr, "info", &r->in.info);
27367 if (flags & NDR_OUT) {
27368 ndr_print_struct(ndr, "out", "spoolss_RouterReplyPrinterEx");
27370 ndr_print_ptr(ndr, "reply_result", r->out.reply_result);
27372 ndr_print_spoolss_PrinterNotifyFlags(ndr, "reply_result", *r->out.reply_result);
27374 ndr_print_WERROR(ndr, "result", r->out.result);
27380 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_push *ndr, int flags, const struct spoolss_RouterRefreshPrinterChangeNotify *r)
27382 if (flags & NDR_IN) {
27383 if (r->in.handle == NULL) {
27384 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27386 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27387 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.change_low));
27388 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.options));
27389 if (r->in.options) {
27390 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.options));
27393 if (flags & NDR_OUT) {
27394 if (r->out.info == NULL) {
27395 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27397 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
27398 if (*r->out.info) {
27399 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
27401 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27403 return NDR_ERR_SUCCESS;
27406 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_pull *ndr, int flags, struct spoolss_RouterRefreshPrinterChangeNotify *r)
27408 uint32_t _ptr_options;
27409 uint32_t _ptr_info;
27410 TALLOC_CTX *_mem_save_handle_0;
27411 TALLOC_CTX *_mem_save_options_0;
27412 TALLOC_CTX *_mem_save_info_0;
27413 TALLOC_CTX *_mem_save_info_1;
27414 if (flags & NDR_IN) {
27415 ZERO_STRUCT(r->out);
27417 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27418 NDR_PULL_ALLOC(ndr, r->in.handle);
27420 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27421 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27422 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27423 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27424 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.change_low));
27425 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_options));
27426 if (_ptr_options) {
27427 NDR_PULL_ALLOC(ndr, r->in.options);
27429 r->in.options = NULL;
27431 if (r->in.options) {
27432 _mem_save_options_0 = NDR_PULL_GET_MEM_CTX(ndr);
27433 NDR_PULL_SET_MEM_CTX(ndr, r->in.options, 0);
27434 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.options));
27435 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_options_0, 0);
27437 NDR_PULL_ALLOC(ndr, r->out.info);
27438 ZERO_STRUCTP(r->out.info);
27440 if (flags & NDR_OUT) {
27441 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27442 NDR_PULL_ALLOC(ndr, r->out.info);
27444 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
27445 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
27446 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
27448 NDR_PULL_ALLOC(ndr, *r->out.info);
27450 *r->out.info = NULL;
27452 if (*r->out.info) {
27453 _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
27454 NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
27455 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
27456 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
27458 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
27459 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27461 return NDR_ERR_SUCCESS;
27464 _PUBLIC_ void ndr_print_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterRefreshPrinterChangeNotify *r)
27466 ndr_print_struct(ndr, name, "spoolss_RouterRefreshPrinterChangeNotify");
27468 if (flags & NDR_SET_VALUES) {
27469 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27471 if (flags & NDR_IN) {
27472 ndr_print_struct(ndr, "in", "spoolss_RouterRefreshPrinterChangeNotify");
27474 ndr_print_ptr(ndr, "handle", r->in.handle);
27476 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27478 ndr_print_uint32(ndr, "change_low", r->in.change_low);
27479 ndr_print_ptr(ndr, "options", r->in.options);
27481 if (r->in.options) {
27482 ndr_print_spoolss_NotifyOption(ndr, "options", r->in.options);
27487 if (flags & NDR_OUT) {
27488 ndr_print_struct(ndr, "out", "spoolss_RouterRefreshPrinterChangeNotify");
27490 ndr_print_ptr(ndr, "info", r->out.info);
27492 ndr_print_ptr(ndr, "info", *r->out.info);
27494 if (*r->out.info) {
27495 ndr_print_spoolss_NotifyInfo(ndr, "info", *r->out.info);
27499 ndr_print_WERROR(ndr, "result", r->out.result);
27505 static enum ndr_err_code ndr_push_spoolss_44(struct ndr_push *ndr, int flags, const struct spoolss_44 *r)
27507 if (flags & NDR_IN) {
27509 if (flags & NDR_OUT) {
27510 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27512 return NDR_ERR_SUCCESS;
27515 static enum ndr_err_code ndr_pull_spoolss_44(struct ndr_pull *ndr, int flags, struct spoolss_44 *r)
27517 if (flags & NDR_IN) {
27519 if (flags & NDR_OUT) {
27520 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27522 return NDR_ERR_SUCCESS;
27525 _PUBLIC_ void ndr_print_spoolss_44(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_44 *r)
27527 ndr_print_struct(ndr, name, "spoolss_44");
27529 if (flags & NDR_SET_VALUES) {
27530 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27532 if (flags & NDR_IN) {
27533 ndr_print_struct(ndr, "in", "spoolss_44");
27537 if (flags & NDR_OUT) {
27538 ndr_print_struct(ndr, "out", "spoolss_44");
27540 ndr_print_WERROR(ndr, "result", r->out.result);
27546 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OpenPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_OpenPrinterEx *r)
27548 if (flags & NDR_IN) {
27549 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.printername));
27550 if (r->in.printername) {
27551 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
27552 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27553 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
27554 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
27556 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.datatype));
27557 if (r->in.datatype) {
27558 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
27559 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27560 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
27561 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.datatype, ndr_charset_length(r->in.datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
27563 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
27564 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr, NDR_SCALARS, r->in.access_mask));
27565 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
27566 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.userlevel, r->in.level));
27567 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.userlevel));
27569 if (flags & NDR_OUT) {
27570 if (r->out.handle == NULL) {
27571 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27573 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
27574 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27576 return NDR_ERR_SUCCESS;
27579 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OpenPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_OpenPrinterEx *r)
27581 uint32_t _ptr_printername;
27582 uint32_t _ptr_datatype;
27583 TALLOC_CTX *_mem_save_printername_0;
27584 TALLOC_CTX *_mem_save_datatype_0;
27585 TALLOC_CTX *_mem_save_handle_0;
27586 if (flags & NDR_IN) {
27587 ZERO_STRUCT(r->out);
27589 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
27590 if (_ptr_printername) {
27591 NDR_PULL_ALLOC(ndr, r->in.printername);
27593 r->in.printername = NULL;
27595 if (r->in.printername) {
27596 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
27597 NDR_PULL_SET_MEM_CTX(ndr, r->in.printername, 0);
27598 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
27599 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
27600 if (ndr_get_array_length(ndr, &r->in.printername) > ndr_get_array_size(ndr, &r->in.printername)) {
27601 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));
27603 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t)));
27604 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t), CH_UTF16));
27605 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
27607 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
27608 if (_ptr_datatype) {
27609 NDR_PULL_ALLOC(ndr, r->in.datatype);
27611 r->in.datatype = NULL;
27613 if (r->in.datatype) {
27614 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
27615 NDR_PULL_SET_MEM_CTX(ndr, r->in.datatype, 0);
27616 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.datatype));
27617 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.datatype));
27618 if (ndr_get_array_length(ndr, &r->in.datatype) > ndr_get_array_size(ndr, &r->in.datatype)) {
27619 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));
27621 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t)));
27622 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t), CH_UTF16));
27623 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
27625 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
27626 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr, NDR_SCALARS, &r->in.access_mask));
27627 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
27628 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.userlevel, r->in.level));
27629 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.userlevel));
27630 NDR_PULL_ALLOC(ndr, r->out.handle);
27631 ZERO_STRUCTP(r->out.handle);
27633 if (flags & NDR_OUT) {
27634 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27635 NDR_PULL_ALLOC(ndr, r->out.handle);
27637 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27638 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
27639 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
27640 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27641 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27643 return NDR_ERR_SUCCESS;
27646 _PUBLIC_ void ndr_print_spoolss_OpenPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_OpenPrinterEx *r)
27648 ndr_print_struct(ndr, name, "spoolss_OpenPrinterEx");
27650 if (flags & NDR_SET_VALUES) {
27651 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27653 if (flags & NDR_IN) {
27654 ndr_print_struct(ndr, "in", "spoolss_OpenPrinterEx");
27656 ndr_print_ptr(ndr, "printername", r->in.printername);
27658 if (r->in.printername) {
27659 ndr_print_string(ndr, "printername", r->in.printername);
27662 ndr_print_ptr(ndr, "datatype", r->in.datatype);
27664 if (r->in.datatype) {
27665 ndr_print_string(ndr, "datatype", r->in.datatype);
27668 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", &r->in.devmode_ctr);
27669 ndr_print_spoolss_AccessRights(ndr, "access_mask", r->in.access_mask);
27670 ndr_print_uint32(ndr, "level", r->in.level);
27671 ndr_print_set_switch_value(ndr, &r->in.userlevel, r->in.level);
27672 ndr_print_spoolss_UserLevel(ndr, "userlevel", &r->in.userlevel);
27675 if (flags & NDR_OUT) {
27676 ndr_print_struct(ndr, "out", "spoolss_OpenPrinterEx");
27678 ndr_print_ptr(ndr, "handle", r->out.handle);
27680 ndr_print_policy_handle(ndr, "handle", r->out.handle);
27682 ndr_print_WERROR(ndr, "result", r->out.result);
27688 static enum ndr_err_code ndr_push_spoolss_AddPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterEx *r)
27690 if (flags & NDR_IN) {
27691 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
27692 if (r->in.server) {
27693 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
27694 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27695 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
27696 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
27698 if (r->in.info_ctr == NULL) {
27699 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27701 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
27702 if (r->in.devmode_ctr == NULL) {
27703 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27705 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
27706 if (r->in.secdesc_ctr == NULL) {
27707 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27709 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
27710 if (r->in.userlevel_ctr == NULL) {
27711 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27713 NDR_CHECK(ndr_push_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.userlevel_ctr));
27715 if (flags & NDR_OUT) {
27716 if (r->out.handle == NULL) {
27717 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27719 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
27720 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27722 return NDR_ERR_SUCCESS;
27725 static enum ndr_err_code ndr_pull_spoolss_AddPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterEx *r)
27727 uint32_t _ptr_server;
27728 TALLOC_CTX *_mem_save_server_0;
27729 TALLOC_CTX *_mem_save_info_ctr_0;
27730 TALLOC_CTX *_mem_save_devmode_ctr_0;
27731 TALLOC_CTX *_mem_save_secdesc_ctr_0;
27732 TALLOC_CTX *_mem_save_userlevel_ctr_0;
27733 TALLOC_CTX *_mem_save_handle_0;
27734 if (flags & NDR_IN) {
27735 ZERO_STRUCT(r->out);
27737 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
27739 NDR_PULL_ALLOC(ndr, r->in.server);
27741 r->in.server = NULL;
27743 if (r->in.server) {
27744 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
27745 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
27746 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
27747 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
27748 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
27749 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));
27751 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
27752 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
27753 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
27755 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27756 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
27758 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
27759 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
27760 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
27761 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
27762 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27763 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
27765 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
27766 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
27767 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
27768 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
27769 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27770 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
27772 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
27773 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
27774 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
27775 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
27776 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27777 NDR_PULL_ALLOC(ndr, r->in.userlevel_ctr);
27779 _mem_save_userlevel_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
27780 NDR_PULL_SET_MEM_CTX(ndr, r->in.userlevel_ctr, LIBNDR_FLAG_REF_ALLOC);
27781 NDR_CHECK(ndr_pull_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.userlevel_ctr));
27782 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_userlevel_ctr_0, LIBNDR_FLAG_REF_ALLOC);
27783 NDR_PULL_ALLOC(ndr, r->out.handle);
27784 ZERO_STRUCTP(r->out.handle);
27786 if (flags & NDR_OUT) {
27787 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27788 NDR_PULL_ALLOC(ndr, r->out.handle);
27790 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27791 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
27792 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
27793 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27794 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27796 return NDR_ERR_SUCCESS;
27799 _PUBLIC_ void ndr_print_spoolss_AddPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterEx *r)
27801 ndr_print_struct(ndr, name, "spoolss_AddPrinterEx");
27803 if (flags & NDR_SET_VALUES) {
27804 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27806 if (flags & NDR_IN) {
27807 ndr_print_struct(ndr, "in", "spoolss_AddPrinterEx");
27809 ndr_print_ptr(ndr, "server", r->in.server);
27811 if (r->in.server) {
27812 ndr_print_string(ndr, "server", r->in.server);
27815 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
27817 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
27819 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
27821 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
27823 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
27825 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
27827 ndr_print_ptr(ndr, "userlevel_ctr", r->in.userlevel_ctr);
27829 ndr_print_spoolss_UserLevelCtr(ndr, "userlevel_ctr", r->in.userlevel_ctr);
27833 if (flags & NDR_OUT) {
27834 ndr_print_struct(ndr, "out", "spoolss_AddPrinterEx");
27836 ndr_print_ptr(ndr, "handle", r->out.handle);
27838 ndr_print_policy_handle(ndr, "handle", r->out.handle);
27840 ndr_print_WERROR(ndr, "result", r->out.result);
27846 static enum ndr_err_code ndr_push_spoolss_47(struct ndr_push *ndr, int flags, const struct spoolss_47 *r)
27848 if (flags & NDR_IN) {
27850 if (flags & NDR_OUT) {
27851 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27853 return NDR_ERR_SUCCESS;
27856 static enum ndr_err_code ndr_pull_spoolss_47(struct ndr_pull *ndr, int flags, struct spoolss_47 *r)
27858 if (flags & NDR_IN) {
27860 if (flags & NDR_OUT) {
27861 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27863 return NDR_ERR_SUCCESS;
27866 _PUBLIC_ void ndr_print_spoolss_47(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_47 *r)
27868 ndr_print_struct(ndr, name, "spoolss_47");
27870 if (flags & NDR_SET_VALUES) {
27871 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27873 if (flags & NDR_IN) {
27874 ndr_print_struct(ndr, "in", "spoolss_47");
27878 if (flags & NDR_OUT) {
27879 ndr_print_struct(ndr, "out", "spoolss_47");
27881 ndr_print_WERROR(ndr, "result", r->out.result);
27887 static enum ndr_err_code ndr_push_spoolss_EnumPrinterData(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterData *r)
27889 if (flags & NDR_IN) {
27890 if (r->in.handle == NULL) {
27891 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27893 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27894 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.enum_index));
27895 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.value_offered));
27896 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_offered));
27898 if (flags & NDR_OUT) {
27899 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.value_offered / 2));
27900 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->out.value_name, r->in.value_offered / 2, sizeof(uint16_t), CH_UTF16));
27901 if (r->out.value_needed == NULL) {
27902 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27904 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.value_needed));
27905 if (r->out.type == NULL) {
27906 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27908 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
27910 uint32_t _flags_save_uint8 = ndr->flags;
27911 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
27912 if (r->out.data == NULL) {
27913 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27915 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.data_offered));
27916 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->in.data_offered));
27917 ndr->flags = _flags_save_uint8;
27919 if (r->out.data_needed == NULL) {
27920 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27922 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.data_needed));
27923 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27925 return NDR_ERR_SUCCESS;
27928 static enum ndr_err_code ndr_pull_spoolss_EnumPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterData *r)
27930 TALLOC_CTX *_mem_save_handle_0;
27931 TALLOC_CTX *_mem_save_value_needed_0;
27932 TALLOC_CTX *_mem_save_type_0;
27933 TALLOC_CTX *_mem_save_data_needed_0;
27934 if (flags & NDR_IN) {
27935 ZERO_STRUCT(r->out);
27937 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27938 NDR_PULL_ALLOC(ndr, r->in.handle);
27940 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27941 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27942 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27943 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27944 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.enum_index));
27945 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.value_offered));
27946 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_offered));
27947 NDR_PULL_ALLOC(ndr, r->out.value_needed);
27948 ZERO_STRUCTP(r->out.value_needed);
27949 NDR_PULL_ALLOC(ndr, r->out.type);
27950 ZERO_STRUCTP(r->out.type);
27951 NDR_PULL_ALLOC_N(ndr, r->out.data, r->in.data_offered);
27952 memset(r->out.data, 0, (r->in.data_offered) * sizeof(*r->out.data));
27953 NDR_PULL_ALLOC(ndr, r->out.data_needed);
27954 ZERO_STRUCTP(r->out.data_needed);
27956 if (flags & NDR_OUT) {
27957 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.value_name));
27958 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));
27959 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27960 NDR_PULL_ALLOC(ndr, r->out.value_needed);
27962 _mem_save_value_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
27963 NDR_PULL_SET_MEM_CTX(ndr, r->out.value_needed, LIBNDR_FLAG_REF_ALLOC);
27964 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.value_needed));
27965 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_needed_0, LIBNDR_FLAG_REF_ALLOC);
27966 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27967 NDR_PULL_ALLOC(ndr, r->out.type);
27969 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
27970 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
27971 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
27972 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
27974 uint32_t _flags_save_uint8 = ndr->flags;
27975 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
27976 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
27977 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27978 NDR_PULL_ALLOC_N(ndr, r->out.data, ndr_get_array_size(ndr, &r->out.data));
27980 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, ndr_get_array_size(ndr, &r->out.data)));
27981 ndr->flags = _flags_save_uint8;
27983 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27984 NDR_PULL_ALLOC(ndr, r->out.data_needed);
27986 _mem_save_data_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
27987 NDR_PULL_SET_MEM_CTX(ndr, r->out.data_needed, LIBNDR_FLAG_REF_ALLOC);
27988 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.data_needed));
27989 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_needed_0, LIBNDR_FLAG_REF_ALLOC);
27990 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27991 if (r->out.value_name) {
27992 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.value_name, r->in.value_offered / 2));
27995 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, r->in.data_offered));
27998 return NDR_ERR_SUCCESS;
28001 _PUBLIC_ void ndr_print_spoolss_EnumPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterData *r)
28003 ndr_print_struct(ndr, name, "spoolss_EnumPrinterData");
28005 if (flags & NDR_SET_VALUES) {
28006 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28008 if (flags & NDR_IN) {
28009 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterData");
28011 ndr_print_ptr(ndr, "handle", r->in.handle);
28013 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28015 ndr_print_uint32(ndr, "enum_index", r->in.enum_index);
28016 ndr_print_uint32(ndr, "value_offered", r->in.value_offered);
28017 ndr_print_uint32(ndr, "data_offered", r->in.data_offered);
28020 if (flags & NDR_OUT) {
28021 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterData");
28023 ndr_print_string(ndr, "value_name", r->out.value_name);
28024 ndr_print_ptr(ndr, "value_needed", r->out.value_needed);
28026 ndr_print_uint32(ndr, "value_needed", *r->out.value_needed);
28028 ndr_print_ptr(ndr, "type", r->out.type);
28030 ndr_print_winreg_Type(ndr, "type", *r->out.type);
28032 ndr_print_ptr(ndr, "data", r->out.data);
28034 ndr_print_array_uint8(ndr, "data", r->out.data, r->in.data_offered);
28036 ndr_print_ptr(ndr, "data_needed", r->out.data_needed);
28038 ndr_print_uint32(ndr, "data_needed", *r->out.data_needed);
28040 ndr_print_WERROR(ndr, "result", r->out.result);
28046 static enum ndr_err_code ndr_push_spoolss_DeletePrinterData(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterData *r)
28048 if (flags & NDR_IN) {
28049 if (r->in.handle == NULL) {
28050 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28052 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28053 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
28054 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28055 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
28056 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));
28058 if (flags & NDR_OUT) {
28059 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28061 return NDR_ERR_SUCCESS;
28064 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterData(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterData *r)
28066 TALLOC_CTX *_mem_save_handle_0;
28067 if (flags & NDR_IN) {
28068 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28069 NDR_PULL_ALLOC(ndr, r->in.handle);
28071 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28072 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
28073 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28074 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28075 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
28076 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
28077 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
28078 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));
28080 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
28081 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));
28083 if (flags & NDR_OUT) {
28084 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28086 return NDR_ERR_SUCCESS;
28089 _PUBLIC_ void ndr_print_spoolss_DeletePrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterData *r)
28091 ndr_print_struct(ndr, name, "spoolss_DeletePrinterData");
28093 if (flags & NDR_SET_VALUES) {
28094 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28096 if (flags & NDR_IN) {
28097 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterData");
28099 ndr_print_ptr(ndr, "handle", r->in.handle);
28101 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28103 ndr_print_string(ndr, "value_name", r->in.value_name);
28106 if (flags & NDR_OUT) {
28107 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterData");
28109 ndr_print_WERROR(ndr, "result", r->out.result);
28115 static enum ndr_err_code ndr_push_spoolss_4a(struct ndr_push *ndr, int flags, const struct spoolss_4a *r)
28117 if (flags & NDR_IN) {
28119 if (flags & NDR_OUT) {
28120 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28122 return NDR_ERR_SUCCESS;
28125 static enum ndr_err_code ndr_pull_spoolss_4a(struct ndr_pull *ndr, int flags, struct spoolss_4a *r)
28127 if (flags & NDR_IN) {
28129 if (flags & NDR_OUT) {
28130 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28132 return NDR_ERR_SUCCESS;
28135 _PUBLIC_ void ndr_print_spoolss_4a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4a *r)
28137 ndr_print_struct(ndr, name, "spoolss_4a");
28139 if (flags & NDR_SET_VALUES) {
28140 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28142 if (flags & NDR_IN) {
28143 ndr_print_struct(ndr, "in", "spoolss_4a");
28147 if (flags & NDR_OUT) {
28148 ndr_print_struct(ndr, "out", "spoolss_4a");
28150 ndr_print_WERROR(ndr, "result", r->out.result);
28156 static enum ndr_err_code ndr_push_spoolss_4b(struct ndr_push *ndr, int flags, const struct spoolss_4b *r)
28158 if (flags & NDR_IN) {
28160 if (flags & NDR_OUT) {
28161 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28163 return NDR_ERR_SUCCESS;
28166 static enum ndr_err_code ndr_pull_spoolss_4b(struct ndr_pull *ndr, int flags, struct spoolss_4b *r)
28168 if (flags & NDR_IN) {
28170 if (flags & NDR_OUT) {
28171 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28173 return NDR_ERR_SUCCESS;
28176 _PUBLIC_ void ndr_print_spoolss_4b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4b *r)
28178 ndr_print_struct(ndr, name, "spoolss_4b");
28180 if (flags & NDR_SET_VALUES) {
28181 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28183 if (flags & NDR_IN) {
28184 ndr_print_struct(ndr, "in", "spoolss_4b");
28188 if (flags & NDR_OUT) {
28189 ndr_print_struct(ndr, "out", "spoolss_4b");
28191 ndr_print_WERROR(ndr, "result", r->out.result);
28197 static enum ndr_err_code ndr_push_spoolss_4c(struct ndr_push *ndr, int flags, const struct spoolss_4c *r)
28199 if (flags & NDR_IN) {
28201 if (flags & NDR_OUT) {
28202 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28204 return NDR_ERR_SUCCESS;
28207 static enum ndr_err_code ndr_pull_spoolss_4c(struct ndr_pull *ndr, int flags, struct spoolss_4c *r)
28209 if (flags & NDR_IN) {
28211 if (flags & NDR_OUT) {
28212 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28214 return NDR_ERR_SUCCESS;
28217 _PUBLIC_ void ndr_print_spoolss_4c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4c *r)
28219 ndr_print_struct(ndr, name, "spoolss_4c");
28221 if (flags & NDR_SET_VALUES) {
28222 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28224 if (flags & NDR_IN) {
28225 ndr_print_struct(ndr, "in", "spoolss_4c");
28229 if (flags & NDR_OUT) {
28230 ndr_print_struct(ndr, "out", "spoolss_4c");
28232 ndr_print_WERROR(ndr, "result", r->out.result);
28238 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_SetPrinterDataEx(struct ndr_push *ndr, int flags, const struct _spoolss_SetPrinterDataEx *r)
28240 if (flags & NDR_IN) {
28241 if (r->in.handle == NULL) {
28242 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28244 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28245 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28246 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28247 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28248 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));
28249 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
28250 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28251 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
28252 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));
28253 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
28254 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
28255 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in._offered));
28257 if (flags & NDR_OUT) {
28258 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28260 return NDR_ERR_SUCCESS;
28263 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_SetPrinterDataEx(struct ndr_push *ndr, int flags, const struct __spoolss_SetPrinterDataEx *r)
28265 if (flags & NDR_IN) {
28266 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
28268 if (flags & NDR_OUT) {
28269 if (r->out.data == NULL) {
28270 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28272 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.data, r->in.type));
28273 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
28275 return NDR_ERR_SUCCESS;
28278 static enum ndr_err_code ndr_pull_spoolss_SetPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinterDataEx *r)
28280 TALLOC_CTX *_mem_save_handle_0;
28281 if (flags & NDR_IN) {
28282 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28283 NDR_PULL_ALLOC(ndr, r->in.handle);
28285 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28286 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
28287 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28288 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28289 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
28290 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
28291 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
28292 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));
28294 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
28295 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));
28296 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
28297 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
28298 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
28299 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));
28301 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
28302 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));
28303 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
28305 struct ndr_pull *_ndr_data;
28306 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_data, 4, -1));
28307 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data, &r->in.data, r->in.type));
28308 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
28309 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_data, 4, -1));
28311 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._offered));
28313 if (flags & NDR_OUT) {
28314 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28316 return NDR_ERR_SUCCESS;
28319 _PUBLIC_ void ndr_print_spoolss_SetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinterDataEx *r)
28321 ndr_print_struct(ndr, name, "spoolss_SetPrinterDataEx");
28323 if (flags & NDR_SET_VALUES) {
28324 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28326 if (flags & NDR_IN) {
28327 ndr_print_struct(ndr, "in", "spoolss_SetPrinterDataEx");
28329 ndr_print_ptr(ndr, "handle", r->in.handle);
28331 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28333 ndr_print_string(ndr, "key_name", r->in.key_name);
28334 ndr_print_string(ndr, "value_name", r->in.value_name);
28335 ndr_print_winreg_Type(ndr, "type", r->in.type);
28336 ndr_print_set_switch_value(ndr, &r->in.data, r->in.type);
28337 ndr_print_spoolss_PrinterData(ndr, "data", &r->in.data);
28338 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);
28341 if (flags & NDR_OUT) {
28342 ndr_print_struct(ndr, "out", "spoolss_SetPrinterDataEx");
28344 ndr_print_WERROR(ndr, "result", r->out.result);
28350 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_GetPrinterDataEx(struct ndr_push *ndr, int flags, const struct _spoolss_GetPrinterDataEx *r)
28352 if (flags & NDR_IN) {
28353 if (r->in.handle == NULL) {
28354 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28356 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28357 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28358 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28359 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28360 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));
28361 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
28362 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28363 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
28364 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));
28365 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
28367 if (flags & NDR_OUT) {
28368 if (r->out.type == NULL) {
28369 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28371 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
28372 if (r->out.data == NULL) {
28373 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28375 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.data));
28376 if (r->out.needed == NULL) {
28377 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28379 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
28380 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28382 return NDR_ERR_SUCCESS;
28385 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_GetPrinterDataEx(struct ndr_pull *ndr, int flags, struct _spoolss_GetPrinterDataEx *r)
28387 TALLOC_CTX *_mem_save_handle_0;
28388 TALLOC_CTX *_mem_save_type_0;
28389 TALLOC_CTX *_mem_save_data_0;
28390 TALLOC_CTX *_mem_save_needed_0;
28391 if (flags & NDR_IN) {
28392 ZERO_STRUCT(r->out);
28394 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28395 NDR_PULL_ALLOC(ndr, r->in.handle);
28397 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28398 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
28399 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28400 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28401 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
28402 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
28403 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
28404 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));
28406 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
28407 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));
28408 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
28409 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
28410 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
28411 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));
28413 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
28414 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));
28415 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
28416 NDR_PULL_ALLOC(ndr, r->out.type);
28417 ZERO_STRUCTP(r->out.type);
28418 NDR_PULL_ALLOC(ndr, r->out.data);
28419 ZERO_STRUCTP(r->out.data);
28420 NDR_PULL_ALLOC(ndr, r->out.needed);
28421 ZERO_STRUCTP(r->out.needed);
28423 if (flags & NDR_OUT) {
28424 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28425 NDR_PULL_ALLOC(ndr, r->out.type);
28427 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
28428 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
28429 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
28430 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
28431 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28432 NDR_PULL_ALLOC(ndr, r->out.data);
28434 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
28435 NDR_PULL_SET_MEM_CTX(ndr, r->out.data, LIBNDR_FLAG_REF_ALLOC);
28436 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.data));
28437 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
28438 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28439 NDR_PULL_ALLOC(ndr, r->out.needed);
28441 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
28442 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
28443 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
28444 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
28445 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28447 return NDR_ERR_SUCCESS;
28450 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_GetPrinterDataEx(struct ndr_push *ndr, int flags, const struct __spoolss_GetPrinterDataEx *r)
28452 if (flags & NDR_IN) {
28453 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
28455 if (flags & NDR_OUT) {
28456 if (r->out.data == NULL) {
28457 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28459 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.data, r->in.type));
28460 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
28462 return NDR_ERR_SUCCESS;
28465 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_GetPrinterDataEx(struct ndr_pull *ndr, int flags, struct __spoolss_GetPrinterDataEx *r)
28467 TALLOC_CTX *_mem_save_data_0;
28468 if (flags & NDR_IN) {
28469 ZERO_STRUCT(r->out);
28471 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
28472 NDR_PULL_ALLOC(ndr, r->out.data);
28473 ZERO_STRUCTP(r->out.data);
28475 if (flags & NDR_OUT) {
28476 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28477 NDR_PULL_ALLOC(ndr, r->out.data);
28479 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
28480 NDR_PULL_SET_MEM_CTX(ndr, r->out.data, LIBNDR_FLAG_REF_ALLOC);
28481 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.data, r->in.type));
28482 NDR_CHECK(ndr_pull_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
28483 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
28485 return NDR_ERR_SUCCESS;
28488 _PUBLIC_ void ndr_print_spoolss_GetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDataEx *r)
28490 ndr_print_struct(ndr, name, "spoolss_GetPrinterDataEx");
28492 if (flags & NDR_SET_VALUES) {
28493 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28495 if (flags & NDR_IN) {
28496 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDataEx");
28498 ndr_print_ptr(ndr, "handle", r->in.handle);
28500 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28502 ndr_print_string(ndr, "key_name", r->in.key_name);
28503 ndr_print_string(ndr, "value_name", r->in.value_name);
28504 ndr_print_uint32(ndr, "offered", r->in.offered);
28507 if (flags & NDR_OUT) {
28508 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDataEx");
28510 ndr_print_ptr(ndr, "type", r->out.type);
28512 ndr_print_winreg_Type(ndr, "type", *r->out.type);
28514 ndr_print_ptr(ndr, "data", r->out.data);
28516 ndr_print_set_switch_value(ndr, r->out.data, *r->out.type);
28517 ndr_print_spoolss_PrinterData(ndr, "data", r->out.data);
28519 ndr_print_ptr(ndr, "needed", r->out.needed);
28521 ndr_print_uint32(ndr, "needed", *r->out.needed);
28523 ndr_print_WERROR(ndr, "result", r->out.result);
28529 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinterDataEx(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinterDataEx *r)
28531 if (flags & NDR_IN) {
28532 if (r->in.handle == NULL) {
28533 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28535 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28536 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28537 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28538 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28539 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));
28540 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
28542 if (flags & NDR_OUT) {
28543 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
28544 if (r->out.needed == NULL) {
28545 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28547 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
28548 if (r->out.count == NULL) {
28549 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28551 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
28552 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28554 return NDR_ERR_SUCCESS;
28557 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinterDataEx(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinterDataEx *r)
28559 TALLOC_CTX *_mem_save_handle_0;
28560 TALLOC_CTX *_mem_save_needed_0;
28561 TALLOC_CTX *_mem_save_count_0;
28562 if (flags & NDR_IN) {
28563 ZERO_STRUCT(r->out);
28565 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28566 NDR_PULL_ALLOC(ndr, r->in.handle);
28568 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28569 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
28570 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28571 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28572 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
28573 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
28574 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
28575 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));
28577 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
28578 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));
28579 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
28580 NDR_PULL_ALLOC(ndr, r->out.needed);
28581 ZERO_STRUCTP(r->out.needed);
28582 NDR_PULL_ALLOC(ndr, r->out.count);
28583 ZERO_STRUCTP(r->out.count);
28585 if (flags & NDR_OUT) {
28586 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->out.info));
28587 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28588 NDR_PULL_ALLOC(ndr, r->out.needed);
28590 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
28591 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
28592 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
28593 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
28594 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28595 NDR_PULL_ALLOC(ndr, r->out.count);
28597 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
28598 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
28599 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
28600 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
28601 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28603 return NDR_ERR_SUCCESS;
28606 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinterDataEx(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinterDataEx *r)
28608 uint32_t cntr_info_0;
28609 if (flags & NDR_IN) {
28610 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
28612 if (flags & NDR_OUT) {
28613 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
28614 NDR_CHECK(ndr_push_spoolss_PrinterEnumValues(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
28616 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
28617 NDR_CHECK(ndr_push_spoolss_PrinterEnumValues(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
28620 return NDR_ERR_SUCCESS;
28623 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinterDataEx(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinterDataEx *r)
28625 uint32_t cntr_info_0;
28626 TALLOC_CTX *_mem_save_info_0;
28627 if (flags & NDR_IN) {
28628 ZERO_STRUCT(r->out);
28630 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
28632 if (flags & NDR_OUT) {
28633 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
28634 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
28635 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
28636 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
28637 NDR_CHECK(ndr_pull_spoolss_PrinterEnumValues(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
28639 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
28640 NDR_CHECK(ndr_pull_spoolss_PrinterEnumValues(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
28642 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
28644 return NDR_ERR_SUCCESS;
28647 _PUBLIC_ void ndr_print_spoolss_EnumPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterDataEx *r)
28649 uint32_t cntr_info_2;
28650 ndr_print_struct(ndr, name, "spoolss_EnumPrinterDataEx");
28652 if (flags & NDR_SET_VALUES) {
28653 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28655 if (flags & NDR_IN) {
28656 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterDataEx");
28658 ndr_print_ptr(ndr, "handle", r->in.handle);
28660 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28662 ndr_print_string(ndr, "key_name", r->in.key_name);
28663 ndr_print_uint32(ndr, "offered", r->in.offered);
28666 if (flags & NDR_OUT) {
28667 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterDataEx");
28669 ndr_print_ptr(ndr, "count", r->out.count);
28671 ndr_print_uint32(ndr, "count", *r->out.count);
28673 ndr_print_ptr(ndr, "info", r->out.info);
28675 ndr_print_ptr(ndr, "info", *r->out.info);
28677 if (*r->out.info) {
28678 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
28680 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
28682 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
28683 ndr_print_spoolss_PrinterEnumValues(ndr, "info", &(*r->out.info)[cntr_info_2]);
28691 ndr_print_ptr(ndr, "needed", r->out.needed);
28693 ndr_print_uint32(ndr, "needed", *r->out.needed);
28695 ndr_print_WERROR(ndr, "result", r->out.result);
28701 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterKey(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterKey *r)
28703 if (flags & NDR_IN) {
28704 if (r->in.handle == NULL) {
28705 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28707 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28708 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28709 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28710 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28711 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));
28712 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
28714 if (flags & NDR_OUT) {
28715 if (r->out._ndr_size == NULL) {
28716 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28718 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out._ndr_size));
28719 if (r->out.key_buffer == NULL) {
28720 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28723 struct ndr_push *_ndr_key_buffer;
28724 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_key_buffer, 0, *r->out._ndr_size * 2));
28725 NDR_CHECK(ndr_push_set_switch_value(_ndr_key_buffer, r->out.key_buffer, *r->out._ndr_size));
28726 NDR_CHECK(ndr_push_spoolss_KeyNames(_ndr_key_buffer, NDR_SCALARS|NDR_BUFFERS, r->out.key_buffer));
28727 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_key_buffer, 0, *r->out._ndr_size * 2));
28729 if (r->out.needed == NULL) {
28730 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28732 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
28733 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28735 return NDR_ERR_SUCCESS;
28738 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterKey(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterKey *r)
28740 TALLOC_CTX *_mem_save_handle_0;
28741 TALLOC_CTX *_mem_save__ndr_size_0;
28742 TALLOC_CTX *_mem_save_key_buffer_0;
28743 TALLOC_CTX *_mem_save_needed_0;
28744 if (flags & NDR_IN) {
28745 ZERO_STRUCT(r->out);
28747 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28748 NDR_PULL_ALLOC(ndr, r->in.handle);
28750 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28751 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
28752 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28753 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28754 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
28755 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
28756 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
28757 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));
28759 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
28760 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));
28761 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
28762 NDR_PULL_ALLOC(ndr, r->out._ndr_size);
28763 ZERO_STRUCTP(r->out._ndr_size);
28764 NDR_PULL_ALLOC(ndr, r->out.key_buffer);
28765 ZERO_STRUCTP(r->out.key_buffer);
28766 NDR_PULL_ALLOC(ndr, r->out.needed);
28767 ZERO_STRUCTP(r->out.needed);
28769 if (flags & NDR_OUT) {
28770 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28771 NDR_PULL_ALLOC(ndr, r->out._ndr_size);
28773 _mem_save__ndr_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
28774 NDR_PULL_SET_MEM_CTX(ndr, r->out._ndr_size, LIBNDR_FLAG_REF_ALLOC);
28775 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out._ndr_size));
28776 NDR_PULL_SET_MEM_CTX(ndr, _mem_save__ndr_size_0, LIBNDR_FLAG_REF_ALLOC);
28777 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28778 NDR_PULL_ALLOC(ndr, r->out.key_buffer);
28780 _mem_save_key_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
28781 NDR_PULL_SET_MEM_CTX(ndr, r->out.key_buffer, LIBNDR_FLAG_REF_ALLOC);
28783 struct ndr_pull *_ndr_key_buffer;
28784 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_key_buffer, 0, *r->out._ndr_size * 2));
28785 NDR_CHECK(ndr_pull_set_switch_value(_ndr_key_buffer, r->out.key_buffer, *r->out._ndr_size));
28786 NDR_CHECK(ndr_pull_spoolss_KeyNames(_ndr_key_buffer, NDR_SCALARS|NDR_BUFFERS, r->out.key_buffer));
28787 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_key_buffer, 0, *r->out._ndr_size * 2));
28789 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_key_buffer_0, LIBNDR_FLAG_REF_ALLOC);
28790 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28791 NDR_PULL_ALLOC(ndr, r->out.needed);
28793 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
28794 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
28795 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
28796 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
28797 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28799 return NDR_ERR_SUCCESS;
28802 _PUBLIC_ void ndr_print_spoolss_EnumPrinterKey(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterKey *r)
28804 ndr_print_struct(ndr, name, "spoolss_EnumPrinterKey");
28806 if (flags & NDR_SET_VALUES) {
28807 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28809 if (flags & NDR_IN) {
28810 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterKey");
28812 ndr_print_ptr(ndr, "handle", r->in.handle);
28814 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28816 ndr_print_string(ndr, "key_name", r->in.key_name);
28817 ndr_print_uint32(ndr, "offered", r->in.offered);
28820 if (flags & NDR_OUT) {
28821 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterKey");
28823 ndr_print_ptr(ndr, "_ndr_size", r->out._ndr_size);
28825 ndr_print_uint32(ndr, "_ndr_size", *r->out._ndr_size);
28827 ndr_print_ptr(ndr, "key_buffer", r->out.key_buffer);
28829 ndr_print_set_switch_value(ndr, r->out.key_buffer, *r->out._ndr_size);
28830 ndr_print_spoolss_KeyNames(ndr, "key_buffer", r->out.key_buffer);
28832 ndr_print_ptr(ndr, "needed", r->out.needed);
28834 ndr_print_uint32(ndr, "needed", *r->out.needed);
28836 ndr_print_WERROR(ndr, "result", r->out.result);
28842 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDataEx *r)
28844 if (flags & NDR_IN) {
28845 if (r->in.handle == NULL) {
28846 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28848 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28849 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28850 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28851 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28852 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));
28853 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
28854 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28855 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
28856 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));
28858 if (flags & NDR_OUT) {
28859 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28861 return NDR_ERR_SUCCESS;
28864 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDataEx *r)
28866 TALLOC_CTX *_mem_save_handle_0;
28867 if (flags & NDR_IN) {
28868 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28869 NDR_PULL_ALLOC(ndr, r->in.handle);
28871 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28872 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
28873 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28874 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28875 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
28876 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
28877 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
28878 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));
28880 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
28881 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));
28882 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
28883 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
28884 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
28885 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));
28887 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
28888 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));
28890 if (flags & NDR_OUT) {
28891 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28893 return NDR_ERR_SUCCESS;
28896 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDataEx *r)
28898 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDataEx");
28900 if (flags & NDR_SET_VALUES) {
28901 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28903 if (flags & NDR_IN) {
28904 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDataEx");
28906 ndr_print_ptr(ndr, "handle", r->in.handle);
28908 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28910 ndr_print_string(ndr, "key_name", r->in.key_name);
28911 ndr_print_string(ndr, "value_name", r->in.value_name);
28914 if (flags & NDR_OUT) {
28915 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDataEx");
28917 ndr_print_WERROR(ndr, "result", r->out.result);
28923 static enum ndr_err_code ndr_push_spoolss_DeletePrinterKey(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterKey *r)
28925 if (flags & NDR_IN) {
28926 if (r->in.handle == NULL) {
28927 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28929 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28930 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28931 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28932 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28933 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));
28935 if (flags & NDR_OUT) {
28936 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28938 return NDR_ERR_SUCCESS;
28941 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterKey(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterKey *r)
28943 TALLOC_CTX *_mem_save_handle_0;
28944 if (flags & NDR_IN) {
28945 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28946 NDR_PULL_ALLOC(ndr, r->in.handle);
28948 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28949 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
28950 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28951 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28952 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
28953 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
28954 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
28955 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));
28957 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
28958 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));
28960 if (flags & NDR_OUT) {
28961 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28963 return NDR_ERR_SUCCESS;
28966 _PUBLIC_ void ndr_print_spoolss_DeletePrinterKey(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterKey *r)
28968 ndr_print_struct(ndr, name, "spoolss_DeletePrinterKey");
28970 if (flags & NDR_SET_VALUES) {
28971 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28973 if (flags & NDR_IN) {
28974 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterKey");
28976 ndr_print_ptr(ndr, "handle", r->in.handle);
28978 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28980 ndr_print_string(ndr, "key_name", r->in.key_name);
28983 if (flags & NDR_OUT) {
28984 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterKey");
28986 ndr_print_WERROR(ndr, "result", r->out.result);
28992 static enum ndr_err_code ndr_push_spoolss_53(struct ndr_push *ndr, int flags, const struct spoolss_53 *r)
28994 if (flags & NDR_IN) {
28996 if (flags & NDR_OUT) {
28997 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28999 return NDR_ERR_SUCCESS;
29002 static enum ndr_err_code ndr_pull_spoolss_53(struct ndr_pull *ndr, int flags, struct spoolss_53 *r)
29004 if (flags & NDR_IN) {
29006 if (flags & NDR_OUT) {
29007 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29009 return NDR_ERR_SUCCESS;
29012 _PUBLIC_ void ndr_print_spoolss_53(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_53 *r)
29014 ndr_print_struct(ndr, name, "spoolss_53");
29016 if (flags & NDR_SET_VALUES) {
29017 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29019 if (flags & NDR_IN) {
29020 ndr_print_struct(ndr, "in", "spoolss_53");
29024 if (flags & NDR_OUT) {
29025 ndr_print_struct(ndr, "out", "spoolss_53");
29027 ndr_print_WERROR(ndr, "result", r->out.result);
29033 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDriverEx(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDriverEx *r)
29035 if (flags & NDR_IN) {
29036 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
29037 if (r->in.server) {
29038 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
29039 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29040 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
29041 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
29043 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
29044 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29045 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
29046 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
29047 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
29048 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29049 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
29050 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver, ndr_charset_length(r->in.driver, CH_UTF16), sizeof(uint16_t), CH_UTF16));
29051 NDR_CHECK(ndr_push_spoolss_DeleteDriverFlags(ndr, NDR_SCALARS, r->in.delete_flags));
29052 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.version));
29054 if (flags & NDR_OUT) {
29055 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29057 return NDR_ERR_SUCCESS;
29060 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDriverEx(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDriverEx *r)
29062 uint32_t _ptr_server;
29063 TALLOC_CTX *_mem_save_server_0;
29064 if (flags & NDR_IN) {
29065 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
29067 NDR_PULL_ALLOC(ndr, r->in.server);
29069 r->in.server = NULL;
29071 if (r->in.server) {
29072 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
29073 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
29074 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
29075 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
29076 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
29077 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));
29079 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
29080 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
29081 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
29083 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
29084 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
29085 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
29086 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));
29088 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
29089 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
29090 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver));
29091 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.driver));
29092 if (ndr_get_array_length(ndr, &r->in.driver) > ndr_get_array_size(ndr, &r->in.driver)) {
29093 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));
29095 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t)));
29096 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t), CH_UTF16));
29097 NDR_CHECK(ndr_pull_spoolss_DeleteDriverFlags(ndr, NDR_SCALARS, &r->in.delete_flags));
29098 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.version));
29100 if (flags & NDR_OUT) {
29101 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29103 return NDR_ERR_SUCCESS;
29106 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDriverEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDriverEx *r)
29108 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDriverEx");
29110 if (flags & NDR_SET_VALUES) {
29111 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29113 if (flags & NDR_IN) {
29114 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDriverEx");
29116 ndr_print_ptr(ndr, "server", r->in.server);
29118 if (r->in.server) {
29119 ndr_print_string(ndr, "server", r->in.server);
29122 ndr_print_string(ndr, "architecture", r->in.architecture);
29123 ndr_print_string(ndr, "driver", r->in.driver);
29124 ndr_print_spoolss_DeleteDriverFlags(ndr, "delete_flags", r->in.delete_flags);
29125 ndr_print_uint32(ndr, "version", r->in.version);
29128 if (flags & NDR_OUT) {
29129 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDriverEx");
29131 ndr_print_WERROR(ndr, "result", r->out.result);
29137 static enum ndr_err_code ndr_push_spoolss_55(struct ndr_push *ndr, int flags, const struct spoolss_55 *r)
29139 if (flags & NDR_IN) {
29141 if (flags & NDR_OUT) {
29142 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29144 return NDR_ERR_SUCCESS;
29147 static enum ndr_err_code ndr_pull_spoolss_55(struct ndr_pull *ndr, int flags, struct spoolss_55 *r)
29149 if (flags & NDR_IN) {
29151 if (flags & NDR_OUT) {
29152 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29154 return NDR_ERR_SUCCESS;
29157 _PUBLIC_ void ndr_print_spoolss_55(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_55 *r)
29159 ndr_print_struct(ndr, name, "spoolss_55");
29161 if (flags & NDR_SET_VALUES) {
29162 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29164 if (flags & NDR_IN) {
29165 ndr_print_struct(ndr, "in", "spoolss_55");
29169 if (flags & NDR_OUT) {
29170 ndr_print_struct(ndr, "out", "spoolss_55");
29172 ndr_print_WERROR(ndr, "result", r->out.result);
29178 static enum ndr_err_code ndr_push_spoolss_56(struct ndr_push *ndr, int flags, const struct spoolss_56 *r)
29180 if (flags & NDR_IN) {
29182 if (flags & NDR_OUT) {
29183 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29185 return NDR_ERR_SUCCESS;
29188 static enum ndr_err_code ndr_pull_spoolss_56(struct ndr_pull *ndr, int flags, struct spoolss_56 *r)
29190 if (flags & NDR_IN) {
29192 if (flags & NDR_OUT) {
29193 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29195 return NDR_ERR_SUCCESS;
29198 _PUBLIC_ void ndr_print_spoolss_56(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_56 *r)
29200 ndr_print_struct(ndr, name, "spoolss_56");
29202 if (flags & NDR_SET_VALUES) {
29203 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29205 if (flags & NDR_IN) {
29206 ndr_print_struct(ndr, "in", "spoolss_56");
29210 if (flags & NDR_OUT) {
29211 ndr_print_struct(ndr, "out", "spoolss_56");
29213 ndr_print_WERROR(ndr, "result", r->out.result);
29219 static enum ndr_err_code ndr_push_spoolss_57(struct ndr_push *ndr, int flags, const struct spoolss_57 *r)
29221 if (flags & NDR_IN) {
29223 if (flags & NDR_OUT) {
29224 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29226 return NDR_ERR_SUCCESS;
29229 static enum ndr_err_code ndr_pull_spoolss_57(struct ndr_pull *ndr, int flags, struct spoolss_57 *r)
29231 if (flags & NDR_IN) {
29233 if (flags & NDR_OUT) {
29234 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29236 return NDR_ERR_SUCCESS;
29239 _PUBLIC_ void ndr_print_spoolss_57(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_57 *r)
29241 ndr_print_struct(ndr, name, "spoolss_57");
29243 if (flags & NDR_SET_VALUES) {
29244 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29246 if (flags & NDR_IN) {
29247 ndr_print_struct(ndr, "in", "spoolss_57");
29251 if (flags & NDR_OUT) {
29252 ndr_print_struct(ndr, "out", "spoolss_57");
29254 ndr_print_WERROR(ndr, "result", r->out.result);
29260 static enum ndr_err_code ndr_push_spoolss_XcvData(struct ndr_push *ndr, int flags, const struct spoolss_XcvData *r)
29262 if (flags & NDR_IN) {
29263 if (r->in.handle == NULL) {
29264 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29266 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
29267 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.function_name, CH_UTF16)));
29268 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29269 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.function_name, CH_UTF16)));
29270 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));
29271 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.in_data));
29272 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.in_data.length));
29273 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.out_data_size));
29274 if (r->in.status_code == NULL) {
29275 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29277 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.status_code));
29279 if (flags & NDR_OUT) {
29280 if (r->out.out_data == NULL) {
29281 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29283 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.out_data_size));
29284 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.out_data, r->in.out_data_size));
29285 if (r->out.needed == NULL) {
29286 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29288 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
29289 if (r->out.status_code == NULL) {
29290 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29292 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.status_code));
29293 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29295 return NDR_ERR_SUCCESS;
29298 static enum ndr_err_code ndr_pull_spoolss_XcvData(struct ndr_pull *ndr, int flags, struct spoolss_XcvData *r)
29300 TALLOC_CTX *_mem_save_handle_0;
29301 TALLOC_CTX *_mem_save_needed_0;
29302 TALLOC_CTX *_mem_save_status_code_0;
29303 if (flags & NDR_IN) {
29304 ZERO_STRUCT(r->out);
29306 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29307 NDR_PULL_ALLOC(ndr, r->in.handle);
29309 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
29310 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
29311 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
29312 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
29313 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.function_name));
29314 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.function_name));
29315 if (ndr_get_array_length(ndr, &r->in.function_name) > ndr_get_array_size(ndr, &r->in.function_name)) {
29316 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));
29318 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.function_name), sizeof(uint16_t)));
29319 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));
29320 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->in.in_data));
29321 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._in_data_length));
29322 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.out_data_size));
29323 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29324 NDR_PULL_ALLOC(ndr, r->in.status_code);
29326 _mem_save_status_code_0 = NDR_PULL_GET_MEM_CTX(ndr);
29327 NDR_PULL_SET_MEM_CTX(ndr, r->in.status_code, LIBNDR_FLAG_REF_ALLOC);
29328 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.status_code));
29329 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_code_0, LIBNDR_FLAG_REF_ALLOC);
29330 NDR_PULL_ALLOC_N(ndr, r->out.out_data, r->in.out_data_size);
29331 memset(r->out.out_data, 0, (r->in.out_data_size) * sizeof(*r->out.out_data));
29332 NDR_PULL_ALLOC(ndr, r->out.needed);
29333 ZERO_STRUCTP(r->out.needed);
29334 NDR_PULL_ALLOC(ndr, r->out.status_code);
29335 *r->out.status_code = *r->in.status_code;
29337 if (flags & NDR_OUT) {
29338 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.out_data));
29339 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29340 NDR_PULL_ALLOC_N(ndr, r->out.out_data, ndr_get_array_size(ndr, &r->out.out_data));
29342 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.out_data, ndr_get_array_size(ndr, &r->out.out_data)));
29343 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29344 NDR_PULL_ALLOC(ndr, r->out.needed);
29346 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
29347 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
29348 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
29349 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
29350 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29351 NDR_PULL_ALLOC(ndr, r->out.status_code);
29353 _mem_save_status_code_0 = NDR_PULL_GET_MEM_CTX(ndr);
29354 NDR_PULL_SET_MEM_CTX(ndr, r->out.status_code, LIBNDR_FLAG_REF_ALLOC);
29355 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.status_code));
29356 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_code_0, LIBNDR_FLAG_REF_ALLOC);
29357 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29358 if (r->out.out_data) {
29359 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.out_data, r->in.out_data_size));
29362 return NDR_ERR_SUCCESS;
29365 _PUBLIC_ void ndr_print_spoolss_XcvData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_XcvData *r)
29367 ndr_print_struct(ndr, name, "spoolss_XcvData");
29369 if (flags & NDR_SET_VALUES) {
29370 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29372 if (flags & NDR_IN) {
29373 ndr_print_struct(ndr, "in", "spoolss_XcvData");
29375 ndr_print_ptr(ndr, "handle", r->in.handle);
29377 ndr_print_policy_handle(ndr, "handle", r->in.handle);
29379 ndr_print_string(ndr, "function_name", r->in.function_name);
29380 ndr_print_DATA_BLOB(ndr, "in_data", r->in.in_data);
29381 ndr_print_uint32(ndr, "_in_data_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->in.in_data.length:r->in._in_data_length);
29382 ndr_print_uint32(ndr, "out_data_size", r->in.out_data_size);
29383 ndr_print_ptr(ndr, "status_code", r->in.status_code);
29385 ndr_print_uint32(ndr, "status_code", *r->in.status_code);
29389 if (flags & NDR_OUT) {
29390 ndr_print_struct(ndr, "out", "spoolss_XcvData");
29392 ndr_print_ptr(ndr, "out_data", r->out.out_data);
29394 ndr_print_array_uint8(ndr, "out_data", r->out.out_data, r->in.out_data_size);
29396 ndr_print_ptr(ndr, "needed", r->out.needed);
29398 ndr_print_uint32(ndr, "needed", *r->out.needed);
29400 ndr_print_ptr(ndr, "status_code", r->out.status_code);
29402 ndr_print_uint32(ndr, "status_code", *r->out.status_code);
29404 ndr_print_WERROR(ndr, "result", r->out.result);
29410 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_AddPrinterDriverEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterDriverEx *r)
29412 if (flags & NDR_IN) {
29413 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
29414 if (r->in.servername) {
29415 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
29416 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29417 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
29418 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
29420 if (r->in.info_ctr == NULL) {
29421 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29423 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
29424 NDR_CHECK(ndr_push_spoolss_AddPrinterDriverExFlags(ndr, NDR_SCALARS, r->in.flags));
29426 if (flags & NDR_OUT) {
29427 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29429 return NDR_ERR_SUCCESS;
29432 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_AddPrinterDriverEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterDriverEx *r)
29434 uint32_t _ptr_servername;
29435 TALLOC_CTX *_mem_save_servername_0;
29436 TALLOC_CTX *_mem_save_info_ctr_0;
29437 if (flags & NDR_IN) {
29438 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
29439 if (_ptr_servername) {
29440 NDR_PULL_ALLOC(ndr, r->in.servername);
29442 r->in.servername = NULL;
29444 if (r->in.servername) {
29445 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
29446 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
29447 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
29448 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
29449 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
29450 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));
29452 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
29453 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
29454 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
29456 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29457 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
29459 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
29460 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
29461 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
29462 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
29463 NDR_CHECK(ndr_pull_spoolss_AddPrinterDriverExFlags(ndr, NDR_SCALARS, &r->in.flags));
29465 if (flags & NDR_OUT) {
29466 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29468 return NDR_ERR_SUCCESS;
29471 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriverEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterDriverEx *r)
29473 ndr_print_struct(ndr, name, "spoolss_AddPrinterDriverEx");
29475 if (flags & NDR_SET_VALUES) {
29476 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29478 if (flags & NDR_IN) {
29479 ndr_print_struct(ndr, "in", "spoolss_AddPrinterDriverEx");
29481 ndr_print_ptr(ndr, "servername", r->in.servername);
29483 if (r->in.servername) {
29484 ndr_print_string(ndr, "servername", r->in.servername);
29487 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
29489 ndr_print_spoolss_AddDriverInfoCtr(ndr, "info_ctr", r->in.info_ctr);
29491 ndr_print_spoolss_AddPrinterDriverExFlags(ndr, "flags", r->in.flags);
29494 if (flags & NDR_OUT) {
29495 ndr_print_struct(ndr, "out", "spoolss_AddPrinterDriverEx");
29497 ndr_print_WERROR(ndr, "result", r->out.result);
29503 static enum ndr_err_code ndr_push_spoolss_5a(struct ndr_push *ndr, int flags, const struct spoolss_5a *r)
29505 if (flags & NDR_IN) {
29507 if (flags & NDR_OUT) {
29508 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29510 return NDR_ERR_SUCCESS;
29513 static enum ndr_err_code ndr_pull_spoolss_5a(struct ndr_pull *ndr, int flags, struct spoolss_5a *r)
29515 if (flags & NDR_IN) {
29517 if (flags & NDR_OUT) {
29518 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29520 return NDR_ERR_SUCCESS;
29523 _PUBLIC_ void ndr_print_spoolss_5a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5a *r)
29525 ndr_print_struct(ndr, name, "spoolss_5a");
29527 if (flags & NDR_SET_VALUES) {
29528 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29530 if (flags & NDR_IN) {
29531 ndr_print_struct(ndr, "in", "spoolss_5a");
29535 if (flags & NDR_OUT) {
29536 ndr_print_struct(ndr, "out", "spoolss_5a");
29538 ndr_print_WERROR(ndr, "result", r->out.result);
29544 static enum ndr_err_code ndr_push_spoolss_5b(struct ndr_push *ndr, int flags, const struct spoolss_5b *r)
29546 if (flags & NDR_IN) {
29548 if (flags & NDR_OUT) {
29549 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29551 return NDR_ERR_SUCCESS;
29554 static enum ndr_err_code ndr_pull_spoolss_5b(struct ndr_pull *ndr, int flags, struct spoolss_5b *r)
29556 if (flags & NDR_IN) {
29558 if (flags & NDR_OUT) {
29559 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29561 return NDR_ERR_SUCCESS;
29564 _PUBLIC_ void ndr_print_spoolss_5b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5b *r)
29566 ndr_print_struct(ndr, name, "spoolss_5b");
29568 if (flags & NDR_SET_VALUES) {
29569 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29571 if (flags & NDR_IN) {
29572 ndr_print_struct(ndr, "in", "spoolss_5b");
29576 if (flags & NDR_OUT) {
29577 ndr_print_struct(ndr, "out", "spoolss_5b");
29579 ndr_print_WERROR(ndr, "result", r->out.result);
29585 static enum ndr_err_code ndr_push_spoolss_5c(struct ndr_push *ndr, int flags, const struct spoolss_5c *r)
29587 if (flags & NDR_IN) {
29589 if (flags & NDR_OUT) {
29590 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29592 return NDR_ERR_SUCCESS;
29595 static enum ndr_err_code ndr_pull_spoolss_5c(struct ndr_pull *ndr, int flags, struct spoolss_5c *r)
29597 if (flags & NDR_IN) {
29599 if (flags & NDR_OUT) {
29600 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29602 return NDR_ERR_SUCCESS;
29605 _PUBLIC_ void ndr_print_spoolss_5c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5c *r)
29607 ndr_print_struct(ndr, name, "spoolss_5c");
29609 if (flags & NDR_SET_VALUES) {
29610 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29612 if (flags & NDR_IN) {
29613 ndr_print_struct(ndr, "in", "spoolss_5c");
29617 if (flags & NDR_OUT) {
29618 ndr_print_struct(ndr, "out", "spoolss_5c");
29620 ndr_print_WERROR(ndr, "result", r->out.result);
29626 static enum ndr_err_code ndr_push_spoolss_5d(struct ndr_push *ndr, int flags, const struct spoolss_5d *r)
29628 if (flags & NDR_IN) {
29630 if (flags & NDR_OUT) {
29631 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29633 return NDR_ERR_SUCCESS;
29636 static enum ndr_err_code ndr_pull_spoolss_5d(struct ndr_pull *ndr, int flags, struct spoolss_5d *r)
29638 if (flags & NDR_IN) {
29640 if (flags & NDR_OUT) {
29641 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29643 return NDR_ERR_SUCCESS;
29646 _PUBLIC_ void ndr_print_spoolss_5d(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5d *r)
29648 ndr_print_struct(ndr, name, "spoolss_5d");
29650 if (flags & NDR_SET_VALUES) {
29651 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29653 if (flags & NDR_IN) {
29654 ndr_print_struct(ndr, "in", "spoolss_5d");
29658 if (flags & NDR_OUT) {
29659 ndr_print_struct(ndr, "out", "spoolss_5d");
29661 ndr_print_WERROR(ndr, "result", r->out.result);
29667 static enum ndr_err_code ndr_push_spoolss_5e(struct ndr_push *ndr, int flags, const struct spoolss_5e *r)
29669 if (flags & NDR_IN) {
29671 if (flags & NDR_OUT) {
29672 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29674 return NDR_ERR_SUCCESS;
29677 static enum ndr_err_code ndr_pull_spoolss_5e(struct ndr_pull *ndr, int flags, struct spoolss_5e *r)
29679 if (flags & NDR_IN) {
29681 if (flags & NDR_OUT) {
29682 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29684 return NDR_ERR_SUCCESS;
29687 _PUBLIC_ void ndr_print_spoolss_5e(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5e *r)
29689 ndr_print_struct(ndr, name, "spoolss_5e");
29691 if (flags & NDR_SET_VALUES) {
29692 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29694 if (flags & NDR_IN) {
29695 ndr_print_struct(ndr, "in", "spoolss_5e");
29699 if (flags & NDR_OUT) {
29700 ndr_print_struct(ndr, "out", "spoolss_5e");
29702 ndr_print_WERROR(ndr, "result", r->out.result);
29708 static enum ndr_err_code ndr_push_spoolss_5f(struct ndr_push *ndr, int flags, const struct spoolss_5f *r)
29710 if (flags & NDR_IN) {
29712 if (flags & NDR_OUT) {
29713 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29715 return NDR_ERR_SUCCESS;
29718 static enum ndr_err_code ndr_pull_spoolss_5f(struct ndr_pull *ndr, int flags, struct spoolss_5f *r)
29720 if (flags & NDR_IN) {
29722 if (flags & NDR_OUT) {
29723 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29725 return NDR_ERR_SUCCESS;
29728 _PUBLIC_ void ndr_print_spoolss_5f(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5f *r)
29730 ndr_print_struct(ndr, name, "spoolss_5f");
29732 if (flags & NDR_SET_VALUES) {
29733 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29735 if (flags & NDR_IN) {
29736 ndr_print_struct(ndr, "in", "spoolss_5f");
29740 if (flags & NDR_OUT) {
29741 ndr_print_struct(ndr, "out", "spoolss_5f");
29743 ndr_print_WERROR(ndr, "result", r->out.result);
29749 static enum ndr_err_code ndr_push_spoolss_60(struct ndr_push *ndr, int flags, const struct spoolss_60 *r)
29751 if (flags & NDR_IN) {
29753 if (flags & NDR_OUT) {
29754 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29756 return NDR_ERR_SUCCESS;
29759 static enum ndr_err_code ndr_pull_spoolss_60(struct ndr_pull *ndr, int flags, struct spoolss_60 *r)
29761 if (flags & NDR_IN) {
29763 if (flags & NDR_OUT) {
29764 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29766 return NDR_ERR_SUCCESS;
29769 _PUBLIC_ void ndr_print_spoolss_60(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_60 *r)
29771 ndr_print_struct(ndr, name, "spoolss_60");
29773 if (flags & NDR_SET_VALUES) {
29774 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29776 if (flags & NDR_IN) {
29777 ndr_print_struct(ndr, "in", "spoolss_60");
29781 if (flags & NDR_OUT) {
29782 ndr_print_struct(ndr, "out", "spoolss_60");
29784 ndr_print_WERROR(ndr, "result", r->out.result);
29790 static enum ndr_err_code ndr_push_spoolss_61(struct ndr_push *ndr, int flags, const struct spoolss_61 *r)
29792 if (flags & NDR_IN) {
29794 if (flags & NDR_OUT) {
29795 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29797 return NDR_ERR_SUCCESS;
29800 static enum ndr_err_code ndr_pull_spoolss_61(struct ndr_pull *ndr, int flags, struct spoolss_61 *r)
29802 if (flags & NDR_IN) {
29804 if (flags & NDR_OUT) {
29805 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29807 return NDR_ERR_SUCCESS;
29810 _PUBLIC_ void ndr_print_spoolss_61(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_61 *r)
29812 ndr_print_struct(ndr, name, "spoolss_61");
29814 if (flags & NDR_SET_VALUES) {
29815 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29817 if (flags & NDR_IN) {
29818 ndr_print_struct(ndr, "in", "spoolss_61");
29822 if (flags & NDR_OUT) {
29823 ndr_print_struct(ndr, "out", "spoolss_61");
29825 ndr_print_WERROR(ndr, "result", r->out.result);
29831 static enum ndr_err_code ndr_push_spoolss_62(struct ndr_push *ndr, int flags, const struct spoolss_62 *r)
29833 if (flags & NDR_IN) {
29835 if (flags & NDR_OUT) {
29836 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29838 return NDR_ERR_SUCCESS;
29841 static enum ndr_err_code ndr_pull_spoolss_62(struct ndr_pull *ndr, int flags, struct spoolss_62 *r)
29843 if (flags & NDR_IN) {
29845 if (flags & NDR_OUT) {
29846 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29848 return NDR_ERR_SUCCESS;
29851 _PUBLIC_ void ndr_print_spoolss_62(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_62 *r)
29853 ndr_print_struct(ndr, name, "spoolss_62");
29855 if (flags & NDR_SET_VALUES) {
29856 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29858 if (flags & NDR_IN) {
29859 ndr_print_struct(ndr, "in", "spoolss_62");
29863 if (flags & NDR_OUT) {
29864 ndr_print_struct(ndr, "out", "spoolss_62");
29866 ndr_print_WERROR(ndr, "result", r->out.result);
29872 static enum ndr_err_code ndr_push_spoolss_63(struct ndr_push *ndr, int flags, const struct spoolss_63 *r)
29874 if (flags & NDR_IN) {
29876 if (flags & NDR_OUT) {
29877 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29879 return NDR_ERR_SUCCESS;
29882 static enum ndr_err_code ndr_pull_spoolss_63(struct ndr_pull *ndr, int flags, struct spoolss_63 *r)
29884 if (flags & NDR_IN) {
29886 if (flags & NDR_OUT) {
29887 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29889 return NDR_ERR_SUCCESS;
29892 _PUBLIC_ void ndr_print_spoolss_63(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_63 *r)
29894 ndr_print_struct(ndr, name, "spoolss_63");
29896 if (flags & NDR_SET_VALUES) {
29897 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29899 if (flags & NDR_IN) {
29900 ndr_print_struct(ndr, "in", "spoolss_63");
29904 if (flags & NDR_OUT) {
29905 ndr_print_struct(ndr, "out", "spoolss_63");
29907 ndr_print_WERROR(ndr, "result", r->out.result);
29913 static enum ndr_err_code ndr_push_spoolss_64(struct ndr_push *ndr, int flags, const struct spoolss_64 *r)
29915 if (flags & NDR_IN) {
29917 if (flags & NDR_OUT) {
29918 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29920 return NDR_ERR_SUCCESS;
29923 static enum ndr_err_code ndr_pull_spoolss_64(struct ndr_pull *ndr, int flags, struct spoolss_64 *r)
29925 if (flags & NDR_IN) {
29927 if (flags & NDR_OUT) {
29928 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29930 return NDR_ERR_SUCCESS;
29933 _PUBLIC_ void ndr_print_spoolss_64(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_64 *r)
29935 ndr_print_struct(ndr, name, "spoolss_64");
29937 if (flags & NDR_SET_VALUES) {
29938 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29940 if (flags & NDR_IN) {
29941 ndr_print_struct(ndr, "in", "spoolss_64");
29945 if (flags & NDR_OUT) {
29946 ndr_print_struct(ndr, "out", "spoolss_64");
29948 ndr_print_WERROR(ndr, "result", r->out.result);
29954 static enum ndr_err_code ndr_push_spoolss_65(struct ndr_push *ndr, int flags, const struct spoolss_65 *r)
29956 if (flags & NDR_IN) {
29958 if (flags & NDR_OUT) {
29959 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29961 return NDR_ERR_SUCCESS;
29964 static enum ndr_err_code ndr_pull_spoolss_65(struct ndr_pull *ndr, int flags, struct spoolss_65 *r)
29966 if (flags & NDR_IN) {
29968 if (flags & NDR_OUT) {
29969 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29971 return NDR_ERR_SUCCESS;
29974 _PUBLIC_ void ndr_print_spoolss_65(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_65 *r)
29976 ndr_print_struct(ndr, name, "spoolss_65");
29978 if (flags & NDR_SET_VALUES) {
29979 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29981 if (flags & NDR_IN) {
29982 ndr_print_struct(ndr, "in", "spoolss_65");
29986 if (flags & NDR_OUT) {
29987 ndr_print_struct(ndr, "out", "spoolss_65");
29989 ndr_print_WERROR(ndr, "result", r->out.result);
29995 static enum ndr_err_code ndr_push_spoolss_GetCorePrinterDrivers(struct ndr_push *ndr, int flags, const struct spoolss_GetCorePrinterDrivers *r)
29997 uint32_t cntr_core_printer_drivers_1;
29998 if (flags & NDR_IN) {
29999 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
30000 if (r->in.servername) {
30001 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
30002 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
30003 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
30004 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
30006 if (r->in.architecture == NULL) {
30007 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
30009 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
30010 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
30011 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
30012 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
30013 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.core_driver_size));
30014 if (r->in.core_driver_dependencies == NULL) {
30015 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
30017 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.core_driver_size));
30018 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.core_driver_dependencies, r->in.core_driver_size, sizeof(uint16_t), CH_UTF16));
30019 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.core_printer_driver_count));
30021 if (flags & NDR_OUT) {
30022 if (r->out.core_printer_drivers == NULL) {
30023 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
30025 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.core_printer_driver_count));
30026 for (cntr_core_printer_drivers_1 = 0; cntr_core_printer_drivers_1 < r->in.core_printer_driver_count; cntr_core_printer_drivers_1++) {
30027 NDR_CHECK(ndr_push_spoolss_CorePrinterDriver(ndr, NDR_SCALARS, &r->out.core_printer_drivers[cntr_core_printer_drivers_1]));
30029 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30031 return NDR_ERR_SUCCESS;
30034 static enum ndr_err_code ndr_pull_spoolss_GetCorePrinterDrivers(struct ndr_pull *ndr, int flags, struct spoolss_GetCorePrinterDrivers *r)
30036 uint32_t _ptr_servername;
30037 uint32_t cntr_core_printer_drivers_1;
30038 TALLOC_CTX *_mem_save_servername_0;
30039 TALLOC_CTX *_mem_save_core_printer_drivers_1;
30040 if (flags & NDR_IN) {
30041 ZERO_STRUCT(r->out);
30043 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
30044 if (_ptr_servername) {
30045 NDR_PULL_ALLOC(ndr, r->in.servername);
30047 r->in.servername = NULL;
30049 if (r->in.servername) {
30050 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
30051 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
30052 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
30053 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
30054 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
30055 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));
30057 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
30058 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
30059 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
30061 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
30062 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
30063 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
30064 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));
30066 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
30067 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
30068 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.core_driver_size));
30069 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.core_driver_dependencies));
30070 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));
30071 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.core_printer_driver_count));
30072 NDR_PULL_ALLOC_N(ndr, r->out.core_printer_drivers, r->in.core_printer_driver_count);
30073 memset(r->out.core_printer_drivers, 0, (r->in.core_printer_driver_count) * sizeof(*r->out.core_printer_drivers));
30074 if (r->in.core_driver_dependencies) {
30075 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.core_driver_dependencies, r->in.core_driver_size));
30078 if (flags & NDR_OUT) {
30079 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.core_printer_drivers));
30080 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
30081 NDR_PULL_ALLOC_N(ndr, r->out.core_printer_drivers, ndr_get_array_size(ndr, &r->out.core_printer_drivers));
30083 _mem_save_core_printer_drivers_1 = NDR_PULL_GET_MEM_CTX(ndr);
30084 NDR_PULL_SET_MEM_CTX(ndr, r->out.core_printer_drivers, 0);
30085 for (cntr_core_printer_drivers_1 = 0; cntr_core_printer_drivers_1 < r->in.core_printer_driver_count; cntr_core_printer_drivers_1++) {
30086 NDR_CHECK(ndr_pull_spoolss_CorePrinterDriver(ndr, NDR_SCALARS, &r->out.core_printer_drivers[cntr_core_printer_drivers_1]));
30088 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_printer_drivers_1, 0);
30089 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30090 if (r->out.core_printer_drivers) {
30091 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.core_printer_drivers, r->in.core_printer_driver_count));
30094 return NDR_ERR_SUCCESS;
30097 _PUBLIC_ void ndr_print_spoolss_GetCorePrinterDrivers(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetCorePrinterDrivers *r)
30099 uint32_t cntr_core_printer_drivers_1;
30100 ndr_print_struct(ndr, name, "spoolss_GetCorePrinterDrivers");
30102 if (flags & NDR_SET_VALUES) {
30103 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30105 if (flags & NDR_IN) {
30106 ndr_print_struct(ndr, "in", "spoolss_GetCorePrinterDrivers");
30108 ndr_print_ptr(ndr, "servername", r->in.servername);
30110 if (r->in.servername) {
30111 ndr_print_string(ndr, "servername", r->in.servername);
30114 ndr_print_ptr(ndr, "architecture", r->in.architecture);
30116 ndr_print_string(ndr, "architecture", r->in.architecture);
30118 ndr_print_uint32(ndr, "core_driver_size", r->in.core_driver_size);
30119 ndr_print_ptr(ndr, "core_driver_dependencies", r->in.core_driver_dependencies);
30121 ndr_print_string(ndr, "core_driver_dependencies", r->in.core_driver_dependencies);
30123 ndr_print_uint32(ndr, "core_printer_driver_count", r->in.core_printer_driver_count);
30126 if (flags & NDR_OUT) {
30127 ndr_print_struct(ndr, "out", "spoolss_GetCorePrinterDrivers");
30129 ndr_print_ptr(ndr, "core_printer_drivers", r->out.core_printer_drivers);
30131 ndr->print(ndr, "%s: ARRAY(%d)", "core_printer_drivers", (int)r->in.core_printer_driver_count);
30133 for (cntr_core_printer_drivers_1=0;cntr_core_printer_drivers_1<r->in.core_printer_driver_count;cntr_core_printer_drivers_1++) {
30135 if (asprintf(&idx_1, "[%d]", cntr_core_printer_drivers_1) != -1) {
30136 ndr_print_spoolss_CorePrinterDriver(ndr, "core_printer_drivers", &r->out.core_printer_drivers[cntr_core_printer_drivers_1]);
30142 ndr_print_WERROR(ndr, "result", r->out.result);
30148 static enum ndr_err_code ndr_push_spoolss_67(struct ndr_push *ndr, int flags, const struct spoolss_67 *r)
30150 if (flags & NDR_IN) {
30152 if (flags & NDR_OUT) {
30153 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30155 return NDR_ERR_SUCCESS;
30158 static enum ndr_err_code ndr_pull_spoolss_67(struct ndr_pull *ndr, int flags, struct spoolss_67 *r)
30160 if (flags & NDR_IN) {
30162 if (flags & NDR_OUT) {
30163 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30165 return NDR_ERR_SUCCESS;
30168 _PUBLIC_ void ndr_print_spoolss_67(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_67 *r)
30170 ndr_print_struct(ndr, name, "spoolss_67");
30172 if (flags & NDR_SET_VALUES) {
30173 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30175 if (flags & NDR_IN) {
30176 ndr_print_struct(ndr, "in", "spoolss_67");
30180 if (flags & NDR_OUT) {
30181 ndr_print_struct(ndr, "out", "spoolss_67");
30183 ndr_print_WERROR(ndr, "result", r->out.result);
30189 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriverPackagePath(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriverPackagePath *r)
30191 if (flags & NDR_IN) {
30192 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
30193 if (r->in.servername) {
30194 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
30195 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
30196 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
30197 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
30199 if (r->in.architecture == NULL) {
30200 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
30202 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
30203 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
30204 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
30205 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
30206 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.language));
30207 if (r->in.language) {
30208 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.language, CH_UTF16)));
30209 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
30210 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.language, CH_UTF16)));
30211 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.language, ndr_charset_length(r->in.language, CH_UTF16), sizeof(uint16_t), CH_UTF16));
30213 if (r->in.package_id == NULL) {
30214 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
30216 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.package_id, CH_UTF16)));
30217 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
30218 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.package_id, CH_UTF16)));
30219 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));
30220 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.driver_package_cab));
30221 if (r->in.driver_package_cab) {
30222 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.driver_package_cab_size));
30223 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver_package_cab, r->in.driver_package_cab_size, sizeof(uint16_t), CH_UTF16));
30225 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.driver_package_cab_size));
30227 if (flags & NDR_OUT) {
30228 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.driver_package_cab));
30229 if (r->out.driver_package_cab) {
30230 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.driver_package_cab_size));
30231 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->out.driver_package_cab, r->in.driver_package_cab_size, sizeof(uint16_t), CH_UTF16));
30233 if (r->out.required == NULL) {
30234 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
30236 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.required));
30237 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30239 return NDR_ERR_SUCCESS;
30242 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriverPackagePath(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriverPackagePath *r)
30244 uint32_t _ptr_servername;
30245 uint32_t _ptr_language;
30246 uint32_t _ptr_driver_package_cab;
30247 TALLOC_CTX *_mem_save_servername_0;
30248 TALLOC_CTX *_mem_save_language_0;
30249 TALLOC_CTX *_mem_save_driver_package_cab_0;
30250 TALLOC_CTX *_mem_save_required_0;
30251 if (flags & NDR_IN) {
30252 ZERO_STRUCT(r->out);
30254 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
30255 if (_ptr_servername) {
30256 NDR_PULL_ALLOC(ndr, r->in.servername);
30258 r->in.servername = NULL;
30260 if (r->in.servername) {
30261 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
30262 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
30263 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
30264 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
30265 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
30266 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));
30268 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
30269 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
30270 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
30272 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
30273 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
30274 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
30275 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));
30277 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
30278 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
30279 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_language));
30280 if (_ptr_language) {
30281 NDR_PULL_ALLOC(ndr, r->in.language);
30283 r->in.language = NULL;
30285 if (r->in.language) {
30286 _mem_save_language_0 = NDR_PULL_GET_MEM_CTX(ndr);
30287 NDR_PULL_SET_MEM_CTX(ndr, r->in.language, 0);
30288 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.language));
30289 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.language));
30290 if (ndr_get_array_length(ndr, &r->in.language) > ndr_get_array_size(ndr, &r->in.language)) {
30291 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));
30293 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.language), sizeof(uint16_t)));
30294 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.language, ndr_get_array_length(ndr, &r->in.language), sizeof(uint16_t), CH_UTF16));
30295 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_language_0, 0);
30297 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.package_id));
30298 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.package_id));
30299 if (ndr_get_array_length(ndr, &r->in.package_id) > ndr_get_array_size(ndr, &r->in.package_id)) {
30300 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));
30302 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.package_id), sizeof(uint16_t)));
30303 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));
30304 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_package_cab));
30305 if (_ptr_driver_package_cab) {
30306 NDR_PULL_ALLOC(ndr, r->in.driver_package_cab);
30308 r->in.driver_package_cab = NULL;
30310 if (r->in.driver_package_cab) {
30311 _mem_save_driver_package_cab_0 = NDR_PULL_GET_MEM_CTX(ndr);
30312 NDR_PULL_SET_MEM_CTX(ndr, r->in.driver_package_cab, 0);
30313 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver_package_cab));
30314 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));
30315 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_package_cab_0, 0);
30317 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.driver_package_cab_size));
30318 NDR_PULL_ALLOC(ndr, r->out.required);
30319 ZERO_STRUCTP(r->out.required);
30320 if (r->in.driver_package_cab) {
30321 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.driver_package_cab, r->in.driver_package_cab_size));
30324 if (flags & NDR_OUT) {
30325 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_package_cab));
30326 if (_ptr_driver_package_cab) {
30327 NDR_PULL_ALLOC(ndr, r->out.driver_package_cab);
30329 r->out.driver_package_cab = NULL;
30331 if (r->out.driver_package_cab) {
30332 _mem_save_driver_package_cab_0 = NDR_PULL_GET_MEM_CTX(ndr);
30333 NDR_PULL_SET_MEM_CTX(ndr, r->out.driver_package_cab, 0);
30334 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.driver_package_cab));
30335 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));
30336 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_package_cab_0, 0);
30338 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
30339 NDR_PULL_ALLOC(ndr, r->out.required);
30341 _mem_save_required_0 = NDR_PULL_GET_MEM_CTX(ndr);
30342 NDR_PULL_SET_MEM_CTX(ndr, r->out.required, LIBNDR_FLAG_REF_ALLOC);
30343 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.required));
30344 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_required_0, LIBNDR_FLAG_REF_ALLOC);
30345 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30346 if (r->out.driver_package_cab) {
30347 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.driver_package_cab, r->in.driver_package_cab_size));
30350 return NDR_ERR_SUCCESS;
30353 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriverPackagePath(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriverPackagePath *r)
30355 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriverPackagePath");
30357 if (flags & NDR_SET_VALUES) {
30358 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30360 if (flags & NDR_IN) {
30361 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriverPackagePath");
30363 ndr_print_ptr(ndr, "servername", r->in.servername);
30365 if (r->in.servername) {
30366 ndr_print_string(ndr, "servername", r->in.servername);
30369 ndr_print_ptr(ndr, "architecture", r->in.architecture);
30371 ndr_print_string(ndr, "architecture", r->in.architecture);
30373 ndr_print_ptr(ndr, "language", r->in.language);
30375 if (r->in.language) {
30376 ndr_print_string(ndr, "language", r->in.language);
30379 ndr_print_ptr(ndr, "package_id", r->in.package_id);
30381 ndr_print_string(ndr, "package_id", r->in.package_id);
30383 ndr_print_ptr(ndr, "driver_package_cab", r->in.driver_package_cab);
30385 if (r->in.driver_package_cab) {
30386 ndr_print_string(ndr, "driver_package_cab", r->in.driver_package_cab);
30389 ndr_print_uint32(ndr, "driver_package_cab_size", r->in.driver_package_cab_size);
30392 if (flags & NDR_OUT) {
30393 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriverPackagePath");
30395 ndr_print_ptr(ndr, "driver_package_cab", r->out.driver_package_cab);
30397 if (r->out.driver_package_cab) {
30398 ndr_print_string(ndr, "driver_package_cab", r->out.driver_package_cab);
30401 ndr_print_ptr(ndr, "required", r->out.required);
30403 ndr_print_uint32(ndr, "required", *r->out.required);
30405 ndr_print_WERROR(ndr, "result", r->out.result);
30411 static enum ndr_err_code ndr_push_spoolss_69(struct ndr_push *ndr, int flags, const struct spoolss_69 *r)
30413 if (flags & NDR_IN) {
30415 if (flags & NDR_OUT) {
30416 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30418 return NDR_ERR_SUCCESS;
30421 static enum ndr_err_code ndr_pull_spoolss_69(struct ndr_pull *ndr, int flags, struct spoolss_69 *r)
30423 if (flags & NDR_IN) {
30425 if (flags & NDR_OUT) {
30426 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30428 return NDR_ERR_SUCCESS;
30431 _PUBLIC_ void ndr_print_spoolss_69(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_69 *r)
30433 ndr_print_struct(ndr, name, "spoolss_69");
30435 if (flags & NDR_SET_VALUES) {
30436 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30438 if (flags & NDR_IN) {
30439 ndr_print_struct(ndr, "in", "spoolss_69");
30443 if (flags & NDR_OUT) {
30444 ndr_print_struct(ndr, "out", "spoolss_69");
30446 ndr_print_WERROR(ndr, "result", r->out.result);
30452 static enum ndr_err_code ndr_push_spoolss_6a(struct ndr_push *ndr, int flags, const struct spoolss_6a *r)
30454 if (flags & NDR_IN) {
30456 if (flags & NDR_OUT) {
30457 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30459 return NDR_ERR_SUCCESS;
30462 static enum ndr_err_code ndr_pull_spoolss_6a(struct ndr_pull *ndr, int flags, struct spoolss_6a *r)
30464 if (flags & NDR_IN) {
30466 if (flags & NDR_OUT) {
30467 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30469 return NDR_ERR_SUCCESS;
30472 _PUBLIC_ void ndr_print_spoolss_6a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_6a *r)
30474 ndr_print_struct(ndr, name, "spoolss_6a");
30476 if (flags & NDR_SET_VALUES) {
30477 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30479 if (flags & NDR_IN) {
30480 ndr_print_struct(ndr, "in", "spoolss_6a");
30484 if (flags & NDR_OUT) {
30485 ndr_print_struct(ndr, "out", "spoolss_6a");
30487 ndr_print_WERROR(ndr, "result", r->out.result);
30493 static enum ndr_err_code ndr_push_spoolss_6b(struct ndr_push *ndr, int flags, const struct spoolss_6b *r)
30495 if (flags & NDR_IN) {
30497 if (flags & NDR_OUT) {
30498 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30500 return NDR_ERR_SUCCESS;
30503 static enum ndr_err_code ndr_pull_spoolss_6b(struct ndr_pull *ndr, int flags, struct spoolss_6b *r)
30505 if (flags & NDR_IN) {
30507 if (flags & NDR_OUT) {
30508 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30510 return NDR_ERR_SUCCESS;
30513 _PUBLIC_ void ndr_print_spoolss_6b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_6b *r)
30515 ndr_print_struct(ndr, name, "spoolss_6b");
30517 if (flags & NDR_SET_VALUES) {
30518 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30520 if (flags & NDR_IN) {
30521 ndr_print_struct(ndr, "in", "spoolss_6b");
30525 if (flags & NDR_OUT) {
30526 ndr_print_struct(ndr, "out", "spoolss_6b");
30528 ndr_print_WERROR(ndr, "result", r->out.result);
30534 static enum ndr_err_code ndr_push_spoolss_6c(struct ndr_push *ndr, int flags, const struct spoolss_6c *r)
30536 if (flags & NDR_IN) {
30538 if (flags & NDR_OUT) {
30539 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30541 return NDR_ERR_SUCCESS;
30544 static enum ndr_err_code ndr_pull_spoolss_6c(struct ndr_pull *ndr, int flags, struct spoolss_6c *r)
30546 if (flags & NDR_IN) {
30548 if (flags & NDR_OUT) {
30549 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30551 return NDR_ERR_SUCCESS;
30554 _PUBLIC_ void ndr_print_spoolss_6c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_6c *r)
30556 ndr_print_struct(ndr, name, "spoolss_6c");
30558 if (flags & NDR_SET_VALUES) {
30559 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30561 if (flags & NDR_IN) {
30562 ndr_print_struct(ndr, "in", "spoolss_6c");
30566 if (flags & NDR_OUT) {
30567 ndr_print_struct(ndr, "out", "spoolss_6c");
30569 ndr_print_WERROR(ndr, "result", r->out.result);
30575 static enum ndr_err_code ndr_push_spoolss_6d(struct ndr_push *ndr, int flags, const struct spoolss_6d *r)
30577 if (flags & NDR_IN) {
30579 if (flags & NDR_OUT) {
30580 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30582 return NDR_ERR_SUCCESS;
30585 static enum ndr_err_code ndr_pull_spoolss_6d(struct ndr_pull *ndr, int flags, struct spoolss_6d *r)
30587 if (flags & NDR_IN) {
30589 if (flags & NDR_OUT) {
30590 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30592 return NDR_ERR_SUCCESS;
30595 _PUBLIC_ void ndr_print_spoolss_6d(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_6d *r)
30597 ndr_print_struct(ndr, name, "spoolss_6d");
30599 if (flags & NDR_SET_VALUES) {
30600 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30602 if (flags & NDR_IN) {
30603 ndr_print_struct(ndr, "in", "spoolss_6d");
30607 if (flags & NDR_OUT) {
30608 ndr_print_struct(ndr, "out", "spoolss_6d");
30610 ndr_print_WERROR(ndr, "result", r->out.result);
30616 static const struct ndr_interface_call spoolss_calls[] = {
30618 "spoolss_EnumPrinters",
30619 sizeof(struct spoolss_EnumPrinters),
30620 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinters,
30621 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinters,
30622 (ndr_print_function_t) ndr_print_spoolss_EnumPrinters,
30626 "spoolss_OpenPrinter",
30627 sizeof(struct spoolss_OpenPrinter),
30628 (ndr_push_flags_fn_t) ndr_push_spoolss_OpenPrinter,
30629 (ndr_pull_flags_fn_t) ndr_pull_spoolss_OpenPrinter,
30630 (ndr_print_function_t) ndr_print_spoolss_OpenPrinter,
30635 sizeof(struct spoolss_SetJob),
30636 (ndr_push_flags_fn_t) ndr_push_spoolss_SetJob,
30637 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetJob,
30638 (ndr_print_function_t) ndr_print_spoolss_SetJob,
30643 sizeof(struct spoolss_GetJob),
30644 (ndr_push_flags_fn_t) ndr_push_spoolss_GetJob,
30645 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetJob,
30646 (ndr_print_function_t) ndr_print_spoolss_GetJob,
30650 "spoolss_EnumJobs",
30651 sizeof(struct spoolss_EnumJobs),
30652 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumJobs,
30653 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumJobs,
30654 (ndr_print_function_t) ndr_print_spoolss_EnumJobs,
30658 "spoolss_AddPrinter",
30659 sizeof(struct spoolss_AddPrinter),
30660 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinter,
30661 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinter,
30662 (ndr_print_function_t) ndr_print_spoolss_AddPrinter,
30666 "spoolss_DeletePrinter",
30667 sizeof(struct spoolss_DeletePrinter),
30668 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinter,
30669 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinter,
30670 (ndr_print_function_t) ndr_print_spoolss_DeletePrinter,
30674 "spoolss_SetPrinter",
30675 sizeof(struct spoolss_SetPrinter),
30676 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinter,
30677 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinter,
30678 (ndr_print_function_t) ndr_print_spoolss_SetPrinter,
30682 "spoolss_GetPrinter",
30683 sizeof(struct spoolss_GetPrinter),
30684 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinter,
30685 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinter,
30686 (ndr_print_function_t) ndr_print_spoolss_GetPrinter,
30690 "spoolss_AddPrinterDriver",
30691 sizeof(struct spoolss_AddPrinterDriver),
30692 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterDriver,
30693 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterDriver,
30694 (ndr_print_function_t) ndr_print_spoolss_AddPrinterDriver,
30698 "spoolss_EnumPrinterDrivers",
30699 sizeof(struct spoolss_EnumPrinterDrivers),
30700 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterDrivers,
30701 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterDrivers,
30702 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterDrivers,
30706 "spoolss_GetPrinterDriver",
30707 sizeof(struct spoolss_GetPrinterDriver),
30708 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriver,
30709 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriver,
30710 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriver,
30714 "spoolss_GetPrinterDriverDirectory",
30715 sizeof(struct spoolss_GetPrinterDriverDirectory),
30716 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriverDirectory,
30717 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriverDirectory,
30718 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriverDirectory,
30722 "spoolss_DeletePrinterDriver",
30723 sizeof(struct spoolss_DeletePrinterDriver),
30724 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDriver,
30725 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDriver,
30726 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDriver,
30730 "spoolss_AddPrintProcessor",
30731 sizeof(struct spoolss_AddPrintProcessor),
30732 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrintProcessor,
30733 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrintProcessor,
30734 (ndr_print_function_t) ndr_print_spoolss_AddPrintProcessor,
30738 "spoolss_EnumPrintProcessors",
30739 sizeof(struct spoolss_EnumPrintProcessors),
30740 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrintProcessors,
30741 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrintProcessors,
30742 (ndr_print_function_t) ndr_print_spoolss_EnumPrintProcessors,
30746 "spoolss_GetPrintProcessorDirectory",
30747 sizeof(struct spoolss_GetPrintProcessorDirectory),
30748 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrintProcessorDirectory,
30749 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrintProcessorDirectory,
30750 (ndr_print_function_t) ndr_print_spoolss_GetPrintProcessorDirectory,
30754 "spoolss_StartDocPrinter",
30755 sizeof(struct spoolss_StartDocPrinter),
30756 (ndr_push_flags_fn_t) ndr_push_spoolss_StartDocPrinter,
30757 (ndr_pull_flags_fn_t) ndr_pull_spoolss_StartDocPrinter,
30758 (ndr_print_function_t) ndr_print_spoolss_StartDocPrinter,
30762 "spoolss_StartPagePrinter",
30763 sizeof(struct spoolss_StartPagePrinter),
30764 (ndr_push_flags_fn_t) ndr_push_spoolss_StartPagePrinter,
30765 (ndr_pull_flags_fn_t) ndr_pull_spoolss_StartPagePrinter,
30766 (ndr_print_function_t) ndr_print_spoolss_StartPagePrinter,
30770 "spoolss_WritePrinter",
30771 sizeof(struct spoolss_WritePrinter),
30772 (ndr_push_flags_fn_t) ndr_push_spoolss_WritePrinter,
30773 (ndr_pull_flags_fn_t) ndr_pull_spoolss_WritePrinter,
30774 (ndr_print_function_t) ndr_print_spoolss_WritePrinter,
30778 "spoolss_EndPagePrinter",
30779 sizeof(struct spoolss_EndPagePrinter),
30780 (ndr_push_flags_fn_t) ndr_push_spoolss_EndPagePrinter,
30781 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EndPagePrinter,
30782 (ndr_print_function_t) ndr_print_spoolss_EndPagePrinter,
30786 "spoolss_AbortPrinter",
30787 sizeof(struct spoolss_AbortPrinter),
30788 (ndr_push_flags_fn_t) ndr_push_spoolss_AbortPrinter,
30789 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AbortPrinter,
30790 (ndr_print_function_t) ndr_print_spoolss_AbortPrinter,
30794 "spoolss_ReadPrinter",
30795 sizeof(struct spoolss_ReadPrinter),
30796 (ndr_push_flags_fn_t) ndr_push_spoolss_ReadPrinter,
30797 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReadPrinter,
30798 (ndr_print_function_t) ndr_print_spoolss_ReadPrinter,
30802 "spoolss_EndDocPrinter",
30803 sizeof(struct spoolss_EndDocPrinter),
30804 (ndr_push_flags_fn_t) ndr_push_spoolss_EndDocPrinter,
30805 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EndDocPrinter,
30806 (ndr_print_function_t) ndr_print_spoolss_EndDocPrinter,
30811 sizeof(struct spoolss_AddJob),
30812 (ndr_push_flags_fn_t) ndr_push_spoolss_AddJob,
30813 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddJob,
30814 (ndr_print_function_t) ndr_print_spoolss_AddJob,
30818 "spoolss_ScheduleJob",
30819 sizeof(struct spoolss_ScheduleJob),
30820 (ndr_push_flags_fn_t) ndr_push_spoolss_ScheduleJob,
30821 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ScheduleJob,
30822 (ndr_print_function_t) ndr_print_spoolss_ScheduleJob,
30826 "spoolss_GetPrinterData",
30827 sizeof(struct spoolss_GetPrinterData),
30828 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterData,
30829 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterData,
30830 (ndr_print_function_t) ndr_print_spoolss_GetPrinterData,
30834 "spoolss_SetPrinterData",
30835 sizeof(struct spoolss_SetPrinterData),
30836 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinterData,
30837 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinterData,
30838 (ndr_print_function_t) ndr_print_spoolss_SetPrinterData,
30842 "spoolss_WaitForPrinterChange",
30843 sizeof(struct spoolss_WaitForPrinterChange),
30844 (ndr_push_flags_fn_t) ndr_push_spoolss_WaitForPrinterChange,
30845 (ndr_pull_flags_fn_t) ndr_pull_spoolss_WaitForPrinterChange,
30846 (ndr_print_function_t) ndr_print_spoolss_WaitForPrinterChange,
30850 "spoolss_ClosePrinter",
30851 sizeof(struct spoolss_ClosePrinter),
30852 (ndr_push_flags_fn_t) ndr_push_spoolss_ClosePrinter,
30853 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ClosePrinter,
30854 (ndr_print_function_t) ndr_print_spoolss_ClosePrinter,
30859 sizeof(struct spoolss_AddForm),
30860 (ndr_push_flags_fn_t) ndr_push_spoolss_AddForm,
30861 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddForm,
30862 (ndr_print_function_t) ndr_print_spoolss_AddForm,
30866 "spoolss_DeleteForm",
30867 sizeof(struct spoolss_DeleteForm),
30868 (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteForm,
30869 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteForm,
30870 (ndr_print_function_t) ndr_print_spoolss_DeleteForm,
30875 sizeof(struct spoolss_GetForm),
30876 (ndr_push_flags_fn_t) ndr_push_spoolss_GetForm,
30877 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetForm,
30878 (ndr_print_function_t) ndr_print_spoolss_GetForm,
30883 sizeof(struct spoolss_SetForm),
30884 (ndr_push_flags_fn_t) ndr_push_spoolss_SetForm,
30885 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetForm,
30886 (ndr_print_function_t) ndr_print_spoolss_SetForm,
30890 "spoolss_EnumForms",
30891 sizeof(struct spoolss_EnumForms),
30892 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumForms,
30893 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumForms,
30894 (ndr_print_function_t) ndr_print_spoolss_EnumForms,
30898 "spoolss_EnumPorts",
30899 sizeof(struct spoolss_EnumPorts),
30900 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPorts,
30901 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPorts,
30902 (ndr_print_function_t) ndr_print_spoolss_EnumPorts,
30906 "spoolss_EnumMonitors",
30907 sizeof(struct spoolss_EnumMonitors),
30908 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumMonitors,
30909 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumMonitors,
30910 (ndr_print_function_t) ndr_print_spoolss_EnumMonitors,
30915 sizeof(struct spoolss_AddPort),
30916 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPort,
30917 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPort,
30918 (ndr_print_function_t) ndr_print_spoolss_AddPort,
30922 "spoolss_ConfigurePort",
30923 sizeof(struct spoolss_ConfigurePort),
30924 (ndr_push_flags_fn_t) ndr_push_spoolss_ConfigurePort,
30925 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ConfigurePort,
30926 (ndr_print_function_t) ndr_print_spoolss_ConfigurePort,
30930 "spoolss_DeletePort",
30931 sizeof(struct spoolss_DeletePort),
30932 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePort,
30933 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePort,
30934 (ndr_print_function_t) ndr_print_spoolss_DeletePort,
30938 "spoolss_CreatePrinterIC",
30939 sizeof(struct spoolss_CreatePrinterIC),
30940 (ndr_push_flags_fn_t) ndr_push_spoolss_CreatePrinterIC,
30941 (ndr_pull_flags_fn_t) ndr_pull_spoolss_CreatePrinterIC,
30942 (ndr_print_function_t) ndr_print_spoolss_CreatePrinterIC,
30946 "spoolss_PlayGDIScriptOnPrinterIC",
30947 sizeof(struct spoolss_PlayGDIScriptOnPrinterIC),
30948 (ndr_push_flags_fn_t) ndr_push_spoolss_PlayGDIScriptOnPrinterIC,
30949 (ndr_pull_flags_fn_t) ndr_pull_spoolss_PlayGDIScriptOnPrinterIC,
30950 (ndr_print_function_t) ndr_print_spoolss_PlayGDIScriptOnPrinterIC,
30954 "spoolss_DeletePrinterIC",
30955 sizeof(struct spoolss_DeletePrinterIC),
30956 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterIC,
30957 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterIC,
30958 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterIC,
30962 "spoolss_AddPrinterConnection",
30963 sizeof(struct spoolss_AddPrinterConnection),
30964 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterConnection,
30965 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterConnection,
30966 (ndr_print_function_t) ndr_print_spoolss_AddPrinterConnection,
30970 "spoolss_DeletePrinterConnection",
30971 sizeof(struct spoolss_DeletePrinterConnection),
30972 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterConnection,
30973 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterConnection,
30974 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterConnection,
30978 "spoolss_PrinterMessageBox",
30979 sizeof(struct spoolss_PrinterMessageBox),
30980 (ndr_push_flags_fn_t) ndr_push_spoolss_PrinterMessageBox,
30981 (ndr_pull_flags_fn_t) ndr_pull_spoolss_PrinterMessageBox,
30982 (ndr_print_function_t) ndr_print_spoolss_PrinterMessageBox,
30986 "spoolss_AddMonitor",
30987 sizeof(struct spoolss_AddMonitor),
30988 (ndr_push_flags_fn_t) ndr_push_spoolss_AddMonitor,
30989 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddMonitor,
30990 (ndr_print_function_t) ndr_print_spoolss_AddMonitor,
30994 "spoolss_DeleteMonitor",
30995 sizeof(struct spoolss_DeleteMonitor),
30996 (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteMonitor,
30997 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteMonitor,
30998 (ndr_print_function_t) ndr_print_spoolss_DeleteMonitor,
31002 "spoolss_DeletePrintProcessor",
31003 sizeof(struct spoolss_DeletePrintProcessor),
31004 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrintProcessor,
31005 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrintProcessor,
31006 (ndr_print_function_t) ndr_print_spoolss_DeletePrintProcessor,
31010 "spoolss_AddPrintProvidor",
31011 sizeof(struct spoolss_AddPrintProvidor),
31012 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrintProvidor,
31013 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrintProvidor,
31014 (ndr_print_function_t) ndr_print_spoolss_AddPrintProvidor,
31018 "spoolss_DeletePrintProvidor",
31019 sizeof(struct spoolss_DeletePrintProvidor),
31020 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrintProvidor,
31021 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrintProvidor,
31022 (ndr_print_function_t) ndr_print_spoolss_DeletePrintProvidor,
31026 "spoolss_EnumPrintProcDataTypes",
31027 sizeof(struct spoolss_EnumPrintProcDataTypes),
31028 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrintProcDataTypes,
31029 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrintProcDataTypes,
31030 (ndr_print_function_t) ndr_print_spoolss_EnumPrintProcDataTypes,
31034 "spoolss_ResetPrinter",
31035 sizeof(struct spoolss_ResetPrinter),
31036 (ndr_push_flags_fn_t) ndr_push_spoolss_ResetPrinter,
31037 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ResetPrinter,
31038 (ndr_print_function_t) ndr_print_spoolss_ResetPrinter,
31042 "spoolss_GetPrinterDriver2",
31043 sizeof(struct spoolss_GetPrinterDriver2),
31044 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriver2,
31045 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriver2,
31046 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriver2,
31050 "spoolss_FindFirstPrinterChangeNotification",
31051 sizeof(struct spoolss_FindFirstPrinterChangeNotification),
31052 (ndr_push_flags_fn_t) ndr_push_spoolss_FindFirstPrinterChangeNotification,
31053 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindFirstPrinterChangeNotification,
31054 (ndr_print_function_t) ndr_print_spoolss_FindFirstPrinterChangeNotification,
31058 "spoolss_FindNextPrinterChangeNotification",
31059 sizeof(struct spoolss_FindNextPrinterChangeNotification),
31060 (ndr_push_flags_fn_t) ndr_push_spoolss_FindNextPrinterChangeNotification,
31061 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindNextPrinterChangeNotification,
31062 (ndr_print_function_t) ndr_print_spoolss_FindNextPrinterChangeNotification,
31066 "spoolss_FindClosePrinterNotify",
31067 sizeof(struct spoolss_FindClosePrinterNotify),
31068 (ndr_push_flags_fn_t) ndr_push_spoolss_FindClosePrinterNotify,
31069 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindClosePrinterNotify,
31070 (ndr_print_function_t) ndr_print_spoolss_FindClosePrinterNotify,
31074 "spoolss_RouterFindFirstPrinterChangeNotificationOld",
31075 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotificationOld),
31076 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld,
31077 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld,
31078 (ndr_print_function_t) ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld,
31082 "spoolss_ReplyOpenPrinter",
31083 sizeof(struct spoolss_ReplyOpenPrinter),
31084 (ndr_push_flags_fn_t) ndr_push_spoolss_ReplyOpenPrinter,
31085 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReplyOpenPrinter,
31086 (ndr_print_function_t) ndr_print_spoolss_ReplyOpenPrinter,
31090 "spoolss_RouterReplyPrinter",
31091 sizeof(struct spoolss_RouterReplyPrinter),
31092 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterReplyPrinter,
31093 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterReplyPrinter,
31094 (ndr_print_function_t) ndr_print_spoolss_RouterReplyPrinter,
31098 "spoolss_ReplyClosePrinter",
31099 sizeof(struct spoolss_ReplyClosePrinter),
31100 (ndr_push_flags_fn_t) ndr_push_spoolss_ReplyClosePrinter,
31101 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReplyClosePrinter,
31102 (ndr_print_function_t) ndr_print_spoolss_ReplyClosePrinter,
31106 "spoolss_AddPortEx",
31107 sizeof(struct spoolss_AddPortEx),
31108 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPortEx,
31109 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPortEx,
31110 (ndr_print_function_t) ndr_print_spoolss_AddPortEx,
31114 "spoolss_RouterFindFirstPrinterChangeNotification",
31115 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotification),
31116 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterFindFirstPrinterChangeNotification,
31117 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification,
31118 (ndr_print_function_t) ndr_print_spoolss_RouterFindFirstPrinterChangeNotification,
31122 "spoolss_SpoolerInit",
31123 sizeof(struct spoolss_SpoolerInit),
31124 (ndr_push_flags_fn_t) ndr_push_spoolss_SpoolerInit,
31125 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SpoolerInit,
31126 (ndr_print_function_t) ndr_print_spoolss_SpoolerInit,
31130 "spoolss_ResetPrinterEx",
31131 sizeof(struct spoolss_ResetPrinterEx),
31132 (ndr_push_flags_fn_t) ndr_push_spoolss_ResetPrinterEx,
31133 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ResetPrinterEx,
31134 (ndr_print_function_t) ndr_print_spoolss_ResetPrinterEx,
31138 "spoolss_RemoteFindFirstPrinterChangeNotifyEx",
31139 sizeof(struct spoolss_RemoteFindFirstPrinterChangeNotifyEx),
31140 (ndr_push_flags_fn_t) ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
31141 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
31142 (ndr_print_function_t) ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
31146 "spoolss_RouterReplyPrinterEx",
31147 sizeof(struct spoolss_RouterReplyPrinterEx),
31148 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterReplyPrinterEx,
31149 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterReplyPrinterEx,
31150 (ndr_print_function_t) ndr_print_spoolss_RouterReplyPrinterEx,
31154 "spoolss_RouterRefreshPrinterChangeNotify",
31155 sizeof(struct spoolss_RouterRefreshPrinterChangeNotify),
31156 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterRefreshPrinterChangeNotify,
31157 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterRefreshPrinterChangeNotify,
31158 (ndr_print_function_t) ndr_print_spoolss_RouterRefreshPrinterChangeNotify,
31163 sizeof(struct spoolss_44),
31164 (ndr_push_flags_fn_t) ndr_push_spoolss_44,
31165 (ndr_pull_flags_fn_t) ndr_pull_spoolss_44,
31166 (ndr_print_function_t) ndr_print_spoolss_44,
31170 "spoolss_OpenPrinterEx",
31171 sizeof(struct spoolss_OpenPrinterEx),
31172 (ndr_push_flags_fn_t) ndr_push_spoolss_OpenPrinterEx,
31173 (ndr_pull_flags_fn_t) ndr_pull_spoolss_OpenPrinterEx,
31174 (ndr_print_function_t) ndr_print_spoolss_OpenPrinterEx,
31178 "spoolss_AddPrinterEx",
31179 sizeof(struct spoolss_AddPrinterEx),
31180 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterEx,
31181 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterEx,
31182 (ndr_print_function_t) ndr_print_spoolss_AddPrinterEx,
31187 sizeof(struct spoolss_47),
31188 (ndr_push_flags_fn_t) ndr_push_spoolss_47,
31189 (ndr_pull_flags_fn_t) ndr_pull_spoolss_47,
31190 (ndr_print_function_t) ndr_print_spoolss_47,
31194 "spoolss_EnumPrinterData",
31195 sizeof(struct spoolss_EnumPrinterData),
31196 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterData,
31197 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterData,
31198 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterData,
31202 "spoolss_DeletePrinterData",
31203 sizeof(struct spoolss_DeletePrinterData),
31204 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterData,
31205 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterData,
31206 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterData,
31211 sizeof(struct spoolss_4a),
31212 (ndr_push_flags_fn_t) ndr_push_spoolss_4a,
31213 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4a,
31214 (ndr_print_function_t) ndr_print_spoolss_4a,
31219 sizeof(struct spoolss_4b),
31220 (ndr_push_flags_fn_t) ndr_push_spoolss_4b,
31221 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4b,
31222 (ndr_print_function_t) ndr_print_spoolss_4b,
31227 sizeof(struct spoolss_4c),
31228 (ndr_push_flags_fn_t) ndr_push_spoolss_4c,
31229 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4c,
31230 (ndr_print_function_t) ndr_print_spoolss_4c,
31234 "spoolss_SetPrinterDataEx",
31235 sizeof(struct spoolss_SetPrinterDataEx),
31236 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinterDataEx,
31237 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinterDataEx,
31238 (ndr_print_function_t) ndr_print_spoolss_SetPrinterDataEx,
31242 "spoolss_GetPrinterDataEx",
31243 sizeof(struct spoolss_GetPrinterDataEx),
31244 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDataEx,
31245 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDataEx,
31246 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDataEx,
31250 "spoolss_EnumPrinterDataEx",
31251 sizeof(struct spoolss_EnumPrinterDataEx),
31252 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterDataEx,
31253 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterDataEx,
31254 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterDataEx,
31258 "spoolss_EnumPrinterKey",
31259 sizeof(struct spoolss_EnumPrinterKey),
31260 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterKey,
31261 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterKey,
31262 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterKey,
31266 "spoolss_DeletePrinterDataEx",
31267 sizeof(struct spoolss_DeletePrinterDataEx),
31268 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDataEx,
31269 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDataEx,
31270 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDataEx,
31274 "spoolss_DeletePrinterKey",
31275 sizeof(struct spoolss_DeletePrinterKey),
31276 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterKey,
31277 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterKey,
31278 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterKey,
31283 sizeof(struct spoolss_53),
31284 (ndr_push_flags_fn_t) ndr_push_spoolss_53,
31285 (ndr_pull_flags_fn_t) ndr_pull_spoolss_53,
31286 (ndr_print_function_t) ndr_print_spoolss_53,
31290 "spoolss_DeletePrinterDriverEx",
31291 sizeof(struct spoolss_DeletePrinterDriverEx),
31292 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDriverEx,
31293 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDriverEx,
31294 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDriverEx,
31299 sizeof(struct spoolss_55),
31300 (ndr_push_flags_fn_t) ndr_push_spoolss_55,
31301 (ndr_pull_flags_fn_t) ndr_pull_spoolss_55,
31302 (ndr_print_function_t) ndr_print_spoolss_55,
31307 sizeof(struct spoolss_56),
31308 (ndr_push_flags_fn_t) ndr_push_spoolss_56,
31309 (ndr_pull_flags_fn_t) ndr_pull_spoolss_56,
31310 (ndr_print_function_t) ndr_print_spoolss_56,
31315 sizeof(struct spoolss_57),
31316 (ndr_push_flags_fn_t) ndr_push_spoolss_57,
31317 (ndr_pull_flags_fn_t) ndr_pull_spoolss_57,
31318 (ndr_print_function_t) ndr_print_spoolss_57,
31323 sizeof(struct spoolss_XcvData),
31324 (ndr_push_flags_fn_t) ndr_push_spoolss_XcvData,
31325 (ndr_pull_flags_fn_t) ndr_pull_spoolss_XcvData,
31326 (ndr_print_function_t) ndr_print_spoolss_XcvData,
31330 "spoolss_AddPrinterDriverEx",
31331 sizeof(struct spoolss_AddPrinterDriverEx),
31332 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterDriverEx,
31333 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterDriverEx,
31334 (ndr_print_function_t) ndr_print_spoolss_AddPrinterDriverEx,
31339 sizeof(struct spoolss_5a),
31340 (ndr_push_flags_fn_t) ndr_push_spoolss_5a,
31341 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5a,
31342 (ndr_print_function_t) ndr_print_spoolss_5a,
31347 sizeof(struct spoolss_5b),
31348 (ndr_push_flags_fn_t) ndr_push_spoolss_5b,
31349 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5b,
31350 (ndr_print_function_t) ndr_print_spoolss_5b,
31355 sizeof(struct spoolss_5c),
31356 (ndr_push_flags_fn_t) ndr_push_spoolss_5c,
31357 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5c,
31358 (ndr_print_function_t) ndr_print_spoolss_5c,
31363 sizeof(struct spoolss_5d),
31364 (ndr_push_flags_fn_t) ndr_push_spoolss_5d,
31365 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5d,
31366 (ndr_print_function_t) ndr_print_spoolss_5d,
31371 sizeof(struct spoolss_5e),
31372 (ndr_push_flags_fn_t) ndr_push_spoolss_5e,
31373 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5e,
31374 (ndr_print_function_t) ndr_print_spoolss_5e,
31379 sizeof(struct spoolss_5f),
31380 (ndr_push_flags_fn_t) ndr_push_spoolss_5f,
31381 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5f,
31382 (ndr_print_function_t) ndr_print_spoolss_5f,
31387 sizeof(struct spoolss_60),
31388 (ndr_push_flags_fn_t) ndr_push_spoolss_60,
31389 (ndr_pull_flags_fn_t) ndr_pull_spoolss_60,
31390 (ndr_print_function_t) ndr_print_spoolss_60,
31395 sizeof(struct spoolss_61),
31396 (ndr_push_flags_fn_t) ndr_push_spoolss_61,
31397 (ndr_pull_flags_fn_t) ndr_pull_spoolss_61,
31398 (ndr_print_function_t) ndr_print_spoolss_61,
31403 sizeof(struct spoolss_62),
31404 (ndr_push_flags_fn_t) ndr_push_spoolss_62,
31405 (ndr_pull_flags_fn_t) ndr_pull_spoolss_62,
31406 (ndr_print_function_t) ndr_print_spoolss_62,
31411 sizeof(struct spoolss_63),
31412 (ndr_push_flags_fn_t) ndr_push_spoolss_63,
31413 (ndr_pull_flags_fn_t) ndr_pull_spoolss_63,
31414 (ndr_print_function_t) ndr_print_spoolss_63,
31419 sizeof(struct spoolss_64),
31420 (ndr_push_flags_fn_t) ndr_push_spoolss_64,
31421 (ndr_pull_flags_fn_t) ndr_pull_spoolss_64,
31422 (ndr_print_function_t) ndr_print_spoolss_64,
31427 sizeof(struct spoolss_65),
31428 (ndr_push_flags_fn_t) ndr_push_spoolss_65,
31429 (ndr_pull_flags_fn_t) ndr_pull_spoolss_65,
31430 (ndr_print_function_t) ndr_print_spoolss_65,
31434 "spoolss_GetCorePrinterDrivers",
31435 sizeof(struct spoolss_GetCorePrinterDrivers),
31436 (ndr_push_flags_fn_t) ndr_push_spoolss_GetCorePrinterDrivers,
31437 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetCorePrinterDrivers,
31438 (ndr_print_function_t) ndr_print_spoolss_GetCorePrinterDrivers,
31443 sizeof(struct spoolss_67),
31444 (ndr_push_flags_fn_t) ndr_push_spoolss_67,
31445 (ndr_pull_flags_fn_t) ndr_pull_spoolss_67,
31446 (ndr_print_function_t) ndr_print_spoolss_67,
31450 "spoolss_GetPrinterDriverPackagePath",
31451 sizeof(struct spoolss_GetPrinterDriverPackagePath),
31452 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriverPackagePath,
31453 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriverPackagePath,
31454 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriverPackagePath,
31459 sizeof(struct spoolss_69),
31460 (ndr_push_flags_fn_t) ndr_push_spoolss_69,
31461 (ndr_pull_flags_fn_t) ndr_pull_spoolss_69,
31462 (ndr_print_function_t) ndr_print_spoolss_69,
31467 sizeof(struct spoolss_6a),
31468 (ndr_push_flags_fn_t) ndr_push_spoolss_6a,
31469 (ndr_pull_flags_fn_t) ndr_pull_spoolss_6a,
31470 (ndr_print_function_t) ndr_print_spoolss_6a,
31475 sizeof(struct spoolss_6b),
31476 (ndr_push_flags_fn_t) ndr_push_spoolss_6b,
31477 (ndr_pull_flags_fn_t) ndr_pull_spoolss_6b,
31478 (ndr_print_function_t) ndr_print_spoolss_6b,
31483 sizeof(struct spoolss_6c),
31484 (ndr_push_flags_fn_t) ndr_push_spoolss_6c,
31485 (ndr_pull_flags_fn_t) ndr_pull_spoolss_6c,
31486 (ndr_print_function_t) ndr_print_spoolss_6c,
31491 sizeof(struct spoolss_6d),
31492 (ndr_push_flags_fn_t) ndr_push_spoolss_6d,
31493 (ndr_pull_flags_fn_t) ndr_pull_spoolss_6d,
31494 (ndr_print_function_t) ndr_print_spoolss_6d,
31497 { NULL, 0, NULL, NULL, NULL, false }
31500 static const char * const spoolss_endpoint_strings[] = {
31501 "ncacn_np:[\\pipe\\spoolss]",
31504 static const struct ndr_interface_string_array spoolss_endpoints = {
31506 .names = spoolss_endpoint_strings
31509 static const char * const spoolss_authservice_strings[] = {
31513 static const struct ndr_interface_string_array spoolss_authservices = {
31515 .names = spoolss_authservice_strings
31519 const struct ndr_interface_table ndr_table_spoolss = {
31522 {0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0x89,0xab}},
31523 NDR_SPOOLSS_VERSION
31525 .helpstring = NDR_SPOOLSS_HELPSTRING,
31527 .calls = spoolss_calls,
31528 .endpoints = &spoolss_endpoints,
31529 .authservices = &spoolss_authservices