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 static enum ndr_err_code ndr_push_spoolss_PrinterStatus(struct ndr_push *ndr, int ndr_flags, uint32_t r)
233 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
234 return NDR_ERR_SUCCESS;
237 static enum ndr_err_code ndr_pull_spoolss_PrinterStatus(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
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(ndr, r->printername));
362 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
364 ndr->flags = _flags_save_string;
367 uint32_t _flags_save_string = ndr->flags;
368 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
370 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->servername));
371 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->servername));
373 ndr->flags = _flags_save_string;
376 return NDR_ERR_SUCCESS;
379 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo0(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo0 *r)
381 uint32_t _ptr_printername;
382 TALLOC_CTX *_mem_save_printername_0;
383 uint32_t _ptr_servername;
384 TALLOC_CTX *_mem_save_servername_0;
385 if (ndr_flags & NDR_SCALARS) {
386 NDR_CHECK(ndr_pull_align(ndr, 5));
388 uint32_t _flags_save_string = ndr->flags;
389 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
390 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
391 if (_ptr_printername) {
392 NDR_PULL_ALLOC(ndr, r->printername);
393 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
395 r->printername = NULL;
397 ndr->flags = _flags_save_string;
400 uint32_t _flags_save_string = ndr->flags;
401 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
402 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
403 if (_ptr_servername) {
404 NDR_PULL_ALLOC(ndr, r->servername);
405 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
407 r->servername = NULL;
409 ndr->flags = _flags_save_string;
411 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
412 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_jobs));
413 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_bytes));
414 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->time));
415 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->global_counter));
416 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
417 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
418 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->free_build));
419 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->spooling));
420 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_spooling));
421 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->session_counter));
422 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_out_of_paper));
423 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_not_ready));
424 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->job_error));
425 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->number_of_processors));
426 NDR_CHECK(ndr_pull_spoolss_ProcessorType(ndr, NDR_SCALARS, &r->processor_type));
427 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->high_part_total_bytes));
428 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->change_id));
429 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->last_error));
430 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
431 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->enumerate_network_printers));
432 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->c_setprinter));
433 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor_architecture));
434 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->processor_level));
435 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ref_ic));
436 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
437 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved3));
438 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
440 if (ndr_flags & NDR_BUFFERS) {
442 uint32_t _flags_save_string = ndr->flags;
443 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
444 if (r->printername) {
445 uint32_t _relative_save_offset;
446 _relative_save_offset = ndr->offset;
447 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
448 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
449 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
450 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
451 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
452 if (ndr->offset > ndr->relative_highest_offset) {
453 ndr->relative_highest_offset = ndr->offset;
455 ndr->offset = _relative_save_offset;
457 ndr->flags = _flags_save_string;
460 uint32_t _flags_save_string = ndr->flags;
461 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
463 uint32_t _relative_save_offset;
464 _relative_save_offset = ndr->offset;
465 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
466 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
467 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
468 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
469 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
470 if (ndr->offset > ndr->relative_highest_offset) {
471 ndr->relative_highest_offset = ndr->offset;
473 ndr->offset = _relative_save_offset;
475 ndr->flags = _flags_save_string;
478 return NDR_ERR_SUCCESS;
481 _PUBLIC_ void ndr_print_spoolss_PrinterInfo0(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo0 *r)
483 ndr_print_struct(ndr, name, "spoolss_PrinterInfo0");
485 ndr_print_ptr(ndr, "printername", r->printername);
487 if (r->printername) {
488 ndr_print_string(ndr, "printername", r->printername);
491 ndr_print_ptr(ndr, "servername", r->servername);
494 ndr_print_string(ndr, "servername", r->servername);
497 ndr_print_uint32(ndr, "cjobs", r->cjobs);
498 ndr_print_uint32(ndr, "total_jobs", r->total_jobs);
499 ndr_print_uint32(ndr, "total_bytes", r->total_bytes);
500 ndr_print_spoolss_Time(ndr, "time", &r->time);
501 ndr_print_uint32(ndr, "global_counter", r->global_counter);
502 ndr_print_uint32(ndr, "total_pages", r->total_pages);
503 ndr_print_uint32(ndr, "version", r->version);
504 ndr_print_uint32(ndr, "free_build", r->free_build);
505 ndr_print_uint32(ndr, "spooling", r->spooling);
506 ndr_print_uint32(ndr, "max_spooling", r->max_spooling);
507 ndr_print_uint32(ndr, "session_counter", r->session_counter);
508 ndr_print_uint32(ndr, "num_error_out_of_paper", r->num_error_out_of_paper);
509 ndr_print_uint32(ndr, "num_error_not_ready", r->num_error_not_ready);
510 ndr_print_spoolss_JobStatus(ndr, "job_error", r->job_error);
511 ndr_print_uint32(ndr, "number_of_processors", r->number_of_processors);
512 ndr_print_spoolss_ProcessorType(ndr, "processor_type", r->processor_type);
513 ndr_print_uint32(ndr, "high_part_total_bytes", r->high_part_total_bytes);
514 ndr_print_uint32(ndr, "change_id", r->change_id);
515 ndr_print_WERROR(ndr, "last_error", r->last_error);
516 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
517 ndr_print_uint32(ndr, "enumerate_network_printers", r->enumerate_network_printers);
518 ndr_print_uint32(ndr, "c_setprinter", r->c_setprinter);
519 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor_architecture", r->processor_architecture);
520 ndr_print_uint16(ndr, "processor_level", r->processor_level);
521 ndr_print_uint32(ndr, "ref_ic", r->ref_ic);
522 ndr_print_uint32(ndr, "reserved2", r->reserved2);
523 ndr_print_uint32(ndr, "reserved3", r->reserved3);
527 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo0(const struct spoolss_PrinterInfo0 *r, struct smb_iconv_convenience *ic, int flags)
529 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo0, ic);
532 static enum ndr_err_code ndr_push_spoolss_DeviceModeFields(struct ndr_push *ndr, int ndr_flags, uint32_t r)
534 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
535 return NDR_ERR_SUCCESS;
538 static enum ndr_err_code ndr_pull_spoolss_DeviceModeFields(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
541 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
543 return NDR_ERR_SUCCESS;
546 _PUBLIC_ void ndr_print_spoolss_DeviceModeFields(struct ndr_print *ndr, const char *name, uint32_t r)
548 ndr_print_uint32(ndr, name, r);
550 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_ORIENTATION", DEVMODE_ORIENTATION, r);
551 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PAPERSIZE", DEVMODE_PAPERSIZE, r);
552 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PAPERLENGTH", DEVMODE_PAPERLENGTH, r);
553 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PAPERWIDTH", DEVMODE_PAPERWIDTH, r);
554 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_SCALE", DEVMODE_SCALE, r);
555 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_POSITION", DEVMODE_POSITION, r);
556 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_NUP", DEVMODE_NUP, r);
557 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_COPIES", DEVMODE_COPIES, r);
558 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DEFAULTSOURCE", DEVMODE_DEFAULTSOURCE, r);
559 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PRINTQUALITY", DEVMODE_PRINTQUALITY, r);
560 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_COLOR", DEVMODE_COLOR, r);
561 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DUPLEX", DEVMODE_DUPLEX, r);
562 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_YRESOLUTION", DEVMODE_YRESOLUTION, r);
563 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_TTOPTION", DEVMODE_TTOPTION, r);
564 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_COLLATE", DEVMODE_COLLATE, r);
565 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_FORMNAME", DEVMODE_FORMNAME, r);
566 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_LOGPIXELS", DEVMODE_LOGPIXELS, r);
567 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_BITSPERPEL", DEVMODE_BITSPERPEL, r);
568 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PELSWIDTH", DEVMODE_PELSWIDTH, r);
569 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PELSHEIGHT", DEVMODE_PELSHEIGHT, r);
570 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DISPLAYFLAGS", DEVMODE_DISPLAYFLAGS, r);
571 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DISPLAYFREQUENCY", DEVMODE_DISPLAYFREQUENCY, r);
572 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_ICMMETHOD", DEVMODE_ICMMETHOD, r);
573 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_ICMINTENT", DEVMODE_ICMINTENT, r);
574 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_MEDIATYPE", DEVMODE_MEDIATYPE, r);
575 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DITHERTYPE", DEVMODE_DITHERTYPE, r);
576 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PANNINGWIDTH", DEVMODE_PANNINGWIDTH, r);
577 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PANNINGHEIGHT", DEVMODE_PANNINGHEIGHT, r);
581 static enum ndr_err_code ndr_push_spoolss_DeviceModeSpecVersion(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeSpecVersion r)
583 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
584 return NDR_ERR_SUCCESS;
587 static enum ndr_err_code ndr_pull_spoolss_DeviceModeSpecVersion(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeSpecVersion *r)
590 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
592 return NDR_ERR_SUCCESS;
595 _PUBLIC_ void ndr_print_spoolss_DeviceModeSpecVersion(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeSpecVersion r)
597 const char *val = NULL;
600 case DMSPEC_NT3: val = "DMSPEC_NT3"; break;
601 case DMSPEC_WIN95_98_ME: val = "DMSPEC_WIN95_98_ME"; break;
602 case DMSPEC_NT4_AND_ABOVE: val = "DMSPEC_NT4_AND_ABOVE"; break;
604 ndr_print_enum(ndr, name, "ENUM", val, r);
607 static enum ndr_err_code ndr_push_spoolss_DeviceModeOrientation(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeOrientation r)
609 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
610 return NDR_ERR_SUCCESS;
613 static enum ndr_err_code ndr_pull_spoolss_DeviceModeOrientation(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeOrientation *r)
616 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
618 return NDR_ERR_SUCCESS;
621 _PUBLIC_ void ndr_print_spoolss_DeviceModeOrientation(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeOrientation r)
623 const char *val = NULL;
626 case DMORIENT_PORTRAIT: val = "DMORIENT_PORTRAIT"; break;
627 case DMORIENT_LANDSCAPE: val = "DMORIENT_LANDSCAPE"; break;
629 ndr_print_enum(ndr, name, "ENUM", val, r);
632 static enum ndr_err_code ndr_push_spoolss_DeviceModePaperSize(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModePaperSize r)
634 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
635 return NDR_ERR_SUCCESS;
638 static enum ndr_err_code ndr_pull_spoolss_DeviceModePaperSize(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModePaperSize *r)
641 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
643 return NDR_ERR_SUCCESS;
646 _PUBLIC_ void ndr_print_spoolss_DeviceModePaperSize(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModePaperSize r)
648 const char *val = NULL;
651 case DMPAPER_LETTER: val = "DMPAPER_LETTER"; break;
652 case DMPAPER_LETTERSMALL: val = "DMPAPER_LETTERSMALL"; break;
653 case DMPAPER_TABLOID: val = "DMPAPER_TABLOID"; break;
654 case DMPAPER_LEDGER: val = "DMPAPER_LEDGER"; break;
655 case DMPAPER_LEGAL: val = "DMPAPER_LEGAL"; break;
656 case DMPAPER_STATEMENT: val = "DMPAPER_STATEMENT"; break;
657 case DMPAPER_EXECUTIVE: val = "DMPAPER_EXECUTIVE"; break;
658 case DMPAPER_A3: val = "DMPAPER_A3"; break;
659 case DMPAPER_A4: val = "DMPAPER_A4"; break;
660 case DMPAPER_A4SMALL: val = "DMPAPER_A4SMALL"; break;
661 case DMPAPER_A5: val = "DMPAPER_A5"; break;
662 case DMPAPER_B4: val = "DMPAPER_B4"; break;
663 case DMPAPER_B5: val = "DMPAPER_B5"; break;
664 case DMPAPER_FOLIO: val = "DMPAPER_FOLIO"; break;
665 case DMPAPER_QUARTO: val = "DMPAPER_QUARTO"; break;
666 case DMPAPER_10X14: val = "DMPAPER_10X14"; break;
667 case DMPAPER_11X17: val = "DMPAPER_11X17"; break;
668 case DMPAPER_NOTE: val = "DMPAPER_NOTE"; break;
669 case DMPAPER_ENV_9: val = "DMPAPER_ENV_9"; break;
670 case DMPAPER_ENV_10: val = "DMPAPER_ENV_10"; break;
671 case DMPAPER_ENV_11: val = "DMPAPER_ENV_11"; break;
672 case DMPAPER_ENV_12: val = "DMPAPER_ENV_12"; break;
673 case DMPAPER_ENV_14: val = "DMPAPER_ENV_14"; break;
674 case DMPAPER_CSHEET: val = "DMPAPER_CSHEET"; break;
675 case DMPAPER_DSHEET: val = "DMPAPER_DSHEET"; break;
676 case DMPAPER_ESHEET: val = "DMPAPER_ESHEET"; break;
677 case DMPAPER_ENV_DL: val = "DMPAPER_ENV_DL"; break;
678 case DMPAPER_ENV_C5: val = "DMPAPER_ENV_C5"; break;
679 case DMPAPER_ENV_C3: val = "DMPAPER_ENV_C3"; break;
680 case DMPAPER_ENV_C4: val = "DMPAPER_ENV_C4"; break;
681 case DMPAPER_ENV_C6: val = "DMPAPER_ENV_C6"; break;
682 case DMPAPER_ENV_C65: val = "DMPAPER_ENV_C65"; break;
683 case DMPAPER_ENV_B4: val = "DMPAPER_ENV_B4"; break;
684 case DMPAPER_ENV_B5: val = "DMPAPER_ENV_B5"; break;
685 case DMPAPER_ENV_B6: val = "DMPAPER_ENV_B6"; break;
686 case DMPAPER_ENV_ITALY: val = "DMPAPER_ENV_ITALY"; break;
687 case DMPAPER_ENV_MONARCH: val = "DMPAPER_ENV_MONARCH"; break;
688 case DMPAPER_ENV_PERSONAL: val = "DMPAPER_ENV_PERSONAL"; break;
689 case DMPAPER_FANFOLD_US: val = "DMPAPER_FANFOLD_US"; break;
690 case DMPAPER_FANFOLD_STD_GERMAN: val = "DMPAPER_FANFOLD_STD_GERMAN"; break;
691 case DMPAPER_FANFOLD_LGL_GERMAN: val = "DMPAPER_FANFOLD_LGL_GERMAN"; break;
692 case DMPAPER_DBL_JAPANESE_POSTCARD: val = "DMPAPER_DBL_JAPANESE_POSTCARD"; break;
693 case DMPAPER_A6: val = "DMPAPER_A6"; break;
694 case DMPAPER_JENV_KAKU2: val = "DMPAPER_JENV_KAKU2"; break;
695 case DMPAPER_JENV_KAKU3: val = "DMPAPER_JENV_KAKU3"; break;
696 case DMPAPER_JENV_CHOU3: val = "DMPAPER_JENV_CHOU3"; break;
697 case DMPAPER_JENV_CHOU4: val = "DMPAPER_JENV_CHOU4"; break;
698 case DMPAPER_LETTER_ROTATED: val = "DMPAPER_LETTER_ROTATED"; break;
699 case DMPAPER_A3_ROTATED: val = "DMPAPER_A3_ROTATED"; break;
700 case DMPAPER_A4_ROTATED: val = "DMPAPER_A4_ROTATED"; break;
701 case DMPAPER_A5_ROTATED: val = "DMPAPER_A5_ROTATED"; break;
702 case DMPAPER_B4_JIS_ROTATED: val = "DMPAPER_B4_JIS_ROTATED"; break;
703 case DMPAPER_B5_JIS_ROTATED: val = "DMPAPER_B5_JIS_ROTATED"; break;
704 case DMPAPER_JAPANESE_POSTCARD_ROTATED: val = "DMPAPER_JAPANESE_POSTCARD_ROTATED"; break;
705 case DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED: val = "DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED"; break;
706 case DMPAPER_A6_ROTATED: val = "DMPAPER_A6_ROTATED"; break;
707 case DMPAPER_JENV_KAKU2_ROTATED: val = "DMPAPER_JENV_KAKU2_ROTATED"; break;
708 case DMPAPER_JENV_KAKU3_ROTATED: val = "DMPAPER_JENV_KAKU3_ROTATED"; break;
709 case DMPAPER_JENV_CHOU3_ROTATED: val = "DMPAPER_JENV_CHOU3_ROTATED"; break;
710 case DMPAPER_JENV_CHOU4_ROTATED: val = "DMPAPER_JENV_CHOU4_ROTATED"; break;
711 case DMPAPER_B6_JIS: val = "DMPAPER_B6_JIS"; break;
712 case DMPAPER_B6_JIS_ROTATED: val = "DMPAPER_B6_JIS_ROTATED"; break;
713 case DMPAPER_12X11: val = "DMPAPER_12X11"; break;
714 case DMPAPER_JENV_YOU4: val = "DMPAPER_JENV_YOU4"; break;
715 case DMPAPER_JENV_YOU4_ROTATED: val = "DMPAPER_JENV_YOU4_ROTATED"; break;
716 case DMPAPER_P16K: val = "DMPAPER_P16K"; break;
717 case DMPAPER_P32K: val = "DMPAPER_P32K"; break;
718 case DMPAPER_P32KBIG: val = "DMPAPER_P32KBIG"; break;
719 case DMPAPER_PENV_1: val = "DMPAPER_PENV_1"; break;
720 case DMPAPER_PENV_2: val = "DMPAPER_PENV_2"; break;
721 case DMPAPER_PENV_3: val = "DMPAPER_PENV_3"; break;
722 case DMPAPER_PENV_4: val = "DMPAPER_PENV_4"; break;
723 case DMPAPER_PENV_5: val = "DMPAPER_PENV_5"; break;
724 case DMPAPER_PENV_6: val = "DMPAPER_PENV_6"; break;
725 case DMPAPER_PENV_7: val = "DMPAPER_PENV_7"; break;
726 case DMPAPER_PENV_8: val = "DMPAPER_PENV_8"; break;
727 case DMPAPER_PENV_9: val = "DMPAPER_PENV_9"; break;
728 case DMPAPER_PENV_10: val = "DMPAPER_PENV_10"; break;
729 case DMPAPER_P16K_ROTATED: val = "DMPAPER_P16K_ROTATED"; break;
730 case DMPAPER_P32K_ROTATED: val = "DMPAPER_P32K_ROTATED"; break;
731 case DMPAPER_P32KBIG_ROTATED: val = "DMPAPER_P32KBIG_ROTATED"; break;
732 case DMPAPER_PENV_1_ROTATED: val = "DMPAPER_PENV_1_ROTATED"; break;
733 case DMPAPER_PENV_2_ROTATED: val = "DMPAPER_PENV_2_ROTATED"; break;
734 case DMPAPER_PENV_3_ROTATED: val = "DMPAPER_PENV_3_ROTATED"; break;
735 case DMPAPER_PENV_4_ROTATED: val = "DMPAPER_PENV_4_ROTATED"; break;
736 case DMPAPER_PENV_5_ROTATED: val = "DMPAPER_PENV_5_ROTATED"; break;
737 case DMPAPER_PENV_6_ROTATED: val = "DMPAPER_PENV_6_ROTATED"; break;
738 case DMPAPER_PENV_7_ROTATED: val = "DMPAPER_PENV_7_ROTATED"; break;
739 case DMPAPER_PENV_8_ROTATED: val = "DMPAPER_PENV_8_ROTATED"; break;
740 case DMPAPER_PENV_9_ROTATED: val = "DMPAPER_PENV_9_ROTATED"; break;
741 case DMPAPER_PENV_10_ROTATED: val = "DMPAPER_PENV_10_ROTATED"; break;
743 ndr_print_enum(ndr, name, "ENUM", val, r);
746 static enum ndr_err_code ndr_push_spoolss_DeviceModeDefaultSource(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeDefaultSource r)
748 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
749 return NDR_ERR_SUCCESS;
752 static enum ndr_err_code ndr_pull_spoolss_DeviceModeDefaultSource(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeDefaultSource *r)
755 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
757 return NDR_ERR_SUCCESS;
760 _PUBLIC_ void ndr_print_spoolss_DeviceModeDefaultSource(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeDefaultSource r)
762 const char *val = NULL;
765 case DMBIN_UPPER: val = "DMBIN_UPPER"; break;
766 case DMBIN_LOWER: val = "DMBIN_LOWER"; break;
767 case DMBIN_MIDDLE: val = "DMBIN_MIDDLE"; break;
768 case DMBIN_MANUAL: val = "DMBIN_MANUAL"; break;
769 case DMBIN_ENVELOPE: val = "DMBIN_ENVELOPE"; break;
770 case DMBIN_ENVMANUAL: val = "DMBIN_ENVMANUAL"; break;
771 case DMBIN_AUTO: val = "DMBIN_AUTO"; break;
772 case DMBIN_TRACTOR: val = "DMBIN_TRACTOR"; break;
773 case DMBIN_SMALLFMT: val = "DMBIN_SMALLFMT"; break;
774 case DMBIN_LARGEFMT: val = "DMBIN_LARGEFMT"; break;
775 case DMBIN_LARGECAPACITY: val = "DMBIN_LARGECAPACITY"; break;
776 case DMBIN_CASSETTE: val = "DMBIN_CASSETTE"; break;
777 case DMBIN_FORMSOURCE: val = "DMBIN_FORMSOURCE"; break;
779 ndr_print_enum(ndr, name, "ENUM", val, r);
782 static enum ndr_err_code ndr_push_spoolss_DeviceModePrintQuality(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModePrintQuality r)
784 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
785 return NDR_ERR_SUCCESS;
788 static enum ndr_err_code ndr_pull_spoolss_DeviceModePrintQuality(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModePrintQuality *r)
791 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
793 return NDR_ERR_SUCCESS;
796 _PUBLIC_ void ndr_print_spoolss_DeviceModePrintQuality(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModePrintQuality r)
798 const char *val = NULL;
801 case DMRES_HIGH: val = "DMRES_HIGH"; break;
802 case DMRES_MEDIUM: val = "DMRES_MEDIUM"; break;
803 case DMRES_LOW: val = "DMRES_LOW"; break;
804 case DMRES_DRAFT: val = "DMRES_DRAFT"; break;
806 ndr_print_enum(ndr, name, "ENUM", val, r);
809 static enum ndr_err_code ndr_push_spoolss_DeviceModeColor(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeColor r)
811 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
812 return NDR_ERR_SUCCESS;
815 static enum ndr_err_code ndr_pull_spoolss_DeviceModeColor(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeColor *r)
818 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
820 return NDR_ERR_SUCCESS;
823 _PUBLIC_ void ndr_print_spoolss_DeviceModeColor(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeColor r)
825 const char *val = NULL;
828 case DMRES_MONOCHROME: val = "DMRES_MONOCHROME"; break;
829 case DMRES_COLOR: val = "DMRES_COLOR"; break;
831 ndr_print_enum(ndr, name, "ENUM", val, r);
834 static enum ndr_err_code ndr_push_spoolss_DeviceModeDuplex(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeDuplex r)
836 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
837 return NDR_ERR_SUCCESS;
840 static enum ndr_err_code ndr_pull_spoolss_DeviceModeDuplex(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeDuplex *r)
843 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
845 return NDR_ERR_SUCCESS;
848 _PUBLIC_ void ndr_print_spoolss_DeviceModeDuplex(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeDuplex r)
850 const char *val = NULL;
853 case DMDUP_SIMPLEX: val = "DMDUP_SIMPLEX"; break;
854 case DMDUP_VERTICAL: val = "DMDUP_VERTICAL"; break;
855 case DMDUP_HORIZONTAL: val = "DMDUP_HORIZONTAL"; break;
857 ndr_print_enum(ndr, name, "ENUM", val, r);
860 static enum ndr_err_code ndr_push_spoolss_DeviceModeTTOption(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeTTOption r)
862 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
863 return NDR_ERR_SUCCESS;
866 static enum ndr_err_code ndr_pull_spoolss_DeviceModeTTOption(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeTTOption *r)
869 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
871 return NDR_ERR_SUCCESS;
874 _PUBLIC_ void ndr_print_spoolss_DeviceModeTTOption(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeTTOption r)
876 const char *val = NULL;
879 case DMTT_BITMAP: val = "DMTT_BITMAP"; break;
880 case DMTT_DOWNLOAD: val = "DMTT_DOWNLOAD"; break;
881 case DMTT_SUBDEV: val = "DMTT_SUBDEV"; break;
882 case DMTT_DOWNLOAD_OUTLINE: val = "DMTT_DOWNLOAD_OUTLINE"; break;
884 ndr_print_enum(ndr, name, "ENUM", val, r);
887 static enum ndr_err_code ndr_push_spoolss_DeviceModeCollate(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeCollate r)
889 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
890 return NDR_ERR_SUCCESS;
893 static enum ndr_err_code ndr_pull_spoolss_DeviceModeCollate(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeCollate *r)
896 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
898 return NDR_ERR_SUCCESS;
901 _PUBLIC_ void ndr_print_spoolss_DeviceModeCollate(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeCollate r)
903 const char *val = NULL;
906 case DMCOLLATE_FALSE: val = "DMCOLLATE_FALSE"; break;
907 case DMCOLLATE_TRUE: val = "DMCOLLATE_TRUE"; break;
909 ndr_print_enum(ndr, name, "ENUM", val, r);
912 static enum ndr_err_code ndr_push_spoolss_DeviceModeNUp(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeNUp r)
914 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
915 return NDR_ERR_SUCCESS;
918 static enum ndr_err_code ndr_pull_spoolss_DeviceModeNUp(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeNUp *r)
921 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
923 return NDR_ERR_SUCCESS;
926 _PUBLIC_ void ndr_print_spoolss_DeviceModeNUp(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeNUp r)
928 const char *val = NULL;
931 case DMNUP_SYSTEM: val = "DMNUP_SYSTEM"; break;
932 case DMNUP_ONEUP: val = "DMNUP_ONEUP"; break;
934 ndr_print_enum(ndr, name, "ENUM", val, r);
937 static enum ndr_err_code ndr_push_spoolss_DeviceModeICMMethod(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeICMMethod r)
939 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
940 return NDR_ERR_SUCCESS;
943 static enum ndr_err_code ndr_pull_spoolss_DeviceModeICMMethod(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeICMMethod *r)
946 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
948 return NDR_ERR_SUCCESS;
951 _PUBLIC_ void ndr_print_spoolss_DeviceModeICMMethod(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeICMMethod r)
953 const char *val = NULL;
956 case DMICMMETHOD_NONE: val = "DMICMMETHOD_NONE"; break;
957 case DMICMMETHOD_SYSTEM: val = "DMICMMETHOD_SYSTEM"; break;
958 case DMICMMETHOD_DRIVER: val = "DMICMMETHOD_DRIVER"; break;
959 case DMICMMETHOD_DEVICE: val = "DMICMMETHOD_DEVICE"; break;
961 ndr_print_enum(ndr, name, "ENUM", val, r);
964 static enum ndr_err_code ndr_push_spoolss_DeviceModeICMIntent(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeICMIntent r)
966 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
967 return NDR_ERR_SUCCESS;
970 static enum ndr_err_code ndr_pull_spoolss_DeviceModeICMIntent(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeICMIntent *r)
973 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
975 return NDR_ERR_SUCCESS;
978 _PUBLIC_ void ndr_print_spoolss_DeviceModeICMIntent(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeICMIntent r)
980 const char *val = NULL;
983 case DMICM_SATURATE: val = "DMICM_SATURATE"; break;
984 case DMICM_CONTRAST: val = "DMICM_CONTRAST"; break;
985 case DMICM_COLORIMETRIC: val = "DMICM_COLORIMETRIC"; break;
986 case DMICM_ABS_COLORIMETRIC: val = "DMICM_ABS_COLORIMETRIC"; break;
988 ndr_print_enum(ndr, name, "ENUM", val, r);
991 static enum ndr_err_code ndr_push_spoolss_DeviceModeMediaType(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeMediaType r)
993 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
994 return NDR_ERR_SUCCESS;
997 static enum ndr_err_code ndr_pull_spoolss_DeviceModeMediaType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeMediaType *r)
1000 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
1002 return NDR_ERR_SUCCESS;
1005 _PUBLIC_ void ndr_print_spoolss_DeviceModeMediaType(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeMediaType r)
1007 const char *val = NULL;
1010 case DMMEDIA_STANDARD: val = "DMMEDIA_STANDARD"; break;
1011 case DMMEDIA_TRANSPARENCY: val = "DMMEDIA_TRANSPARENCY"; break;
1012 case DMMEDIA_GLOSSY: val = "DMMEDIA_GLOSSY"; break;
1014 ndr_print_enum(ndr, name, "ENUM", val, r);
1017 static enum ndr_err_code ndr_push_spoolss_DeviceModeDitherType(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeDitherType r)
1019 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
1020 return NDR_ERR_SUCCESS;
1023 static enum ndr_err_code ndr_pull_spoolss_DeviceModeDitherType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeDitherType *r)
1026 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
1028 return NDR_ERR_SUCCESS;
1031 _PUBLIC_ void ndr_print_spoolss_DeviceModeDitherType(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeDitherType r)
1033 const char *val = NULL;
1036 case DMDITHER_NONE: val = "DMDITHER_NONE"; break;
1037 case DMDITHER_COARSE: val = "DMDITHER_COARSE"; break;
1038 case DMDITHER_FINE: val = "DMDITHER_FINE"; break;
1039 case DMDITHER_LINEART: val = "DMDITHER_LINEART"; break;
1040 case DMDITHER_ERRORDIFFUSION: val = "DMDITHER_ERRORDIFFUSION"; break;
1041 case DMDITHER_RESERVED6: val = "DMDITHER_RESERVED6"; break;
1042 case DMDITHER_RESERVED7: val = "DMDITHER_RESERVED7"; break;
1043 case DMDITHER_RESERVED8: val = "DMDITHER_RESERVED8"; break;
1044 case DMDITHER_RESERVED9: val = "DMDITHER_RESERVED9"; break;
1045 case DMDITHER_GRAYSCALE: val = "DMDITHER_GRAYSCALE"; break;
1047 ndr_print_enum(ndr, name, "ENUM", val, r);
1050 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DeviceMode(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DeviceMode *r)
1052 if (ndr_flags & NDR_SCALARS) {
1053 NDR_CHECK(ndr_push_align(ndr, 4));
1054 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->devicename, 32, sizeof(uint16_t), CH_UTF16));
1055 NDR_CHECK(ndr_push_spoolss_DeviceModeSpecVersion(ndr, NDR_SCALARS, r->specversion));
1056 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->driverversion));
1057 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->size));
1058 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->driverextra_data.length));
1059 NDR_CHECK(ndr_push_spoolss_DeviceModeFields(ndr, NDR_SCALARS, r->fields));
1060 NDR_CHECK(ndr_push_spoolss_DeviceModeOrientation(ndr, NDR_SCALARS, r->orientation));
1061 NDR_CHECK(ndr_push_spoolss_DeviceModePaperSize(ndr, NDR_SCALARS, r->papersize));
1062 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->paperlength));
1063 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->paperwidth));
1064 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->scale));
1065 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->copies));
1066 NDR_CHECK(ndr_push_spoolss_DeviceModeDefaultSource(ndr, NDR_SCALARS, r->defaultsource));
1067 NDR_CHECK(ndr_push_spoolss_DeviceModePrintQuality(ndr, NDR_SCALARS, r->printquality));
1068 NDR_CHECK(ndr_push_spoolss_DeviceModeColor(ndr, NDR_SCALARS, r->color));
1069 NDR_CHECK(ndr_push_spoolss_DeviceModeDuplex(ndr, NDR_SCALARS, r->duplex));
1070 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->yresolution));
1071 NDR_CHECK(ndr_push_spoolss_DeviceModeTTOption(ndr, NDR_SCALARS, r->ttoption));
1072 NDR_CHECK(ndr_push_spoolss_DeviceModeCollate(ndr, NDR_SCALARS, r->collate));
1073 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->formname, 32, sizeof(uint16_t), CH_UTF16));
1074 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logpixels));
1075 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bitsperpel));
1076 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pelswidth));
1077 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pelsheight));
1078 NDR_CHECK(ndr_push_spoolss_DeviceModeNUp(ndr, NDR_SCALARS, r->displayflags));
1079 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->displayfrequency));
1080 NDR_CHECK(ndr_push_spoolss_DeviceModeICMMethod(ndr, NDR_SCALARS, r->icmmethod));
1081 NDR_CHECK(ndr_push_spoolss_DeviceModeICMIntent(ndr, NDR_SCALARS, r->icmintent));
1082 NDR_CHECK(ndr_push_spoolss_DeviceModeMediaType(ndr, NDR_SCALARS, r->mediatype));
1083 NDR_CHECK(ndr_push_spoolss_DeviceModeDitherType(ndr, NDR_SCALARS, r->dithertype));
1084 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved1));
1085 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved2));
1086 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->panningwidth));
1087 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->panningheight));
1089 uint32_t _flags_save_DATA_BLOB = ndr->flags;
1090 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
1092 struct ndr_push *_ndr_driverextra_data;
1093 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_driverextra_data, 0, r->driverextra_data.length));
1094 NDR_CHECK(ndr_push_DATA_BLOB(_ndr_driverextra_data, NDR_SCALARS, r->driverextra_data));
1095 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_driverextra_data, 0, r->driverextra_data.length));
1097 ndr->flags = _flags_save_DATA_BLOB;
1099 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
1101 if (ndr_flags & NDR_BUFFERS) {
1103 return NDR_ERR_SUCCESS;
1106 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DeviceMode(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DeviceMode *r)
1108 if (ndr_flags & NDR_SCALARS) {
1109 NDR_CHECK(ndr_pull_align(ndr, 4));
1110 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->devicename, 32, sizeof(uint16_t), CH_UTF16));
1111 NDR_CHECK(ndr_pull_spoolss_DeviceModeSpecVersion(ndr, NDR_SCALARS, &r->specversion));
1112 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->driverversion));
1113 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
1114 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->__driverextra_length));
1115 NDR_CHECK(ndr_pull_spoolss_DeviceModeFields(ndr, NDR_SCALARS, &r->fields));
1116 NDR_CHECK(ndr_pull_spoolss_DeviceModeOrientation(ndr, NDR_SCALARS, &r->orientation));
1117 NDR_CHECK(ndr_pull_spoolss_DeviceModePaperSize(ndr, NDR_SCALARS, &r->papersize));
1118 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->paperlength));
1119 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->paperwidth));
1120 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->scale));
1121 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->copies));
1122 NDR_CHECK(ndr_pull_spoolss_DeviceModeDefaultSource(ndr, NDR_SCALARS, &r->defaultsource));
1123 NDR_CHECK(ndr_pull_spoolss_DeviceModePrintQuality(ndr, NDR_SCALARS, &r->printquality));
1124 NDR_CHECK(ndr_pull_spoolss_DeviceModeColor(ndr, NDR_SCALARS, &r->color));
1125 NDR_CHECK(ndr_pull_spoolss_DeviceModeDuplex(ndr, NDR_SCALARS, &r->duplex));
1126 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->yresolution));
1127 NDR_CHECK(ndr_pull_spoolss_DeviceModeTTOption(ndr, NDR_SCALARS, &r->ttoption));
1128 NDR_CHECK(ndr_pull_spoolss_DeviceModeCollate(ndr, NDR_SCALARS, &r->collate));
1129 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->formname, 32, sizeof(uint16_t), CH_UTF16));
1130 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logpixels));
1131 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bitsperpel));
1132 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pelswidth));
1133 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pelsheight));
1134 NDR_CHECK(ndr_pull_spoolss_DeviceModeNUp(ndr, NDR_SCALARS, &r->displayflags));
1135 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->displayfrequency));
1136 NDR_CHECK(ndr_pull_spoolss_DeviceModeICMMethod(ndr, NDR_SCALARS, &r->icmmethod));
1137 NDR_CHECK(ndr_pull_spoolss_DeviceModeICMIntent(ndr, NDR_SCALARS, &r->icmintent));
1138 NDR_CHECK(ndr_pull_spoolss_DeviceModeMediaType(ndr, NDR_SCALARS, &r->mediatype));
1139 NDR_CHECK(ndr_pull_spoolss_DeviceModeDitherType(ndr, NDR_SCALARS, &r->dithertype));
1140 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved1));
1141 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
1142 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->panningwidth));
1143 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->panningheight));
1145 uint32_t _flags_save_DATA_BLOB = ndr->flags;
1146 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
1148 struct ndr_pull *_ndr_driverextra_data;
1149 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_driverextra_data, 0, r->__driverextra_length));
1150 NDR_CHECK(ndr_pull_DATA_BLOB(_ndr_driverextra_data, NDR_SCALARS, &r->driverextra_data));
1151 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_driverextra_data, 0, r->__driverextra_length));
1153 ndr->flags = _flags_save_DATA_BLOB;
1155 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
1157 if (ndr_flags & NDR_BUFFERS) {
1159 return NDR_ERR_SUCCESS;
1162 _PUBLIC_ void ndr_print_spoolss_DeviceMode(struct ndr_print *ndr, const char *name, const struct spoolss_DeviceMode *r)
1164 ndr_print_struct(ndr, name, "spoolss_DeviceMode");
1166 ndr_print_string(ndr, "devicename", r->devicename);
1167 ndr_print_spoolss_DeviceModeSpecVersion(ndr, "specversion", r->specversion);
1168 ndr_print_uint16(ndr, "driverversion", r->driverversion);
1169 ndr_print_uint16(ndr, "size", r->size);
1170 ndr_print_uint16(ndr, "__driverextra_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->driverextra_data.length:r->__driverextra_length);
1171 ndr_print_spoolss_DeviceModeFields(ndr, "fields", r->fields);
1172 ndr_print_spoolss_DeviceModeOrientation(ndr, "orientation", r->orientation);
1173 ndr_print_spoolss_DeviceModePaperSize(ndr, "papersize", r->papersize);
1174 ndr_print_uint16(ndr, "paperlength", r->paperlength);
1175 ndr_print_uint16(ndr, "paperwidth", r->paperwidth);
1176 ndr_print_uint16(ndr, "scale", r->scale);
1177 ndr_print_uint16(ndr, "copies", r->copies);
1178 ndr_print_spoolss_DeviceModeDefaultSource(ndr, "defaultsource", r->defaultsource);
1179 ndr_print_spoolss_DeviceModePrintQuality(ndr, "printquality", r->printquality);
1180 ndr_print_spoolss_DeviceModeColor(ndr, "color", r->color);
1181 ndr_print_spoolss_DeviceModeDuplex(ndr, "duplex", r->duplex);
1182 ndr_print_uint16(ndr, "yresolution", r->yresolution);
1183 ndr_print_spoolss_DeviceModeTTOption(ndr, "ttoption", r->ttoption);
1184 ndr_print_spoolss_DeviceModeCollate(ndr, "collate", r->collate);
1185 ndr_print_string(ndr, "formname", r->formname);
1186 ndr_print_uint16(ndr, "logpixels", r->logpixels);
1187 ndr_print_uint32(ndr, "bitsperpel", r->bitsperpel);
1188 ndr_print_uint32(ndr, "pelswidth", r->pelswidth);
1189 ndr_print_uint32(ndr, "pelsheight", r->pelsheight);
1190 ndr_print_spoolss_DeviceModeNUp(ndr, "displayflags", r->displayflags);
1191 ndr_print_uint32(ndr, "displayfrequency", r->displayfrequency);
1192 ndr_print_spoolss_DeviceModeICMMethod(ndr, "icmmethod", r->icmmethod);
1193 ndr_print_spoolss_DeviceModeICMIntent(ndr, "icmintent", r->icmintent);
1194 ndr_print_spoolss_DeviceModeMediaType(ndr, "mediatype", r->mediatype);
1195 ndr_print_spoolss_DeviceModeDitherType(ndr, "dithertype", r->dithertype);
1196 ndr_print_uint32(ndr, "reserved1", r->reserved1);
1197 ndr_print_uint32(ndr, "reserved2", r->reserved2);
1198 ndr_print_uint32(ndr, "panningwidth", r->panningwidth);
1199 ndr_print_uint32(ndr, "panningheight", r->panningheight);
1200 ndr_print_DATA_BLOB(ndr, "driverextra_data", r->driverextra_data);
1204 _PUBLIC_ size_t ndr_size_spoolss_DeviceMode(const struct spoolss_DeviceMode *r, struct smb_iconv_convenience *ic, int flags)
1206 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DeviceMode, ic);
1209 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
1211 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
1212 return NDR_ERR_SUCCESS;
1215 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
1218 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
1220 return NDR_ERR_SUCCESS;
1223 _PUBLIC_ void ndr_print_spoolss_EnumPrinterFlags(struct ndr_print *ndr, const char *name, uint32_t r)
1225 ndr_print_uint32(ndr, name, r);
1227 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_DEFAULT", PRINTER_ENUM_DEFAULT, r);
1228 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_LOCAL", PRINTER_ENUM_LOCAL, r);
1229 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_CONNECTIONS", PRINTER_ENUM_CONNECTIONS, r);
1230 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_FAVORITE", PRINTER_ENUM_FAVORITE, r);
1231 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_NAME", PRINTER_ENUM_NAME, r);
1232 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_REMOTE", PRINTER_ENUM_REMOTE, r);
1233 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_SHARED", PRINTER_ENUM_SHARED, r);
1234 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_NETWORK", PRINTER_ENUM_NETWORK, r);
1235 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_EXPAND", PRINTER_ENUM_EXPAND, r);
1236 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_CONTAINER", PRINTER_ENUM_CONTAINER, r);
1237 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON1", PRINTER_ENUM_ICON1, r);
1238 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON2", PRINTER_ENUM_ICON2, r);
1239 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON3", PRINTER_ENUM_ICON3, r);
1240 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON4", PRINTER_ENUM_ICON4, r);
1241 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON5", PRINTER_ENUM_ICON5, r);
1242 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON6", PRINTER_ENUM_ICON6, r);
1243 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON7", PRINTER_ENUM_ICON7, r);
1244 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON8", PRINTER_ENUM_ICON8, r);
1245 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_HIDE", PRINTER_ENUM_HIDE, r);
1249 static enum ndr_err_code ndr_push_spoolss_PrinterAttributes(struct ndr_push *ndr, int ndr_flags, uint32_t r)
1251 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
1252 return NDR_ERR_SUCCESS;
1255 static enum ndr_err_code ndr_pull_spoolss_PrinterAttributes(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
1258 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
1260 return NDR_ERR_SUCCESS;
1263 _PUBLIC_ void ndr_print_spoolss_PrinterAttributes(struct ndr_print *ndr, const char *name, uint32_t r)
1265 ndr_print_uint32(ndr, name, r);
1267 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_QUEUED", PRINTER_ATTRIBUTE_QUEUED, r);
1268 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DIRECT", PRINTER_ATTRIBUTE_DIRECT, r);
1269 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DEFAULT", PRINTER_ATTRIBUTE_DEFAULT, r);
1270 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_SHARED", PRINTER_ATTRIBUTE_SHARED, r);
1271 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_NETWORK", PRINTER_ATTRIBUTE_NETWORK, r);
1272 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_HIDDEN", PRINTER_ATTRIBUTE_HIDDEN, r);
1273 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_LOCAL", PRINTER_ATTRIBUTE_LOCAL, r);
1274 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_ENABLE_DEVQ", PRINTER_ATTRIBUTE_ENABLE_DEVQ, r);
1275 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS", PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS, r);
1276 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST", PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST, r);
1277 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_WORK_OFFLINE", PRINTER_ATTRIBUTE_WORK_OFFLINE, r);
1278 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_ENABLE_BIDI", PRINTER_ATTRIBUTE_ENABLE_BIDI, r);
1279 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_RAW_ONLY", PRINTER_ATTRIBUTE_RAW_ONLY, r);
1280 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_PUBLISHED", PRINTER_ATTRIBUTE_PUBLISHED, r);
1281 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_FAX", PRINTER_ATTRIBUTE_FAX, r);
1282 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_TS", PRINTER_ATTRIBUTE_TS, r);
1286 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo1 *r)
1288 if (ndr_flags & NDR_SCALARS) {
1289 NDR_CHECK(ndr_push_align(ndr, 5));
1290 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->flags));
1292 uint32_t _flags_save_string = ndr->flags;
1293 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1294 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->description));
1295 ndr->flags = _flags_save_string;
1298 uint32_t _flags_save_string = ndr->flags;
1299 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1300 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->name));
1301 ndr->flags = _flags_save_string;
1304 uint32_t _flags_save_string = ndr->flags;
1305 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1306 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->comment));
1307 ndr->flags = _flags_save_string;
1309 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
1311 if (ndr_flags & NDR_BUFFERS) {
1313 uint32_t _flags_save_string = ndr->flags;
1314 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1315 if (r->description) {
1316 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->description));
1317 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->description));
1319 ndr->flags = _flags_save_string;
1322 uint32_t _flags_save_string = ndr->flags;
1323 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1325 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->name));
1326 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->name));
1328 ndr->flags = _flags_save_string;
1331 uint32_t _flags_save_string = ndr->flags;
1332 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1334 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->comment));
1335 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->comment));
1337 ndr->flags = _flags_save_string;
1340 return NDR_ERR_SUCCESS;
1343 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo1 *r)
1345 uint32_t _ptr_description;
1346 TALLOC_CTX *_mem_save_description_0;
1348 TALLOC_CTX *_mem_save_name_0;
1349 uint32_t _ptr_comment;
1350 TALLOC_CTX *_mem_save_comment_0;
1351 if (ndr_flags & NDR_SCALARS) {
1352 NDR_CHECK(ndr_pull_align(ndr, 5));
1353 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->flags));
1355 uint32_t _flags_save_string = ndr->flags;
1356 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1357 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
1358 if (_ptr_description) {
1359 NDR_PULL_ALLOC(ndr, r->description);
1360 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->description, _ptr_description));
1362 r->description = NULL;
1364 ndr->flags = _flags_save_string;
1367 uint32_t _flags_save_string = ndr->flags;
1368 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1369 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
1371 NDR_PULL_ALLOC(ndr, r->name);
1372 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->name, _ptr_name));
1376 ndr->flags = _flags_save_string;
1379 uint32_t _flags_save_string = ndr->flags;
1380 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1381 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
1383 NDR_PULL_ALLOC(ndr, r->comment);
1384 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->comment, _ptr_comment));
1388 ndr->flags = _flags_save_string;
1390 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
1392 if (ndr_flags & NDR_BUFFERS) {
1394 uint32_t _flags_save_string = ndr->flags;
1395 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1396 if (r->description) {
1397 uint32_t _relative_save_offset;
1398 _relative_save_offset = ndr->offset;
1399 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->description));
1400 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
1401 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
1402 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->description));
1403 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
1404 if (ndr->offset > ndr->relative_highest_offset) {
1405 ndr->relative_highest_offset = ndr->offset;
1407 ndr->offset = _relative_save_offset;
1409 ndr->flags = _flags_save_string;
1412 uint32_t _flags_save_string = ndr->flags;
1413 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1415 uint32_t _relative_save_offset;
1416 _relative_save_offset = ndr->offset;
1417 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->name));
1418 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
1419 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
1420 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->name));
1421 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
1422 if (ndr->offset > ndr->relative_highest_offset) {
1423 ndr->relative_highest_offset = ndr->offset;
1425 ndr->offset = _relative_save_offset;
1427 ndr->flags = _flags_save_string;
1430 uint32_t _flags_save_string = ndr->flags;
1431 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1433 uint32_t _relative_save_offset;
1434 _relative_save_offset = ndr->offset;
1435 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->comment));
1436 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
1437 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
1438 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->comment));
1439 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
1440 if (ndr->offset > ndr->relative_highest_offset) {
1441 ndr->relative_highest_offset = ndr->offset;
1443 ndr->offset = _relative_save_offset;
1445 ndr->flags = _flags_save_string;
1448 return NDR_ERR_SUCCESS;
1451 _PUBLIC_ void ndr_print_spoolss_PrinterInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo1 *r)
1453 ndr_print_struct(ndr, name, "spoolss_PrinterInfo1");
1455 ndr_print_spoolss_PrinterAttributes(ndr, "flags", r->flags);
1456 ndr_print_ptr(ndr, "description", r->description);
1458 if (r->description) {
1459 ndr_print_string(ndr, "description", r->description);
1462 ndr_print_ptr(ndr, "name", r->name);
1465 ndr_print_string(ndr, "name", r->name);
1468 ndr_print_ptr(ndr, "comment", r->comment);
1471 ndr_print_string(ndr, "comment", r->comment);
1477 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo1(const struct spoolss_PrinterInfo1 *r, struct smb_iconv_convenience *ic, int flags)
1479 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo1, ic);
1482 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo2 *r)
1484 if (ndr_flags & NDR_SCALARS) {
1485 NDR_CHECK(ndr_push_align(ndr, 5));
1487 uint32_t _flags_save_string = ndr->flags;
1488 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1489 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->servername));
1490 ndr->flags = _flags_save_string;
1493 uint32_t _flags_save_string = ndr->flags;
1494 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1495 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
1496 ndr->flags = _flags_save_string;
1499 uint32_t _flags_save_string = ndr->flags;
1500 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1501 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->sharename));
1502 ndr->flags = _flags_save_string;
1505 uint32_t _flags_save_string = ndr->flags;
1506 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1507 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->portname));
1508 ndr->flags = _flags_save_string;
1511 uint32_t _flags_save_string = ndr->flags;
1512 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1513 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->drivername));
1514 ndr->flags = _flags_save_string;
1517 uint32_t _flags_save_string = ndr->flags;
1518 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1519 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->comment));
1520 ndr->flags = _flags_save_string;
1523 uint32_t _flags_save_string = ndr->flags;
1524 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1525 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->location));
1526 ndr->flags = _flags_save_string;
1528 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
1530 uint32_t _flags_save_string = ndr->flags;
1531 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1532 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->sepfile));
1533 ndr->flags = _flags_save_string;
1536 uint32_t _flags_save_string = ndr->flags;
1537 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1538 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printprocessor));
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_push_relative_ptr1(ndr, r->datatype));
1545 ndr->flags = _flags_save_string;
1548 uint32_t _flags_save_string = ndr->flags;
1549 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1550 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->parameters));
1551 ndr->flags = _flags_save_string;
1553 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
1554 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
1555 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
1556 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->defaultpriority));
1557 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->starttime));
1558 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->untiltime));
1559 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
1560 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
1561 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->averageppm));
1562 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
1564 if (ndr_flags & NDR_BUFFERS) {
1566 uint32_t _flags_save_string = ndr->flags;
1567 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1568 if (r->servername) {
1569 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->servername));
1570 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->servername));
1572 ndr->flags = _flags_save_string;
1575 uint32_t _flags_save_string = ndr->flags;
1576 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1577 if (r->printername) {
1578 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printername));
1579 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
1581 ndr->flags = _flags_save_string;
1584 uint32_t _flags_save_string = ndr->flags;
1585 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1587 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->sharename));
1588 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->sharename));
1590 ndr->flags = _flags_save_string;
1593 uint32_t _flags_save_string = ndr->flags;
1594 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1596 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->portname));
1597 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->portname));
1599 ndr->flags = _flags_save_string;
1602 uint32_t _flags_save_string = ndr->flags;
1603 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1604 if (r->drivername) {
1605 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->drivername));
1606 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->drivername));
1608 ndr->flags = _flags_save_string;
1611 uint32_t _flags_save_string = ndr->flags;
1612 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1614 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->comment));
1615 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->comment));
1617 ndr->flags = _flags_save_string;
1620 uint32_t _flags_save_string = ndr->flags;
1621 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1623 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->location));
1624 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->location));
1626 ndr->flags = _flags_save_string;
1629 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->devmode));
1631 struct ndr_push *_ndr_devmode;
1632 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
1633 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
1634 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
1638 uint32_t _flags_save_string = ndr->flags;
1639 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1641 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->sepfile));
1642 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->sepfile));
1644 ndr->flags = _flags_save_string;
1647 uint32_t _flags_save_string = ndr->flags;
1648 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1649 if (r->printprocessor) {
1650 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printprocessor));
1651 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printprocessor));
1653 ndr->flags = _flags_save_string;
1656 uint32_t _flags_save_string = ndr->flags;
1657 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1659 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->datatype));
1660 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->datatype));
1662 ndr->flags = _flags_save_string;
1665 uint32_t _flags_save_string = ndr->flags;
1666 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1667 if (r->parameters) {
1668 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->parameters));
1669 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->parameters));
1671 ndr->flags = _flags_save_string;
1674 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->secdesc));
1676 struct ndr_push *_ndr_secdesc;
1677 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
1678 NDR_CHECK(ndr_push_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
1679 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
1683 return NDR_ERR_SUCCESS;
1686 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo2 *r)
1688 uint32_t _ptr_servername;
1689 TALLOC_CTX *_mem_save_servername_0;
1690 uint32_t _ptr_printername;
1691 TALLOC_CTX *_mem_save_printername_0;
1692 uint32_t _ptr_sharename;
1693 TALLOC_CTX *_mem_save_sharename_0;
1694 uint32_t _ptr_portname;
1695 TALLOC_CTX *_mem_save_portname_0;
1696 uint32_t _ptr_drivername;
1697 TALLOC_CTX *_mem_save_drivername_0;
1698 uint32_t _ptr_comment;
1699 TALLOC_CTX *_mem_save_comment_0;
1700 uint32_t _ptr_location;
1701 TALLOC_CTX *_mem_save_location_0;
1702 uint32_t _ptr_devmode;
1703 TALLOC_CTX *_mem_save_devmode_0;
1704 uint32_t _ptr_sepfile;
1705 TALLOC_CTX *_mem_save_sepfile_0;
1706 uint32_t _ptr_printprocessor;
1707 TALLOC_CTX *_mem_save_printprocessor_0;
1708 uint32_t _ptr_datatype;
1709 TALLOC_CTX *_mem_save_datatype_0;
1710 uint32_t _ptr_parameters;
1711 TALLOC_CTX *_mem_save_parameters_0;
1712 uint32_t _ptr_secdesc;
1713 TALLOC_CTX *_mem_save_secdesc_0;
1714 if (ndr_flags & NDR_SCALARS) {
1715 NDR_CHECK(ndr_pull_align(ndr, 5));
1717 uint32_t _flags_save_string = ndr->flags;
1718 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1719 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
1720 if (_ptr_servername) {
1721 NDR_PULL_ALLOC(ndr, r->servername);
1722 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
1724 r->servername = NULL;
1726 ndr->flags = _flags_save_string;
1729 uint32_t _flags_save_string = ndr->flags;
1730 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1731 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
1732 if (_ptr_printername) {
1733 NDR_PULL_ALLOC(ndr, r->printername);
1734 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
1736 r->printername = NULL;
1738 ndr->flags = _flags_save_string;
1741 uint32_t _flags_save_string = ndr->flags;
1742 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1743 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sharename));
1744 if (_ptr_sharename) {
1745 NDR_PULL_ALLOC(ndr, r->sharename);
1746 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->sharename, _ptr_sharename));
1748 r->sharename = NULL;
1750 ndr->flags = _flags_save_string;
1753 uint32_t _flags_save_string = ndr->flags;
1754 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1755 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
1756 if (_ptr_portname) {
1757 NDR_PULL_ALLOC(ndr, r->portname);
1758 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->portname, _ptr_portname));
1762 ndr->flags = _flags_save_string;
1765 uint32_t _flags_save_string = ndr->flags;
1766 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1767 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_drivername));
1768 if (_ptr_drivername) {
1769 NDR_PULL_ALLOC(ndr, r->drivername);
1770 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->drivername, _ptr_drivername));
1772 r->drivername = NULL;
1774 ndr->flags = _flags_save_string;
1777 uint32_t _flags_save_string = ndr->flags;
1778 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1779 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
1781 NDR_PULL_ALLOC(ndr, r->comment);
1782 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->comment, _ptr_comment));
1786 ndr->flags = _flags_save_string;
1789 uint32_t _flags_save_string = ndr->flags;
1790 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1791 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_location));
1792 if (_ptr_location) {
1793 NDR_PULL_ALLOC(ndr, r->location);
1794 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->location, _ptr_location));
1798 ndr->flags = _flags_save_string;
1800 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
1802 NDR_PULL_ALLOC(ndr, r->devmode);
1803 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
1808 uint32_t _flags_save_string = ndr->flags;
1809 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1810 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sepfile));
1812 NDR_PULL_ALLOC(ndr, r->sepfile);
1813 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->sepfile, _ptr_sepfile));
1817 ndr->flags = _flags_save_string;
1820 uint32_t _flags_save_string = ndr->flags;
1821 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1822 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printprocessor));
1823 if (_ptr_printprocessor) {
1824 NDR_PULL_ALLOC(ndr, r->printprocessor);
1825 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printprocessor, _ptr_printprocessor));
1827 r->printprocessor = NULL;
1829 ndr->flags = _flags_save_string;
1832 uint32_t _flags_save_string = ndr->flags;
1833 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1834 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
1835 if (_ptr_datatype) {
1836 NDR_PULL_ALLOC(ndr, r->datatype);
1837 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->datatype, _ptr_datatype));
1841 ndr->flags = _flags_save_string;
1844 uint32_t _flags_save_string = ndr->flags;
1845 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1846 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
1847 if (_ptr_parameters) {
1848 NDR_PULL_ALLOC(ndr, r->parameters);
1849 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->parameters, _ptr_parameters));
1851 r->parameters = NULL;
1853 ndr->flags = _flags_save_string;
1855 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
1857 NDR_PULL_ALLOC(ndr, r->secdesc);
1858 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
1862 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
1863 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
1864 if (r->priority > 99) {
1865 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
1867 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->defaultpriority));
1868 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->starttime));
1869 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->untiltime));
1870 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
1871 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
1872 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->averageppm));
1873 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
1875 if (ndr_flags & NDR_BUFFERS) {
1877 uint32_t _flags_save_string = ndr->flags;
1878 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1879 if (r->servername) {
1880 uint32_t _relative_save_offset;
1881 _relative_save_offset = ndr->offset;
1882 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
1883 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1884 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
1885 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
1886 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
1887 if (ndr->offset > ndr->relative_highest_offset) {
1888 ndr->relative_highest_offset = ndr->offset;
1890 ndr->offset = _relative_save_offset;
1892 ndr->flags = _flags_save_string;
1895 uint32_t _flags_save_string = ndr->flags;
1896 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1897 if (r->printername) {
1898 uint32_t _relative_save_offset;
1899 _relative_save_offset = ndr->offset;
1900 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
1901 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1902 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
1903 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
1904 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
1905 if (ndr->offset > ndr->relative_highest_offset) {
1906 ndr->relative_highest_offset = ndr->offset;
1908 ndr->offset = _relative_save_offset;
1910 ndr->flags = _flags_save_string;
1913 uint32_t _flags_save_string = ndr->flags;
1914 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1916 uint32_t _relative_save_offset;
1917 _relative_save_offset = ndr->offset;
1918 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->sharename));
1919 _mem_save_sharename_0 = NDR_PULL_GET_MEM_CTX(ndr);
1920 NDR_PULL_SET_MEM_CTX(ndr, r->sharename, 0);
1921 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->sharename));
1922 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sharename_0, 0);
1923 if (ndr->offset > ndr->relative_highest_offset) {
1924 ndr->relative_highest_offset = ndr->offset;
1926 ndr->offset = _relative_save_offset;
1928 ndr->flags = _flags_save_string;
1931 uint32_t _flags_save_string = ndr->flags;
1932 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1934 uint32_t _relative_save_offset;
1935 _relative_save_offset = ndr->offset;
1936 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->portname));
1937 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
1938 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
1939 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->portname));
1940 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
1941 if (ndr->offset > ndr->relative_highest_offset) {
1942 ndr->relative_highest_offset = ndr->offset;
1944 ndr->offset = _relative_save_offset;
1946 ndr->flags = _flags_save_string;
1949 uint32_t _flags_save_string = ndr->flags;
1950 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1951 if (r->drivername) {
1952 uint32_t _relative_save_offset;
1953 _relative_save_offset = ndr->offset;
1954 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->drivername));
1955 _mem_save_drivername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1956 NDR_PULL_SET_MEM_CTX(ndr, r->drivername, 0);
1957 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->drivername));
1958 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_drivername_0, 0);
1959 if (ndr->offset > ndr->relative_highest_offset) {
1960 ndr->relative_highest_offset = ndr->offset;
1962 ndr->offset = _relative_save_offset;
1964 ndr->flags = _flags_save_string;
1967 uint32_t _flags_save_string = ndr->flags;
1968 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1970 uint32_t _relative_save_offset;
1971 _relative_save_offset = ndr->offset;
1972 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->comment));
1973 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
1974 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
1975 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->comment));
1976 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
1977 if (ndr->offset > ndr->relative_highest_offset) {
1978 ndr->relative_highest_offset = ndr->offset;
1980 ndr->offset = _relative_save_offset;
1982 ndr->flags = _flags_save_string;
1985 uint32_t _flags_save_string = ndr->flags;
1986 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1988 uint32_t _relative_save_offset;
1989 _relative_save_offset = ndr->offset;
1990 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->location));
1991 _mem_save_location_0 = NDR_PULL_GET_MEM_CTX(ndr);
1992 NDR_PULL_SET_MEM_CTX(ndr, r->location, 0);
1993 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->location));
1994 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_location_0, 0);
1995 if (ndr->offset > ndr->relative_highest_offset) {
1996 ndr->relative_highest_offset = ndr->offset;
1998 ndr->offset = _relative_save_offset;
2000 ndr->flags = _flags_save_string;
2003 uint32_t _relative_save_offset;
2004 _relative_save_offset = ndr->offset;
2005 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
2006 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
2007 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
2009 struct ndr_pull *_ndr_devmode;
2010 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
2011 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2012 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
2014 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
2015 if (ndr->offset > ndr->relative_highest_offset) {
2016 ndr->relative_highest_offset = ndr->offset;
2018 ndr->offset = _relative_save_offset;
2021 uint32_t _flags_save_string = ndr->flags;
2022 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2024 uint32_t _relative_save_offset;
2025 _relative_save_offset = ndr->offset;
2026 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->sepfile));
2027 _mem_save_sepfile_0 = NDR_PULL_GET_MEM_CTX(ndr);
2028 NDR_PULL_SET_MEM_CTX(ndr, r->sepfile, 0);
2029 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->sepfile));
2030 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sepfile_0, 0);
2031 if (ndr->offset > ndr->relative_highest_offset) {
2032 ndr->relative_highest_offset = ndr->offset;
2034 ndr->offset = _relative_save_offset;
2036 ndr->flags = _flags_save_string;
2039 uint32_t _flags_save_string = ndr->flags;
2040 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2041 if (r->printprocessor) {
2042 uint32_t _relative_save_offset;
2043 _relative_save_offset = ndr->offset;
2044 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printprocessor));
2045 _mem_save_printprocessor_0 = NDR_PULL_GET_MEM_CTX(ndr);
2046 NDR_PULL_SET_MEM_CTX(ndr, r->printprocessor, 0);
2047 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printprocessor));
2048 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printprocessor_0, 0);
2049 if (ndr->offset > ndr->relative_highest_offset) {
2050 ndr->relative_highest_offset = ndr->offset;
2052 ndr->offset = _relative_save_offset;
2054 ndr->flags = _flags_save_string;
2057 uint32_t _flags_save_string = ndr->flags;
2058 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2060 uint32_t _relative_save_offset;
2061 _relative_save_offset = ndr->offset;
2062 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->datatype));
2063 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
2064 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
2065 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->datatype));
2066 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
2067 if (ndr->offset > ndr->relative_highest_offset) {
2068 ndr->relative_highest_offset = ndr->offset;
2070 ndr->offset = _relative_save_offset;
2072 ndr->flags = _flags_save_string;
2075 uint32_t _flags_save_string = ndr->flags;
2076 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2077 if (r->parameters) {
2078 uint32_t _relative_save_offset;
2079 _relative_save_offset = ndr->offset;
2080 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->parameters));
2081 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
2082 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
2083 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->parameters));
2084 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
2085 if (ndr->offset > ndr->relative_highest_offset) {
2086 ndr->relative_highest_offset = ndr->offset;
2088 ndr->offset = _relative_save_offset;
2090 ndr->flags = _flags_save_string;
2093 uint32_t _relative_save_offset;
2094 _relative_save_offset = ndr->offset;
2095 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
2096 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
2097 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
2099 struct ndr_pull *_ndr_secdesc;
2100 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
2101 NDR_CHECK(ndr_pull_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
2102 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
2104 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
2105 if (ndr->offset > ndr->relative_highest_offset) {
2106 ndr->relative_highest_offset = ndr->offset;
2108 ndr->offset = _relative_save_offset;
2111 return NDR_ERR_SUCCESS;
2114 _PUBLIC_ void ndr_print_spoolss_PrinterInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo2 *r)
2116 ndr_print_struct(ndr, name, "spoolss_PrinterInfo2");
2118 ndr_print_ptr(ndr, "servername", r->servername);
2120 if (r->servername) {
2121 ndr_print_string(ndr, "servername", r->servername);
2124 ndr_print_ptr(ndr, "printername", r->printername);
2126 if (r->printername) {
2127 ndr_print_string(ndr, "printername", r->printername);
2130 ndr_print_ptr(ndr, "sharename", r->sharename);
2133 ndr_print_string(ndr, "sharename", r->sharename);
2136 ndr_print_ptr(ndr, "portname", r->portname);
2139 ndr_print_string(ndr, "portname", r->portname);
2142 ndr_print_ptr(ndr, "drivername", r->drivername);
2144 if (r->drivername) {
2145 ndr_print_string(ndr, "drivername", r->drivername);
2148 ndr_print_ptr(ndr, "comment", r->comment);
2151 ndr_print_string(ndr, "comment", r->comment);
2154 ndr_print_ptr(ndr, "location", r->location);
2157 ndr_print_string(ndr, "location", r->location);
2160 ndr_print_ptr(ndr, "devmode", r->devmode);
2163 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
2166 ndr_print_ptr(ndr, "sepfile", r->sepfile);
2169 ndr_print_string(ndr, "sepfile", r->sepfile);
2172 ndr_print_ptr(ndr, "printprocessor", r->printprocessor);
2174 if (r->printprocessor) {
2175 ndr_print_string(ndr, "printprocessor", r->printprocessor);
2178 ndr_print_ptr(ndr, "datatype", r->datatype);
2181 ndr_print_string(ndr, "datatype", r->datatype);
2184 ndr_print_ptr(ndr, "parameters", r->parameters);
2186 if (r->parameters) {
2187 ndr_print_string(ndr, "parameters", r->parameters);
2190 ndr_print_ptr(ndr, "secdesc", r->secdesc);
2193 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
2196 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
2197 ndr_print_uint32(ndr, "priority", r->priority);
2198 ndr_print_uint32(ndr, "defaultpriority", r->defaultpriority);
2199 ndr_print_uint32(ndr, "starttime", r->starttime);
2200 ndr_print_uint32(ndr, "untiltime", r->untiltime);
2201 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
2202 ndr_print_uint32(ndr, "cjobs", r->cjobs);
2203 ndr_print_uint32(ndr, "averageppm", r->averageppm);
2207 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo2(const struct spoolss_PrinterInfo2 *r, struct smb_iconv_convenience *ic, int flags)
2209 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo2, ic);
2212 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo3 *r)
2214 if (ndr_flags & NDR_SCALARS) {
2215 NDR_CHECK(ndr_push_align(ndr, 5));
2216 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
2217 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2219 if (ndr_flags & NDR_BUFFERS) {
2221 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->secdesc));
2223 struct ndr_push *_ndr_secdesc;
2224 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
2225 NDR_CHECK(ndr_push_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
2226 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
2230 return NDR_ERR_SUCCESS;
2233 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo3 *r)
2235 uint32_t _ptr_secdesc;
2236 TALLOC_CTX *_mem_save_secdesc_0;
2237 if (ndr_flags & NDR_SCALARS) {
2238 NDR_CHECK(ndr_pull_align(ndr, 5));
2239 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
2241 NDR_PULL_ALLOC(ndr, r->secdesc);
2242 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
2246 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2248 if (ndr_flags & NDR_BUFFERS) {
2250 uint32_t _relative_save_offset;
2251 _relative_save_offset = ndr->offset;
2252 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
2253 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
2254 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
2256 struct ndr_pull *_ndr_secdesc;
2257 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
2258 NDR_CHECK(ndr_pull_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
2259 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
2261 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
2262 if (ndr->offset > ndr->relative_highest_offset) {
2263 ndr->relative_highest_offset = ndr->offset;
2265 ndr->offset = _relative_save_offset;
2268 return NDR_ERR_SUCCESS;
2271 _PUBLIC_ void ndr_print_spoolss_PrinterInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo3 *r)
2273 ndr_print_struct(ndr, name, "spoolss_PrinterInfo3");
2275 ndr_print_ptr(ndr, "secdesc", r->secdesc);
2278 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
2284 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo3(const struct spoolss_PrinterInfo3 *r, struct smb_iconv_convenience *ic, int flags)
2286 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo3, ic);
2289 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo4 *r)
2291 if (ndr_flags & NDR_SCALARS) {
2292 NDR_CHECK(ndr_push_align(ndr, 5));
2294 uint32_t _flags_save_string = ndr->flags;
2295 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2296 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
2297 ndr->flags = _flags_save_string;
2300 uint32_t _flags_save_string = ndr->flags;
2301 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2302 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->servername));
2303 ndr->flags = _flags_save_string;
2305 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
2306 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2308 if (ndr_flags & NDR_BUFFERS) {
2310 uint32_t _flags_save_string = ndr->flags;
2311 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2312 if (r->printername) {
2313 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printername));
2314 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
2316 ndr->flags = _flags_save_string;
2319 uint32_t _flags_save_string = ndr->flags;
2320 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2321 if (r->servername) {
2322 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->servername));
2323 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->servername));
2325 ndr->flags = _flags_save_string;
2328 return NDR_ERR_SUCCESS;
2331 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo4 *r)
2333 uint32_t _ptr_printername;
2334 TALLOC_CTX *_mem_save_printername_0;
2335 uint32_t _ptr_servername;
2336 TALLOC_CTX *_mem_save_servername_0;
2337 if (ndr_flags & NDR_SCALARS) {
2338 NDR_CHECK(ndr_pull_align(ndr, 5));
2340 uint32_t _flags_save_string = ndr->flags;
2341 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2342 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
2343 if (_ptr_printername) {
2344 NDR_PULL_ALLOC(ndr, r->printername);
2345 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
2347 r->printername = NULL;
2349 ndr->flags = _flags_save_string;
2352 uint32_t _flags_save_string = ndr->flags;
2353 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2354 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
2355 if (_ptr_servername) {
2356 NDR_PULL_ALLOC(ndr, r->servername);
2357 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
2359 r->servername = NULL;
2361 ndr->flags = _flags_save_string;
2363 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
2364 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2366 if (ndr_flags & NDR_BUFFERS) {
2368 uint32_t _flags_save_string = ndr->flags;
2369 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2370 if (r->printername) {
2371 uint32_t _relative_save_offset;
2372 _relative_save_offset = ndr->offset;
2373 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
2374 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
2375 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
2376 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
2377 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
2378 if (ndr->offset > ndr->relative_highest_offset) {
2379 ndr->relative_highest_offset = ndr->offset;
2381 ndr->offset = _relative_save_offset;
2383 ndr->flags = _flags_save_string;
2386 uint32_t _flags_save_string = ndr->flags;
2387 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2388 if (r->servername) {
2389 uint32_t _relative_save_offset;
2390 _relative_save_offset = ndr->offset;
2391 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
2392 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
2393 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
2394 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
2395 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
2396 if (ndr->offset > ndr->relative_highest_offset) {
2397 ndr->relative_highest_offset = ndr->offset;
2399 ndr->offset = _relative_save_offset;
2401 ndr->flags = _flags_save_string;
2404 return NDR_ERR_SUCCESS;
2407 _PUBLIC_ void ndr_print_spoolss_PrinterInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo4 *r)
2409 ndr_print_struct(ndr, name, "spoolss_PrinterInfo4");
2411 ndr_print_ptr(ndr, "printername", r->printername);
2413 if (r->printername) {
2414 ndr_print_string(ndr, "printername", r->printername);
2417 ndr_print_ptr(ndr, "servername", r->servername);
2419 if (r->servername) {
2420 ndr_print_string(ndr, "servername", r->servername);
2423 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
2427 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo4(const struct spoolss_PrinterInfo4 *r, struct smb_iconv_convenience *ic, int flags)
2429 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo4, ic);
2432 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo5 *r)
2434 if (ndr_flags & NDR_SCALARS) {
2435 NDR_CHECK(ndr_push_align(ndr, 5));
2437 uint32_t _flags_save_string = ndr->flags;
2438 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2439 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
2440 ndr->flags = _flags_save_string;
2443 uint32_t _flags_save_string = ndr->flags;
2444 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2445 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->portname));
2446 ndr->flags = _flags_save_string;
2448 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
2449 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->device_not_selected_timeout));
2450 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->transmission_retry_timeout));
2451 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2453 if (ndr_flags & NDR_BUFFERS) {
2455 uint32_t _flags_save_string = ndr->flags;
2456 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2457 if (r->printername) {
2458 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printername));
2459 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
2461 ndr->flags = _flags_save_string;
2464 uint32_t _flags_save_string = ndr->flags;
2465 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2467 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->portname));
2468 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->portname));
2470 ndr->flags = _flags_save_string;
2473 return NDR_ERR_SUCCESS;
2476 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo5 *r)
2478 uint32_t _ptr_printername;
2479 TALLOC_CTX *_mem_save_printername_0;
2480 uint32_t _ptr_portname;
2481 TALLOC_CTX *_mem_save_portname_0;
2482 if (ndr_flags & NDR_SCALARS) {
2483 NDR_CHECK(ndr_pull_align(ndr, 5));
2485 uint32_t _flags_save_string = ndr->flags;
2486 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2487 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
2488 if (_ptr_printername) {
2489 NDR_PULL_ALLOC(ndr, r->printername);
2490 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
2492 r->printername = NULL;
2494 ndr->flags = _flags_save_string;
2497 uint32_t _flags_save_string = ndr->flags;
2498 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2499 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
2500 if (_ptr_portname) {
2501 NDR_PULL_ALLOC(ndr, r->portname);
2502 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->portname, _ptr_portname));
2506 ndr->flags = _flags_save_string;
2508 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
2509 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->device_not_selected_timeout));
2510 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->transmission_retry_timeout));
2511 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2513 if (ndr_flags & NDR_BUFFERS) {
2515 uint32_t _flags_save_string = ndr->flags;
2516 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2517 if (r->printername) {
2518 uint32_t _relative_save_offset;
2519 _relative_save_offset = ndr->offset;
2520 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
2521 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
2522 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
2523 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
2524 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
2525 if (ndr->offset > ndr->relative_highest_offset) {
2526 ndr->relative_highest_offset = ndr->offset;
2528 ndr->offset = _relative_save_offset;
2530 ndr->flags = _flags_save_string;
2533 uint32_t _flags_save_string = ndr->flags;
2534 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2536 uint32_t _relative_save_offset;
2537 _relative_save_offset = ndr->offset;
2538 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->portname));
2539 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
2540 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
2541 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->portname));
2542 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
2543 if (ndr->offset > ndr->relative_highest_offset) {
2544 ndr->relative_highest_offset = ndr->offset;
2546 ndr->offset = _relative_save_offset;
2548 ndr->flags = _flags_save_string;
2551 return NDR_ERR_SUCCESS;
2554 _PUBLIC_ void ndr_print_spoolss_PrinterInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo5 *r)
2556 ndr_print_struct(ndr, name, "spoolss_PrinterInfo5");
2558 ndr_print_ptr(ndr, "printername", r->printername);
2560 if (r->printername) {
2561 ndr_print_string(ndr, "printername", r->printername);
2564 ndr_print_ptr(ndr, "portname", r->portname);
2567 ndr_print_string(ndr, "portname", r->portname);
2570 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
2571 ndr_print_uint32(ndr, "device_not_selected_timeout", r->device_not_selected_timeout);
2572 ndr_print_uint32(ndr, "transmission_retry_timeout", r->transmission_retry_timeout);
2576 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo5(const struct spoolss_PrinterInfo5 *r, struct smb_iconv_convenience *ic, int flags)
2578 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo5, ic);
2581 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo6 *r)
2583 if (ndr_flags & NDR_SCALARS) {
2584 NDR_CHECK(ndr_push_align(ndr, 4));
2585 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
2586 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
2588 if (ndr_flags & NDR_BUFFERS) {
2590 return NDR_ERR_SUCCESS;
2593 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo6 *r)
2595 if (ndr_flags & NDR_SCALARS) {
2596 NDR_CHECK(ndr_pull_align(ndr, 4));
2597 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
2598 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
2600 if (ndr_flags & NDR_BUFFERS) {
2602 return NDR_ERR_SUCCESS;
2605 _PUBLIC_ void ndr_print_spoolss_PrinterInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo6 *r)
2607 ndr_print_struct(ndr, name, "spoolss_PrinterInfo6");
2609 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
2613 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo6(const struct spoolss_PrinterInfo6 *r, struct smb_iconv_convenience *ic, int flags)
2615 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo6, ic);
2618 static enum ndr_err_code ndr_push_spoolss_DsPrintAction(struct ndr_push *ndr, int ndr_flags, uint32_t r)
2620 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
2621 return NDR_ERR_SUCCESS;
2624 static enum ndr_err_code ndr_pull_spoolss_DsPrintAction(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
2627 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
2629 return NDR_ERR_SUCCESS;
2632 _PUBLIC_ void ndr_print_spoolss_DsPrintAction(struct ndr_print *ndr, const char *name, uint32_t r)
2634 ndr_print_uint32(ndr, name, r);
2636 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_PUBLISH", DSPRINT_PUBLISH, r);
2637 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_UPDATE", DSPRINT_UPDATE, r);
2638 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_UNPUBLISH", DSPRINT_UNPUBLISH, r);
2639 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_REPUBLISH", DSPRINT_REPUBLISH, r);
2640 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_PENDING", DSPRINT_PENDING, r);
2644 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo7(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo7 *r)
2646 if (ndr_flags & NDR_SCALARS) {
2647 NDR_CHECK(ndr_push_align(ndr, 5));
2649 uint32_t _flags_save_string = ndr->flags;
2650 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2651 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->guid));
2652 ndr->flags = _flags_save_string;
2654 NDR_CHECK(ndr_push_spoolss_DsPrintAction(ndr, NDR_SCALARS, r->action));
2655 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2657 if (ndr_flags & NDR_BUFFERS) {
2659 uint32_t _flags_save_string = ndr->flags;
2660 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2662 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->guid));
2663 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->guid));
2665 ndr->flags = _flags_save_string;
2668 return NDR_ERR_SUCCESS;
2671 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo7(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo7 *r)
2674 TALLOC_CTX *_mem_save_guid_0;
2675 if (ndr_flags & NDR_SCALARS) {
2676 NDR_CHECK(ndr_pull_align(ndr, 5));
2678 uint32_t _flags_save_string = ndr->flags;
2679 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2680 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_guid));
2682 NDR_PULL_ALLOC(ndr, r->guid);
2683 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->guid, _ptr_guid));
2687 ndr->flags = _flags_save_string;
2689 NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr, NDR_SCALARS, &r->action));
2690 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2692 if (ndr_flags & NDR_BUFFERS) {
2694 uint32_t _flags_save_string = ndr->flags;
2695 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2697 uint32_t _relative_save_offset;
2698 _relative_save_offset = ndr->offset;
2699 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->guid));
2700 _mem_save_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
2701 NDR_PULL_SET_MEM_CTX(ndr, r->guid, 0);
2702 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->guid));
2703 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_guid_0, 0);
2704 if (ndr->offset > ndr->relative_highest_offset) {
2705 ndr->relative_highest_offset = ndr->offset;
2707 ndr->offset = _relative_save_offset;
2709 ndr->flags = _flags_save_string;
2712 return NDR_ERR_SUCCESS;
2715 _PUBLIC_ void ndr_print_spoolss_PrinterInfo7(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo7 *r)
2717 ndr_print_struct(ndr, name, "spoolss_PrinterInfo7");
2719 ndr_print_ptr(ndr, "guid", r->guid);
2722 ndr_print_string(ndr, "guid", r->guid);
2725 ndr_print_spoolss_DsPrintAction(ndr, "action", r->action);
2729 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo7(const struct spoolss_PrinterInfo7 *r, struct smb_iconv_convenience *ic, int flags)
2731 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo7, ic);
2734 static enum ndr_err_code ndr_push_spoolss_DeviceModeInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DeviceModeInfo *r)
2736 if (ndr_flags & NDR_SCALARS) {
2737 NDR_CHECK(ndr_push_align(ndr, 5));
2738 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
2739 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2741 if (ndr_flags & NDR_BUFFERS) {
2743 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->devmode));
2745 struct ndr_push *_ndr_devmode;
2746 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
2747 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2748 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
2752 return NDR_ERR_SUCCESS;
2755 static enum ndr_err_code ndr_pull_spoolss_DeviceModeInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DeviceModeInfo *r)
2757 uint32_t _ptr_devmode;
2758 TALLOC_CTX *_mem_save_devmode_0;
2759 if (ndr_flags & NDR_SCALARS) {
2760 NDR_CHECK(ndr_pull_align(ndr, 5));
2761 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
2763 NDR_PULL_ALLOC(ndr, r->devmode);
2764 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
2768 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2770 if (ndr_flags & NDR_BUFFERS) {
2772 uint32_t _relative_save_offset;
2773 _relative_save_offset = ndr->offset;
2774 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
2775 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
2776 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
2778 struct ndr_pull *_ndr_devmode;
2779 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
2780 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2781 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
2783 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
2784 if (ndr->offset > ndr->relative_highest_offset) {
2785 ndr->relative_highest_offset = ndr->offset;
2787 ndr->offset = _relative_save_offset;
2790 return NDR_ERR_SUCCESS;
2793 _PUBLIC_ void ndr_print_spoolss_DeviceModeInfo(struct ndr_print *ndr, const char *name, const struct spoolss_DeviceModeInfo *r)
2795 ndr_print_struct(ndr, name, "spoolss_DeviceModeInfo");
2797 ndr_print_ptr(ndr, "devmode", r->devmode);
2800 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
2806 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrinterInfo *r)
2808 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
2809 if (ndr_flags & NDR_SCALARS) {
2810 int level = ndr_push_get_switch_value(ndr, r);
2811 NDR_CHECK(ndr_push_union_align(ndr, 5));
2814 NDR_CHECK(ndr_push_align(ndr, 5));
2815 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2816 NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr, NDR_SCALARS, &r->info0));
2820 NDR_CHECK(ndr_push_align(ndr, 5));
2821 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2822 NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr, NDR_SCALARS, &r->info1));
2826 NDR_CHECK(ndr_push_align(ndr, 5));
2827 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2828 NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr, NDR_SCALARS, &r->info2));
2832 NDR_CHECK(ndr_push_align(ndr, 5));
2833 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2834 NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr, NDR_SCALARS, &r->info3));
2838 NDR_CHECK(ndr_push_align(ndr, 5));
2839 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2840 NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr, NDR_SCALARS, &r->info4));
2844 NDR_CHECK(ndr_push_align(ndr, 5));
2845 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2846 NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr, NDR_SCALARS, &r->info5));
2850 NDR_CHECK(ndr_push_align(ndr, 4));
2851 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2852 NDR_CHECK(ndr_push_spoolss_PrinterInfo6(ndr, NDR_SCALARS, &r->info6));
2856 NDR_CHECK(ndr_push_align(ndr, 5));
2857 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2858 NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr, NDR_SCALARS, &r->info7));
2862 NDR_CHECK(ndr_push_align(ndr, 5));
2863 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2864 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info8));
2868 NDR_CHECK(ndr_push_align(ndr, 5));
2869 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2870 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info9));
2878 if (ndr_flags & NDR_BUFFERS) {
2879 int level = ndr_push_get_switch_value(ndr, r);
2880 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
2883 NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr, NDR_BUFFERS, &r->info0));
2887 NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr, NDR_BUFFERS, &r->info1));
2891 NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr, NDR_BUFFERS, &r->info2));
2895 NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr, NDR_BUFFERS, &r->info3));
2899 NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr, NDR_BUFFERS, &r->info4));
2903 NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr, NDR_BUFFERS, &r->info5));
2910 NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr, NDR_BUFFERS, &r->info7));
2914 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info8));
2918 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info9));
2926 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
2927 return NDR_ERR_SUCCESS;
2930 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrinterInfo *r)
2932 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
2934 level = ndr_pull_get_switch_value(ndr, r);
2935 if (ndr_flags & NDR_SCALARS) {
2936 NDR_CHECK(ndr_pull_union_align(ndr, 5));
2939 NDR_CHECK(ndr_pull_align(ndr, 5));
2940 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2941 NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr, NDR_SCALARS, &r->info0));
2945 NDR_CHECK(ndr_pull_align(ndr, 5));
2946 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2947 NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr, NDR_SCALARS, &r->info1));
2951 NDR_CHECK(ndr_pull_align(ndr, 5));
2952 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2953 NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr, NDR_SCALARS, &r->info2));
2957 NDR_CHECK(ndr_pull_align(ndr, 5));
2958 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2959 NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr, NDR_SCALARS, &r->info3));
2963 NDR_CHECK(ndr_pull_align(ndr, 5));
2964 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2965 NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr, NDR_SCALARS, &r->info4));
2969 NDR_CHECK(ndr_pull_align(ndr, 5));
2970 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2971 NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr, NDR_SCALARS, &r->info5));
2975 NDR_CHECK(ndr_pull_align(ndr, 4));
2976 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2977 NDR_CHECK(ndr_pull_spoolss_PrinterInfo6(ndr, NDR_SCALARS, &r->info6));
2981 NDR_CHECK(ndr_pull_align(ndr, 5));
2982 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2983 NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr, NDR_SCALARS, &r->info7));
2987 NDR_CHECK(ndr_pull_align(ndr, 5));
2988 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2989 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info8));
2993 NDR_CHECK(ndr_pull_align(ndr, 5));
2994 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2995 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info9));
3003 if (ndr_flags & NDR_BUFFERS) {
3004 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
3007 NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr, NDR_BUFFERS, &r->info0));
3011 NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr, NDR_BUFFERS, &r->info1));
3015 NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr, NDR_BUFFERS, &r->info2));
3019 NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr, NDR_BUFFERS, &r->info3));
3023 NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr, NDR_BUFFERS, &r->info4));
3027 NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr, NDR_BUFFERS, &r->info5));
3034 NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr, NDR_BUFFERS, &r->info7));
3038 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info8));
3042 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info9));
3050 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
3051 return NDR_ERR_SUCCESS;
3054 _PUBLIC_ void ndr_print_spoolss_PrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrinterInfo *r)
3057 level = ndr_print_get_switch_value(ndr, r);
3058 ndr_print_union(ndr, name, level, "spoolss_PrinterInfo");
3061 ndr_print_spoolss_PrinterInfo0(ndr, "info0", &r->info0);
3065 ndr_print_spoolss_PrinterInfo1(ndr, "info1", &r->info1);
3069 ndr_print_spoolss_PrinterInfo2(ndr, "info2", &r->info2);
3073 ndr_print_spoolss_PrinterInfo3(ndr, "info3", &r->info3);
3077 ndr_print_spoolss_PrinterInfo4(ndr, "info4", &r->info4);
3081 ndr_print_spoolss_PrinterInfo5(ndr, "info5", &r->info5);
3085 ndr_print_spoolss_PrinterInfo6(ndr, "info6", &r->info6);
3089 ndr_print_spoolss_PrinterInfo7(ndr, "info7", &r->info7);
3093 ndr_print_spoolss_DeviceModeInfo(ndr, "info8", &r->info8);
3097 ndr_print_spoolss_DeviceModeInfo(ndr, "info9", &r->info9);
3106 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo(const union spoolss_PrinterInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
3108 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo, ic);
3111 static enum ndr_err_code ndr_push_spoolss_DevmodeContainer(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DevmodeContainer *r)
3113 if (ndr_flags & NDR_SCALARS) {
3114 NDR_CHECK(ndr_push_align(ndr, 5));
3115 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags)));
3116 NDR_CHECK(ndr_push_unique_ptr(ndr, r->devmode));
3117 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
3119 if (ndr_flags & NDR_BUFFERS) {
3122 struct ndr_push *_ndr_devmode;
3123 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 4, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags)));
3124 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
3125 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 4, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags)));
3129 return NDR_ERR_SUCCESS;
3132 static enum ndr_err_code ndr_pull_spoolss_DevmodeContainer(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DevmodeContainer *r)
3134 uint32_t _ptr_devmode;
3135 TALLOC_CTX *_mem_save_devmode_0;
3136 if (ndr_flags & NDR_SCALARS) {
3137 NDR_CHECK(ndr_pull_align(ndr, 5));
3138 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
3139 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
3141 NDR_PULL_ALLOC(ndr, r->devmode);
3145 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
3147 if (ndr_flags & NDR_BUFFERS) {
3149 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
3150 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
3152 struct ndr_pull *_ndr_devmode;
3153 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 4, r->_ndr_size));
3154 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
3155 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 4, r->_ndr_size));
3157 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
3160 return NDR_ERR_SUCCESS;
3163 _PUBLIC_ void ndr_print_spoolss_DevmodeContainer(struct ndr_print *ndr, const char *name, const struct spoolss_DevmodeContainer *r)
3165 ndr_print_struct(ndr, name, "spoolss_DevmodeContainer");
3167 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);
3168 ndr_print_ptr(ndr, "devmode", r->devmode);
3171 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
3177 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo1 *r)
3179 if (ndr_flags & NDR_SCALARS) {
3180 NDR_CHECK(ndr_push_align(ndr, 5));
3181 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
3183 uint32_t _flags_save_string = ndr->flags;
3184 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3185 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printer_name));
3186 ndr->flags = _flags_save_string;
3189 uint32_t _flags_save_string = ndr->flags;
3190 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3191 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->server_name));
3192 ndr->flags = _flags_save_string;
3195 uint32_t _flags_save_string = ndr->flags;
3196 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3197 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->user_name));
3198 ndr->flags = _flags_save_string;
3201 uint32_t _flags_save_string = ndr->flags;
3202 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3203 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->document_name));
3204 ndr->flags = _flags_save_string;
3207 uint32_t _flags_save_string = ndr->flags;
3208 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3209 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_type));
3210 ndr->flags = _flags_save_string;
3213 uint32_t _flags_save_string = ndr->flags;
3214 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3215 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->text_status));
3216 ndr->flags = _flags_save_string;
3218 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
3219 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
3220 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
3221 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
3222 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
3223 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
3224 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
3226 if (ndr_flags & NDR_BUFFERS) {
3228 uint32_t _flags_save_string = ndr->flags;
3229 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3230 if (r->printer_name) {
3231 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printer_name));
3232 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printer_name));
3234 ndr->flags = _flags_save_string;
3237 uint32_t _flags_save_string = ndr->flags;
3238 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3239 if (r->server_name) {
3240 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->server_name));
3241 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server_name));
3243 ndr->flags = _flags_save_string;
3246 uint32_t _flags_save_string = ndr->flags;
3247 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3249 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->user_name));
3250 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
3252 ndr->flags = _flags_save_string;
3255 uint32_t _flags_save_string = ndr->flags;
3256 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3257 if (r->document_name) {
3258 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->document_name));
3259 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->document_name));
3261 ndr->flags = _flags_save_string;
3264 uint32_t _flags_save_string = ndr->flags;
3265 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3267 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_type));
3268 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_type));
3270 ndr->flags = _flags_save_string;
3273 uint32_t _flags_save_string = ndr->flags;
3274 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3275 if (r->text_status) {
3276 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->text_status));
3277 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->text_status));
3279 ndr->flags = _flags_save_string;
3282 return NDR_ERR_SUCCESS;
3285 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo1 *r)
3287 uint32_t _ptr_printer_name;
3288 TALLOC_CTX *_mem_save_printer_name_0;
3289 uint32_t _ptr_server_name;
3290 TALLOC_CTX *_mem_save_server_name_0;
3291 uint32_t _ptr_user_name;
3292 TALLOC_CTX *_mem_save_user_name_0;
3293 uint32_t _ptr_document_name;
3294 TALLOC_CTX *_mem_save_document_name_0;
3295 uint32_t _ptr_data_type;
3296 TALLOC_CTX *_mem_save_data_type_0;
3297 uint32_t _ptr_text_status;
3298 TALLOC_CTX *_mem_save_text_status_0;
3299 if (ndr_flags & NDR_SCALARS) {
3300 NDR_CHECK(ndr_pull_align(ndr, 5));
3301 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
3303 uint32_t _flags_save_string = ndr->flags;
3304 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3305 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
3306 if (_ptr_printer_name) {
3307 NDR_PULL_ALLOC(ndr, r->printer_name);
3308 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printer_name, _ptr_printer_name));
3310 r->printer_name = NULL;
3312 ndr->flags = _flags_save_string;
3315 uint32_t _flags_save_string = ndr->flags;
3316 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3317 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
3318 if (_ptr_server_name) {
3319 NDR_PULL_ALLOC(ndr, r->server_name);
3320 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->server_name, _ptr_server_name));
3322 r->server_name = NULL;
3324 ndr->flags = _flags_save_string;
3327 uint32_t _flags_save_string = ndr->flags;
3328 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3329 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
3330 if (_ptr_user_name) {
3331 NDR_PULL_ALLOC(ndr, r->user_name);
3332 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->user_name, _ptr_user_name));
3334 r->user_name = NULL;
3336 ndr->flags = _flags_save_string;
3339 uint32_t _flags_save_string = ndr->flags;
3340 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3341 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
3342 if (_ptr_document_name) {
3343 NDR_PULL_ALLOC(ndr, r->document_name);
3344 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->document_name, _ptr_document_name));
3346 r->document_name = NULL;
3348 ndr->flags = _flags_save_string;
3351 uint32_t _flags_save_string = ndr->flags;
3352 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3353 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
3354 if (_ptr_data_type) {
3355 NDR_PULL_ALLOC(ndr, r->data_type);
3356 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_type, _ptr_data_type));
3358 r->data_type = NULL;
3360 ndr->flags = _flags_save_string;
3363 uint32_t _flags_save_string = ndr->flags;
3364 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3365 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
3366 if (_ptr_text_status) {
3367 NDR_PULL_ALLOC(ndr, r->text_status);
3368 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->text_status, _ptr_text_status));
3370 r->text_status = NULL;
3372 ndr->flags = _flags_save_string;
3374 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
3375 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
3376 if (r->priority > 99) {
3377 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
3379 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
3380 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
3381 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
3382 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
3383 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
3385 if (ndr_flags & NDR_BUFFERS) {
3387 uint32_t _flags_save_string = ndr->flags;
3388 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3389 if (r->printer_name) {
3390 uint32_t _relative_save_offset;
3391 _relative_save_offset = ndr->offset;
3392 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printer_name));
3393 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3394 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
3395 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printer_name));
3396 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
3397 if (ndr->offset > ndr->relative_highest_offset) {
3398 ndr->relative_highest_offset = ndr->offset;
3400 ndr->offset = _relative_save_offset;
3402 ndr->flags = _flags_save_string;
3405 uint32_t _flags_save_string = ndr->flags;
3406 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3407 if (r->server_name) {
3408 uint32_t _relative_save_offset;
3409 _relative_save_offset = ndr->offset;
3410 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->server_name));
3411 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3412 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
3413 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->server_name));
3414 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
3415 if (ndr->offset > ndr->relative_highest_offset) {
3416 ndr->relative_highest_offset = ndr->offset;
3418 ndr->offset = _relative_save_offset;
3420 ndr->flags = _flags_save_string;
3423 uint32_t _flags_save_string = ndr->flags;
3424 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3426 uint32_t _relative_save_offset;
3427 _relative_save_offset = ndr->offset;
3428 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->user_name));
3429 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3430 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
3431 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
3432 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
3433 if (ndr->offset > ndr->relative_highest_offset) {
3434 ndr->relative_highest_offset = ndr->offset;
3436 ndr->offset = _relative_save_offset;
3438 ndr->flags = _flags_save_string;
3441 uint32_t _flags_save_string = ndr->flags;
3442 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3443 if (r->document_name) {
3444 uint32_t _relative_save_offset;
3445 _relative_save_offset = ndr->offset;
3446 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->document_name));
3447 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3448 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
3449 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->document_name));
3450 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
3451 if (ndr->offset > ndr->relative_highest_offset) {
3452 ndr->relative_highest_offset = ndr->offset;
3454 ndr->offset = _relative_save_offset;
3456 ndr->flags = _flags_save_string;
3459 uint32_t _flags_save_string = ndr->flags;
3460 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3462 uint32_t _relative_save_offset;
3463 _relative_save_offset = ndr->offset;
3464 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_type));
3465 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
3466 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
3467 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_type));
3468 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
3469 if (ndr->offset > ndr->relative_highest_offset) {
3470 ndr->relative_highest_offset = ndr->offset;
3472 ndr->offset = _relative_save_offset;
3474 ndr->flags = _flags_save_string;
3477 uint32_t _flags_save_string = ndr->flags;
3478 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3479 if (r->text_status) {
3480 uint32_t _relative_save_offset;
3481 _relative_save_offset = ndr->offset;
3482 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->text_status));
3483 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
3484 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
3485 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->text_status));
3486 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
3487 if (ndr->offset > ndr->relative_highest_offset) {
3488 ndr->relative_highest_offset = ndr->offset;
3490 ndr->offset = _relative_save_offset;
3492 ndr->flags = _flags_save_string;
3495 return NDR_ERR_SUCCESS;
3498 _PUBLIC_ void ndr_print_spoolss_JobInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo1 *r)
3500 ndr_print_struct(ndr, name, "spoolss_JobInfo1");
3502 ndr_print_uint32(ndr, "job_id", r->job_id);
3503 ndr_print_ptr(ndr, "printer_name", r->printer_name);
3505 if (r->printer_name) {
3506 ndr_print_string(ndr, "printer_name", r->printer_name);
3509 ndr_print_ptr(ndr, "server_name", r->server_name);
3511 if (r->server_name) {
3512 ndr_print_string(ndr, "server_name", r->server_name);
3515 ndr_print_ptr(ndr, "user_name", r->user_name);
3518 ndr_print_string(ndr, "user_name", r->user_name);
3521 ndr_print_ptr(ndr, "document_name", r->document_name);
3523 if (r->document_name) {
3524 ndr_print_string(ndr, "document_name", r->document_name);
3527 ndr_print_ptr(ndr, "data_type", r->data_type);
3530 ndr_print_string(ndr, "data_type", r->data_type);
3533 ndr_print_ptr(ndr, "text_status", r->text_status);
3535 if (r->text_status) {
3536 ndr_print_string(ndr, "text_status", r->text_status);
3539 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
3540 ndr_print_uint32(ndr, "priority", r->priority);
3541 ndr_print_uint32(ndr, "position", r->position);
3542 ndr_print_uint32(ndr, "total_pages", r->total_pages);
3543 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
3544 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
3548 _PUBLIC_ size_t ndr_size_spoolss_JobInfo1(const struct spoolss_JobInfo1 *r, struct smb_iconv_convenience *ic, int flags)
3550 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo1, ic);
3553 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo2 *r)
3555 if (ndr_flags & NDR_SCALARS) {
3556 NDR_CHECK(ndr_push_align(ndr, 5));
3557 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
3559 uint32_t _flags_save_string = ndr->flags;
3560 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3561 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printer_name));
3562 ndr->flags = _flags_save_string;
3565 uint32_t _flags_save_string = ndr->flags;
3566 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3567 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->server_name));
3568 ndr->flags = _flags_save_string;
3571 uint32_t _flags_save_string = ndr->flags;
3572 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3573 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->user_name));
3574 ndr->flags = _flags_save_string;
3577 uint32_t _flags_save_string = ndr->flags;
3578 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3579 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->document_name));
3580 ndr->flags = _flags_save_string;
3583 uint32_t _flags_save_string = ndr->flags;
3584 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3585 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->notify_name));
3586 ndr->flags = _flags_save_string;
3589 uint32_t _flags_save_string = ndr->flags;
3590 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3591 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_type));
3592 ndr->flags = _flags_save_string;
3595 uint32_t _flags_save_string = ndr->flags;
3596 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3597 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor));
3598 ndr->flags = _flags_save_string;
3601 uint32_t _flags_save_string = ndr->flags;
3602 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3603 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->parameters));
3604 ndr->flags = _flags_save_string;
3607 uint32_t _flags_save_string = ndr->flags;
3608 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3609 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
3610 ndr->flags = _flags_save_string;
3612 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
3614 uint32_t _flags_save_string = ndr->flags;
3615 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3616 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->text_status));
3617 ndr->flags = _flags_save_string;
3619 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
3620 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
3621 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
3622 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
3623 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
3624 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
3625 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
3626 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
3627 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
3628 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
3629 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
3630 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
3632 if (ndr_flags & NDR_BUFFERS) {
3634 uint32_t _flags_save_string = ndr->flags;
3635 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3636 if (r->printer_name) {
3637 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printer_name));
3638 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printer_name));
3640 ndr->flags = _flags_save_string;
3643 uint32_t _flags_save_string = ndr->flags;
3644 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3645 if (r->server_name) {
3646 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->server_name));
3647 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server_name));
3649 ndr->flags = _flags_save_string;
3652 uint32_t _flags_save_string = ndr->flags;
3653 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3655 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->user_name));
3656 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
3658 ndr->flags = _flags_save_string;
3661 uint32_t _flags_save_string = ndr->flags;
3662 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3663 if (r->document_name) {
3664 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->document_name));
3665 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->document_name));
3667 ndr->flags = _flags_save_string;
3670 uint32_t _flags_save_string = ndr->flags;
3671 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3672 if (r->notify_name) {
3673 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->notify_name));
3674 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->notify_name));
3676 ndr->flags = _flags_save_string;
3679 uint32_t _flags_save_string = ndr->flags;
3680 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3682 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_type));
3683 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_type));
3685 ndr->flags = _flags_save_string;
3688 uint32_t _flags_save_string = ndr->flags;
3689 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3690 if (r->print_processor) {
3691 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->print_processor));
3692 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor));
3694 ndr->flags = _flags_save_string;
3697 uint32_t _flags_save_string = ndr->flags;
3698 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3699 if (r->parameters) {
3700 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->parameters));
3701 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->parameters));
3703 ndr->flags = _flags_save_string;
3706 uint32_t _flags_save_string = ndr->flags;
3707 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3708 if (r->driver_name) {
3709 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
3710 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
3712 ndr->flags = _flags_save_string;
3715 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->devmode));
3716 NDR_CHECK(ndr_push_spoolss_DeviceMode(ndr, NDR_SCALARS, r->devmode));
3719 uint32_t _flags_save_string = ndr->flags;
3720 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3721 if (r->text_status) {
3722 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->text_status));
3723 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->text_status));
3725 ndr->flags = _flags_save_string;
3728 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->secdesc));
3729 NDR_CHECK(ndr_push_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
3732 return NDR_ERR_SUCCESS;
3735 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo2 *r)
3737 uint32_t _ptr_printer_name;
3738 TALLOC_CTX *_mem_save_printer_name_0;
3739 uint32_t _ptr_server_name;
3740 TALLOC_CTX *_mem_save_server_name_0;
3741 uint32_t _ptr_user_name;
3742 TALLOC_CTX *_mem_save_user_name_0;
3743 uint32_t _ptr_document_name;
3744 TALLOC_CTX *_mem_save_document_name_0;
3745 uint32_t _ptr_notify_name;
3746 TALLOC_CTX *_mem_save_notify_name_0;
3747 uint32_t _ptr_data_type;
3748 TALLOC_CTX *_mem_save_data_type_0;
3749 uint32_t _ptr_print_processor;
3750 TALLOC_CTX *_mem_save_print_processor_0;
3751 uint32_t _ptr_parameters;
3752 TALLOC_CTX *_mem_save_parameters_0;
3753 uint32_t _ptr_driver_name;
3754 TALLOC_CTX *_mem_save_driver_name_0;
3755 uint32_t _ptr_devmode;
3756 TALLOC_CTX *_mem_save_devmode_0;
3757 uint32_t _ptr_text_status;
3758 TALLOC_CTX *_mem_save_text_status_0;
3759 uint32_t _ptr_secdesc;
3760 TALLOC_CTX *_mem_save_secdesc_0;
3761 if (ndr_flags & NDR_SCALARS) {
3762 NDR_CHECK(ndr_pull_align(ndr, 5));
3763 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
3765 uint32_t _flags_save_string = ndr->flags;
3766 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3767 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
3768 if (_ptr_printer_name) {
3769 NDR_PULL_ALLOC(ndr, r->printer_name);
3770 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printer_name, _ptr_printer_name));
3772 r->printer_name = NULL;
3774 ndr->flags = _flags_save_string;
3777 uint32_t _flags_save_string = ndr->flags;
3778 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3779 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
3780 if (_ptr_server_name) {
3781 NDR_PULL_ALLOC(ndr, r->server_name);
3782 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->server_name, _ptr_server_name));
3784 r->server_name = NULL;
3786 ndr->flags = _flags_save_string;
3789 uint32_t _flags_save_string = ndr->flags;
3790 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3791 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
3792 if (_ptr_user_name) {
3793 NDR_PULL_ALLOC(ndr, r->user_name);
3794 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->user_name, _ptr_user_name));
3796 r->user_name = NULL;
3798 ndr->flags = _flags_save_string;
3801 uint32_t _flags_save_string = ndr->flags;
3802 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3803 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
3804 if (_ptr_document_name) {
3805 NDR_PULL_ALLOC(ndr, r->document_name);
3806 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->document_name, _ptr_document_name));
3808 r->document_name = NULL;
3810 ndr->flags = _flags_save_string;
3813 uint32_t _flags_save_string = ndr->flags;
3814 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3815 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
3816 if (_ptr_notify_name) {
3817 NDR_PULL_ALLOC(ndr, r->notify_name);
3818 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->notify_name, _ptr_notify_name));
3820 r->notify_name = NULL;
3822 ndr->flags = _flags_save_string;
3825 uint32_t _flags_save_string = ndr->flags;
3826 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3827 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
3828 if (_ptr_data_type) {
3829 NDR_PULL_ALLOC(ndr, r->data_type);
3830 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_type, _ptr_data_type));
3832 r->data_type = NULL;
3834 ndr->flags = _flags_save_string;
3837 uint32_t _flags_save_string = ndr->flags;
3838 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3839 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
3840 if (_ptr_print_processor) {
3841 NDR_PULL_ALLOC(ndr, r->print_processor);
3842 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor, _ptr_print_processor));
3844 r->print_processor = NULL;
3846 ndr->flags = _flags_save_string;
3849 uint32_t _flags_save_string = ndr->flags;
3850 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3851 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
3852 if (_ptr_parameters) {
3853 NDR_PULL_ALLOC(ndr, r->parameters);
3854 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->parameters, _ptr_parameters));
3856 r->parameters = NULL;
3858 ndr->flags = _flags_save_string;
3861 uint32_t _flags_save_string = ndr->flags;
3862 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3863 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
3864 if (_ptr_driver_name) {
3865 NDR_PULL_ALLOC(ndr, r->driver_name);
3866 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
3868 r->driver_name = NULL;
3870 ndr->flags = _flags_save_string;
3872 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
3874 NDR_PULL_ALLOC(ndr, r->devmode);
3875 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
3880 uint32_t _flags_save_string = ndr->flags;
3881 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3882 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
3883 if (_ptr_text_status) {
3884 NDR_PULL_ALLOC(ndr, r->text_status);
3885 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->text_status, _ptr_text_status));
3887 r->text_status = NULL;
3889 ndr->flags = _flags_save_string;
3891 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
3893 NDR_PULL_ALLOC(ndr, r->secdesc);
3894 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
3898 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
3899 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
3900 if (r->priority > 99) {
3901 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
3903 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
3904 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
3905 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
3906 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
3907 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
3908 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
3909 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
3910 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
3911 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
3913 if (ndr_flags & NDR_BUFFERS) {
3915 uint32_t _flags_save_string = ndr->flags;
3916 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3917 if (r->printer_name) {
3918 uint32_t _relative_save_offset;
3919 _relative_save_offset = ndr->offset;
3920 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printer_name));
3921 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3922 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
3923 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printer_name));
3924 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
3925 if (ndr->offset > ndr->relative_highest_offset) {
3926 ndr->relative_highest_offset = ndr->offset;
3928 ndr->offset = _relative_save_offset;
3930 ndr->flags = _flags_save_string;
3933 uint32_t _flags_save_string = ndr->flags;
3934 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3935 if (r->server_name) {
3936 uint32_t _relative_save_offset;
3937 _relative_save_offset = ndr->offset;
3938 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->server_name));
3939 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3940 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
3941 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->server_name));
3942 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
3943 if (ndr->offset > ndr->relative_highest_offset) {
3944 ndr->relative_highest_offset = ndr->offset;
3946 ndr->offset = _relative_save_offset;
3948 ndr->flags = _flags_save_string;
3951 uint32_t _flags_save_string = ndr->flags;
3952 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3954 uint32_t _relative_save_offset;
3955 _relative_save_offset = ndr->offset;
3956 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->user_name));
3957 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3958 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
3959 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
3960 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
3961 if (ndr->offset > ndr->relative_highest_offset) {
3962 ndr->relative_highest_offset = ndr->offset;
3964 ndr->offset = _relative_save_offset;
3966 ndr->flags = _flags_save_string;
3969 uint32_t _flags_save_string = ndr->flags;
3970 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3971 if (r->document_name) {
3972 uint32_t _relative_save_offset;
3973 _relative_save_offset = ndr->offset;
3974 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->document_name));
3975 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3976 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
3977 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->document_name));
3978 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
3979 if (ndr->offset > ndr->relative_highest_offset) {
3980 ndr->relative_highest_offset = ndr->offset;
3982 ndr->offset = _relative_save_offset;
3984 ndr->flags = _flags_save_string;
3987 uint32_t _flags_save_string = ndr->flags;
3988 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3989 if (r->notify_name) {
3990 uint32_t _relative_save_offset;
3991 _relative_save_offset = ndr->offset;
3992 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->notify_name));
3993 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3994 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
3995 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->notify_name));
3996 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
3997 if (ndr->offset > ndr->relative_highest_offset) {
3998 ndr->relative_highest_offset = ndr->offset;
4000 ndr->offset = _relative_save_offset;
4002 ndr->flags = _flags_save_string;
4005 uint32_t _flags_save_string = ndr->flags;
4006 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4008 uint32_t _relative_save_offset;
4009 _relative_save_offset = ndr->offset;
4010 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_type));
4011 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
4012 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
4013 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_type));
4014 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
4015 if (ndr->offset > ndr->relative_highest_offset) {
4016 ndr->relative_highest_offset = ndr->offset;
4018 ndr->offset = _relative_save_offset;
4020 ndr->flags = _flags_save_string;
4023 uint32_t _flags_save_string = ndr->flags;
4024 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4025 if (r->print_processor) {
4026 uint32_t _relative_save_offset;
4027 _relative_save_offset = ndr->offset;
4028 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor));
4029 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
4030 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
4031 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor));
4032 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
4033 if (ndr->offset > ndr->relative_highest_offset) {
4034 ndr->relative_highest_offset = ndr->offset;
4036 ndr->offset = _relative_save_offset;
4038 ndr->flags = _flags_save_string;
4041 uint32_t _flags_save_string = ndr->flags;
4042 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4043 if (r->parameters) {
4044 uint32_t _relative_save_offset;
4045 _relative_save_offset = ndr->offset;
4046 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->parameters));
4047 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
4048 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
4049 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->parameters));
4050 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
4051 if (ndr->offset > ndr->relative_highest_offset) {
4052 ndr->relative_highest_offset = ndr->offset;
4054 ndr->offset = _relative_save_offset;
4056 ndr->flags = _flags_save_string;
4059 uint32_t _flags_save_string = ndr->flags;
4060 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4061 if (r->driver_name) {
4062 uint32_t _relative_save_offset;
4063 _relative_save_offset = ndr->offset;
4064 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
4065 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4066 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
4067 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
4068 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
4069 if (ndr->offset > ndr->relative_highest_offset) {
4070 ndr->relative_highest_offset = ndr->offset;
4072 ndr->offset = _relative_save_offset;
4074 ndr->flags = _flags_save_string;
4077 uint32_t _relative_save_offset;
4078 _relative_save_offset = ndr->offset;
4079 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
4080 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
4081 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
4082 NDR_CHECK(ndr_pull_spoolss_DeviceMode(ndr, NDR_SCALARS, r->devmode));
4083 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
4084 if (ndr->offset > ndr->relative_highest_offset) {
4085 ndr->relative_highest_offset = ndr->offset;
4087 ndr->offset = _relative_save_offset;
4090 uint32_t _flags_save_string = ndr->flags;
4091 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4092 if (r->text_status) {
4093 uint32_t _relative_save_offset;
4094 _relative_save_offset = ndr->offset;
4095 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->text_status));
4096 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
4097 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
4098 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->text_status));
4099 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
4100 if (ndr->offset > ndr->relative_highest_offset) {
4101 ndr->relative_highest_offset = ndr->offset;
4103 ndr->offset = _relative_save_offset;
4105 ndr->flags = _flags_save_string;
4108 uint32_t _relative_save_offset;
4109 _relative_save_offset = ndr->offset;
4110 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
4111 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
4112 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
4113 NDR_CHECK(ndr_pull_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
4114 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
4115 if (ndr->offset > ndr->relative_highest_offset) {
4116 ndr->relative_highest_offset = ndr->offset;
4118 ndr->offset = _relative_save_offset;
4121 return NDR_ERR_SUCCESS;
4124 _PUBLIC_ void ndr_print_spoolss_JobInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo2 *r)
4126 ndr_print_struct(ndr, name, "spoolss_JobInfo2");
4128 ndr_print_uint32(ndr, "job_id", r->job_id);
4129 ndr_print_ptr(ndr, "printer_name", r->printer_name);
4131 if (r->printer_name) {
4132 ndr_print_string(ndr, "printer_name", r->printer_name);
4135 ndr_print_ptr(ndr, "server_name", r->server_name);
4137 if (r->server_name) {
4138 ndr_print_string(ndr, "server_name", r->server_name);
4141 ndr_print_ptr(ndr, "user_name", r->user_name);
4144 ndr_print_string(ndr, "user_name", r->user_name);
4147 ndr_print_ptr(ndr, "document_name", r->document_name);
4149 if (r->document_name) {
4150 ndr_print_string(ndr, "document_name", r->document_name);
4153 ndr_print_ptr(ndr, "notify_name", r->notify_name);
4155 if (r->notify_name) {
4156 ndr_print_string(ndr, "notify_name", r->notify_name);
4159 ndr_print_ptr(ndr, "data_type", r->data_type);
4162 ndr_print_string(ndr, "data_type", r->data_type);
4165 ndr_print_ptr(ndr, "print_processor", r->print_processor);
4167 if (r->print_processor) {
4168 ndr_print_string(ndr, "print_processor", r->print_processor);
4171 ndr_print_ptr(ndr, "parameters", r->parameters);
4173 if (r->parameters) {
4174 ndr_print_string(ndr, "parameters", r->parameters);
4177 ndr_print_ptr(ndr, "driver_name", r->driver_name);
4179 if (r->driver_name) {
4180 ndr_print_string(ndr, "driver_name", r->driver_name);
4183 ndr_print_ptr(ndr, "devmode", r->devmode);
4186 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
4189 ndr_print_ptr(ndr, "text_status", r->text_status);
4191 if (r->text_status) {
4192 ndr_print_string(ndr, "text_status", r->text_status);
4195 ndr_print_ptr(ndr, "secdesc", r->secdesc);
4198 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
4201 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
4202 ndr_print_uint32(ndr, "priority", r->priority);
4203 ndr_print_uint32(ndr, "position", r->position);
4204 ndr_print_uint32(ndr, "start_time", r->start_time);
4205 ndr_print_uint32(ndr, "until_time", r->until_time);
4206 ndr_print_uint32(ndr, "total_pages", r->total_pages);
4207 ndr_print_uint32(ndr, "size", r->size);
4208 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
4209 ndr_print_uint32(ndr, "time", r->time);
4210 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
4214 _PUBLIC_ size_t ndr_size_spoolss_JobInfo2(const struct spoolss_JobInfo2 *r, struct smb_iconv_convenience *ic, int flags)
4216 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo2, ic);
4219 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo3 *r)
4221 if (ndr_flags & NDR_SCALARS) {
4222 NDR_CHECK(ndr_push_align(ndr, 4));
4223 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
4224 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->next_job_id));
4225 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
4226 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
4228 if (ndr_flags & NDR_BUFFERS) {
4230 return NDR_ERR_SUCCESS;
4233 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo3 *r)
4235 if (ndr_flags & NDR_SCALARS) {
4236 NDR_CHECK(ndr_pull_align(ndr, 4));
4237 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
4238 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->next_job_id));
4239 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
4240 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
4242 if (ndr_flags & NDR_BUFFERS) {
4244 return NDR_ERR_SUCCESS;
4247 _PUBLIC_ void ndr_print_spoolss_JobInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo3 *r)
4249 ndr_print_struct(ndr, name, "spoolss_JobInfo3");
4251 ndr_print_uint32(ndr, "job_id", r->job_id);
4252 ndr_print_uint32(ndr, "next_job_id", r->next_job_id);
4253 ndr_print_uint32(ndr, "reserved", r->reserved);
4257 _PUBLIC_ size_t ndr_size_spoolss_JobInfo3(const struct spoolss_JobInfo3 *r, struct smb_iconv_convenience *ic, int flags)
4259 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo3, ic);
4262 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo4 *r)
4264 if (ndr_flags & NDR_SCALARS) {
4265 NDR_CHECK(ndr_push_align(ndr, 5));
4266 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
4268 uint32_t _flags_save_string = ndr->flags;
4269 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4270 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printer_name));
4271 ndr->flags = _flags_save_string;
4274 uint32_t _flags_save_string = ndr->flags;
4275 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4276 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->server_name));
4277 ndr->flags = _flags_save_string;
4280 uint32_t _flags_save_string = ndr->flags;
4281 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4282 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->user_name));
4283 ndr->flags = _flags_save_string;
4286 uint32_t _flags_save_string = ndr->flags;
4287 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4288 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->document_name));
4289 ndr->flags = _flags_save_string;
4292 uint32_t _flags_save_string = ndr->flags;
4293 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4294 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->notify_name));
4295 ndr->flags = _flags_save_string;
4298 uint32_t _flags_save_string = ndr->flags;
4299 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4300 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_type));
4301 ndr->flags = _flags_save_string;
4304 uint32_t _flags_save_string = ndr->flags;
4305 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4306 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor));
4307 ndr->flags = _flags_save_string;
4310 uint32_t _flags_save_string = ndr->flags;
4311 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4312 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->parameters));
4313 ndr->flags = _flags_save_string;
4316 uint32_t _flags_save_string = ndr->flags;
4317 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4318 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
4319 ndr->flags = _flags_save_string;
4321 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
4323 uint32_t _flags_save_string = ndr->flags;
4324 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4325 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->text_status));
4326 ndr->flags = _flags_save_string;
4328 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
4329 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
4330 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
4331 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
4332 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
4333 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
4334 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
4335 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
4336 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
4337 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
4338 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
4339 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size_high));
4340 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
4342 if (ndr_flags & NDR_BUFFERS) {
4344 uint32_t _flags_save_string = ndr->flags;
4345 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4346 if (r->printer_name) {
4347 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printer_name));
4348 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printer_name));
4350 ndr->flags = _flags_save_string;
4353 uint32_t _flags_save_string = ndr->flags;
4354 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4355 if (r->server_name) {
4356 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->server_name));
4357 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server_name));
4359 ndr->flags = _flags_save_string;
4362 uint32_t _flags_save_string = ndr->flags;
4363 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4365 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->user_name));
4366 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
4368 ndr->flags = _flags_save_string;
4371 uint32_t _flags_save_string = ndr->flags;
4372 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4373 if (r->document_name) {
4374 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->document_name));
4375 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->document_name));
4377 ndr->flags = _flags_save_string;
4380 uint32_t _flags_save_string = ndr->flags;
4381 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4382 if (r->notify_name) {
4383 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->notify_name));
4384 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->notify_name));
4386 ndr->flags = _flags_save_string;
4389 uint32_t _flags_save_string = ndr->flags;
4390 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4392 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_type));
4393 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_type));
4395 ndr->flags = _flags_save_string;
4398 uint32_t _flags_save_string = ndr->flags;
4399 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4400 if (r->print_processor) {
4401 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->print_processor));
4402 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor));
4404 ndr->flags = _flags_save_string;
4407 uint32_t _flags_save_string = ndr->flags;
4408 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4409 if (r->parameters) {
4410 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->parameters));
4411 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->parameters));
4413 ndr->flags = _flags_save_string;
4416 uint32_t _flags_save_string = ndr->flags;
4417 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4418 if (r->driver_name) {
4419 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
4420 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
4422 ndr->flags = _flags_save_string;
4425 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->devmode));
4426 NDR_CHECK(ndr_push_spoolss_DeviceMode(ndr, NDR_SCALARS, r->devmode));
4429 uint32_t _flags_save_string = ndr->flags;
4430 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4431 if (r->text_status) {
4432 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->text_status));
4433 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->text_status));
4435 ndr->flags = _flags_save_string;
4438 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->secdesc));
4439 NDR_CHECK(ndr_push_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
4442 return NDR_ERR_SUCCESS;
4445 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo4 *r)
4447 uint32_t _ptr_printer_name;
4448 TALLOC_CTX *_mem_save_printer_name_0;
4449 uint32_t _ptr_server_name;
4450 TALLOC_CTX *_mem_save_server_name_0;
4451 uint32_t _ptr_user_name;
4452 TALLOC_CTX *_mem_save_user_name_0;
4453 uint32_t _ptr_document_name;
4454 TALLOC_CTX *_mem_save_document_name_0;
4455 uint32_t _ptr_notify_name;
4456 TALLOC_CTX *_mem_save_notify_name_0;
4457 uint32_t _ptr_data_type;
4458 TALLOC_CTX *_mem_save_data_type_0;
4459 uint32_t _ptr_print_processor;
4460 TALLOC_CTX *_mem_save_print_processor_0;
4461 uint32_t _ptr_parameters;
4462 TALLOC_CTX *_mem_save_parameters_0;
4463 uint32_t _ptr_driver_name;
4464 TALLOC_CTX *_mem_save_driver_name_0;
4465 uint32_t _ptr_devmode;
4466 TALLOC_CTX *_mem_save_devmode_0;
4467 uint32_t _ptr_text_status;
4468 TALLOC_CTX *_mem_save_text_status_0;
4469 uint32_t _ptr_secdesc;
4470 TALLOC_CTX *_mem_save_secdesc_0;
4471 if (ndr_flags & NDR_SCALARS) {
4472 NDR_CHECK(ndr_pull_align(ndr, 5));
4473 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
4475 uint32_t _flags_save_string = ndr->flags;
4476 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4477 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
4478 if (_ptr_printer_name) {
4479 NDR_PULL_ALLOC(ndr, r->printer_name);
4480 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printer_name, _ptr_printer_name));
4482 r->printer_name = NULL;
4484 ndr->flags = _flags_save_string;
4487 uint32_t _flags_save_string = ndr->flags;
4488 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4489 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
4490 if (_ptr_server_name) {
4491 NDR_PULL_ALLOC(ndr, r->server_name);
4492 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->server_name, _ptr_server_name));
4494 r->server_name = NULL;
4496 ndr->flags = _flags_save_string;
4499 uint32_t _flags_save_string = ndr->flags;
4500 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4501 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
4502 if (_ptr_user_name) {
4503 NDR_PULL_ALLOC(ndr, r->user_name);
4504 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->user_name, _ptr_user_name));
4506 r->user_name = NULL;
4508 ndr->flags = _flags_save_string;
4511 uint32_t _flags_save_string = ndr->flags;
4512 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4513 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
4514 if (_ptr_document_name) {
4515 NDR_PULL_ALLOC(ndr, r->document_name);
4516 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->document_name, _ptr_document_name));
4518 r->document_name = NULL;
4520 ndr->flags = _flags_save_string;
4523 uint32_t _flags_save_string = ndr->flags;
4524 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4525 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
4526 if (_ptr_notify_name) {
4527 NDR_PULL_ALLOC(ndr, r->notify_name);
4528 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->notify_name, _ptr_notify_name));
4530 r->notify_name = NULL;
4532 ndr->flags = _flags_save_string;
4535 uint32_t _flags_save_string = ndr->flags;
4536 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4537 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
4538 if (_ptr_data_type) {
4539 NDR_PULL_ALLOC(ndr, r->data_type);
4540 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_type, _ptr_data_type));
4542 r->data_type = NULL;
4544 ndr->flags = _flags_save_string;
4547 uint32_t _flags_save_string = ndr->flags;
4548 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4549 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
4550 if (_ptr_print_processor) {
4551 NDR_PULL_ALLOC(ndr, r->print_processor);
4552 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor, _ptr_print_processor));
4554 r->print_processor = NULL;
4556 ndr->flags = _flags_save_string;
4559 uint32_t _flags_save_string = ndr->flags;
4560 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4561 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
4562 if (_ptr_parameters) {
4563 NDR_PULL_ALLOC(ndr, r->parameters);
4564 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->parameters, _ptr_parameters));
4566 r->parameters = NULL;
4568 ndr->flags = _flags_save_string;
4571 uint32_t _flags_save_string = ndr->flags;
4572 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4573 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
4574 if (_ptr_driver_name) {
4575 NDR_PULL_ALLOC(ndr, r->driver_name);
4576 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
4578 r->driver_name = NULL;
4580 ndr->flags = _flags_save_string;
4582 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
4584 NDR_PULL_ALLOC(ndr, r->devmode);
4585 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
4590 uint32_t _flags_save_string = ndr->flags;
4591 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4592 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
4593 if (_ptr_text_status) {
4594 NDR_PULL_ALLOC(ndr, r->text_status);
4595 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->text_status, _ptr_text_status));
4597 r->text_status = NULL;
4599 ndr->flags = _flags_save_string;
4601 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
4603 NDR_PULL_ALLOC(ndr, r->secdesc);
4604 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
4608 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
4609 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
4610 if (r->priority > 99) {
4611 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
4613 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
4614 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
4615 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
4616 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
4617 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
4618 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
4619 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
4620 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
4621 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size_high));
4622 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
4624 if (ndr_flags & NDR_BUFFERS) {
4626 uint32_t _flags_save_string = ndr->flags;
4627 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4628 if (r->printer_name) {
4629 uint32_t _relative_save_offset;
4630 _relative_save_offset = ndr->offset;
4631 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printer_name));
4632 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4633 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
4634 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printer_name));
4635 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
4636 if (ndr->offset > ndr->relative_highest_offset) {
4637 ndr->relative_highest_offset = ndr->offset;
4639 ndr->offset = _relative_save_offset;
4641 ndr->flags = _flags_save_string;
4644 uint32_t _flags_save_string = ndr->flags;
4645 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4646 if (r->server_name) {
4647 uint32_t _relative_save_offset;
4648 _relative_save_offset = ndr->offset;
4649 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->server_name));
4650 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4651 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
4652 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->server_name));
4653 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
4654 if (ndr->offset > ndr->relative_highest_offset) {
4655 ndr->relative_highest_offset = ndr->offset;
4657 ndr->offset = _relative_save_offset;
4659 ndr->flags = _flags_save_string;
4662 uint32_t _flags_save_string = ndr->flags;
4663 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4665 uint32_t _relative_save_offset;
4666 _relative_save_offset = ndr->offset;
4667 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->user_name));
4668 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4669 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
4670 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
4671 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
4672 if (ndr->offset > ndr->relative_highest_offset) {
4673 ndr->relative_highest_offset = ndr->offset;
4675 ndr->offset = _relative_save_offset;
4677 ndr->flags = _flags_save_string;
4680 uint32_t _flags_save_string = ndr->flags;
4681 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4682 if (r->document_name) {
4683 uint32_t _relative_save_offset;
4684 _relative_save_offset = ndr->offset;
4685 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->document_name));
4686 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4687 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
4688 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->document_name));
4689 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
4690 if (ndr->offset > ndr->relative_highest_offset) {
4691 ndr->relative_highest_offset = ndr->offset;
4693 ndr->offset = _relative_save_offset;
4695 ndr->flags = _flags_save_string;
4698 uint32_t _flags_save_string = ndr->flags;
4699 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4700 if (r->notify_name) {
4701 uint32_t _relative_save_offset;
4702 _relative_save_offset = ndr->offset;
4703 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->notify_name));
4704 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4705 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
4706 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->notify_name));
4707 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
4708 if (ndr->offset > ndr->relative_highest_offset) {
4709 ndr->relative_highest_offset = ndr->offset;
4711 ndr->offset = _relative_save_offset;
4713 ndr->flags = _flags_save_string;
4716 uint32_t _flags_save_string = ndr->flags;
4717 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4719 uint32_t _relative_save_offset;
4720 _relative_save_offset = ndr->offset;
4721 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_type));
4722 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
4723 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
4724 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_type));
4725 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
4726 if (ndr->offset > ndr->relative_highest_offset) {
4727 ndr->relative_highest_offset = ndr->offset;
4729 ndr->offset = _relative_save_offset;
4731 ndr->flags = _flags_save_string;
4734 uint32_t _flags_save_string = ndr->flags;
4735 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4736 if (r->print_processor) {
4737 uint32_t _relative_save_offset;
4738 _relative_save_offset = ndr->offset;
4739 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor));
4740 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
4741 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
4742 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor));
4743 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
4744 if (ndr->offset > ndr->relative_highest_offset) {
4745 ndr->relative_highest_offset = ndr->offset;
4747 ndr->offset = _relative_save_offset;
4749 ndr->flags = _flags_save_string;
4752 uint32_t _flags_save_string = ndr->flags;
4753 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4754 if (r->parameters) {
4755 uint32_t _relative_save_offset;
4756 _relative_save_offset = ndr->offset;
4757 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->parameters));
4758 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
4759 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
4760 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->parameters));
4761 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
4762 if (ndr->offset > ndr->relative_highest_offset) {
4763 ndr->relative_highest_offset = ndr->offset;
4765 ndr->offset = _relative_save_offset;
4767 ndr->flags = _flags_save_string;
4770 uint32_t _flags_save_string = ndr->flags;
4771 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4772 if (r->driver_name) {
4773 uint32_t _relative_save_offset;
4774 _relative_save_offset = ndr->offset;
4775 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
4776 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4777 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
4778 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
4779 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
4780 if (ndr->offset > ndr->relative_highest_offset) {
4781 ndr->relative_highest_offset = ndr->offset;
4783 ndr->offset = _relative_save_offset;
4785 ndr->flags = _flags_save_string;
4788 uint32_t _relative_save_offset;
4789 _relative_save_offset = ndr->offset;
4790 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
4791 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
4792 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
4793 NDR_CHECK(ndr_pull_spoolss_DeviceMode(ndr, NDR_SCALARS, r->devmode));
4794 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
4795 if (ndr->offset > ndr->relative_highest_offset) {
4796 ndr->relative_highest_offset = ndr->offset;
4798 ndr->offset = _relative_save_offset;
4801 uint32_t _flags_save_string = ndr->flags;
4802 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4803 if (r->text_status) {
4804 uint32_t _relative_save_offset;
4805 _relative_save_offset = ndr->offset;
4806 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->text_status));
4807 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
4808 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
4809 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->text_status));
4810 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
4811 if (ndr->offset > ndr->relative_highest_offset) {
4812 ndr->relative_highest_offset = ndr->offset;
4814 ndr->offset = _relative_save_offset;
4816 ndr->flags = _flags_save_string;
4819 uint32_t _relative_save_offset;
4820 _relative_save_offset = ndr->offset;
4821 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
4822 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
4823 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
4824 NDR_CHECK(ndr_pull_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
4825 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
4826 if (ndr->offset > ndr->relative_highest_offset) {
4827 ndr->relative_highest_offset = ndr->offset;
4829 ndr->offset = _relative_save_offset;
4832 return NDR_ERR_SUCCESS;
4835 _PUBLIC_ void ndr_print_spoolss_JobInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo4 *r)
4837 ndr_print_struct(ndr, name, "spoolss_JobInfo4");
4839 ndr_print_uint32(ndr, "job_id", r->job_id);
4840 ndr_print_ptr(ndr, "printer_name", r->printer_name);
4842 if (r->printer_name) {
4843 ndr_print_string(ndr, "printer_name", r->printer_name);
4846 ndr_print_ptr(ndr, "server_name", r->server_name);
4848 if (r->server_name) {
4849 ndr_print_string(ndr, "server_name", r->server_name);
4852 ndr_print_ptr(ndr, "user_name", r->user_name);
4855 ndr_print_string(ndr, "user_name", r->user_name);
4858 ndr_print_ptr(ndr, "document_name", r->document_name);
4860 if (r->document_name) {
4861 ndr_print_string(ndr, "document_name", r->document_name);
4864 ndr_print_ptr(ndr, "notify_name", r->notify_name);
4866 if (r->notify_name) {
4867 ndr_print_string(ndr, "notify_name", r->notify_name);
4870 ndr_print_ptr(ndr, "data_type", r->data_type);
4873 ndr_print_string(ndr, "data_type", r->data_type);
4876 ndr_print_ptr(ndr, "print_processor", r->print_processor);
4878 if (r->print_processor) {
4879 ndr_print_string(ndr, "print_processor", r->print_processor);
4882 ndr_print_ptr(ndr, "parameters", r->parameters);
4884 if (r->parameters) {
4885 ndr_print_string(ndr, "parameters", r->parameters);
4888 ndr_print_ptr(ndr, "driver_name", r->driver_name);
4890 if (r->driver_name) {
4891 ndr_print_string(ndr, "driver_name", r->driver_name);
4894 ndr_print_ptr(ndr, "devmode", r->devmode);
4897 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
4900 ndr_print_ptr(ndr, "text_status", r->text_status);
4902 if (r->text_status) {
4903 ndr_print_string(ndr, "text_status", r->text_status);
4906 ndr_print_ptr(ndr, "secdesc", r->secdesc);
4909 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
4912 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
4913 ndr_print_uint32(ndr, "priority", r->priority);
4914 ndr_print_uint32(ndr, "position", r->position);
4915 ndr_print_uint32(ndr, "start_time", r->start_time);
4916 ndr_print_uint32(ndr, "until_time", r->until_time);
4917 ndr_print_uint32(ndr, "total_pages", r->total_pages);
4918 ndr_print_uint32(ndr, "size", r->size);
4919 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
4920 ndr_print_uint32(ndr, "time", r->time);
4921 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
4922 ndr_print_uint32(ndr, "size_high", r->size_high);
4926 _PUBLIC_ size_t ndr_size_spoolss_JobInfo4(const struct spoolss_JobInfo4 *r, struct smb_iconv_convenience *ic, int flags)
4928 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo4, ic);
4931 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_JobInfo *r)
4933 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
4934 if (ndr_flags & NDR_SCALARS) {
4935 int level = ndr_push_get_switch_value(ndr, r);
4936 NDR_CHECK(ndr_push_union_align(ndr, 5));
4939 NDR_CHECK(ndr_push_align(ndr, 5));
4940 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
4941 NDR_CHECK(ndr_push_spoolss_JobInfo1(ndr, NDR_SCALARS, &r->info1));
4945 NDR_CHECK(ndr_push_align(ndr, 5));
4946 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
4947 NDR_CHECK(ndr_push_spoolss_JobInfo2(ndr, NDR_SCALARS, &r->info2));
4951 NDR_CHECK(ndr_push_align(ndr, 4));
4952 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
4953 NDR_CHECK(ndr_push_spoolss_JobInfo3(ndr, NDR_SCALARS, &r->info3));
4957 NDR_CHECK(ndr_push_align(ndr, 5));
4958 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
4959 NDR_CHECK(ndr_push_spoolss_JobInfo4(ndr, NDR_SCALARS, &r->info4));
4967 if (ndr_flags & NDR_BUFFERS) {
4968 int level = ndr_push_get_switch_value(ndr, r);
4969 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
4972 NDR_CHECK(ndr_push_spoolss_JobInfo1(ndr, NDR_BUFFERS, &r->info1));
4976 NDR_CHECK(ndr_push_spoolss_JobInfo2(ndr, NDR_BUFFERS, &r->info2));
4983 NDR_CHECK(ndr_push_spoolss_JobInfo4(ndr, NDR_BUFFERS, &r->info4));
4991 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
4992 return NDR_ERR_SUCCESS;
4995 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_JobInfo *r)
4997 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
4999 level = ndr_pull_get_switch_value(ndr, r);
5000 if (ndr_flags & NDR_SCALARS) {
5001 NDR_CHECK(ndr_pull_union_align(ndr, 5));
5004 NDR_CHECK(ndr_pull_align(ndr, 5));
5005 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
5006 NDR_CHECK(ndr_pull_spoolss_JobInfo1(ndr, NDR_SCALARS, &r->info1));
5010 NDR_CHECK(ndr_pull_align(ndr, 5));
5011 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
5012 NDR_CHECK(ndr_pull_spoolss_JobInfo2(ndr, NDR_SCALARS, &r->info2));
5016 NDR_CHECK(ndr_pull_align(ndr, 4));
5017 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
5018 NDR_CHECK(ndr_pull_spoolss_JobInfo3(ndr, NDR_SCALARS, &r->info3));
5022 NDR_CHECK(ndr_pull_align(ndr, 5));
5023 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
5024 NDR_CHECK(ndr_pull_spoolss_JobInfo4(ndr, NDR_SCALARS, &r->info4));
5032 if (ndr_flags & NDR_BUFFERS) {
5033 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
5036 NDR_CHECK(ndr_pull_spoolss_JobInfo1(ndr, NDR_BUFFERS, &r->info1));
5040 NDR_CHECK(ndr_pull_spoolss_JobInfo2(ndr, NDR_BUFFERS, &r->info2));
5047 NDR_CHECK(ndr_pull_spoolss_JobInfo4(ndr, NDR_BUFFERS, &r->info4));
5055 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
5056 return NDR_ERR_SUCCESS;
5059 _PUBLIC_ void ndr_print_spoolss_JobInfo(struct ndr_print *ndr, const char *name, const union spoolss_JobInfo *r)
5062 level = ndr_print_get_switch_value(ndr, r);
5063 ndr_print_union(ndr, name, level, "spoolss_JobInfo");
5066 ndr_print_spoolss_JobInfo1(ndr, "info1", &r->info1);
5070 ndr_print_spoolss_JobInfo2(ndr, "info2", &r->info2);
5074 ndr_print_spoolss_JobInfo3(ndr, "info3", &r->info3);
5078 ndr_print_spoolss_JobInfo4(ndr, "info4", &r->info4);
5087 _PUBLIC_ size_t ndr_size_spoolss_JobInfo(const union spoolss_JobInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
5089 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo, ic);
5092 static enum ndr_err_code ndr_push_spoolss_SetJobInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetJobInfo1 *r)
5094 if (ndr_flags & NDR_SCALARS) {
5095 NDR_CHECK(ndr_push_align(ndr, 5));
5096 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
5097 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printer_name));
5098 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_name));
5099 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user_name));
5100 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
5101 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_type));
5102 NDR_CHECK(ndr_push_unique_ptr(ndr, r->text_status));
5103 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
5104 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
5105 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
5106 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
5107 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
5108 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5109 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
5111 if (ndr_flags & NDR_BUFFERS) {
5112 if (r->printer_name) {
5113 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
5114 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5115 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
5116 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printer_name, ndr_charset_length(r->printer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5118 if (r->server_name) {
5119 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
5120 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5121 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
5122 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_name, ndr_charset_length(r->server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5125 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5126 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5127 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5128 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user_name, ndr_charset_length(r->user_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5130 if (r->document_name) {
5131 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5132 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5133 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5134 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5137 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5138 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5139 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5140 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_type, ndr_charset_length(r->data_type, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5142 if (r->text_status) {
5143 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
5144 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5145 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
5146 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->text_status, ndr_charset_length(r->text_status, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5149 return NDR_ERR_SUCCESS;
5152 static enum ndr_err_code ndr_pull_spoolss_SetJobInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetJobInfo1 *r)
5154 uint32_t _ptr_printer_name;
5155 TALLOC_CTX *_mem_save_printer_name_0;
5156 uint32_t _ptr_server_name;
5157 TALLOC_CTX *_mem_save_server_name_0;
5158 uint32_t _ptr_user_name;
5159 TALLOC_CTX *_mem_save_user_name_0;
5160 uint32_t _ptr_document_name;
5161 TALLOC_CTX *_mem_save_document_name_0;
5162 uint32_t _ptr_data_type;
5163 TALLOC_CTX *_mem_save_data_type_0;
5164 uint32_t _ptr_text_status;
5165 TALLOC_CTX *_mem_save_text_status_0;
5166 if (ndr_flags & NDR_SCALARS) {
5167 NDR_CHECK(ndr_pull_align(ndr, 5));
5168 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
5169 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
5170 if (_ptr_printer_name) {
5171 NDR_PULL_ALLOC(ndr, r->printer_name);
5173 r->printer_name = NULL;
5175 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
5176 if (_ptr_server_name) {
5177 NDR_PULL_ALLOC(ndr, r->server_name);
5179 r->server_name = NULL;
5181 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
5182 if (_ptr_user_name) {
5183 NDR_PULL_ALLOC(ndr, r->user_name);
5185 r->user_name = NULL;
5187 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
5188 if (_ptr_document_name) {
5189 NDR_PULL_ALLOC(ndr, r->document_name);
5191 r->document_name = NULL;
5193 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
5194 if (_ptr_data_type) {
5195 NDR_PULL_ALLOC(ndr, r->data_type);
5197 r->data_type = NULL;
5199 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
5200 if (_ptr_text_status) {
5201 NDR_PULL_ALLOC(ndr, r->text_status);
5203 r->text_status = NULL;
5205 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
5206 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
5207 if (r->priority > 99) {
5208 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
5210 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
5211 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
5212 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
5213 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5214 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
5216 if (ndr_flags & NDR_BUFFERS) {
5217 if (r->printer_name) {
5218 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5219 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
5220 NDR_CHECK(ndr_pull_array_size(ndr, &r->printer_name));
5221 NDR_CHECK(ndr_pull_array_length(ndr, &r->printer_name));
5222 if (ndr_get_array_length(ndr, &r->printer_name) > ndr_get_array_size(ndr, &r->printer_name)) {
5223 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));
5225 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t)));
5226 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printer_name, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t), CH_UTF16));
5227 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
5229 if (r->server_name) {
5230 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5231 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
5232 NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name));
5233 NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name));
5234 if (ndr_get_array_length(ndr, &r->server_name) > ndr_get_array_size(ndr, &r->server_name)) {
5235 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));
5237 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t)));
5238 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t), CH_UTF16));
5239 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
5242 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5243 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
5244 NDR_CHECK(ndr_pull_array_size(ndr, &r->user_name));
5245 NDR_CHECK(ndr_pull_array_length(ndr, &r->user_name));
5246 if (ndr_get_array_length(ndr, &r->user_name) > ndr_get_array_size(ndr, &r->user_name)) {
5247 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));
5249 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t)));
5250 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t), CH_UTF16));
5251 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
5253 if (r->document_name) {
5254 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5255 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
5256 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
5257 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
5258 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
5259 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));
5261 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
5262 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
5263 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
5266 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
5267 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
5268 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_type));
5269 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_type));
5270 if (ndr_get_array_length(ndr, &r->data_type) > ndr_get_array_size(ndr, &r->data_type)) {
5271 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));
5273 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t)));
5274 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_type, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t), CH_UTF16));
5275 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
5277 if (r->text_status) {
5278 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
5279 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
5280 NDR_CHECK(ndr_pull_array_size(ndr, &r->text_status));
5281 NDR_CHECK(ndr_pull_array_length(ndr, &r->text_status));
5282 if (ndr_get_array_length(ndr, &r->text_status) > ndr_get_array_size(ndr, &r->text_status)) {
5283 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));
5285 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t)));
5286 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->text_status, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t), CH_UTF16));
5287 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
5290 return NDR_ERR_SUCCESS;
5293 _PUBLIC_ void ndr_print_spoolss_SetJobInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_SetJobInfo1 *r)
5295 ndr_print_struct(ndr, name, "spoolss_SetJobInfo1");
5297 ndr_print_uint32(ndr, "job_id", r->job_id);
5298 ndr_print_ptr(ndr, "printer_name", r->printer_name);
5300 if (r->printer_name) {
5301 ndr_print_string(ndr, "printer_name", r->printer_name);
5304 ndr_print_ptr(ndr, "server_name", r->server_name);
5306 if (r->server_name) {
5307 ndr_print_string(ndr, "server_name", r->server_name);
5310 ndr_print_ptr(ndr, "user_name", r->user_name);
5313 ndr_print_string(ndr, "user_name", r->user_name);
5316 ndr_print_ptr(ndr, "document_name", r->document_name);
5318 if (r->document_name) {
5319 ndr_print_string(ndr, "document_name", r->document_name);
5322 ndr_print_ptr(ndr, "data_type", r->data_type);
5325 ndr_print_string(ndr, "data_type", r->data_type);
5328 ndr_print_ptr(ndr, "text_status", r->text_status);
5330 if (r->text_status) {
5331 ndr_print_string(ndr, "text_status", r->text_status);
5334 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
5335 ndr_print_uint32(ndr, "priority", r->priority);
5336 ndr_print_uint32(ndr, "position", r->position);
5337 ndr_print_uint32(ndr, "total_pages", r->total_pages);
5338 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
5339 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
5343 static enum ndr_err_code ndr_push_spoolss_SetJobInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetJobInfo2 *r)
5345 if (ndr_flags & NDR_SCALARS) {
5346 NDR_CHECK(ndr_push_align(ndr, 5));
5347 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
5348 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printer_name));
5349 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_name));
5350 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user_name));
5351 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
5352 NDR_CHECK(ndr_push_unique_ptr(ndr, r->notify_name));
5353 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_type));
5354 NDR_CHECK(ndr_push_unique_ptr(ndr, r->print_processor));
5355 NDR_CHECK(ndr_push_unique_ptr(ndr, r->parameters));
5356 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
5357 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_devmode_ptr));
5358 NDR_CHECK(ndr_push_unique_ptr(ndr, r->text_status));
5359 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_secdesc_ptr));
5360 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
5361 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
5362 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
5363 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
5364 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
5365 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
5366 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
5367 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5368 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
5369 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
5370 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
5372 if (ndr_flags & NDR_BUFFERS) {
5373 if (r->printer_name) {
5374 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
5375 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5376 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
5377 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printer_name, ndr_charset_length(r->printer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5379 if (r->server_name) {
5380 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
5381 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5382 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
5383 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_name, ndr_charset_length(r->server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5386 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5387 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5388 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5389 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user_name, ndr_charset_length(r->user_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5391 if (r->document_name) {
5392 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5393 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5394 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5395 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5397 if (r->notify_name) {
5398 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
5399 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5400 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
5401 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->notify_name, ndr_charset_length(r->notify_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5404 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5405 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5406 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5407 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_type, ndr_charset_length(r->data_type, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5409 if (r->print_processor) {
5410 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
5411 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5412 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
5413 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->print_processor, ndr_charset_length(r->print_processor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5415 if (r->parameters) {
5416 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
5417 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5418 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
5419 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->parameters, ndr_charset_length(r->parameters, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5421 if (r->driver_name) {
5422 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5423 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5424 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5425 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5427 if (r->text_status) {
5428 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
5429 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5430 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
5431 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->text_status, ndr_charset_length(r->text_status, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5434 return NDR_ERR_SUCCESS;
5437 static enum ndr_err_code ndr_pull_spoolss_SetJobInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetJobInfo2 *r)
5439 uint32_t _ptr_printer_name;
5440 TALLOC_CTX *_mem_save_printer_name_0;
5441 uint32_t _ptr_server_name;
5442 TALLOC_CTX *_mem_save_server_name_0;
5443 uint32_t _ptr_user_name;
5444 TALLOC_CTX *_mem_save_user_name_0;
5445 uint32_t _ptr_document_name;
5446 TALLOC_CTX *_mem_save_document_name_0;
5447 uint32_t _ptr_notify_name;
5448 TALLOC_CTX *_mem_save_notify_name_0;
5449 uint32_t _ptr_data_type;
5450 TALLOC_CTX *_mem_save_data_type_0;
5451 uint32_t _ptr_print_processor;
5452 TALLOC_CTX *_mem_save_print_processor_0;
5453 uint32_t _ptr_parameters;
5454 TALLOC_CTX *_mem_save_parameters_0;
5455 uint32_t _ptr_driver_name;
5456 TALLOC_CTX *_mem_save_driver_name_0;
5457 uint32_t _ptr_text_status;
5458 TALLOC_CTX *_mem_save_text_status_0;
5459 if (ndr_flags & NDR_SCALARS) {
5460 NDR_CHECK(ndr_pull_align(ndr, 5));
5461 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
5462 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
5463 if (_ptr_printer_name) {
5464 NDR_PULL_ALLOC(ndr, r->printer_name);
5466 r->printer_name = NULL;
5468 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
5469 if (_ptr_server_name) {
5470 NDR_PULL_ALLOC(ndr, r->server_name);
5472 r->server_name = NULL;
5474 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
5475 if (_ptr_user_name) {
5476 NDR_PULL_ALLOC(ndr, r->user_name);
5478 r->user_name = NULL;
5480 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
5481 if (_ptr_document_name) {
5482 NDR_PULL_ALLOC(ndr, r->document_name);
5484 r->document_name = NULL;
5486 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
5487 if (_ptr_notify_name) {
5488 NDR_PULL_ALLOC(ndr, r->notify_name);
5490 r->notify_name = NULL;
5492 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
5493 if (_ptr_data_type) {
5494 NDR_PULL_ALLOC(ndr, r->data_type);
5496 r->data_type = NULL;
5498 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
5499 if (_ptr_print_processor) {
5500 NDR_PULL_ALLOC(ndr, r->print_processor);
5502 r->print_processor = NULL;
5504 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
5505 if (_ptr_parameters) {
5506 NDR_PULL_ALLOC(ndr, r->parameters);
5508 r->parameters = NULL;
5510 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
5511 if (_ptr_driver_name) {
5512 NDR_PULL_ALLOC(ndr, r->driver_name);
5514 r->driver_name = NULL;
5516 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_devmode_ptr));
5517 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
5518 if (_ptr_text_status) {
5519 NDR_PULL_ALLOC(ndr, r->text_status);
5521 r->text_status = NULL;
5523 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_secdesc_ptr));
5524 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
5525 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
5526 if (r->priority > 99) {
5527 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
5529 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
5530 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
5531 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
5532 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
5533 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
5534 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5535 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
5536 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
5537 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
5539 if (ndr_flags & NDR_BUFFERS) {
5540 if (r->printer_name) {
5541 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5542 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
5543 NDR_CHECK(ndr_pull_array_size(ndr, &r->printer_name));
5544 NDR_CHECK(ndr_pull_array_length(ndr, &r->printer_name));
5545 if (ndr_get_array_length(ndr, &r->printer_name) > ndr_get_array_size(ndr, &r->printer_name)) {
5546 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));
5548 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t)));
5549 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printer_name, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t), CH_UTF16));
5550 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
5552 if (r->server_name) {
5553 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5554 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
5555 NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name));
5556 NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name));
5557 if (ndr_get_array_length(ndr, &r->server_name) > ndr_get_array_size(ndr, &r->server_name)) {
5558 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));
5560 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t)));
5561 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t), CH_UTF16));
5562 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
5565 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5566 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
5567 NDR_CHECK(ndr_pull_array_size(ndr, &r->user_name));
5568 NDR_CHECK(ndr_pull_array_length(ndr, &r->user_name));
5569 if (ndr_get_array_length(ndr, &r->user_name) > ndr_get_array_size(ndr, &r->user_name)) {
5570 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));
5572 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t)));
5573 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t), CH_UTF16));
5574 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
5576 if (r->document_name) {
5577 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5578 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
5579 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
5580 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
5581 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
5582 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));
5584 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
5585 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
5586 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
5588 if (r->notify_name) {
5589 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5590 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
5591 NDR_CHECK(ndr_pull_array_size(ndr, &r->notify_name));
5592 NDR_CHECK(ndr_pull_array_length(ndr, &r->notify_name));
5593 if (ndr_get_array_length(ndr, &r->notify_name) > ndr_get_array_size(ndr, &r->notify_name)) {
5594 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));
5596 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t)));
5597 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->notify_name, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t), CH_UTF16));
5598 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
5601 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
5602 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
5603 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_type));
5604 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_type));
5605 if (ndr_get_array_length(ndr, &r->data_type) > ndr_get_array_size(ndr, &r->data_type)) {
5606 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));
5608 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t)));
5609 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_type, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t), CH_UTF16));
5610 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
5612 if (r->print_processor) {
5613 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
5614 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
5615 NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
5616 NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
5617 if (ndr_get_array_length(ndr, &r->print_processor) > ndr_get_array_size(ndr, &r->print_processor)) {
5618 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));
5620 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t)));
5621 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t), CH_UTF16));
5622 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
5624 if (r->parameters) {
5625 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
5626 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
5627 NDR_CHECK(ndr_pull_array_size(ndr, &r->parameters));
5628 NDR_CHECK(ndr_pull_array_length(ndr, &r->parameters));
5629 if (ndr_get_array_length(ndr, &r->parameters) > ndr_get_array_size(ndr, &r->parameters)) {
5630 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));
5632 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t)));
5633 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t), CH_UTF16));
5634 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
5636 if (r->driver_name) {
5637 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5638 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
5639 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
5640 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
5641 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
5642 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));
5644 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
5645 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
5646 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
5648 if (r->text_status) {
5649 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
5650 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
5651 NDR_CHECK(ndr_pull_array_size(ndr, &r->text_status));
5652 NDR_CHECK(ndr_pull_array_length(ndr, &r->text_status));
5653 if (ndr_get_array_length(ndr, &r->text_status) > ndr_get_array_size(ndr, &r->text_status)) {
5654 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));
5656 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t)));
5657 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->text_status, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t), CH_UTF16));
5658 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
5661 return NDR_ERR_SUCCESS;
5664 _PUBLIC_ void ndr_print_spoolss_SetJobInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_SetJobInfo2 *r)
5666 ndr_print_struct(ndr, name, "spoolss_SetJobInfo2");
5668 ndr_print_uint32(ndr, "job_id", r->job_id);
5669 ndr_print_ptr(ndr, "printer_name", r->printer_name);
5671 if (r->printer_name) {
5672 ndr_print_string(ndr, "printer_name", r->printer_name);
5675 ndr_print_ptr(ndr, "server_name", r->server_name);
5677 if (r->server_name) {
5678 ndr_print_string(ndr, "server_name", r->server_name);
5681 ndr_print_ptr(ndr, "user_name", r->user_name);
5684 ndr_print_string(ndr, "user_name", r->user_name);
5687 ndr_print_ptr(ndr, "document_name", r->document_name);
5689 if (r->document_name) {
5690 ndr_print_string(ndr, "document_name", r->document_name);
5693 ndr_print_ptr(ndr, "notify_name", r->notify_name);
5695 if (r->notify_name) {
5696 ndr_print_string(ndr, "notify_name", r->notify_name);
5699 ndr_print_ptr(ndr, "data_type", r->data_type);
5702 ndr_print_string(ndr, "data_type", r->data_type);
5705 ndr_print_ptr(ndr, "print_processor", r->print_processor);
5707 if (r->print_processor) {
5708 ndr_print_string(ndr, "print_processor", r->print_processor);
5711 ndr_print_ptr(ndr, "parameters", r->parameters);
5713 if (r->parameters) {
5714 ndr_print_string(ndr, "parameters", r->parameters);
5717 ndr_print_ptr(ndr, "driver_name", r->driver_name);
5719 if (r->driver_name) {
5720 ndr_print_string(ndr, "driver_name", r->driver_name);
5723 ndr_print_uint32(ndr, "_devmode_ptr", r->_devmode_ptr);
5724 ndr_print_ptr(ndr, "text_status", r->text_status);
5726 if (r->text_status) {
5727 ndr_print_string(ndr, "text_status", r->text_status);
5730 ndr_print_uint32(ndr, "_secdesc_ptr", r->_secdesc_ptr);
5731 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
5732 ndr_print_uint32(ndr, "priority", r->priority);
5733 ndr_print_uint32(ndr, "position", r->position);
5734 ndr_print_uint32(ndr, "start_time", r->start_time);
5735 ndr_print_uint32(ndr, "until_time", r->until_time);
5736 ndr_print_uint32(ndr, "total_pages", r->total_pages);
5737 ndr_print_uint32(ndr, "size", r->size);
5738 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
5739 ndr_print_uint32(ndr, "time", r->time);
5740 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
5744 static enum ndr_err_code ndr_push_spoolss_SetJobInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetJobInfo4 *r)
5746 if (ndr_flags & NDR_SCALARS) {
5747 NDR_CHECK(ndr_push_align(ndr, 5));
5748 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
5749 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printer_name));
5750 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_name));
5751 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user_name));
5752 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
5753 NDR_CHECK(ndr_push_unique_ptr(ndr, r->notify_name));
5754 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_type));
5755 NDR_CHECK(ndr_push_unique_ptr(ndr, r->print_processor));
5756 NDR_CHECK(ndr_push_unique_ptr(ndr, r->parameters));
5757 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
5758 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_devmode_ptr));
5759 NDR_CHECK(ndr_push_unique_ptr(ndr, r->text_status));
5760 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_secdesc_ptr));
5761 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
5762 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
5763 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
5764 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
5765 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
5766 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
5767 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
5768 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5769 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
5770 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
5771 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size_high));
5772 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
5774 if (ndr_flags & NDR_BUFFERS) {
5775 if (r->printer_name) {
5776 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
5777 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5778 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
5779 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printer_name, ndr_charset_length(r->printer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5781 if (r->server_name) {
5782 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
5783 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5784 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
5785 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_name, ndr_charset_length(r->server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5788 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5789 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5790 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5791 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user_name, ndr_charset_length(r->user_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5793 if (r->document_name) {
5794 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5795 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5796 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5797 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5799 if (r->notify_name) {
5800 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
5801 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5802 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
5803 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->notify_name, ndr_charset_length(r->notify_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5806 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5807 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5808 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5809 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_type, ndr_charset_length(r->data_type, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5811 if (r->print_processor) {
5812 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
5813 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5814 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
5815 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->print_processor, ndr_charset_length(r->print_processor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5817 if (r->parameters) {
5818 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
5819 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5820 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
5821 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->parameters, ndr_charset_length(r->parameters, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5823 if (r->driver_name) {
5824 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5825 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5826 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5827 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5829 if (r->text_status) {
5830 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
5831 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5832 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
5833 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->text_status, ndr_charset_length(r->text_status, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5836 return NDR_ERR_SUCCESS;
5839 static enum ndr_err_code ndr_pull_spoolss_SetJobInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetJobInfo4 *r)
5841 uint32_t _ptr_printer_name;
5842 TALLOC_CTX *_mem_save_printer_name_0;
5843 uint32_t _ptr_server_name;
5844 TALLOC_CTX *_mem_save_server_name_0;
5845 uint32_t _ptr_user_name;
5846 TALLOC_CTX *_mem_save_user_name_0;
5847 uint32_t _ptr_document_name;
5848 TALLOC_CTX *_mem_save_document_name_0;
5849 uint32_t _ptr_notify_name;
5850 TALLOC_CTX *_mem_save_notify_name_0;
5851 uint32_t _ptr_data_type;
5852 TALLOC_CTX *_mem_save_data_type_0;
5853 uint32_t _ptr_print_processor;
5854 TALLOC_CTX *_mem_save_print_processor_0;
5855 uint32_t _ptr_parameters;
5856 TALLOC_CTX *_mem_save_parameters_0;
5857 uint32_t _ptr_driver_name;
5858 TALLOC_CTX *_mem_save_driver_name_0;
5859 uint32_t _ptr_text_status;
5860 TALLOC_CTX *_mem_save_text_status_0;
5861 if (ndr_flags & NDR_SCALARS) {
5862 NDR_CHECK(ndr_pull_align(ndr, 5));
5863 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
5864 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
5865 if (_ptr_printer_name) {
5866 NDR_PULL_ALLOC(ndr, r->printer_name);
5868 r->printer_name = NULL;
5870 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
5871 if (_ptr_server_name) {
5872 NDR_PULL_ALLOC(ndr, r->server_name);
5874 r->server_name = NULL;
5876 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
5877 if (_ptr_user_name) {
5878 NDR_PULL_ALLOC(ndr, r->user_name);
5880 r->user_name = NULL;
5882 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
5883 if (_ptr_document_name) {
5884 NDR_PULL_ALLOC(ndr, r->document_name);
5886 r->document_name = NULL;
5888 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
5889 if (_ptr_notify_name) {
5890 NDR_PULL_ALLOC(ndr, r->notify_name);
5892 r->notify_name = NULL;
5894 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
5895 if (_ptr_data_type) {
5896 NDR_PULL_ALLOC(ndr, r->data_type);
5898 r->data_type = NULL;
5900 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
5901 if (_ptr_print_processor) {
5902 NDR_PULL_ALLOC(ndr, r->print_processor);
5904 r->print_processor = NULL;
5906 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
5907 if (_ptr_parameters) {
5908 NDR_PULL_ALLOC(ndr, r->parameters);
5910 r->parameters = NULL;
5912 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
5913 if (_ptr_driver_name) {
5914 NDR_PULL_ALLOC(ndr, r->driver_name);
5916 r->driver_name = NULL;
5918 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_devmode_ptr));
5919 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
5920 if (_ptr_text_status) {
5921 NDR_PULL_ALLOC(ndr, r->text_status);
5923 r->text_status = NULL;
5925 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_secdesc_ptr));
5926 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
5927 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
5928 if (r->priority > 99) {
5929 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
5931 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
5932 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
5933 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
5934 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
5935 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
5936 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5937 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
5938 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
5939 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size_high));
5940 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
5942 if (ndr_flags & NDR_BUFFERS) {
5943 if (r->printer_name) {
5944 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5945 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
5946 NDR_CHECK(ndr_pull_array_size(ndr, &r->printer_name));
5947 NDR_CHECK(ndr_pull_array_length(ndr, &r->printer_name));
5948 if (ndr_get_array_length(ndr, &r->printer_name) > ndr_get_array_size(ndr, &r->printer_name)) {
5949 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));
5951 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t)));
5952 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printer_name, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t), CH_UTF16));
5953 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
5955 if (r->server_name) {
5956 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5957 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
5958 NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name));
5959 NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name));
5960 if (ndr_get_array_length(ndr, &r->server_name) > ndr_get_array_size(ndr, &r->server_name)) {
5961 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));
5963 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t)));
5964 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t), CH_UTF16));
5965 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
5968 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5969 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
5970 NDR_CHECK(ndr_pull_array_size(ndr, &r->user_name));
5971 NDR_CHECK(ndr_pull_array_length(ndr, &r->user_name));
5972 if (ndr_get_array_length(ndr, &r->user_name) > ndr_get_array_size(ndr, &r->user_name)) {
5973 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));
5975 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t)));
5976 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t), CH_UTF16));
5977 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
5979 if (r->document_name) {
5980 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5981 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
5982 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
5983 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
5984 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
5985 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));
5987 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
5988 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
5989 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
5991 if (r->notify_name) {
5992 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5993 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
5994 NDR_CHECK(ndr_pull_array_size(ndr, &r->notify_name));
5995 NDR_CHECK(ndr_pull_array_length(ndr, &r->notify_name));
5996 if (ndr_get_array_length(ndr, &r->notify_name) > ndr_get_array_size(ndr, &r->notify_name)) {
5997 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));
5999 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t)));
6000 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->notify_name, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t), CH_UTF16));
6001 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
6004 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
6005 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
6006 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_type));
6007 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_type));
6008 if (ndr_get_array_length(ndr, &r->data_type) > ndr_get_array_size(ndr, &r->data_type)) {
6009 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));
6011 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t)));
6012 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_type, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t), CH_UTF16));
6013 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
6015 if (r->print_processor) {
6016 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
6017 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
6018 NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
6019 NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
6020 if (ndr_get_array_length(ndr, &r->print_processor) > ndr_get_array_size(ndr, &r->print_processor)) {
6021 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));
6023 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t)));
6024 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t), CH_UTF16));
6025 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
6027 if (r->parameters) {
6028 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
6029 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
6030 NDR_CHECK(ndr_pull_array_size(ndr, &r->parameters));
6031 NDR_CHECK(ndr_pull_array_length(ndr, &r->parameters));
6032 if (ndr_get_array_length(ndr, &r->parameters) > ndr_get_array_size(ndr, &r->parameters)) {
6033 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));
6035 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t)));
6036 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t), CH_UTF16));
6037 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
6039 if (r->driver_name) {
6040 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6041 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
6042 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
6043 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
6044 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
6045 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));
6047 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
6048 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
6049 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
6051 if (r->text_status) {
6052 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
6053 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
6054 NDR_CHECK(ndr_pull_array_size(ndr, &r->text_status));
6055 NDR_CHECK(ndr_pull_array_length(ndr, &r->text_status));
6056 if (ndr_get_array_length(ndr, &r->text_status) > ndr_get_array_size(ndr, &r->text_status)) {
6057 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));
6059 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t)));
6060 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->text_status, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t), CH_UTF16));
6061 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
6064 return NDR_ERR_SUCCESS;
6067 _PUBLIC_ void ndr_print_spoolss_SetJobInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_SetJobInfo4 *r)
6069 ndr_print_struct(ndr, name, "spoolss_SetJobInfo4");
6071 ndr_print_uint32(ndr, "job_id", r->job_id);
6072 ndr_print_ptr(ndr, "printer_name", r->printer_name);
6074 if (r->printer_name) {
6075 ndr_print_string(ndr, "printer_name", r->printer_name);
6078 ndr_print_ptr(ndr, "server_name", r->server_name);
6080 if (r->server_name) {
6081 ndr_print_string(ndr, "server_name", r->server_name);
6084 ndr_print_ptr(ndr, "user_name", r->user_name);
6087 ndr_print_string(ndr, "user_name", r->user_name);
6090 ndr_print_ptr(ndr, "document_name", r->document_name);
6092 if (r->document_name) {
6093 ndr_print_string(ndr, "document_name", r->document_name);
6096 ndr_print_ptr(ndr, "notify_name", r->notify_name);
6098 if (r->notify_name) {
6099 ndr_print_string(ndr, "notify_name", r->notify_name);
6102 ndr_print_ptr(ndr, "data_type", r->data_type);
6105 ndr_print_string(ndr, "data_type", r->data_type);
6108 ndr_print_ptr(ndr, "print_processor", r->print_processor);
6110 if (r->print_processor) {
6111 ndr_print_string(ndr, "print_processor", r->print_processor);
6114 ndr_print_ptr(ndr, "parameters", r->parameters);
6116 if (r->parameters) {
6117 ndr_print_string(ndr, "parameters", r->parameters);
6120 ndr_print_ptr(ndr, "driver_name", r->driver_name);
6122 if (r->driver_name) {
6123 ndr_print_string(ndr, "driver_name", r->driver_name);
6126 ndr_print_uint32(ndr, "_devmode_ptr", r->_devmode_ptr);
6127 ndr_print_ptr(ndr, "text_status", r->text_status);
6129 if (r->text_status) {
6130 ndr_print_string(ndr, "text_status", r->text_status);
6133 ndr_print_uint32(ndr, "_secdesc_ptr", r->_secdesc_ptr);
6134 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
6135 ndr_print_uint32(ndr, "priority", r->priority);
6136 ndr_print_uint32(ndr, "position", r->position);
6137 ndr_print_uint32(ndr, "start_time", r->start_time);
6138 ndr_print_uint32(ndr, "until_time", r->until_time);
6139 ndr_print_uint32(ndr, "total_pages", r->total_pages);
6140 ndr_print_uint32(ndr, "size", r->size);
6141 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
6142 ndr_print_uint32(ndr, "time", r->time);
6143 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
6144 ndr_print_uint32(ndr, "size_high", r->size_high);
6148 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_SetJobInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_SetJobInfo *r)
6150 if (ndr_flags & NDR_SCALARS) {
6151 int level = ndr_push_get_switch_value(ndr, r);
6152 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
6153 NDR_CHECK(ndr_push_union_align(ndr, 5));
6156 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
6160 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
6164 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
6168 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
6176 if (ndr_flags & NDR_BUFFERS) {
6177 int level = ndr_push_get_switch_value(ndr, r);
6181 NDR_CHECK(ndr_push_spoolss_SetJobInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
6187 NDR_CHECK(ndr_push_spoolss_SetJobInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
6193 NDR_CHECK(ndr_push_spoolss_JobInfo3(ndr, NDR_SCALARS, r->info3));
6199 NDR_CHECK(ndr_push_spoolss_SetJobInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
6208 return NDR_ERR_SUCCESS;
6211 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_SetJobInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_SetJobInfo *r)
6215 TALLOC_CTX *_mem_save_info1_0;
6216 TALLOC_CTX *_mem_save_info2_0;
6217 TALLOC_CTX *_mem_save_info3_0;
6218 TALLOC_CTX *_mem_save_info4_0;
6219 level = ndr_pull_get_switch_value(ndr, r);
6220 if (ndr_flags & NDR_SCALARS) {
6221 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
6222 if (_level != level) {
6223 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
6225 NDR_CHECK(ndr_pull_union_align(ndr, 5));
6228 uint32_t _ptr_info1;
6229 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
6231 NDR_PULL_ALLOC(ndr, r->info1);
6238 uint32_t _ptr_info2;
6239 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
6241 NDR_PULL_ALLOC(ndr, r->info2);
6248 uint32_t _ptr_info3;
6249 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
6251 NDR_PULL_ALLOC(ndr, r->info3);
6258 uint32_t _ptr_info4;
6259 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
6261 NDR_PULL_ALLOC(ndr, r->info4);
6272 if (ndr_flags & NDR_BUFFERS) {
6276 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
6277 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
6278 NDR_CHECK(ndr_pull_spoolss_SetJobInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
6279 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
6285 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
6286 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
6287 NDR_CHECK(ndr_pull_spoolss_SetJobInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
6288 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
6294 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
6295 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
6296 NDR_CHECK(ndr_pull_spoolss_JobInfo3(ndr, NDR_SCALARS, r->info3));
6297 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
6303 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
6304 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
6305 NDR_CHECK(ndr_pull_spoolss_SetJobInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
6306 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
6315 return NDR_ERR_SUCCESS;
6318 _PUBLIC_ void ndr_print_spoolss_SetJobInfo(struct ndr_print *ndr, const char *name, const union spoolss_SetJobInfo *r)
6321 level = ndr_print_get_switch_value(ndr, r);
6322 ndr_print_union(ndr, name, level, "spoolss_SetJobInfo");
6325 ndr_print_ptr(ndr, "info1", r->info1);
6328 ndr_print_spoolss_SetJobInfo1(ndr, "info1", r->info1);
6334 ndr_print_ptr(ndr, "info2", r->info2);
6337 ndr_print_spoolss_SetJobInfo2(ndr, "info2", r->info2);
6343 ndr_print_ptr(ndr, "info3", r->info3);
6346 ndr_print_spoolss_JobInfo3(ndr, "info3", r->info3);
6352 ndr_print_ptr(ndr, "info4", r->info4);
6355 ndr_print_spoolss_SetJobInfo4(ndr, "info4", r->info4);
6366 static enum ndr_err_code ndr_push_spoolss_JobInfoContainer(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfoContainer *r)
6368 if (ndr_flags & NDR_SCALARS) {
6369 NDR_CHECK(ndr_push_align(ndr, 5));
6370 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
6371 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
6372 NDR_CHECK(ndr_push_spoolss_SetJobInfo(ndr, NDR_SCALARS, &r->info));
6373 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
6375 if (ndr_flags & NDR_BUFFERS) {
6376 NDR_CHECK(ndr_push_spoolss_SetJobInfo(ndr, NDR_BUFFERS, &r->info));
6378 return NDR_ERR_SUCCESS;
6381 static enum ndr_err_code ndr_pull_spoolss_JobInfoContainer(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfoContainer *r)
6383 if (ndr_flags & NDR_SCALARS) {
6384 NDR_CHECK(ndr_pull_align(ndr, 5));
6385 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
6386 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
6387 NDR_CHECK(ndr_pull_spoolss_SetJobInfo(ndr, NDR_SCALARS, &r->info));
6388 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
6390 if (ndr_flags & NDR_BUFFERS) {
6391 NDR_CHECK(ndr_pull_spoolss_SetJobInfo(ndr, NDR_BUFFERS, &r->info));
6393 return NDR_ERR_SUCCESS;
6396 _PUBLIC_ void ndr_print_spoolss_JobInfoContainer(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfoContainer *r)
6398 ndr_print_struct(ndr, name, "spoolss_JobInfoContainer");
6400 ndr_print_uint32(ndr, "level", r->level);
6401 ndr_print_set_switch_value(ndr, &r->info, r->level);
6402 ndr_print_spoolss_SetJobInfo(ndr, "info", &r->info);
6406 static enum ndr_err_code ndr_push_spoolss_JobControl(struct ndr_push *ndr, int ndr_flags, enum spoolss_JobControl r)
6408 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
6409 return NDR_ERR_SUCCESS;
6412 static enum ndr_err_code ndr_pull_spoolss_JobControl(struct ndr_pull *ndr, int ndr_flags, enum spoolss_JobControl *r)
6415 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
6417 return NDR_ERR_SUCCESS;
6420 _PUBLIC_ void ndr_print_spoolss_JobControl(struct ndr_print *ndr, const char *name, enum spoolss_JobControl r)
6422 const char *val = NULL;
6425 case SPOOLSS_JOB_CONTROL_PAUSE: val = "SPOOLSS_JOB_CONTROL_PAUSE"; break;
6426 case SPOOLSS_JOB_CONTROL_RESUME: val = "SPOOLSS_JOB_CONTROL_RESUME"; break;
6427 case SPOOLSS_JOB_CONTROL_CANCEL: val = "SPOOLSS_JOB_CONTROL_CANCEL"; break;
6428 case SPOOLSS_JOB_CONTROL_RESTART: val = "SPOOLSS_JOB_CONTROL_RESTART"; break;
6429 case SPOOLSS_JOB_CONTROL_DELETE: val = "SPOOLSS_JOB_CONTROL_DELETE"; break;
6430 case SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER: val = "SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER"; break;
6431 case SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED: val = "SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED"; break;
6432 case SPOOLSS_JOB_CONTROL_RETAIN: val = "SPOOLSS_JOB_CONTROL_RETAIN"; break;
6433 case SPOOLSS_JOB_CONTROL_RELEASE: val = "SPOOLSS_JOB_CONTROL_RELEASE"; break;
6435 ndr_print_enum(ndr, name, "ENUM", val, r);
6438 static enum ndr_err_code ndr_push_spoolss_PrinterControl(struct ndr_push *ndr, int ndr_flags, enum spoolss_PrinterControl r)
6440 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
6441 return NDR_ERR_SUCCESS;
6444 static enum ndr_err_code ndr_pull_spoolss_PrinterControl(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PrinterControl *r)
6447 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
6449 return NDR_ERR_SUCCESS;
6452 _PUBLIC_ void ndr_print_spoolss_PrinterControl(struct ndr_print *ndr, const char *name, enum spoolss_PrinterControl r)
6454 const char *val = NULL;
6457 case SPOOLSS_PRINTER_CONTROL_UNPAUSE: val = "SPOOLSS_PRINTER_CONTROL_UNPAUSE"; break;
6458 case SPOOLSS_PRINTER_CONTROL_PAUSE: val = "SPOOLSS_PRINTER_CONTROL_PAUSE"; break;
6459 case SPOOLSS_PRINTER_CONTROL_RESUME: val = "SPOOLSS_PRINTER_CONTROL_RESUME"; break;
6460 case SPOOLSS_PRINTER_CONTROL_PURGE: val = "SPOOLSS_PRINTER_CONTROL_PURGE"; break;
6461 case SPOOLSS_PRINTER_CONTROL_SET_STATUS: val = "SPOOLSS_PRINTER_CONTROL_SET_STATUS"; break;
6463 ndr_print_enum(ndr, name, "ENUM", val, r);
6466 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo0(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo0 *r)
6468 if (ndr_flags & NDR_SCALARS) {
6469 NDR_CHECK(ndr_push_align(ndr, 5));
6470 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
6471 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
6472 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
6473 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_jobs));
6474 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_bytes));
6475 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->time));
6476 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->global_counter));
6477 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
6478 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
6479 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->free_build));
6480 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->spooling));
6481 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_spooling));
6482 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->session_counter));
6483 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_out_of_paper));
6484 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_not_ready));
6485 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_error));
6486 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->number_of_processors));
6487 NDR_CHECK(ndr_push_spoolss_ProcessorType(ndr, NDR_SCALARS, r->processor_type));
6488 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->high_part_total_bytes));
6489 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->change_id));
6490 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->last_error));
6491 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->status));
6492 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->enumerate_network_printers));
6493 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->c_setprinter));
6494 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor_architecture));
6495 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->processor_level));
6496 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ref_ic));
6497 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved2));
6498 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved3));
6499 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
6501 if (ndr_flags & NDR_BUFFERS) {
6502 if (r->servername) {
6503 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
6504 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6505 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
6506 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6508 if (r->printername) {
6509 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6510 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6511 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6512 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6515 return NDR_ERR_SUCCESS;
6518 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo0(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo0 *r)
6520 uint32_t _ptr_servername;
6521 TALLOC_CTX *_mem_save_servername_0;
6522 uint32_t _ptr_printername;
6523 TALLOC_CTX *_mem_save_printername_0;
6524 if (ndr_flags & NDR_SCALARS) {
6525 NDR_CHECK(ndr_pull_align(ndr, 5));
6526 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
6527 if (_ptr_servername) {
6528 NDR_PULL_ALLOC(ndr, r->servername);
6530 r->servername = NULL;
6532 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
6533 if (_ptr_printername) {
6534 NDR_PULL_ALLOC(ndr, r->printername);
6536 r->printername = NULL;
6538 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
6539 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_jobs));
6540 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_bytes));
6541 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->time));
6542 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->global_counter));
6543 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
6544 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
6545 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->free_build));
6546 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->spooling));
6547 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_spooling));
6548 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->session_counter));
6549 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_out_of_paper));
6550 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_not_ready));
6551 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_error));
6552 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->number_of_processors));
6553 NDR_CHECK(ndr_pull_spoolss_ProcessorType(ndr, NDR_SCALARS, &r->processor_type));
6554 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->high_part_total_bytes));
6555 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->change_id));
6556 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->last_error));
6557 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->status));
6558 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->enumerate_network_printers));
6559 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->c_setprinter));
6560 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor_architecture));
6561 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->processor_level));
6562 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ref_ic));
6563 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
6564 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved3));
6565 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
6567 if (ndr_flags & NDR_BUFFERS) {
6568 if (r->servername) {
6569 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6570 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
6571 NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
6572 NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
6573 if (ndr_get_array_length(ndr, &r->servername) > ndr_get_array_size(ndr, &r->servername)) {
6574 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));
6576 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t)));
6577 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t), CH_UTF16));
6578 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
6580 if (r->printername) {
6581 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6582 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
6583 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
6584 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
6585 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
6586 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));
6588 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
6589 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
6590 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
6593 return NDR_ERR_SUCCESS;
6596 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo0(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo0 *r)
6598 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo0");
6600 ndr_print_ptr(ndr, "servername", r->servername);
6602 if (r->servername) {
6603 ndr_print_string(ndr, "servername", r->servername);
6606 ndr_print_ptr(ndr, "printername", r->printername);
6608 if (r->printername) {
6609 ndr_print_string(ndr, "printername", r->printername);
6612 ndr_print_uint32(ndr, "cjobs", r->cjobs);
6613 ndr_print_uint32(ndr, "total_jobs", r->total_jobs);
6614 ndr_print_uint32(ndr, "total_bytes", r->total_bytes);
6615 ndr_print_spoolss_Time(ndr, "time", &r->time);
6616 ndr_print_uint32(ndr, "global_counter", r->global_counter);
6617 ndr_print_uint32(ndr, "total_pages", r->total_pages);
6618 ndr_print_uint32(ndr, "version", r->version);
6619 ndr_print_uint32(ndr, "free_build", r->free_build);
6620 ndr_print_uint32(ndr, "spooling", r->spooling);
6621 ndr_print_uint32(ndr, "max_spooling", r->max_spooling);
6622 ndr_print_uint32(ndr, "session_counter", r->session_counter);
6623 ndr_print_uint32(ndr, "num_error_out_of_paper", r->num_error_out_of_paper);
6624 ndr_print_uint32(ndr, "num_error_not_ready", r->num_error_not_ready);
6625 ndr_print_uint32(ndr, "job_error", r->job_error);
6626 ndr_print_uint32(ndr, "number_of_processors", r->number_of_processors);
6627 ndr_print_spoolss_ProcessorType(ndr, "processor_type", r->processor_type);
6628 ndr_print_uint32(ndr, "high_part_total_bytes", r->high_part_total_bytes);
6629 ndr_print_uint32(ndr, "change_id", r->change_id);
6630 ndr_print_WERROR(ndr, "last_error", r->last_error);
6631 ndr_print_uint32(ndr, "status", r->status);
6632 ndr_print_uint32(ndr, "enumerate_network_printers", r->enumerate_network_printers);
6633 ndr_print_uint32(ndr, "c_setprinter", r->c_setprinter);
6634 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor_architecture", r->processor_architecture);
6635 ndr_print_uint16(ndr, "processor_level", r->processor_level);
6636 ndr_print_uint32(ndr, "ref_ic", r->ref_ic);
6637 ndr_print_uint32(ndr, "reserved2", r->reserved2);
6638 ndr_print_uint32(ndr, "reserved3", r->reserved3);
6642 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo1 *r)
6644 if (ndr_flags & NDR_SCALARS) {
6645 NDR_CHECK(ndr_push_align(ndr, 5));
6646 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->flags));
6647 NDR_CHECK(ndr_push_unique_ptr(ndr, r->description));
6648 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
6649 NDR_CHECK(ndr_push_unique_ptr(ndr, r->comment));
6650 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
6652 if (ndr_flags & NDR_BUFFERS) {
6653 if (r->description) {
6654 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->description, CH_UTF16)));
6655 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6656 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->description, CH_UTF16)));
6657 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->description, ndr_charset_length(r->description, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6660 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
6661 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6662 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
6663 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, ndr_charset_length(r->name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6666 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
6667 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6668 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
6669 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->comment, ndr_charset_length(r->comment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6672 return NDR_ERR_SUCCESS;
6675 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo1 *r)
6677 uint32_t _ptr_description;
6678 TALLOC_CTX *_mem_save_description_0;
6680 TALLOC_CTX *_mem_save_name_0;
6681 uint32_t _ptr_comment;
6682 TALLOC_CTX *_mem_save_comment_0;
6683 if (ndr_flags & NDR_SCALARS) {
6684 NDR_CHECK(ndr_pull_align(ndr, 5));
6685 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->flags));
6686 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
6687 if (_ptr_description) {
6688 NDR_PULL_ALLOC(ndr, r->description);
6690 r->description = NULL;
6692 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
6694 NDR_PULL_ALLOC(ndr, r->name);
6698 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
6700 NDR_PULL_ALLOC(ndr, r->comment);
6704 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
6706 if (ndr_flags & NDR_BUFFERS) {
6707 if (r->description) {
6708 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
6709 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
6710 NDR_CHECK(ndr_pull_array_size(ndr, &r->description));
6711 NDR_CHECK(ndr_pull_array_length(ndr, &r->description));
6712 if (ndr_get_array_length(ndr, &r->description) > ndr_get_array_size(ndr, &r->description)) {
6713 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));
6715 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->description), sizeof(uint16_t)));
6716 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->description, ndr_get_array_length(ndr, &r->description), sizeof(uint16_t), CH_UTF16));
6717 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
6720 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6721 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
6722 NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
6723 NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
6724 if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) {
6725 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));
6727 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t)));
6728 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16));
6729 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
6732 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
6733 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
6734 NDR_CHECK(ndr_pull_array_size(ndr, &r->comment));
6735 NDR_CHECK(ndr_pull_array_length(ndr, &r->comment));
6736 if (ndr_get_array_length(ndr, &r->comment) > ndr_get_array_size(ndr, &r->comment)) {
6737 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));
6739 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t)));
6740 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t), CH_UTF16));
6741 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
6744 return NDR_ERR_SUCCESS;
6747 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo1 *r)
6749 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo1");
6751 ndr_print_spoolss_PrinterAttributes(ndr, "flags", r->flags);
6752 ndr_print_ptr(ndr, "description", r->description);
6754 if (r->description) {
6755 ndr_print_string(ndr, "description", r->description);
6758 ndr_print_ptr(ndr, "name", r->name);
6761 ndr_print_string(ndr, "name", r->name);
6764 ndr_print_ptr(ndr, "comment", r->comment);
6767 ndr_print_string(ndr, "comment", r->comment);
6773 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo2 *r)
6775 if (ndr_flags & NDR_SCALARS) {
6776 NDR_CHECK(ndr_push_align(ndr, 5));
6777 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
6778 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
6779 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sharename));
6780 NDR_CHECK(ndr_push_unique_ptr(ndr, r->portname));
6781 NDR_CHECK(ndr_push_unique_ptr(ndr, r->drivername));
6782 NDR_CHECK(ndr_push_unique_ptr(ndr, r->comment));
6783 NDR_CHECK(ndr_push_unique_ptr(ndr, r->location));
6784 NDR_CHECK(ndr_push_unique_ptr(ndr, r->devmode));
6785 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sepfile));
6786 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printprocessor));
6787 NDR_CHECK(ndr_push_unique_ptr(ndr, r->datatype));
6788 NDR_CHECK(ndr_push_unique_ptr(ndr, r->parameters));
6789 NDR_CHECK(ndr_push_unique_ptr(ndr, r->secdesc));
6790 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
6791 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
6792 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->defaultpriority));
6793 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->starttime));
6794 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->untiltime));
6795 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
6796 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
6797 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->averageppm));
6798 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
6800 if (ndr_flags & NDR_BUFFERS) {
6801 if (r->servername) {
6802 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
6803 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6804 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
6805 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6807 if (r->printername) {
6808 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6809 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6810 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6811 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6814 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->sharename, CH_UTF16)));
6815 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6816 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->sharename, CH_UTF16)));
6817 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->sharename, ndr_charset_length(r->sharename, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6820 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
6821 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6822 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
6823 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, ndr_charset_length(r->portname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6825 if (r->drivername) {
6826 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->drivername, CH_UTF16)));
6827 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6828 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->drivername, CH_UTF16)));
6829 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->drivername, ndr_charset_length(r->drivername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6832 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
6833 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6834 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
6835 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->comment, ndr_charset_length(r->comment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6838 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->location, CH_UTF16)));
6839 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6840 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->location, CH_UTF16)));
6841 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->location, ndr_charset_length(r->location, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6845 struct ndr_push *_ndr_devmode;
6846 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
6847 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
6848 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
6852 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->sepfile, 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->sepfile, CH_UTF16)));
6855 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->sepfile, ndr_charset_length(r->sepfile, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6857 if (r->printprocessor) {
6858 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printprocessor, 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->printprocessor, CH_UTF16)));
6861 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printprocessor, ndr_charset_length(r->printprocessor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6864 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, 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->datatype, CH_UTF16)));
6867 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->datatype, ndr_charset_length(r->datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6869 if (r->parameters) {
6870 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, 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->parameters, CH_UTF16)));
6873 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->parameters, ndr_charset_length(r->parameters, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6877 struct ndr_push *_ndr_secdesc;
6878 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
6879 NDR_CHECK(ndr_push_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
6880 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
6884 return NDR_ERR_SUCCESS;
6887 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo2 *r)
6889 uint32_t _ptr_servername;
6890 TALLOC_CTX *_mem_save_servername_0;
6891 uint32_t _ptr_printername;
6892 TALLOC_CTX *_mem_save_printername_0;
6893 uint32_t _ptr_sharename;
6894 TALLOC_CTX *_mem_save_sharename_0;
6895 uint32_t _ptr_portname;
6896 TALLOC_CTX *_mem_save_portname_0;
6897 uint32_t _ptr_drivername;
6898 TALLOC_CTX *_mem_save_drivername_0;
6899 uint32_t _ptr_comment;
6900 TALLOC_CTX *_mem_save_comment_0;
6901 uint32_t _ptr_location;
6902 TALLOC_CTX *_mem_save_location_0;
6903 uint32_t _ptr_devmode;
6904 TALLOC_CTX *_mem_save_devmode_0;
6905 uint32_t _ptr_sepfile;
6906 TALLOC_CTX *_mem_save_sepfile_0;
6907 uint32_t _ptr_printprocessor;
6908 TALLOC_CTX *_mem_save_printprocessor_0;
6909 uint32_t _ptr_datatype;
6910 TALLOC_CTX *_mem_save_datatype_0;
6911 uint32_t _ptr_parameters;
6912 TALLOC_CTX *_mem_save_parameters_0;
6913 uint32_t _ptr_secdesc;
6914 TALLOC_CTX *_mem_save_secdesc_0;
6915 if (ndr_flags & NDR_SCALARS) {
6916 NDR_CHECK(ndr_pull_align(ndr, 5));
6917 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
6918 if (_ptr_servername) {
6919 NDR_PULL_ALLOC(ndr, r->servername);
6921 r->servername = NULL;
6923 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
6924 if (_ptr_printername) {
6925 NDR_PULL_ALLOC(ndr, r->printername);
6927 r->printername = NULL;
6929 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sharename));
6930 if (_ptr_sharename) {
6931 NDR_PULL_ALLOC(ndr, r->sharename);
6933 r->sharename = NULL;
6935 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
6936 if (_ptr_portname) {
6937 NDR_PULL_ALLOC(ndr, r->portname);
6941 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_drivername));
6942 if (_ptr_drivername) {
6943 NDR_PULL_ALLOC(ndr, r->drivername);
6945 r->drivername = NULL;
6947 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
6949 NDR_PULL_ALLOC(ndr, r->comment);
6953 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_location));
6954 if (_ptr_location) {
6955 NDR_PULL_ALLOC(ndr, r->location);
6959 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
6961 NDR_PULL_ALLOC(ndr, r->devmode);
6965 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sepfile));
6967 NDR_PULL_ALLOC(ndr, r->sepfile);
6971 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printprocessor));
6972 if (_ptr_printprocessor) {
6973 NDR_PULL_ALLOC(ndr, r->printprocessor);
6975 r->printprocessor = NULL;
6977 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
6978 if (_ptr_datatype) {
6979 NDR_PULL_ALLOC(ndr, r->datatype);
6983 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
6984 if (_ptr_parameters) {
6985 NDR_PULL_ALLOC(ndr, r->parameters);
6987 r->parameters = NULL;
6989 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
6991 NDR_PULL_ALLOC(ndr, r->secdesc);
6995 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
6996 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
6997 if (r->priority > 99) {
6998 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
7000 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->defaultpriority));
7001 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->starttime));
7002 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->untiltime));
7003 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
7004 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
7005 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->averageppm));
7006 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
7008 if (ndr_flags & NDR_BUFFERS) {
7009 if (r->servername) {
7010 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
7011 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
7012 NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
7013 NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
7014 if (ndr_get_array_length(ndr, &r->servername) > ndr_get_array_size(ndr, &r->servername)) {
7015 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));
7017 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t)));
7018 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t), CH_UTF16));
7019 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
7021 if (r->printername) {
7022 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
7023 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
7024 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
7025 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
7026 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
7027 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));
7029 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
7030 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
7031 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
7034 _mem_save_sharename_0 = NDR_PULL_GET_MEM_CTX(ndr);
7035 NDR_PULL_SET_MEM_CTX(ndr, r->sharename, 0);
7036 NDR_CHECK(ndr_pull_array_size(ndr, &r->sharename));
7037 NDR_CHECK(ndr_pull_array_length(ndr, &r->sharename));
7038 if (ndr_get_array_length(ndr, &r->sharename) > ndr_get_array_size(ndr, &r->sharename)) {
7039 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));
7041 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->sharename), sizeof(uint16_t)));
7042 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->sharename, ndr_get_array_length(ndr, &r->sharename), sizeof(uint16_t), CH_UTF16));
7043 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sharename_0, 0);
7046 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
7047 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
7048 NDR_CHECK(ndr_pull_array_size(ndr, &r->portname));
7049 NDR_CHECK(ndr_pull_array_length(ndr, &r->portname));
7050 if (ndr_get_array_length(ndr, &r->portname) > ndr_get_array_size(ndr, &r->portname)) {
7051 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));
7053 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t)));
7054 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t), CH_UTF16));
7055 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
7057 if (r->drivername) {
7058 _mem_save_drivername_0 = NDR_PULL_GET_MEM_CTX(ndr);
7059 NDR_PULL_SET_MEM_CTX(ndr, r->drivername, 0);
7060 NDR_CHECK(ndr_pull_array_size(ndr, &r->drivername));
7061 NDR_CHECK(ndr_pull_array_length(ndr, &r->drivername));
7062 if (ndr_get_array_length(ndr, &r->drivername) > ndr_get_array_size(ndr, &r->drivername)) {
7063 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));
7065 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->drivername), sizeof(uint16_t)));
7066 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->drivername, ndr_get_array_length(ndr, &r->drivername), sizeof(uint16_t), CH_UTF16));
7067 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_drivername_0, 0);
7070 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
7071 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
7072 NDR_CHECK(ndr_pull_array_size(ndr, &r->comment));
7073 NDR_CHECK(ndr_pull_array_length(ndr, &r->comment));
7074 if (ndr_get_array_length(ndr, &r->comment) > ndr_get_array_size(ndr, &r->comment)) {
7075 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));
7077 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t)));
7078 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t), CH_UTF16));
7079 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
7082 _mem_save_location_0 = NDR_PULL_GET_MEM_CTX(ndr);
7083 NDR_PULL_SET_MEM_CTX(ndr, r->location, 0);
7084 NDR_CHECK(ndr_pull_array_size(ndr, &r->location));
7085 NDR_CHECK(ndr_pull_array_length(ndr, &r->location));
7086 if (ndr_get_array_length(ndr, &r->location) > ndr_get_array_size(ndr, &r->location)) {
7087 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));
7089 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->location), sizeof(uint16_t)));
7090 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->location, ndr_get_array_length(ndr, &r->location), sizeof(uint16_t), CH_UTF16));
7091 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_location_0, 0);
7094 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
7095 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
7097 struct ndr_pull *_ndr_devmode;
7098 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
7099 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
7100 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
7102 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
7105 _mem_save_sepfile_0 = NDR_PULL_GET_MEM_CTX(ndr);
7106 NDR_PULL_SET_MEM_CTX(ndr, r->sepfile, 0);
7107 NDR_CHECK(ndr_pull_array_size(ndr, &r->sepfile));
7108 NDR_CHECK(ndr_pull_array_length(ndr, &r->sepfile));
7109 if (ndr_get_array_length(ndr, &r->sepfile) > ndr_get_array_size(ndr, &r->sepfile)) {
7110 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));
7112 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->sepfile), sizeof(uint16_t)));
7113 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->sepfile, ndr_get_array_length(ndr, &r->sepfile), sizeof(uint16_t), CH_UTF16));
7114 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sepfile_0, 0);
7116 if (r->printprocessor) {
7117 _mem_save_printprocessor_0 = NDR_PULL_GET_MEM_CTX(ndr);
7118 NDR_PULL_SET_MEM_CTX(ndr, r->printprocessor, 0);
7119 NDR_CHECK(ndr_pull_array_size(ndr, &r->printprocessor));
7120 NDR_CHECK(ndr_pull_array_length(ndr, &r->printprocessor));
7121 if (ndr_get_array_length(ndr, &r->printprocessor) > ndr_get_array_size(ndr, &r->printprocessor)) {
7122 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));
7124 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printprocessor), sizeof(uint16_t)));
7125 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printprocessor, ndr_get_array_length(ndr, &r->printprocessor), sizeof(uint16_t), CH_UTF16));
7126 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printprocessor_0, 0);
7129 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
7130 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
7131 NDR_CHECK(ndr_pull_array_size(ndr, &r->datatype));
7132 NDR_CHECK(ndr_pull_array_length(ndr, &r->datatype));
7133 if (ndr_get_array_length(ndr, &r->datatype) > ndr_get_array_size(ndr, &r->datatype)) {
7134 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));
7136 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t)));
7137 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->datatype, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t), CH_UTF16));
7138 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
7140 if (r->parameters) {
7141 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
7142 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
7143 NDR_CHECK(ndr_pull_array_size(ndr, &r->parameters));
7144 NDR_CHECK(ndr_pull_array_length(ndr, &r->parameters));
7145 if (ndr_get_array_length(ndr, &r->parameters) > ndr_get_array_size(ndr, &r->parameters)) {
7146 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));
7148 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t)));
7149 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t), CH_UTF16));
7150 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
7153 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
7154 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
7156 struct ndr_pull *_ndr_secdesc;
7157 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
7158 NDR_CHECK(ndr_pull_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
7159 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
7161 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
7164 return NDR_ERR_SUCCESS;
7167 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo2 *r)
7169 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo2");
7171 ndr_print_ptr(ndr, "servername", r->servername);
7173 if (r->servername) {
7174 ndr_print_string(ndr, "servername", r->servername);
7177 ndr_print_ptr(ndr, "printername", r->printername);
7179 if (r->printername) {
7180 ndr_print_string(ndr, "printername", r->printername);
7183 ndr_print_ptr(ndr, "sharename", r->sharename);
7186 ndr_print_string(ndr, "sharename", r->sharename);
7189 ndr_print_ptr(ndr, "portname", r->portname);
7192 ndr_print_string(ndr, "portname", r->portname);
7195 ndr_print_ptr(ndr, "drivername", r->drivername);
7197 if (r->drivername) {
7198 ndr_print_string(ndr, "drivername", r->drivername);
7201 ndr_print_ptr(ndr, "comment", r->comment);
7204 ndr_print_string(ndr, "comment", r->comment);
7207 ndr_print_ptr(ndr, "location", r->location);
7210 ndr_print_string(ndr, "location", r->location);
7213 ndr_print_ptr(ndr, "devmode", r->devmode);
7216 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
7219 ndr_print_ptr(ndr, "sepfile", r->sepfile);
7222 ndr_print_string(ndr, "sepfile", r->sepfile);
7225 ndr_print_ptr(ndr, "printprocessor", r->printprocessor);
7227 if (r->printprocessor) {
7228 ndr_print_string(ndr, "printprocessor", r->printprocessor);
7231 ndr_print_ptr(ndr, "datatype", r->datatype);
7234 ndr_print_string(ndr, "datatype", r->datatype);
7237 ndr_print_ptr(ndr, "parameters", r->parameters);
7239 if (r->parameters) {
7240 ndr_print_string(ndr, "parameters", r->parameters);
7243 ndr_print_ptr(ndr, "secdesc", r->secdesc);
7246 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
7249 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
7250 ndr_print_uint32(ndr, "priority", r->priority);
7251 ndr_print_uint32(ndr, "defaultpriority", r->defaultpriority);
7252 ndr_print_uint32(ndr, "starttime", r->starttime);
7253 ndr_print_uint32(ndr, "untiltime", r->untiltime);
7254 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
7255 ndr_print_uint32(ndr, "cjobs", r->cjobs);
7256 ndr_print_uint32(ndr, "averageppm", r->averageppm);
7260 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo3 *r)
7262 if (ndr_flags & NDR_SCALARS) {
7263 NDR_CHECK(ndr_push_align(ndr, 4));
7264 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sec_desc_ptr));
7265 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
7267 if (ndr_flags & NDR_BUFFERS) {
7269 return NDR_ERR_SUCCESS;
7272 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo3 *r)
7274 if (ndr_flags & NDR_SCALARS) {
7275 NDR_CHECK(ndr_pull_align(ndr, 4));
7276 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sec_desc_ptr));
7277 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
7279 if (ndr_flags & NDR_BUFFERS) {
7281 return NDR_ERR_SUCCESS;
7284 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo3 *r)
7286 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo3");
7288 ndr_print_uint32(ndr, "sec_desc_ptr", r->sec_desc_ptr);
7292 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo4 *r)
7294 if (ndr_flags & NDR_SCALARS) {
7295 NDR_CHECK(ndr_push_align(ndr, 5));
7296 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
7297 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
7298 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
7299 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
7301 if (ndr_flags & NDR_BUFFERS) {
7302 if (r->printername) {
7303 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
7304 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7305 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
7306 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7308 if (r->servername) {
7309 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
7310 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7311 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
7312 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7315 return NDR_ERR_SUCCESS;
7318 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo4 *r)
7320 uint32_t _ptr_printername;
7321 TALLOC_CTX *_mem_save_printername_0;
7322 uint32_t _ptr_servername;
7323 TALLOC_CTX *_mem_save_servername_0;
7324 if (ndr_flags & NDR_SCALARS) {
7325 NDR_CHECK(ndr_pull_align(ndr, 5));
7326 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
7327 if (_ptr_printername) {
7328 NDR_PULL_ALLOC(ndr, r->printername);
7330 r->printername = NULL;
7332 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
7333 if (_ptr_servername) {
7334 NDR_PULL_ALLOC(ndr, r->servername);
7336 r->servername = NULL;
7338 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
7339 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
7341 if (ndr_flags & NDR_BUFFERS) {
7342 if (r->printername) {
7343 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
7344 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
7345 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
7346 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
7347 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
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->printername), ndr_get_array_length(ndr, &r->printername));
7350 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
7351 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
7352 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
7354 if (r->servername) {
7355 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
7356 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
7357 NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
7358 NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
7359 if (ndr_get_array_length(ndr, &r->servername) > ndr_get_array_size(ndr, &r->servername)) {
7360 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));
7362 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t)));
7363 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t), CH_UTF16));
7364 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
7367 return NDR_ERR_SUCCESS;
7370 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo4 *r)
7372 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo4");
7374 ndr_print_ptr(ndr, "printername", r->printername);
7376 if (r->printername) {
7377 ndr_print_string(ndr, "printername", r->printername);
7380 ndr_print_ptr(ndr, "servername", r->servername);
7382 if (r->servername) {
7383 ndr_print_string(ndr, "servername", r->servername);
7386 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
7390 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo5 *r)
7392 if (ndr_flags & NDR_SCALARS) {
7393 NDR_CHECK(ndr_push_align(ndr, 5));
7394 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
7395 NDR_CHECK(ndr_push_unique_ptr(ndr, r->portname));
7396 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
7397 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->device_not_selected_timeout));
7398 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->transmission_retry_timeout));
7399 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
7401 if (ndr_flags & NDR_BUFFERS) {
7402 if (r->printername) {
7403 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
7404 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7405 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
7406 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7409 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
7410 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7411 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
7412 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, ndr_charset_length(r->portname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7415 return NDR_ERR_SUCCESS;
7418 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo5 *r)
7420 uint32_t _ptr_printername;
7421 TALLOC_CTX *_mem_save_printername_0;
7422 uint32_t _ptr_portname;
7423 TALLOC_CTX *_mem_save_portname_0;
7424 if (ndr_flags & NDR_SCALARS) {
7425 NDR_CHECK(ndr_pull_align(ndr, 5));
7426 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
7427 if (_ptr_printername) {
7428 NDR_PULL_ALLOC(ndr, r->printername);
7430 r->printername = NULL;
7432 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
7433 if (_ptr_portname) {
7434 NDR_PULL_ALLOC(ndr, r->portname);
7438 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
7439 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->device_not_selected_timeout));
7440 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->transmission_retry_timeout));
7441 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
7443 if (ndr_flags & NDR_BUFFERS) {
7444 if (r->printername) {
7445 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
7446 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
7447 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
7448 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
7449 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
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->printername), ndr_get_array_length(ndr, &r->printername));
7452 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
7453 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
7454 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
7457 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
7458 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
7459 NDR_CHECK(ndr_pull_array_size(ndr, &r->portname));
7460 NDR_CHECK(ndr_pull_array_length(ndr, &r->portname));
7461 if (ndr_get_array_length(ndr, &r->portname) > ndr_get_array_size(ndr, &r->portname)) {
7462 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));
7464 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t)));
7465 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t), CH_UTF16));
7466 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
7469 return NDR_ERR_SUCCESS;
7472 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo5 *r)
7474 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo5");
7476 ndr_print_ptr(ndr, "printername", r->printername);
7478 if (r->printername) {
7479 ndr_print_string(ndr, "printername", r->printername);
7482 ndr_print_ptr(ndr, "portname", r->portname);
7485 ndr_print_string(ndr, "portname", r->portname);
7488 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
7489 ndr_print_uint32(ndr, "device_not_selected_timeout", r->device_not_selected_timeout);
7490 ndr_print_uint32(ndr, "transmission_retry_timeout", r->transmission_retry_timeout);
7494 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo6 *r)
7496 if (ndr_flags & NDR_SCALARS) {
7497 NDR_CHECK(ndr_push_align(ndr, 4));
7498 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
7499 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
7501 if (ndr_flags & NDR_BUFFERS) {
7503 return NDR_ERR_SUCCESS;
7506 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo6 *r)
7508 if (ndr_flags & NDR_SCALARS) {
7509 NDR_CHECK(ndr_pull_align(ndr, 4));
7510 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
7511 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
7513 if (ndr_flags & NDR_BUFFERS) {
7515 return NDR_ERR_SUCCESS;
7518 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo6 *r)
7520 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo6");
7522 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
7526 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo7(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo7 *r)
7528 if (ndr_flags & NDR_SCALARS) {
7529 NDR_CHECK(ndr_push_align(ndr, 5));
7530 NDR_CHECK(ndr_push_unique_ptr(ndr, r->guid));
7531 NDR_CHECK(ndr_push_spoolss_DsPrintAction(ndr, NDR_SCALARS, r->action));
7532 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
7534 if (ndr_flags & NDR_BUFFERS) {
7536 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->guid, CH_UTF16)));
7537 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7538 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->guid, CH_UTF16)));
7539 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->guid, ndr_charset_length(r->guid, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7542 return NDR_ERR_SUCCESS;
7545 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo7(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo7 *r)
7548 TALLOC_CTX *_mem_save_guid_0;
7549 if (ndr_flags & NDR_SCALARS) {
7550 NDR_CHECK(ndr_pull_align(ndr, 5));
7551 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_guid));
7553 NDR_PULL_ALLOC(ndr, r->guid);
7557 NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr, NDR_SCALARS, &r->action));
7558 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
7560 if (ndr_flags & NDR_BUFFERS) {
7562 _mem_save_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
7563 NDR_PULL_SET_MEM_CTX(ndr, r->guid, 0);
7564 NDR_CHECK(ndr_pull_array_size(ndr, &r->guid));
7565 NDR_CHECK(ndr_pull_array_length(ndr, &r->guid));
7566 if (ndr_get_array_length(ndr, &r->guid) > ndr_get_array_size(ndr, &r->guid)) {
7567 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));
7569 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->guid), sizeof(uint16_t)));
7570 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->guid, ndr_get_array_length(ndr, &r->guid), sizeof(uint16_t), CH_UTF16));
7571 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_guid_0, 0);
7574 return NDR_ERR_SUCCESS;
7577 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo7(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo7 *r)
7579 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo7");
7581 ndr_print_ptr(ndr, "guid", r->guid);
7584 ndr_print_string(ndr, "guid", r->guid);
7587 ndr_print_spoolss_DsPrintAction(ndr, "action", r->action);
7591 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_SetPrinterInfo *r)
7593 if (ndr_flags & NDR_SCALARS) {
7594 int level = ndr_push_get_switch_value(ndr, r);
7595 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
7596 NDR_CHECK(ndr_push_union_align(ndr, 5));
7599 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info0));
7603 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
7607 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
7611 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
7615 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
7619 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info5));
7623 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info6));
7627 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info7));
7631 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info8));
7635 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info9));
7643 if (ndr_flags & NDR_BUFFERS) {
7644 int level = ndr_push_get_switch_value(ndr, r);
7648 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo0(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
7654 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7660 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
7666 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo3(ndr, NDR_SCALARS, r->info3));
7672 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
7678 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo5(ndr, NDR_SCALARS|NDR_BUFFERS, r->info5));
7684 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo6(ndr, NDR_SCALARS, r->info6));
7690 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo7(ndr, NDR_SCALARS|NDR_BUFFERS, r->info7));
7696 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
7702 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info9));
7711 return NDR_ERR_SUCCESS;
7714 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_SetPrinterInfo *r)
7718 TALLOC_CTX *_mem_save_info0_0;
7719 TALLOC_CTX *_mem_save_info1_0;
7720 TALLOC_CTX *_mem_save_info2_0;
7721 TALLOC_CTX *_mem_save_info3_0;
7722 TALLOC_CTX *_mem_save_info4_0;
7723 TALLOC_CTX *_mem_save_info5_0;
7724 TALLOC_CTX *_mem_save_info6_0;
7725 TALLOC_CTX *_mem_save_info7_0;
7726 TALLOC_CTX *_mem_save_info8_0;
7727 TALLOC_CTX *_mem_save_info9_0;
7728 level = ndr_pull_get_switch_value(ndr, r);
7729 if (ndr_flags & NDR_SCALARS) {
7730 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
7731 if (_level != level) {
7732 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
7734 NDR_CHECK(ndr_pull_union_align(ndr, 5));
7737 uint32_t _ptr_info0;
7738 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0));
7740 NDR_PULL_ALLOC(ndr, r->info0);
7747 uint32_t _ptr_info1;
7748 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
7750 NDR_PULL_ALLOC(ndr, r->info1);
7757 uint32_t _ptr_info2;
7758 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
7760 NDR_PULL_ALLOC(ndr, r->info2);
7767 uint32_t _ptr_info3;
7768 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
7770 NDR_PULL_ALLOC(ndr, r->info3);
7777 uint32_t _ptr_info4;
7778 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
7780 NDR_PULL_ALLOC(ndr, r->info4);
7787 uint32_t _ptr_info5;
7788 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info5));
7790 NDR_PULL_ALLOC(ndr, r->info5);
7797 uint32_t _ptr_info6;
7798 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info6));
7800 NDR_PULL_ALLOC(ndr, r->info6);
7807 uint32_t _ptr_info7;
7808 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info7));
7810 NDR_PULL_ALLOC(ndr, r->info7);
7817 uint32_t _ptr_info8;
7818 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info8));
7820 NDR_PULL_ALLOC(ndr, r->info8);
7827 uint32_t _ptr_info9;
7828 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info9));
7830 NDR_PULL_ALLOC(ndr, r->info9);
7841 if (ndr_flags & NDR_BUFFERS) {
7845 _mem_save_info0_0 = NDR_PULL_GET_MEM_CTX(ndr);
7846 NDR_PULL_SET_MEM_CTX(ndr, r->info0, 0);
7847 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo0(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
7848 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info0_0, 0);
7854 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
7855 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
7856 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7857 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
7863 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
7864 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
7865 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
7866 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
7872 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
7873 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
7874 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo3(ndr, NDR_SCALARS, r->info3));
7875 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
7881 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
7882 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
7883 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
7884 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
7890 _mem_save_info5_0 = NDR_PULL_GET_MEM_CTX(ndr);
7891 NDR_PULL_SET_MEM_CTX(ndr, r->info5, 0);
7892 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo5(ndr, NDR_SCALARS|NDR_BUFFERS, r->info5));
7893 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info5_0, 0);
7899 _mem_save_info6_0 = NDR_PULL_GET_MEM_CTX(ndr);
7900 NDR_PULL_SET_MEM_CTX(ndr, r->info6, 0);
7901 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo6(ndr, NDR_SCALARS, r->info6));
7902 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info6_0, 0);
7908 _mem_save_info7_0 = NDR_PULL_GET_MEM_CTX(ndr);
7909 NDR_PULL_SET_MEM_CTX(ndr, r->info7, 0);
7910 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo7(ndr, NDR_SCALARS|NDR_BUFFERS, r->info7));
7911 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info7_0, 0);
7917 _mem_save_info8_0 = NDR_PULL_GET_MEM_CTX(ndr);
7918 NDR_PULL_SET_MEM_CTX(ndr, r->info8, 0);
7919 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
7920 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info8_0, 0);
7926 _mem_save_info9_0 = NDR_PULL_GET_MEM_CTX(ndr);
7927 NDR_PULL_SET_MEM_CTX(ndr, r->info9, 0);
7928 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info9));
7929 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info9_0, 0);
7938 return NDR_ERR_SUCCESS;
7941 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_SetPrinterInfo *r)
7944 level = ndr_print_get_switch_value(ndr, r);
7945 ndr_print_union(ndr, name, level, "spoolss_SetPrinterInfo");
7948 ndr_print_ptr(ndr, "info0", r->info0);
7951 ndr_print_spoolss_SetPrinterInfo0(ndr, "info0", r->info0);
7957 ndr_print_ptr(ndr, "info1", r->info1);
7960 ndr_print_spoolss_SetPrinterInfo1(ndr, "info1", r->info1);
7966 ndr_print_ptr(ndr, "info2", r->info2);
7969 ndr_print_spoolss_SetPrinterInfo2(ndr, "info2", r->info2);
7975 ndr_print_ptr(ndr, "info3", r->info3);
7978 ndr_print_spoolss_SetPrinterInfo3(ndr, "info3", r->info3);
7984 ndr_print_ptr(ndr, "info4", r->info4);
7987 ndr_print_spoolss_SetPrinterInfo4(ndr, "info4", r->info4);
7993 ndr_print_ptr(ndr, "info5", r->info5);
7996 ndr_print_spoolss_SetPrinterInfo5(ndr, "info5", r->info5);
8002 ndr_print_ptr(ndr, "info6", r->info6);
8005 ndr_print_spoolss_SetPrinterInfo6(ndr, "info6", r->info6);
8011 ndr_print_ptr(ndr, "info7", r->info7);
8014 ndr_print_spoolss_SetPrinterInfo7(ndr, "info7", r->info7);
8020 ndr_print_ptr(ndr, "info8", r->info8);
8023 ndr_print_spoolss_DeviceModeInfo(ndr, "info8", r->info8);
8029 ndr_print_ptr(ndr, "info9", r->info9);
8032 ndr_print_spoolss_DeviceModeInfo(ndr, "info9", r->info9);
8043 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfoCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfoCtr *r)
8045 if (ndr_flags & NDR_SCALARS) {
8046 NDR_CHECK(ndr_push_align(ndr, 5));
8047 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
8048 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
8049 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr, NDR_SCALARS, &r->info));
8050 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8052 if (ndr_flags & NDR_BUFFERS) {
8053 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr, NDR_BUFFERS, &r->info));
8055 return NDR_ERR_SUCCESS;
8058 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfoCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfoCtr *r)
8060 if (ndr_flags & NDR_SCALARS) {
8061 NDR_CHECK(ndr_pull_align(ndr, 5));
8062 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
8063 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
8064 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr, NDR_SCALARS, &r->info));
8065 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8067 if (ndr_flags & NDR_BUFFERS) {
8068 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr, NDR_BUFFERS, &r->info));
8070 return NDR_ERR_SUCCESS;
8073 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfoCtr(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfoCtr *r)
8075 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfoCtr");
8077 ndr_print_uint32(ndr, "level", r->level);
8078 ndr_print_set_switch_value(ndr, &r->info, r->level);
8079 ndr_print_spoolss_SetPrinterInfo(ndr, "info", &r->info);
8083 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_StringArray(struct ndr_push *ndr, int ndr_flags, const struct spoolss_StringArray *r)
8085 if (ndr_flags & NDR_SCALARS) {
8086 NDR_CHECK(ndr_push_align(ndr, 4));
8087 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, (ndr_size_spoolss_StringArray(r, ndr->iconv_convenience, ndr->flags) - 4) / 2));
8089 uint32_t _flags_save_string_array = ndr->flags;
8090 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8091 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string));
8092 ndr->flags = _flags_save_string_array;
8094 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
8096 if (ndr_flags & NDR_BUFFERS) {
8098 return NDR_ERR_SUCCESS;
8101 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_StringArray(struct ndr_pull *ndr, int ndr_flags, struct spoolss_StringArray *r)
8103 if (ndr_flags & NDR_SCALARS) {
8104 NDR_CHECK(ndr_pull_align(ndr, 4));
8105 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
8107 uint32_t _flags_save_string_array = ndr->flags;
8108 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8109 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string));
8110 ndr->flags = _flags_save_string_array;
8112 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
8114 if (ndr_flags & NDR_BUFFERS) {
8116 return NDR_ERR_SUCCESS;
8119 _PUBLIC_ void ndr_print_spoolss_StringArray(struct ndr_print *ndr, const char *name, const struct spoolss_StringArray *r)
8121 ndr_print_struct(ndr, name, "spoolss_StringArray");
8123 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);
8124 ndr_print_string_array(ndr, "string", r->string);
8128 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo1 *r)
8130 if (ndr_flags & NDR_SCALARS) {
8131 NDR_CHECK(ndr_push_align(ndr, 5));
8132 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
8133 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8135 if (ndr_flags & NDR_BUFFERS) {
8136 if (r->driver_name) {
8137 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8138 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8139 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8140 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8143 return NDR_ERR_SUCCESS;
8146 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo1 *r)
8148 uint32_t _ptr_driver_name;
8149 TALLOC_CTX *_mem_save_driver_name_0;
8150 if (ndr_flags & NDR_SCALARS) {
8151 NDR_CHECK(ndr_pull_align(ndr, 5));
8152 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8153 if (_ptr_driver_name) {
8154 NDR_PULL_ALLOC(ndr, r->driver_name);
8156 r->driver_name = NULL;
8158 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8160 if (ndr_flags & NDR_BUFFERS) {
8161 if (r->driver_name) {
8162 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8163 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8164 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
8165 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
8166 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
8167 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_name), ndr_get_array_length(ndr, &r->driver_name));
8169 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
8170 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
8171 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8174 return NDR_ERR_SUCCESS;
8177 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo1 *r)
8179 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo1");
8181 ndr_print_ptr(ndr, "driver_name", r->driver_name);
8183 if (r->driver_name) {
8184 ndr_print_string(ndr, "driver_name", r->driver_name);
8190 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverOSVersion(struct ndr_push *ndr, int ndr_flags, enum spoolss_DriverOSVersion r)
8192 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
8193 return NDR_ERR_SUCCESS;
8196 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverOSVersion(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DriverOSVersion *r)
8199 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
8201 return NDR_ERR_SUCCESS;
8204 _PUBLIC_ void ndr_print_spoolss_DriverOSVersion(struct ndr_print *ndr, const char *name, enum spoolss_DriverOSVersion r)
8206 const char *val = NULL;
8209 case SPOOLSS_DRIVER_VERSION_9X: val = "SPOOLSS_DRIVER_VERSION_9X"; break;
8210 case SPOOLSS_DRIVER_VERSION_NT35: val = "SPOOLSS_DRIVER_VERSION_NT35"; break;
8211 case SPOOLSS_DRIVER_VERSION_NT4: val = "SPOOLSS_DRIVER_VERSION_NT4"; break;
8212 case SPOOLSS_DRIVER_VERSION_200X: val = "SPOOLSS_DRIVER_VERSION_200X"; break;
8214 ndr_print_enum(ndr, name, "ENUM", val, r);
8217 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo2 *r)
8219 if (ndr_flags & NDR_SCALARS) {
8220 NDR_CHECK(ndr_push_align(ndr, 5));
8221 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
8222 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
8223 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
8224 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
8225 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
8226 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
8227 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8229 if (ndr_flags & NDR_BUFFERS) {
8230 if (r->driver_name) {
8231 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8232 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8233 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8234 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8236 if (r->architecture) {
8237 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8238 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8239 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8240 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8242 if (r->driver_path) {
8243 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8244 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8245 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8246 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8249 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8250 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8251 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8252 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8254 if (r->config_file) {
8255 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8256 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8257 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8258 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8261 return NDR_ERR_SUCCESS;
8264 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo2 *r)
8266 uint32_t _ptr_driver_name;
8267 TALLOC_CTX *_mem_save_driver_name_0;
8268 uint32_t _ptr_architecture;
8269 TALLOC_CTX *_mem_save_architecture_0;
8270 uint32_t _ptr_driver_path;
8271 TALLOC_CTX *_mem_save_driver_path_0;
8272 uint32_t _ptr_data_file;
8273 TALLOC_CTX *_mem_save_data_file_0;
8274 uint32_t _ptr_config_file;
8275 TALLOC_CTX *_mem_save_config_file_0;
8276 if (ndr_flags & NDR_SCALARS) {
8277 NDR_CHECK(ndr_pull_align(ndr, 5));
8278 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
8279 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8280 if (_ptr_driver_name) {
8281 NDR_PULL_ALLOC(ndr, r->driver_name);
8283 r->driver_name = NULL;
8285 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
8286 if (_ptr_architecture) {
8287 NDR_PULL_ALLOC(ndr, r->architecture);
8289 r->architecture = NULL;
8291 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
8292 if (_ptr_driver_path) {
8293 NDR_PULL_ALLOC(ndr, r->driver_path);
8295 r->driver_path = NULL;
8297 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
8298 if (_ptr_data_file) {
8299 NDR_PULL_ALLOC(ndr, r->data_file);
8301 r->data_file = NULL;
8303 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
8304 if (_ptr_config_file) {
8305 NDR_PULL_ALLOC(ndr, r->config_file);
8307 r->config_file = NULL;
8309 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8311 if (ndr_flags & NDR_BUFFERS) {
8312 if (r->driver_name) {
8313 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8314 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8315 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
8316 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
8317 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
8318 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));
8320 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
8321 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
8322 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8324 if (r->architecture) {
8325 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
8326 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
8327 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
8328 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
8329 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
8330 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));
8332 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
8333 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
8334 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
8336 if (r->driver_path) {
8337 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
8338 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
8339 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
8340 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
8341 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
8342 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));
8344 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
8345 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
8346 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
8349 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8350 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
8351 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
8352 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
8353 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
8354 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));
8356 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
8357 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
8358 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
8360 if (r->config_file) {
8361 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8362 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
8363 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
8364 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
8365 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
8366 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));
8368 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
8369 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
8370 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
8373 return NDR_ERR_SUCCESS;
8376 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo2 *r)
8378 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo2");
8380 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
8381 ndr_print_ptr(ndr, "driver_name", r->driver_name);
8383 if (r->driver_name) {
8384 ndr_print_string(ndr, "driver_name", r->driver_name);
8387 ndr_print_ptr(ndr, "architecture", r->architecture);
8389 if (r->architecture) {
8390 ndr_print_string(ndr, "architecture", r->architecture);
8393 ndr_print_ptr(ndr, "driver_path", r->driver_path);
8395 if (r->driver_path) {
8396 ndr_print_string(ndr, "driver_path", r->driver_path);
8399 ndr_print_ptr(ndr, "data_file", r->data_file);
8402 ndr_print_string(ndr, "data_file", r->data_file);
8405 ndr_print_ptr(ndr, "config_file", r->config_file);
8407 if (r->config_file) {
8408 ndr_print_string(ndr, "config_file", r->config_file);
8414 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo3 *r)
8416 if (ndr_flags & NDR_SCALARS) {
8417 NDR_CHECK(ndr_push_align(ndr, 5));
8418 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
8419 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
8420 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
8421 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
8422 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
8423 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
8424 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
8425 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
8426 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
8427 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8428 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
8429 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8431 if (ndr_flags & NDR_BUFFERS) {
8432 if (r->driver_name) {
8433 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8434 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8435 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8436 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8438 if (r->architecture) {
8439 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8440 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8441 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8442 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8444 if (r->driver_path) {
8445 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8446 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8447 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8448 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8451 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8452 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8453 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8454 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8456 if (r->config_file) {
8457 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8458 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8459 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8460 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8463 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8464 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8465 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8466 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8468 if (r->monitor_name) {
8469 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8470 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8471 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8472 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8474 if (r->default_datatype) {
8475 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8476 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8477 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8478 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8480 if (r->dependent_files) {
8481 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8484 return NDR_ERR_SUCCESS;
8487 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo3 *r)
8489 uint32_t _ptr_driver_name;
8490 TALLOC_CTX *_mem_save_driver_name_0;
8491 uint32_t _ptr_architecture;
8492 TALLOC_CTX *_mem_save_architecture_0;
8493 uint32_t _ptr_driver_path;
8494 TALLOC_CTX *_mem_save_driver_path_0;
8495 uint32_t _ptr_data_file;
8496 TALLOC_CTX *_mem_save_data_file_0;
8497 uint32_t _ptr_config_file;
8498 TALLOC_CTX *_mem_save_config_file_0;
8499 uint32_t _ptr_help_file;
8500 TALLOC_CTX *_mem_save_help_file_0;
8501 uint32_t _ptr_monitor_name;
8502 TALLOC_CTX *_mem_save_monitor_name_0;
8503 uint32_t _ptr_default_datatype;
8504 TALLOC_CTX *_mem_save_default_datatype_0;
8505 uint32_t _ptr_dependent_files;
8506 TALLOC_CTX *_mem_save_dependent_files_0;
8507 if (ndr_flags & NDR_SCALARS) {
8508 NDR_CHECK(ndr_pull_align(ndr, 5));
8509 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
8510 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8511 if (_ptr_driver_name) {
8512 NDR_PULL_ALLOC(ndr, r->driver_name);
8514 r->driver_name = NULL;
8516 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
8517 if (_ptr_architecture) {
8518 NDR_PULL_ALLOC(ndr, r->architecture);
8520 r->architecture = NULL;
8522 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
8523 if (_ptr_driver_path) {
8524 NDR_PULL_ALLOC(ndr, r->driver_path);
8526 r->driver_path = NULL;
8528 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
8529 if (_ptr_data_file) {
8530 NDR_PULL_ALLOC(ndr, r->data_file);
8532 r->data_file = NULL;
8534 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
8535 if (_ptr_config_file) {
8536 NDR_PULL_ALLOC(ndr, r->config_file);
8538 r->config_file = NULL;
8540 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
8541 if (_ptr_help_file) {
8542 NDR_PULL_ALLOC(ndr, r->help_file);
8544 r->help_file = NULL;
8546 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
8547 if (_ptr_monitor_name) {
8548 NDR_PULL_ALLOC(ndr, r->monitor_name);
8550 r->monitor_name = NULL;
8552 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
8553 if (_ptr_default_datatype) {
8554 NDR_PULL_ALLOC(ndr, r->default_datatype);
8556 r->default_datatype = NULL;
8558 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
8559 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
8560 if (_ptr_dependent_files) {
8561 NDR_PULL_ALLOC(ndr, r->dependent_files);
8563 r->dependent_files = NULL;
8565 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8567 if (ndr_flags & NDR_BUFFERS) {
8568 if (r->driver_name) {
8569 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8570 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8571 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
8572 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
8573 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
8574 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));
8576 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
8577 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
8578 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8580 if (r->architecture) {
8581 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
8582 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
8583 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
8584 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
8585 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
8586 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));
8588 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
8589 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
8590 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
8592 if (r->driver_path) {
8593 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
8594 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
8595 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
8596 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
8597 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
8598 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));
8600 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
8601 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
8602 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
8605 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8606 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
8607 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
8608 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
8609 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
8610 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));
8612 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
8613 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
8614 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
8616 if (r->config_file) {
8617 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8618 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
8619 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
8620 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
8621 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
8622 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));
8624 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
8625 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
8626 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
8629 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8630 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
8631 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
8632 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
8633 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
8634 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));
8636 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
8637 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
8638 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
8640 if (r->monitor_name) {
8641 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8642 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
8643 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
8644 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
8645 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
8646 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));
8648 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
8649 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
8650 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
8652 if (r->default_datatype) {
8653 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
8654 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
8655 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
8656 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
8657 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
8658 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));
8660 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
8661 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
8662 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
8664 if (r->dependent_files) {
8665 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
8666 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
8667 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8668 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
8671 return NDR_ERR_SUCCESS;
8674 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo3 *r)
8676 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo3");
8678 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
8679 ndr_print_ptr(ndr, "driver_name", r->driver_name);
8681 if (r->driver_name) {
8682 ndr_print_string(ndr, "driver_name", r->driver_name);
8685 ndr_print_ptr(ndr, "architecture", r->architecture);
8687 if (r->architecture) {
8688 ndr_print_string(ndr, "architecture", r->architecture);
8691 ndr_print_ptr(ndr, "driver_path", r->driver_path);
8693 if (r->driver_path) {
8694 ndr_print_string(ndr, "driver_path", r->driver_path);
8697 ndr_print_ptr(ndr, "data_file", r->data_file);
8700 ndr_print_string(ndr, "data_file", r->data_file);
8703 ndr_print_ptr(ndr, "config_file", r->config_file);
8705 if (r->config_file) {
8706 ndr_print_string(ndr, "config_file", r->config_file);
8709 ndr_print_ptr(ndr, "help_file", r->help_file);
8712 ndr_print_string(ndr, "help_file", r->help_file);
8715 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
8717 if (r->monitor_name) {
8718 ndr_print_string(ndr, "monitor_name", r->monitor_name);
8721 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
8723 if (r->default_datatype) {
8724 ndr_print_string(ndr, "default_datatype", r->default_datatype);
8727 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);
8728 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
8730 if (r->dependent_files) {
8731 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
8737 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo4 *r)
8739 if (ndr_flags & NDR_SCALARS) {
8740 NDR_CHECK(ndr_push_align(ndr, 5));
8741 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
8742 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
8743 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
8744 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
8745 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
8746 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
8747 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
8748 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
8749 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
8750 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8751 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
8752 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8753 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
8754 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8756 if (ndr_flags & NDR_BUFFERS) {
8757 if (r->driver_name) {
8758 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8759 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8760 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8761 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8763 if (r->architecture) {
8764 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8765 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8766 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8767 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8769 if (r->driver_path) {
8770 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8771 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8772 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8773 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8776 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8777 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8778 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8779 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8781 if (r->config_file) {
8782 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8783 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8784 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8785 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8788 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8789 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8790 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8791 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8793 if (r->monitor_name) {
8794 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8795 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8796 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8797 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8799 if (r->default_datatype) {
8800 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8801 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8802 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8803 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8805 if (r->dependent_files) {
8806 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8808 if (r->previous_names) {
8809 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
8812 return NDR_ERR_SUCCESS;
8815 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo4 *r)
8817 uint32_t _ptr_driver_name;
8818 TALLOC_CTX *_mem_save_driver_name_0;
8819 uint32_t _ptr_architecture;
8820 TALLOC_CTX *_mem_save_architecture_0;
8821 uint32_t _ptr_driver_path;
8822 TALLOC_CTX *_mem_save_driver_path_0;
8823 uint32_t _ptr_data_file;
8824 TALLOC_CTX *_mem_save_data_file_0;
8825 uint32_t _ptr_config_file;
8826 TALLOC_CTX *_mem_save_config_file_0;
8827 uint32_t _ptr_help_file;
8828 TALLOC_CTX *_mem_save_help_file_0;
8829 uint32_t _ptr_monitor_name;
8830 TALLOC_CTX *_mem_save_monitor_name_0;
8831 uint32_t _ptr_default_datatype;
8832 TALLOC_CTX *_mem_save_default_datatype_0;
8833 uint32_t _ptr_dependent_files;
8834 TALLOC_CTX *_mem_save_dependent_files_0;
8835 uint32_t _ptr_previous_names;
8836 TALLOC_CTX *_mem_save_previous_names_0;
8837 if (ndr_flags & NDR_SCALARS) {
8838 NDR_CHECK(ndr_pull_align(ndr, 5));
8839 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
8840 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8841 if (_ptr_driver_name) {
8842 NDR_PULL_ALLOC(ndr, r->driver_name);
8844 r->driver_name = NULL;
8846 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
8847 if (_ptr_architecture) {
8848 NDR_PULL_ALLOC(ndr, r->architecture);
8850 r->architecture = NULL;
8852 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
8853 if (_ptr_driver_path) {
8854 NDR_PULL_ALLOC(ndr, r->driver_path);
8856 r->driver_path = NULL;
8858 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
8859 if (_ptr_data_file) {
8860 NDR_PULL_ALLOC(ndr, r->data_file);
8862 r->data_file = NULL;
8864 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
8865 if (_ptr_config_file) {
8866 NDR_PULL_ALLOC(ndr, r->config_file);
8868 r->config_file = NULL;
8870 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
8871 if (_ptr_help_file) {
8872 NDR_PULL_ALLOC(ndr, r->help_file);
8874 r->help_file = NULL;
8876 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
8877 if (_ptr_monitor_name) {
8878 NDR_PULL_ALLOC(ndr, r->monitor_name);
8880 r->monitor_name = NULL;
8882 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
8883 if (_ptr_default_datatype) {
8884 NDR_PULL_ALLOC(ndr, r->default_datatype);
8886 r->default_datatype = NULL;
8888 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
8889 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
8890 if (_ptr_dependent_files) {
8891 NDR_PULL_ALLOC(ndr, r->dependent_files);
8893 r->dependent_files = NULL;
8895 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
8896 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
8897 if (_ptr_previous_names) {
8898 NDR_PULL_ALLOC(ndr, r->previous_names);
8900 r->previous_names = NULL;
8902 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8904 if (ndr_flags & NDR_BUFFERS) {
8905 if (r->driver_name) {
8906 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8907 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8908 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
8909 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
8910 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
8911 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));
8913 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
8914 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
8915 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8917 if (r->architecture) {
8918 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
8919 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
8920 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
8921 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
8922 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
8923 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));
8925 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
8926 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
8927 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
8929 if (r->driver_path) {
8930 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
8931 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
8932 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
8933 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
8934 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
8935 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));
8937 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
8938 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
8939 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
8942 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8943 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
8944 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
8945 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
8946 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
8947 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));
8949 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
8950 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
8951 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
8953 if (r->config_file) {
8954 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8955 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
8956 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
8957 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
8958 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
8959 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));
8961 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
8962 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
8963 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
8966 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8967 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
8968 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
8969 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
8970 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
8971 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));
8973 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
8974 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
8975 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
8977 if (r->monitor_name) {
8978 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8979 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
8980 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
8981 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
8982 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
8983 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));
8985 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
8986 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
8987 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
8989 if (r->default_datatype) {
8990 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
8991 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
8992 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
8993 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
8994 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
8995 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));
8997 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
8998 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
8999 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
9001 if (r->dependent_files) {
9002 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
9003 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
9004 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
9005 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
9007 if (r->previous_names) {
9008 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
9009 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
9010 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
9011 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
9014 return NDR_ERR_SUCCESS;
9017 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo4 *r)
9019 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo4");
9021 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
9022 ndr_print_ptr(ndr, "driver_name", r->driver_name);
9024 if (r->driver_name) {
9025 ndr_print_string(ndr, "driver_name", r->driver_name);
9028 ndr_print_ptr(ndr, "architecture", r->architecture);
9030 if (r->architecture) {
9031 ndr_print_string(ndr, "architecture", r->architecture);
9034 ndr_print_ptr(ndr, "driver_path", r->driver_path);
9036 if (r->driver_path) {
9037 ndr_print_string(ndr, "driver_path", r->driver_path);
9040 ndr_print_ptr(ndr, "data_file", r->data_file);
9043 ndr_print_string(ndr, "data_file", r->data_file);
9046 ndr_print_ptr(ndr, "config_file", r->config_file);
9048 if (r->config_file) {
9049 ndr_print_string(ndr, "config_file", r->config_file);
9052 ndr_print_ptr(ndr, "help_file", r->help_file);
9055 ndr_print_string(ndr, "help_file", r->help_file);
9058 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
9060 if (r->monitor_name) {
9061 ndr_print_string(ndr, "monitor_name", r->monitor_name);
9064 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
9066 if (r->default_datatype) {
9067 ndr_print_string(ndr, "default_datatype", r->default_datatype);
9070 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);
9071 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
9073 if (r->dependent_files) {
9074 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
9077 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);
9078 ndr_print_ptr(ndr, "previous_names", r->previous_names);
9080 if (r->previous_names) {
9081 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
9087 static enum ndr_err_code ndr_push_spoolss_DriverAttributes(struct ndr_push *ndr, int ndr_flags, uint32_t r)
9089 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
9090 return NDR_ERR_SUCCESS;
9093 static enum ndr_err_code ndr_pull_spoolss_DriverAttributes(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
9096 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
9098 return NDR_ERR_SUCCESS;
9101 _PUBLIC_ void ndr_print_spoolss_DriverAttributes(struct ndr_print *ndr, const char *name, uint32_t r)
9103 ndr_print_uint32(ndr, name, r);
9105 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_DRIVER_PACKAGE_AWARE", PRINTER_DRIVER_PACKAGE_AWARE, r);
9109 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo6 *r)
9111 if (ndr_flags & NDR_SCALARS) {
9112 NDR_CHECK(ndr_push_align(ndr, 8));
9113 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
9114 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
9115 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
9116 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
9117 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
9118 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
9119 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
9120 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
9121 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
9122 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9123 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
9124 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9125 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
9126 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
9127 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
9128 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_name));
9129 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_url));
9130 NDR_CHECK(ndr_push_unique_ptr(ndr, r->hardware_id));
9131 NDR_CHECK(ndr_push_unique_ptr(ndr, r->provider));
9132 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
9134 if (ndr_flags & NDR_BUFFERS) {
9135 if (r->driver_name) {
9136 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
9137 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9138 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
9139 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9141 if (r->architecture) {
9142 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
9143 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9144 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
9145 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9147 if (r->driver_path) {
9148 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
9149 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9150 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
9151 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9154 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
9155 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9156 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
9157 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9159 if (r->config_file) {
9160 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
9161 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9162 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
9163 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9166 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
9167 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9168 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
9169 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9171 if (r->monitor_name) {
9172 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
9173 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9174 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
9175 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9177 if (r->default_datatype) {
9178 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
9179 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9180 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
9181 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9183 if (r->dependent_files) {
9184 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
9186 if (r->previous_names) {
9187 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
9189 if (r->manufacturer_name) {
9190 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
9191 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9192 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
9193 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_name, ndr_charset_length(r->manufacturer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9195 if (r->manufacturer_url) {
9196 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
9197 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9198 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
9199 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_url, ndr_charset_length(r->manufacturer_url, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9201 if (r->hardware_id) {
9202 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
9203 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9204 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
9205 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_id, ndr_charset_length(r->hardware_id, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9208 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
9209 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9210 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
9211 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->provider, ndr_charset_length(r->provider, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9214 return NDR_ERR_SUCCESS;
9217 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo6 *r)
9219 uint32_t _ptr_driver_name;
9220 TALLOC_CTX *_mem_save_driver_name_0;
9221 uint32_t _ptr_architecture;
9222 TALLOC_CTX *_mem_save_architecture_0;
9223 uint32_t _ptr_driver_path;
9224 TALLOC_CTX *_mem_save_driver_path_0;
9225 uint32_t _ptr_data_file;
9226 TALLOC_CTX *_mem_save_data_file_0;
9227 uint32_t _ptr_config_file;
9228 TALLOC_CTX *_mem_save_config_file_0;
9229 uint32_t _ptr_help_file;
9230 TALLOC_CTX *_mem_save_help_file_0;
9231 uint32_t _ptr_monitor_name;
9232 TALLOC_CTX *_mem_save_monitor_name_0;
9233 uint32_t _ptr_default_datatype;
9234 TALLOC_CTX *_mem_save_default_datatype_0;
9235 uint32_t _ptr_dependent_files;
9236 TALLOC_CTX *_mem_save_dependent_files_0;
9237 uint32_t _ptr_previous_names;
9238 TALLOC_CTX *_mem_save_previous_names_0;
9239 uint32_t _ptr_manufacturer_name;
9240 TALLOC_CTX *_mem_save_manufacturer_name_0;
9241 uint32_t _ptr_manufacturer_url;
9242 TALLOC_CTX *_mem_save_manufacturer_url_0;
9243 uint32_t _ptr_hardware_id;
9244 TALLOC_CTX *_mem_save_hardware_id_0;
9245 uint32_t _ptr_provider;
9246 TALLOC_CTX *_mem_save_provider_0;
9247 if (ndr_flags & NDR_SCALARS) {
9248 NDR_CHECK(ndr_pull_align(ndr, 8));
9249 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
9250 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
9251 if (_ptr_driver_name) {
9252 NDR_PULL_ALLOC(ndr, r->driver_name);
9254 r->driver_name = NULL;
9256 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
9257 if (_ptr_architecture) {
9258 NDR_PULL_ALLOC(ndr, r->architecture);
9260 r->architecture = NULL;
9262 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
9263 if (_ptr_driver_path) {
9264 NDR_PULL_ALLOC(ndr, r->driver_path);
9266 r->driver_path = NULL;
9268 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
9269 if (_ptr_data_file) {
9270 NDR_PULL_ALLOC(ndr, r->data_file);
9272 r->data_file = NULL;
9274 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
9275 if (_ptr_config_file) {
9276 NDR_PULL_ALLOC(ndr, r->config_file);
9278 r->config_file = NULL;
9280 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
9281 if (_ptr_help_file) {
9282 NDR_PULL_ALLOC(ndr, r->help_file);
9284 r->help_file = NULL;
9286 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
9287 if (_ptr_monitor_name) {
9288 NDR_PULL_ALLOC(ndr, r->monitor_name);
9290 r->monitor_name = NULL;
9292 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
9293 if (_ptr_default_datatype) {
9294 NDR_PULL_ALLOC(ndr, r->default_datatype);
9296 r->default_datatype = NULL;
9298 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
9299 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
9300 if (_ptr_dependent_files) {
9301 NDR_PULL_ALLOC(ndr, r->dependent_files);
9303 r->dependent_files = NULL;
9305 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
9306 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
9307 if (_ptr_previous_names) {
9308 NDR_PULL_ALLOC(ndr, r->previous_names);
9310 r->previous_names = NULL;
9312 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
9313 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
9314 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
9315 if (_ptr_manufacturer_name) {
9316 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
9318 r->manufacturer_name = NULL;
9320 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
9321 if (_ptr_manufacturer_url) {
9322 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
9324 r->manufacturer_url = NULL;
9326 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
9327 if (_ptr_hardware_id) {
9328 NDR_PULL_ALLOC(ndr, r->hardware_id);
9330 r->hardware_id = NULL;
9332 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
9333 if (_ptr_provider) {
9334 NDR_PULL_ALLOC(ndr, r->provider);
9338 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
9340 if (ndr_flags & NDR_BUFFERS) {
9341 if (r->driver_name) {
9342 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9343 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
9344 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
9345 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
9346 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
9347 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));
9349 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
9350 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
9351 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
9353 if (r->architecture) {
9354 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
9355 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
9356 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
9357 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
9358 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
9359 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));
9361 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
9362 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
9363 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
9365 if (r->driver_path) {
9366 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
9367 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
9368 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
9369 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
9370 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
9371 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));
9373 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
9374 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
9375 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
9378 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9379 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
9380 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
9381 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
9382 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
9383 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));
9385 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
9386 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
9387 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
9389 if (r->config_file) {
9390 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9391 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
9392 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
9393 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
9394 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
9395 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));
9397 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
9398 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
9399 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
9402 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9403 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
9404 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
9405 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
9406 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
9407 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));
9409 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
9410 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
9411 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
9413 if (r->monitor_name) {
9414 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9415 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
9416 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
9417 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
9418 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
9419 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));
9421 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
9422 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
9423 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
9425 if (r->default_datatype) {
9426 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
9427 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
9428 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
9429 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
9430 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
9431 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));
9433 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
9434 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
9435 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
9437 if (r->dependent_files) {
9438 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
9439 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
9440 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
9441 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
9443 if (r->previous_names) {
9444 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
9445 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
9446 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
9447 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
9449 if (r->manufacturer_name) {
9450 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9451 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
9452 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_name));
9453 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_name));
9454 if (ndr_get_array_length(ndr, &r->manufacturer_name) > ndr_get_array_size(ndr, &r->manufacturer_name)) {
9455 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));
9457 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t)));
9458 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_name, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t), CH_UTF16));
9459 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
9461 if (r->manufacturer_url) {
9462 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
9463 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
9464 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_url));
9465 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_url));
9466 if (ndr_get_array_length(ndr, &r->manufacturer_url) > ndr_get_array_size(ndr, &r->manufacturer_url)) {
9467 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));
9469 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t)));
9470 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_url, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t), CH_UTF16));
9471 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
9473 if (r->hardware_id) {
9474 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
9475 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
9476 NDR_CHECK(ndr_pull_array_size(ndr, &r->hardware_id));
9477 NDR_CHECK(ndr_pull_array_length(ndr, &r->hardware_id));
9478 if (ndr_get_array_length(ndr, &r->hardware_id) > ndr_get_array_size(ndr, &r->hardware_id)) {
9479 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));
9481 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t)));
9482 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_id, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t), CH_UTF16));
9483 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
9486 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
9487 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
9488 NDR_CHECK(ndr_pull_array_size(ndr, &r->provider));
9489 NDR_CHECK(ndr_pull_array_length(ndr, &r->provider));
9490 if (ndr_get_array_length(ndr, &r->provider) > ndr_get_array_size(ndr, &r->provider)) {
9491 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));
9493 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t)));
9494 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->provider, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t), CH_UTF16));
9495 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
9498 return NDR_ERR_SUCCESS;
9501 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo6 *r)
9503 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo6");
9505 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
9506 ndr_print_ptr(ndr, "driver_name", r->driver_name);
9508 if (r->driver_name) {
9509 ndr_print_string(ndr, "driver_name", r->driver_name);
9512 ndr_print_ptr(ndr, "architecture", r->architecture);
9514 if (r->architecture) {
9515 ndr_print_string(ndr, "architecture", r->architecture);
9518 ndr_print_ptr(ndr, "driver_path", r->driver_path);
9520 if (r->driver_path) {
9521 ndr_print_string(ndr, "driver_path", r->driver_path);
9524 ndr_print_ptr(ndr, "data_file", r->data_file);
9527 ndr_print_string(ndr, "data_file", r->data_file);
9530 ndr_print_ptr(ndr, "config_file", r->config_file);
9532 if (r->config_file) {
9533 ndr_print_string(ndr, "config_file", r->config_file);
9536 ndr_print_ptr(ndr, "help_file", r->help_file);
9539 ndr_print_string(ndr, "help_file", r->help_file);
9542 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
9544 if (r->monitor_name) {
9545 ndr_print_string(ndr, "monitor_name", r->monitor_name);
9548 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
9550 if (r->default_datatype) {
9551 ndr_print_string(ndr, "default_datatype", r->default_datatype);
9554 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);
9555 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
9557 if (r->dependent_files) {
9558 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
9561 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);
9562 ndr_print_ptr(ndr, "previous_names", r->previous_names);
9564 if (r->previous_names) {
9565 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
9568 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
9569 ndr_print_hyper(ndr, "driver_version", r->driver_version);
9570 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
9572 if (r->manufacturer_name) {
9573 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
9576 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
9578 if (r->manufacturer_url) {
9579 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
9582 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
9584 if (r->hardware_id) {
9585 ndr_print_string(ndr, "hardware_id", r->hardware_id);
9588 ndr_print_ptr(ndr, "provider", r->provider);
9591 ndr_print_string(ndr, "provider", r->provider);
9597 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo8(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo8 *r)
9599 if (ndr_flags & NDR_SCALARS) {
9600 NDR_CHECK(ndr_push_align(ndr, 8));
9601 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
9602 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
9603 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
9604 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
9605 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
9606 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
9607 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
9608 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
9609 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
9610 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9611 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
9612 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9613 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
9614 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
9615 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
9616 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_name));
9617 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_url));
9618 NDR_CHECK(ndr_push_unique_ptr(ndr, r->hardware_id));
9619 NDR_CHECK(ndr_push_unique_ptr(ndr, r->provider));
9620 NDR_CHECK(ndr_push_unique_ptr(ndr, r->print_processor));
9621 NDR_CHECK(ndr_push_unique_ptr(ndr, r->vendor_setup));
9622 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->color_profiles, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9623 NDR_CHECK(ndr_push_unique_ptr(ndr, r->color_profiles));
9624 NDR_CHECK(ndr_push_unique_ptr(ndr, r->inf_path));
9625 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->printer_driver_attributes));
9626 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->core_driver_dependencies, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9627 NDR_CHECK(ndr_push_unique_ptr(ndr, r->core_driver_dependencies));
9628 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->min_inbox_driver_ver_date));
9629 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->min_inbox_driver_ver_version));
9630 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
9632 if (ndr_flags & NDR_BUFFERS) {
9633 if (r->driver_name) {
9634 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
9635 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9636 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
9637 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9639 if (r->architecture) {
9640 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
9641 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9642 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
9643 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9645 if (r->driver_path) {
9646 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
9647 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9648 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
9649 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9652 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
9653 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9654 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
9655 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9657 if (r->config_file) {
9658 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
9659 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9660 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
9661 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9664 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
9665 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9666 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
9667 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9669 if (r->monitor_name) {
9670 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
9671 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9672 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
9673 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9675 if (r->default_datatype) {
9676 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
9677 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9678 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
9679 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9681 if (r->dependent_files) {
9682 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
9684 if (r->previous_names) {
9685 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
9687 if (r->manufacturer_name) {
9688 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
9689 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9690 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
9691 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_name, ndr_charset_length(r->manufacturer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9693 if (r->manufacturer_url) {
9694 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
9695 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9696 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
9697 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_url, ndr_charset_length(r->manufacturer_url, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9699 if (r->hardware_id) {
9700 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
9701 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9702 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
9703 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_id, ndr_charset_length(r->hardware_id, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9706 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
9707 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9708 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
9709 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->provider, ndr_charset_length(r->provider, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9711 if (r->print_processor) {
9712 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
9713 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9714 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
9715 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->print_processor, ndr_charset_length(r->print_processor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9717 if (r->vendor_setup) {
9718 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->vendor_setup, CH_UTF16)));
9719 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9720 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->vendor_setup, CH_UTF16)));
9721 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->vendor_setup, ndr_charset_length(r->vendor_setup, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9723 if (r->color_profiles) {
9724 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->color_profiles));
9727 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->inf_path, CH_UTF16)));
9728 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9729 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->inf_path, CH_UTF16)));
9730 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->inf_path, ndr_charset_length(r->inf_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9732 if (r->core_driver_dependencies) {
9733 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->core_driver_dependencies));
9736 return NDR_ERR_SUCCESS;
9739 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo8(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo8 *r)
9741 uint32_t _ptr_driver_name;
9742 TALLOC_CTX *_mem_save_driver_name_0;
9743 uint32_t _ptr_architecture;
9744 TALLOC_CTX *_mem_save_architecture_0;
9745 uint32_t _ptr_driver_path;
9746 TALLOC_CTX *_mem_save_driver_path_0;
9747 uint32_t _ptr_data_file;
9748 TALLOC_CTX *_mem_save_data_file_0;
9749 uint32_t _ptr_config_file;
9750 TALLOC_CTX *_mem_save_config_file_0;
9751 uint32_t _ptr_help_file;
9752 TALLOC_CTX *_mem_save_help_file_0;
9753 uint32_t _ptr_monitor_name;
9754 TALLOC_CTX *_mem_save_monitor_name_0;
9755 uint32_t _ptr_default_datatype;
9756 TALLOC_CTX *_mem_save_default_datatype_0;
9757 uint32_t _ptr_dependent_files;
9758 TALLOC_CTX *_mem_save_dependent_files_0;
9759 uint32_t _ptr_previous_names;
9760 TALLOC_CTX *_mem_save_previous_names_0;
9761 uint32_t _ptr_manufacturer_name;
9762 TALLOC_CTX *_mem_save_manufacturer_name_0;
9763 uint32_t _ptr_manufacturer_url;
9764 TALLOC_CTX *_mem_save_manufacturer_url_0;
9765 uint32_t _ptr_hardware_id;
9766 TALLOC_CTX *_mem_save_hardware_id_0;
9767 uint32_t _ptr_provider;
9768 TALLOC_CTX *_mem_save_provider_0;
9769 uint32_t _ptr_print_processor;
9770 TALLOC_CTX *_mem_save_print_processor_0;
9771 uint32_t _ptr_vendor_setup;
9772 TALLOC_CTX *_mem_save_vendor_setup_0;
9773 uint32_t _ptr_color_profiles;
9774 TALLOC_CTX *_mem_save_color_profiles_0;
9775 uint32_t _ptr_inf_path;
9776 TALLOC_CTX *_mem_save_inf_path_0;
9777 uint32_t _ptr_core_driver_dependencies;
9778 TALLOC_CTX *_mem_save_core_driver_dependencies_0;
9779 if (ndr_flags & NDR_SCALARS) {
9780 NDR_CHECK(ndr_pull_align(ndr, 8));
9781 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
9782 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
9783 if (_ptr_driver_name) {
9784 NDR_PULL_ALLOC(ndr, r->driver_name);
9786 r->driver_name = NULL;
9788 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
9789 if (_ptr_architecture) {
9790 NDR_PULL_ALLOC(ndr, r->architecture);
9792 r->architecture = NULL;
9794 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
9795 if (_ptr_driver_path) {
9796 NDR_PULL_ALLOC(ndr, r->driver_path);
9798 r->driver_path = NULL;
9800 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
9801 if (_ptr_data_file) {
9802 NDR_PULL_ALLOC(ndr, r->data_file);
9804 r->data_file = NULL;
9806 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
9807 if (_ptr_config_file) {
9808 NDR_PULL_ALLOC(ndr, r->config_file);
9810 r->config_file = NULL;
9812 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
9813 if (_ptr_help_file) {
9814 NDR_PULL_ALLOC(ndr, r->help_file);
9816 r->help_file = NULL;
9818 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
9819 if (_ptr_monitor_name) {
9820 NDR_PULL_ALLOC(ndr, r->monitor_name);
9822 r->monitor_name = NULL;
9824 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
9825 if (_ptr_default_datatype) {
9826 NDR_PULL_ALLOC(ndr, r->default_datatype);
9828 r->default_datatype = NULL;
9830 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
9831 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
9832 if (_ptr_dependent_files) {
9833 NDR_PULL_ALLOC(ndr, r->dependent_files);
9835 r->dependent_files = NULL;
9837 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
9838 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
9839 if (_ptr_previous_names) {
9840 NDR_PULL_ALLOC(ndr, r->previous_names);
9842 r->previous_names = NULL;
9844 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
9845 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
9846 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
9847 if (_ptr_manufacturer_name) {
9848 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
9850 r->manufacturer_name = NULL;
9852 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
9853 if (_ptr_manufacturer_url) {
9854 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
9856 r->manufacturer_url = NULL;
9858 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
9859 if (_ptr_hardware_id) {
9860 NDR_PULL_ALLOC(ndr, r->hardware_id);
9862 r->hardware_id = NULL;
9864 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
9865 if (_ptr_provider) {
9866 NDR_PULL_ALLOC(ndr, r->provider);
9870 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
9871 if (_ptr_print_processor) {
9872 NDR_PULL_ALLOC(ndr, r->print_processor);
9874 r->print_processor = NULL;
9876 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_vendor_setup));
9877 if (_ptr_vendor_setup) {
9878 NDR_PULL_ALLOC(ndr, r->vendor_setup);
9880 r->vendor_setup = NULL;
9882 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_color_profiles));
9883 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_color_profiles));
9884 if (_ptr_color_profiles) {
9885 NDR_PULL_ALLOC(ndr, r->color_profiles);
9887 r->color_profiles = NULL;
9889 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_inf_path));
9890 if (_ptr_inf_path) {
9891 NDR_PULL_ALLOC(ndr, r->inf_path);
9895 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->printer_driver_attributes));
9896 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_core_driver_dependencies));
9897 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_core_driver_dependencies));
9898 if (_ptr_core_driver_dependencies) {
9899 NDR_PULL_ALLOC(ndr, r->core_driver_dependencies);
9901 r->core_driver_dependencies = NULL;
9903 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_date));
9904 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_version));
9905 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
9907 if (ndr_flags & NDR_BUFFERS) {
9908 if (r->driver_name) {
9909 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9910 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
9911 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
9912 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
9913 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
9914 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));
9916 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
9917 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
9918 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
9920 if (r->architecture) {
9921 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
9922 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
9923 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
9924 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
9925 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
9926 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));
9928 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
9929 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
9930 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
9932 if (r->driver_path) {
9933 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
9934 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
9935 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
9936 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
9937 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
9938 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));
9940 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
9941 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
9942 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
9945 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9946 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
9947 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
9948 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
9949 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
9950 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));
9952 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
9953 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
9954 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
9956 if (r->config_file) {
9957 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9958 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
9959 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
9960 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
9961 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
9962 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));
9964 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
9965 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
9966 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
9969 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9970 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
9971 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
9972 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
9973 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
9974 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));
9976 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
9977 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
9978 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
9980 if (r->monitor_name) {
9981 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9982 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
9983 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
9984 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
9985 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
9986 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));
9988 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
9989 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
9990 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
9992 if (r->default_datatype) {
9993 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
9994 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
9995 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
9996 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
9997 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
9998 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));
10000 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
10001 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
10002 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
10004 if (r->dependent_files) {
10005 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
10006 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
10007 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
10008 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
10010 if (r->previous_names) {
10011 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
10012 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
10013 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
10014 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
10016 if (r->manufacturer_name) {
10017 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10018 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
10019 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_name));
10020 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_name));
10021 if (ndr_get_array_length(ndr, &r->manufacturer_name) > ndr_get_array_size(ndr, &r->manufacturer_name)) {
10022 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));
10024 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t)));
10025 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_name, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t), CH_UTF16));
10026 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
10028 if (r->manufacturer_url) {
10029 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
10030 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
10031 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_url));
10032 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_url));
10033 if (ndr_get_array_length(ndr, &r->manufacturer_url) > ndr_get_array_size(ndr, &r->manufacturer_url)) {
10034 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));
10036 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t)));
10037 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_url, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t), CH_UTF16));
10038 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
10040 if (r->hardware_id) {
10041 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
10042 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
10043 NDR_CHECK(ndr_pull_array_size(ndr, &r->hardware_id));
10044 NDR_CHECK(ndr_pull_array_length(ndr, &r->hardware_id));
10045 if (ndr_get_array_length(ndr, &r->hardware_id) > ndr_get_array_size(ndr, &r->hardware_id)) {
10046 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));
10048 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t)));
10049 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_id, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t), CH_UTF16));
10050 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
10053 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
10054 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
10055 NDR_CHECK(ndr_pull_array_size(ndr, &r->provider));
10056 NDR_CHECK(ndr_pull_array_length(ndr, &r->provider));
10057 if (ndr_get_array_length(ndr, &r->provider) > ndr_get_array_size(ndr, &r->provider)) {
10058 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));
10060 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t)));
10061 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->provider, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t), CH_UTF16));
10062 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
10064 if (r->print_processor) {
10065 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
10066 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
10067 NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
10068 NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
10069 if (ndr_get_array_length(ndr, &r->print_processor) > ndr_get_array_size(ndr, &r->print_processor)) {
10070 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));
10072 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t)));
10073 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t), CH_UTF16));
10074 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
10076 if (r->vendor_setup) {
10077 _mem_save_vendor_setup_0 = NDR_PULL_GET_MEM_CTX(ndr);
10078 NDR_PULL_SET_MEM_CTX(ndr, r->vendor_setup, 0);
10079 NDR_CHECK(ndr_pull_array_size(ndr, &r->vendor_setup));
10080 NDR_CHECK(ndr_pull_array_length(ndr, &r->vendor_setup));
10081 if (ndr_get_array_length(ndr, &r->vendor_setup) > ndr_get_array_size(ndr, &r->vendor_setup)) {
10082 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));
10084 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->vendor_setup), sizeof(uint16_t)));
10085 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->vendor_setup, ndr_get_array_length(ndr, &r->vendor_setup), sizeof(uint16_t), CH_UTF16));
10086 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vendor_setup_0, 0);
10088 if (r->color_profiles) {
10089 _mem_save_color_profiles_0 = NDR_PULL_GET_MEM_CTX(ndr);
10090 NDR_PULL_SET_MEM_CTX(ndr, r->color_profiles, 0);
10091 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->color_profiles));
10092 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_color_profiles_0, 0);
10095 _mem_save_inf_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
10096 NDR_PULL_SET_MEM_CTX(ndr, r->inf_path, 0);
10097 NDR_CHECK(ndr_pull_array_size(ndr, &r->inf_path));
10098 NDR_CHECK(ndr_pull_array_length(ndr, &r->inf_path));
10099 if (ndr_get_array_length(ndr, &r->inf_path) > ndr_get_array_size(ndr, &r->inf_path)) {
10100 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));
10102 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->inf_path), sizeof(uint16_t)));
10103 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->inf_path, ndr_get_array_length(ndr, &r->inf_path), sizeof(uint16_t), CH_UTF16));
10104 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_inf_path_0, 0);
10106 if (r->core_driver_dependencies) {
10107 _mem_save_core_driver_dependencies_0 = NDR_PULL_GET_MEM_CTX(ndr);
10108 NDR_PULL_SET_MEM_CTX(ndr, r->core_driver_dependencies, 0);
10109 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->core_driver_dependencies));
10110 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_driver_dependencies_0, 0);
10113 return NDR_ERR_SUCCESS;
10116 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo8(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo8 *r)
10118 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo8");
10120 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
10121 ndr_print_ptr(ndr, "driver_name", r->driver_name);
10123 if (r->driver_name) {
10124 ndr_print_string(ndr, "driver_name", r->driver_name);
10127 ndr_print_ptr(ndr, "architecture", r->architecture);
10129 if (r->architecture) {
10130 ndr_print_string(ndr, "architecture", r->architecture);
10133 ndr_print_ptr(ndr, "driver_path", r->driver_path);
10135 if (r->driver_path) {
10136 ndr_print_string(ndr, "driver_path", r->driver_path);
10139 ndr_print_ptr(ndr, "data_file", r->data_file);
10141 if (r->data_file) {
10142 ndr_print_string(ndr, "data_file", r->data_file);
10145 ndr_print_ptr(ndr, "config_file", r->config_file);
10147 if (r->config_file) {
10148 ndr_print_string(ndr, "config_file", r->config_file);
10151 ndr_print_ptr(ndr, "help_file", r->help_file);
10153 if (r->help_file) {
10154 ndr_print_string(ndr, "help_file", r->help_file);
10157 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
10159 if (r->monitor_name) {
10160 ndr_print_string(ndr, "monitor_name", r->monitor_name);
10163 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
10165 if (r->default_datatype) {
10166 ndr_print_string(ndr, "default_datatype", r->default_datatype);
10169 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);
10170 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
10172 if (r->dependent_files) {
10173 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
10176 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);
10177 ndr_print_ptr(ndr, "previous_names", r->previous_names);
10179 if (r->previous_names) {
10180 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
10183 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
10184 ndr_print_hyper(ndr, "driver_version", r->driver_version);
10185 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
10187 if (r->manufacturer_name) {
10188 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
10191 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
10193 if (r->manufacturer_url) {
10194 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
10197 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
10199 if (r->hardware_id) {
10200 ndr_print_string(ndr, "hardware_id", r->hardware_id);
10203 ndr_print_ptr(ndr, "provider", r->provider);
10206 ndr_print_string(ndr, "provider", r->provider);
10209 ndr_print_ptr(ndr, "print_processor", r->print_processor);
10211 if (r->print_processor) {
10212 ndr_print_string(ndr, "print_processor", r->print_processor);
10215 ndr_print_ptr(ndr, "vendor_setup", r->vendor_setup);
10217 if (r->vendor_setup) {
10218 ndr_print_string(ndr, "vendor_setup", r->vendor_setup);
10221 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);
10222 ndr_print_ptr(ndr, "color_profiles", r->color_profiles);
10224 if (r->color_profiles) {
10225 ndr_print_spoolss_StringArray(ndr, "color_profiles", r->color_profiles);
10228 ndr_print_ptr(ndr, "inf_path", r->inf_path);
10231 ndr_print_string(ndr, "inf_path", r->inf_path);
10234 ndr_print_uint32(ndr, "printer_driver_attributes", r->printer_driver_attributes);
10235 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);
10236 ndr_print_ptr(ndr, "core_driver_dependencies", r->core_driver_dependencies);
10238 if (r->core_driver_dependencies) {
10239 ndr_print_spoolss_StringArray(ndr, "core_driver_dependencies", r->core_driver_dependencies);
10242 ndr_print_NTTIME(ndr, "min_inbox_driver_ver_date", r->min_inbox_driver_ver_date);
10243 ndr_print_hyper(ndr, "min_inbox_driver_ver_version", r->min_inbox_driver_ver_version);
10247 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_AddDriverInfo *r)
10249 if (ndr_flags & NDR_SCALARS) {
10250 int level = ndr_push_get_switch_value(ndr, r);
10251 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
10252 NDR_CHECK(ndr_push_union_align(ndr, 5));
10255 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
10259 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
10263 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
10267 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
10271 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info6));
10275 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info8));
10279 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
10282 if (ndr_flags & NDR_BUFFERS) {
10283 int level = ndr_push_get_switch_value(ndr, r);
10287 NDR_CHECK(ndr_push_spoolss_AddDriverInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
10293 NDR_CHECK(ndr_push_spoolss_AddDriverInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
10299 NDR_CHECK(ndr_push_spoolss_AddDriverInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3));
10305 NDR_CHECK(ndr_push_spoolss_AddDriverInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
10311 NDR_CHECK(ndr_push_spoolss_AddDriverInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->info6));
10317 NDR_CHECK(ndr_push_spoolss_AddDriverInfo8(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
10322 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
10325 return NDR_ERR_SUCCESS;
10328 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_AddDriverInfo *r)
10332 TALLOC_CTX *_mem_save_info1_0;
10333 TALLOC_CTX *_mem_save_info2_0;
10334 TALLOC_CTX *_mem_save_info3_0;
10335 TALLOC_CTX *_mem_save_info4_0;
10336 TALLOC_CTX *_mem_save_info6_0;
10337 TALLOC_CTX *_mem_save_info8_0;
10338 level = ndr_pull_get_switch_value(ndr, r);
10339 if (ndr_flags & NDR_SCALARS) {
10340 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
10341 if (_level != level) {
10342 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
10344 NDR_CHECK(ndr_pull_union_align(ndr, 5));
10347 uint32_t _ptr_info1;
10348 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
10350 NDR_PULL_ALLOC(ndr, r->info1);
10357 uint32_t _ptr_info2;
10358 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
10360 NDR_PULL_ALLOC(ndr, r->info2);
10367 uint32_t _ptr_info3;
10368 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
10370 NDR_PULL_ALLOC(ndr, r->info3);
10377 uint32_t _ptr_info4;
10378 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
10380 NDR_PULL_ALLOC(ndr, r->info4);
10387 uint32_t _ptr_info6;
10388 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info6));
10390 NDR_PULL_ALLOC(ndr, r->info6);
10397 uint32_t _ptr_info8;
10398 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info8));
10400 NDR_PULL_ALLOC(ndr, r->info8);
10407 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
10410 if (ndr_flags & NDR_BUFFERS) {
10414 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
10415 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
10416 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
10417 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
10423 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
10424 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
10425 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
10426 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
10432 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
10433 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
10434 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3));
10435 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
10441 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
10442 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
10443 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
10444 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
10450 _mem_save_info6_0 = NDR_PULL_GET_MEM_CTX(ndr);
10451 NDR_PULL_SET_MEM_CTX(ndr, r->info6, 0);
10452 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->info6));
10453 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info6_0, 0);
10459 _mem_save_info8_0 = NDR_PULL_GET_MEM_CTX(ndr);
10460 NDR_PULL_SET_MEM_CTX(ndr, r->info8, 0);
10461 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo8(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
10462 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info8_0, 0);
10467 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
10470 return NDR_ERR_SUCCESS;
10473 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo(struct ndr_print *ndr, const char *name, const union spoolss_AddDriverInfo *r)
10476 level = ndr_print_get_switch_value(ndr, r);
10477 ndr_print_union(ndr, name, level, "spoolss_AddDriverInfo");
10480 ndr_print_ptr(ndr, "info1", r->info1);
10483 ndr_print_spoolss_AddDriverInfo1(ndr, "info1", r->info1);
10489 ndr_print_ptr(ndr, "info2", r->info2);
10492 ndr_print_spoolss_AddDriverInfo2(ndr, "info2", r->info2);
10498 ndr_print_ptr(ndr, "info3", r->info3);
10501 ndr_print_spoolss_AddDriverInfo3(ndr, "info3", r->info3);
10507 ndr_print_ptr(ndr, "info4", r->info4);
10510 ndr_print_spoolss_AddDriverInfo4(ndr, "info4", r->info4);
10516 ndr_print_ptr(ndr, "info6", r->info6);
10519 ndr_print_spoolss_AddDriverInfo6(ndr, "info6", r->info6);
10525 ndr_print_ptr(ndr, "info8", r->info8);
10528 ndr_print_spoolss_AddDriverInfo8(ndr, "info8", r->info8);
10534 ndr_print_bad_level(ndr, name, level);
10538 static enum ndr_err_code ndr_push_spoolss_AddDriverInfoCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfoCtr *r)
10540 if (ndr_flags & NDR_SCALARS) {
10541 NDR_CHECK(ndr_push_align(ndr, 5));
10542 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
10543 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
10544 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr, NDR_SCALARS, &r->info));
10545 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
10547 if (ndr_flags & NDR_BUFFERS) {
10548 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr, NDR_BUFFERS, &r->info));
10550 return NDR_ERR_SUCCESS;
10553 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfoCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfoCtr *r)
10555 if (ndr_flags & NDR_SCALARS) {
10556 NDR_CHECK(ndr_pull_align(ndr, 5));
10557 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
10558 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
10559 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr, NDR_SCALARS, &r->info));
10560 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
10562 if (ndr_flags & NDR_BUFFERS) {
10563 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr, NDR_BUFFERS, &r->info));
10565 return NDR_ERR_SUCCESS;
10568 _PUBLIC_ void ndr_print_spoolss_AddDriverInfoCtr(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfoCtr *r)
10570 ndr_print_struct(ndr, name, "spoolss_AddDriverInfoCtr");
10572 ndr_print_uint32(ndr, "level", r->level);
10573 ndr_print_set_switch_value(ndr, &r->info, r->level);
10574 ndr_print_spoolss_AddDriverInfo(ndr, "info", &r->info);
10578 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo1 *r)
10580 if (ndr_flags & NDR_SCALARS) {
10581 NDR_CHECK(ndr_push_align(ndr, 5));
10583 uint32_t _flags_save_string = ndr->flags;
10584 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10585 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
10586 ndr->flags = _flags_save_string;
10588 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
10590 if (ndr_flags & NDR_BUFFERS) {
10592 uint32_t _flags_save_string = ndr->flags;
10593 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10594 if (r->driver_name) {
10595 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
10596 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
10598 ndr->flags = _flags_save_string;
10601 return NDR_ERR_SUCCESS;
10604 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo1 *r)
10606 uint32_t _ptr_driver_name;
10607 TALLOC_CTX *_mem_save_driver_name_0;
10608 if (ndr_flags & NDR_SCALARS) {
10609 NDR_CHECK(ndr_pull_align(ndr, 5));
10611 uint32_t _flags_save_string = ndr->flags;
10612 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10613 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
10614 if (_ptr_driver_name) {
10615 NDR_PULL_ALLOC(ndr, r->driver_name);
10616 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
10618 r->driver_name = NULL;
10620 ndr->flags = _flags_save_string;
10622 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
10624 if (ndr_flags & NDR_BUFFERS) {
10626 uint32_t _flags_save_string = ndr->flags;
10627 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10628 if (r->driver_name) {
10629 uint32_t _relative_save_offset;
10630 _relative_save_offset = ndr->offset;
10631 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
10632 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10633 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
10634 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
10635 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
10636 if (ndr->offset > ndr->relative_highest_offset) {
10637 ndr->relative_highest_offset = ndr->offset;
10639 ndr->offset = _relative_save_offset;
10641 ndr->flags = _flags_save_string;
10644 return NDR_ERR_SUCCESS;
10647 _PUBLIC_ void ndr_print_spoolss_DriverInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo1 *r)
10649 ndr_print_struct(ndr, name, "spoolss_DriverInfo1");
10651 ndr_print_ptr(ndr, "driver_name", r->driver_name);
10653 if (r->driver_name) {
10654 ndr_print_string(ndr, "driver_name", r->driver_name);
10660 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo1(const struct spoolss_DriverInfo1 *r, struct smb_iconv_convenience *ic, int flags)
10662 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo1, ic);
10665 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo2 *r)
10667 if (ndr_flags & NDR_SCALARS) {
10668 NDR_CHECK(ndr_push_align(ndr, 5));
10669 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
10671 uint32_t _flags_save_string = ndr->flags;
10672 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10673 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
10674 ndr->flags = _flags_save_string;
10677 uint32_t _flags_save_string = ndr->flags;
10678 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10679 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
10680 ndr->flags = _flags_save_string;
10683 uint32_t _flags_save_string = ndr->flags;
10684 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10685 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
10686 ndr->flags = _flags_save_string;
10689 uint32_t _flags_save_string = ndr->flags;
10690 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10691 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
10692 ndr->flags = _flags_save_string;
10695 uint32_t _flags_save_string = ndr->flags;
10696 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10697 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
10698 ndr->flags = _flags_save_string;
10700 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
10702 if (ndr_flags & NDR_BUFFERS) {
10704 uint32_t _flags_save_string = ndr->flags;
10705 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10706 if (r->driver_name) {
10707 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
10708 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
10710 ndr->flags = _flags_save_string;
10713 uint32_t _flags_save_string = ndr->flags;
10714 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10715 if (r->architecture) {
10716 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
10717 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
10719 ndr->flags = _flags_save_string;
10722 uint32_t _flags_save_string = ndr->flags;
10723 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10724 if (r->driver_path) {
10725 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
10726 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
10728 ndr->flags = _flags_save_string;
10731 uint32_t _flags_save_string = ndr->flags;
10732 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10733 if (r->data_file) {
10734 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
10735 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
10737 ndr->flags = _flags_save_string;
10740 uint32_t _flags_save_string = ndr->flags;
10741 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10742 if (r->config_file) {
10743 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
10744 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
10746 ndr->flags = _flags_save_string;
10749 return NDR_ERR_SUCCESS;
10752 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo2 *r)
10754 uint32_t _ptr_driver_name;
10755 TALLOC_CTX *_mem_save_driver_name_0;
10756 uint32_t _ptr_architecture;
10757 TALLOC_CTX *_mem_save_architecture_0;
10758 uint32_t _ptr_driver_path;
10759 TALLOC_CTX *_mem_save_driver_path_0;
10760 uint32_t _ptr_data_file;
10761 TALLOC_CTX *_mem_save_data_file_0;
10762 uint32_t _ptr_config_file;
10763 TALLOC_CTX *_mem_save_config_file_0;
10764 if (ndr_flags & NDR_SCALARS) {
10765 NDR_CHECK(ndr_pull_align(ndr, 5));
10766 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
10768 uint32_t _flags_save_string = ndr->flags;
10769 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10770 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
10771 if (_ptr_driver_name) {
10772 NDR_PULL_ALLOC(ndr, r->driver_name);
10773 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
10775 r->driver_name = NULL;
10777 ndr->flags = _flags_save_string;
10780 uint32_t _flags_save_string = ndr->flags;
10781 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10782 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
10783 if (_ptr_architecture) {
10784 NDR_PULL_ALLOC(ndr, r->architecture);
10785 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
10787 r->architecture = NULL;
10789 ndr->flags = _flags_save_string;
10792 uint32_t _flags_save_string = ndr->flags;
10793 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10794 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
10795 if (_ptr_driver_path) {
10796 NDR_PULL_ALLOC(ndr, r->driver_path);
10797 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
10799 r->driver_path = NULL;
10801 ndr->flags = _flags_save_string;
10804 uint32_t _flags_save_string = ndr->flags;
10805 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10806 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
10807 if (_ptr_data_file) {
10808 NDR_PULL_ALLOC(ndr, r->data_file);
10809 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
10811 r->data_file = NULL;
10813 ndr->flags = _flags_save_string;
10816 uint32_t _flags_save_string = ndr->flags;
10817 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10818 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
10819 if (_ptr_config_file) {
10820 NDR_PULL_ALLOC(ndr, r->config_file);
10821 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
10823 r->config_file = NULL;
10825 ndr->flags = _flags_save_string;
10827 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
10829 if (ndr_flags & NDR_BUFFERS) {
10831 uint32_t _flags_save_string = ndr->flags;
10832 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10833 if (r->driver_name) {
10834 uint32_t _relative_save_offset;
10835 _relative_save_offset = ndr->offset;
10836 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
10837 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10838 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
10839 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
10840 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
10841 if (ndr->offset > ndr->relative_highest_offset) {
10842 ndr->relative_highest_offset = ndr->offset;
10844 ndr->offset = _relative_save_offset;
10846 ndr->flags = _flags_save_string;
10849 uint32_t _flags_save_string = ndr->flags;
10850 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10851 if (r->architecture) {
10852 uint32_t _relative_save_offset;
10853 _relative_save_offset = ndr->offset;
10854 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
10855 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
10856 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
10857 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
10858 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
10859 if (ndr->offset > ndr->relative_highest_offset) {
10860 ndr->relative_highest_offset = ndr->offset;
10862 ndr->offset = _relative_save_offset;
10864 ndr->flags = _flags_save_string;
10867 uint32_t _flags_save_string = ndr->flags;
10868 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10869 if (r->driver_path) {
10870 uint32_t _relative_save_offset;
10871 _relative_save_offset = ndr->offset;
10872 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
10873 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
10874 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
10875 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
10876 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
10877 if (ndr->offset > ndr->relative_highest_offset) {
10878 ndr->relative_highest_offset = ndr->offset;
10880 ndr->offset = _relative_save_offset;
10882 ndr->flags = _flags_save_string;
10885 uint32_t _flags_save_string = ndr->flags;
10886 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10887 if (r->data_file) {
10888 uint32_t _relative_save_offset;
10889 _relative_save_offset = ndr->offset;
10890 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
10891 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10892 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
10893 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
10894 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
10895 if (ndr->offset > ndr->relative_highest_offset) {
10896 ndr->relative_highest_offset = ndr->offset;
10898 ndr->offset = _relative_save_offset;
10900 ndr->flags = _flags_save_string;
10903 uint32_t _flags_save_string = ndr->flags;
10904 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10905 if (r->config_file) {
10906 uint32_t _relative_save_offset;
10907 _relative_save_offset = ndr->offset;
10908 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
10909 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10910 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
10911 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
10912 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
10913 if (ndr->offset > ndr->relative_highest_offset) {
10914 ndr->relative_highest_offset = ndr->offset;
10916 ndr->offset = _relative_save_offset;
10918 ndr->flags = _flags_save_string;
10921 return NDR_ERR_SUCCESS;
10924 _PUBLIC_ void ndr_print_spoolss_DriverInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo2 *r)
10926 ndr_print_struct(ndr, name, "spoolss_DriverInfo2");
10928 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
10929 ndr_print_ptr(ndr, "driver_name", r->driver_name);
10931 if (r->driver_name) {
10932 ndr_print_string(ndr, "driver_name", r->driver_name);
10935 ndr_print_ptr(ndr, "architecture", r->architecture);
10937 if (r->architecture) {
10938 ndr_print_string(ndr, "architecture", r->architecture);
10941 ndr_print_ptr(ndr, "driver_path", r->driver_path);
10943 if (r->driver_path) {
10944 ndr_print_string(ndr, "driver_path", r->driver_path);
10947 ndr_print_ptr(ndr, "data_file", r->data_file);
10949 if (r->data_file) {
10950 ndr_print_string(ndr, "data_file", r->data_file);
10953 ndr_print_ptr(ndr, "config_file", r->config_file);
10955 if (r->config_file) {
10956 ndr_print_string(ndr, "config_file", r->config_file);
10962 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo2(const struct spoolss_DriverInfo2 *r, struct smb_iconv_convenience *ic, int flags)
10964 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo2, ic);
10967 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo3 *r)
10969 if (ndr_flags & NDR_SCALARS) {
10970 NDR_CHECK(ndr_push_align(ndr, 5));
10971 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
10973 uint32_t _flags_save_string = ndr->flags;
10974 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10975 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
10976 ndr->flags = _flags_save_string;
10979 uint32_t _flags_save_string = ndr->flags;
10980 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10981 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
10982 ndr->flags = _flags_save_string;
10985 uint32_t _flags_save_string = ndr->flags;
10986 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10987 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
10988 ndr->flags = _flags_save_string;
10991 uint32_t _flags_save_string = ndr->flags;
10992 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10993 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
10994 ndr->flags = _flags_save_string;
10997 uint32_t _flags_save_string = ndr->flags;
10998 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10999 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
11000 ndr->flags = _flags_save_string;
11003 uint32_t _flags_save_string = ndr->flags;
11004 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11005 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
11006 ndr->flags = _flags_save_string;
11009 uint32_t _flags_save_string_array = ndr->flags;
11010 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11011 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
11012 ndr->flags = _flags_save_string_array;
11015 uint32_t _flags_save_string = ndr->flags;
11016 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11017 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
11018 ndr->flags = _flags_save_string;
11021 uint32_t _flags_save_string = ndr->flags;
11022 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11023 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
11024 ndr->flags = _flags_save_string;
11026 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
11028 if (ndr_flags & NDR_BUFFERS) {
11030 uint32_t _flags_save_string = ndr->flags;
11031 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11032 if (r->driver_name) {
11033 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
11034 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
11036 ndr->flags = _flags_save_string;
11039 uint32_t _flags_save_string = ndr->flags;
11040 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11041 if (r->architecture) {
11042 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
11043 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
11045 ndr->flags = _flags_save_string;
11048 uint32_t _flags_save_string = ndr->flags;
11049 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11050 if (r->driver_path) {
11051 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
11052 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
11054 ndr->flags = _flags_save_string;
11057 uint32_t _flags_save_string = ndr->flags;
11058 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11059 if (r->data_file) {
11060 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
11061 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
11063 ndr->flags = _flags_save_string;
11066 uint32_t _flags_save_string = ndr->flags;
11067 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11068 if (r->config_file) {
11069 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
11070 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
11072 ndr->flags = _flags_save_string;
11075 uint32_t _flags_save_string = ndr->flags;
11076 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11077 if (r->help_file) {
11078 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
11079 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
11081 ndr->flags = _flags_save_string;
11084 uint32_t _flags_save_string_array = ndr->flags;
11085 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11086 if (r->dependent_files) {
11087 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
11088 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
11090 ndr->flags = _flags_save_string_array;
11093 uint32_t _flags_save_string = ndr->flags;
11094 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11095 if (r->monitor_name) {
11096 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
11097 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
11099 ndr->flags = _flags_save_string;
11102 uint32_t _flags_save_string = ndr->flags;
11103 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11104 if (r->default_datatype) {
11105 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
11106 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
11108 ndr->flags = _flags_save_string;
11111 return NDR_ERR_SUCCESS;
11114 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo3 *r)
11116 uint32_t _ptr_driver_name;
11117 TALLOC_CTX *_mem_save_driver_name_0;
11118 uint32_t _ptr_architecture;
11119 TALLOC_CTX *_mem_save_architecture_0;
11120 uint32_t _ptr_driver_path;
11121 TALLOC_CTX *_mem_save_driver_path_0;
11122 uint32_t _ptr_data_file;
11123 TALLOC_CTX *_mem_save_data_file_0;
11124 uint32_t _ptr_config_file;
11125 TALLOC_CTX *_mem_save_config_file_0;
11126 uint32_t _ptr_help_file;
11127 TALLOC_CTX *_mem_save_help_file_0;
11128 uint32_t _ptr_dependent_files;
11129 TALLOC_CTX *_mem_save_dependent_files_0;
11130 uint32_t _ptr_monitor_name;
11131 TALLOC_CTX *_mem_save_monitor_name_0;
11132 uint32_t _ptr_default_datatype;
11133 TALLOC_CTX *_mem_save_default_datatype_0;
11134 if (ndr_flags & NDR_SCALARS) {
11135 NDR_CHECK(ndr_pull_align(ndr, 5));
11136 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
11138 uint32_t _flags_save_string = ndr->flags;
11139 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11140 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
11141 if (_ptr_driver_name) {
11142 NDR_PULL_ALLOC(ndr, r->driver_name);
11143 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
11145 r->driver_name = NULL;
11147 ndr->flags = _flags_save_string;
11150 uint32_t _flags_save_string = ndr->flags;
11151 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11152 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
11153 if (_ptr_architecture) {
11154 NDR_PULL_ALLOC(ndr, r->architecture);
11155 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
11157 r->architecture = NULL;
11159 ndr->flags = _flags_save_string;
11162 uint32_t _flags_save_string = ndr->flags;
11163 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11164 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
11165 if (_ptr_driver_path) {
11166 NDR_PULL_ALLOC(ndr, r->driver_path);
11167 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
11169 r->driver_path = NULL;
11171 ndr->flags = _flags_save_string;
11174 uint32_t _flags_save_string = ndr->flags;
11175 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11176 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
11177 if (_ptr_data_file) {
11178 NDR_PULL_ALLOC(ndr, r->data_file);
11179 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
11181 r->data_file = NULL;
11183 ndr->flags = _flags_save_string;
11186 uint32_t _flags_save_string = ndr->flags;
11187 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11188 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
11189 if (_ptr_config_file) {
11190 NDR_PULL_ALLOC(ndr, r->config_file);
11191 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
11193 r->config_file = NULL;
11195 ndr->flags = _flags_save_string;
11198 uint32_t _flags_save_string = ndr->flags;
11199 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11200 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
11201 if (_ptr_help_file) {
11202 NDR_PULL_ALLOC(ndr, r->help_file);
11203 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
11205 r->help_file = NULL;
11207 ndr->flags = _flags_save_string;
11210 uint32_t _flags_save_string_array = ndr->flags;
11211 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11212 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
11213 if (_ptr_dependent_files) {
11214 NDR_PULL_ALLOC(ndr, r->dependent_files);
11215 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
11217 r->dependent_files = NULL;
11219 ndr->flags = _flags_save_string_array;
11222 uint32_t _flags_save_string = ndr->flags;
11223 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11224 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
11225 if (_ptr_monitor_name) {
11226 NDR_PULL_ALLOC(ndr, r->monitor_name);
11227 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
11229 r->monitor_name = NULL;
11231 ndr->flags = _flags_save_string;
11234 uint32_t _flags_save_string = ndr->flags;
11235 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11236 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
11237 if (_ptr_default_datatype) {
11238 NDR_PULL_ALLOC(ndr, r->default_datatype);
11239 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
11241 r->default_datatype = NULL;
11243 ndr->flags = _flags_save_string;
11245 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
11247 if (ndr_flags & NDR_BUFFERS) {
11249 uint32_t _flags_save_string = ndr->flags;
11250 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11251 if (r->driver_name) {
11252 uint32_t _relative_save_offset;
11253 _relative_save_offset = ndr->offset;
11254 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
11255 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11256 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
11257 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
11258 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
11259 if (ndr->offset > ndr->relative_highest_offset) {
11260 ndr->relative_highest_offset = ndr->offset;
11262 ndr->offset = _relative_save_offset;
11264 ndr->flags = _flags_save_string;
11267 uint32_t _flags_save_string = ndr->flags;
11268 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11269 if (r->architecture) {
11270 uint32_t _relative_save_offset;
11271 _relative_save_offset = ndr->offset;
11272 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
11273 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
11274 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
11275 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
11276 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
11277 if (ndr->offset > ndr->relative_highest_offset) {
11278 ndr->relative_highest_offset = ndr->offset;
11280 ndr->offset = _relative_save_offset;
11282 ndr->flags = _flags_save_string;
11285 uint32_t _flags_save_string = ndr->flags;
11286 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11287 if (r->driver_path) {
11288 uint32_t _relative_save_offset;
11289 _relative_save_offset = ndr->offset;
11290 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
11291 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
11292 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
11293 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
11294 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
11295 if (ndr->offset > ndr->relative_highest_offset) {
11296 ndr->relative_highest_offset = ndr->offset;
11298 ndr->offset = _relative_save_offset;
11300 ndr->flags = _flags_save_string;
11303 uint32_t _flags_save_string = ndr->flags;
11304 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11305 if (r->data_file) {
11306 uint32_t _relative_save_offset;
11307 _relative_save_offset = ndr->offset;
11308 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
11309 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11310 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
11311 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
11312 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
11313 if (ndr->offset > ndr->relative_highest_offset) {
11314 ndr->relative_highest_offset = ndr->offset;
11316 ndr->offset = _relative_save_offset;
11318 ndr->flags = _flags_save_string;
11321 uint32_t _flags_save_string = ndr->flags;
11322 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11323 if (r->config_file) {
11324 uint32_t _relative_save_offset;
11325 _relative_save_offset = ndr->offset;
11326 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
11327 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11328 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
11329 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
11330 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
11331 if (ndr->offset > ndr->relative_highest_offset) {
11332 ndr->relative_highest_offset = ndr->offset;
11334 ndr->offset = _relative_save_offset;
11336 ndr->flags = _flags_save_string;
11339 uint32_t _flags_save_string = ndr->flags;
11340 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11341 if (r->help_file) {
11342 uint32_t _relative_save_offset;
11343 _relative_save_offset = ndr->offset;
11344 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
11345 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11346 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
11347 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
11348 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
11349 if (ndr->offset > ndr->relative_highest_offset) {
11350 ndr->relative_highest_offset = ndr->offset;
11352 ndr->offset = _relative_save_offset;
11354 ndr->flags = _flags_save_string;
11357 uint32_t _flags_save_string_array = ndr->flags;
11358 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11359 if (r->dependent_files) {
11360 uint32_t _relative_save_offset;
11361 _relative_save_offset = ndr->offset;
11362 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
11363 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
11364 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
11365 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
11366 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
11367 if (ndr->offset > ndr->relative_highest_offset) {
11368 ndr->relative_highest_offset = ndr->offset;
11370 ndr->offset = _relative_save_offset;
11372 ndr->flags = _flags_save_string_array;
11375 uint32_t _flags_save_string = ndr->flags;
11376 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11377 if (r->monitor_name) {
11378 uint32_t _relative_save_offset;
11379 _relative_save_offset = ndr->offset;
11380 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
11381 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11382 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
11383 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
11384 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
11385 if (ndr->offset > ndr->relative_highest_offset) {
11386 ndr->relative_highest_offset = ndr->offset;
11388 ndr->offset = _relative_save_offset;
11390 ndr->flags = _flags_save_string;
11393 uint32_t _flags_save_string = ndr->flags;
11394 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11395 if (r->default_datatype) {
11396 uint32_t _relative_save_offset;
11397 _relative_save_offset = ndr->offset;
11398 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
11399 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
11400 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
11401 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
11402 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
11403 if (ndr->offset > ndr->relative_highest_offset) {
11404 ndr->relative_highest_offset = ndr->offset;
11406 ndr->offset = _relative_save_offset;
11408 ndr->flags = _flags_save_string;
11411 return NDR_ERR_SUCCESS;
11414 _PUBLIC_ void ndr_print_spoolss_DriverInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo3 *r)
11416 ndr_print_struct(ndr, name, "spoolss_DriverInfo3");
11418 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
11419 ndr_print_ptr(ndr, "driver_name", r->driver_name);
11421 if (r->driver_name) {
11422 ndr_print_string(ndr, "driver_name", r->driver_name);
11425 ndr_print_ptr(ndr, "architecture", r->architecture);
11427 if (r->architecture) {
11428 ndr_print_string(ndr, "architecture", r->architecture);
11431 ndr_print_ptr(ndr, "driver_path", r->driver_path);
11433 if (r->driver_path) {
11434 ndr_print_string(ndr, "driver_path", r->driver_path);
11437 ndr_print_ptr(ndr, "data_file", r->data_file);
11439 if (r->data_file) {
11440 ndr_print_string(ndr, "data_file", r->data_file);
11443 ndr_print_ptr(ndr, "config_file", r->config_file);
11445 if (r->config_file) {
11446 ndr_print_string(ndr, "config_file", r->config_file);
11449 ndr_print_ptr(ndr, "help_file", r->help_file);
11451 if (r->help_file) {
11452 ndr_print_string(ndr, "help_file", r->help_file);
11455 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
11457 if (r->dependent_files) {
11458 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
11461 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
11463 if (r->monitor_name) {
11464 ndr_print_string(ndr, "monitor_name", r->monitor_name);
11467 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
11469 if (r->default_datatype) {
11470 ndr_print_string(ndr, "default_datatype", r->default_datatype);
11476 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo3(const struct spoolss_DriverInfo3 *r, struct smb_iconv_convenience *ic, int flags)
11478 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo3, ic);
11481 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo4 *r)
11483 if (ndr_flags & NDR_SCALARS) {
11484 NDR_CHECK(ndr_push_align(ndr, 5));
11485 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
11487 uint32_t _flags_save_string = ndr->flags;
11488 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11489 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
11490 ndr->flags = _flags_save_string;
11493 uint32_t _flags_save_string = ndr->flags;
11494 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11495 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
11496 ndr->flags = _flags_save_string;
11499 uint32_t _flags_save_string = ndr->flags;
11500 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11501 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
11502 ndr->flags = _flags_save_string;
11505 uint32_t _flags_save_string = ndr->flags;
11506 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11507 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
11508 ndr->flags = _flags_save_string;
11511 uint32_t _flags_save_string = ndr->flags;
11512 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11513 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
11514 ndr->flags = _flags_save_string;
11517 uint32_t _flags_save_string = ndr->flags;
11518 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11519 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
11520 ndr->flags = _flags_save_string;
11523 uint32_t _flags_save_string_array = ndr->flags;
11524 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11525 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
11526 ndr->flags = _flags_save_string_array;
11529 uint32_t _flags_save_string = ndr->flags;
11530 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11531 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
11532 ndr->flags = _flags_save_string;
11535 uint32_t _flags_save_string = ndr->flags;
11536 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11537 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
11538 ndr->flags = _flags_save_string;
11541 uint32_t _flags_save_string_array = ndr->flags;
11542 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11543 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
11544 ndr->flags = _flags_save_string_array;
11546 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
11548 if (ndr_flags & NDR_BUFFERS) {
11550 uint32_t _flags_save_string = ndr->flags;
11551 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11552 if (r->driver_name) {
11553 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
11554 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
11556 ndr->flags = _flags_save_string;
11559 uint32_t _flags_save_string = ndr->flags;
11560 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11561 if (r->architecture) {
11562 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
11563 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
11565 ndr->flags = _flags_save_string;
11568 uint32_t _flags_save_string = ndr->flags;
11569 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11570 if (r->driver_path) {
11571 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
11572 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
11574 ndr->flags = _flags_save_string;
11577 uint32_t _flags_save_string = ndr->flags;
11578 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11579 if (r->data_file) {
11580 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
11581 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
11583 ndr->flags = _flags_save_string;
11586 uint32_t _flags_save_string = ndr->flags;
11587 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11588 if (r->config_file) {
11589 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
11590 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
11592 ndr->flags = _flags_save_string;
11595 uint32_t _flags_save_string = ndr->flags;
11596 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11597 if (r->help_file) {
11598 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
11599 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
11601 ndr->flags = _flags_save_string;
11604 uint32_t _flags_save_string_array = ndr->flags;
11605 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11606 if (r->dependent_files) {
11607 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
11608 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
11610 ndr->flags = _flags_save_string_array;
11613 uint32_t _flags_save_string = ndr->flags;
11614 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11615 if (r->monitor_name) {
11616 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
11617 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
11619 ndr->flags = _flags_save_string;
11622 uint32_t _flags_save_string = ndr->flags;
11623 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11624 if (r->default_datatype) {
11625 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
11626 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
11628 ndr->flags = _flags_save_string;
11631 uint32_t _flags_save_string_array = ndr->flags;
11632 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11633 if (r->previous_names) {
11634 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->previous_names));
11635 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
11637 ndr->flags = _flags_save_string_array;
11640 return NDR_ERR_SUCCESS;
11643 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo4 *r)
11645 uint32_t _ptr_driver_name;
11646 TALLOC_CTX *_mem_save_driver_name_0;
11647 uint32_t _ptr_architecture;
11648 TALLOC_CTX *_mem_save_architecture_0;
11649 uint32_t _ptr_driver_path;
11650 TALLOC_CTX *_mem_save_driver_path_0;
11651 uint32_t _ptr_data_file;
11652 TALLOC_CTX *_mem_save_data_file_0;
11653 uint32_t _ptr_config_file;
11654 TALLOC_CTX *_mem_save_config_file_0;
11655 uint32_t _ptr_help_file;
11656 TALLOC_CTX *_mem_save_help_file_0;
11657 uint32_t _ptr_dependent_files;
11658 TALLOC_CTX *_mem_save_dependent_files_0;
11659 uint32_t _ptr_monitor_name;
11660 TALLOC_CTX *_mem_save_monitor_name_0;
11661 uint32_t _ptr_default_datatype;
11662 TALLOC_CTX *_mem_save_default_datatype_0;
11663 uint32_t _ptr_previous_names;
11664 TALLOC_CTX *_mem_save_previous_names_0;
11665 if (ndr_flags & NDR_SCALARS) {
11666 NDR_CHECK(ndr_pull_align(ndr, 5));
11667 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
11669 uint32_t _flags_save_string = ndr->flags;
11670 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11671 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
11672 if (_ptr_driver_name) {
11673 NDR_PULL_ALLOC(ndr, r->driver_name);
11674 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
11676 r->driver_name = NULL;
11678 ndr->flags = _flags_save_string;
11681 uint32_t _flags_save_string = ndr->flags;
11682 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11683 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
11684 if (_ptr_architecture) {
11685 NDR_PULL_ALLOC(ndr, r->architecture);
11686 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
11688 r->architecture = NULL;
11690 ndr->flags = _flags_save_string;
11693 uint32_t _flags_save_string = ndr->flags;
11694 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11695 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
11696 if (_ptr_driver_path) {
11697 NDR_PULL_ALLOC(ndr, r->driver_path);
11698 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
11700 r->driver_path = NULL;
11702 ndr->flags = _flags_save_string;
11705 uint32_t _flags_save_string = ndr->flags;
11706 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11707 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
11708 if (_ptr_data_file) {
11709 NDR_PULL_ALLOC(ndr, r->data_file);
11710 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
11712 r->data_file = NULL;
11714 ndr->flags = _flags_save_string;
11717 uint32_t _flags_save_string = ndr->flags;
11718 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11719 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
11720 if (_ptr_config_file) {
11721 NDR_PULL_ALLOC(ndr, r->config_file);
11722 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
11724 r->config_file = NULL;
11726 ndr->flags = _flags_save_string;
11729 uint32_t _flags_save_string = ndr->flags;
11730 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11731 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
11732 if (_ptr_help_file) {
11733 NDR_PULL_ALLOC(ndr, r->help_file);
11734 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
11736 r->help_file = NULL;
11738 ndr->flags = _flags_save_string;
11741 uint32_t _flags_save_string_array = ndr->flags;
11742 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11743 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
11744 if (_ptr_dependent_files) {
11745 NDR_PULL_ALLOC(ndr, r->dependent_files);
11746 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
11748 r->dependent_files = NULL;
11750 ndr->flags = _flags_save_string_array;
11753 uint32_t _flags_save_string = ndr->flags;
11754 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11755 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
11756 if (_ptr_monitor_name) {
11757 NDR_PULL_ALLOC(ndr, r->monitor_name);
11758 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
11760 r->monitor_name = NULL;
11762 ndr->flags = _flags_save_string;
11765 uint32_t _flags_save_string = ndr->flags;
11766 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11767 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
11768 if (_ptr_default_datatype) {
11769 NDR_PULL_ALLOC(ndr, r->default_datatype);
11770 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
11772 r->default_datatype = NULL;
11774 ndr->flags = _flags_save_string;
11777 uint32_t _flags_save_string_array = ndr->flags;
11778 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11779 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
11780 if (_ptr_previous_names) {
11781 NDR_PULL_ALLOC(ndr, r->previous_names);
11782 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
11784 r->previous_names = NULL;
11786 ndr->flags = _flags_save_string_array;
11788 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
11790 if (ndr_flags & NDR_BUFFERS) {
11792 uint32_t _flags_save_string = ndr->flags;
11793 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11794 if (r->driver_name) {
11795 uint32_t _relative_save_offset;
11796 _relative_save_offset = ndr->offset;
11797 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
11798 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11799 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
11800 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
11801 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
11802 if (ndr->offset > ndr->relative_highest_offset) {
11803 ndr->relative_highest_offset = ndr->offset;
11805 ndr->offset = _relative_save_offset;
11807 ndr->flags = _flags_save_string;
11810 uint32_t _flags_save_string = ndr->flags;
11811 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11812 if (r->architecture) {
11813 uint32_t _relative_save_offset;
11814 _relative_save_offset = ndr->offset;
11815 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
11816 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
11817 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
11818 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
11819 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
11820 if (ndr->offset > ndr->relative_highest_offset) {
11821 ndr->relative_highest_offset = ndr->offset;
11823 ndr->offset = _relative_save_offset;
11825 ndr->flags = _flags_save_string;
11828 uint32_t _flags_save_string = ndr->flags;
11829 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11830 if (r->driver_path) {
11831 uint32_t _relative_save_offset;
11832 _relative_save_offset = ndr->offset;
11833 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
11834 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
11835 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
11836 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
11837 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
11838 if (ndr->offset > ndr->relative_highest_offset) {
11839 ndr->relative_highest_offset = ndr->offset;
11841 ndr->offset = _relative_save_offset;
11843 ndr->flags = _flags_save_string;
11846 uint32_t _flags_save_string = ndr->flags;
11847 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11848 if (r->data_file) {
11849 uint32_t _relative_save_offset;
11850 _relative_save_offset = ndr->offset;
11851 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
11852 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11853 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
11854 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
11855 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
11856 if (ndr->offset > ndr->relative_highest_offset) {
11857 ndr->relative_highest_offset = ndr->offset;
11859 ndr->offset = _relative_save_offset;
11861 ndr->flags = _flags_save_string;
11864 uint32_t _flags_save_string = ndr->flags;
11865 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11866 if (r->config_file) {
11867 uint32_t _relative_save_offset;
11868 _relative_save_offset = ndr->offset;
11869 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
11870 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11871 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
11872 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
11873 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
11874 if (ndr->offset > ndr->relative_highest_offset) {
11875 ndr->relative_highest_offset = ndr->offset;
11877 ndr->offset = _relative_save_offset;
11879 ndr->flags = _flags_save_string;
11882 uint32_t _flags_save_string = ndr->flags;
11883 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11884 if (r->help_file) {
11885 uint32_t _relative_save_offset;
11886 _relative_save_offset = ndr->offset;
11887 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
11888 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11889 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
11890 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
11891 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
11892 if (ndr->offset > ndr->relative_highest_offset) {
11893 ndr->relative_highest_offset = ndr->offset;
11895 ndr->offset = _relative_save_offset;
11897 ndr->flags = _flags_save_string;
11900 uint32_t _flags_save_string_array = ndr->flags;
11901 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11902 if (r->dependent_files) {
11903 uint32_t _relative_save_offset;
11904 _relative_save_offset = ndr->offset;
11905 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
11906 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
11907 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
11908 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
11909 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
11910 if (ndr->offset > ndr->relative_highest_offset) {
11911 ndr->relative_highest_offset = ndr->offset;
11913 ndr->offset = _relative_save_offset;
11915 ndr->flags = _flags_save_string_array;
11918 uint32_t _flags_save_string = ndr->flags;
11919 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11920 if (r->monitor_name) {
11921 uint32_t _relative_save_offset;
11922 _relative_save_offset = ndr->offset;
11923 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
11924 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11925 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
11926 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
11927 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
11928 if (ndr->offset > ndr->relative_highest_offset) {
11929 ndr->relative_highest_offset = ndr->offset;
11931 ndr->offset = _relative_save_offset;
11933 ndr->flags = _flags_save_string;
11936 uint32_t _flags_save_string = ndr->flags;
11937 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11938 if (r->default_datatype) {
11939 uint32_t _relative_save_offset;
11940 _relative_save_offset = ndr->offset;
11941 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
11942 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
11943 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
11944 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
11945 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
11946 if (ndr->offset > ndr->relative_highest_offset) {
11947 ndr->relative_highest_offset = ndr->offset;
11949 ndr->offset = _relative_save_offset;
11951 ndr->flags = _flags_save_string;
11954 uint32_t _flags_save_string_array = ndr->flags;
11955 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11956 if (r->previous_names) {
11957 uint32_t _relative_save_offset;
11958 _relative_save_offset = ndr->offset;
11959 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
11960 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
11961 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
11962 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
11963 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
11964 if (ndr->offset > ndr->relative_highest_offset) {
11965 ndr->relative_highest_offset = ndr->offset;
11967 ndr->offset = _relative_save_offset;
11969 ndr->flags = _flags_save_string_array;
11972 return NDR_ERR_SUCCESS;
11975 _PUBLIC_ void ndr_print_spoolss_DriverInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo4 *r)
11977 ndr_print_struct(ndr, name, "spoolss_DriverInfo4");
11979 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
11980 ndr_print_ptr(ndr, "driver_name", r->driver_name);
11982 if (r->driver_name) {
11983 ndr_print_string(ndr, "driver_name", r->driver_name);
11986 ndr_print_ptr(ndr, "architecture", r->architecture);
11988 if (r->architecture) {
11989 ndr_print_string(ndr, "architecture", r->architecture);
11992 ndr_print_ptr(ndr, "driver_path", r->driver_path);
11994 if (r->driver_path) {
11995 ndr_print_string(ndr, "driver_path", r->driver_path);
11998 ndr_print_ptr(ndr, "data_file", r->data_file);
12000 if (r->data_file) {
12001 ndr_print_string(ndr, "data_file", r->data_file);
12004 ndr_print_ptr(ndr, "config_file", r->config_file);
12006 if (r->config_file) {
12007 ndr_print_string(ndr, "config_file", r->config_file);
12010 ndr_print_ptr(ndr, "help_file", r->help_file);
12012 if (r->help_file) {
12013 ndr_print_string(ndr, "help_file", r->help_file);
12016 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
12018 if (r->dependent_files) {
12019 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
12022 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
12024 if (r->monitor_name) {
12025 ndr_print_string(ndr, "monitor_name", r->monitor_name);
12028 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
12030 if (r->default_datatype) {
12031 ndr_print_string(ndr, "default_datatype", r->default_datatype);
12034 ndr_print_ptr(ndr, "previous_names", r->previous_names);
12036 if (r->previous_names) {
12037 ndr_print_string_array(ndr, "previous_names", r->previous_names);
12043 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo4(const struct spoolss_DriverInfo4 *r, struct smb_iconv_convenience *ic, int flags)
12045 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo4, ic);
12048 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo5 *r)
12050 if (ndr_flags & NDR_SCALARS) {
12051 NDR_CHECK(ndr_push_align(ndr, 5));
12052 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
12054 uint32_t _flags_save_string = ndr->flags;
12055 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12056 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
12057 ndr->flags = _flags_save_string;
12060 uint32_t _flags_save_string = ndr->flags;
12061 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12062 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
12063 ndr->flags = _flags_save_string;
12066 uint32_t _flags_save_string = ndr->flags;
12067 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12068 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
12069 ndr->flags = _flags_save_string;
12072 uint32_t _flags_save_string = ndr->flags;
12073 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12074 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
12075 ndr->flags = _flags_save_string;
12078 uint32_t _flags_save_string = ndr->flags;
12079 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12080 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
12081 ndr->flags = _flags_save_string;
12083 NDR_CHECK(ndr_push_spoolss_DriverAttributes(ndr, NDR_SCALARS, r->driver_attributes));
12084 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->config_version));
12085 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->driver_version));
12086 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
12088 if (ndr_flags & NDR_BUFFERS) {
12090 uint32_t _flags_save_string = ndr->flags;
12091 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12092 if (r->driver_name) {
12093 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
12094 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
12096 ndr->flags = _flags_save_string;
12099 uint32_t _flags_save_string = ndr->flags;
12100 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12101 if (r->architecture) {
12102 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
12103 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
12105 ndr->flags = _flags_save_string;
12108 uint32_t _flags_save_string = ndr->flags;
12109 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12110 if (r->driver_path) {
12111 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
12112 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
12114 ndr->flags = _flags_save_string;
12117 uint32_t _flags_save_string = ndr->flags;
12118 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12119 if (r->data_file) {
12120 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
12121 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
12123 ndr->flags = _flags_save_string;
12126 uint32_t _flags_save_string = ndr->flags;
12127 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12128 if (r->config_file) {
12129 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
12130 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
12132 ndr->flags = _flags_save_string;
12135 return NDR_ERR_SUCCESS;
12138 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo5 *r)
12140 uint32_t _ptr_driver_name;
12141 TALLOC_CTX *_mem_save_driver_name_0;
12142 uint32_t _ptr_architecture;
12143 TALLOC_CTX *_mem_save_architecture_0;
12144 uint32_t _ptr_driver_path;
12145 TALLOC_CTX *_mem_save_driver_path_0;
12146 uint32_t _ptr_data_file;
12147 TALLOC_CTX *_mem_save_data_file_0;
12148 uint32_t _ptr_config_file;
12149 TALLOC_CTX *_mem_save_config_file_0;
12150 if (ndr_flags & NDR_SCALARS) {
12151 NDR_CHECK(ndr_pull_align(ndr, 5));
12152 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
12154 uint32_t _flags_save_string = ndr->flags;
12155 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12156 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
12157 if (_ptr_driver_name) {
12158 NDR_PULL_ALLOC(ndr, r->driver_name);
12159 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
12161 r->driver_name = NULL;
12163 ndr->flags = _flags_save_string;
12166 uint32_t _flags_save_string = ndr->flags;
12167 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12168 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
12169 if (_ptr_architecture) {
12170 NDR_PULL_ALLOC(ndr, r->architecture);
12171 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
12173 r->architecture = NULL;
12175 ndr->flags = _flags_save_string;
12178 uint32_t _flags_save_string = ndr->flags;
12179 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12180 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
12181 if (_ptr_driver_path) {
12182 NDR_PULL_ALLOC(ndr, r->driver_path);
12183 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
12185 r->driver_path = NULL;
12187 ndr->flags = _flags_save_string;
12190 uint32_t _flags_save_string = ndr->flags;
12191 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12192 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
12193 if (_ptr_data_file) {
12194 NDR_PULL_ALLOC(ndr, r->data_file);
12195 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
12197 r->data_file = NULL;
12199 ndr->flags = _flags_save_string;
12202 uint32_t _flags_save_string = ndr->flags;
12203 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12204 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
12205 if (_ptr_config_file) {
12206 NDR_PULL_ALLOC(ndr, r->config_file);
12207 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
12209 r->config_file = NULL;
12211 ndr->flags = _flags_save_string;
12213 NDR_CHECK(ndr_pull_spoolss_DriverAttributes(ndr, NDR_SCALARS, &r->driver_attributes));
12214 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->config_version));
12215 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->driver_version));
12216 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
12218 if (ndr_flags & NDR_BUFFERS) {
12220 uint32_t _flags_save_string = ndr->flags;
12221 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12222 if (r->driver_name) {
12223 uint32_t _relative_save_offset;
12224 _relative_save_offset = ndr->offset;
12225 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
12226 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12227 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
12228 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
12229 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
12230 if (ndr->offset > ndr->relative_highest_offset) {
12231 ndr->relative_highest_offset = ndr->offset;
12233 ndr->offset = _relative_save_offset;
12235 ndr->flags = _flags_save_string;
12238 uint32_t _flags_save_string = ndr->flags;
12239 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12240 if (r->architecture) {
12241 uint32_t _relative_save_offset;
12242 _relative_save_offset = ndr->offset;
12243 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
12244 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
12245 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
12246 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
12247 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
12248 if (ndr->offset > ndr->relative_highest_offset) {
12249 ndr->relative_highest_offset = ndr->offset;
12251 ndr->offset = _relative_save_offset;
12253 ndr->flags = _flags_save_string;
12256 uint32_t _flags_save_string = ndr->flags;
12257 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12258 if (r->driver_path) {
12259 uint32_t _relative_save_offset;
12260 _relative_save_offset = ndr->offset;
12261 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
12262 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
12263 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
12264 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
12265 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
12266 if (ndr->offset > ndr->relative_highest_offset) {
12267 ndr->relative_highest_offset = ndr->offset;
12269 ndr->offset = _relative_save_offset;
12271 ndr->flags = _flags_save_string;
12274 uint32_t _flags_save_string = ndr->flags;
12275 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12276 if (r->data_file) {
12277 uint32_t _relative_save_offset;
12278 _relative_save_offset = ndr->offset;
12279 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
12280 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12281 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
12282 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
12283 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
12284 if (ndr->offset > ndr->relative_highest_offset) {
12285 ndr->relative_highest_offset = ndr->offset;
12287 ndr->offset = _relative_save_offset;
12289 ndr->flags = _flags_save_string;
12292 uint32_t _flags_save_string = ndr->flags;
12293 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12294 if (r->config_file) {
12295 uint32_t _relative_save_offset;
12296 _relative_save_offset = ndr->offset;
12297 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
12298 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12299 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
12300 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
12301 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
12302 if (ndr->offset > ndr->relative_highest_offset) {
12303 ndr->relative_highest_offset = ndr->offset;
12305 ndr->offset = _relative_save_offset;
12307 ndr->flags = _flags_save_string;
12310 return NDR_ERR_SUCCESS;
12313 _PUBLIC_ void ndr_print_spoolss_DriverInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo5 *r)
12315 ndr_print_struct(ndr, name, "spoolss_DriverInfo5");
12317 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
12318 ndr_print_ptr(ndr, "driver_name", r->driver_name);
12320 if (r->driver_name) {
12321 ndr_print_string(ndr, "driver_name", r->driver_name);
12324 ndr_print_ptr(ndr, "architecture", r->architecture);
12326 if (r->architecture) {
12327 ndr_print_string(ndr, "architecture", r->architecture);
12330 ndr_print_ptr(ndr, "driver_path", r->driver_path);
12332 if (r->driver_path) {
12333 ndr_print_string(ndr, "driver_path", r->driver_path);
12336 ndr_print_ptr(ndr, "data_file", r->data_file);
12338 if (r->data_file) {
12339 ndr_print_string(ndr, "data_file", r->data_file);
12342 ndr_print_ptr(ndr, "config_file", r->config_file);
12344 if (r->config_file) {
12345 ndr_print_string(ndr, "config_file", r->config_file);
12348 ndr_print_spoolss_DriverAttributes(ndr, "driver_attributes", r->driver_attributes);
12349 ndr_print_uint32(ndr, "config_version", r->config_version);
12350 ndr_print_uint32(ndr, "driver_version", r->driver_version);
12354 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo5(const struct spoolss_DriverInfo5 *r, struct smb_iconv_convenience *ic, int flags)
12356 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo5, ic);
12359 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo6 *r)
12361 if (ndr_flags & NDR_SCALARS) {
12362 NDR_CHECK(ndr_push_align(ndr, 8));
12363 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
12365 uint32_t _flags_save_string = ndr->flags;
12366 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12367 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
12368 ndr->flags = _flags_save_string;
12371 uint32_t _flags_save_string = ndr->flags;
12372 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12373 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
12374 ndr->flags = _flags_save_string;
12377 uint32_t _flags_save_string = ndr->flags;
12378 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12379 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
12380 ndr->flags = _flags_save_string;
12383 uint32_t _flags_save_string = ndr->flags;
12384 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12385 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
12386 ndr->flags = _flags_save_string;
12389 uint32_t _flags_save_string = ndr->flags;
12390 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12391 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
12392 ndr->flags = _flags_save_string;
12395 uint32_t _flags_save_string = ndr->flags;
12396 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12397 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
12398 ndr->flags = _flags_save_string;
12401 uint32_t _flags_save_string_array = ndr->flags;
12402 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12403 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
12404 ndr->flags = _flags_save_string_array;
12407 uint32_t _flags_save_string = ndr->flags;
12408 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12409 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
12410 ndr->flags = _flags_save_string;
12413 uint32_t _flags_save_string = ndr->flags;
12414 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12415 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
12416 ndr->flags = _flags_save_string;
12419 uint32_t _flags_save_string_array = ndr->flags;
12420 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12421 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
12422 ndr->flags = _flags_save_string_array;
12424 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
12425 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
12427 uint32_t _flags_save_string = ndr->flags;
12428 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12429 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_name));
12430 ndr->flags = _flags_save_string;
12433 uint32_t _flags_save_string = ndr->flags;
12434 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12435 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_url));
12436 ndr->flags = _flags_save_string;
12439 uint32_t _flags_save_string = ndr->flags;
12440 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12441 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->hardware_id));
12442 ndr->flags = _flags_save_string;
12445 uint32_t _flags_save_string = ndr->flags;
12446 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12447 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->provider));
12448 ndr->flags = _flags_save_string;
12450 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
12452 if (ndr_flags & NDR_BUFFERS) {
12454 uint32_t _flags_save_string = ndr->flags;
12455 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12456 if (r->driver_name) {
12457 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
12458 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
12460 ndr->flags = _flags_save_string;
12463 uint32_t _flags_save_string = ndr->flags;
12464 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12465 if (r->architecture) {
12466 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
12467 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
12469 ndr->flags = _flags_save_string;
12472 uint32_t _flags_save_string = ndr->flags;
12473 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12474 if (r->driver_path) {
12475 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
12476 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
12478 ndr->flags = _flags_save_string;
12481 uint32_t _flags_save_string = ndr->flags;
12482 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12483 if (r->data_file) {
12484 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
12485 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
12487 ndr->flags = _flags_save_string;
12490 uint32_t _flags_save_string = ndr->flags;
12491 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12492 if (r->config_file) {
12493 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
12494 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
12496 ndr->flags = _flags_save_string;
12499 uint32_t _flags_save_string = ndr->flags;
12500 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12501 if (r->help_file) {
12502 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
12503 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
12505 ndr->flags = _flags_save_string;
12508 uint32_t _flags_save_string_array = ndr->flags;
12509 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12510 if (r->dependent_files) {
12511 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
12512 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
12514 ndr->flags = _flags_save_string_array;
12517 uint32_t _flags_save_string = ndr->flags;
12518 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12519 if (r->monitor_name) {
12520 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
12521 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
12523 ndr->flags = _flags_save_string;
12526 uint32_t _flags_save_string = ndr->flags;
12527 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12528 if (r->default_datatype) {
12529 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
12530 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
12532 ndr->flags = _flags_save_string;
12535 uint32_t _flags_save_string_array = ndr->flags;
12536 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12537 if (r->previous_names) {
12538 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->previous_names));
12539 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
12541 ndr->flags = _flags_save_string_array;
12544 uint32_t _flags_save_string = ndr->flags;
12545 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12546 if (r->manufacturer_name) {
12547 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_name));
12548 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_name));
12550 ndr->flags = _flags_save_string;
12553 uint32_t _flags_save_string = ndr->flags;
12554 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12555 if (r->manufacturer_url) {
12556 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_url));
12557 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_url));
12559 ndr->flags = _flags_save_string;
12562 uint32_t _flags_save_string = ndr->flags;
12563 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12564 if (r->hardware_id) {
12565 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->hardware_id));
12566 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->hardware_id));
12568 ndr->flags = _flags_save_string;
12571 uint32_t _flags_save_string = ndr->flags;
12572 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12574 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->provider));
12575 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->provider));
12577 ndr->flags = _flags_save_string;
12580 return NDR_ERR_SUCCESS;
12583 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo6 *r)
12585 uint32_t _ptr_driver_name;
12586 TALLOC_CTX *_mem_save_driver_name_0;
12587 uint32_t _ptr_architecture;
12588 TALLOC_CTX *_mem_save_architecture_0;
12589 uint32_t _ptr_driver_path;
12590 TALLOC_CTX *_mem_save_driver_path_0;
12591 uint32_t _ptr_data_file;
12592 TALLOC_CTX *_mem_save_data_file_0;
12593 uint32_t _ptr_config_file;
12594 TALLOC_CTX *_mem_save_config_file_0;
12595 uint32_t _ptr_help_file;
12596 TALLOC_CTX *_mem_save_help_file_0;
12597 uint32_t _ptr_dependent_files;
12598 TALLOC_CTX *_mem_save_dependent_files_0;
12599 uint32_t _ptr_monitor_name;
12600 TALLOC_CTX *_mem_save_monitor_name_0;
12601 uint32_t _ptr_default_datatype;
12602 TALLOC_CTX *_mem_save_default_datatype_0;
12603 uint32_t _ptr_previous_names;
12604 TALLOC_CTX *_mem_save_previous_names_0;
12605 uint32_t _ptr_manufacturer_name;
12606 TALLOC_CTX *_mem_save_manufacturer_name_0;
12607 uint32_t _ptr_manufacturer_url;
12608 TALLOC_CTX *_mem_save_manufacturer_url_0;
12609 uint32_t _ptr_hardware_id;
12610 TALLOC_CTX *_mem_save_hardware_id_0;
12611 uint32_t _ptr_provider;
12612 TALLOC_CTX *_mem_save_provider_0;
12613 if (ndr_flags & NDR_SCALARS) {
12614 NDR_CHECK(ndr_pull_align(ndr, 8));
12615 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
12617 uint32_t _flags_save_string = ndr->flags;
12618 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12619 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
12620 if (_ptr_driver_name) {
12621 NDR_PULL_ALLOC(ndr, r->driver_name);
12622 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
12624 r->driver_name = NULL;
12626 ndr->flags = _flags_save_string;
12629 uint32_t _flags_save_string = ndr->flags;
12630 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12631 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
12632 if (_ptr_architecture) {
12633 NDR_PULL_ALLOC(ndr, r->architecture);
12634 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
12636 r->architecture = NULL;
12638 ndr->flags = _flags_save_string;
12641 uint32_t _flags_save_string = ndr->flags;
12642 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12643 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
12644 if (_ptr_driver_path) {
12645 NDR_PULL_ALLOC(ndr, r->driver_path);
12646 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
12648 r->driver_path = NULL;
12650 ndr->flags = _flags_save_string;
12653 uint32_t _flags_save_string = ndr->flags;
12654 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12655 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
12656 if (_ptr_data_file) {
12657 NDR_PULL_ALLOC(ndr, r->data_file);
12658 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
12660 r->data_file = NULL;
12662 ndr->flags = _flags_save_string;
12665 uint32_t _flags_save_string = ndr->flags;
12666 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12667 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
12668 if (_ptr_config_file) {
12669 NDR_PULL_ALLOC(ndr, r->config_file);
12670 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
12672 r->config_file = NULL;
12674 ndr->flags = _flags_save_string;
12677 uint32_t _flags_save_string = ndr->flags;
12678 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12679 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
12680 if (_ptr_help_file) {
12681 NDR_PULL_ALLOC(ndr, r->help_file);
12682 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
12684 r->help_file = NULL;
12686 ndr->flags = _flags_save_string;
12689 uint32_t _flags_save_string_array = ndr->flags;
12690 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12691 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
12692 if (_ptr_dependent_files) {
12693 NDR_PULL_ALLOC(ndr, r->dependent_files);
12694 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
12696 r->dependent_files = NULL;
12698 ndr->flags = _flags_save_string_array;
12701 uint32_t _flags_save_string = ndr->flags;
12702 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12703 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
12704 if (_ptr_monitor_name) {
12705 NDR_PULL_ALLOC(ndr, r->monitor_name);
12706 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
12708 r->monitor_name = NULL;
12710 ndr->flags = _flags_save_string;
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_default_datatype));
12716 if (_ptr_default_datatype) {
12717 NDR_PULL_ALLOC(ndr, r->default_datatype);
12718 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
12720 r->default_datatype = NULL;
12722 ndr->flags = _flags_save_string;
12725 uint32_t _flags_save_string_array = ndr->flags;
12726 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12727 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
12728 if (_ptr_previous_names) {
12729 NDR_PULL_ALLOC(ndr, r->previous_names);
12730 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
12732 r->previous_names = NULL;
12734 ndr->flags = _flags_save_string_array;
12736 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
12737 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
12739 uint32_t _flags_save_string = ndr->flags;
12740 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12741 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
12742 if (_ptr_manufacturer_name) {
12743 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
12744 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_name, _ptr_manufacturer_name));
12746 r->manufacturer_name = NULL;
12748 ndr->flags = _flags_save_string;
12751 uint32_t _flags_save_string = ndr->flags;
12752 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12753 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
12754 if (_ptr_manufacturer_url) {
12755 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
12756 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_url, _ptr_manufacturer_url));
12758 r->manufacturer_url = NULL;
12760 ndr->flags = _flags_save_string;
12763 uint32_t _flags_save_string = ndr->flags;
12764 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12765 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
12766 if (_ptr_hardware_id) {
12767 NDR_PULL_ALLOC(ndr, r->hardware_id);
12768 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->hardware_id, _ptr_hardware_id));
12770 r->hardware_id = NULL;
12772 ndr->flags = _flags_save_string;
12775 uint32_t _flags_save_string = ndr->flags;
12776 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12777 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
12778 if (_ptr_provider) {
12779 NDR_PULL_ALLOC(ndr, r->provider);
12780 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->provider, _ptr_provider));
12782 r->provider = NULL;
12784 ndr->flags = _flags_save_string;
12786 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
12788 if (ndr_flags & NDR_BUFFERS) {
12790 uint32_t _flags_save_string = ndr->flags;
12791 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12792 if (r->driver_name) {
12793 uint32_t _relative_save_offset;
12794 _relative_save_offset = ndr->offset;
12795 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
12796 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12797 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
12798 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
12799 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
12800 if (ndr->offset > ndr->relative_highest_offset) {
12801 ndr->relative_highest_offset = ndr->offset;
12803 ndr->offset = _relative_save_offset;
12805 ndr->flags = _flags_save_string;
12808 uint32_t _flags_save_string = ndr->flags;
12809 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12810 if (r->architecture) {
12811 uint32_t _relative_save_offset;
12812 _relative_save_offset = ndr->offset;
12813 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
12814 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
12815 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
12816 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
12817 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
12818 if (ndr->offset > ndr->relative_highest_offset) {
12819 ndr->relative_highest_offset = ndr->offset;
12821 ndr->offset = _relative_save_offset;
12823 ndr->flags = _flags_save_string;
12826 uint32_t _flags_save_string = ndr->flags;
12827 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12828 if (r->driver_path) {
12829 uint32_t _relative_save_offset;
12830 _relative_save_offset = ndr->offset;
12831 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
12832 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
12833 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
12834 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
12835 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
12836 if (ndr->offset > ndr->relative_highest_offset) {
12837 ndr->relative_highest_offset = ndr->offset;
12839 ndr->offset = _relative_save_offset;
12841 ndr->flags = _flags_save_string;
12844 uint32_t _flags_save_string = ndr->flags;
12845 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12846 if (r->data_file) {
12847 uint32_t _relative_save_offset;
12848 _relative_save_offset = ndr->offset;
12849 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
12850 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12851 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
12852 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
12853 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
12854 if (ndr->offset > ndr->relative_highest_offset) {
12855 ndr->relative_highest_offset = ndr->offset;
12857 ndr->offset = _relative_save_offset;
12859 ndr->flags = _flags_save_string;
12862 uint32_t _flags_save_string = ndr->flags;
12863 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12864 if (r->config_file) {
12865 uint32_t _relative_save_offset;
12866 _relative_save_offset = ndr->offset;
12867 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
12868 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12869 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
12870 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
12871 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
12872 if (ndr->offset > ndr->relative_highest_offset) {
12873 ndr->relative_highest_offset = ndr->offset;
12875 ndr->offset = _relative_save_offset;
12877 ndr->flags = _flags_save_string;
12880 uint32_t _flags_save_string = ndr->flags;
12881 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12882 if (r->help_file) {
12883 uint32_t _relative_save_offset;
12884 _relative_save_offset = ndr->offset;
12885 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
12886 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12887 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
12888 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
12889 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
12890 if (ndr->offset > ndr->relative_highest_offset) {
12891 ndr->relative_highest_offset = ndr->offset;
12893 ndr->offset = _relative_save_offset;
12895 ndr->flags = _flags_save_string;
12898 uint32_t _flags_save_string_array = ndr->flags;
12899 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12900 if (r->dependent_files) {
12901 uint32_t _relative_save_offset;
12902 _relative_save_offset = ndr->offset;
12903 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
12904 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
12905 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
12906 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
12907 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
12908 if (ndr->offset > ndr->relative_highest_offset) {
12909 ndr->relative_highest_offset = ndr->offset;
12911 ndr->offset = _relative_save_offset;
12913 ndr->flags = _flags_save_string_array;
12916 uint32_t _flags_save_string = ndr->flags;
12917 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12918 if (r->monitor_name) {
12919 uint32_t _relative_save_offset;
12920 _relative_save_offset = ndr->offset;
12921 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
12922 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12923 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
12924 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
12925 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
12926 if (ndr->offset > ndr->relative_highest_offset) {
12927 ndr->relative_highest_offset = ndr->offset;
12929 ndr->offset = _relative_save_offset;
12931 ndr->flags = _flags_save_string;
12934 uint32_t _flags_save_string = ndr->flags;
12935 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12936 if (r->default_datatype) {
12937 uint32_t _relative_save_offset;
12938 _relative_save_offset = ndr->offset;
12939 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
12940 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
12941 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
12942 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
12943 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
12944 if (ndr->offset > ndr->relative_highest_offset) {
12945 ndr->relative_highest_offset = ndr->offset;
12947 ndr->offset = _relative_save_offset;
12949 ndr->flags = _flags_save_string;
12952 uint32_t _flags_save_string_array = ndr->flags;
12953 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12954 if (r->previous_names) {
12955 uint32_t _relative_save_offset;
12956 _relative_save_offset = ndr->offset;
12957 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
12958 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
12959 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
12960 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
12961 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
12962 if (ndr->offset > ndr->relative_highest_offset) {
12963 ndr->relative_highest_offset = ndr->offset;
12965 ndr->offset = _relative_save_offset;
12967 ndr->flags = _flags_save_string_array;
12970 uint32_t _flags_save_string = ndr->flags;
12971 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12972 if (r->manufacturer_name) {
12973 uint32_t _relative_save_offset;
12974 _relative_save_offset = ndr->offset;
12975 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_name));
12976 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12977 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
12978 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_name));
12979 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
12980 if (ndr->offset > ndr->relative_highest_offset) {
12981 ndr->relative_highest_offset = ndr->offset;
12983 ndr->offset = _relative_save_offset;
12985 ndr->flags = _flags_save_string;
12988 uint32_t _flags_save_string = ndr->flags;
12989 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12990 if (r->manufacturer_url) {
12991 uint32_t _relative_save_offset;
12992 _relative_save_offset = ndr->offset;
12993 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_url));
12994 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
12995 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
12996 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_url));
12997 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
12998 if (ndr->offset > ndr->relative_highest_offset) {
12999 ndr->relative_highest_offset = ndr->offset;
13001 ndr->offset = _relative_save_offset;
13003 ndr->flags = _flags_save_string;
13006 uint32_t _flags_save_string = ndr->flags;
13007 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13008 if (r->hardware_id) {
13009 uint32_t _relative_save_offset;
13010 _relative_save_offset = ndr->offset;
13011 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->hardware_id));
13012 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
13013 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
13014 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->hardware_id));
13015 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
13016 if (ndr->offset > ndr->relative_highest_offset) {
13017 ndr->relative_highest_offset = ndr->offset;
13019 ndr->offset = _relative_save_offset;
13021 ndr->flags = _flags_save_string;
13024 uint32_t _flags_save_string = ndr->flags;
13025 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13027 uint32_t _relative_save_offset;
13028 _relative_save_offset = ndr->offset;
13029 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->provider));
13030 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
13031 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
13032 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->provider));
13033 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
13034 if (ndr->offset > ndr->relative_highest_offset) {
13035 ndr->relative_highest_offset = ndr->offset;
13037 ndr->offset = _relative_save_offset;
13039 ndr->flags = _flags_save_string;
13042 return NDR_ERR_SUCCESS;
13045 _PUBLIC_ void ndr_print_spoolss_DriverInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo6 *r)
13047 ndr_print_struct(ndr, name, "spoolss_DriverInfo6");
13049 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
13050 ndr_print_ptr(ndr, "driver_name", r->driver_name);
13052 if (r->driver_name) {
13053 ndr_print_string(ndr, "driver_name", r->driver_name);
13056 ndr_print_ptr(ndr, "architecture", r->architecture);
13058 if (r->architecture) {
13059 ndr_print_string(ndr, "architecture", r->architecture);
13062 ndr_print_ptr(ndr, "driver_path", r->driver_path);
13064 if (r->driver_path) {
13065 ndr_print_string(ndr, "driver_path", r->driver_path);
13068 ndr_print_ptr(ndr, "data_file", r->data_file);
13070 if (r->data_file) {
13071 ndr_print_string(ndr, "data_file", r->data_file);
13074 ndr_print_ptr(ndr, "config_file", r->config_file);
13076 if (r->config_file) {
13077 ndr_print_string(ndr, "config_file", r->config_file);
13080 ndr_print_ptr(ndr, "help_file", r->help_file);
13082 if (r->help_file) {
13083 ndr_print_string(ndr, "help_file", r->help_file);
13086 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
13088 if (r->dependent_files) {
13089 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
13092 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
13094 if (r->monitor_name) {
13095 ndr_print_string(ndr, "monitor_name", r->monitor_name);
13098 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
13100 if (r->default_datatype) {
13101 ndr_print_string(ndr, "default_datatype", r->default_datatype);
13104 ndr_print_ptr(ndr, "previous_names", r->previous_names);
13106 if (r->previous_names) {
13107 ndr_print_string_array(ndr, "previous_names", r->previous_names);
13110 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
13111 ndr_print_hyper(ndr, "driver_version", r->driver_version);
13112 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
13114 if (r->manufacturer_name) {
13115 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
13118 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
13120 if (r->manufacturer_url) {
13121 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
13124 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
13126 if (r->hardware_id) {
13127 ndr_print_string(ndr, "hardware_id", r->hardware_id);
13130 ndr_print_ptr(ndr, "provider", r->provider);
13133 ndr_print_string(ndr, "provider", r->provider);
13139 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo6(const struct spoolss_DriverInfo6 *r, struct smb_iconv_convenience *ic, int flags)
13141 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo6, ic);
13144 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo8(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo8 *r)
13146 if (ndr_flags & NDR_SCALARS) {
13147 NDR_CHECK(ndr_push_align(ndr, 8));
13148 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
13150 uint32_t _flags_save_string = ndr->flags;
13151 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13152 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
13153 ndr->flags = _flags_save_string;
13156 uint32_t _flags_save_string = ndr->flags;
13157 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13158 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
13159 ndr->flags = _flags_save_string;
13162 uint32_t _flags_save_string = ndr->flags;
13163 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13164 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
13165 ndr->flags = _flags_save_string;
13168 uint32_t _flags_save_string = ndr->flags;
13169 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13170 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
13171 ndr->flags = _flags_save_string;
13174 uint32_t _flags_save_string = ndr->flags;
13175 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13176 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
13177 ndr->flags = _flags_save_string;
13180 uint32_t _flags_save_string = ndr->flags;
13181 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13182 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
13183 ndr->flags = _flags_save_string;
13186 uint32_t _flags_save_string = ndr->flags;
13187 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13188 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
13189 ndr->flags = _flags_save_string;
13192 uint32_t _flags_save_string = ndr->flags;
13193 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13194 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
13195 ndr->flags = _flags_save_string;
13198 uint32_t _flags_save_string_array = ndr->flags;
13199 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13200 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
13201 ndr->flags = _flags_save_string_array;
13204 uint32_t _flags_save_string_array = ndr->flags;
13205 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13206 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
13207 ndr->flags = _flags_save_string_array;
13209 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
13210 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
13212 uint32_t _flags_save_string = ndr->flags;
13213 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13214 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_name));
13215 ndr->flags = _flags_save_string;
13218 uint32_t _flags_save_string = ndr->flags;
13219 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13220 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_url));
13221 ndr->flags = _flags_save_string;
13224 uint32_t _flags_save_string = ndr->flags;
13225 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13226 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->hardware_id));
13227 ndr->flags = _flags_save_string;
13230 uint32_t _flags_save_string = ndr->flags;
13231 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13232 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->provider));
13233 ndr->flags = _flags_save_string;
13236 uint32_t _flags_save_string = ndr->flags;
13237 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13238 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor));
13239 ndr->flags = _flags_save_string;
13242 uint32_t _flags_save_string = ndr->flags;
13243 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13244 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->vendor_setup));
13245 ndr->flags = _flags_save_string;
13248 uint32_t _flags_save_string_array = ndr->flags;
13249 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13250 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->color_profiles));
13251 ndr->flags = _flags_save_string_array;
13254 uint32_t _flags_save_string = ndr->flags;
13255 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13256 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->inf_path));
13257 ndr->flags = _flags_save_string;
13259 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->printer_driver_attributes));
13261 uint32_t _flags_save_string_array = ndr->flags;
13262 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13263 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->core_driver_dependencies));
13264 ndr->flags = _flags_save_string_array;
13266 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->min_inbox_driver_ver_date));
13267 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->min_inbox_driver_ver_version));
13268 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
13270 if (ndr_flags & NDR_BUFFERS) {
13272 uint32_t _flags_save_string = ndr->flags;
13273 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13274 if (r->driver_name) {
13275 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
13276 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
13278 ndr->flags = _flags_save_string;
13281 uint32_t _flags_save_string = ndr->flags;
13282 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13283 if (r->architecture) {
13284 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
13285 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
13287 ndr->flags = _flags_save_string;
13290 uint32_t _flags_save_string = ndr->flags;
13291 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13292 if (r->driver_path) {
13293 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
13294 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
13296 ndr->flags = _flags_save_string;
13299 uint32_t _flags_save_string = ndr->flags;
13300 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13301 if (r->data_file) {
13302 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
13303 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
13305 ndr->flags = _flags_save_string;
13308 uint32_t _flags_save_string = ndr->flags;
13309 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13310 if (r->config_file) {
13311 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
13312 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
13314 ndr->flags = _flags_save_string;
13317 uint32_t _flags_save_string = ndr->flags;
13318 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13319 if (r->help_file) {
13320 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
13321 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
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 if (r->monitor_name) {
13329 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
13330 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
13332 ndr->flags = _flags_save_string;
13335 uint32_t _flags_save_string = ndr->flags;
13336 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13337 if (r->default_datatype) {
13338 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
13339 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
13341 ndr->flags = _flags_save_string;
13344 uint32_t _flags_save_string_array = ndr->flags;
13345 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13346 if (r->dependent_files) {
13347 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
13348 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
13350 ndr->flags = _flags_save_string_array;
13353 uint32_t _flags_save_string_array = ndr->flags;
13354 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13355 if (r->previous_names) {
13356 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->previous_names));
13357 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
13359 ndr->flags = _flags_save_string_array;
13362 uint32_t _flags_save_string = ndr->flags;
13363 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13364 if (r->manufacturer_name) {
13365 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_name));
13366 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_name));
13368 ndr->flags = _flags_save_string;
13371 uint32_t _flags_save_string = ndr->flags;
13372 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13373 if (r->manufacturer_url) {
13374 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_url));
13375 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_url));
13377 ndr->flags = _flags_save_string;
13380 uint32_t _flags_save_string = ndr->flags;
13381 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13382 if (r->hardware_id) {
13383 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->hardware_id));
13384 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->hardware_id));
13386 ndr->flags = _flags_save_string;
13389 uint32_t _flags_save_string = ndr->flags;
13390 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13392 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->provider));
13393 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->provider));
13395 ndr->flags = _flags_save_string;
13398 uint32_t _flags_save_string = ndr->flags;
13399 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13400 if (r->print_processor) {
13401 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->print_processor));
13402 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor));
13404 ndr->flags = _flags_save_string;
13407 uint32_t _flags_save_string = ndr->flags;
13408 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13409 if (r->vendor_setup) {
13410 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->vendor_setup));
13411 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->vendor_setup));
13413 ndr->flags = _flags_save_string;
13416 uint32_t _flags_save_string_array = ndr->flags;
13417 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13418 if (r->color_profiles) {
13419 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->color_profiles));
13420 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->color_profiles));
13422 ndr->flags = _flags_save_string_array;
13425 uint32_t _flags_save_string = ndr->flags;
13426 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13428 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->inf_path));
13429 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->inf_path));
13431 ndr->flags = _flags_save_string;
13434 uint32_t _flags_save_string_array = ndr->flags;
13435 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13436 if (r->core_driver_dependencies) {
13437 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->core_driver_dependencies));
13438 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->core_driver_dependencies));
13440 ndr->flags = _flags_save_string_array;
13443 return NDR_ERR_SUCCESS;
13446 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo8(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo8 *r)
13448 uint32_t _ptr_driver_name;
13449 TALLOC_CTX *_mem_save_driver_name_0;
13450 uint32_t _ptr_architecture;
13451 TALLOC_CTX *_mem_save_architecture_0;
13452 uint32_t _ptr_driver_path;
13453 TALLOC_CTX *_mem_save_driver_path_0;
13454 uint32_t _ptr_data_file;
13455 TALLOC_CTX *_mem_save_data_file_0;
13456 uint32_t _ptr_config_file;
13457 TALLOC_CTX *_mem_save_config_file_0;
13458 uint32_t _ptr_help_file;
13459 TALLOC_CTX *_mem_save_help_file_0;
13460 uint32_t _ptr_monitor_name;
13461 TALLOC_CTX *_mem_save_monitor_name_0;
13462 uint32_t _ptr_default_datatype;
13463 TALLOC_CTX *_mem_save_default_datatype_0;
13464 uint32_t _ptr_dependent_files;
13465 TALLOC_CTX *_mem_save_dependent_files_0;
13466 uint32_t _ptr_previous_names;
13467 TALLOC_CTX *_mem_save_previous_names_0;
13468 uint32_t _ptr_manufacturer_name;
13469 TALLOC_CTX *_mem_save_manufacturer_name_0;
13470 uint32_t _ptr_manufacturer_url;
13471 TALLOC_CTX *_mem_save_manufacturer_url_0;
13472 uint32_t _ptr_hardware_id;
13473 TALLOC_CTX *_mem_save_hardware_id_0;
13474 uint32_t _ptr_provider;
13475 TALLOC_CTX *_mem_save_provider_0;
13476 uint32_t _ptr_print_processor;
13477 TALLOC_CTX *_mem_save_print_processor_0;
13478 uint32_t _ptr_vendor_setup;
13479 TALLOC_CTX *_mem_save_vendor_setup_0;
13480 uint32_t _ptr_color_profiles;
13481 TALLOC_CTX *_mem_save_color_profiles_0;
13482 uint32_t _ptr_inf_path;
13483 TALLOC_CTX *_mem_save_inf_path_0;
13484 uint32_t _ptr_core_driver_dependencies;
13485 TALLOC_CTX *_mem_save_core_driver_dependencies_0;
13486 if (ndr_flags & NDR_SCALARS) {
13487 NDR_CHECK(ndr_pull_align(ndr, 8));
13488 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
13490 uint32_t _flags_save_string = ndr->flags;
13491 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13492 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
13493 if (_ptr_driver_name) {
13494 NDR_PULL_ALLOC(ndr, r->driver_name);
13495 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
13497 r->driver_name = NULL;
13499 ndr->flags = _flags_save_string;
13502 uint32_t _flags_save_string = ndr->flags;
13503 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13504 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
13505 if (_ptr_architecture) {
13506 NDR_PULL_ALLOC(ndr, r->architecture);
13507 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
13509 r->architecture = NULL;
13511 ndr->flags = _flags_save_string;
13514 uint32_t _flags_save_string = ndr->flags;
13515 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13516 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
13517 if (_ptr_driver_path) {
13518 NDR_PULL_ALLOC(ndr, r->driver_path);
13519 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
13521 r->driver_path = NULL;
13523 ndr->flags = _flags_save_string;
13526 uint32_t _flags_save_string = ndr->flags;
13527 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13528 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
13529 if (_ptr_data_file) {
13530 NDR_PULL_ALLOC(ndr, r->data_file);
13531 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
13533 r->data_file = NULL;
13535 ndr->flags = _flags_save_string;
13538 uint32_t _flags_save_string = ndr->flags;
13539 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13540 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
13541 if (_ptr_config_file) {
13542 NDR_PULL_ALLOC(ndr, r->config_file);
13543 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
13545 r->config_file = NULL;
13547 ndr->flags = _flags_save_string;
13550 uint32_t _flags_save_string = ndr->flags;
13551 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13552 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
13553 if (_ptr_help_file) {
13554 NDR_PULL_ALLOC(ndr, r->help_file);
13555 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
13557 r->help_file = NULL;
13559 ndr->flags = _flags_save_string;
13562 uint32_t _flags_save_string = ndr->flags;
13563 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13564 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
13565 if (_ptr_monitor_name) {
13566 NDR_PULL_ALLOC(ndr, r->monitor_name);
13567 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
13569 r->monitor_name = NULL;
13571 ndr->flags = _flags_save_string;
13574 uint32_t _flags_save_string = ndr->flags;
13575 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13576 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
13577 if (_ptr_default_datatype) {
13578 NDR_PULL_ALLOC(ndr, r->default_datatype);
13579 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
13581 r->default_datatype = NULL;
13583 ndr->flags = _flags_save_string;
13586 uint32_t _flags_save_string_array = ndr->flags;
13587 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13588 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
13589 if (_ptr_dependent_files) {
13590 NDR_PULL_ALLOC(ndr, r->dependent_files);
13591 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
13593 r->dependent_files = NULL;
13595 ndr->flags = _flags_save_string_array;
13598 uint32_t _flags_save_string_array = ndr->flags;
13599 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13600 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
13601 if (_ptr_previous_names) {
13602 NDR_PULL_ALLOC(ndr, r->previous_names);
13603 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
13605 r->previous_names = NULL;
13607 ndr->flags = _flags_save_string_array;
13609 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
13610 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
13612 uint32_t _flags_save_string = ndr->flags;
13613 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13614 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
13615 if (_ptr_manufacturer_name) {
13616 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
13617 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_name, _ptr_manufacturer_name));
13619 r->manufacturer_name = NULL;
13621 ndr->flags = _flags_save_string;
13624 uint32_t _flags_save_string = ndr->flags;
13625 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13626 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
13627 if (_ptr_manufacturer_url) {
13628 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
13629 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_url, _ptr_manufacturer_url));
13631 r->manufacturer_url = NULL;
13633 ndr->flags = _flags_save_string;
13636 uint32_t _flags_save_string = ndr->flags;
13637 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13638 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
13639 if (_ptr_hardware_id) {
13640 NDR_PULL_ALLOC(ndr, r->hardware_id);
13641 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->hardware_id, _ptr_hardware_id));
13643 r->hardware_id = NULL;
13645 ndr->flags = _flags_save_string;
13648 uint32_t _flags_save_string = ndr->flags;
13649 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13650 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
13651 if (_ptr_provider) {
13652 NDR_PULL_ALLOC(ndr, r->provider);
13653 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->provider, _ptr_provider));
13655 r->provider = NULL;
13657 ndr->flags = _flags_save_string;
13660 uint32_t _flags_save_string = ndr->flags;
13661 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13662 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
13663 if (_ptr_print_processor) {
13664 NDR_PULL_ALLOC(ndr, r->print_processor);
13665 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor, _ptr_print_processor));
13667 r->print_processor = NULL;
13669 ndr->flags = _flags_save_string;
13672 uint32_t _flags_save_string = ndr->flags;
13673 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13674 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_vendor_setup));
13675 if (_ptr_vendor_setup) {
13676 NDR_PULL_ALLOC(ndr, r->vendor_setup);
13677 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->vendor_setup, _ptr_vendor_setup));
13679 r->vendor_setup = NULL;
13681 ndr->flags = _flags_save_string;
13684 uint32_t _flags_save_string_array = ndr->flags;
13685 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13686 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_color_profiles));
13687 if (_ptr_color_profiles) {
13688 NDR_PULL_ALLOC(ndr, r->color_profiles);
13689 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->color_profiles, _ptr_color_profiles));
13691 r->color_profiles = NULL;
13693 ndr->flags = _flags_save_string_array;
13696 uint32_t _flags_save_string = ndr->flags;
13697 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13698 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_inf_path));
13699 if (_ptr_inf_path) {
13700 NDR_PULL_ALLOC(ndr, r->inf_path);
13701 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->inf_path, _ptr_inf_path));
13703 r->inf_path = NULL;
13705 ndr->flags = _flags_save_string;
13707 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->printer_driver_attributes));
13709 uint32_t _flags_save_string_array = ndr->flags;
13710 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13711 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_core_driver_dependencies));
13712 if (_ptr_core_driver_dependencies) {
13713 NDR_PULL_ALLOC(ndr, r->core_driver_dependencies);
13714 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->core_driver_dependencies, _ptr_core_driver_dependencies));
13716 r->core_driver_dependencies = NULL;
13718 ndr->flags = _flags_save_string_array;
13720 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_date));
13721 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_version));
13722 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
13724 if (ndr_flags & NDR_BUFFERS) {
13726 uint32_t _flags_save_string = ndr->flags;
13727 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13728 if (r->driver_name) {
13729 uint32_t _relative_save_offset;
13730 _relative_save_offset = ndr->offset;
13731 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
13732 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13733 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
13734 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
13735 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
13736 if (ndr->offset > ndr->relative_highest_offset) {
13737 ndr->relative_highest_offset = ndr->offset;
13739 ndr->offset = _relative_save_offset;
13741 ndr->flags = _flags_save_string;
13744 uint32_t _flags_save_string = ndr->flags;
13745 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13746 if (r->architecture) {
13747 uint32_t _relative_save_offset;
13748 _relative_save_offset = ndr->offset;
13749 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
13750 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
13751 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
13752 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
13753 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
13754 if (ndr->offset > ndr->relative_highest_offset) {
13755 ndr->relative_highest_offset = ndr->offset;
13757 ndr->offset = _relative_save_offset;
13759 ndr->flags = _flags_save_string;
13762 uint32_t _flags_save_string = ndr->flags;
13763 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13764 if (r->driver_path) {
13765 uint32_t _relative_save_offset;
13766 _relative_save_offset = ndr->offset;
13767 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
13768 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
13769 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
13770 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
13771 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
13772 if (ndr->offset > ndr->relative_highest_offset) {
13773 ndr->relative_highest_offset = ndr->offset;
13775 ndr->offset = _relative_save_offset;
13777 ndr->flags = _flags_save_string;
13780 uint32_t _flags_save_string = ndr->flags;
13781 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13782 if (r->data_file) {
13783 uint32_t _relative_save_offset;
13784 _relative_save_offset = ndr->offset;
13785 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
13786 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
13787 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
13788 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
13789 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
13790 if (ndr->offset > ndr->relative_highest_offset) {
13791 ndr->relative_highest_offset = ndr->offset;
13793 ndr->offset = _relative_save_offset;
13795 ndr->flags = _flags_save_string;
13798 uint32_t _flags_save_string = ndr->flags;
13799 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13800 if (r->config_file) {
13801 uint32_t _relative_save_offset;
13802 _relative_save_offset = ndr->offset;
13803 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
13804 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
13805 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
13806 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
13807 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
13808 if (ndr->offset > ndr->relative_highest_offset) {
13809 ndr->relative_highest_offset = ndr->offset;
13811 ndr->offset = _relative_save_offset;
13813 ndr->flags = _flags_save_string;
13816 uint32_t _flags_save_string = ndr->flags;
13817 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13818 if (r->help_file) {
13819 uint32_t _relative_save_offset;
13820 _relative_save_offset = ndr->offset;
13821 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
13822 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
13823 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
13824 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
13825 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
13826 if (ndr->offset > ndr->relative_highest_offset) {
13827 ndr->relative_highest_offset = ndr->offset;
13829 ndr->offset = _relative_save_offset;
13831 ndr->flags = _flags_save_string;
13834 uint32_t _flags_save_string = ndr->flags;
13835 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13836 if (r->monitor_name) {
13837 uint32_t _relative_save_offset;
13838 _relative_save_offset = ndr->offset;
13839 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
13840 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13841 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
13842 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
13843 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
13844 if (ndr->offset > ndr->relative_highest_offset) {
13845 ndr->relative_highest_offset = ndr->offset;
13847 ndr->offset = _relative_save_offset;
13849 ndr->flags = _flags_save_string;
13852 uint32_t _flags_save_string = ndr->flags;
13853 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13854 if (r->default_datatype) {
13855 uint32_t _relative_save_offset;
13856 _relative_save_offset = ndr->offset;
13857 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
13858 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
13859 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
13860 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
13861 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
13862 if (ndr->offset > ndr->relative_highest_offset) {
13863 ndr->relative_highest_offset = ndr->offset;
13865 ndr->offset = _relative_save_offset;
13867 ndr->flags = _flags_save_string;
13870 uint32_t _flags_save_string_array = ndr->flags;
13871 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13872 if (r->dependent_files) {
13873 uint32_t _relative_save_offset;
13874 _relative_save_offset = ndr->offset;
13875 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
13876 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
13877 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
13878 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
13879 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
13880 if (ndr->offset > ndr->relative_highest_offset) {
13881 ndr->relative_highest_offset = ndr->offset;
13883 ndr->offset = _relative_save_offset;
13885 ndr->flags = _flags_save_string_array;
13888 uint32_t _flags_save_string_array = ndr->flags;
13889 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13890 if (r->previous_names) {
13891 uint32_t _relative_save_offset;
13892 _relative_save_offset = ndr->offset;
13893 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
13894 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
13895 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
13896 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
13897 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
13898 if (ndr->offset > ndr->relative_highest_offset) {
13899 ndr->relative_highest_offset = ndr->offset;
13901 ndr->offset = _relative_save_offset;
13903 ndr->flags = _flags_save_string_array;
13906 uint32_t _flags_save_string = ndr->flags;
13907 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13908 if (r->manufacturer_name) {
13909 uint32_t _relative_save_offset;
13910 _relative_save_offset = ndr->offset;
13911 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_name));
13912 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13913 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
13914 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_name));
13915 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
13916 if (ndr->offset > ndr->relative_highest_offset) {
13917 ndr->relative_highest_offset = ndr->offset;
13919 ndr->offset = _relative_save_offset;
13921 ndr->flags = _flags_save_string;
13924 uint32_t _flags_save_string = ndr->flags;
13925 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13926 if (r->manufacturer_url) {
13927 uint32_t _relative_save_offset;
13928 _relative_save_offset = ndr->offset;
13929 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_url));
13930 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
13931 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
13932 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_url));
13933 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
13934 if (ndr->offset > ndr->relative_highest_offset) {
13935 ndr->relative_highest_offset = ndr->offset;
13937 ndr->offset = _relative_save_offset;
13939 ndr->flags = _flags_save_string;
13942 uint32_t _flags_save_string = ndr->flags;
13943 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13944 if (r->hardware_id) {
13945 uint32_t _relative_save_offset;
13946 _relative_save_offset = ndr->offset;
13947 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->hardware_id));
13948 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
13949 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
13950 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->hardware_id));
13951 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
13952 if (ndr->offset > ndr->relative_highest_offset) {
13953 ndr->relative_highest_offset = ndr->offset;
13955 ndr->offset = _relative_save_offset;
13957 ndr->flags = _flags_save_string;
13960 uint32_t _flags_save_string = ndr->flags;
13961 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13963 uint32_t _relative_save_offset;
13964 _relative_save_offset = ndr->offset;
13965 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->provider));
13966 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
13967 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
13968 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->provider));
13969 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
13970 if (ndr->offset > ndr->relative_highest_offset) {
13971 ndr->relative_highest_offset = ndr->offset;
13973 ndr->offset = _relative_save_offset;
13975 ndr->flags = _flags_save_string;
13978 uint32_t _flags_save_string = ndr->flags;
13979 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13980 if (r->print_processor) {
13981 uint32_t _relative_save_offset;
13982 _relative_save_offset = ndr->offset;
13983 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor));
13984 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
13985 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
13986 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor));
13987 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
13988 if (ndr->offset > ndr->relative_highest_offset) {
13989 ndr->relative_highest_offset = ndr->offset;
13991 ndr->offset = _relative_save_offset;
13993 ndr->flags = _flags_save_string;
13996 uint32_t _flags_save_string = ndr->flags;
13997 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13998 if (r->vendor_setup) {
13999 uint32_t _relative_save_offset;
14000 _relative_save_offset = ndr->offset;
14001 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->vendor_setup));
14002 _mem_save_vendor_setup_0 = NDR_PULL_GET_MEM_CTX(ndr);
14003 NDR_PULL_SET_MEM_CTX(ndr, r->vendor_setup, 0);
14004 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->vendor_setup));
14005 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vendor_setup_0, 0);
14006 if (ndr->offset > ndr->relative_highest_offset) {
14007 ndr->relative_highest_offset = ndr->offset;
14009 ndr->offset = _relative_save_offset;
14011 ndr->flags = _flags_save_string;
14014 uint32_t _flags_save_string_array = ndr->flags;
14015 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14016 if (r->color_profiles) {
14017 uint32_t _relative_save_offset;
14018 _relative_save_offset = ndr->offset;
14019 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->color_profiles));
14020 _mem_save_color_profiles_0 = NDR_PULL_GET_MEM_CTX(ndr);
14021 NDR_PULL_SET_MEM_CTX(ndr, r->color_profiles, 0);
14022 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->color_profiles));
14023 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_color_profiles_0, 0);
14024 if (ndr->offset > ndr->relative_highest_offset) {
14025 ndr->relative_highest_offset = ndr->offset;
14027 ndr->offset = _relative_save_offset;
14029 ndr->flags = _flags_save_string_array;
14032 uint32_t _flags_save_string = ndr->flags;
14033 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14035 uint32_t _relative_save_offset;
14036 _relative_save_offset = ndr->offset;
14037 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->inf_path));
14038 _mem_save_inf_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
14039 NDR_PULL_SET_MEM_CTX(ndr, r->inf_path, 0);
14040 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->inf_path));
14041 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_inf_path_0, 0);
14042 if (ndr->offset > ndr->relative_highest_offset) {
14043 ndr->relative_highest_offset = ndr->offset;
14045 ndr->offset = _relative_save_offset;
14047 ndr->flags = _flags_save_string;
14050 uint32_t _flags_save_string_array = ndr->flags;
14051 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14052 if (r->core_driver_dependencies) {
14053 uint32_t _relative_save_offset;
14054 _relative_save_offset = ndr->offset;
14055 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->core_driver_dependencies));
14056 _mem_save_core_driver_dependencies_0 = NDR_PULL_GET_MEM_CTX(ndr);
14057 NDR_PULL_SET_MEM_CTX(ndr, r->core_driver_dependencies, 0);
14058 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->core_driver_dependencies));
14059 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_driver_dependencies_0, 0);
14060 if (ndr->offset > ndr->relative_highest_offset) {
14061 ndr->relative_highest_offset = ndr->offset;
14063 ndr->offset = _relative_save_offset;
14065 ndr->flags = _flags_save_string_array;
14068 return NDR_ERR_SUCCESS;
14071 _PUBLIC_ void ndr_print_spoolss_DriverInfo8(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo8 *r)
14073 ndr_print_struct(ndr, name, "spoolss_DriverInfo8");
14075 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
14076 ndr_print_ptr(ndr, "driver_name", r->driver_name);
14078 if (r->driver_name) {
14079 ndr_print_string(ndr, "driver_name", r->driver_name);
14082 ndr_print_ptr(ndr, "architecture", r->architecture);
14084 if (r->architecture) {
14085 ndr_print_string(ndr, "architecture", r->architecture);
14088 ndr_print_ptr(ndr, "driver_path", r->driver_path);
14090 if (r->driver_path) {
14091 ndr_print_string(ndr, "driver_path", r->driver_path);
14094 ndr_print_ptr(ndr, "data_file", r->data_file);
14096 if (r->data_file) {
14097 ndr_print_string(ndr, "data_file", r->data_file);
14100 ndr_print_ptr(ndr, "config_file", r->config_file);
14102 if (r->config_file) {
14103 ndr_print_string(ndr, "config_file", r->config_file);
14106 ndr_print_ptr(ndr, "help_file", r->help_file);
14108 if (r->help_file) {
14109 ndr_print_string(ndr, "help_file", r->help_file);
14112 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
14114 if (r->monitor_name) {
14115 ndr_print_string(ndr, "monitor_name", r->monitor_name);
14118 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
14120 if (r->default_datatype) {
14121 ndr_print_string(ndr, "default_datatype", r->default_datatype);
14124 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
14126 if (r->dependent_files) {
14127 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
14130 ndr_print_ptr(ndr, "previous_names", r->previous_names);
14132 if (r->previous_names) {
14133 ndr_print_string_array(ndr, "previous_names", r->previous_names);
14136 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
14137 ndr_print_hyper(ndr, "driver_version", r->driver_version);
14138 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
14140 if (r->manufacturer_name) {
14141 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
14144 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
14146 if (r->manufacturer_url) {
14147 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
14150 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
14152 if (r->hardware_id) {
14153 ndr_print_string(ndr, "hardware_id", r->hardware_id);
14156 ndr_print_ptr(ndr, "provider", r->provider);
14159 ndr_print_string(ndr, "provider", r->provider);
14162 ndr_print_ptr(ndr, "print_processor", r->print_processor);
14164 if (r->print_processor) {
14165 ndr_print_string(ndr, "print_processor", r->print_processor);
14168 ndr_print_ptr(ndr, "vendor_setup", r->vendor_setup);
14170 if (r->vendor_setup) {
14171 ndr_print_string(ndr, "vendor_setup", r->vendor_setup);
14174 ndr_print_ptr(ndr, "color_profiles", r->color_profiles);
14176 if (r->color_profiles) {
14177 ndr_print_string_array(ndr, "color_profiles", r->color_profiles);
14180 ndr_print_ptr(ndr, "inf_path", r->inf_path);
14183 ndr_print_string(ndr, "inf_path", r->inf_path);
14186 ndr_print_uint32(ndr, "printer_driver_attributes", r->printer_driver_attributes);
14187 ndr_print_ptr(ndr, "core_driver_dependencies", r->core_driver_dependencies);
14189 if (r->core_driver_dependencies) {
14190 ndr_print_string_array(ndr, "core_driver_dependencies", r->core_driver_dependencies);
14193 ndr_print_NTTIME(ndr, "min_inbox_driver_ver_date", r->min_inbox_driver_ver_date);
14194 ndr_print_hyper(ndr, "min_inbox_driver_ver_version", r->min_inbox_driver_ver_version);
14198 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo8(const struct spoolss_DriverInfo8 *r, struct smb_iconv_convenience *ic, int flags)
14200 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo8, ic);
14203 static enum ndr_err_code ndr_push_spoolss_DriverFileType(struct ndr_push *ndr, int ndr_flags, enum spoolss_DriverFileType r)
14205 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
14206 return NDR_ERR_SUCCESS;
14209 static enum ndr_err_code ndr_pull_spoolss_DriverFileType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DriverFileType *r)
14212 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
14214 return NDR_ERR_SUCCESS;
14217 _PUBLIC_ void ndr_print_spoolss_DriverFileType(struct ndr_print *ndr, const char *name, enum spoolss_DriverFileType r)
14219 const char *val = NULL;
14222 case SPOOLSS_DRIVER_FILE_TYPE_RENDERING: val = "SPOOLSS_DRIVER_FILE_TYPE_RENDERING"; break;
14223 case SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION: val = "SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION"; break;
14224 case SPOOLSS_DRIVER_FILE_TYPE_DATA: val = "SPOOLSS_DRIVER_FILE_TYPE_DATA"; break;
14225 case SPOOLSS_DRIVER_FILE_TYPE_HELP: val = "SPOOLSS_DRIVER_FILE_TYPE_HELP"; break;
14226 case SPOOLSS_DRIVER_FILE_TYPE_OTHER: val = "SPOOLSS_DRIVER_FILE_TYPE_OTHER"; break;
14228 ndr_print_enum(ndr, name, "ENUM", val, r);
14231 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverFileInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverFileInfo *r)
14233 if (ndr_flags & NDR_SCALARS) {
14234 NDR_CHECK(ndr_push_align(ndr, 5));
14236 uint32_t _flags_save_string = ndr->flags;
14237 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14238 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->file_name));
14239 ndr->flags = _flags_save_string;
14241 NDR_CHECK(ndr_push_spoolss_DriverFileType(ndr, NDR_SCALARS, r->file_type));
14242 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->file_version));
14243 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
14245 if (ndr_flags & NDR_BUFFERS) {
14247 uint32_t _flags_save_string = ndr->flags;
14248 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14249 if (r->file_name) {
14250 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->file_name));
14251 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->file_name));
14253 ndr->flags = _flags_save_string;
14256 return NDR_ERR_SUCCESS;
14259 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverFileInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverFileInfo *r)
14261 uint32_t _ptr_file_name;
14262 TALLOC_CTX *_mem_save_file_name_0;
14263 if (ndr_flags & NDR_SCALARS) {
14264 NDR_CHECK(ndr_pull_align(ndr, 5));
14266 uint32_t _flags_save_string = ndr->flags;
14267 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14268 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_file_name));
14269 if (_ptr_file_name) {
14270 NDR_PULL_ALLOC(ndr, r->file_name);
14271 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->file_name, _ptr_file_name));
14273 r->file_name = NULL;
14275 ndr->flags = _flags_save_string;
14277 NDR_CHECK(ndr_pull_spoolss_DriverFileType(ndr, NDR_SCALARS, &r->file_type));
14278 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->file_version));
14279 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
14281 if (ndr_flags & NDR_BUFFERS) {
14283 uint32_t _flags_save_string = ndr->flags;
14284 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14285 if (r->file_name) {
14286 uint32_t _relative_save_offset;
14287 _relative_save_offset = ndr->offset;
14288 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->file_name));
14289 _mem_save_file_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14290 NDR_PULL_SET_MEM_CTX(ndr, r->file_name, 0);
14291 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->file_name));
14292 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_file_name_0, 0);
14293 if (ndr->offset > ndr->relative_highest_offset) {
14294 ndr->relative_highest_offset = ndr->offset;
14296 ndr->offset = _relative_save_offset;
14298 ndr->flags = _flags_save_string;
14301 return NDR_ERR_SUCCESS;
14304 _PUBLIC_ void ndr_print_spoolss_DriverFileInfo(struct ndr_print *ndr, const char *name, const struct spoolss_DriverFileInfo *r)
14306 ndr_print_struct(ndr, name, "spoolss_DriverFileInfo");
14308 ndr_print_ptr(ndr, "file_name", r->file_name);
14310 if (r->file_name) {
14311 ndr_print_string(ndr, "file_name", r->file_name);
14314 ndr_print_spoolss_DriverFileType(ndr, "file_type", r->file_type);
14315 ndr_print_uint32(ndr, "file_version", r->file_version);
14319 _PUBLIC_ void ndr_print_spoolss_DriverInfo101(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo101 *r)
14321 uint32_t cntr_file_info_1;
14322 ndr_print_struct(ndr, name, "spoolss_DriverInfo101");
14324 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
14325 ndr_print_ptr(ndr, "driver_name", r->driver_name);
14327 if (r->driver_name) {
14328 ndr_print_string(ndr, "driver_name", r->driver_name);
14331 ndr_print_ptr(ndr, "architecture", r->architecture);
14333 if (r->architecture) {
14334 ndr_print_string(ndr, "architecture", r->architecture);
14337 ndr_print_ptr(ndr, "file_info", r->file_info);
14339 if (r->file_info) {
14340 ndr->print(ndr, "%s: ARRAY(%d)", "file_info", (int)r->file_count);
14342 for (cntr_file_info_1=0;cntr_file_info_1<r->file_count;cntr_file_info_1++) {
14344 if (asprintf(&idx_1, "[%d]", cntr_file_info_1) != -1) {
14345 ndr_print_spoolss_DriverFileInfo(ndr, "file_info", &r->file_info[cntr_file_info_1]);
14352 ndr_print_uint32(ndr, "file_count", r->file_count);
14353 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
14355 if (r->monitor_name) {
14356 ndr_print_string(ndr, "monitor_name", r->monitor_name);
14359 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
14361 if (r->default_datatype) {
14362 ndr_print_string(ndr, "default_datatype", r->default_datatype);
14365 ndr_print_ptr(ndr, "previous_names", r->previous_names);
14367 if (r->previous_names) {
14368 ndr_print_string_array(ndr, "previous_names", r->previous_names);
14371 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
14372 ndr_print_hyper(ndr, "driver_version", r->driver_version);
14373 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
14375 if (r->manufacturer_name) {
14376 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
14379 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
14381 if (r->manufacturer_url) {
14382 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
14385 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
14387 if (r->hardware_id) {
14388 ndr_print_string(ndr, "hardware_id", r->hardware_id);
14391 ndr_print_ptr(ndr, "provider", r->provider);
14394 ndr_print_string(ndr, "provider", r->provider);
14400 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo101(const struct spoolss_DriverInfo101 *r, struct smb_iconv_convenience *ic, int flags)
14402 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo101, ic);
14405 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DriverInfo *r)
14407 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
14408 if (ndr_flags & NDR_SCALARS) {
14409 int level = ndr_push_get_switch_value(ndr, r);
14410 NDR_CHECK(ndr_push_union_align(ndr, 8));
14413 NDR_CHECK(ndr_push_align(ndr, 5));
14414 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14415 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr, NDR_SCALARS, &r->info1));
14419 NDR_CHECK(ndr_push_align(ndr, 5));
14420 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14421 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr, NDR_SCALARS, &r->info2));
14425 NDR_CHECK(ndr_push_align(ndr, 5));
14426 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14427 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr, NDR_SCALARS, &r->info3));
14431 NDR_CHECK(ndr_push_align(ndr, 5));
14432 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14433 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr, NDR_SCALARS, &r->info4));
14437 NDR_CHECK(ndr_push_align(ndr, 5));
14438 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14439 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr, NDR_SCALARS, &r->info5));
14443 NDR_CHECK(ndr_push_align(ndr, 8));
14444 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14445 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr, NDR_SCALARS, &r->info6));
14449 NDR_CHECK(ndr_push_align(ndr, 8));
14450 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14451 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr, NDR_SCALARS, &r->info8));
14455 NDR_CHECK(ndr_push_align(ndr, 8));
14456 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14457 NDR_CHECK(ndr_push_spoolss_DriverInfo101(ndr, NDR_SCALARS, &r->info101));
14465 if (ndr_flags & NDR_BUFFERS) {
14466 int level = ndr_push_get_switch_value(ndr, r);
14467 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
14470 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr, NDR_BUFFERS, &r->info1));
14474 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr, NDR_BUFFERS, &r->info2));
14478 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr, NDR_BUFFERS, &r->info3));
14482 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr, NDR_BUFFERS, &r->info4));
14486 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr, NDR_BUFFERS, &r->info5));
14490 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr, NDR_BUFFERS, &r->info6));
14494 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr, NDR_BUFFERS, &r->info8));
14498 NDR_CHECK(ndr_push_spoolss_DriverInfo101(ndr, NDR_BUFFERS, &r->info101));
14506 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
14507 return NDR_ERR_SUCCESS;
14510 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DriverInfo *r)
14512 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
14514 level = ndr_pull_get_switch_value(ndr, r);
14515 if (ndr_flags & NDR_SCALARS) {
14516 NDR_CHECK(ndr_pull_union_align(ndr, 8));
14519 NDR_CHECK(ndr_pull_align(ndr, 5));
14520 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14521 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr, NDR_SCALARS, &r->info1));
14525 NDR_CHECK(ndr_pull_align(ndr, 5));
14526 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14527 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr, NDR_SCALARS, &r->info2));
14531 NDR_CHECK(ndr_pull_align(ndr, 5));
14532 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14533 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr, NDR_SCALARS, &r->info3));
14537 NDR_CHECK(ndr_pull_align(ndr, 5));
14538 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14539 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr, NDR_SCALARS, &r->info4));
14543 NDR_CHECK(ndr_pull_align(ndr, 5));
14544 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14545 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr, NDR_SCALARS, &r->info5));
14549 NDR_CHECK(ndr_pull_align(ndr, 8));
14550 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14551 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr, NDR_SCALARS, &r->info6));
14555 NDR_CHECK(ndr_pull_align(ndr, 8));
14556 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14557 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr, NDR_SCALARS, &r->info8));
14561 NDR_CHECK(ndr_pull_align(ndr, 8));
14562 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14563 NDR_CHECK(ndr_pull_spoolss_DriverInfo101(ndr, NDR_SCALARS, &r->info101));
14571 if (ndr_flags & NDR_BUFFERS) {
14572 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
14575 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr, NDR_BUFFERS, &r->info1));
14579 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr, NDR_BUFFERS, &r->info2));
14583 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr, NDR_BUFFERS, &r->info3));
14587 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr, NDR_BUFFERS, &r->info4));
14591 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr, NDR_BUFFERS, &r->info5));
14595 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr, NDR_BUFFERS, &r->info6));
14599 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr, NDR_BUFFERS, &r->info8));
14603 NDR_CHECK(ndr_pull_spoolss_DriverInfo101(ndr, NDR_BUFFERS, &r->info101));
14611 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
14612 return NDR_ERR_SUCCESS;
14615 _PUBLIC_ void ndr_print_spoolss_DriverInfo(struct ndr_print *ndr, const char *name, const union spoolss_DriverInfo *r)
14618 level = ndr_print_get_switch_value(ndr, r);
14619 ndr_print_union(ndr, name, level, "spoolss_DriverInfo");
14622 ndr_print_spoolss_DriverInfo1(ndr, "info1", &r->info1);
14626 ndr_print_spoolss_DriverInfo2(ndr, "info2", &r->info2);
14630 ndr_print_spoolss_DriverInfo3(ndr, "info3", &r->info3);
14634 ndr_print_spoolss_DriverInfo4(ndr, "info4", &r->info4);
14638 ndr_print_spoolss_DriverInfo5(ndr, "info5", &r->info5);
14642 ndr_print_spoolss_DriverInfo6(ndr, "info6", &r->info6);
14646 ndr_print_spoolss_DriverInfo8(ndr, "info8", &r->info8);
14650 ndr_print_spoolss_DriverInfo101(ndr, "info101", &r->info101);
14659 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo(const union spoolss_DriverInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
14661 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo, ic);
14664 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverDirectoryInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverDirectoryInfo1 *r)
14666 if (ndr_flags & NDR_SCALARS) {
14667 NDR_CHECK(ndr_push_align(ndr, 4));
14669 uint32_t _flags_save_string = ndr->flags;
14670 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14671 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->directory_name));
14672 ndr->flags = _flags_save_string;
14674 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
14676 if (ndr_flags & NDR_BUFFERS) {
14678 return NDR_ERR_SUCCESS;
14681 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverDirectoryInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverDirectoryInfo1 *r)
14683 if (ndr_flags & NDR_SCALARS) {
14684 NDR_CHECK(ndr_pull_align(ndr, 4));
14686 uint32_t _flags_save_string = ndr->flags;
14687 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14688 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->directory_name));
14689 ndr->flags = _flags_save_string;
14691 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
14693 if (ndr_flags & NDR_BUFFERS) {
14695 return NDR_ERR_SUCCESS;
14698 _PUBLIC_ void ndr_print_spoolss_DriverDirectoryInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DriverDirectoryInfo1 *r)
14700 ndr_print_struct(ndr, name, "spoolss_DriverDirectoryInfo1");
14702 ndr_print_string(ndr, "directory_name", r->directory_name);
14706 _PUBLIC_ size_t ndr_size_spoolss_DriverDirectoryInfo1(const struct spoolss_DriverDirectoryInfo1 *r, struct smb_iconv_convenience *ic, int flags)
14708 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverDirectoryInfo1, ic);
14711 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverDirectoryInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DriverDirectoryInfo *r)
14713 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
14714 if (ndr_flags & NDR_SCALARS) {
14715 int level = ndr_push_get_switch_value(ndr, r);
14716 NDR_CHECK(ndr_push_union_align(ndr, 4));
14719 NDR_CHECK(ndr_push_align(ndr, 4));
14720 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14721 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14725 NDR_CHECK(ndr_push_align(ndr, 4));
14726 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14727 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14732 if (ndr_flags & NDR_BUFFERS) {
14733 int level = ndr_push_get_switch_value(ndr, r);
14734 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
14744 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
14745 return NDR_ERR_SUCCESS;
14748 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverDirectoryInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DriverDirectoryInfo *r)
14750 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
14752 level = ndr_pull_get_switch_value(ndr, r);
14753 if (ndr_flags & NDR_SCALARS) {
14754 NDR_CHECK(ndr_pull_union_align(ndr, 4));
14757 NDR_CHECK(ndr_pull_align(ndr, 4));
14758 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14759 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14763 NDR_CHECK(ndr_pull_align(ndr, 4));
14764 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14765 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14770 if (ndr_flags & NDR_BUFFERS) {
14771 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
14781 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
14782 return NDR_ERR_SUCCESS;
14785 _PUBLIC_ void ndr_print_spoolss_DriverDirectoryInfo(struct ndr_print *ndr, const char *name, const union spoolss_DriverDirectoryInfo *r)
14788 level = ndr_print_get_switch_value(ndr, r);
14789 ndr_print_union(ndr, name, level, "spoolss_DriverDirectoryInfo");
14792 ndr_print_spoolss_DriverDirectoryInfo1(ndr, "info1", &r->info1);
14796 ndr_print_spoolss_DriverDirectoryInfo1(ndr, "info1", &r->info1);
14802 _PUBLIC_ size_t ndr_size_spoolss_DriverDirectoryInfo(const union spoolss_DriverDirectoryInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
14804 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverDirectoryInfo, ic);
14807 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcessorInfo1 *r)
14809 if (ndr_flags & NDR_SCALARS) {
14810 NDR_CHECK(ndr_push_align(ndr, 5));
14812 uint32_t _flags_save_string = ndr->flags;
14813 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14814 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor_name));
14815 ndr->flags = _flags_save_string;
14817 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
14819 if (ndr_flags & NDR_BUFFERS) {
14821 uint32_t _flags_save_string = ndr->flags;
14822 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14823 if (r->print_processor_name) {
14824 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->print_processor_name));
14825 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor_name));
14827 ndr->flags = _flags_save_string;
14830 return NDR_ERR_SUCCESS;
14833 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcessorInfo1 *r)
14835 uint32_t _ptr_print_processor_name;
14836 TALLOC_CTX *_mem_save_print_processor_name_0;
14837 if (ndr_flags & NDR_SCALARS) {
14838 NDR_CHECK(ndr_pull_align(ndr, 5));
14840 uint32_t _flags_save_string = ndr->flags;
14841 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14842 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor_name));
14843 if (_ptr_print_processor_name) {
14844 NDR_PULL_ALLOC(ndr, r->print_processor_name);
14845 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor_name, _ptr_print_processor_name));
14847 r->print_processor_name = NULL;
14849 ndr->flags = _flags_save_string;
14851 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
14853 if (ndr_flags & NDR_BUFFERS) {
14855 uint32_t _flags_save_string = ndr->flags;
14856 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14857 if (r->print_processor_name) {
14858 uint32_t _relative_save_offset;
14859 _relative_save_offset = ndr->offset;
14860 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor_name));
14861 _mem_save_print_processor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14862 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor_name, 0);
14863 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor_name));
14864 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_name_0, 0);
14865 if (ndr->offset > ndr->relative_highest_offset) {
14866 ndr->relative_highest_offset = ndr->offset;
14868 ndr->offset = _relative_save_offset;
14870 ndr->flags = _flags_save_string;
14873 return NDR_ERR_SUCCESS;
14876 _PUBLIC_ void ndr_print_spoolss_PrintProcessorInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcessorInfo1 *r)
14878 ndr_print_struct(ndr, name, "spoolss_PrintProcessorInfo1");
14880 ndr_print_ptr(ndr, "print_processor_name", r->print_processor_name);
14882 if (r->print_processor_name) {
14883 ndr_print_string(ndr, "print_processor_name", r->print_processor_name);
14889 _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorInfo1(const struct spoolss_PrintProcessorInfo1 *r, struct smb_iconv_convenience *ic, int flags)
14891 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorInfo1, ic);
14894 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcessorInfo *r)
14896 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
14897 if (ndr_flags & NDR_SCALARS) {
14898 int level = ndr_push_get_switch_value(ndr, r);
14899 NDR_CHECK(ndr_push_union_align(ndr, 5));
14902 NDR_CHECK(ndr_push_align(ndr, 5));
14903 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14904 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr, NDR_SCALARS, &r->info1));
14912 if (ndr_flags & NDR_BUFFERS) {
14913 int level = ndr_push_get_switch_value(ndr, r);
14914 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
14917 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr, NDR_BUFFERS, &r->info1));
14925 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
14926 return NDR_ERR_SUCCESS;
14929 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcessorInfo *r)
14931 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
14933 level = ndr_pull_get_switch_value(ndr, r);
14934 if (ndr_flags & NDR_SCALARS) {
14935 NDR_CHECK(ndr_pull_union_align(ndr, 5));
14938 NDR_CHECK(ndr_pull_align(ndr, 5));
14939 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14940 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr, NDR_SCALARS, &r->info1));
14948 if (ndr_flags & NDR_BUFFERS) {
14949 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
14952 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr, NDR_BUFFERS, &r->info1));
14960 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
14961 return NDR_ERR_SUCCESS;
14964 _PUBLIC_ void ndr_print_spoolss_PrintProcessorInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcessorInfo *r)
14967 level = ndr_print_get_switch_value(ndr, r);
14968 ndr_print_union(ndr, name, level, "spoolss_PrintProcessorInfo");
14971 ndr_print_spoolss_PrintProcessorInfo1(ndr, "info1", &r->info1);
14980 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorDirectoryInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcessorDirectoryInfo1 *r)
14982 if (ndr_flags & NDR_SCALARS) {
14983 NDR_CHECK(ndr_push_align(ndr, 4));
14985 uint32_t _flags_save_string = ndr->flags;
14986 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14987 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->directory_name));
14988 ndr->flags = _flags_save_string;
14990 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
14992 if (ndr_flags & NDR_BUFFERS) {
14994 return NDR_ERR_SUCCESS;
14997 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorDirectoryInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcessorDirectoryInfo1 *r)
14999 if (ndr_flags & NDR_SCALARS) {
15000 NDR_CHECK(ndr_pull_align(ndr, 4));
15002 uint32_t _flags_save_string = ndr->flags;
15003 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15004 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->directory_name));
15005 ndr->flags = _flags_save_string;
15007 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
15009 if (ndr_flags & NDR_BUFFERS) {
15011 return NDR_ERR_SUCCESS;
15014 _PUBLIC_ void ndr_print_spoolss_PrintProcessorDirectoryInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcessorDirectoryInfo1 *r)
15016 ndr_print_struct(ndr, name, "spoolss_PrintProcessorDirectoryInfo1");
15018 ndr_print_string(ndr, "directory_name", r->directory_name);
15022 _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorDirectoryInfo1(const struct spoolss_PrintProcessorDirectoryInfo1 *r, struct smb_iconv_convenience *ic, int flags)
15024 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorDirectoryInfo1, ic);
15027 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorDirectoryInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcessorDirectoryInfo *r)
15029 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
15030 if (ndr_flags & NDR_SCALARS) {
15031 int level = ndr_push_get_switch_value(ndr, r);
15032 NDR_CHECK(ndr_push_union_align(ndr, 4));
15035 NDR_CHECK(ndr_push_align(ndr, 4));
15036 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15037 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
15041 NDR_CHECK(ndr_push_align(ndr, 4));
15042 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15043 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
15048 if (ndr_flags & NDR_BUFFERS) {
15049 int level = ndr_push_get_switch_value(ndr, r);
15050 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
15060 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
15061 return NDR_ERR_SUCCESS;
15064 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorDirectoryInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcessorDirectoryInfo *r)
15066 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
15068 level = ndr_pull_get_switch_value(ndr, r);
15069 if (ndr_flags & NDR_SCALARS) {
15070 NDR_CHECK(ndr_pull_union_align(ndr, 4));
15073 NDR_CHECK(ndr_pull_align(ndr, 4));
15074 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15075 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
15079 NDR_CHECK(ndr_pull_align(ndr, 4));
15080 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15081 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
15086 if (ndr_flags & NDR_BUFFERS) {
15087 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
15097 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
15098 return NDR_ERR_SUCCESS;
15101 _PUBLIC_ void ndr_print_spoolss_PrintProcessorDirectoryInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcessorDirectoryInfo *r)
15104 level = ndr_print_get_switch_value(ndr, r);
15105 ndr_print_union(ndr, name, level, "spoolss_PrintProcessorDirectoryInfo");
15108 ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr, "info1", &r->info1);
15112 ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr, "info1", &r->info1);
15118 _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorDirectoryInfo(const union spoolss_PrintProcessorDirectoryInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
15120 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorDirectoryInfo, ic);
15123 static enum ndr_err_code ndr_push_spoolss_DocumentInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DocumentInfo1 *r)
15125 if (ndr_flags & NDR_SCALARS) {
15126 NDR_CHECK(ndr_push_align(ndr, 5));
15127 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
15128 NDR_CHECK(ndr_push_unique_ptr(ndr, r->output_file));
15129 NDR_CHECK(ndr_push_unique_ptr(ndr, r->datatype));
15130 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
15132 if (ndr_flags & NDR_BUFFERS) {
15133 if (r->document_name) {
15134 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
15135 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
15136 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
15137 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15139 if (r->output_file) {
15140 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->output_file, CH_UTF16)));
15141 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
15142 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->output_file, CH_UTF16)));
15143 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->output_file, ndr_charset_length(r->output_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15146 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
15147 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
15148 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
15149 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->datatype, ndr_charset_length(r->datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15152 return NDR_ERR_SUCCESS;
15155 static enum ndr_err_code ndr_pull_spoolss_DocumentInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DocumentInfo1 *r)
15157 uint32_t _ptr_document_name;
15158 TALLOC_CTX *_mem_save_document_name_0;
15159 uint32_t _ptr_output_file;
15160 TALLOC_CTX *_mem_save_output_file_0;
15161 uint32_t _ptr_datatype;
15162 TALLOC_CTX *_mem_save_datatype_0;
15163 if (ndr_flags & NDR_SCALARS) {
15164 NDR_CHECK(ndr_pull_align(ndr, 5));
15165 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
15166 if (_ptr_document_name) {
15167 NDR_PULL_ALLOC(ndr, r->document_name);
15169 r->document_name = NULL;
15171 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_output_file));
15172 if (_ptr_output_file) {
15173 NDR_PULL_ALLOC(ndr, r->output_file);
15175 r->output_file = NULL;
15177 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
15178 if (_ptr_datatype) {
15179 NDR_PULL_ALLOC(ndr, r->datatype);
15181 r->datatype = NULL;
15183 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
15185 if (ndr_flags & NDR_BUFFERS) {
15186 if (r->document_name) {
15187 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15188 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
15189 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
15190 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
15191 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
15192 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));
15194 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
15195 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
15196 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
15198 if (r->output_file) {
15199 _mem_save_output_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
15200 NDR_PULL_SET_MEM_CTX(ndr, r->output_file, 0);
15201 NDR_CHECK(ndr_pull_array_size(ndr, &r->output_file));
15202 NDR_CHECK(ndr_pull_array_length(ndr, &r->output_file));
15203 if (ndr_get_array_length(ndr, &r->output_file) > ndr_get_array_size(ndr, &r->output_file)) {
15204 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));
15206 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->output_file), sizeof(uint16_t)));
15207 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->output_file, ndr_get_array_length(ndr, &r->output_file), sizeof(uint16_t), CH_UTF16));
15208 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_output_file_0, 0);
15211 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
15212 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
15213 NDR_CHECK(ndr_pull_array_size(ndr, &r->datatype));
15214 NDR_CHECK(ndr_pull_array_length(ndr, &r->datatype));
15215 if (ndr_get_array_length(ndr, &r->datatype) > ndr_get_array_size(ndr, &r->datatype)) {
15216 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));
15218 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t)));
15219 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->datatype, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t), CH_UTF16));
15220 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
15223 return NDR_ERR_SUCCESS;
15226 _PUBLIC_ void ndr_print_spoolss_DocumentInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DocumentInfo1 *r)
15228 ndr_print_struct(ndr, name, "spoolss_DocumentInfo1");
15230 ndr_print_ptr(ndr, "document_name", r->document_name);
15232 if (r->document_name) {
15233 ndr_print_string(ndr, "document_name", r->document_name);
15236 ndr_print_ptr(ndr, "output_file", r->output_file);
15238 if (r->output_file) {
15239 ndr_print_string(ndr, "output_file", r->output_file);
15242 ndr_print_ptr(ndr, "datatype", r->datatype);
15245 ndr_print_string(ndr, "datatype", r->datatype);
15251 static enum ndr_err_code ndr_push_spoolss_DocumentInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DocumentInfo *r)
15253 if (ndr_flags & NDR_SCALARS) {
15254 int level = ndr_push_get_switch_value(ndr, r);
15255 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
15256 NDR_CHECK(ndr_push_union_align(ndr, 5));
15259 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
15273 if (ndr_flags & NDR_BUFFERS) {
15274 int level = ndr_push_get_switch_value(ndr, r);
15278 NDR_CHECK(ndr_push_spoolss_DocumentInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
15293 return NDR_ERR_SUCCESS;
15296 static enum ndr_err_code ndr_pull_spoolss_DocumentInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DocumentInfo *r)
15300 TALLOC_CTX *_mem_save_info1_0;
15301 level = ndr_pull_get_switch_value(ndr, r);
15302 if (ndr_flags & NDR_SCALARS) {
15303 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
15304 if (_level != level) {
15305 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
15307 NDR_CHECK(ndr_pull_union_align(ndr, 5));
15310 uint32_t _ptr_info1;
15311 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
15313 NDR_PULL_ALLOC(ndr, r->info1);
15330 if (ndr_flags & NDR_BUFFERS) {
15334 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
15335 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
15336 NDR_CHECK(ndr_pull_spoolss_DocumentInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
15337 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
15352 return NDR_ERR_SUCCESS;
15355 _PUBLIC_ void ndr_print_spoolss_DocumentInfo(struct ndr_print *ndr, const char *name, const union spoolss_DocumentInfo *r)
15358 level = ndr_print_get_switch_value(ndr, r);
15359 ndr_print_union(ndr, name, level, "spoolss_DocumentInfo");
15362 ndr_print_ptr(ndr, "info1", r->info1);
15365 ndr_print_spoolss_DocumentInfo1(ndr, "info1", r->info1);
15382 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OSVersion(struct ndr_push *ndr, int ndr_flags, const struct spoolss_OSVersion *r)
15384 if (ndr_flags & NDR_SCALARS) {
15385 NDR_CHECK(ndr_push_align(ndr, 4));
15386 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_OSVersion(r, ndr->iconv_convenience, ndr->flags)));
15387 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->major));
15388 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minor));
15389 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
15390 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
15392 uint32_t _flags_save_string = ndr->flags;
15393 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15395 struct ndr_push *_ndr_extra_string;
15396 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
15397 NDR_CHECK(ndr_push_string(_ndr_extra_string, NDR_SCALARS, r->extra_string));
15398 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_extra_string, 0, 256));
15400 ndr->flags = _flags_save_string;
15402 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
15404 if (ndr_flags & NDR_BUFFERS) {
15406 return NDR_ERR_SUCCESS;
15409 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OSVersion(struct ndr_pull *ndr, int ndr_flags, struct spoolss_OSVersion *r)
15411 if (ndr_flags & NDR_SCALARS) {
15412 NDR_CHECK(ndr_pull_align(ndr, 4));
15413 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
15414 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->major));
15415 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minor));
15416 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
15417 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->platform_id));
15419 uint32_t _flags_save_string = ndr->flags;
15420 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15422 struct ndr_pull *_ndr_extra_string;
15423 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
15424 NDR_CHECK(ndr_pull_string(_ndr_extra_string, NDR_SCALARS, &r->extra_string));
15425 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_extra_string, 0, 256));
15427 ndr->flags = _flags_save_string;
15429 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
15431 if (ndr_flags & NDR_BUFFERS) {
15433 return NDR_ERR_SUCCESS;
15436 _PUBLIC_ void ndr_print_spoolss_OSVersion(struct ndr_print *ndr, const char *name, const struct spoolss_OSVersion *r)
15438 ndr_print_struct(ndr, name, "spoolss_OSVersion");
15440 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);
15441 ndr_print_uint32(ndr, "major", r->major);
15442 ndr_print_uint32(ndr, "minor", r->minor);
15443 ndr_print_uint32(ndr, "build", r->build);
15444 ndr_print_uint32(ndr, "platform_id", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->platform_id);
15445 ndr_print_string(ndr, "extra_string", r->extra_string);
15449 _PUBLIC_ size_t ndr_size_spoolss_OSVersion(const struct spoolss_OSVersion *r, struct smb_iconv_convenience *ic, int flags)
15451 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_OSVersion, ic);
15454 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OSVersionEx(struct ndr_push *ndr, int ndr_flags, const struct spoolss_OSVersionEx *r)
15456 if (ndr_flags & NDR_SCALARS) {
15457 NDR_CHECK(ndr_push_align(ndr, 4));
15458 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_OSVersionEx(r, ndr->iconv_convenience, ndr->flags)));
15459 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->major));
15460 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minor));
15461 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
15462 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
15464 uint32_t _flags_save_string = ndr->flags;
15465 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15467 struct ndr_push *_ndr_extra_string;
15468 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
15469 NDR_CHECK(ndr_push_string(_ndr_extra_string, NDR_SCALARS, r->extra_string));
15470 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_extra_string, 0, 256));
15472 ndr->flags = _flags_save_string;
15474 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->service_pack_major));
15475 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->service_pack_minor));
15476 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->suite_mask));
15477 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->product_type));
15478 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->reserved));
15479 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
15481 if (ndr_flags & NDR_BUFFERS) {
15483 return NDR_ERR_SUCCESS;
15486 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OSVersionEx(struct ndr_pull *ndr, int ndr_flags, struct spoolss_OSVersionEx *r)
15488 if (ndr_flags & NDR_SCALARS) {
15489 NDR_CHECK(ndr_pull_align(ndr, 4));
15490 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
15491 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->major));
15492 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minor));
15493 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
15494 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->platform_id));
15496 uint32_t _flags_save_string = ndr->flags;
15497 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15499 struct ndr_pull *_ndr_extra_string;
15500 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
15501 NDR_CHECK(ndr_pull_string(_ndr_extra_string, NDR_SCALARS, &r->extra_string));
15502 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_extra_string, 0, 256));
15504 ndr->flags = _flags_save_string;
15506 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->service_pack_major));
15507 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->service_pack_minor));
15508 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->suite_mask));
15509 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->product_type));
15510 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->reserved));
15511 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
15513 if (ndr_flags & NDR_BUFFERS) {
15515 return NDR_ERR_SUCCESS;
15518 _PUBLIC_ void ndr_print_spoolss_OSVersionEx(struct ndr_print *ndr, const char *name, const struct spoolss_OSVersionEx *r)
15520 ndr_print_struct(ndr, name, "spoolss_OSVersionEx");
15522 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);
15523 ndr_print_uint32(ndr, "major", r->major);
15524 ndr_print_uint32(ndr, "minor", r->minor);
15525 ndr_print_uint32(ndr, "build", r->build);
15526 ndr_print_uint32(ndr, "platform_id", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->platform_id);
15527 ndr_print_string(ndr, "extra_string", r->extra_string);
15528 ndr_print_uint16(ndr, "service_pack_major", r->service_pack_major);
15529 ndr_print_uint16(ndr, "service_pack_minor", r->service_pack_minor);
15530 ndr_print_uint16(ndr, "suite_mask", r->suite_mask);
15531 ndr_print_uint8(ndr, "product_type", r->product_type);
15532 ndr_print_uint8(ndr, "reserved", r->reserved);
15536 _PUBLIC_ size_t ndr_size_spoolss_OSVersionEx(const struct spoolss_OSVersionEx *r, struct smb_iconv_convenience *ic, int flags)
15538 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_OSVersionEx, ic);
15541 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterData(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrinterData *r)
15543 if (ndr_flags & NDR_SCALARS) {
15544 int level = ndr_push_get_switch_value(ndr, r);
15545 NDR_CHECK(ndr_push_union_align(ndr, 4));
15552 uint32_t _flags_save_string = ndr->flags;
15553 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15554 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->string));
15555 ndr->flags = _flags_save_string;
15561 uint32_t _flags_save_DATA_BLOB = ndr->flags;
15562 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
15563 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->binary));
15564 ndr->flags = _flags_save_DATA_BLOB;
15569 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->value));
15572 case REG_MULTI_SZ: {
15574 uint32_t _flags_save_string_array = ndr->flags;
15575 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15576 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string_array));
15577 ndr->flags = _flags_save_string_array;
15583 uint32_t _flags_save_DATA_BLOB = ndr->flags;
15584 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
15585 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->data));
15586 ndr->flags = _flags_save_DATA_BLOB;
15592 if (ndr_flags & NDR_BUFFERS) {
15593 int level = ndr_push_get_switch_value(ndr, r);
15615 return NDR_ERR_SUCCESS;
15618 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterData(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrinterData *r)
15621 level = ndr_pull_get_switch_value(ndr, r);
15622 if (ndr_flags & NDR_SCALARS) {
15623 NDR_CHECK(ndr_pull_union_align(ndr, 4));
15630 uint32_t _flags_save_string = ndr->flags;
15631 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15632 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->string));
15633 ndr->flags = _flags_save_string;
15639 uint32_t _flags_save_DATA_BLOB = ndr->flags;
15640 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
15641 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->binary));
15642 ndr->flags = _flags_save_DATA_BLOB;
15647 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->value));
15650 case REG_MULTI_SZ: {
15652 uint32_t _flags_save_string_array = ndr->flags;
15653 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15654 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string_array));
15655 ndr->flags = _flags_save_string_array;
15661 uint32_t _flags_save_DATA_BLOB = ndr->flags;
15662 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
15663 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->data));
15664 ndr->flags = _flags_save_DATA_BLOB;
15670 if (ndr_flags & NDR_BUFFERS) {
15692 return NDR_ERR_SUCCESS;
15695 _PUBLIC_ void ndr_print_spoolss_PrinterData(struct ndr_print *ndr, const char *name, const union spoolss_PrinterData *r)
15698 level = ndr_print_get_switch_value(ndr, r);
15699 ndr_print_union(ndr, name, level, "spoolss_PrinterData");
15705 ndr_print_string(ndr, "string", r->string);
15709 ndr_print_DATA_BLOB(ndr, "binary", r->binary);
15713 ndr_print_uint32(ndr, "value", r->value);
15717 ndr_print_string_array(ndr, "string_array", r->string_array);
15721 ndr_print_DATA_BLOB(ndr, "data", r->data);
15727 _PUBLIC_ size_t ndr_size_spoolss_PrinterData(const union spoolss_PrinterData *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
15729 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterData, ic);
15732 static enum ndr_err_code ndr_push_spoolss_FormFlags(struct ndr_push *ndr, int ndr_flags, enum spoolss_FormFlags r)
15734 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
15735 return NDR_ERR_SUCCESS;
15738 static enum ndr_err_code ndr_pull_spoolss_FormFlags(struct ndr_pull *ndr, int ndr_flags, enum spoolss_FormFlags *r)
15741 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
15743 return NDR_ERR_SUCCESS;
15746 _PUBLIC_ void ndr_print_spoolss_FormFlags(struct ndr_print *ndr, const char *name, enum spoolss_FormFlags r)
15748 const char *val = NULL;
15751 case SPOOLSS_FORM_USER: val = "SPOOLSS_FORM_USER"; break;
15752 case SPOOLSS_FORM_BUILTIN: val = "SPOOLSS_FORM_BUILTIN"; break;
15753 case SPOOLSS_FORM_PRINTER: val = "SPOOLSS_FORM_PRINTER"; break;
15755 ndr_print_enum(ndr, name, "ENUM", val, r);
15758 static enum ndr_err_code ndr_push_spoolss_FormSize(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormSize *r)
15760 if (ndr_flags & NDR_SCALARS) {
15761 NDR_CHECK(ndr_push_align(ndr, 4));
15762 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->width));
15763 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->height));
15764 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
15766 if (ndr_flags & NDR_BUFFERS) {
15768 return NDR_ERR_SUCCESS;
15771 static enum ndr_err_code ndr_pull_spoolss_FormSize(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormSize *r)
15773 if (ndr_flags & NDR_SCALARS) {
15774 NDR_CHECK(ndr_pull_align(ndr, 4));
15775 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->width));
15776 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->height));
15777 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
15779 if (ndr_flags & NDR_BUFFERS) {
15781 return NDR_ERR_SUCCESS;
15784 _PUBLIC_ void ndr_print_spoolss_FormSize(struct ndr_print *ndr, const char *name, const struct spoolss_FormSize *r)
15786 ndr_print_struct(ndr, name, "spoolss_FormSize");
15788 ndr_print_uint32(ndr, "width", r->width);
15789 ndr_print_uint32(ndr, "height", r->height);
15793 static enum ndr_err_code ndr_push_spoolss_FormArea(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormArea *r)
15795 if (ndr_flags & NDR_SCALARS) {
15796 NDR_CHECK(ndr_push_align(ndr, 4));
15797 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->left));
15798 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->top));
15799 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->right));
15800 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bottom));
15801 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
15803 if (ndr_flags & NDR_BUFFERS) {
15805 return NDR_ERR_SUCCESS;
15808 static enum ndr_err_code ndr_pull_spoolss_FormArea(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormArea *r)
15810 if (ndr_flags & NDR_SCALARS) {
15811 NDR_CHECK(ndr_pull_align(ndr, 4));
15812 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->left));
15813 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->top));
15814 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->right));
15815 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bottom));
15816 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
15818 if (ndr_flags & NDR_BUFFERS) {
15820 return NDR_ERR_SUCCESS;
15823 _PUBLIC_ void ndr_print_spoolss_FormArea(struct ndr_print *ndr, const char *name, const struct spoolss_FormArea *r)
15825 ndr_print_struct(ndr, name, "spoolss_FormArea");
15827 ndr_print_uint32(ndr, "left", r->left);
15828 ndr_print_uint32(ndr, "top", r->top);
15829 ndr_print_uint32(ndr, "right", r->right);
15830 ndr_print_uint32(ndr, "bottom", r->bottom);
15834 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormInfo1 *r)
15836 if (ndr_flags & NDR_SCALARS) {
15837 NDR_CHECK(ndr_push_align(ndr, 5));
15838 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
15840 uint32_t _flags_save_string = ndr->flags;
15841 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15842 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->form_name));
15843 ndr->flags = _flags_save_string;
15845 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15846 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15847 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
15849 if (ndr_flags & NDR_BUFFERS) {
15851 uint32_t _flags_save_string = ndr->flags;
15852 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15853 if (r->form_name) {
15854 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->form_name));
15855 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->form_name));
15857 ndr->flags = _flags_save_string;
15860 return NDR_ERR_SUCCESS;
15863 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormInfo1 *r)
15865 uint32_t _ptr_form_name;
15866 TALLOC_CTX *_mem_save_form_name_0;
15867 if (ndr_flags & NDR_SCALARS) {
15868 NDR_CHECK(ndr_pull_align(ndr, 5));
15869 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
15871 uint32_t _flags_save_string = ndr->flags;
15872 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15873 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
15874 if (_ptr_form_name) {
15875 NDR_PULL_ALLOC(ndr, r->form_name);
15876 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->form_name, _ptr_form_name));
15878 r->form_name = NULL;
15880 ndr->flags = _flags_save_string;
15882 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15883 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15884 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
15886 if (ndr_flags & NDR_BUFFERS) {
15888 uint32_t _flags_save_string = ndr->flags;
15889 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15890 if (r->form_name) {
15891 uint32_t _relative_save_offset;
15892 _relative_save_offset = ndr->offset;
15893 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->form_name));
15894 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15895 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
15896 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->form_name));
15897 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
15898 if (ndr->offset > ndr->relative_highest_offset) {
15899 ndr->relative_highest_offset = ndr->offset;
15901 ndr->offset = _relative_save_offset;
15903 ndr->flags = _flags_save_string;
15906 return NDR_ERR_SUCCESS;
15909 _PUBLIC_ void ndr_print_spoolss_FormInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_FormInfo1 *r)
15911 ndr_print_struct(ndr, name, "spoolss_FormInfo1");
15913 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
15914 ndr_print_ptr(ndr, "form_name", r->form_name);
15916 if (r->form_name) {
15917 ndr_print_string(ndr, "form_name", r->form_name);
15920 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
15921 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
15925 _PUBLIC_ size_t ndr_size_spoolss_FormInfo1(const struct spoolss_FormInfo1 *r, struct smb_iconv_convenience *ic, int flags)
15927 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo1, ic);
15930 static enum ndr_err_code ndr_push_spoolss_FormStringType(struct ndr_push *ndr, int ndr_flags, uint32_t r)
15932 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
15933 return NDR_ERR_SUCCESS;
15936 static enum ndr_err_code ndr_pull_spoolss_FormStringType(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
15939 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
15941 return NDR_ERR_SUCCESS;
15944 _PUBLIC_ void ndr_print_spoolss_FormStringType(struct ndr_print *ndr, const char *name, uint32_t r)
15946 ndr_print_uint32(ndr, name, r);
15948 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_NONE", SPOOLSS_FORM_STRING_TYPE_NONE, r);
15949 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_MUI_DLL", SPOOLSS_FORM_STRING_TYPE_MUI_DLL, r);
15950 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_LANG_PAIR", SPOOLSS_FORM_STRING_TYPE_LANG_PAIR, r);
15954 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormInfo2 *r)
15956 if (ndr_flags & NDR_SCALARS) {
15957 NDR_CHECK(ndr_push_align(ndr, 5));
15958 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
15960 uint32_t _flags_save_string = ndr->flags;
15961 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15962 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->form_name));
15963 ndr->flags = _flags_save_string;
15965 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15966 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15968 uint32_t _flags_save_string = ndr->flags;
15969 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
15970 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->keyword));
15971 ndr->flags = _flags_save_string;
15973 NDR_CHECK(ndr_push_spoolss_FormStringType(ndr, NDR_SCALARS, r->string_type));
15975 uint32_t _flags_save_string = ndr->flags;
15976 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15977 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->mui_dll));
15978 ndr->flags = _flags_save_string;
15980 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ressource_id));
15982 uint32_t _flags_save_string = ndr->flags;
15983 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15984 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->display_name));
15985 ndr->flags = _flags_save_string;
15987 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->lang_id));
15988 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
15990 if (ndr_flags & NDR_BUFFERS) {
15992 uint32_t _flags_save_string = ndr->flags;
15993 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15994 if (r->form_name) {
15995 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->form_name));
15996 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->form_name));
15998 ndr->flags = _flags_save_string;
16001 uint32_t _flags_save_string = ndr->flags;
16002 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
16004 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->keyword));
16005 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->keyword));
16007 ndr->flags = _flags_save_string;
16010 uint32_t _flags_save_string = ndr->flags;
16011 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16013 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->mui_dll));
16014 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->mui_dll));
16016 ndr->flags = _flags_save_string;
16019 uint32_t _flags_save_string = ndr->flags;
16020 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16021 if (r->display_name) {
16022 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->display_name));
16023 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->display_name));
16025 ndr->flags = _flags_save_string;
16028 return NDR_ERR_SUCCESS;
16031 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormInfo2 *r)
16033 uint32_t _ptr_form_name;
16034 TALLOC_CTX *_mem_save_form_name_0;
16035 uint32_t _ptr_keyword;
16036 TALLOC_CTX *_mem_save_keyword_0;
16037 uint32_t _ptr_mui_dll;
16038 TALLOC_CTX *_mem_save_mui_dll_0;
16039 uint32_t _ptr_display_name;
16040 TALLOC_CTX *_mem_save_display_name_0;
16041 if (ndr_flags & NDR_SCALARS) {
16042 NDR_CHECK(ndr_pull_align(ndr, 5));
16043 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
16045 uint32_t _flags_save_string = ndr->flags;
16046 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16047 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
16048 if (_ptr_form_name) {
16049 NDR_PULL_ALLOC(ndr, r->form_name);
16050 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->form_name, _ptr_form_name));
16052 r->form_name = NULL;
16054 ndr->flags = _flags_save_string;
16056 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
16057 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
16059 uint32_t _flags_save_string = ndr->flags;
16060 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
16061 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyword));
16062 if (_ptr_keyword) {
16063 NDR_PULL_ALLOC(ndr, r->keyword);
16064 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->keyword, _ptr_keyword));
16068 ndr->flags = _flags_save_string;
16070 NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr, NDR_SCALARS, &r->string_type));
16072 uint32_t _flags_save_string = ndr->flags;
16073 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16074 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_mui_dll));
16075 if (_ptr_mui_dll) {
16076 NDR_PULL_ALLOC(ndr, r->mui_dll);
16077 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->mui_dll, _ptr_mui_dll));
16081 ndr->flags = _flags_save_string;
16083 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ressource_id));
16085 uint32_t _flags_save_string = ndr->flags;
16086 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16087 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_display_name));
16088 if (_ptr_display_name) {
16089 NDR_PULL_ALLOC(ndr, r->display_name);
16090 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->display_name, _ptr_display_name));
16092 r->display_name = NULL;
16094 ndr->flags = _flags_save_string;
16096 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->lang_id));
16097 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
16099 if (ndr_flags & NDR_BUFFERS) {
16101 uint32_t _flags_save_string = ndr->flags;
16102 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16103 if (r->form_name) {
16104 uint32_t _relative_save_offset;
16105 _relative_save_offset = ndr->offset;
16106 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->form_name));
16107 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16108 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
16109 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->form_name));
16110 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
16111 if (ndr->offset > ndr->relative_highest_offset) {
16112 ndr->relative_highest_offset = ndr->offset;
16114 ndr->offset = _relative_save_offset;
16116 ndr->flags = _flags_save_string;
16119 uint32_t _flags_save_string = ndr->flags;
16120 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
16122 uint32_t _relative_save_offset;
16123 _relative_save_offset = ndr->offset;
16124 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->keyword));
16125 _mem_save_keyword_0 = NDR_PULL_GET_MEM_CTX(ndr);
16126 NDR_PULL_SET_MEM_CTX(ndr, r->keyword, 0);
16127 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->keyword));
16128 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyword_0, 0);
16129 if (ndr->offset > ndr->relative_highest_offset) {
16130 ndr->relative_highest_offset = ndr->offset;
16132 ndr->offset = _relative_save_offset;
16134 ndr->flags = _flags_save_string;
16137 uint32_t _flags_save_string = ndr->flags;
16138 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16140 uint32_t _relative_save_offset;
16141 _relative_save_offset = ndr->offset;
16142 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->mui_dll));
16143 _mem_save_mui_dll_0 = NDR_PULL_GET_MEM_CTX(ndr);
16144 NDR_PULL_SET_MEM_CTX(ndr, r->mui_dll, 0);
16145 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->mui_dll));
16146 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_mui_dll_0, 0);
16147 if (ndr->offset > ndr->relative_highest_offset) {
16148 ndr->relative_highest_offset = ndr->offset;
16150 ndr->offset = _relative_save_offset;
16152 ndr->flags = _flags_save_string;
16155 uint32_t _flags_save_string = ndr->flags;
16156 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16157 if (r->display_name) {
16158 uint32_t _relative_save_offset;
16159 _relative_save_offset = ndr->offset;
16160 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->display_name));
16161 _mem_save_display_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16162 NDR_PULL_SET_MEM_CTX(ndr, r->display_name, 0);
16163 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->display_name));
16164 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_display_name_0, 0);
16165 if (ndr->offset > ndr->relative_highest_offset) {
16166 ndr->relative_highest_offset = ndr->offset;
16168 ndr->offset = _relative_save_offset;
16170 ndr->flags = _flags_save_string;
16173 return NDR_ERR_SUCCESS;
16176 _PUBLIC_ void ndr_print_spoolss_FormInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_FormInfo2 *r)
16178 ndr_print_struct(ndr, name, "spoolss_FormInfo2");
16180 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
16181 ndr_print_ptr(ndr, "form_name", r->form_name);
16183 if (r->form_name) {
16184 ndr_print_string(ndr, "form_name", r->form_name);
16187 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
16188 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
16189 ndr_print_ptr(ndr, "keyword", r->keyword);
16192 ndr_print_string(ndr, "keyword", r->keyword);
16195 ndr_print_spoolss_FormStringType(ndr, "string_type", r->string_type);
16196 ndr_print_ptr(ndr, "mui_dll", r->mui_dll);
16199 ndr_print_string(ndr, "mui_dll", r->mui_dll);
16202 ndr_print_uint32(ndr, "ressource_id", r->ressource_id);
16203 ndr_print_ptr(ndr, "display_name", r->display_name);
16205 if (r->display_name) {
16206 ndr_print_string(ndr, "display_name", r->display_name);
16209 ndr_print_uint32(ndr, "lang_id", r->lang_id);
16213 _PUBLIC_ size_t ndr_size_spoolss_FormInfo2(const struct spoolss_FormInfo2 *r, struct smb_iconv_convenience *ic, int flags)
16215 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo2, ic);
16218 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_FormInfo *r)
16220 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
16221 if (ndr_flags & NDR_SCALARS) {
16222 int level = ndr_push_get_switch_value(ndr, r);
16223 NDR_CHECK(ndr_push_union_align(ndr, 5));
16226 NDR_CHECK(ndr_push_align(ndr, 5));
16227 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16228 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr, NDR_SCALARS, &r->info1));
16232 NDR_CHECK(ndr_push_align(ndr, 5));
16233 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16234 NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr, NDR_SCALARS, &r->info2));
16242 if (ndr_flags & NDR_BUFFERS) {
16243 int level = ndr_push_get_switch_value(ndr, r);
16244 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
16247 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr, NDR_BUFFERS, &r->info1));
16251 NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr, NDR_BUFFERS, &r->info2));
16259 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
16260 return NDR_ERR_SUCCESS;
16263 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_FormInfo *r)
16265 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
16267 level = ndr_pull_get_switch_value(ndr, r);
16268 if (ndr_flags & NDR_SCALARS) {
16269 NDR_CHECK(ndr_pull_union_align(ndr, 5));
16272 NDR_CHECK(ndr_pull_align(ndr, 5));
16273 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16274 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr, NDR_SCALARS, &r->info1));
16278 NDR_CHECK(ndr_pull_align(ndr, 5));
16279 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16280 NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr, NDR_SCALARS, &r->info2));
16288 if (ndr_flags & NDR_BUFFERS) {
16289 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
16292 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr, NDR_BUFFERS, &r->info1));
16296 NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr, NDR_BUFFERS, &r->info2));
16304 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
16305 return NDR_ERR_SUCCESS;
16308 _PUBLIC_ void ndr_print_spoolss_FormInfo(struct ndr_print *ndr, const char *name, const union spoolss_FormInfo *r)
16311 level = ndr_print_get_switch_value(ndr, r);
16312 ndr_print_union(ndr, name, level, "spoolss_FormInfo");
16315 ndr_print_spoolss_FormInfo1(ndr, "info1", &r->info1);
16319 ndr_print_spoolss_FormInfo2(ndr, "info2", &r->info2);
16328 _PUBLIC_ size_t ndr_size_spoolss_FormInfo(const union spoolss_FormInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
16330 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo, ic);
16333 static enum ndr_err_code ndr_push_spoolss_AddFormInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddFormInfo1 *r)
16335 if (ndr_flags & NDR_SCALARS) {
16336 NDR_CHECK(ndr_push_align(ndr, 5));
16337 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
16338 NDR_CHECK(ndr_push_unique_ptr(ndr, r->form_name));
16339 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
16340 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
16341 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
16343 if (ndr_flags & NDR_BUFFERS) {
16344 if (r->form_name) {
16345 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
16346 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
16347 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
16348 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->form_name, ndr_charset_length(r->form_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16351 return NDR_ERR_SUCCESS;
16354 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddFormInfo1 *r)
16356 uint32_t _ptr_form_name;
16357 TALLOC_CTX *_mem_save_form_name_0;
16358 if (ndr_flags & NDR_SCALARS) {
16359 NDR_CHECK(ndr_pull_align(ndr, 5));
16360 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
16361 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
16362 if (_ptr_form_name) {
16363 NDR_PULL_ALLOC(ndr, r->form_name);
16365 r->form_name = NULL;
16367 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
16368 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
16369 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
16371 if (ndr_flags & NDR_BUFFERS) {
16372 if (r->form_name) {
16373 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16374 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
16375 NDR_CHECK(ndr_pull_array_size(ndr, &r->form_name));
16376 NDR_CHECK(ndr_pull_array_length(ndr, &r->form_name));
16377 if (ndr_get_array_length(ndr, &r->form_name) > ndr_get_array_size(ndr, &r->form_name)) {
16378 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));
16380 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t)));
16381 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->form_name, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t), CH_UTF16));
16382 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
16385 return NDR_ERR_SUCCESS;
16388 _PUBLIC_ void ndr_print_spoolss_AddFormInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_AddFormInfo1 *r)
16390 ndr_print_struct(ndr, name, "spoolss_AddFormInfo1");
16392 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
16393 ndr_print_ptr(ndr, "form_name", r->form_name);
16395 if (r->form_name) {
16396 ndr_print_string(ndr, "form_name", r->form_name);
16399 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
16400 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
16404 static enum ndr_err_code ndr_push_spoolss_AddFormInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddFormInfo2 *r)
16406 if (ndr_flags & NDR_SCALARS) {
16407 NDR_CHECK(ndr_push_align(ndr, 5));
16408 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
16409 NDR_CHECK(ndr_push_unique_ptr(ndr, r->form_name));
16410 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
16411 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
16412 NDR_CHECK(ndr_push_unique_ptr(ndr, r->keyword));
16413 NDR_CHECK(ndr_push_spoolss_FormStringType(ndr, NDR_SCALARS, r->string_type));
16414 NDR_CHECK(ndr_push_unique_ptr(ndr, r->mui_dll));
16415 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ressource_id));
16416 NDR_CHECK(ndr_push_unique_ptr(ndr, r->display_name));
16417 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->lang_id));
16418 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
16420 if (ndr_flags & NDR_BUFFERS) {
16421 if (r->form_name) {
16422 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
16423 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
16424 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
16425 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->form_name, ndr_charset_length(r->form_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16428 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->keyword, CH_DOS)));
16429 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
16430 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->keyword, CH_DOS)));
16431 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->keyword, ndr_charset_length(r->keyword, CH_DOS), sizeof(uint8_t), CH_DOS));
16434 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->mui_dll, CH_UTF16)));
16435 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
16436 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->mui_dll, CH_UTF16)));
16437 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->mui_dll, ndr_charset_length(r->mui_dll, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16439 if (r->display_name) {
16440 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->display_name, CH_UTF16)));
16441 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
16442 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->display_name, CH_UTF16)));
16443 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->display_name, ndr_charset_length(r->display_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16446 return NDR_ERR_SUCCESS;
16449 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddFormInfo2 *r)
16451 uint32_t _ptr_form_name;
16452 TALLOC_CTX *_mem_save_form_name_0;
16453 uint32_t _ptr_keyword;
16454 TALLOC_CTX *_mem_save_keyword_0;
16455 uint32_t _ptr_mui_dll;
16456 TALLOC_CTX *_mem_save_mui_dll_0;
16457 uint32_t _ptr_display_name;
16458 TALLOC_CTX *_mem_save_display_name_0;
16459 if (ndr_flags & NDR_SCALARS) {
16460 NDR_CHECK(ndr_pull_align(ndr, 5));
16461 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
16462 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
16463 if (_ptr_form_name) {
16464 NDR_PULL_ALLOC(ndr, r->form_name);
16466 r->form_name = NULL;
16468 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
16469 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
16470 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyword));
16471 if (_ptr_keyword) {
16472 NDR_PULL_ALLOC(ndr, r->keyword);
16476 NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr, NDR_SCALARS, &r->string_type));
16477 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_mui_dll));
16478 if (_ptr_mui_dll) {
16479 NDR_PULL_ALLOC(ndr, r->mui_dll);
16483 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ressource_id));
16484 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_display_name));
16485 if (_ptr_display_name) {
16486 NDR_PULL_ALLOC(ndr, r->display_name);
16488 r->display_name = NULL;
16490 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->lang_id));
16491 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
16493 if (ndr_flags & NDR_BUFFERS) {
16494 if (r->form_name) {
16495 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16496 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
16497 NDR_CHECK(ndr_pull_array_size(ndr, &r->form_name));
16498 NDR_CHECK(ndr_pull_array_length(ndr, &r->form_name));
16499 if (ndr_get_array_length(ndr, &r->form_name) > ndr_get_array_size(ndr, &r->form_name)) {
16500 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));
16502 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t)));
16503 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->form_name, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t), CH_UTF16));
16504 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
16507 _mem_save_keyword_0 = NDR_PULL_GET_MEM_CTX(ndr);
16508 NDR_PULL_SET_MEM_CTX(ndr, r->keyword, 0);
16509 NDR_CHECK(ndr_pull_array_size(ndr, &r->keyword));
16510 NDR_CHECK(ndr_pull_array_length(ndr, &r->keyword));
16511 if (ndr_get_array_length(ndr, &r->keyword) > ndr_get_array_size(ndr, &r->keyword)) {
16512 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));
16514 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->keyword), sizeof(uint8_t)));
16515 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->keyword, ndr_get_array_length(ndr, &r->keyword), sizeof(uint8_t), CH_DOS));
16516 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyword_0, 0);
16519 _mem_save_mui_dll_0 = NDR_PULL_GET_MEM_CTX(ndr);
16520 NDR_PULL_SET_MEM_CTX(ndr, r->mui_dll, 0);
16521 NDR_CHECK(ndr_pull_array_size(ndr, &r->mui_dll));
16522 NDR_CHECK(ndr_pull_array_length(ndr, &r->mui_dll));
16523 if (ndr_get_array_length(ndr, &r->mui_dll) > ndr_get_array_size(ndr, &r->mui_dll)) {
16524 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));
16526 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->mui_dll), sizeof(uint16_t)));
16527 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->mui_dll, ndr_get_array_length(ndr, &r->mui_dll), sizeof(uint16_t), CH_UTF16));
16528 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_mui_dll_0, 0);
16530 if (r->display_name) {
16531 _mem_save_display_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16532 NDR_PULL_SET_MEM_CTX(ndr, r->display_name, 0);
16533 NDR_CHECK(ndr_pull_array_size(ndr, &r->display_name));
16534 NDR_CHECK(ndr_pull_array_length(ndr, &r->display_name));
16535 if (ndr_get_array_length(ndr, &r->display_name) > ndr_get_array_size(ndr, &r->display_name)) {
16536 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));
16538 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->display_name), sizeof(uint16_t)));
16539 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->display_name, ndr_get_array_length(ndr, &r->display_name), sizeof(uint16_t), CH_UTF16));
16540 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_display_name_0, 0);
16543 return NDR_ERR_SUCCESS;
16546 _PUBLIC_ void ndr_print_spoolss_AddFormInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_AddFormInfo2 *r)
16548 ndr_print_struct(ndr, name, "spoolss_AddFormInfo2");
16550 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
16551 ndr_print_ptr(ndr, "form_name", r->form_name);
16553 if (r->form_name) {
16554 ndr_print_string(ndr, "form_name", r->form_name);
16557 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
16558 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
16559 ndr_print_ptr(ndr, "keyword", r->keyword);
16562 ndr_print_string(ndr, "keyword", r->keyword);
16565 ndr_print_spoolss_FormStringType(ndr, "string_type", r->string_type);
16566 ndr_print_ptr(ndr, "mui_dll", r->mui_dll);
16569 ndr_print_string(ndr, "mui_dll", r->mui_dll);
16572 ndr_print_uint32(ndr, "ressource_id", r->ressource_id);
16573 ndr_print_ptr(ndr, "display_name", r->display_name);
16575 if (r->display_name) {
16576 ndr_print_string(ndr, "display_name", r->display_name);
16579 ndr_print_uint32(ndr, "lang_id", r->lang_id);
16583 static enum ndr_err_code ndr_push_spoolss_AddFormInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_AddFormInfo *r)
16585 if (ndr_flags & NDR_SCALARS) {
16586 int level = ndr_push_get_switch_value(ndr, r);
16587 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
16588 NDR_CHECK(ndr_push_union_align(ndr, 5));
16591 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
16595 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
16599 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
16602 if (ndr_flags & NDR_BUFFERS) {
16603 int level = ndr_push_get_switch_value(ndr, r);
16607 NDR_CHECK(ndr_push_spoolss_AddFormInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
16613 NDR_CHECK(ndr_push_spoolss_AddFormInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
16618 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
16621 return NDR_ERR_SUCCESS;
16624 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_AddFormInfo *r)
16628 TALLOC_CTX *_mem_save_info1_0;
16629 TALLOC_CTX *_mem_save_info2_0;
16630 level = ndr_pull_get_switch_value(ndr, r);
16631 if (ndr_flags & NDR_SCALARS) {
16632 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
16633 if (_level != level) {
16634 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
16636 NDR_CHECK(ndr_pull_union_align(ndr, 5));
16639 uint32_t _ptr_info1;
16640 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
16642 NDR_PULL_ALLOC(ndr, r->info1);
16649 uint32_t _ptr_info2;
16650 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
16652 NDR_PULL_ALLOC(ndr, r->info2);
16659 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
16662 if (ndr_flags & NDR_BUFFERS) {
16666 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
16667 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
16668 NDR_CHECK(ndr_pull_spoolss_AddFormInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
16669 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
16675 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
16676 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
16677 NDR_CHECK(ndr_pull_spoolss_AddFormInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
16678 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
16683 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
16686 return NDR_ERR_SUCCESS;
16689 _PUBLIC_ void ndr_print_spoolss_AddFormInfo(struct ndr_print *ndr, const char *name, const union spoolss_AddFormInfo *r)
16692 level = ndr_print_get_switch_value(ndr, r);
16693 ndr_print_union(ndr, name, level, "spoolss_AddFormInfo");
16696 ndr_print_ptr(ndr, "info1", r->info1);
16699 ndr_print_spoolss_AddFormInfo1(ndr, "info1", r->info1);
16705 ndr_print_ptr(ndr, "info2", r->info2);
16708 ndr_print_spoolss_AddFormInfo2(ndr, "info2", r->info2);
16714 ndr_print_bad_level(ndr, name, level);
16718 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo1 *r)
16720 if (ndr_flags & NDR_SCALARS) {
16721 NDR_CHECK(ndr_push_align(ndr, 5));
16723 uint32_t _flags_save_string = ndr->flags;
16724 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16725 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
16726 ndr->flags = _flags_save_string;
16728 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
16730 if (ndr_flags & NDR_BUFFERS) {
16732 uint32_t _flags_save_string = ndr->flags;
16733 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16734 if (r->port_name) {
16735 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->port_name));
16736 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
16738 ndr->flags = _flags_save_string;
16741 return NDR_ERR_SUCCESS;
16744 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo1 *r)
16746 uint32_t _ptr_port_name;
16747 TALLOC_CTX *_mem_save_port_name_0;
16748 if (ndr_flags & NDR_SCALARS) {
16749 NDR_CHECK(ndr_pull_align(ndr, 5));
16751 uint32_t _flags_save_string = ndr->flags;
16752 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16753 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
16754 if (_ptr_port_name) {
16755 NDR_PULL_ALLOC(ndr, r->port_name);
16756 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
16758 r->port_name = NULL;
16760 ndr->flags = _flags_save_string;
16762 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
16764 if (ndr_flags & NDR_BUFFERS) {
16766 uint32_t _flags_save_string = ndr->flags;
16767 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16768 if (r->port_name) {
16769 uint32_t _relative_save_offset;
16770 _relative_save_offset = ndr->offset;
16771 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
16772 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16773 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
16774 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
16775 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
16776 if (ndr->offset > ndr->relative_highest_offset) {
16777 ndr->relative_highest_offset = ndr->offset;
16779 ndr->offset = _relative_save_offset;
16781 ndr->flags = _flags_save_string;
16784 return NDR_ERR_SUCCESS;
16787 _PUBLIC_ void ndr_print_spoolss_PortInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo1 *r)
16789 ndr_print_struct(ndr, name, "spoolss_PortInfo1");
16791 ndr_print_ptr(ndr, "port_name", r->port_name);
16793 if (r->port_name) {
16794 ndr_print_string(ndr, "port_name", r->port_name);
16800 _PUBLIC_ size_t ndr_size_spoolss_PortInfo1(const struct spoolss_PortInfo1 *r, struct smb_iconv_convenience *ic, int flags)
16802 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfo1, ic);
16805 static enum ndr_err_code ndr_push_spoolss_PortType(struct ndr_push *ndr, int ndr_flags, uint32_t r)
16807 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
16808 return NDR_ERR_SUCCESS;
16811 static enum ndr_err_code ndr_pull_spoolss_PortType(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
16814 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
16816 return NDR_ERR_SUCCESS;
16819 _PUBLIC_ void ndr_print_spoolss_PortType(struct ndr_print *ndr, const char *name, uint32_t r)
16821 ndr_print_uint32(ndr, name, r);
16823 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_WRITE", SPOOLSS_PORT_TYPE_WRITE, r);
16824 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_READ", SPOOLSS_PORT_TYPE_READ, r);
16825 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_REDIRECTED", SPOOLSS_PORT_TYPE_REDIRECTED, r);
16826 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_NET_ATTACHED", SPOOLSS_PORT_TYPE_NET_ATTACHED, r);
16830 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo2 *r)
16832 if (ndr_flags & NDR_SCALARS) {
16833 NDR_CHECK(ndr_push_align(ndr, 5));
16835 uint32_t _flags_save_string = ndr->flags;
16836 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16837 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
16838 ndr->flags = _flags_save_string;
16841 uint32_t _flags_save_string = ndr->flags;
16842 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16843 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
16844 ndr->flags = _flags_save_string;
16847 uint32_t _flags_save_string = ndr->flags;
16848 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16849 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->description));
16850 ndr->flags = _flags_save_string;
16852 NDR_CHECK(ndr_push_spoolss_PortType(ndr, NDR_SCALARS, r->port_type));
16853 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
16854 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
16856 if (ndr_flags & NDR_BUFFERS) {
16858 uint32_t _flags_save_string = ndr->flags;
16859 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16860 if (r->port_name) {
16861 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->port_name));
16862 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
16864 ndr->flags = _flags_save_string;
16867 uint32_t _flags_save_string = ndr->flags;
16868 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16869 if (r->monitor_name) {
16870 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
16871 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
16873 ndr->flags = _flags_save_string;
16876 uint32_t _flags_save_string = ndr->flags;
16877 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16878 if (r->description) {
16879 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->description));
16880 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->description));
16882 ndr->flags = _flags_save_string;
16885 return NDR_ERR_SUCCESS;
16888 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo2 *r)
16890 uint32_t _ptr_port_name;
16891 TALLOC_CTX *_mem_save_port_name_0;
16892 uint32_t _ptr_monitor_name;
16893 TALLOC_CTX *_mem_save_monitor_name_0;
16894 uint32_t _ptr_description;
16895 TALLOC_CTX *_mem_save_description_0;
16896 if (ndr_flags & NDR_SCALARS) {
16897 NDR_CHECK(ndr_pull_align(ndr, 5));
16899 uint32_t _flags_save_string = ndr->flags;
16900 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16901 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
16902 if (_ptr_port_name) {
16903 NDR_PULL_ALLOC(ndr, r->port_name);
16904 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
16906 r->port_name = NULL;
16908 ndr->flags = _flags_save_string;
16911 uint32_t _flags_save_string = ndr->flags;
16912 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16913 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
16914 if (_ptr_monitor_name) {
16915 NDR_PULL_ALLOC(ndr, r->monitor_name);
16916 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
16918 r->monitor_name = NULL;
16920 ndr->flags = _flags_save_string;
16923 uint32_t _flags_save_string = ndr->flags;
16924 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16925 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
16926 if (_ptr_description) {
16927 NDR_PULL_ALLOC(ndr, r->description);
16928 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->description, _ptr_description));
16930 r->description = NULL;
16932 ndr->flags = _flags_save_string;
16934 NDR_CHECK(ndr_pull_spoolss_PortType(ndr, NDR_SCALARS, &r->port_type));
16935 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
16936 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
16938 if (ndr_flags & NDR_BUFFERS) {
16940 uint32_t _flags_save_string = ndr->flags;
16941 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16942 if (r->port_name) {
16943 uint32_t _relative_save_offset;
16944 _relative_save_offset = ndr->offset;
16945 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
16946 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16947 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
16948 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
16949 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
16950 if (ndr->offset > ndr->relative_highest_offset) {
16951 ndr->relative_highest_offset = ndr->offset;
16953 ndr->offset = _relative_save_offset;
16955 ndr->flags = _flags_save_string;
16958 uint32_t _flags_save_string = ndr->flags;
16959 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16960 if (r->monitor_name) {
16961 uint32_t _relative_save_offset;
16962 _relative_save_offset = ndr->offset;
16963 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
16964 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16965 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
16966 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
16967 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
16968 if (ndr->offset > ndr->relative_highest_offset) {
16969 ndr->relative_highest_offset = ndr->offset;
16971 ndr->offset = _relative_save_offset;
16973 ndr->flags = _flags_save_string;
16976 uint32_t _flags_save_string = ndr->flags;
16977 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16978 if (r->description) {
16979 uint32_t _relative_save_offset;
16980 _relative_save_offset = ndr->offset;
16981 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->description));
16982 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
16983 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
16984 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->description));
16985 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
16986 if (ndr->offset > ndr->relative_highest_offset) {
16987 ndr->relative_highest_offset = ndr->offset;
16989 ndr->offset = _relative_save_offset;
16991 ndr->flags = _flags_save_string;
16994 return NDR_ERR_SUCCESS;
16997 _PUBLIC_ void ndr_print_spoolss_PortInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo2 *r)
16999 ndr_print_struct(ndr, name, "spoolss_PortInfo2");
17001 ndr_print_ptr(ndr, "port_name", r->port_name);
17003 if (r->port_name) {
17004 ndr_print_string(ndr, "port_name", r->port_name);
17007 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
17009 if (r->monitor_name) {
17010 ndr_print_string(ndr, "monitor_name", r->monitor_name);
17013 ndr_print_ptr(ndr, "description", r->description);
17015 if (r->description) {
17016 ndr_print_string(ndr, "description", r->description);
17019 ndr_print_spoolss_PortType(ndr, "port_type", r->port_type);
17020 ndr_print_uint32(ndr, "reserved", r->reserved);
17024 _PUBLIC_ size_t ndr_size_spoolss_PortInfo2(const struct spoolss_PortInfo2 *r, struct smb_iconv_convenience *ic, int flags)
17026 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfo2, ic);
17029 static enum ndr_err_code ndr_push_spoolss_PortStatus(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortStatus r)
17031 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
17032 return NDR_ERR_SUCCESS;
17035 static enum ndr_err_code ndr_pull_spoolss_PortStatus(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortStatus *r)
17038 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
17040 return NDR_ERR_SUCCESS;
17043 _PUBLIC_ void ndr_print_spoolss_PortStatus(struct ndr_print *ndr, const char *name, enum spoolss_PortStatus r)
17045 const char *val = NULL;
17048 case PORT_STATUS_CLEAR: val = "PORT_STATUS_CLEAR"; break;
17049 case PORT_STATUS_OFFLINE: val = "PORT_STATUS_OFFLINE"; break;
17050 case PORT_STATUS_PAPER_JAM: val = "PORT_STATUS_PAPER_JAM"; break;
17051 case PORT_STATUS_PAPER_OUT: val = "PORT_STATUS_PAPER_OUT"; break;
17052 case PORT_STATUS_OUTPUT_BIN_FULL: val = "PORT_STATUS_OUTPUT_BIN_FULL"; break;
17053 case PORT_STATUS_PAPER_PROBLEM: val = "PORT_STATUS_PAPER_PROBLEM"; break;
17054 case PORT_STATUS_NO_TONER: val = "PORT_STATUS_NO_TONER"; break;
17055 case PORT_STATUS_DOOR_OPEN: val = "PORT_STATUS_DOOR_OPEN"; break;
17056 case PORT_STATUS_USER_INTERVENTION: val = "PORT_STATUS_USER_INTERVENTION"; break;
17057 case PORT_STATUS_OUT_OF_MEMORY: val = "PORT_STATUS_OUT_OF_MEMORY"; break;
17058 case PORT_STATUS_TONER_LOW: val = "PORT_STATUS_TONER_LOW"; break;
17059 case PORT_STATUS_WARMING_UP: val = "PORT_STATUS_WARMING_UP"; break;
17060 case PORT_STATUS_POWER_SAVE: val = "PORT_STATUS_POWER_SAVE"; break;
17062 ndr_print_enum(ndr, name, "ENUM", val, r);
17065 static enum ndr_err_code ndr_push_spoolss_PortSeverity(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortSeverity r)
17067 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
17068 return NDR_ERR_SUCCESS;
17071 static enum ndr_err_code ndr_pull_spoolss_PortSeverity(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortSeverity *r)
17074 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
17076 return NDR_ERR_SUCCESS;
17079 _PUBLIC_ void ndr_print_spoolss_PortSeverity(struct ndr_print *ndr, const char *name, enum spoolss_PortSeverity r)
17081 const char *val = NULL;
17084 case PORT_STATUS_TYPE_ERROR: val = "PORT_STATUS_TYPE_ERROR"; break;
17085 case PORT_STATUS_TYPE_WARNING: val = "PORT_STATUS_TYPE_WARNING"; break;
17086 case PORT_STATUS_TYPE_INFO: val = "PORT_STATUS_TYPE_INFO"; break;
17088 ndr_print_enum(ndr, name, "ENUM", val, r);
17091 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo3 *r)
17093 if (ndr_flags & NDR_SCALARS) {
17094 NDR_CHECK(ndr_push_align(ndr, 5));
17095 NDR_CHECK(ndr_push_spoolss_PortStatus(ndr, NDR_SCALARS, r->status));
17097 uint32_t _flags_save_string = ndr->flags;
17098 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17099 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->status_string));
17100 ndr->flags = _flags_save_string;
17102 NDR_CHECK(ndr_push_spoolss_PortSeverity(ndr, NDR_SCALARS, r->severity));
17103 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17105 if (ndr_flags & NDR_BUFFERS) {
17107 uint32_t _flags_save_string = ndr->flags;
17108 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17109 if (r->status_string) {
17110 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->status_string));
17111 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->status_string));
17113 ndr->flags = _flags_save_string;
17116 return NDR_ERR_SUCCESS;
17119 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo3 *r)
17121 uint32_t _ptr_status_string;
17122 TALLOC_CTX *_mem_save_status_string_0;
17123 if (ndr_flags & NDR_SCALARS) {
17124 NDR_CHECK(ndr_pull_align(ndr, 5));
17125 NDR_CHECK(ndr_pull_spoolss_PortStatus(ndr, NDR_SCALARS, &r->status));
17127 uint32_t _flags_save_string = ndr->flags;
17128 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17129 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_status_string));
17130 if (_ptr_status_string) {
17131 NDR_PULL_ALLOC(ndr, r->status_string);
17132 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->status_string, _ptr_status_string));
17134 r->status_string = NULL;
17136 ndr->flags = _flags_save_string;
17138 NDR_CHECK(ndr_pull_spoolss_PortSeverity(ndr, NDR_SCALARS, &r->severity));
17139 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17141 if (ndr_flags & NDR_BUFFERS) {
17143 uint32_t _flags_save_string = ndr->flags;
17144 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17145 if (r->status_string) {
17146 uint32_t _relative_save_offset;
17147 _relative_save_offset = ndr->offset;
17148 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->status_string));
17149 _mem_save_status_string_0 = NDR_PULL_GET_MEM_CTX(ndr);
17150 NDR_PULL_SET_MEM_CTX(ndr, r->status_string, 0);
17151 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->status_string));
17152 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_string_0, 0);
17153 if (ndr->offset > ndr->relative_highest_offset) {
17154 ndr->relative_highest_offset = ndr->offset;
17156 ndr->offset = _relative_save_offset;
17158 ndr->flags = _flags_save_string;
17161 return NDR_ERR_SUCCESS;
17164 _PUBLIC_ void ndr_print_spoolss_PortInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo3 *r)
17166 ndr_print_struct(ndr, name, "spoolss_PortInfo3");
17168 ndr_print_spoolss_PortStatus(ndr, "status", r->status);
17169 ndr_print_ptr(ndr, "status_string", r->status_string);
17171 if (r->status_string) {
17172 ndr_print_string(ndr, "status_string", r->status_string);
17175 ndr_print_spoolss_PortSeverity(ndr, "severity", r->severity);
17179 _PUBLIC_ size_t ndr_size_spoolss_PortInfo3(const struct spoolss_PortInfo3 *r, struct smb_iconv_convenience *ic, int flags)
17181 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfo3, ic);
17184 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfoFF(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfoFF *r)
17186 if (ndr_flags & NDR_SCALARS) {
17187 NDR_CHECK(ndr_push_align(ndr, 5));
17189 uint32_t _flags_save_string = ndr->flags;
17190 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17191 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
17192 ndr->flags = _flags_save_string;
17194 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->monitor_data));
17195 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17197 if (ndr_flags & NDR_BUFFERS) {
17199 uint32_t _flags_save_string = ndr->flags;
17200 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17201 if (r->port_name) {
17202 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->port_name));
17203 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
17205 ndr->flags = _flags_save_string;
17208 return NDR_ERR_SUCCESS;
17211 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfoFF(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfoFF *r)
17213 uint32_t _ptr_port_name;
17214 TALLOC_CTX *_mem_save_port_name_0;
17215 if (ndr_flags & NDR_SCALARS) {
17216 NDR_CHECK(ndr_pull_align(ndr, 5));
17218 uint32_t _flags_save_string = ndr->flags;
17219 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17220 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
17221 if (_ptr_port_name) {
17222 NDR_PULL_ALLOC(ndr, r->port_name);
17223 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
17225 r->port_name = NULL;
17227 ndr->flags = _flags_save_string;
17229 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->monitor_data));
17230 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17232 if (ndr_flags & NDR_BUFFERS) {
17234 uint32_t _flags_save_string = ndr->flags;
17235 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17236 if (r->port_name) {
17237 uint32_t _relative_save_offset;
17238 _relative_save_offset = ndr->offset;
17239 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
17240 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17241 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
17242 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
17243 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
17244 if (ndr->offset > ndr->relative_highest_offset) {
17245 ndr->relative_highest_offset = ndr->offset;
17247 ndr->offset = _relative_save_offset;
17249 ndr->flags = _flags_save_string;
17252 return NDR_ERR_SUCCESS;
17255 _PUBLIC_ void ndr_print_spoolss_PortInfoFF(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfoFF *r)
17257 ndr_print_struct(ndr, name, "spoolss_PortInfoFF");
17259 ndr_print_ptr(ndr, "port_name", r->port_name);
17261 if (r->port_name) {
17262 ndr_print_string(ndr, "port_name", r->port_name);
17265 ndr_print_DATA_BLOB(ndr, "monitor_data", r->monitor_data);
17269 _PUBLIC_ size_t ndr_size_spoolss_PortInfoFF(const struct spoolss_PortInfoFF *r, struct smb_iconv_convenience *ic, int flags)
17271 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfoFF, ic);
17274 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PortInfo *r)
17276 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
17277 if (ndr_flags & NDR_SCALARS) {
17278 int level = ndr_push_get_switch_value(ndr, r);
17279 NDR_CHECK(ndr_push_union_align(ndr, 5));
17282 NDR_CHECK(ndr_push_align(ndr, 5));
17283 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
17284 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr, NDR_SCALARS, &r->info1));
17288 NDR_CHECK(ndr_push_align(ndr, 5));
17289 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
17290 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr, NDR_SCALARS, &r->info2));
17294 NDR_CHECK(ndr_push_align(ndr, 5));
17295 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
17296 NDR_CHECK(ndr_push_spoolss_PortInfo3(ndr, NDR_SCALARS, &r->info3));
17300 NDR_CHECK(ndr_push_align(ndr, 5));
17301 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
17302 NDR_CHECK(ndr_push_spoolss_PortInfoFF(ndr, NDR_SCALARS, &r->infoFF));
17310 if (ndr_flags & NDR_BUFFERS) {
17311 int level = ndr_push_get_switch_value(ndr, r);
17312 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
17315 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr, NDR_BUFFERS, &r->info1));
17319 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr, NDR_BUFFERS, &r->info2));
17323 NDR_CHECK(ndr_push_spoolss_PortInfo3(ndr, NDR_BUFFERS, &r->info3));
17327 NDR_CHECK(ndr_push_spoolss_PortInfoFF(ndr, NDR_BUFFERS, &r->infoFF));
17335 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
17336 return NDR_ERR_SUCCESS;
17339 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PortInfo *r)
17341 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
17343 level = ndr_pull_get_switch_value(ndr, r);
17344 if (ndr_flags & NDR_SCALARS) {
17345 NDR_CHECK(ndr_pull_union_align(ndr, 5));
17348 NDR_CHECK(ndr_pull_align(ndr, 5));
17349 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
17350 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr, NDR_SCALARS, &r->info1));
17354 NDR_CHECK(ndr_pull_align(ndr, 5));
17355 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
17356 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr, NDR_SCALARS, &r->info2));
17360 NDR_CHECK(ndr_pull_align(ndr, 5));
17361 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
17362 NDR_CHECK(ndr_pull_spoolss_PortInfo3(ndr, NDR_SCALARS, &r->info3));
17366 NDR_CHECK(ndr_pull_align(ndr, 5));
17367 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
17368 NDR_CHECK(ndr_pull_spoolss_PortInfoFF(ndr, NDR_SCALARS, &r->infoFF));
17376 if (ndr_flags & NDR_BUFFERS) {
17377 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
17380 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr, NDR_BUFFERS, &r->info1));
17384 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr, NDR_BUFFERS, &r->info2));
17388 NDR_CHECK(ndr_pull_spoolss_PortInfo3(ndr, NDR_BUFFERS, &r->info3));
17392 NDR_CHECK(ndr_pull_spoolss_PortInfoFF(ndr, NDR_BUFFERS, &r->infoFF));
17400 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
17401 return NDR_ERR_SUCCESS;
17404 _PUBLIC_ void ndr_print_spoolss_PortInfo(struct ndr_print *ndr, const char *name, const union spoolss_PortInfo *r)
17407 level = ndr_print_get_switch_value(ndr, r);
17408 ndr_print_union(ndr, name, level, "spoolss_PortInfo");
17411 ndr_print_spoolss_PortInfo1(ndr, "info1", &r->info1);
17415 ndr_print_spoolss_PortInfo2(ndr, "info2", &r->info2);
17419 ndr_print_spoolss_PortInfo3(ndr, "info3", &r->info3);
17423 ndr_print_spoolss_PortInfoFF(ndr, "infoFF", &r->infoFF);
17432 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorInfo1 *r)
17434 if (ndr_flags & NDR_SCALARS) {
17435 NDR_CHECK(ndr_push_align(ndr, 5));
17437 uint32_t _flags_save_string = ndr->flags;
17438 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17439 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
17440 ndr->flags = _flags_save_string;
17442 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17444 if (ndr_flags & NDR_BUFFERS) {
17446 uint32_t _flags_save_string = ndr->flags;
17447 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17448 if (r->monitor_name) {
17449 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
17450 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
17452 ndr->flags = _flags_save_string;
17455 return NDR_ERR_SUCCESS;
17458 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorInfo1 *r)
17460 uint32_t _ptr_monitor_name;
17461 TALLOC_CTX *_mem_save_monitor_name_0;
17462 if (ndr_flags & NDR_SCALARS) {
17463 NDR_CHECK(ndr_pull_align(ndr, 5));
17465 uint32_t _flags_save_string = ndr->flags;
17466 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17467 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
17468 if (_ptr_monitor_name) {
17469 NDR_PULL_ALLOC(ndr, r->monitor_name);
17470 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
17472 r->monitor_name = NULL;
17474 ndr->flags = _flags_save_string;
17476 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17478 if (ndr_flags & NDR_BUFFERS) {
17480 uint32_t _flags_save_string = ndr->flags;
17481 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17482 if (r->monitor_name) {
17483 uint32_t _relative_save_offset;
17484 _relative_save_offset = ndr->offset;
17485 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
17486 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17487 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
17488 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
17489 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
17490 if (ndr->offset > ndr->relative_highest_offset) {
17491 ndr->relative_highest_offset = ndr->offset;
17493 ndr->offset = _relative_save_offset;
17495 ndr->flags = _flags_save_string;
17498 return NDR_ERR_SUCCESS;
17501 _PUBLIC_ void ndr_print_spoolss_MonitorInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorInfo1 *r)
17503 ndr_print_struct(ndr, name, "spoolss_MonitorInfo1");
17505 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
17507 if (r->monitor_name) {
17508 ndr_print_string(ndr, "monitor_name", r->monitor_name);
17514 _PUBLIC_ size_t ndr_size_spoolss_MonitorInfo1(const struct spoolss_MonitorInfo1 *r, struct smb_iconv_convenience *ic, int flags)
17516 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_MonitorInfo1, ic);
17519 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorInfo2 *r)
17521 if (ndr_flags & NDR_SCALARS) {
17522 NDR_CHECK(ndr_push_align(ndr, 5));
17524 uint32_t _flags_save_string = ndr->flags;
17525 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17526 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
17527 ndr->flags = _flags_save_string;
17530 uint32_t _flags_save_string = ndr->flags;
17531 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17532 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->environment));
17533 ndr->flags = _flags_save_string;
17536 uint32_t _flags_save_string = ndr->flags;
17537 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17538 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dll_name));
17539 ndr->flags = _flags_save_string;
17541 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17543 if (ndr_flags & NDR_BUFFERS) {
17545 uint32_t _flags_save_string = ndr->flags;
17546 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17547 if (r->monitor_name) {
17548 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
17549 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
17551 ndr->flags = _flags_save_string;
17554 uint32_t _flags_save_string = ndr->flags;
17555 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17556 if (r->environment) {
17557 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->environment));
17558 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->environment));
17560 ndr->flags = _flags_save_string;
17563 uint32_t _flags_save_string = ndr->flags;
17564 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17566 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dll_name));
17567 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dll_name));
17569 ndr->flags = _flags_save_string;
17572 return NDR_ERR_SUCCESS;
17575 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorInfo2 *r)
17577 uint32_t _ptr_monitor_name;
17578 TALLOC_CTX *_mem_save_monitor_name_0;
17579 uint32_t _ptr_environment;
17580 TALLOC_CTX *_mem_save_environment_0;
17581 uint32_t _ptr_dll_name;
17582 TALLOC_CTX *_mem_save_dll_name_0;
17583 if (ndr_flags & NDR_SCALARS) {
17584 NDR_CHECK(ndr_pull_align(ndr, 5));
17586 uint32_t _flags_save_string = ndr->flags;
17587 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17588 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
17589 if (_ptr_monitor_name) {
17590 NDR_PULL_ALLOC(ndr, r->monitor_name);
17591 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
17593 r->monitor_name = NULL;
17595 ndr->flags = _flags_save_string;
17598 uint32_t _flags_save_string = ndr->flags;
17599 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17600 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
17601 if (_ptr_environment) {
17602 NDR_PULL_ALLOC(ndr, r->environment);
17603 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->environment, _ptr_environment));
17605 r->environment = NULL;
17607 ndr->flags = _flags_save_string;
17610 uint32_t _flags_save_string = ndr->flags;
17611 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17612 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dll_name));
17613 if (_ptr_dll_name) {
17614 NDR_PULL_ALLOC(ndr, r->dll_name);
17615 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dll_name, _ptr_dll_name));
17617 r->dll_name = NULL;
17619 ndr->flags = _flags_save_string;
17621 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17623 if (ndr_flags & NDR_BUFFERS) {
17625 uint32_t _flags_save_string = ndr->flags;
17626 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17627 if (r->monitor_name) {
17628 uint32_t _relative_save_offset;
17629 _relative_save_offset = ndr->offset;
17630 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
17631 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17632 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
17633 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
17634 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
17635 if (ndr->offset > ndr->relative_highest_offset) {
17636 ndr->relative_highest_offset = ndr->offset;
17638 ndr->offset = _relative_save_offset;
17640 ndr->flags = _flags_save_string;
17643 uint32_t _flags_save_string = ndr->flags;
17644 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17645 if (r->environment) {
17646 uint32_t _relative_save_offset;
17647 _relative_save_offset = ndr->offset;
17648 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->environment));
17649 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
17650 NDR_PULL_SET_MEM_CTX(ndr, r->environment, 0);
17651 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->environment));
17652 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
17653 if (ndr->offset > ndr->relative_highest_offset) {
17654 ndr->relative_highest_offset = ndr->offset;
17656 ndr->offset = _relative_save_offset;
17658 ndr->flags = _flags_save_string;
17661 uint32_t _flags_save_string = ndr->flags;
17662 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17664 uint32_t _relative_save_offset;
17665 _relative_save_offset = ndr->offset;
17666 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dll_name));
17667 _mem_save_dll_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17668 NDR_PULL_SET_MEM_CTX(ndr, r->dll_name, 0);
17669 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->dll_name));
17670 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dll_name_0, 0);
17671 if (ndr->offset > ndr->relative_highest_offset) {
17672 ndr->relative_highest_offset = ndr->offset;
17674 ndr->offset = _relative_save_offset;
17676 ndr->flags = _flags_save_string;
17679 return NDR_ERR_SUCCESS;
17682 _PUBLIC_ void ndr_print_spoolss_MonitorInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorInfo2 *r)
17684 ndr_print_struct(ndr, name, "spoolss_MonitorInfo2");
17686 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
17688 if (r->monitor_name) {
17689 ndr_print_string(ndr, "monitor_name", r->monitor_name);
17692 ndr_print_ptr(ndr, "environment", r->environment);
17694 if (r->environment) {
17695 ndr_print_string(ndr, "environment", r->environment);
17698 ndr_print_ptr(ndr, "dll_name", r->dll_name);
17701 ndr_print_string(ndr, "dll_name", r->dll_name);
17707 _PUBLIC_ size_t ndr_size_spoolss_MonitorInfo2(const struct spoolss_MonitorInfo2 *r, struct smb_iconv_convenience *ic, int flags)
17709 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_MonitorInfo2, ic);
17712 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_MonitorInfo *r)
17714 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
17715 if (ndr_flags & NDR_SCALARS) {
17716 int level = ndr_push_get_switch_value(ndr, r);
17717 NDR_CHECK(ndr_push_union_align(ndr, 5));
17720 NDR_CHECK(ndr_push_align(ndr, 5));
17721 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
17722 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr, NDR_SCALARS, &r->info1));
17726 NDR_CHECK(ndr_push_align(ndr, 5));
17727 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
17728 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr, NDR_SCALARS, &r->info2));
17736 if (ndr_flags & NDR_BUFFERS) {
17737 int level = ndr_push_get_switch_value(ndr, r);
17738 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
17741 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr, NDR_BUFFERS, &r->info1));
17745 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr, NDR_BUFFERS, &r->info2));
17753 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
17754 return NDR_ERR_SUCCESS;
17757 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_MonitorInfo *r)
17759 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
17761 level = ndr_pull_get_switch_value(ndr, r);
17762 if (ndr_flags & NDR_SCALARS) {
17763 NDR_CHECK(ndr_pull_union_align(ndr, 5));
17766 NDR_CHECK(ndr_pull_align(ndr, 5));
17767 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
17768 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr, NDR_SCALARS, &r->info1));
17772 NDR_CHECK(ndr_pull_align(ndr, 5));
17773 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
17774 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr, NDR_SCALARS, &r->info2));
17782 if (ndr_flags & NDR_BUFFERS) {
17783 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
17786 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr, NDR_BUFFERS, &r->info1));
17790 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr, NDR_BUFFERS, &r->info2));
17798 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
17799 return NDR_ERR_SUCCESS;
17802 _PUBLIC_ void ndr_print_spoolss_MonitorInfo(struct ndr_print *ndr, const char *name, const union spoolss_MonitorInfo *r)
17805 level = ndr_print_get_switch_value(ndr, r);
17806 ndr_print_union(ndr, name, level, "spoolss_MonitorInfo");
17809 ndr_print_spoolss_MonitorInfo1(ndr, "info1", &r->info1);
17813 ndr_print_spoolss_MonitorInfo2(ndr, "info2", &r->info2);
17822 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcDataTypesInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcDataTypesInfo1 *r)
17824 if (ndr_flags & NDR_SCALARS) {
17825 NDR_CHECK(ndr_push_align(ndr, 5));
17827 uint32_t _flags_save_string = ndr->flags;
17828 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17829 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->name_array));
17830 ndr->flags = _flags_save_string;
17832 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17834 if (ndr_flags & NDR_BUFFERS) {
17836 uint32_t _flags_save_string = ndr->flags;
17837 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17838 if (r->name_array) {
17839 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->name_array));
17840 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->name_array));
17842 ndr->flags = _flags_save_string;
17845 return NDR_ERR_SUCCESS;
17848 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcDataTypesInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcDataTypesInfo1 *r)
17850 uint32_t _ptr_name_array;
17851 TALLOC_CTX *_mem_save_name_array_0;
17852 if (ndr_flags & NDR_SCALARS) {
17853 NDR_CHECK(ndr_pull_align(ndr, 5));
17855 uint32_t _flags_save_string = ndr->flags;
17856 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17857 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name_array));
17858 if (_ptr_name_array) {
17859 NDR_PULL_ALLOC(ndr, r->name_array);
17860 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->name_array, _ptr_name_array));
17862 r->name_array = NULL;
17864 ndr->flags = _flags_save_string;
17866 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17868 if (ndr_flags & NDR_BUFFERS) {
17870 uint32_t _flags_save_string = ndr->flags;
17871 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17872 if (r->name_array) {
17873 uint32_t _relative_save_offset;
17874 _relative_save_offset = ndr->offset;
17875 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->name_array));
17876 _mem_save_name_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
17877 NDR_PULL_SET_MEM_CTX(ndr, r->name_array, 0);
17878 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->name_array));
17879 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_array_0, 0);
17880 if (ndr->offset > ndr->relative_highest_offset) {
17881 ndr->relative_highest_offset = ndr->offset;
17883 ndr->offset = _relative_save_offset;
17885 ndr->flags = _flags_save_string;
17888 return NDR_ERR_SUCCESS;
17891 _PUBLIC_ void ndr_print_spoolss_PrintProcDataTypesInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcDataTypesInfo1 *r)
17893 ndr_print_struct(ndr, name, "spoolss_PrintProcDataTypesInfo1");
17895 ndr_print_ptr(ndr, "name_array", r->name_array);
17897 if (r->name_array) {
17898 ndr_print_string(ndr, "name_array", r->name_array);
17904 _PUBLIC_ size_t ndr_size_spoolss_PrintProcDataTypesInfo1(const struct spoolss_PrintProcDataTypesInfo1 *r, struct smb_iconv_convenience *ic, int flags)
17906 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcDataTypesInfo1, ic);
17909 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcDataTypesInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcDataTypesInfo *r)
17911 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
17912 if (ndr_flags & NDR_SCALARS) {
17913 int level = ndr_push_get_switch_value(ndr, r);
17914 NDR_CHECK(ndr_push_union_align(ndr, 5));
17917 NDR_CHECK(ndr_push_align(ndr, 5));
17918 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
17919 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo1(ndr, NDR_SCALARS, &r->info1));
17927 if (ndr_flags & NDR_BUFFERS) {
17928 int level = ndr_push_get_switch_value(ndr, r);
17929 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
17932 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo1(ndr, NDR_BUFFERS, &r->info1));
17940 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
17941 return NDR_ERR_SUCCESS;
17944 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcDataTypesInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcDataTypesInfo *r)
17946 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
17948 level = ndr_pull_get_switch_value(ndr, r);
17949 if (ndr_flags & NDR_SCALARS) {
17950 NDR_CHECK(ndr_pull_union_align(ndr, 5));
17953 NDR_CHECK(ndr_pull_align(ndr, 5));
17954 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
17955 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo1(ndr, NDR_SCALARS, &r->info1));
17963 if (ndr_flags & NDR_BUFFERS) {
17964 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
17967 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo1(ndr, NDR_BUFFERS, &r->info1));
17975 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
17976 return NDR_ERR_SUCCESS;
17979 _PUBLIC_ void ndr_print_spoolss_PrintProcDataTypesInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcDataTypesInfo *r)
17982 level = ndr_print_get_switch_value(ndr, r);
17983 ndr_print_union(ndr, name, level, "spoolss_PrintProcDataTypesInfo");
17986 ndr_print_spoolss_PrintProcDataTypesInfo1(ndr, "info1", &r->info1);
17995 static enum ndr_err_code ndr_push_spoolss_PrinterChangeFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
17997 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
17998 return NDR_ERR_SUCCESS;
18001 static enum ndr_err_code ndr_pull_spoolss_PrinterChangeFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
18004 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
18006 return NDR_ERR_SUCCESS;
18009 _PUBLIC_ void ndr_print_spoolss_PrinterChangeFlags(struct ndr_print *ndr, const char *name, uint32_t r)
18011 ndr_print_uint32(ndr, name, r);
18013 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER", PRINTER_CHANGE_ADD_PRINTER, r);
18014 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER", PRINTER_CHANGE_SET_PRINTER, r);
18015 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER", PRINTER_CHANGE_DELETE_PRINTER, r);
18016 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_FAILED_CONNECTION_PRINTER", PRINTER_CHANGE_FAILED_CONNECTION_PRINTER, r);
18017 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_JOB", PRINTER_CHANGE_ADD_JOB, r);
18018 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_JOB", PRINTER_CHANGE_SET_JOB, r);
18019 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_JOB", PRINTER_CHANGE_DELETE_JOB, r);
18020 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_WRITE_JOB", PRINTER_CHANGE_WRITE_JOB, r);
18021 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_FORM", PRINTER_CHANGE_ADD_FORM, r);
18022 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_FORM", PRINTER_CHANGE_SET_FORM, r);
18023 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_FORM", PRINTER_CHANGE_DELETE_FORM, r);
18024 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PORT", PRINTER_CHANGE_ADD_PORT, r);
18025 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_CONFIGURE_PORT", PRINTER_CHANGE_CONFIGURE_PORT, r);
18026 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PORT", PRINTER_CHANGE_DELETE_PORT, r);
18027 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINT_PROCESSOR", PRINTER_CHANGE_ADD_PRINT_PROCESSOR, r);
18028 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINT_PROCESSOR", PRINTER_CHANGE_DELETE_PRINT_PROCESSOR, r);
18029 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SERVER", PRINTER_CHANGE_SERVER, r);
18030 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER_DRIVER", PRINTER_CHANGE_ADD_PRINTER_DRIVER, r);
18031 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER_DRIVER", PRINTER_CHANGE_SET_PRINTER_DRIVER, r);
18032 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER_DRIVER", PRINTER_CHANGE_DELETE_PRINTER_DRIVER, r);
18033 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_TIMEOUT", PRINTER_CHANGE_TIMEOUT, r);
18037 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobNotifyField(struct ndr_push *ndr, int ndr_flags, enum spoolss_JobNotifyField r)
18039 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
18040 return NDR_ERR_SUCCESS;
18043 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobNotifyField(struct ndr_pull *ndr, int ndr_flags, enum spoolss_JobNotifyField *r)
18046 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
18048 return NDR_ERR_SUCCESS;
18051 _PUBLIC_ void ndr_print_spoolss_JobNotifyField(struct ndr_print *ndr, const char *name, enum spoolss_JobNotifyField r)
18053 const char *val = NULL;
18056 case JOB_NOTIFY_FIELD_PRINTER_NAME: val = "JOB_NOTIFY_FIELD_PRINTER_NAME"; break;
18057 case JOB_NOTIFY_FIELD_MACHINE_NAME: val = "JOB_NOTIFY_FIELD_MACHINE_NAME"; break;
18058 case JOB_NOTIFY_FIELD_PORT_NAME: val = "JOB_NOTIFY_FIELD_PORT_NAME"; break;
18059 case JOB_NOTIFY_FIELD_USER_NAME: val = "JOB_NOTIFY_FIELD_USER_NAME"; break;
18060 case JOB_NOTIFY_FIELD_NOTIFY_NAME: val = "JOB_NOTIFY_FIELD_NOTIFY_NAME"; break;
18061 case JOB_NOTIFY_FIELD_DATATYPE: val = "JOB_NOTIFY_FIELD_DATATYPE"; break;
18062 case JOB_NOTIFY_FIELD_PRINT_PROCESSOR: val = "JOB_NOTIFY_FIELD_PRINT_PROCESSOR"; break;
18063 case JOB_NOTIFY_FIELD_PARAMETERS: val = "JOB_NOTIFY_FIELD_PARAMETERS"; break;
18064 case JOB_NOTIFY_FIELD_DRIVER_NAME: val = "JOB_NOTIFY_FIELD_DRIVER_NAME"; break;
18065 case JOB_NOTIFY_FIELD_DEVMODE: val = "JOB_NOTIFY_FIELD_DEVMODE"; break;
18066 case JOB_NOTIFY_FIELD_STATUS: val = "JOB_NOTIFY_FIELD_STATUS"; break;
18067 case JOB_NOTIFY_FIELD_STATUS_STRING: val = "JOB_NOTIFY_FIELD_STATUS_STRING"; break;
18068 case JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR: val = "JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR"; break;
18069 case JOB_NOTIFY_FIELD_DOCUMENT: val = "JOB_NOTIFY_FIELD_DOCUMENT"; break;
18070 case JOB_NOTIFY_FIELD_PRIORITY: val = "JOB_NOTIFY_FIELD_PRIORITY"; break;
18071 case JOB_NOTIFY_FIELD_POSITION: val = "JOB_NOTIFY_FIELD_POSITION"; break;
18072 case JOB_NOTIFY_FIELD_SUBMITTED: val = "JOB_NOTIFY_FIELD_SUBMITTED"; break;
18073 case JOB_NOTIFY_FIELD_START_TIME: val = "JOB_NOTIFY_FIELD_START_TIME"; break;
18074 case JOB_NOTIFY_FIELD_UNTIL_TIME: val = "JOB_NOTIFY_FIELD_UNTIL_TIME"; break;
18075 case JOB_NOTIFY_FIELD_TIME: val = "JOB_NOTIFY_FIELD_TIME"; break;
18076 case JOB_NOTIFY_FIELD_TOTAL_PAGES: val = "JOB_NOTIFY_FIELD_TOTAL_PAGES"; break;
18077 case JOB_NOTIFY_FIELD_PAGES_PRINTED: val = "JOB_NOTIFY_FIELD_PAGES_PRINTED"; break;
18078 case JOB_NOTIFY_FIELD_TOTAL_BYTES: val = "JOB_NOTIFY_FIELD_TOTAL_BYTES"; break;
18079 case JOB_NOTIFY_FIELD_BYTES_PRINTED: val = "JOB_NOTIFY_FIELD_BYTES_PRINTED"; break;
18081 ndr_print_enum(ndr, name, "ENUM", val, r);
18084 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintNotifyField(struct ndr_push *ndr, int ndr_flags, enum spoolss_PrintNotifyField r)
18086 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
18087 return NDR_ERR_SUCCESS;
18090 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintNotifyField(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PrintNotifyField *r)
18093 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
18095 return NDR_ERR_SUCCESS;
18098 _PUBLIC_ void ndr_print_spoolss_PrintNotifyField(struct ndr_print *ndr, const char *name, enum spoolss_PrintNotifyField r)
18100 const char *val = NULL;
18103 case PRINTER_NOTIFY_FIELD_SERVER_NAME: val = "PRINTER_NOTIFY_FIELD_SERVER_NAME"; break;
18104 case PRINTER_NOTIFY_FIELD_PRINTER_NAME: val = "PRINTER_NOTIFY_FIELD_PRINTER_NAME"; break;
18105 case PRINTER_NOTIFY_FIELD_SHARE_NAME: val = "PRINTER_NOTIFY_FIELD_SHARE_NAME"; break;
18106 case PRINTER_NOTIFY_FIELD_PORT_NAME: val = "PRINTER_NOTIFY_FIELD_PORT_NAME"; break;
18107 case PRINTER_NOTIFY_FIELD_DRIVER_NAME: val = "PRINTER_NOTIFY_FIELD_DRIVER_NAME"; break;
18108 case PRINTER_NOTIFY_FIELD_COMMENT: val = "PRINTER_NOTIFY_FIELD_COMMENT"; break;
18109 case PRINTER_NOTIFY_FIELD_LOCATION: val = "PRINTER_NOTIFY_FIELD_LOCATION"; break;
18110 case PRINTER_NOTIFY_FIELD_DEVMODE: val = "PRINTER_NOTIFY_FIELD_DEVMODE"; break;
18111 case PRINTER_NOTIFY_FIELD_SEPFILE: val = "PRINTER_NOTIFY_FIELD_SEPFILE"; break;
18112 case PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR: val = "PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR"; break;
18113 case PRINTER_NOTIFY_FIELD_PARAMETERS: val = "PRINTER_NOTIFY_FIELD_PARAMETERS"; break;
18114 case PRINTER_NOTIFY_FIELD_DATATYPE: val = "PRINTER_NOTIFY_FIELD_DATATYPE"; break;
18115 case PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR: val = "PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR"; break;
18116 case PRINTER_NOTIFY_FIELD_ATTRIBUTES: val = "PRINTER_NOTIFY_FIELD_ATTRIBUTES"; break;
18117 case PRINTER_NOTIFY_FIELD_PRIORITY: val = "PRINTER_NOTIFY_FIELD_PRIORITY"; break;
18118 case PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY: val = "PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY"; break;
18119 case PRINTER_NOTIFY_FIELD_START_TIME: val = "PRINTER_NOTIFY_FIELD_START_TIME"; break;
18120 case PRINTER_NOTIFY_FIELD_UNTIL_TIME: val = "PRINTER_NOTIFY_FIELD_UNTIL_TIME"; break;
18121 case PRINTER_NOTIFY_FIELD_STATUS: val = "PRINTER_NOTIFY_FIELD_STATUS"; break;
18122 case PRINTER_NOTIFY_FIELD_STATUS_STRING: val = "PRINTER_NOTIFY_FIELD_STATUS_STRING"; break;
18123 case PRINTER_NOTIFY_FIELD_CJOBS: val = "PRINTER_NOTIFY_FIELD_CJOBS"; break;
18124 case PRINTER_NOTIFY_FIELD_AVERAGE_PPM: val = "PRINTER_NOTIFY_FIELD_AVERAGE_PPM"; break;
18125 case PRINTER_NOTIFY_FIELD_TOTAL_PAGES: val = "PRINTER_NOTIFY_FIELD_TOTAL_PAGES"; break;
18126 case PRINTER_NOTIFY_FIELD_PAGES_PRINTED: val = "PRINTER_NOTIFY_FIELD_PAGES_PRINTED"; break;
18127 case PRINTER_NOTIFY_FIELD_TOTAL_BYTES: val = "PRINTER_NOTIFY_FIELD_TOTAL_BYTES"; break;
18128 case PRINTER_NOTIFY_FIELD_BYTES_PRINTED: val = "PRINTER_NOTIFY_FIELD_BYTES_PRINTED"; break;
18129 case PRINTER_NOTIFY_FIELD_OBJECT_GUID: val = "PRINTER_NOTIFY_FIELD_OBJECT_GUID"; break;
18130 case PRINTER_NOTIFY_FIELD_FRIENDLY_NAME: val = "PRINTER_NOTIFY_FIELD_FRIENDLY_NAME"; break;
18132 ndr_print_enum(ndr, name, "ENUM", val, r);
18135 static enum ndr_err_code ndr_push_spoolss_NotifyType(struct ndr_push *ndr, int ndr_flags, enum spoolss_NotifyType r)
18137 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
18138 return NDR_ERR_SUCCESS;
18141 static enum ndr_err_code ndr_pull_spoolss_NotifyType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_NotifyType *r)
18144 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
18146 return NDR_ERR_SUCCESS;
18149 _PUBLIC_ void ndr_print_spoolss_NotifyType(struct ndr_print *ndr, const char *name, enum spoolss_NotifyType r)
18151 const char *val = NULL;
18154 case PRINTER_NOTIFY_TYPE: val = "PRINTER_NOTIFY_TYPE"; break;
18155 case JOB_NOTIFY_TYPE: val = "JOB_NOTIFY_TYPE"; break;
18157 ndr_print_enum(ndr, name, "ENUM", val, r);
18160 static enum ndr_err_code ndr_push_spoolss_Field(struct ndr_push *ndr, int ndr_flags, const union spoolss_Field *r)
18162 if (ndr_flags & NDR_SCALARS) {
18163 int level = ndr_push_get_switch_value(ndr, r);
18164 NDR_CHECK(ndr_push_union_align(ndr, 2));
18166 case PRINTER_NOTIFY_TYPE: {
18167 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->field));
18170 case JOB_NOTIFY_TYPE: {
18171 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->field));
18175 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->field));
18180 if (ndr_flags & NDR_BUFFERS) {
18181 int level = ndr_push_get_switch_value(ndr, r);
18183 case PRINTER_NOTIFY_TYPE:
18186 case JOB_NOTIFY_TYPE:
18194 return NDR_ERR_SUCCESS;
18197 static enum ndr_err_code ndr_pull_spoolss_Field(struct ndr_pull *ndr, int ndr_flags, union spoolss_Field *r)
18200 level = ndr_pull_get_switch_value(ndr, r);
18201 if (ndr_flags & NDR_SCALARS) {
18202 NDR_CHECK(ndr_pull_union_align(ndr, 2));
18204 case PRINTER_NOTIFY_TYPE: {
18205 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->field));
18208 case JOB_NOTIFY_TYPE: {
18209 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->field));
18213 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->field));
18218 if (ndr_flags & NDR_BUFFERS) {
18220 case PRINTER_NOTIFY_TYPE:
18223 case JOB_NOTIFY_TYPE:
18231 return NDR_ERR_SUCCESS;
18234 static enum ndr_err_code ndr_push_spoolss_NotifyOptionType(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyOptionType *r)
18236 uint32_t cntr_fields_1;
18237 if (ndr_flags & NDR_SCALARS) {
18238 NDR_CHECK(ndr_push_align(ndr, 5));
18239 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr, NDR_SCALARS, r->type));
18240 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->u1));
18241 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u2));
18242 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u3));
18243 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
18244 NDR_CHECK(ndr_push_unique_ptr(ndr, r->fields));
18245 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18247 if (ndr_flags & NDR_BUFFERS) {
18249 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
18250 for (cntr_fields_1 = 0; cntr_fields_1 < r->count; cntr_fields_1++) {
18251 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->fields[cntr_fields_1], r->type));
18252 NDR_CHECK(ndr_push_spoolss_Field(ndr, NDR_SCALARS, &r->fields[cntr_fields_1]));
18256 return NDR_ERR_SUCCESS;
18259 static enum ndr_err_code ndr_pull_spoolss_NotifyOptionType(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyOptionType *r)
18261 uint32_t _ptr_fields;
18262 uint32_t cntr_fields_1;
18263 TALLOC_CTX *_mem_save_fields_0;
18264 TALLOC_CTX *_mem_save_fields_1;
18265 if (ndr_flags & NDR_SCALARS) {
18266 NDR_CHECK(ndr_pull_align(ndr, 5));
18267 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr, NDR_SCALARS, &r->type));
18268 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->u1));
18269 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u2));
18270 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u3));
18271 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
18272 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_fields));
18274 NDR_PULL_ALLOC(ndr, r->fields);
18278 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
18280 if (ndr_flags & NDR_BUFFERS) {
18282 _mem_save_fields_0 = NDR_PULL_GET_MEM_CTX(ndr);
18283 NDR_PULL_SET_MEM_CTX(ndr, r->fields, 0);
18284 NDR_CHECK(ndr_pull_array_size(ndr, &r->fields));
18285 NDR_PULL_ALLOC_N(ndr, r->fields, ndr_get_array_size(ndr, &r->fields));
18286 _mem_save_fields_1 = NDR_PULL_GET_MEM_CTX(ndr);
18287 NDR_PULL_SET_MEM_CTX(ndr, r->fields, 0);
18288 for (cntr_fields_1 = 0; cntr_fields_1 < r->count; cntr_fields_1++) {
18289 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->fields[cntr_fields_1], r->type));
18290 NDR_CHECK(ndr_pull_spoolss_Field(ndr, NDR_SCALARS, &r->fields[cntr_fields_1]));
18292 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fields_1, 0);
18293 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fields_0, 0);
18296 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->fields, r->count));
18299 return NDR_ERR_SUCCESS;
18302 _PUBLIC_ void ndr_print_spoolss_NotifyOptionType(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyOptionType *r)
18304 uint32_t cntr_fields_1;
18305 ndr_print_struct(ndr, name, "spoolss_NotifyOptionType");
18307 ndr_print_spoolss_NotifyType(ndr, "type", r->type);
18308 ndr_print_uint16(ndr, "u1", r->u1);
18309 ndr_print_uint32(ndr, "u2", r->u2);
18310 ndr_print_uint32(ndr, "u3", r->u3);
18311 ndr_print_uint32(ndr, "count", r->count);
18312 ndr_print_ptr(ndr, "fields", r->fields);
18315 ndr->print(ndr, "%s: ARRAY(%d)", "fields", (int)r->count);
18317 for (cntr_fields_1=0;cntr_fields_1<r->count;cntr_fields_1++) {
18319 if (asprintf(&idx_1, "[%d]", cntr_fields_1) != -1) {
18320 ndr_print_set_switch_value(ndr, &r->fields[cntr_fields_1], r->type);
18321 ndr_print_spoolss_Field(ndr, "fields", &r->fields[cntr_fields_1]);
18331 static enum ndr_err_code ndr_push_spoolssNotifyOptionFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
18333 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
18334 return NDR_ERR_SUCCESS;
18337 static enum ndr_err_code ndr_pull_spoolssNotifyOptionFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
18340 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
18342 return NDR_ERR_SUCCESS;
18345 _PUBLIC_ void ndr_print_spoolssNotifyOptionFlags(struct ndr_print *ndr, const char *name, uint32_t r)
18347 ndr_print_uint32(ndr, name, r);
18349 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_OPTIONS_REFRESH", PRINTER_NOTIFY_OPTIONS_REFRESH, r);
18353 static enum ndr_err_code ndr_push_spoolss_NotifyOption(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyOption *r)
18355 uint32_t cntr_types_1;
18356 if (ndr_flags & NDR_SCALARS) {
18357 NDR_CHECK(ndr_push_align(ndr, 5));
18358 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
18359 NDR_CHECK(ndr_push_spoolssNotifyOptionFlags(ndr, NDR_SCALARS, r->flags));
18360 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
18361 NDR_CHECK(ndr_push_unique_ptr(ndr, r->types));
18362 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18364 if (ndr_flags & NDR_BUFFERS) {
18366 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
18367 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
18368 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr, NDR_SCALARS, &r->types[cntr_types_1]));
18370 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
18371 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr, NDR_BUFFERS, &r->types[cntr_types_1]));
18375 return NDR_ERR_SUCCESS;
18378 static enum ndr_err_code ndr_pull_spoolss_NotifyOption(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyOption *r)
18380 uint32_t _ptr_types;
18381 uint32_t cntr_types_1;
18382 TALLOC_CTX *_mem_save_types_0;
18383 TALLOC_CTX *_mem_save_types_1;
18384 if (ndr_flags & NDR_SCALARS) {
18385 NDR_CHECK(ndr_pull_align(ndr, 5));
18386 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
18387 NDR_CHECK(ndr_pull_spoolssNotifyOptionFlags(ndr, NDR_SCALARS, &r->flags));
18388 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
18389 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_types));
18391 NDR_PULL_ALLOC(ndr, r->types);
18395 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
18397 if (ndr_flags & NDR_BUFFERS) {
18399 _mem_save_types_0 = NDR_PULL_GET_MEM_CTX(ndr);
18400 NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
18401 NDR_CHECK(ndr_pull_array_size(ndr, &r->types));
18402 NDR_PULL_ALLOC_N(ndr, r->types, ndr_get_array_size(ndr, &r->types));
18403 _mem_save_types_1 = NDR_PULL_GET_MEM_CTX(ndr);
18404 NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
18405 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
18406 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr, NDR_SCALARS, &r->types[cntr_types_1]));
18408 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
18409 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr, NDR_BUFFERS, &r->types[cntr_types_1]));
18411 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_1, 0);
18412 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_0, 0);
18415 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->types, r->count));
18418 return NDR_ERR_SUCCESS;
18421 _PUBLIC_ void ndr_print_spoolss_NotifyOption(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyOption *r)
18423 uint32_t cntr_types_1;
18424 ndr_print_struct(ndr, name, "spoolss_NotifyOption");
18426 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
18427 ndr_print_spoolssNotifyOptionFlags(ndr, "flags", r->flags);
18428 ndr_print_uint32(ndr, "count", r->count);
18429 ndr_print_ptr(ndr, "types", r->types);
18432 ndr->print(ndr, "%s: ARRAY(%d)", "types", (int)r->count);
18434 for (cntr_types_1=0;cntr_types_1<r->count;cntr_types_1++) {
18436 if (asprintf(&idx_1, "[%d]", cntr_types_1) != -1) {
18437 ndr_print_spoolss_NotifyOptionType(ndr, "types", &r->types[cntr_types_1]);
18447 static enum ndr_err_code ndr_push_spoolss_NotifyString(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyString *r)
18449 if (ndr_flags & NDR_SCALARS) {
18450 NDR_CHECK(ndr_push_align(ndr, 5));
18451 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
18452 NDR_CHECK(ndr_push_unique_ptr(ndr, r->string));
18453 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18455 if (ndr_flags & NDR_BUFFERS) {
18457 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->size / 2));
18458 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->string, r->size / 2, sizeof(uint16_t), CH_UTF16));
18461 return NDR_ERR_SUCCESS;
18464 static enum ndr_err_code ndr_pull_spoolss_NotifyString(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyString *r)
18466 uint32_t _ptr_string;
18467 TALLOC_CTX *_mem_save_string_0;
18468 if (ndr_flags & NDR_SCALARS) {
18469 NDR_CHECK(ndr_pull_align(ndr, 5));
18470 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
18471 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_string));
18473 NDR_PULL_ALLOC(ndr, r->string);
18477 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
18479 if (ndr_flags & NDR_BUFFERS) {
18481 _mem_save_string_0 = NDR_PULL_GET_MEM_CTX(ndr);
18482 NDR_PULL_SET_MEM_CTX(ndr, r->string, 0);
18483 NDR_CHECK(ndr_pull_array_size(ndr, &r->string));
18484 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->string, ndr_get_array_size(ndr, &r->string), sizeof(uint16_t), CH_UTF16));
18485 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_string_0, 0);
18488 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->string, r->size / 2));
18491 return NDR_ERR_SUCCESS;
18494 _PUBLIC_ void ndr_print_spoolss_NotifyString(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyString *r)
18496 ndr_print_struct(ndr, name, "spoolss_NotifyString");
18498 ndr_print_uint32(ndr, "size", r->size);
18499 ndr_print_ptr(ndr, "string", r->string);
18502 ndr_print_string(ndr, "string", r->string);
18508 static enum ndr_err_code ndr_push_spoolss_NotifyTable(struct ndr_push *ndr, int ndr_flags, enum spoolss_NotifyTable r)
18510 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
18511 return NDR_ERR_SUCCESS;
18514 static enum ndr_err_code ndr_pull_spoolss_NotifyTable(struct ndr_pull *ndr, int ndr_flags, enum spoolss_NotifyTable *r)
18517 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
18519 return NDR_ERR_SUCCESS;
18522 _PUBLIC_ void ndr_print_spoolss_NotifyTable(struct ndr_print *ndr, const char *name, enum spoolss_NotifyTable r)
18524 const char *val = NULL;
18527 case NOTIFY_TABLE_DWORD: val = "NOTIFY_TABLE_DWORD"; break;
18528 case NOTIFY_TABLE_STRING: val = "NOTIFY_TABLE_STRING"; break;
18529 case NOTIFY_TABLE_DEVMODE: val = "NOTIFY_TABLE_DEVMODE"; break;
18530 case NOTIFY_TABLE_TIME: val = "NOTIFY_TABLE_TIME"; break;
18531 case NOTIFY_TABLE_SECURITYDESCRIPTOR: val = "NOTIFY_TABLE_SECURITYDESCRIPTOR"; break;
18533 ndr_print_enum(ndr, name, "ENUM", val, r);
18536 static enum ndr_err_code ndr_push_spoolss_NotifyData(struct ndr_push *ndr, int ndr_flags, const union spoolss_NotifyData *r)
18538 if (ndr_flags & NDR_SCALARS) {
18539 int level = ndr_push_get_switch_value(ndr, r);
18540 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
18541 NDR_CHECK(ndr_push_union_align(ndr, 5));
18544 uint32_t cntr_integer_0;
18545 for (cntr_integer_0 = 0; cntr_integer_0 < 2; cntr_integer_0++) {
18546 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->integer[cntr_integer_0]));
18551 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr, NDR_SCALARS, &r->string));
18555 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS, &r->devmode));
18559 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr, NDR_SCALARS, &r->time));
18563 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sd));
18567 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18570 if (ndr_flags & NDR_BUFFERS) {
18571 int level = ndr_push_get_switch_value(ndr, r);
18577 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr, NDR_BUFFERS, &r->string));
18581 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_BUFFERS, &r->devmode));
18585 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr, NDR_BUFFERS, &r->time));
18589 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd));
18593 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18596 return NDR_ERR_SUCCESS;
18599 static enum ndr_err_code ndr_pull_spoolss_NotifyData(struct ndr_pull *ndr, int ndr_flags, union spoolss_NotifyData *r)
18603 level = ndr_pull_get_switch_value(ndr, r);
18604 if (ndr_flags & NDR_SCALARS) {
18605 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
18606 if (_level != level) {
18607 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
18609 NDR_CHECK(ndr_pull_union_align(ndr, 5));
18612 uint32_t cntr_integer_0;
18613 for (cntr_integer_0 = 0; cntr_integer_0 < 2; cntr_integer_0++) {
18614 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->integer[cntr_integer_0]));
18619 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr, NDR_SCALARS, &r->string));
18623 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS, &r->devmode));
18627 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr, NDR_SCALARS, &r->time));
18631 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sd));
18635 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18638 if (ndr_flags & NDR_BUFFERS) {
18644 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr, NDR_BUFFERS, &r->string));
18648 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_BUFFERS, &r->devmode));
18652 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr, NDR_BUFFERS, &r->time));
18656 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd));
18660 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18663 return NDR_ERR_SUCCESS;
18666 _PUBLIC_ void ndr_print_spoolss_NotifyData(struct ndr_print *ndr, const char *name, const union spoolss_NotifyData *r)
18669 uint32_t cntr_integer_0;
18670 level = ndr_print_get_switch_value(ndr, r);
18671 ndr_print_union(ndr, name, level, "spoolss_NotifyData");
18674 ndr->print(ndr, "%s: ARRAY(%d)", "integer", (int)2);
18676 for (cntr_integer_0=0;cntr_integer_0<2;cntr_integer_0++) {
18678 if (asprintf(&idx_0, "[%d]", cntr_integer_0) != -1) {
18679 ndr_print_uint32(ndr, "integer", r->integer[cntr_integer_0]);
18687 ndr_print_spoolss_NotifyString(ndr, "string", &r->string);
18691 ndr_print_spoolss_DevmodeContainer(ndr, "devmode", &r->devmode);
18695 ndr_print_spoolss_TimeCtr(ndr, "time", &r->time);
18699 ndr_print_sec_desc_buf(ndr, "sd", &r->sd);
18703 ndr_print_bad_level(ndr, name, level);
18707 static enum ndr_err_code ndr_push_spoolss_Notify(struct ndr_push *ndr, int ndr_flags, const struct spoolss_Notify *r)
18709 if (ndr_flags & NDR_SCALARS) {
18710 NDR_CHECK(ndr_push_align(ndr, 5));
18711 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr, NDR_SCALARS, r->type));
18712 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->field, r->type));
18713 NDR_CHECK(ndr_push_spoolss_Field(ndr, NDR_SCALARS, &r->field));
18714 NDR_CHECK(ndr_push_spoolss_NotifyTable(ndr, NDR_SCALARS, r->variable_type));
18715 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
18716 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->data, r->variable_type));
18717 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr, NDR_SCALARS, &r->data));
18718 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18720 if (ndr_flags & NDR_BUFFERS) {
18721 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr, NDR_BUFFERS, &r->data));
18723 return NDR_ERR_SUCCESS;
18726 static enum ndr_err_code ndr_pull_spoolss_Notify(struct ndr_pull *ndr, int ndr_flags, struct spoolss_Notify *r)
18728 if (ndr_flags & NDR_SCALARS) {
18729 NDR_CHECK(ndr_pull_align(ndr, 5));
18730 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr, NDR_SCALARS, &r->type));
18731 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->field, r->type));
18732 NDR_CHECK(ndr_pull_spoolss_Field(ndr, NDR_SCALARS, &r->field));
18733 NDR_CHECK(ndr_pull_spoolss_NotifyTable(ndr, NDR_SCALARS, &r->variable_type));
18734 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
18735 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->data, r->variable_type));
18736 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr, NDR_SCALARS, &r->data));
18737 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
18739 if (ndr_flags & NDR_BUFFERS) {
18740 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr, NDR_BUFFERS, &r->data));
18742 return NDR_ERR_SUCCESS;
18745 _PUBLIC_ void ndr_print_spoolss_Notify(struct ndr_print *ndr, const char *name, const struct spoolss_Notify *r)
18747 ndr_print_struct(ndr, name, "spoolss_Notify");
18749 ndr_print_spoolss_NotifyType(ndr, "type", r->type);
18750 ndr_print_set_switch_value(ndr, &r->field, r->type);
18751 ndr_print_spoolss_Field(ndr, "field", &r->field);
18752 ndr_print_spoolss_NotifyTable(ndr, "variable_type", r->variable_type);
18753 ndr_print_uint32(ndr, "job_id", r->job_id);
18754 ndr_print_set_switch_value(ndr, &r->data, r->variable_type);
18755 ndr_print_spoolss_NotifyData(ndr, "data", &r->data);
18759 static enum ndr_err_code ndr_push_spoolss_NotifyInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyInfo *r)
18761 uint32_t cntr_notifies_0;
18762 if (ndr_flags & NDR_SCALARS) {
18763 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
18764 NDR_CHECK(ndr_push_align(ndr, 5));
18765 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
18766 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
18767 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
18768 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
18769 NDR_CHECK(ndr_push_spoolss_Notify(ndr, NDR_SCALARS, &r->notifies[cntr_notifies_0]));
18771 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18773 if (ndr_flags & NDR_BUFFERS) {
18774 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
18775 NDR_CHECK(ndr_push_spoolss_Notify(ndr, NDR_BUFFERS, &r->notifies[cntr_notifies_0]));
18778 return NDR_ERR_SUCCESS;
18781 static enum ndr_err_code ndr_pull_spoolss_NotifyInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyInfo *r)
18783 uint32_t cntr_notifies_0;
18784 TALLOC_CTX *_mem_save_notifies_0;
18785 if (ndr_flags & NDR_SCALARS) {
18786 NDR_CHECK(ndr_pull_array_size(ndr, &r->notifies));
18787 NDR_CHECK(ndr_pull_align(ndr, 5));
18788 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
18789 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
18790 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
18791 NDR_PULL_ALLOC_N(ndr, r->notifies, ndr_get_array_size(ndr, &r->notifies));
18792 _mem_save_notifies_0 = NDR_PULL_GET_MEM_CTX(ndr);
18793 NDR_PULL_SET_MEM_CTX(ndr, r->notifies, 0);
18794 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
18795 NDR_CHECK(ndr_pull_spoolss_Notify(ndr, NDR_SCALARS, &r->notifies[cntr_notifies_0]));
18797 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notifies_0, 0);
18799 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->notifies, r->count));
18801 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
18803 if (ndr_flags & NDR_BUFFERS) {
18804 _mem_save_notifies_0 = NDR_PULL_GET_MEM_CTX(ndr);
18805 NDR_PULL_SET_MEM_CTX(ndr, r->notifies, 0);
18806 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
18807 NDR_CHECK(ndr_pull_spoolss_Notify(ndr, NDR_BUFFERS, &r->notifies[cntr_notifies_0]));
18809 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notifies_0, 0);
18811 return NDR_ERR_SUCCESS;
18814 _PUBLIC_ void ndr_print_spoolss_NotifyInfo(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyInfo *r)
18816 uint32_t cntr_notifies_0;
18817 ndr_print_struct(ndr, name, "spoolss_NotifyInfo");
18819 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
18820 ndr_print_uint32(ndr, "flags", r->flags);
18821 ndr_print_uint32(ndr, "count", r->count);
18822 ndr->print(ndr, "%s: ARRAY(%d)", "notifies", (int)r->count);
18824 for (cntr_notifies_0=0;cntr_notifies_0<r->count;cntr_notifies_0++) {
18826 if (asprintf(&idx_0, "[%d]", cntr_notifies_0) != -1) {
18827 ndr_print_spoolss_Notify(ndr, "notifies", &r->notifies[cntr_notifies_0]);
18835 static enum ndr_err_code ndr_push_spoolss_ReplyPrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_ReplyPrinterInfo *r)
18837 if (ndr_flags & NDR_SCALARS) {
18838 int level = ndr_push_get_switch_value(ndr, r);
18839 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
18840 NDR_CHECK(ndr_push_union_align(ndr, 5));
18843 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info0));
18847 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18850 if (ndr_flags & NDR_BUFFERS) {
18851 int level = ndr_push_get_switch_value(ndr, r);
18855 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
18860 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18863 return NDR_ERR_SUCCESS;
18866 static enum ndr_err_code ndr_pull_spoolss_ReplyPrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_ReplyPrinterInfo *r)
18870 TALLOC_CTX *_mem_save_info0_0;
18871 level = ndr_pull_get_switch_value(ndr, r);
18872 if (ndr_flags & NDR_SCALARS) {
18873 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
18874 if (_level != level) {
18875 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
18877 NDR_CHECK(ndr_pull_union_align(ndr, 5));
18880 uint32_t _ptr_info0;
18881 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0));
18883 NDR_PULL_ALLOC(ndr, r->info0);
18890 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18893 if (ndr_flags & NDR_BUFFERS) {
18897 _mem_save_info0_0 = NDR_PULL_GET_MEM_CTX(ndr);
18898 NDR_PULL_SET_MEM_CTX(ndr, r->info0, 0);
18899 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
18900 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info0_0, 0);
18905 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18908 return NDR_ERR_SUCCESS;
18911 _PUBLIC_ void ndr_print_spoolss_ReplyPrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_ReplyPrinterInfo *r)
18914 level = ndr_print_get_switch_value(ndr, r);
18915 ndr_print_union(ndr, name, level, "spoolss_ReplyPrinterInfo");
18918 ndr_print_ptr(ndr, "info0", r->info0);
18921 ndr_print_spoolss_NotifyInfo(ndr, "info0", r->info0);
18927 ndr_print_bad_level(ndr, name, level);
18931 static enum ndr_err_code ndr_push_spoolss_PrinterNotifyFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
18933 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
18934 return NDR_ERR_SUCCESS;
18937 static enum ndr_err_code ndr_pull_spoolss_PrinterNotifyFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
18940 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
18942 return NDR_ERR_SUCCESS;
18945 _PUBLIC_ void ndr_print_spoolss_PrinterNotifyFlags(struct ndr_print *ndr, const char *name, uint32_t r)
18947 ndr_print_uint32(ndr, name, r);
18949 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDED", PRINTER_NOTIFY_INFO_DISCARDED, r);
18950 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDNOTED", PRINTER_NOTIFY_INFO_DISCARDNOTED, r);
18951 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_COLOR_MISMATCH", PRINTER_NOTIFY_INFO_COLOR_MISMATCH, r);
18955 static enum ndr_err_code ndr_push_spoolss_UserLevel1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel1 *r)
18957 if (ndr_flags & NDR_SCALARS) {
18958 NDR_CHECK(ndr_push_align(ndr, 5));
18959 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
18960 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client));
18961 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
18962 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
18963 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr, NDR_SCALARS, r->major));
18964 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr, NDR_SCALARS, r->minor));
18965 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor));
18966 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18968 if (ndr_flags & NDR_BUFFERS) {
18970 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
18971 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
18972 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
18973 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client, ndr_charset_length(r->client, CH_UTF16), sizeof(uint16_t), CH_UTF16));
18976 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
18977 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
18978 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
18979 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
18982 return NDR_ERR_SUCCESS;
18985 static enum ndr_err_code ndr_pull_spoolss_UserLevel1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel1 *r)
18987 uint32_t _ptr_client;
18988 TALLOC_CTX *_mem_save_client_0;
18989 uint32_t _ptr_user;
18990 TALLOC_CTX *_mem_save_user_0;
18991 if (ndr_flags & NDR_SCALARS) {
18992 NDR_CHECK(ndr_pull_align(ndr, 5));
18993 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
18994 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client));
18996 NDR_PULL_ALLOC(ndr, r->client);
19000 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
19002 NDR_PULL_ALLOC(ndr, r->user);
19006 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
19007 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr, NDR_SCALARS, &r->major));
19008 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr, NDR_SCALARS, &r->minor));
19009 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor));
19010 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
19012 if (ndr_flags & NDR_BUFFERS) {
19014 _mem_save_client_0 = NDR_PULL_GET_MEM_CTX(ndr);
19015 NDR_PULL_SET_MEM_CTX(ndr, r->client, 0);
19016 NDR_CHECK(ndr_pull_array_size(ndr, &r->client));
19017 NDR_CHECK(ndr_pull_array_length(ndr, &r->client));
19018 if (ndr_get_array_length(ndr, &r->client) > ndr_get_array_size(ndr, &r->client)) {
19019 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));
19021 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t)));
19022 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t), CH_UTF16));
19023 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0);
19026 _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
19027 NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
19028 NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
19029 NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
19030 if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) {
19031 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));
19033 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t)));
19034 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16));
19035 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
19038 return NDR_ERR_SUCCESS;
19041 _PUBLIC_ void ndr_print_spoolss_UserLevel1(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel1 *r)
19043 ndr_print_struct(ndr, name, "spoolss_UserLevel1");
19045 ndr_print_uint32(ndr, "size", r->size);
19046 ndr_print_ptr(ndr, "client", r->client);
19049 ndr_print_string(ndr, "client", r->client);
19052 ndr_print_ptr(ndr, "user", r->user);
19055 ndr_print_string(ndr, "user", r->user);
19058 ndr_print_uint32(ndr, "build", r->build);
19059 ndr_print_spoolss_MajorVersion(ndr, "major", r->major);
19060 ndr_print_spoolss_MinorVersion(ndr, "minor", r->minor);
19061 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor", r->processor);
19065 static enum ndr_err_code ndr_push_spoolss_UserLevel2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel2 *r)
19067 if (ndr_flags & NDR_SCALARS) {
19068 NDR_CHECK(ndr_push_align(ndr, 4));
19069 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->not_used));
19070 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
19072 if (ndr_flags & NDR_BUFFERS) {
19074 return NDR_ERR_SUCCESS;
19077 static enum ndr_err_code ndr_pull_spoolss_UserLevel2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel2 *r)
19079 if (ndr_flags & NDR_SCALARS) {
19080 NDR_CHECK(ndr_pull_align(ndr, 4));
19081 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->not_used));
19082 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
19084 if (ndr_flags & NDR_BUFFERS) {
19086 return NDR_ERR_SUCCESS;
19089 _PUBLIC_ void ndr_print_spoolss_UserLevel2(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel2 *r)
19091 ndr_print_struct(ndr, name, "spoolss_UserLevel2");
19093 ndr_print_uint32(ndr, "not_used", r->not_used);
19097 static enum ndr_err_code ndr_push_spoolss_UserLevel3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel3 *r)
19099 if (ndr_flags & NDR_SCALARS) {
19100 NDR_CHECK(ndr_push_align(ndr, 5));
19101 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
19102 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
19103 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size2));
19104 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client));
19105 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
19106 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
19107 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr, NDR_SCALARS, r->major));
19108 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr, NDR_SCALARS, r->minor));
19109 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor));
19110 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->reserved));
19111 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
19113 if (ndr_flags & NDR_BUFFERS) {
19115 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
19116 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
19117 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
19118 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client, ndr_charset_length(r->client, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19121 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
19122 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
19123 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
19124 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19127 return NDR_ERR_SUCCESS;
19130 static enum ndr_err_code ndr_pull_spoolss_UserLevel3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel3 *r)
19132 uint32_t _ptr_client;
19133 TALLOC_CTX *_mem_save_client_0;
19134 uint32_t _ptr_user;
19135 TALLOC_CTX *_mem_save_user_0;
19136 if (ndr_flags & NDR_SCALARS) {
19137 NDR_CHECK(ndr_pull_align(ndr, 5));
19138 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
19139 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
19140 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size2));
19141 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client));
19143 NDR_PULL_ALLOC(ndr, r->client);
19147 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
19149 NDR_PULL_ALLOC(ndr, r->user);
19153 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
19154 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr, NDR_SCALARS, &r->major));
19155 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr, NDR_SCALARS, &r->minor));
19156 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor));
19157 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->reserved));
19158 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
19160 if (ndr_flags & NDR_BUFFERS) {
19162 _mem_save_client_0 = NDR_PULL_GET_MEM_CTX(ndr);
19163 NDR_PULL_SET_MEM_CTX(ndr, r->client, 0);
19164 NDR_CHECK(ndr_pull_array_size(ndr, &r->client));
19165 NDR_CHECK(ndr_pull_array_length(ndr, &r->client));
19166 if (ndr_get_array_length(ndr, &r->client) > ndr_get_array_size(ndr, &r->client)) {
19167 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));
19169 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t)));
19170 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t), CH_UTF16));
19171 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0);
19174 _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
19175 NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
19176 NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
19177 NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
19178 if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) {
19179 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));
19181 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t)));
19182 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16));
19183 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
19186 return NDR_ERR_SUCCESS;
19189 _PUBLIC_ void ndr_print_spoolss_UserLevel3(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel3 *r)
19191 ndr_print_struct(ndr, name, "spoolss_UserLevel3");
19193 ndr_print_uint32(ndr, "size", r->size);
19194 ndr_print_uint32(ndr, "flags", r->flags);
19195 ndr_print_uint32(ndr, "size2", r->size2);
19196 ndr_print_ptr(ndr, "client", r->client);
19199 ndr_print_string(ndr, "client", r->client);
19202 ndr_print_ptr(ndr, "user", r->user);
19205 ndr_print_string(ndr, "user", r->user);
19208 ndr_print_uint32(ndr, "build", r->build);
19209 ndr_print_spoolss_MajorVersion(ndr, "major", r->major);
19210 ndr_print_spoolss_MinorVersion(ndr, "minor", r->minor);
19211 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor", r->processor);
19212 ndr_print_udlong(ndr, "reserved", r->reserved);
19216 static enum ndr_err_code ndr_push_spoolss_UserLevel(struct ndr_push *ndr, int ndr_flags, const union spoolss_UserLevel *r)
19218 if (ndr_flags & NDR_SCALARS) {
19219 int level = ndr_push_get_switch_value(ndr, r);
19220 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
19221 NDR_CHECK(ndr_push_union_align(ndr, 5));
19224 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level1));
19228 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level2));
19232 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level3));
19236 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19239 if (ndr_flags & NDR_BUFFERS) {
19240 int level = ndr_push_get_switch_value(ndr, r);
19244 NDR_CHECK(ndr_push_spoolss_UserLevel1(ndr, NDR_SCALARS|NDR_BUFFERS, r->level1));
19250 NDR_CHECK(ndr_push_spoolss_UserLevel2(ndr, NDR_SCALARS, r->level2));
19256 NDR_CHECK(ndr_push_spoolss_UserLevel3(ndr, NDR_SCALARS|NDR_BUFFERS, r->level3));
19261 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19264 return NDR_ERR_SUCCESS;
19267 static enum ndr_err_code ndr_pull_spoolss_UserLevel(struct ndr_pull *ndr, int ndr_flags, union spoolss_UserLevel *r)
19271 TALLOC_CTX *_mem_save_level1_0;
19272 TALLOC_CTX *_mem_save_level2_0;
19273 TALLOC_CTX *_mem_save_level3_0;
19274 level = ndr_pull_get_switch_value(ndr, r);
19275 if (ndr_flags & NDR_SCALARS) {
19276 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
19277 if (_level != level) {
19278 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
19280 NDR_CHECK(ndr_pull_union_align(ndr, 5));
19283 uint32_t _ptr_level1;
19284 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level1));
19286 NDR_PULL_ALLOC(ndr, r->level1);
19293 uint32_t _ptr_level2;
19294 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level2));
19296 NDR_PULL_ALLOC(ndr, r->level2);
19303 uint32_t _ptr_level3;
19304 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level3));
19306 NDR_PULL_ALLOC(ndr, r->level3);
19313 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19316 if (ndr_flags & NDR_BUFFERS) {
19320 _mem_save_level1_0 = NDR_PULL_GET_MEM_CTX(ndr);
19321 NDR_PULL_SET_MEM_CTX(ndr, r->level1, 0);
19322 NDR_CHECK(ndr_pull_spoolss_UserLevel1(ndr, NDR_SCALARS|NDR_BUFFERS, r->level1));
19323 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level1_0, 0);
19329 _mem_save_level2_0 = NDR_PULL_GET_MEM_CTX(ndr);
19330 NDR_PULL_SET_MEM_CTX(ndr, r->level2, 0);
19331 NDR_CHECK(ndr_pull_spoolss_UserLevel2(ndr, NDR_SCALARS, r->level2));
19332 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level2_0, 0);
19338 _mem_save_level3_0 = NDR_PULL_GET_MEM_CTX(ndr);
19339 NDR_PULL_SET_MEM_CTX(ndr, r->level3, 0);
19340 NDR_CHECK(ndr_pull_spoolss_UserLevel3(ndr, NDR_SCALARS|NDR_BUFFERS, r->level3));
19341 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level3_0, 0);
19346 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19349 return NDR_ERR_SUCCESS;
19352 _PUBLIC_ void ndr_print_spoolss_UserLevel(struct ndr_print *ndr, const char *name, const union spoolss_UserLevel *r)
19355 level = ndr_print_get_switch_value(ndr, r);
19356 ndr_print_union(ndr, name, level, "spoolss_UserLevel");
19359 ndr_print_ptr(ndr, "level1", r->level1);
19362 ndr_print_spoolss_UserLevel1(ndr, "level1", r->level1);
19368 ndr_print_ptr(ndr, "level2", r->level2);
19371 ndr_print_spoolss_UserLevel2(ndr, "level2", r->level2);
19377 ndr_print_ptr(ndr, "level3", r->level3);
19380 ndr_print_spoolss_UserLevel3(ndr, "level3", r->level3);
19386 ndr_print_bad_level(ndr, name, level);
19390 static enum ndr_err_code ndr_push_spoolss_UserLevelCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevelCtr *r)
19392 if (ndr_flags & NDR_SCALARS) {
19393 NDR_CHECK(ndr_push_align(ndr, 5));
19394 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
19395 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->user_info, r->level));
19396 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_SCALARS, &r->user_info));
19397 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
19399 if (ndr_flags & NDR_BUFFERS) {
19400 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_BUFFERS, &r->user_info));
19402 return NDR_ERR_SUCCESS;
19405 static enum ndr_err_code ndr_pull_spoolss_UserLevelCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevelCtr *r)
19407 if (ndr_flags & NDR_SCALARS) {
19408 NDR_CHECK(ndr_pull_align(ndr, 5));
19409 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
19410 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->user_info, r->level));
19411 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_SCALARS, &r->user_info));
19412 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
19414 if (ndr_flags & NDR_BUFFERS) {
19415 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_BUFFERS, &r->user_info));
19417 return NDR_ERR_SUCCESS;
19420 _PUBLIC_ void ndr_print_spoolss_UserLevelCtr(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevelCtr *r)
19422 ndr_print_struct(ndr, name, "spoolss_UserLevelCtr");
19424 ndr_print_uint32(ndr, "level", r->level);
19425 ndr_print_set_switch_value(ndr, &r->user_info, r->level);
19426 ndr_print_spoolss_UserLevel(ndr, "user_info", &r->user_info);
19430 static enum ndr_err_code ndr_push_spoolss_AccessRights(struct ndr_push *ndr, int ndr_flags, uint32_t r)
19432 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
19433 return NDR_ERR_SUCCESS;
19436 static enum ndr_err_code ndr_pull_spoolss_AccessRights(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
19439 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
19441 return NDR_ERR_SUCCESS;
19444 _PUBLIC_ void ndr_print_spoolss_AccessRights(struct ndr_print *ndr, const char *name, uint32_t r)
19446 ndr_print_uint32(ndr, name, r);
19448 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SERVER_ACCESS_ADMINISTER", SERVER_ACCESS_ADMINISTER, r);
19449 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SERVER_ACCESS_ENUMERATE", SERVER_ACCESS_ENUMERATE, r);
19450 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ACCESS_ADMINISTER", PRINTER_ACCESS_ADMINISTER, r);
19451 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ACCESS_USE", PRINTER_ACCESS_USE, r);
19452 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_ACCESS_ADMINISTER", JOB_ACCESS_ADMINISTER, r);
19453 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_ACCESS_READ", JOB_ACCESS_READ, r);
19457 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterEnumValues(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterEnumValues *r)
19459 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
19460 if (ndr_flags & NDR_SCALARS) {
19461 NDR_CHECK(ndr_push_align(ndr, 5));
19462 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
19464 uint32_t _flags_save_string = ndr->flags;
19465 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19466 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->value_name));
19467 ndr->flags = _flags_save_string;
19469 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2 * strlen_m_term(r->value_name)));
19470 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->type));
19471 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data));
19472 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_PrinterData(r->data, r->type, ndr->iconv_convenience, ndr->flags)));
19473 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
19475 if (ndr_flags & NDR_BUFFERS) {
19476 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
19478 uint32_t _flags_save_string = ndr->flags;
19479 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19480 if (r->value_name) {
19481 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->value_name));
19482 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->value_name));
19484 ndr->flags = _flags_save_string;
19487 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data));
19489 struct ndr_push *_ndr_data;
19490 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_data, 0, r->data_length));
19491 NDR_CHECK(ndr_push_set_switch_value(_ndr_data, r->data, r->type));
19492 NDR_CHECK(ndr_push_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, r->data));
19493 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_data, 0, r->data_length));
19497 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
19498 return NDR_ERR_SUCCESS;
19501 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterEnumValues(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterEnumValues *r)
19503 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
19504 uint32_t _ptr_value_name;
19505 TALLOC_CTX *_mem_save_value_name_0;
19506 uint32_t _ptr_data;
19507 TALLOC_CTX *_mem_save_data_0;
19508 if (ndr_flags & NDR_SCALARS) {
19509 NDR_CHECK(ndr_pull_align(ndr, 5));
19510 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
19512 uint32_t _flags_save_string = ndr->flags;
19513 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19514 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_value_name));
19515 if (_ptr_value_name) {
19516 NDR_PULL_ALLOC(ndr, r->value_name);
19517 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->value_name, _ptr_value_name));
19519 r->value_name = NULL;
19521 ndr->flags = _flags_save_string;
19523 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->value_name_len));
19524 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->type));
19525 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
19527 NDR_PULL_ALLOC(ndr, r->data);
19528 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data, _ptr_data));
19532 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->data_length));
19533 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
19535 if (ndr_flags & NDR_BUFFERS) {
19536 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
19538 uint32_t _flags_save_string = ndr->flags;
19539 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19540 if (r->value_name) {
19541 uint32_t _relative_save_offset;
19542 _relative_save_offset = ndr->offset;
19543 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->value_name));
19544 _mem_save_value_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
19545 NDR_PULL_SET_MEM_CTX(ndr, r->value_name, 0);
19546 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->value_name));
19547 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_name_0, 0);
19548 if (ndr->offset > ndr->relative_highest_offset) {
19549 ndr->relative_highest_offset = ndr->offset;
19551 ndr->offset = _relative_save_offset;
19553 ndr->flags = _flags_save_string;
19556 uint32_t _relative_save_offset;
19557 _relative_save_offset = ndr->offset;
19558 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data));
19559 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
19560 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
19562 struct ndr_pull *_ndr_data;
19563 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_data, 0, r->data_length));
19564 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data, r->data, r->type));
19565 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, r->data));
19566 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_data, 0, r->data_length));
19568 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
19569 if (ndr->offset > ndr->relative_highest_offset) {
19570 ndr->relative_highest_offset = ndr->offset;
19572 ndr->offset = _relative_save_offset;
19575 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
19576 return NDR_ERR_SUCCESS;
19579 _PUBLIC_ void ndr_print_spoolss_PrinterEnumValues(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterEnumValues *r)
19581 ndr_print_struct(ndr, name, "spoolss_PrinterEnumValues");
19583 ndr_print_ptr(ndr, "value_name", r->value_name);
19585 if (r->value_name) {
19586 ndr_print_string(ndr, "value_name", r->value_name);
19589 ndr_print_uint32(ndr, "value_name_len", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2 * strlen_m_term(r->value_name):r->value_name_len);
19590 ndr_print_winreg_Type(ndr, "type", r->type);
19591 ndr_print_ptr(ndr, "data", r->data);
19594 ndr_print_set_switch_value(ndr, r->data, r->type);
19595 ndr_print_spoolss_PrinterData(ndr, "data", r->data);
19598 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);
19602 _PUBLIC_ size_t ndr_size_spoolss_PrinterEnumValues(const struct spoolss_PrinterEnumValues *r, struct smb_iconv_convenience *ic, int flags)
19604 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterEnumValues, ic);
19607 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DeleteDriverFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
19609 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
19610 return NDR_ERR_SUCCESS;
19613 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DeleteDriverFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
19616 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
19618 return NDR_ERR_SUCCESS;
19621 _PUBLIC_ void ndr_print_spoolss_DeleteDriverFlags(struct ndr_print *ndr, const char *name, uint32_t r)
19623 ndr_print_uint32(ndr, name, r);
19625 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_UNUSED_FILES", DPD_DELETE_UNUSED_FILES, r);
19626 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_SPECIFIC_VERSION", DPD_DELETE_SPECIFIC_VERSION, r);
19627 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_ALL_FILES", DPD_DELETE_ALL_FILES, r);
19631 static enum ndr_err_code ndr_push_spoolss_PortProtocol(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortProtocol r)
19633 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
19634 return NDR_ERR_SUCCESS;
19637 static enum ndr_err_code ndr_pull_spoolss_PortProtocol(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortProtocol *r)
19640 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
19642 return NDR_ERR_SUCCESS;
19645 _PUBLIC_ void ndr_print_spoolss_PortProtocol(struct ndr_print *ndr, const char *name, enum spoolss_PortProtocol r)
19647 const char *val = NULL;
19650 case PROTOCOL_RAWTCP_TYPE: val = "PROTOCOL_RAWTCP_TYPE"; break;
19651 case PROTOCOL_LPR_TYPE: val = "PROTOCOL_LPR_TYPE"; break;
19653 ndr_print_enum(ndr, name, "ENUM", val, r);
19656 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortData1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortData1 *r)
19658 if (ndr_flags & NDR_SCALARS) {
19659 NDR_CHECK(ndr_push_align(ndr, 4));
19660 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, 64, sizeof(uint16_t), CH_UTF16));
19661 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0x00000001));
19662 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr, NDR_SCALARS, r->protocol));
19663 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, sizeof(r)));
19664 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
19665 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hostaddress, 49, sizeof(uint16_t), CH_UTF16));
19666 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
19667 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dblspool));
19668 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->queue, 33, sizeof(uint16_t), CH_UTF16));
19669 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->ip_address, 16, sizeof(uint16_t), CH_UTF16));
19670 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_address, 13, sizeof(uint16_t), CH_UTF16));
19671 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->device_type, 257, sizeof(uint16_t), CH_UTF16));
19672 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_number));
19673 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_enabled));
19674 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_dev_index));
19675 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
19677 if (ndr_flags & NDR_BUFFERS) {
19679 return NDR_ERR_SUCCESS;
19682 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortData1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortData1 *r)
19684 if (ndr_flags & NDR_SCALARS) {
19685 NDR_CHECK(ndr_pull_align(ndr, 4));
19686 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, 64, sizeof(uint16_t), CH_UTF16));
19687 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
19688 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr, NDR_SCALARS, &r->protocol));
19689 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
19690 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
19691 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hostaddress, 49, sizeof(uint16_t), CH_UTF16));
19692 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
19693 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dblspool));
19694 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->queue, 33, sizeof(uint16_t), CH_UTF16));
19695 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->ip_address, 16, sizeof(uint16_t), CH_UTF16));
19696 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_address, 13, sizeof(uint16_t), CH_UTF16));
19697 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device_type, 257, sizeof(uint16_t), CH_UTF16));
19698 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_number));
19699 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_enabled));
19700 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_dev_index));
19701 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
19703 if (ndr_flags & NDR_BUFFERS) {
19705 return NDR_ERR_SUCCESS;
19708 _PUBLIC_ void ndr_print_spoolss_PortData1(struct ndr_print *ndr, const char *name, const struct spoolss_PortData1 *r)
19710 ndr_print_struct(ndr, name, "spoolss_PortData1");
19712 ndr_print_string(ndr, "portname", r->portname);
19713 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x00000001:r->version);
19714 ndr_print_spoolss_PortProtocol(ndr, "protocol", r->protocol);
19715 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?sizeof(r):r->size);
19716 ndr_print_uint32(ndr, "reserved", r->reserved);
19717 ndr_print_string(ndr, "hostaddress", r->hostaddress);
19718 ndr_print_string(ndr, "snmpcommunity", r->snmpcommunity);
19719 ndr_print_uint32(ndr, "dblspool", r->dblspool);
19720 ndr_print_string(ndr, "queue", r->queue);
19721 ndr_print_string(ndr, "ip_address", r->ip_address);
19722 ndr_print_string(ndr, "hardware_address", r->hardware_address);
19723 ndr_print_string(ndr, "device_type", r->device_type);
19724 ndr_print_uint32(ndr, "port_number", r->port_number);
19725 ndr_print_uint32(ndr, "snmp_enabled", r->snmp_enabled);
19726 ndr_print_uint32(ndr, "snmp_dev_index", r->snmp_dev_index);
19730 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortData2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortData2 *r)
19732 if (ndr_flags & NDR_SCALARS) {
19733 NDR_CHECK(ndr_push_align(ndr, 4));
19734 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, 64, sizeof(uint16_t), CH_UTF16));
19735 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0x00000002));
19736 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr, NDR_SCALARS, r->protocol));
19737 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, sizeof(r)));
19738 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
19739 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hostaddress, 128, sizeof(uint16_t), CH_UTF16));
19740 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
19741 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dblspool));
19742 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->queue, 33, sizeof(uint16_t), CH_UTF16));
19743 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->device_type, 257, sizeof(uint16_t), CH_UTF16));
19744 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_number));
19745 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_enabled));
19746 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_dev_index));
19747 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_monitor_mib_index));
19748 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
19750 if (ndr_flags & NDR_BUFFERS) {
19752 return NDR_ERR_SUCCESS;
19755 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortData2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortData2 *r)
19757 if (ndr_flags & NDR_SCALARS) {
19758 NDR_CHECK(ndr_pull_align(ndr, 4));
19759 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, 64, sizeof(uint16_t), CH_UTF16));
19760 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
19761 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr, NDR_SCALARS, &r->protocol));
19762 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
19763 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
19764 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hostaddress, 128, sizeof(uint16_t), CH_UTF16));
19765 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
19766 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dblspool));
19767 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->queue, 33, sizeof(uint16_t), CH_UTF16));
19768 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device_type, 257, sizeof(uint16_t), CH_UTF16));
19769 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_number));
19770 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_enabled));
19771 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_dev_index));
19772 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_monitor_mib_index));
19773 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
19775 if (ndr_flags & NDR_BUFFERS) {
19777 return NDR_ERR_SUCCESS;
19780 _PUBLIC_ void ndr_print_spoolss_PortData2(struct ndr_print *ndr, const char *name, const struct spoolss_PortData2 *r)
19782 ndr_print_struct(ndr, name, "spoolss_PortData2");
19784 ndr_print_string(ndr, "portname", r->portname);
19785 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x00000002:r->version);
19786 ndr_print_spoolss_PortProtocol(ndr, "protocol", r->protocol);
19787 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?sizeof(r):r->size);
19788 ndr_print_uint32(ndr, "reserved", r->reserved);
19789 ndr_print_string(ndr, "hostaddress", r->hostaddress);
19790 ndr_print_string(ndr, "snmpcommunity", r->snmpcommunity);
19791 ndr_print_uint32(ndr, "dblspool", r->dblspool);
19792 ndr_print_string(ndr, "queue", r->queue);
19793 ndr_print_string(ndr, "device_type", r->device_type);
19794 ndr_print_uint32(ndr, "port_number", r->port_number);
19795 ndr_print_uint32(ndr, "snmp_enabled", r->snmp_enabled);
19796 ndr_print_uint32(ndr, "snmp_dev_index", r->snmp_dev_index);
19797 ndr_print_uint32(ndr, "port_monitor_mib_index", r->port_monitor_mib_index);
19801 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorUi(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorUi *r)
19803 if (ndr_flags & NDR_SCALARS) {
19804 NDR_CHECK(ndr_push_align(ndr, 4));
19806 uint32_t _flags_save_string = ndr->flags;
19807 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19808 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dll_name));
19809 ndr->flags = _flags_save_string;
19811 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
19813 if (ndr_flags & NDR_BUFFERS) {
19815 return NDR_ERR_SUCCESS;
19818 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorUi(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorUi *r)
19820 if (ndr_flags & NDR_SCALARS) {
19821 NDR_CHECK(ndr_pull_align(ndr, 4));
19823 uint32_t _flags_save_string = ndr->flags;
19824 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19825 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->dll_name));
19826 ndr->flags = _flags_save_string;
19828 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
19830 if (ndr_flags & NDR_BUFFERS) {
19832 return NDR_ERR_SUCCESS;
19835 _PUBLIC_ void ndr_print_spoolss_MonitorUi(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorUi *r)
19837 ndr_print_struct(ndr, name, "spoolss_MonitorUi");
19839 ndr_print_string(ndr, "dll_name", r->dll_name);
19843 static enum ndr_err_code ndr_push_spoolss_AddPrinterDriverExFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
19845 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
19846 return NDR_ERR_SUCCESS;
19849 static enum ndr_err_code ndr_pull_spoolss_AddPrinterDriverExFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
19852 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
19854 return NDR_ERR_SUCCESS;
19857 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriverExFlags(struct ndr_print *ndr, const char *name, uint32_t r)
19859 ndr_print_uint32(ndr, name, r);
19861 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_STRICT_UPGRADE", APD_STRICT_UPGRADE, r);
19862 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_STRICT_DOWNGRADE", APD_STRICT_DOWNGRADE, r);
19863 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_ALL_FILES", APD_COPY_ALL_FILES, r);
19864 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_NEW_FILES", APD_COPY_NEW_FILES, r);
19865 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_FROM_DIRECTORY", APD_COPY_FROM_DIRECTORY, r);
19866 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_DONT_COPY_FILES_TO_CLUSTER", APD_DONT_COPY_FILES_TO_CLUSTER, r);
19867 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_TO_ALL_SPOOLERS", APD_COPY_TO_ALL_SPOOLERS, r);
19868 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_RETURN_BLOCKING_STATUS_CODE", APD_RETURN_BLOCKING_STATUS_CODE, r);
19872 static enum ndr_err_code ndr_push_spoolss_CorePrinterDriver(struct ndr_push *ndr, int ndr_flags, const struct spoolss_CorePrinterDriver *r)
19874 if (ndr_flags & NDR_SCALARS) {
19875 NDR_CHECK(ndr_push_align(ndr, 8));
19876 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->core_driver_guid));
19877 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
19878 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
19879 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->formname, 520, sizeof(uint8_t), CH_UTF8));
19880 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
19882 if (ndr_flags & NDR_BUFFERS) {
19884 return NDR_ERR_SUCCESS;
19887 static enum ndr_err_code ndr_pull_spoolss_CorePrinterDriver(struct ndr_pull *ndr, int ndr_flags, struct spoolss_CorePrinterDriver *r)
19889 if (ndr_flags & NDR_SCALARS) {
19890 NDR_CHECK(ndr_pull_align(ndr, 8));
19891 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->core_driver_guid));
19892 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
19893 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
19894 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->formname, 520, sizeof(uint8_t), CH_UTF8));
19895 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
19897 if (ndr_flags & NDR_BUFFERS) {
19899 return NDR_ERR_SUCCESS;
19902 _PUBLIC_ void ndr_print_spoolss_CorePrinterDriver(struct ndr_print *ndr, const char *name, const struct spoolss_CorePrinterDriver *r)
19904 ndr_print_struct(ndr, name, "spoolss_CorePrinterDriver");
19906 ndr_print_GUID(ndr, "core_driver_guid", &r->core_driver_guid);
19907 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
19908 ndr_print_hyper(ndr, "driver_version", r->driver_version);
19909 ndr_print_string(ndr, "formname", r->formname);
19913 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinters(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinters *r)
19915 if (flags & NDR_IN) {
19916 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, r->in.flags));
19917 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
19918 if (r->in.server) {
19919 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
19920 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
19921 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
19922 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19924 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
19925 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
19926 if (r->in.buffer) {
19927 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
19929 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
19931 if (flags & NDR_OUT) {
19932 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
19934 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
19936 if (r->out.needed == NULL) {
19937 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19939 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
19940 if (r->out.count == NULL) {
19941 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19943 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
19944 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19946 return NDR_ERR_SUCCESS;
19949 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinters(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinters *r)
19951 uint32_t _ptr_server;
19952 uint32_t _ptr_buffer;
19953 uint32_t _ptr_info;
19954 TALLOC_CTX *_mem_save_server_0;
19955 TALLOC_CTX *_mem_save_buffer_0;
19956 TALLOC_CTX *_mem_save_info_0;
19957 TALLOC_CTX *_mem_save_needed_0;
19958 TALLOC_CTX *_mem_save_count_0;
19959 if (flags & NDR_IN) {
19960 ZERO_STRUCT(r->out);
19962 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, &r->in.flags));
19963 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
19965 NDR_PULL_ALLOC(ndr, r->in.server);
19967 r->in.server = NULL;
19969 if (r->in.server) {
19970 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
19971 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
19972 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
19973 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
19974 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
19975 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));
19977 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
19978 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
19979 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
19981 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
19982 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
19984 NDR_PULL_ALLOC(ndr, r->in.buffer);
19986 r->in.buffer = NULL;
19988 if (r->in.buffer) {
19989 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
19990 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
19991 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
19992 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
19994 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
19995 NDR_PULL_ALLOC(ndr, r->out.needed);
19996 ZERO_STRUCTP(r->out.needed);
19997 NDR_PULL_ALLOC(ndr, r->out.count);
19998 ZERO_STRUCTP(r->out.count);
20000 if (flags & NDR_OUT) {
20001 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
20003 NDR_PULL_ALLOC(ndr, r->out.info);
20005 r->out.info = NULL;
20008 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20009 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20010 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
20011 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20013 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20014 NDR_PULL_ALLOC(ndr, r->out.needed);
20016 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
20017 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
20018 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
20019 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
20020 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20021 NDR_PULL_ALLOC(ndr, r->out.count);
20023 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
20024 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
20025 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
20026 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
20027 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20029 return NDR_ERR_SUCCESS;
20032 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinters(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinters *r)
20034 uint32_t cntr_info_0;
20035 if (flags & NDR_IN) {
20036 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20037 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
20039 if (flags & NDR_OUT) {
20040 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20041 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
20042 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
20044 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20045 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
20048 return NDR_ERR_SUCCESS;
20051 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinters(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinters *r)
20053 uint32_t cntr_info_0;
20054 TALLOC_CTX *_mem_save_info_0;
20055 if (flags & NDR_IN) {
20056 ZERO_STRUCT(r->out);
20058 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20059 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
20061 if (flags & NDR_OUT) {
20062 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
20063 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20064 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20065 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20066 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
20067 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
20069 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20070 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
20072 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20074 return NDR_ERR_SUCCESS;
20077 _PUBLIC_ void ndr_print_spoolss_EnumPrinters(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinters *r)
20079 uint32_t cntr_info_2;
20080 ndr_print_struct(ndr, name, "spoolss_EnumPrinters");
20082 if (flags & NDR_SET_VALUES) {
20083 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20085 if (flags & NDR_IN) {
20086 ndr_print_struct(ndr, "in", "spoolss_EnumPrinters");
20088 ndr_print_spoolss_EnumPrinterFlags(ndr, "flags", r->in.flags);
20089 ndr_print_ptr(ndr, "server", r->in.server);
20091 if (r->in.server) {
20092 ndr_print_string(ndr, "server", r->in.server);
20095 ndr_print_uint32(ndr, "level", r->in.level);
20096 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20098 if (r->in.buffer) {
20099 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
20102 ndr_print_uint32(ndr, "offered", r->in.offered);
20105 if (flags & NDR_OUT) {
20106 ndr_print_struct(ndr, "out", "spoolss_EnumPrinters");
20108 ndr_print_ptr(ndr, "count", r->out.count);
20110 ndr_print_uint32(ndr, "count", *r->out.count);
20112 ndr_print_ptr(ndr, "info", r->out.info);
20114 ndr_print_ptr(ndr, "info", *r->out.info);
20116 if (*r->out.info) {
20117 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
20119 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
20121 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
20122 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
20123 ndr_print_spoolss_PrinterInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
20131 ndr_print_ptr(ndr, "needed", r->out.needed);
20133 ndr_print_uint32(ndr, "needed", *r->out.needed);
20135 ndr_print_WERROR(ndr, "result", r->out.result);
20141 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OpenPrinter(struct ndr_push *ndr, int flags, const struct spoolss_OpenPrinter *r)
20143 if (flags & NDR_IN) {
20144 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.printername));
20145 if (r->in.printername) {
20146 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
20147 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
20148 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
20149 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20151 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.datatype));
20152 if (r->in.datatype) {
20153 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
20154 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
20155 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
20156 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.datatype, ndr_charset_length(r->in.datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20158 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
20159 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr, NDR_SCALARS, r->in.access_mask));
20161 if (flags & NDR_OUT) {
20162 if (r->out.handle == NULL) {
20163 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20165 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
20166 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20168 return NDR_ERR_SUCCESS;
20171 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OpenPrinter(struct ndr_pull *ndr, int flags, struct spoolss_OpenPrinter *r)
20173 uint32_t _ptr_printername;
20174 uint32_t _ptr_datatype;
20175 TALLOC_CTX *_mem_save_printername_0;
20176 TALLOC_CTX *_mem_save_datatype_0;
20177 TALLOC_CTX *_mem_save_handle_0;
20178 if (flags & NDR_IN) {
20179 ZERO_STRUCT(r->out);
20181 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
20182 if (_ptr_printername) {
20183 NDR_PULL_ALLOC(ndr, r->in.printername);
20185 r->in.printername = NULL;
20187 if (r->in.printername) {
20188 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
20189 NDR_PULL_SET_MEM_CTX(ndr, r->in.printername, 0);
20190 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
20191 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
20192 if (ndr_get_array_length(ndr, &r->in.printername) > ndr_get_array_size(ndr, &r->in.printername)) {
20193 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));
20195 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t)));
20196 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t), CH_UTF16));
20197 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
20199 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
20200 if (_ptr_datatype) {
20201 NDR_PULL_ALLOC(ndr, r->in.datatype);
20203 r->in.datatype = NULL;
20205 if (r->in.datatype) {
20206 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
20207 NDR_PULL_SET_MEM_CTX(ndr, r->in.datatype, 0);
20208 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.datatype));
20209 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.datatype));
20210 if (ndr_get_array_length(ndr, &r->in.datatype) > ndr_get_array_size(ndr, &r->in.datatype)) {
20211 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));
20213 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t)));
20214 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t), CH_UTF16));
20215 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
20217 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
20218 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr, NDR_SCALARS, &r->in.access_mask));
20219 NDR_PULL_ALLOC(ndr, r->out.handle);
20220 ZERO_STRUCTP(r->out.handle);
20222 if (flags & NDR_OUT) {
20223 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20224 NDR_PULL_ALLOC(ndr, r->out.handle);
20226 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20227 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
20228 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
20229 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20230 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20232 return NDR_ERR_SUCCESS;
20235 _PUBLIC_ void ndr_print_spoolss_OpenPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_OpenPrinter *r)
20237 ndr_print_struct(ndr, name, "spoolss_OpenPrinter");
20239 if (flags & NDR_SET_VALUES) {
20240 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20242 if (flags & NDR_IN) {
20243 ndr_print_struct(ndr, "in", "spoolss_OpenPrinter");
20245 ndr_print_ptr(ndr, "printername", r->in.printername);
20247 if (r->in.printername) {
20248 ndr_print_string(ndr, "printername", r->in.printername);
20251 ndr_print_ptr(ndr, "datatype", r->in.datatype);
20253 if (r->in.datatype) {
20254 ndr_print_string(ndr, "datatype", r->in.datatype);
20257 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", &r->in.devmode_ctr);
20258 ndr_print_spoolss_AccessRights(ndr, "access_mask", r->in.access_mask);
20261 if (flags & NDR_OUT) {
20262 ndr_print_struct(ndr, "out", "spoolss_OpenPrinter");
20264 ndr_print_ptr(ndr, "handle", r->out.handle);
20266 ndr_print_policy_handle(ndr, "handle", r->out.handle);
20268 ndr_print_WERROR(ndr, "result", r->out.result);
20274 static enum ndr_err_code ndr_push_spoolss_SetJob(struct ndr_push *ndr, int flags, const struct spoolss_SetJob *r)
20276 if (flags & NDR_IN) {
20277 if (r->in.handle == NULL) {
20278 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20280 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20281 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.job_id));
20282 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.ctr));
20284 NDR_CHECK(ndr_push_spoolss_JobInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
20286 NDR_CHECK(ndr_push_spoolss_JobControl(ndr, NDR_SCALARS, r->in.command));
20288 if (flags & NDR_OUT) {
20289 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20291 return NDR_ERR_SUCCESS;
20294 static enum ndr_err_code ndr_pull_spoolss_SetJob(struct ndr_pull *ndr, int flags, struct spoolss_SetJob *r)
20297 TALLOC_CTX *_mem_save_handle_0;
20298 TALLOC_CTX *_mem_save_ctr_0;
20299 if (flags & NDR_IN) {
20300 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20301 NDR_PULL_ALLOC(ndr, r->in.handle);
20303 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20304 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20305 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20306 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20307 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.job_id));
20308 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr));
20310 NDR_PULL_ALLOC(ndr, r->in.ctr);
20315 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20316 NDR_PULL_SET_MEM_CTX(ndr, r->in.ctr, 0);
20317 NDR_CHECK(ndr_pull_spoolss_JobInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
20318 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, 0);
20320 NDR_CHECK(ndr_pull_spoolss_JobControl(ndr, NDR_SCALARS, &r->in.command));
20322 if (flags & NDR_OUT) {
20323 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20325 return NDR_ERR_SUCCESS;
20328 _PUBLIC_ void ndr_print_spoolss_SetJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetJob *r)
20330 ndr_print_struct(ndr, name, "spoolss_SetJob");
20332 if (flags & NDR_SET_VALUES) {
20333 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20335 if (flags & NDR_IN) {
20336 ndr_print_struct(ndr, "in", "spoolss_SetJob");
20338 ndr_print_ptr(ndr, "handle", r->in.handle);
20340 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20342 ndr_print_uint32(ndr, "job_id", r->in.job_id);
20343 ndr_print_ptr(ndr, "ctr", r->in.ctr);
20346 ndr_print_spoolss_JobInfoContainer(ndr, "ctr", r->in.ctr);
20349 ndr_print_spoolss_JobControl(ndr, "command", r->in.command);
20352 if (flags & NDR_OUT) {
20353 ndr_print_struct(ndr, "out", "spoolss_SetJob");
20355 ndr_print_WERROR(ndr, "result", r->out.result);
20361 static enum ndr_err_code ndr_push_spoolss_GetJob(struct ndr_push *ndr, int flags, const struct spoolss_GetJob *r)
20363 if (flags & NDR_IN) {
20364 if (r->in.handle == NULL) {
20365 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20367 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20368 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.job_id));
20369 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20370 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20371 if (r->in.buffer) {
20372 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
20374 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
20376 if (flags & NDR_OUT) {
20377 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
20380 struct ndr_push *_ndr_info;
20381 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
20382 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
20383 NDR_CHECK(ndr_push_spoolss_JobInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
20384 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
20387 if (r->out.needed == NULL) {
20388 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20390 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
20391 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20393 return NDR_ERR_SUCCESS;
20396 static enum ndr_err_code ndr_pull_spoolss_GetJob(struct ndr_pull *ndr, int flags, struct spoolss_GetJob *r)
20398 uint32_t _ptr_buffer;
20399 uint32_t _ptr_info;
20400 TALLOC_CTX *_mem_save_handle_0;
20401 TALLOC_CTX *_mem_save_buffer_0;
20402 TALLOC_CTX *_mem_save_info_0;
20403 TALLOC_CTX *_mem_save_needed_0;
20404 if (flags & NDR_IN) {
20405 ZERO_STRUCT(r->out);
20407 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20408 NDR_PULL_ALLOC(ndr, r->in.handle);
20410 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20411 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20412 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20413 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20414 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.job_id));
20415 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20416 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20418 NDR_PULL_ALLOC(ndr, r->in.buffer);
20420 r->in.buffer = NULL;
20422 if (r->in.buffer) {
20423 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
20424 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20425 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
20426 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20428 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
20429 NDR_PULL_ALLOC(ndr, r->out.needed);
20430 ZERO_STRUCTP(r->out.needed);
20432 if (flags & NDR_OUT) {
20433 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
20435 NDR_PULL_ALLOC(ndr, r->out.info);
20437 r->out.info = NULL;
20440 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20441 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20443 struct ndr_pull *_ndr_info;
20444 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
20445 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
20446 NDR_CHECK(ndr_pull_spoolss_JobInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
20447 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
20449 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20451 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20452 NDR_PULL_ALLOC(ndr, r->out.needed);
20454 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
20455 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
20456 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
20457 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
20458 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20460 return NDR_ERR_SUCCESS;
20463 _PUBLIC_ void ndr_print_spoolss_GetJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetJob *r)
20465 ndr_print_struct(ndr, name, "spoolss_GetJob");
20467 if (flags & NDR_SET_VALUES) {
20468 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20470 if (flags & NDR_IN) {
20471 ndr_print_struct(ndr, "in", "spoolss_GetJob");
20473 ndr_print_ptr(ndr, "handle", r->in.handle);
20475 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20477 ndr_print_uint32(ndr, "job_id", r->in.job_id);
20478 ndr_print_uint32(ndr, "level", r->in.level);
20479 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20481 if (r->in.buffer) {
20482 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
20485 ndr_print_uint32(ndr, "offered", r->in.offered);
20488 if (flags & NDR_OUT) {
20489 ndr_print_struct(ndr, "out", "spoolss_GetJob");
20491 ndr_print_ptr(ndr, "info", r->out.info);
20494 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
20495 ndr_print_spoolss_JobInfo(ndr, "info", r->out.info);
20498 ndr_print_ptr(ndr, "needed", r->out.needed);
20500 ndr_print_uint32(ndr, "needed", *r->out.needed);
20502 ndr_print_WERROR(ndr, "result", r->out.result);
20508 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumJobs(struct ndr_push *ndr, int flags, const struct _spoolss_EnumJobs *r)
20510 if (flags & NDR_IN) {
20511 if (r->in.handle == NULL) {
20512 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20514 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20515 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.firstjob));
20516 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.numjobs));
20517 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20518 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20519 if (r->in.buffer) {
20520 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
20522 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
20524 if (flags & NDR_OUT) {
20525 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
20527 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
20529 if (r->out.needed == NULL) {
20530 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20532 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
20533 if (r->out.count == NULL) {
20534 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20536 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
20537 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20539 return NDR_ERR_SUCCESS;
20542 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumJobs(struct ndr_pull *ndr, int flags, struct _spoolss_EnumJobs *r)
20544 uint32_t _ptr_buffer;
20545 uint32_t _ptr_info;
20546 TALLOC_CTX *_mem_save_handle_0;
20547 TALLOC_CTX *_mem_save_buffer_0;
20548 TALLOC_CTX *_mem_save_info_0;
20549 TALLOC_CTX *_mem_save_needed_0;
20550 TALLOC_CTX *_mem_save_count_0;
20551 if (flags & NDR_IN) {
20552 ZERO_STRUCT(r->out);
20554 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20555 NDR_PULL_ALLOC(ndr, r->in.handle);
20557 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20558 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20559 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20560 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20561 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.firstjob));
20562 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.numjobs));
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_EnumJobs(struct ndr_push *ndr, int flags, const struct __spoolss_EnumJobs *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_JobInfo(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_JobInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
20630 return NDR_ERR_SUCCESS;
20633 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumJobs(struct ndr_pull *ndr, int flags, struct __spoolss_EnumJobs *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_JobInfo(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_JobInfo(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_EnumJobs(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumJobs *r)
20661 uint32_t cntr_info_2;
20662 ndr_print_struct(ndr, name, "spoolss_EnumJobs");
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_EnumJobs");
20670 ndr_print_ptr(ndr, "handle", r->in.handle);
20672 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20674 ndr_print_uint32(ndr, "firstjob", r->in.firstjob);
20675 ndr_print_uint32(ndr, "numjobs", r->in.numjobs);
20676 ndr_print_uint32(ndr, "level", r->in.level);
20677 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20679 if (r->in.buffer) {
20680 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
20683 ndr_print_uint32(ndr, "offered", r->in.offered);
20686 if (flags & NDR_OUT) {
20687 ndr_print_struct(ndr, "out", "spoolss_EnumJobs");
20689 ndr_print_ptr(ndr, "count", r->out.count);
20691 ndr_print_uint32(ndr, "count", *r->out.count);
20693 ndr_print_ptr(ndr, "info", r->out.info);
20695 ndr_print_ptr(ndr, "info", *r->out.info);
20697 if (*r->out.info) {
20698 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
20700 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
20702 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
20703 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
20704 ndr_print_spoolss_JobInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
20712 ndr_print_ptr(ndr, "needed", r->out.needed);
20714 ndr_print_uint32(ndr, "needed", *r->out.needed);
20716 ndr_print_WERROR(ndr, "result", r->out.result);
20722 static enum ndr_err_code ndr_push_spoolss_AddPrinter(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinter *r)
20724 if (flags & NDR_IN) {
20725 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
20726 if (r->in.server) {
20727 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20728 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
20729 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20730 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20732 if (r->in.info_ctr == NULL) {
20733 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20735 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
20736 if (r->in.devmode_ctr == NULL) {
20737 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20739 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
20740 if (r->in.secdesc_ctr == NULL) {
20741 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20743 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
20745 if (flags & NDR_OUT) {
20746 if (r->out.handle == NULL) {
20747 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20749 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
20750 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20752 return NDR_ERR_SUCCESS;
20755 static enum ndr_err_code ndr_pull_spoolss_AddPrinter(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinter *r)
20757 uint32_t _ptr_server;
20758 TALLOC_CTX *_mem_save_server_0;
20759 TALLOC_CTX *_mem_save_info_ctr_0;
20760 TALLOC_CTX *_mem_save_devmode_ctr_0;
20761 TALLOC_CTX *_mem_save_secdesc_ctr_0;
20762 TALLOC_CTX *_mem_save_handle_0;
20763 if (flags & NDR_IN) {
20764 ZERO_STRUCT(r->out);
20766 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
20768 NDR_PULL_ALLOC(ndr, r->in.server);
20770 r->in.server = NULL;
20772 if (r->in.server) {
20773 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
20774 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
20775 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
20776 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
20777 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
20778 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));
20780 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
20781 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
20782 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
20784 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20785 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
20787 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20788 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
20789 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
20790 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
20791 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20792 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
20794 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20795 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
20796 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
20797 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
20798 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20799 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
20801 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20802 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
20803 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
20804 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
20805 NDR_PULL_ALLOC(ndr, r->out.handle);
20806 ZERO_STRUCTP(r->out.handle);
20808 if (flags & NDR_OUT) {
20809 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20810 NDR_PULL_ALLOC(ndr, r->out.handle);
20812 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20813 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
20814 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
20815 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20816 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20818 return NDR_ERR_SUCCESS;
20821 _PUBLIC_ void ndr_print_spoolss_AddPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinter *r)
20823 ndr_print_struct(ndr, name, "spoolss_AddPrinter");
20825 if (flags & NDR_SET_VALUES) {
20826 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20828 if (flags & NDR_IN) {
20829 ndr_print_struct(ndr, "in", "spoolss_AddPrinter");
20831 ndr_print_ptr(ndr, "server", r->in.server);
20833 if (r->in.server) {
20834 ndr_print_string(ndr, "server", r->in.server);
20837 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
20839 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
20841 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
20843 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
20845 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
20847 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
20851 if (flags & NDR_OUT) {
20852 ndr_print_struct(ndr, "out", "spoolss_AddPrinter");
20854 ndr_print_ptr(ndr, "handle", r->out.handle);
20856 ndr_print_policy_handle(ndr, "handle", r->out.handle);
20858 ndr_print_WERROR(ndr, "result", r->out.result);
20864 static enum ndr_err_code ndr_push_spoolss_DeletePrinter(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinter *r)
20866 if (flags & NDR_IN) {
20867 if (r->in.handle == NULL) {
20868 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20870 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20872 if (flags & NDR_OUT) {
20873 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20875 return NDR_ERR_SUCCESS;
20878 static enum ndr_err_code ndr_pull_spoolss_DeletePrinter(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinter *r)
20880 TALLOC_CTX *_mem_save_handle_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);
20890 if (flags & NDR_OUT) {
20891 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20893 return NDR_ERR_SUCCESS;
20896 _PUBLIC_ void ndr_print_spoolss_DeletePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinter *r)
20898 ndr_print_struct(ndr, name, "spoolss_DeletePrinter");
20900 if (flags & NDR_SET_VALUES) {
20901 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20903 if (flags & NDR_IN) {
20904 ndr_print_struct(ndr, "in", "spoolss_DeletePrinter");
20906 ndr_print_ptr(ndr, "handle", r->in.handle);
20908 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20912 if (flags & NDR_OUT) {
20913 ndr_print_struct(ndr, "out", "spoolss_DeletePrinter");
20915 ndr_print_WERROR(ndr, "result", r->out.result);
20921 static enum ndr_err_code ndr_push_spoolss_SetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_SetPrinter *r)
20923 if (flags & NDR_IN) {
20924 if (r->in.handle == NULL) {
20925 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20927 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20928 if (r->in.info_ctr == NULL) {
20929 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20931 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
20932 if (r->in.devmode_ctr == NULL) {
20933 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20935 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
20936 if (r->in.secdesc_ctr == NULL) {
20937 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20939 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
20940 NDR_CHECK(ndr_push_spoolss_PrinterControl(ndr, NDR_SCALARS, r->in.command));
20942 if (flags & NDR_OUT) {
20943 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20945 return NDR_ERR_SUCCESS;
20948 static enum ndr_err_code ndr_pull_spoolss_SetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinter *r)
20950 TALLOC_CTX *_mem_save_handle_0;
20951 TALLOC_CTX *_mem_save_info_ctr_0;
20952 TALLOC_CTX *_mem_save_devmode_ctr_0;
20953 TALLOC_CTX *_mem_save_secdesc_ctr_0;
20954 if (flags & NDR_IN) {
20955 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20956 NDR_PULL_ALLOC(ndr, r->in.handle);
20958 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20959 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20960 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20961 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20962 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20963 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
20965 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20966 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
20967 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
20968 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
20969 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20970 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
20972 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20973 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
20974 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
20975 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
20976 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20977 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
20979 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20980 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
20981 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
20982 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
20983 NDR_CHECK(ndr_pull_spoolss_PrinterControl(ndr, NDR_SCALARS, &r->in.command));
20985 if (flags & NDR_OUT) {
20986 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20988 return NDR_ERR_SUCCESS;
20991 _PUBLIC_ void ndr_print_spoolss_SetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinter *r)
20993 ndr_print_struct(ndr, name, "spoolss_SetPrinter");
20995 if (flags & NDR_SET_VALUES) {
20996 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20998 if (flags & NDR_IN) {
20999 ndr_print_struct(ndr, "in", "spoolss_SetPrinter");
21001 ndr_print_ptr(ndr, "handle", r->in.handle);
21003 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21005 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
21007 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
21009 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
21011 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
21013 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
21015 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
21017 ndr_print_spoolss_PrinterControl(ndr, "command", r->in.command);
21020 if (flags & NDR_OUT) {
21021 ndr_print_struct(ndr, "out", "spoolss_SetPrinter");
21023 ndr_print_WERROR(ndr, "result", r->out.result);
21029 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinter *r)
21031 if (flags & NDR_IN) {
21032 if (r->in.handle == NULL) {
21033 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21035 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21036 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21037 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
21038 if (r->in.buffer) {
21039 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
21041 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21043 if (flags & NDR_OUT) {
21044 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
21047 struct ndr_push *_ndr_info;
21048 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21049 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
21050 NDR_CHECK(ndr_push_spoolss_PrinterInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
21051 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21054 if (r->out.needed == NULL) {
21055 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21057 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21058 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21060 return NDR_ERR_SUCCESS;
21063 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinter *r)
21065 uint32_t _ptr_buffer;
21066 uint32_t _ptr_info;
21067 TALLOC_CTX *_mem_save_handle_0;
21068 TALLOC_CTX *_mem_save_buffer_0;
21069 TALLOC_CTX *_mem_save_info_0;
21070 TALLOC_CTX *_mem_save_needed_0;
21071 if (flags & NDR_IN) {
21072 ZERO_STRUCT(r->out);
21074 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21075 NDR_PULL_ALLOC(ndr, r->in.handle);
21077 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21078 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21079 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21080 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21081 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21082 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
21084 NDR_PULL_ALLOC(ndr, r->in.buffer);
21086 r->in.buffer = NULL;
21088 if (r->in.buffer) {
21089 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21090 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
21091 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
21092 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
21094 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21095 NDR_PULL_ALLOC(ndr, r->out.needed);
21096 ZERO_STRUCTP(r->out.needed);
21098 if (flags & NDR_OUT) {
21099 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
21101 NDR_PULL_ALLOC(ndr, r->out.info);
21103 r->out.info = NULL;
21106 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21107 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21109 struct ndr_pull *_ndr_info;
21110 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21111 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
21112 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
21113 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21115 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21117 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21118 NDR_PULL_ALLOC(ndr, r->out.needed);
21120 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21121 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21122 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21123 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21124 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21126 return NDR_ERR_SUCCESS;
21129 _PUBLIC_ void ndr_print_spoolss_GetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinter *r)
21131 ndr_print_struct(ndr, name, "spoolss_GetPrinter");
21133 if (flags & NDR_SET_VALUES) {
21134 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21136 if (flags & NDR_IN) {
21137 ndr_print_struct(ndr, "in", "spoolss_GetPrinter");
21139 ndr_print_ptr(ndr, "handle", r->in.handle);
21141 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21143 ndr_print_uint32(ndr, "level", r->in.level);
21144 ndr_print_ptr(ndr, "buffer", r->in.buffer);
21146 if (r->in.buffer) {
21147 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
21150 ndr_print_uint32(ndr, "offered", r->in.offered);
21153 if (flags & NDR_OUT) {
21154 ndr_print_struct(ndr, "out", "spoolss_GetPrinter");
21156 ndr_print_ptr(ndr, "info", r->out.info);
21159 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
21160 ndr_print_spoolss_PrinterInfo(ndr, "info", r->out.info);
21163 ndr_print_ptr(ndr, "needed", r->out.needed);
21165 ndr_print_uint32(ndr, "needed", *r->out.needed);
21167 ndr_print_WERROR(ndr, "result", r->out.result);
21173 static enum ndr_err_code ndr_push_spoolss_AddPrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterDriver *r)
21175 if (flags & NDR_IN) {
21176 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
21177 if (r->in.servername) {
21178 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
21179 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21180 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
21181 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21183 if (r->in.info_ctr == NULL) {
21184 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21186 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
21188 if (flags & NDR_OUT) {
21189 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21191 return NDR_ERR_SUCCESS;
21194 static enum ndr_err_code ndr_pull_spoolss_AddPrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterDriver *r)
21196 uint32_t _ptr_servername;
21197 TALLOC_CTX *_mem_save_servername_0;
21198 TALLOC_CTX *_mem_save_info_ctr_0;
21199 if (flags & NDR_IN) {
21200 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
21201 if (_ptr_servername) {
21202 NDR_PULL_ALLOC(ndr, r->in.servername);
21204 r->in.servername = NULL;
21206 if (r->in.servername) {
21207 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
21208 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
21209 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
21210 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
21211 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
21212 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));
21214 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
21215 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
21216 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
21218 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21219 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
21221 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
21222 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
21223 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
21224 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
21226 if (flags & NDR_OUT) {
21227 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21229 return NDR_ERR_SUCCESS;
21232 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterDriver *r)
21234 ndr_print_struct(ndr, name, "spoolss_AddPrinterDriver");
21236 if (flags & NDR_SET_VALUES) {
21237 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21239 if (flags & NDR_IN) {
21240 ndr_print_struct(ndr, "in", "spoolss_AddPrinterDriver");
21242 ndr_print_ptr(ndr, "servername", r->in.servername);
21244 if (r->in.servername) {
21245 ndr_print_string(ndr, "servername", r->in.servername);
21248 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
21250 ndr_print_spoolss_AddDriverInfoCtr(ndr, "info_ctr", r->in.info_ctr);
21254 if (flags & NDR_OUT) {
21255 ndr_print_struct(ndr, "out", "spoolss_AddPrinterDriver");
21257 ndr_print_WERROR(ndr, "result", r->out.result);
21263 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinterDrivers(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinterDrivers *r)
21265 if (flags & NDR_IN) {
21266 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
21267 if (r->in.server) {
21268 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21269 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21270 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21271 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21273 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
21274 if (r->in.environment) {
21275 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
21276 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21277 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
21278 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21280 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21281 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
21282 if (r->in.buffer) {
21283 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
21285 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21287 if (flags & NDR_OUT) {
21288 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
21290 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
21292 if (r->out.needed == NULL) {
21293 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21295 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21296 if (r->out.count == NULL) {
21297 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21299 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
21300 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21302 return NDR_ERR_SUCCESS;
21305 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinterDrivers *r)
21307 uint32_t _ptr_server;
21308 uint32_t _ptr_environment;
21309 uint32_t _ptr_buffer;
21310 uint32_t _ptr_info;
21311 TALLOC_CTX *_mem_save_server_0;
21312 TALLOC_CTX *_mem_save_environment_0;
21313 TALLOC_CTX *_mem_save_buffer_0;
21314 TALLOC_CTX *_mem_save_info_0;
21315 TALLOC_CTX *_mem_save_needed_0;
21316 TALLOC_CTX *_mem_save_count_0;
21317 if (flags & NDR_IN) {
21318 ZERO_STRUCT(r->out);
21320 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
21322 NDR_PULL_ALLOC(ndr, r->in.server);
21324 r->in.server = NULL;
21326 if (r->in.server) {
21327 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
21328 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
21329 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
21330 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
21331 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
21332 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));
21334 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
21335 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
21336 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
21338 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
21339 if (_ptr_environment) {
21340 NDR_PULL_ALLOC(ndr, r->in.environment);
21342 r->in.environment = NULL;
21344 if (r->in.environment) {
21345 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
21346 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
21347 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
21348 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
21349 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
21350 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));
21352 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
21353 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
21354 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
21356 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21357 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
21359 NDR_PULL_ALLOC(ndr, r->in.buffer);
21361 r->in.buffer = NULL;
21363 if (r->in.buffer) {
21364 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21365 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
21366 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
21367 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
21369 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21370 NDR_PULL_ALLOC(ndr, r->out.needed);
21371 ZERO_STRUCTP(r->out.needed);
21372 NDR_PULL_ALLOC(ndr, r->out.count);
21373 ZERO_STRUCTP(r->out.count);
21375 if (flags & NDR_OUT) {
21376 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
21378 NDR_PULL_ALLOC(ndr, r->out.info);
21380 r->out.info = NULL;
21383 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21384 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21385 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
21386 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21388 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21389 NDR_PULL_ALLOC(ndr, r->out.needed);
21391 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21392 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21393 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21394 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21395 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21396 NDR_PULL_ALLOC(ndr, r->out.count);
21398 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
21399 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
21400 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
21401 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
21402 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21404 return NDR_ERR_SUCCESS;
21407 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinterDrivers(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinterDrivers *r)
21409 uint32_t cntr_info_0;
21410 if (flags & NDR_IN) {
21411 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21412 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
21414 if (flags & NDR_OUT) {
21415 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21416 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
21417 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
21419 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21420 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
21423 return NDR_ERR_SUCCESS;
21426 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinterDrivers *r)
21428 uint32_t cntr_info_0;
21429 TALLOC_CTX *_mem_save_info_0;
21430 if (flags & NDR_IN) {
21431 ZERO_STRUCT(r->out);
21433 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21434 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
21436 if (flags & NDR_OUT) {
21437 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
21438 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21439 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21440 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21441 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
21442 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
21444 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21445 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
21447 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21449 return NDR_ERR_SUCCESS;
21452 _PUBLIC_ void ndr_print_spoolss_EnumPrinterDrivers(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterDrivers *r)
21454 uint32_t cntr_info_2;
21455 ndr_print_struct(ndr, name, "spoolss_EnumPrinterDrivers");
21457 if (flags & NDR_SET_VALUES) {
21458 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21460 if (flags & NDR_IN) {
21461 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterDrivers");
21463 ndr_print_ptr(ndr, "server", r->in.server);
21465 if (r->in.server) {
21466 ndr_print_string(ndr, "server", r->in.server);
21469 ndr_print_ptr(ndr, "environment", r->in.environment);
21471 if (r->in.environment) {
21472 ndr_print_string(ndr, "environment", r->in.environment);
21475 ndr_print_uint32(ndr, "level", r->in.level);
21476 ndr_print_ptr(ndr, "buffer", r->in.buffer);
21478 if (r->in.buffer) {
21479 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
21482 ndr_print_uint32(ndr, "offered", r->in.offered);
21485 if (flags & NDR_OUT) {
21486 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterDrivers");
21488 ndr_print_ptr(ndr, "count", r->out.count);
21490 ndr_print_uint32(ndr, "count", *r->out.count);
21492 ndr_print_ptr(ndr, "info", r->out.info);
21494 ndr_print_ptr(ndr, "info", *r->out.info);
21496 if (*r->out.info) {
21497 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
21499 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
21501 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
21502 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
21503 ndr_print_spoolss_DriverInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
21511 ndr_print_ptr(ndr, "needed", r->out.needed);
21513 ndr_print_uint32(ndr, "needed", *r->out.needed);
21515 ndr_print_WERROR(ndr, "result", r->out.result);
21521 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriver *r)
21523 if (flags & NDR_IN) {
21524 if (r->in.handle == NULL) {
21525 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21527 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21528 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.architecture));
21529 if (r->in.architecture) {
21530 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
21531 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21532 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
21533 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21535 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21536 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
21537 if (r->in.buffer) {
21538 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
21540 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21542 if (flags & NDR_OUT) {
21543 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
21546 struct ndr_push *_ndr_info;
21547 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21548 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
21549 NDR_CHECK(ndr_push_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
21550 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21553 if (r->out.needed == NULL) {
21554 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21556 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21557 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21559 return NDR_ERR_SUCCESS;
21562 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriver *r)
21564 uint32_t _ptr_architecture;
21565 uint32_t _ptr_buffer;
21566 uint32_t _ptr_info;
21567 TALLOC_CTX *_mem_save_handle_0;
21568 TALLOC_CTX *_mem_save_architecture_0;
21569 TALLOC_CTX *_mem_save_buffer_0;
21570 TALLOC_CTX *_mem_save_info_0;
21571 TALLOC_CTX *_mem_save_needed_0;
21572 if (flags & NDR_IN) {
21573 ZERO_STRUCT(r->out);
21575 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21576 NDR_PULL_ALLOC(ndr, r->in.handle);
21578 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21579 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21580 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21581 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21582 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
21583 if (_ptr_architecture) {
21584 NDR_PULL_ALLOC(ndr, r->in.architecture);
21586 r->in.architecture = NULL;
21588 if (r->in.architecture) {
21589 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
21590 NDR_PULL_SET_MEM_CTX(ndr, r->in.architecture, 0);
21591 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
21592 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
21593 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
21594 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));
21596 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
21597 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
21598 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
21600 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21601 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
21603 NDR_PULL_ALLOC(ndr, r->in.buffer);
21605 r->in.buffer = NULL;
21607 if (r->in.buffer) {
21608 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21609 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
21610 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
21611 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
21613 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21614 NDR_PULL_ALLOC(ndr, r->out.needed);
21615 ZERO_STRUCTP(r->out.needed);
21617 if (flags & NDR_OUT) {
21618 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
21620 NDR_PULL_ALLOC(ndr, r->out.info);
21622 r->out.info = NULL;
21625 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21626 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21628 struct ndr_pull *_ndr_info;
21629 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21630 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
21631 NDR_CHECK(ndr_pull_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
21632 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21634 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21636 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21637 NDR_PULL_ALLOC(ndr, r->out.needed);
21639 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21640 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21641 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21642 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21643 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21645 return NDR_ERR_SUCCESS;
21648 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriver *r)
21650 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriver");
21652 if (flags & NDR_SET_VALUES) {
21653 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21655 if (flags & NDR_IN) {
21656 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriver");
21658 ndr_print_ptr(ndr, "handle", r->in.handle);
21660 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21662 ndr_print_ptr(ndr, "architecture", r->in.architecture);
21664 if (r->in.architecture) {
21665 ndr_print_string(ndr, "architecture", r->in.architecture);
21668 ndr_print_uint32(ndr, "level", r->in.level);
21669 ndr_print_ptr(ndr, "buffer", r->in.buffer);
21671 if (r->in.buffer) {
21672 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
21675 ndr_print_uint32(ndr, "offered", r->in.offered);
21678 if (flags & NDR_OUT) {
21679 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriver");
21681 ndr_print_ptr(ndr, "info", r->out.info);
21684 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
21685 ndr_print_spoolss_DriverInfo(ndr, "info", r->out.info);
21688 ndr_print_ptr(ndr, "needed", r->out.needed);
21690 ndr_print_uint32(ndr, "needed", *r->out.needed);
21692 ndr_print_WERROR(ndr, "result", r->out.result);
21698 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinterDriverDirectory(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriverDirectory *r)
21700 if (flags & NDR_IN) {
21701 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
21702 if (r->in.server) {
21703 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21704 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21705 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21706 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21708 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
21709 if (r->in.environment) {
21710 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
21711 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21712 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
21713 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21715 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21716 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
21717 if (r->in.buffer) {
21718 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
21720 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21722 if (flags & NDR_OUT) {
21723 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
21726 struct ndr_push *_ndr_info;
21727 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21728 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
21729 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
21730 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21733 if (r->out.needed == NULL) {
21734 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21736 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21737 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21739 return NDR_ERR_SUCCESS;
21742 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinterDriverDirectory(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriverDirectory *r)
21744 uint32_t _ptr_server;
21745 uint32_t _ptr_environment;
21746 uint32_t _ptr_buffer;
21747 uint32_t _ptr_info;
21748 TALLOC_CTX *_mem_save_server_0;
21749 TALLOC_CTX *_mem_save_environment_0;
21750 TALLOC_CTX *_mem_save_buffer_0;
21751 TALLOC_CTX *_mem_save_info_0;
21752 TALLOC_CTX *_mem_save_needed_0;
21753 if (flags & NDR_IN) {
21754 ZERO_STRUCT(r->out);
21756 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
21758 NDR_PULL_ALLOC(ndr, r->in.server);
21760 r->in.server = NULL;
21762 if (r->in.server) {
21763 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
21764 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
21765 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
21766 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
21767 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
21768 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));
21770 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
21771 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
21772 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
21774 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
21775 if (_ptr_environment) {
21776 NDR_PULL_ALLOC(ndr, r->in.environment);
21778 r->in.environment = NULL;
21780 if (r->in.environment) {
21781 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
21782 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
21783 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
21784 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
21785 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
21786 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));
21788 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
21789 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
21790 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
21792 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21793 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
21795 NDR_PULL_ALLOC(ndr, r->in.buffer);
21797 r->in.buffer = NULL;
21799 if (r->in.buffer) {
21800 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21801 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
21802 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
21803 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
21805 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21806 NDR_PULL_ALLOC(ndr, r->out.needed);
21807 ZERO_STRUCTP(r->out.needed);
21809 if (flags & NDR_OUT) {
21810 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
21812 NDR_PULL_ALLOC(ndr, r->out.info);
21814 r->out.info = NULL;
21817 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21818 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21820 struct ndr_pull *_ndr_info;
21821 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21822 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
21823 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
21824 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21826 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21828 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21829 NDR_PULL_ALLOC(ndr, r->out.needed);
21831 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21832 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21833 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21834 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21835 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21837 return NDR_ERR_SUCCESS;
21840 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriverDirectory(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriverDirectory *r)
21842 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriverDirectory");
21844 if (flags & NDR_SET_VALUES) {
21845 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21847 if (flags & NDR_IN) {
21848 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriverDirectory");
21850 ndr_print_ptr(ndr, "server", r->in.server);
21852 if (r->in.server) {
21853 ndr_print_string(ndr, "server", r->in.server);
21856 ndr_print_ptr(ndr, "environment", r->in.environment);
21858 if (r->in.environment) {
21859 ndr_print_string(ndr, "environment", r->in.environment);
21862 ndr_print_uint32(ndr, "level", r->in.level);
21863 ndr_print_ptr(ndr, "buffer", r->in.buffer);
21865 if (r->in.buffer) {
21866 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
21869 ndr_print_uint32(ndr, "offered", r->in.offered);
21872 if (flags & NDR_OUT) {
21873 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriverDirectory");
21875 ndr_print_ptr(ndr, "info", r->out.info);
21878 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
21879 ndr_print_spoolss_DriverDirectoryInfo(ndr, "info", r->out.info);
21882 ndr_print_ptr(ndr, "needed", r->out.needed);
21884 ndr_print_uint32(ndr, "needed", *r->out.needed);
21886 ndr_print_WERROR(ndr, "result", r->out.result);
21892 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDriver *r)
21894 if (flags & NDR_IN) {
21895 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
21896 if (r->in.server) {
21897 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21898 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21899 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21900 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21902 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
21903 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21904 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
21905 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21906 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
21907 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21908 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
21909 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver, ndr_charset_length(r->in.driver, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21911 if (flags & NDR_OUT) {
21912 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21914 return NDR_ERR_SUCCESS;
21917 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDriver *r)
21919 uint32_t _ptr_server;
21920 TALLOC_CTX *_mem_save_server_0;
21921 if (flags & NDR_IN) {
21922 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
21924 NDR_PULL_ALLOC(ndr, r->in.server);
21926 r->in.server = NULL;
21928 if (r->in.server) {
21929 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
21930 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
21931 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
21932 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
21933 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
21934 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));
21936 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
21937 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
21938 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
21940 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
21941 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
21942 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
21943 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));
21945 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
21946 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
21947 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver));
21948 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.driver));
21949 if (ndr_get_array_length(ndr, &r->in.driver) > ndr_get_array_size(ndr, &r->in.driver)) {
21950 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));
21952 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t)));
21953 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t), CH_UTF16));
21955 if (flags & NDR_OUT) {
21956 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21958 return NDR_ERR_SUCCESS;
21961 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDriver *r)
21963 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDriver");
21965 if (flags & NDR_SET_VALUES) {
21966 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21968 if (flags & NDR_IN) {
21969 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDriver");
21971 ndr_print_ptr(ndr, "server", r->in.server);
21973 if (r->in.server) {
21974 ndr_print_string(ndr, "server", r->in.server);
21977 ndr_print_string(ndr, "architecture", r->in.architecture);
21978 ndr_print_string(ndr, "driver", r->in.driver);
21981 if (flags & NDR_OUT) {
21982 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDriver");
21984 ndr_print_WERROR(ndr, "result", r->out.result);
21990 static enum ndr_err_code ndr_push_spoolss_AddPrintProcessor(struct ndr_push *ndr, int flags, const struct spoolss_AddPrintProcessor *r)
21992 if (flags & NDR_IN) {
21993 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
21994 if (r->in.server) {
21995 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21996 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21997 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21998 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22000 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
22001 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22002 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
22003 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22004 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.path_name, CH_UTF16)));
22005 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22006 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.path_name, CH_UTF16)));
22007 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));
22008 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
22009 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22010 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
22011 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));
22013 if (flags & NDR_OUT) {
22014 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22016 return NDR_ERR_SUCCESS;
22019 static enum ndr_err_code ndr_pull_spoolss_AddPrintProcessor(struct ndr_pull *ndr, int flags, struct spoolss_AddPrintProcessor *r)
22021 uint32_t _ptr_server;
22022 TALLOC_CTX *_mem_save_server_0;
22023 if (flags & NDR_IN) {
22024 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
22026 NDR_PULL_ALLOC(ndr, r->in.server);
22028 r->in.server = NULL;
22030 if (r->in.server) {
22031 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
22032 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
22033 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
22034 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
22035 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
22036 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));
22038 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
22039 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
22040 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
22042 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
22043 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
22044 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
22045 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));
22047 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
22048 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
22049 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.path_name));
22050 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.path_name));
22051 if (ndr_get_array_length(ndr, &r->in.path_name) > ndr_get_array_size(ndr, &r->in.path_name)) {
22052 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));
22054 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.path_name), sizeof(uint16_t)));
22055 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));
22056 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.print_processor_name));
22057 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.print_processor_name));
22058 if (ndr_get_array_length(ndr, &r->in.print_processor_name) > ndr_get_array_size(ndr, &r->in.print_processor_name)) {
22059 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));
22061 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.print_processor_name), sizeof(uint16_t)));
22062 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));
22064 if (flags & NDR_OUT) {
22065 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22067 return NDR_ERR_SUCCESS;
22070 _PUBLIC_ void ndr_print_spoolss_AddPrintProcessor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrintProcessor *r)
22072 ndr_print_struct(ndr, name, "spoolss_AddPrintProcessor");
22074 if (flags & NDR_SET_VALUES) {
22075 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22077 if (flags & NDR_IN) {
22078 ndr_print_struct(ndr, "in", "spoolss_AddPrintProcessor");
22080 ndr_print_ptr(ndr, "server", r->in.server);
22082 if (r->in.server) {
22083 ndr_print_string(ndr, "server", r->in.server);
22086 ndr_print_string(ndr, "architecture", r->in.architecture);
22087 ndr_print_string(ndr, "path_name", r->in.path_name);
22088 ndr_print_string(ndr, "print_processor_name", r->in.print_processor_name);
22091 if (flags & NDR_OUT) {
22092 ndr_print_struct(ndr, "out", "spoolss_AddPrintProcessor");
22094 ndr_print_WERROR(ndr, "result", r->out.result);
22100 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrintProcessors(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrintProcessors *r)
22102 if (flags & NDR_IN) {
22103 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
22104 if (r->in.servername) {
22105 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
22106 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22107 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
22108 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22110 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
22111 if (r->in.environment) {
22112 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, 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.environment, CH_UTF16)));
22115 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, 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));
22127 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
22129 if (r->out.needed == NULL) {
22130 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22132 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22133 if (r->out.count == NULL) {
22134 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22136 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
22137 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22139 return NDR_ERR_SUCCESS;
22142 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrintProcessors(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrintProcessors *r)
22144 uint32_t _ptr_servername;
22145 uint32_t _ptr_environment;
22146 uint32_t _ptr_buffer;
22147 uint32_t _ptr_info;
22148 TALLOC_CTX *_mem_save_servername_0;
22149 TALLOC_CTX *_mem_save_environment_0;
22150 TALLOC_CTX *_mem_save_buffer_0;
22151 TALLOC_CTX *_mem_save_info_0;
22152 TALLOC_CTX *_mem_save_needed_0;
22153 TALLOC_CTX *_mem_save_count_0;
22154 if (flags & NDR_IN) {
22155 ZERO_STRUCT(r->out);
22157 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
22158 if (_ptr_servername) {
22159 NDR_PULL_ALLOC(ndr, r->in.servername);
22161 r->in.servername = NULL;
22163 if (r->in.servername) {
22164 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
22165 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
22166 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
22167 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
22168 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
22169 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));
22171 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
22172 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
22173 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
22175 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
22176 if (_ptr_environment) {
22177 NDR_PULL_ALLOC(ndr, r->in.environment);
22179 r->in.environment = NULL;
22181 if (r->in.environment) {
22182 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
22183 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
22184 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
22185 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
22186 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
22187 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));
22189 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
22190 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
22191 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
22193 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22194 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
22196 NDR_PULL_ALLOC(ndr, r->in.buffer);
22198 r->in.buffer = NULL;
22200 if (r->in.buffer) {
22201 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
22202 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
22203 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
22204 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22206 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22207 NDR_PULL_ALLOC(ndr, r->out.needed);
22208 ZERO_STRUCTP(r->out.needed);
22209 NDR_PULL_ALLOC(ndr, r->out.count);
22210 ZERO_STRUCTP(r->out.count);
22212 if (flags & NDR_OUT) {
22213 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
22215 NDR_PULL_ALLOC(ndr, r->out.info);
22217 r->out.info = NULL;
22220 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22221 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22222 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
22223 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22225 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22226 NDR_PULL_ALLOC(ndr, r->out.needed);
22228 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22229 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22230 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22231 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22232 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22233 NDR_PULL_ALLOC(ndr, r->out.count);
22235 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
22236 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
22237 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
22238 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
22239 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22241 return NDR_ERR_SUCCESS;
22244 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrintProcessors(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrintProcessors *r)
22246 uint32_t cntr_info_0;
22247 if (flags & NDR_IN) {
22248 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22249 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
22251 if (flags & NDR_OUT) {
22252 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22253 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
22254 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
22256 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22257 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
22260 return NDR_ERR_SUCCESS;
22263 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrintProcessors(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrintProcessors *r)
22265 uint32_t cntr_info_0;
22266 TALLOC_CTX *_mem_save_info_0;
22267 if (flags & NDR_IN) {
22268 ZERO_STRUCT(r->out);
22270 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22271 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
22273 if (flags & NDR_OUT) {
22274 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
22275 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22276 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22277 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22278 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
22279 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
22281 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22282 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
22284 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22286 return NDR_ERR_SUCCESS;
22289 _PUBLIC_ void ndr_print_spoolss_EnumPrintProcessors(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrintProcessors *r)
22291 uint32_t cntr_info_2;
22292 ndr_print_struct(ndr, name, "spoolss_EnumPrintProcessors");
22294 if (flags & NDR_SET_VALUES) {
22295 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22297 if (flags & NDR_IN) {
22298 ndr_print_struct(ndr, "in", "spoolss_EnumPrintProcessors");
22300 ndr_print_ptr(ndr, "servername", r->in.servername);
22302 if (r->in.servername) {
22303 ndr_print_string(ndr, "servername", r->in.servername);
22306 ndr_print_ptr(ndr, "environment", r->in.environment);
22308 if (r->in.environment) {
22309 ndr_print_string(ndr, "environment", r->in.environment);
22312 ndr_print_uint32(ndr, "level", r->in.level);
22313 ndr_print_ptr(ndr, "buffer", r->in.buffer);
22315 if (r->in.buffer) {
22316 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
22319 ndr_print_uint32(ndr, "offered", r->in.offered);
22322 if (flags & NDR_OUT) {
22323 ndr_print_struct(ndr, "out", "spoolss_EnumPrintProcessors");
22325 ndr_print_ptr(ndr, "count", r->out.count);
22327 ndr_print_uint32(ndr, "count", *r->out.count);
22329 ndr_print_ptr(ndr, "info", r->out.info);
22331 ndr_print_ptr(ndr, "info", *r->out.info);
22333 if (*r->out.info) {
22334 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
22336 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
22338 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
22339 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
22340 ndr_print_spoolss_PrintProcessorInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
22348 ndr_print_ptr(ndr, "needed", r->out.needed);
22350 ndr_print_uint32(ndr, "needed", *r->out.needed);
22352 ndr_print_WERROR(ndr, "result", r->out.result);
22358 static enum ndr_err_code ndr_push_spoolss_GetPrintProcessorDirectory(struct ndr_push *ndr, int flags, const struct spoolss_GetPrintProcessorDirectory *r)
22360 if (flags & NDR_IN) {
22361 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
22362 if (r->in.server) {
22363 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22364 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22365 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22366 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22368 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
22369 if (r->in.environment) {
22370 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
22371 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22372 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
22373 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22375 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22376 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
22377 if (r->in.buffer) {
22378 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
22380 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22382 if (flags & NDR_OUT) {
22383 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
22386 struct ndr_push *_ndr_info;
22387 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
22388 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
22389 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
22390 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
22393 if (r->out.needed == NULL) {
22394 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22396 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22397 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22399 return NDR_ERR_SUCCESS;
22402 static enum ndr_err_code ndr_pull_spoolss_GetPrintProcessorDirectory(struct ndr_pull *ndr, int flags, struct spoolss_GetPrintProcessorDirectory *r)
22404 uint32_t _ptr_server;
22405 uint32_t _ptr_environment;
22406 uint32_t _ptr_buffer;
22407 uint32_t _ptr_info;
22408 TALLOC_CTX *_mem_save_server_0;
22409 TALLOC_CTX *_mem_save_environment_0;
22410 TALLOC_CTX *_mem_save_buffer_0;
22411 TALLOC_CTX *_mem_save_info_0;
22412 TALLOC_CTX *_mem_save_needed_0;
22413 if (flags & NDR_IN) {
22414 ZERO_STRUCT(r->out);
22416 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
22418 NDR_PULL_ALLOC(ndr, r->in.server);
22420 r->in.server = NULL;
22422 if (r->in.server) {
22423 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
22424 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
22425 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
22426 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
22427 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
22428 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));
22430 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
22431 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
22432 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
22434 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
22435 if (_ptr_environment) {
22436 NDR_PULL_ALLOC(ndr, r->in.environment);
22438 r->in.environment = NULL;
22440 if (r->in.environment) {
22441 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
22442 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
22443 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
22444 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
22445 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
22446 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));
22448 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
22449 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
22450 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
22452 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22453 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
22455 NDR_PULL_ALLOC(ndr, r->in.buffer);
22457 r->in.buffer = NULL;
22459 if (r->in.buffer) {
22460 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
22461 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
22462 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
22463 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22465 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22466 NDR_PULL_ALLOC(ndr, r->out.needed);
22467 ZERO_STRUCTP(r->out.needed);
22469 if (flags & NDR_OUT) {
22470 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
22472 NDR_PULL_ALLOC(ndr, r->out.info);
22474 r->out.info = NULL;
22477 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22478 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22480 struct ndr_pull *_ndr_info;
22481 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
22482 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
22483 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
22484 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
22486 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22488 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22489 NDR_PULL_ALLOC(ndr, r->out.needed);
22491 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22492 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22493 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22494 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22495 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22497 return NDR_ERR_SUCCESS;
22500 _PUBLIC_ void ndr_print_spoolss_GetPrintProcessorDirectory(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrintProcessorDirectory *r)
22502 ndr_print_struct(ndr, name, "spoolss_GetPrintProcessorDirectory");
22504 if (flags & NDR_SET_VALUES) {
22505 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22507 if (flags & NDR_IN) {
22508 ndr_print_struct(ndr, "in", "spoolss_GetPrintProcessorDirectory");
22510 ndr_print_ptr(ndr, "server", r->in.server);
22512 if (r->in.server) {
22513 ndr_print_string(ndr, "server", r->in.server);
22516 ndr_print_ptr(ndr, "environment", r->in.environment);
22518 if (r->in.environment) {
22519 ndr_print_string(ndr, "environment", r->in.environment);
22522 ndr_print_uint32(ndr, "level", r->in.level);
22523 ndr_print_ptr(ndr, "buffer", r->in.buffer);
22525 if (r->in.buffer) {
22526 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
22529 ndr_print_uint32(ndr, "offered", r->in.offered);
22532 if (flags & NDR_OUT) {
22533 ndr_print_struct(ndr, "out", "spoolss_GetPrintProcessorDirectory");
22535 ndr_print_ptr(ndr, "info", r->out.info);
22538 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
22539 ndr_print_spoolss_PrintProcessorDirectoryInfo(ndr, "info", r->out.info);
22542 ndr_print_ptr(ndr, "needed", r->out.needed);
22544 ndr_print_uint32(ndr, "needed", *r->out.needed);
22546 ndr_print_WERROR(ndr, "result", r->out.result);
22552 static enum ndr_err_code ndr_push_spoolss_StartDocPrinter(struct ndr_push *ndr, int flags, const struct spoolss_StartDocPrinter *r)
22554 if (flags & NDR_IN) {
22555 if (r->in.handle == NULL) {
22556 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22558 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22559 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22560 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
22561 NDR_CHECK(ndr_push_spoolss_DocumentInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
22563 if (flags & NDR_OUT) {
22564 if (r->out.job_id == NULL) {
22565 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22567 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.job_id));
22568 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22570 return NDR_ERR_SUCCESS;
22573 static enum ndr_err_code ndr_pull_spoolss_StartDocPrinter(struct ndr_pull *ndr, int flags, struct spoolss_StartDocPrinter *r)
22575 TALLOC_CTX *_mem_save_handle_0;
22576 TALLOC_CTX *_mem_save_job_id_0;
22577 if (flags & NDR_IN) {
22578 ZERO_STRUCT(r->out);
22580 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22581 NDR_PULL_ALLOC(ndr, r->in.handle);
22583 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22584 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22585 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22586 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22587 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22588 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
22589 NDR_CHECK(ndr_pull_spoolss_DocumentInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
22590 NDR_PULL_ALLOC(ndr, r->out.job_id);
22591 ZERO_STRUCTP(r->out.job_id);
22593 if (flags & NDR_OUT) {
22594 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22595 NDR_PULL_ALLOC(ndr, r->out.job_id);
22597 _mem_save_job_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
22598 NDR_PULL_SET_MEM_CTX(ndr, r->out.job_id, LIBNDR_FLAG_REF_ALLOC);
22599 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.job_id));
22600 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_job_id_0, LIBNDR_FLAG_REF_ALLOC);
22601 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22603 return NDR_ERR_SUCCESS;
22606 _PUBLIC_ void ndr_print_spoolss_StartDocPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_StartDocPrinter *r)
22608 ndr_print_struct(ndr, name, "spoolss_StartDocPrinter");
22610 if (flags & NDR_SET_VALUES) {
22611 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22613 if (flags & NDR_IN) {
22614 ndr_print_struct(ndr, "in", "spoolss_StartDocPrinter");
22616 ndr_print_ptr(ndr, "handle", r->in.handle);
22618 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22620 ndr_print_uint32(ndr, "level", r->in.level);
22621 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
22622 ndr_print_spoolss_DocumentInfo(ndr, "info", &r->in.info);
22625 if (flags & NDR_OUT) {
22626 ndr_print_struct(ndr, "out", "spoolss_StartDocPrinter");
22628 ndr_print_ptr(ndr, "job_id", r->out.job_id);
22630 ndr_print_uint32(ndr, "job_id", *r->out.job_id);
22632 ndr_print_WERROR(ndr, "result", r->out.result);
22638 static enum ndr_err_code ndr_push_spoolss_StartPagePrinter(struct ndr_push *ndr, int flags, const struct spoolss_StartPagePrinter *r)
22640 if (flags & NDR_IN) {
22641 if (r->in.handle == NULL) {
22642 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22644 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22646 if (flags & NDR_OUT) {
22647 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22649 return NDR_ERR_SUCCESS;
22652 static enum ndr_err_code ndr_pull_spoolss_StartPagePrinter(struct ndr_pull *ndr, int flags, struct spoolss_StartPagePrinter *r)
22654 TALLOC_CTX *_mem_save_handle_0;
22655 if (flags & NDR_IN) {
22656 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22657 NDR_PULL_ALLOC(ndr, r->in.handle);
22659 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22660 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22661 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22662 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22664 if (flags & NDR_OUT) {
22665 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22667 return NDR_ERR_SUCCESS;
22670 _PUBLIC_ void ndr_print_spoolss_StartPagePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_StartPagePrinter *r)
22672 ndr_print_struct(ndr, name, "spoolss_StartPagePrinter");
22674 if (flags & NDR_SET_VALUES) {
22675 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22677 if (flags & NDR_IN) {
22678 ndr_print_struct(ndr, "in", "spoolss_StartPagePrinter");
22680 ndr_print_ptr(ndr, "handle", r->in.handle);
22682 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22686 if (flags & NDR_OUT) {
22687 ndr_print_struct(ndr, "out", "spoolss_StartPagePrinter");
22689 ndr_print_WERROR(ndr, "result", r->out.result);
22695 static enum ndr_err_code ndr_push_spoolss_WritePrinter(struct ndr_push *ndr, int flags, const struct spoolss_WritePrinter *r)
22697 if (flags & NDR_IN) {
22698 if (r->in.handle == NULL) {
22699 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22701 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22702 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
22703 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data.length));
22705 if (flags & NDR_OUT) {
22706 if (r->out.num_written == NULL) {
22707 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22709 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.num_written));
22710 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22712 return NDR_ERR_SUCCESS;
22715 static enum ndr_err_code ndr_pull_spoolss_WritePrinter(struct ndr_pull *ndr, int flags, struct spoolss_WritePrinter *r)
22717 TALLOC_CTX *_mem_save_handle_0;
22718 TALLOC_CTX *_mem_save_num_written_0;
22719 if (flags & NDR_IN) {
22720 ZERO_STRUCT(r->out);
22722 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22723 NDR_PULL_ALLOC(ndr, r->in.handle);
22725 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22726 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22727 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22728 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22729 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->in.data));
22730 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._data_size));
22731 NDR_PULL_ALLOC(ndr, r->out.num_written);
22732 ZERO_STRUCTP(r->out.num_written);
22734 if (flags & NDR_OUT) {
22735 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22736 NDR_PULL_ALLOC(ndr, r->out.num_written);
22738 _mem_save_num_written_0 = NDR_PULL_GET_MEM_CTX(ndr);
22739 NDR_PULL_SET_MEM_CTX(ndr, r->out.num_written, LIBNDR_FLAG_REF_ALLOC);
22740 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.num_written));
22741 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_num_written_0, LIBNDR_FLAG_REF_ALLOC);
22742 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22744 return NDR_ERR_SUCCESS;
22747 _PUBLIC_ void ndr_print_spoolss_WritePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_WritePrinter *r)
22749 ndr_print_struct(ndr, name, "spoolss_WritePrinter");
22751 if (flags & NDR_SET_VALUES) {
22752 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22754 if (flags & NDR_IN) {
22755 ndr_print_struct(ndr, "in", "spoolss_WritePrinter");
22757 ndr_print_ptr(ndr, "handle", r->in.handle);
22759 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22761 ndr_print_DATA_BLOB(ndr, "data", r->in.data);
22762 ndr_print_uint32(ndr, "_data_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->in.data.length:r->in._data_size);
22765 if (flags & NDR_OUT) {
22766 ndr_print_struct(ndr, "out", "spoolss_WritePrinter");
22768 ndr_print_ptr(ndr, "num_written", r->out.num_written);
22770 ndr_print_uint32(ndr, "num_written", *r->out.num_written);
22772 ndr_print_WERROR(ndr, "result", r->out.result);
22778 static enum ndr_err_code ndr_push_spoolss_EndPagePrinter(struct ndr_push *ndr, int flags, const struct spoolss_EndPagePrinter *r)
22780 if (flags & NDR_IN) {
22781 if (r->in.handle == NULL) {
22782 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22784 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22786 if (flags & NDR_OUT) {
22787 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22789 return NDR_ERR_SUCCESS;
22792 static enum ndr_err_code ndr_pull_spoolss_EndPagePrinter(struct ndr_pull *ndr, int flags, struct spoolss_EndPagePrinter *r)
22794 TALLOC_CTX *_mem_save_handle_0;
22795 if (flags & NDR_IN) {
22796 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22797 NDR_PULL_ALLOC(ndr, r->in.handle);
22799 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22800 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22801 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22802 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22804 if (flags & NDR_OUT) {
22805 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22807 return NDR_ERR_SUCCESS;
22810 _PUBLIC_ void ndr_print_spoolss_EndPagePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EndPagePrinter *r)
22812 ndr_print_struct(ndr, name, "spoolss_EndPagePrinter");
22814 if (flags & NDR_SET_VALUES) {
22815 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22817 if (flags & NDR_IN) {
22818 ndr_print_struct(ndr, "in", "spoolss_EndPagePrinter");
22820 ndr_print_ptr(ndr, "handle", r->in.handle);
22822 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22826 if (flags & NDR_OUT) {
22827 ndr_print_struct(ndr, "out", "spoolss_EndPagePrinter");
22829 ndr_print_WERROR(ndr, "result", r->out.result);
22835 static enum ndr_err_code ndr_push_spoolss_AbortPrinter(struct ndr_push *ndr, int flags, const struct spoolss_AbortPrinter *r)
22837 if (flags & NDR_IN) {
22838 if (r->in.handle == NULL) {
22839 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22841 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22843 if (flags & NDR_OUT) {
22844 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22846 return NDR_ERR_SUCCESS;
22849 static enum ndr_err_code ndr_pull_spoolss_AbortPrinter(struct ndr_pull *ndr, int flags, struct spoolss_AbortPrinter *r)
22851 TALLOC_CTX *_mem_save_handle_0;
22852 if (flags & NDR_IN) {
22853 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22854 NDR_PULL_ALLOC(ndr, r->in.handle);
22856 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22857 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22858 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22859 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22861 if (flags & NDR_OUT) {
22862 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22864 return NDR_ERR_SUCCESS;
22867 _PUBLIC_ void ndr_print_spoolss_AbortPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AbortPrinter *r)
22869 ndr_print_struct(ndr, name, "spoolss_AbortPrinter");
22871 if (flags & NDR_SET_VALUES) {
22872 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22874 if (flags & NDR_IN) {
22875 ndr_print_struct(ndr, "in", "spoolss_AbortPrinter");
22877 ndr_print_ptr(ndr, "handle", r->in.handle);
22879 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22883 if (flags & NDR_OUT) {
22884 ndr_print_struct(ndr, "out", "spoolss_AbortPrinter");
22886 ndr_print_WERROR(ndr, "result", r->out.result);
22892 static enum ndr_err_code ndr_push_spoolss_ReadPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReadPrinter *r)
22894 if (flags & NDR_IN) {
22895 if (r->in.handle == NULL) {
22896 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22898 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22899 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_size));
22901 if (flags & NDR_OUT) {
22902 if (r->out.data == NULL) {
22903 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22905 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.data_size));
22906 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->in.data_size));
22907 if (r->out._data_size == NULL) {
22908 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22910 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out._data_size));
22911 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22913 return NDR_ERR_SUCCESS;
22916 static enum ndr_err_code ndr_pull_spoolss_ReadPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReadPrinter *r)
22918 TALLOC_CTX *_mem_save_handle_0;
22919 TALLOC_CTX *_mem_save__data_size_0;
22920 if (flags & NDR_IN) {
22921 ZERO_STRUCT(r->out);
22923 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22924 NDR_PULL_ALLOC(ndr, r->in.handle);
22926 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22927 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22928 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22929 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22930 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_size));
22931 NDR_PULL_ALLOC_N(ndr, r->out.data, r->in.data_size);
22932 memset(r->out.data, 0, (r->in.data_size) * sizeof(*r->out.data));
22933 NDR_PULL_ALLOC(ndr, r->out._data_size);
22934 ZERO_STRUCTP(r->out._data_size);
22936 if (flags & NDR_OUT) {
22937 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
22938 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22939 NDR_PULL_ALLOC_N(ndr, r->out.data, ndr_get_array_size(ndr, &r->out.data));
22941 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, ndr_get_array_size(ndr, &r->out.data)));
22942 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22943 NDR_PULL_ALLOC(ndr, r->out._data_size);
22945 _mem_save__data_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
22946 NDR_PULL_SET_MEM_CTX(ndr, r->out._data_size, LIBNDR_FLAG_REF_ALLOC);
22947 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out._data_size));
22948 NDR_PULL_SET_MEM_CTX(ndr, _mem_save__data_size_0, LIBNDR_FLAG_REF_ALLOC);
22949 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22951 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, r->in.data_size));
22954 return NDR_ERR_SUCCESS;
22957 _PUBLIC_ void ndr_print_spoolss_ReadPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReadPrinter *r)
22959 ndr_print_struct(ndr, name, "spoolss_ReadPrinter");
22961 if (flags & NDR_SET_VALUES) {
22962 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22964 if (flags & NDR_IN) {
22965 ndr_print_struct(ndr, "in", "spoolss_ReadPrinter");
22967 ndr_print_ptr(ndr, "handle", r->in.handle);
22969 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22971 ndr_print_uint32(ndr, "data_size", r->in.data_size);
22974 if (flags & NDR_OUT) {
22975 ndr_print_struct(ndr, "out", "spoolss_ReadPrinter");
22977 ndr_print_ptr(ndr, "data", r->out.data);
22979 ndr_print_array_uint8(ndr, "data", r->out.data, r->in.data_size);
22981 ndr_print_ptr(ndr, "_data_size", r->out._data_size);
22983 ndr_print_uint32(ndr, "_data_size", *r->out._data_size);
22985 ndr_print_WERROR(ndr, "result", r->out.result);
22991 static enum ndr_err_code ndr_push_spoolss_EndDocPrinter(struct ndr_push *ndr, int flags, const struct spoolss_EndDocPrinter *r)
22993 if (flags & NDR_IN) {
22994 if (r->in.handle == NULL) {
22995 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22997 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22999 if (flags & NDR_OUT) {
23000 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23002 return NDR_ERR_SUCCESS;
23005 static enum ndr_err_code ndr_pull_spoolss_EndDocPrinter(struct ndr_pull *ndr, int flags, struct spoolss_EndDocPrinter *r)
23007 TALLOC_CTX *_mem_save_handle_0;
23008 if (flags & NDR_IN) {
23009 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23010 NDR_PULL_ALLOC(ndr, r->in.handle);
23012 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23013 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23014 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23015 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23017 if (flags & NDR_OUT) {
23018 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23020 return NDR_ERR_SUCCESS;
23023 _PUBLIC_ void ndr_print_spoolss_EndDocPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EndDocPrinter *r)
23025 ndr_print_struct(ndr, name, "spoolss_EndDocPrinter");
23027 if (flags & NDR_SET_VALUES) {
23028 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23030 if (flags & NDR_IN) {
23031 ndr_print_struct(ndr, "in", "spoolss_EndDocPrinter");
23033 ndr_print_ptr(ndr, "handle", r->in.handle);
23035 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23039 if (flags & NDR_OUT) {
23040 ndr_print_struct(ndr, "out", "spoolss_EndDocPrinter");
23042 ndr_print_WERROR(ndr, "result", r->out.result);
23048 static enum ndr_err_code ndr_push_spoolss_AddJob(struct ndr_push *ndr, int flags, const struct spoolss_AddJob *r)
23050 if (flags & NDR_IN) {
23051 if (r->in.handle == NULL) {
23052 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23054 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23055 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23056 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
23057 if (r->in.buffer) {
23058 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.offered));
23059 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.offered));
23061 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
23063 if (flags & NDR_OUT) {
23064 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.buffer));
23065 if (r->out.buffer) {
23066 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.offered));
23067 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
23069 if (r->out.needed == NULL) {
23070 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23072 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
23073 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23075 return NDR_ERR_SUCCESS;
23078 static enum ndr_err_code ndr_pull_spoolss_AddJob(struct ndr_pull *ndr, int flags, struct spoolss_AddJob *r)
23080 uint32_t _ptr_buffer;
23081 TALLOC_CTX *_mem_save_handle_0;
23082 TALLOC_CTX *_mem_save_buffer_0;
23083 TALLOC_CTX *_mem_save_needed_0;
23084 if (flags & NDR_IN) {
23085 ZERO_STRUCT(r->out);
23087 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23088 NDR_PULL_ALLOC(ndr, r->in.handle);
23090 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23091 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23092 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23093 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23094 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23095 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
23097 NDR_PULL_ALLOC(ndr, r->in.buffer);
23099 r->in.buffer = NULL;
23101 if (r->in.buffer) {
23102 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
23103 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
23104 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
23105 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
23106 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
23107 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
23109 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
23110 NDR_PULL_ALLOC(ndr, r->out.needed);
23111 ZERO_STRUCTP(r->out.needed);
23112 if (r->in.buffer) {
23113 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.offered));
23116 if (flags & NDR_OUT) {
23117 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
23119 NDR_PULL_ALLOC(ndr, r->out.buffer);
23121 r->out.buffer = NULL;
23123 if (r->out.buffer) {
23124 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
23125 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, 0);
23126 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
23127 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
23128 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)));
23129 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
23131 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23132 NDR_PULL_ALLOC(ndr, r->out.needed);
23134 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
23135 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
23136 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
23137 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
23138 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23139 if (r->out.buffer) {
23140 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
23143 return NDR_ERR_SUCCESS;
23146 _PUBLIC_ void ndr_print_spoolss_AddJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddJob *r)
23148 ndr_print_struct(ndr, name, "spoolss_AddJob");
23150 if (flags & NDR_SET_VALUES) {
23151 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23153 if (flags & NDR_IN) {
23154 ndr_print_struct(ndr, "in", "spoolss_AddJob");
23156 ndr_print_ptr(ndr, "handle", r->in.handle);
23158 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23160 ndr_print_uint32(ndr, "level", r->in.level);
23161 ndr_print_ptr(ndr, "buffer", r->in.buffer);
23163 if (r->in.buffer) {
23164 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.offered);
23167 ndr_print_uint32(ndr, "offered", r->in.offered);
23170 if (flags & NDR_OUT) {
23171 ndr_print_struct(ndr, "out", "spoolss_AddJob");
23173 ndr_print_ptr(ndr, "buffer", r->out.buffer);
23175 if (r->out.buffer) {
23176 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
23179 ndr_print_ptr(ndr, "needed", r->out.needed);
23181 ndr_print_uint32(ndr, "needed", *r->out.needed);
23183 ndr_print_WERROR(ndr, "result", r->out.result);
23189 static enum ndr_err_code ndr_push_spoolss_ScheduleJob(struct ndr_push *ndr, int flags, const struct spoolss_ScheduleJob *r)
23191 if (flags & NDR_IN) {
23192 if (r->in.handle == NULL) {
23193 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23195 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23196 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.jobid));
23198 if (flags & NDR_OUT) {
23199 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23201 return NDR_ERR_SUCCESS;
23204 static enum ndr_err_code ndr_pull_spoolss_ScheduleJob(struct ndr_pull *ndr, int flags, struct spoolss_ScheduleJob *r)
23206 TALLOC_CTX *_mem_save_handle_0;
23207 if (flags & NDR_IN) {
23208 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23209 NDR_PULL_ALLOC(ndr, r->in.handle);
23211 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23212 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23213 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23214 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23215 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.jobid));
23217 if (flags & NDR_OUT) {
23218 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23220 return NDR_ERR_SUCCESS;
23223 _PUBLIC_ void ndr_print_spoolss_ScheduleJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ScheduleJob *r)
23225 ndr_print_struct(ndr, name, "spoolss_ScheduleJob");
23227 if (flags & NDR_SET_VALUES) {
23228 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23230 if (flags & NDR_IN) {
23231 ndr_print_struct(ndr, "in", "spoolss_ScheduleJob");
23233 ndr_print_ptr(ndr, "handle", r->in.handle);
23235 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23237 ndr_print_uint32(ndr, "jobid", r->in.jobid);
23240 if (flags & NDR_OUT) {
23241 ndr_print_struct(ndr, "out", "spoolss_ScheduleJob");
23243 ndr_print_WERROR(ndr, "result", r->out.result);
23249 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct _spoolss_GetPrinterData *r)
23251 if (flags & NDR_IN) {
23252 if (r->in.handle == NULL) {
23253 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23255 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23256 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
23257 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
23258 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
23259 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));
23260 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
23262 if (flags & NDR_OUT) {
23263 if (r->out.type == NULL) {
23264 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23266 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
23267 if (r->out.data == NULL) {
23268 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23270 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.data));
23271 if (r->out.needed == NULL) {
23272 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23274 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
23275 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23277 return NDR_ERR_SUCCESS;
23280 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct _spoolss_GetPrinterData *r)
23282 TALLOC_CTX *_mem_save_handle_0;
23283 TALLOC_CTX *_mem_save_type_0;
23284 TALLOC_CTX *_mem_save_data_0;
23285 TALLOC_CTX *_mem_save_needed_0;
23286 if (flags & NDR_IN) {
23287 ZERO_STRUCT(r->out);
23289 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23290 NDR_PULL_ALLOC(ndr, r->in.handle);
23292 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23293 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23294 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23295 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23296 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
23297 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
23298 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
23299 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));
23301 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
23302 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));
23303 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
23304 NDR_PULL_ALLOC(ndr, r->out.type);
23305 ZERO_STRUCTP(r->out.type);
23306 NDR_PULL_ALLOC(ndr, r->out.data);
23307 ZERO_STRUCTP(r->out.data);
23308 NDR_PULL_ALLOC(ndr, r->out.needed);
23309 ZERO_STRUCTP(r->out.needed);
23311 if (flags & NDR_OUT) {
23312 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23313 NDR_PULL_ALLOC(ndr, r->out.type);
23315 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
23316 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
23317 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
23318 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
23319 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23320 NDR_PULL_ALLOC(ndr, r->out.data);
23322 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
23323 NDR_PULL_SET_MEM_CTX(ndr, r->out.data, LIBNDR_FLAG_REF_ALLOC);
23324 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.data));
23325 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
23326 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23327 NDR_PULL_ALLOC(ndr, r->out.needed);
23329 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
23330 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
23331 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
23332 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
23333 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23335 return NDR_ERR_SUCCESS;
23338 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct __spoolss_GetPrinterData *r)
23340 if (flags & NDR_IN) {
23341 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
23343 if (flags & NDR_OUT) {
23344 if (r->out.data == NULL) {
23345 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23347 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.data, r->in.type));
23348 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
23350 return NDR_ERR_SUCCESS;
23353 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct __spoolss_GetPrinterData *r)
23355 TALLOC_CTX *_mem_save_data_0;
23356 if (flags & NDR_IN) {
23357 ZERO_STRUCT(r->out);
23359 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
23360 NDR_PULL_ALLOC(ndr, r->out.data);
23361 ZERO_STRUCTP(r->out.data);
23363 if (flags & NDR_OUT) {
23364 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23365 NDR_PULL_ALLOC(ndr, r->out.data);
23367 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
23368 NDR_PULL_SET_MEM_CTX(ndr, r->out.data, LIBNDR_FLAG_REF_ALLOC);
23369 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.data, r->in.type));
23370 NDR_CHECK(ndr_pull_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
23371 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
23373 return NDR_ERR_SUCCESS;
23376 _PUBLIC_ void ndr_print_spoolss_GetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterData *r)
23378 ndr_print_struct(ndr, name, "spoolss_GetPrinterData");
23380 if (flags & NDR_SET_VALUES) {
23381 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23383 if (flags & NDR_IN) {
23384 ndr_print_struct(ndr, "in", "spoolss_GetPrinterData");
23386 ndr_print_ptr(ndr, "handle", r->in.handle);
23388 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23390 ndr_print_string(ndr, "value_name", r->in.value_name);
23391 ndr_print_uint32(ndr, "offered", r->in.offered);
23394 if (flags & NDR_OUT) {
23395 ndr_print_struct(ndr, "out", "spoolss_GetPrinterData");
23397 ndr_print_ptr(ndr, "type", r->out.type);
23399 ndr_print_winreg_Type(ndr, "type", *r->out.type);
23401 ndr_print_ptr(ndr, "data", r->out.data);
23403 ndr_print_set_switch_value(ndr, r->out.data, *r->out.type);
23404 ndr_print_spoolss_PrinterData(ndr, "data", r->out.data);
23406 ndr_print_ptr(ndr, "needed", r->out.needed);
23408 ndr_print_uint32(ndr, "needed", *r->out.needed);
23410 ndr_print_WERROR(ndr, "result", r->out.result);
23416 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct _spoolss_SetPrinterData *r)
23418 if (flags & NDR_IN) {
23419 if (r->in.handle == NULL) {
23420 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23422 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23423 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
23424 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
23425 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
23426 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));
23427 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
23428 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
23429 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in._offered));
23431 if (flags & NDR_OUT) {
23432 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23434 return NDR_ERR_SUCCESS;
23437 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct __spoolss_SetPrinterData *r)
23439 if (flags & NDR_IN) {
23440 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
23442 if (flags & NDR_OUT) {
23443 if (r->out.data == NULL) {
23444 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23446 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.data, r->in.type));
23447 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
23449 return NDR_ERR_SUCCESS;
23452 static enum ndr_err_code ndr_pull_spoolss_SetPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinterData *r)
23454 TALLOC_CTX *_mem_save_handle_0;
23455 if (flags & NDR_IN) {
23456 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23457 NDR_PULL_ALLOC(ndr, r->in.handle);
23459 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23460 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23461 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23462 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23463 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
23464 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
23465 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
23466 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));
23468 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
23469 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));
23470 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
23472 struct ndr_pull *_ndr_data;
23473 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_data, 4, -1));
23474 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data, &r->in.data, r->in.type));
23475 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
23476 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_data, 4, -1));
23478 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._offered));
23480 if (flags & NDR_OUT) {
23481 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23483 return NDR_ERR_SUCCESS;
23486 _PUBLIC_ void ndr_print_spoolss_SetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinterData *r)
23488 ndr_print_struct(ndr, name, "spoolss_SetPrinterData");
23490 if (flags & NDR_SET_VALUES) {
23491 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23493 if (flags & NDR_IN) {
23494 ndr_print_struct(ndr, "in", "spoolss_SetPrinterData");
23496 ndr_print_ptr(ndr, "handle", r->in.handle);
23498 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23500 ndr_print_string(ndr, "value_name", r->in.value_name);
23501 ndr_print_winreg_Type(ndr, "type", r->in.type);
23502 ndr_print_set_switch_value(ndr, &r->in.data, r->in.type);
23503 ndr_print_spoolss_PrinterData(ndr, "data", &r->in.data);
23504 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);
23507 if (flags & NDR_OUT) {
23508 ndr_print_struct(ndr, "out", "spoolss_SetPrinterData");
23510 ndr_print_WERROR(ndr, "result", r->out.result);
23516 static enum ndr_err_code ndr_push_spoolss_WaitForPrinterChange(struct ndr_push *ndr, int flags, const struct spoolss_WaitForPrinterChange *r)
23518 if (flags & NDR_IN) {
23520 if (flags & NDR_OUT) {
23521 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23523 return NDR_ERR_SUCCESS;
23526 static enum ndr_err_code ndr_pull_spoolss_WaitForPrinterChange(struct ndr_pull *ndr, int flags, struct spoolss_WaitForPrinterChange *r)
23528 if (flags & NDR_IN) {
23530 if (flags & NDR_OUT) {
23531 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23533 return NDR_ERR_SUCCESS;
23536 _PUBLIC_ void ndr_print_spoolss_WaitForPrinterChange(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_WaitForPrinterChange *r)
23538 ndr_print_struct(ndr, name, "spoolss_WaitForPrinterChange");
23540 if (flags & NDR_SET_VALUES) {
23541 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23543 if (flags & NDR_IN) {
23544 ndr_print_struct(ndr, "in", "spoolss_WaitForPrinterChange");
23548 if (flags & NDR_OUT) {
23549 ndr_print_struct(ndr, "out", "spoolss_WaitForPrinterChange");
23551 ndr_print_WERROR(ndr, "result", r->out.result);
23557 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ClosePrinter(struct ndr_push *ndr, int flags, const struct spoolss_ClosePrinter *r)
23559 if (flags & NDR_IN) {
23560 if (r->in.handle == NULL) {
23561 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23563 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23565 if (flags & NDR_OUT) {
23566 if (r->out.handle == NULL) {
23567 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23569 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
23570 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23572 return NDR_ERR_SUCCESS;
23575 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ClosePrinter(struct ndr_pull *ndr, int flags, struct spoolss_ClosePrinter *r)
23577 TALLOC_CTX *_mem_save_handle_0;
23578 if (flags & NDR_IN) {
23579 ZERO_STRUCT(r->out);
23581 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23582 NDR_PULL_ALLOC(ndr, r->in.handle);
23584 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23585 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23586 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23587 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23588 NDR_PULL_ALLOC(ndr, r->out.handle);
23589 *r->out.handle = *r->in.handle;
23591 if (flags & NDR_OUT) {
23592 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23593 NDR_PULL_ALLOC(ndr, r->out.handle);
23595 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23596 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
23597 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
23598 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23599 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23601 return NDR_ERR_SUCCESS;
23604 _PUBLIC_ void ndr_print_spoolss_ClosePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ClosePrinter *r)
23606 ndr_print_struct(ndr, name, "spoolss_ClosePrinter");
23608 if (flags & NDR_SET_VALUES) {
23609 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23611 if (flags & NDR_IN) {
23612 ndr_print_struct(ndr, "in", "spoolss_ClosePrinter");
23614 ndr_print_ptr(ndr, "handle", r->in.handle);
23616 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23620 if (flags & NDR_OUT) {
23621 ndr_print_struct(ndr, "out", "spoolss_ClosePrinter");
23623 ndr_print_ptr(ndr, "handle", r->out.handle);
23625 ndr_print_policy_handle(ndr, "handle", r->out.handle);
23627 ndr_print_WERROR(ndr, "result", r->out.result);
23633 static enum ndr_err_code ndr_push_spoolss_AddForm(struct ndr_push *ndr, int flags, const struct spoolss_AddForm *r)
23635 if (flags & NDR_IN) {
23636 if (r->in.handle == NULL) {
23637 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23639 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23640 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23641 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
23642 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
23644 if (flags & NDR_OUT) {
23645 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23647 return NDR_ERR_SUCCESS;
23650 static enum ndr_err_code ndr_pull_spoolss_AddForm(struct ndr_pull *ndr, int flags, struct spoolss_AddForm *r)
23652 TALLOC_CTX *_mem_save_handle_0;
23653 if (flags & NDR_IN) {
23654 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23655 NDR_PULL_ALLOC(ndr, r->in.handle);
23657 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23658 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23659 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23660 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23661 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23662 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
23663 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
23665 if (flags & NDR_OUT) {
23666 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23668 return NDR_ERR_SUCCESS;
23671 _PUBLIC_ void ndr_print_spoolss_AddForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddForm *r)
23673 ndr_print_struct(ndr, name, "spoolss_AddForm");
23675 if (flags & NDR_SET_VALUES) {
23676 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23678 if (flags & NDR_IN) {
23679 ndr_print_struct(ndr, "in", "spoolss_AddForm");
23681 ndr_print_ptr(ndr, "handle", r->in.handle);
23683 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23685 ndr_print_uint32(ndr, "level", r->in.level);
23686 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
23687 ndr_print_spoolss_AddFormInfo(ndr, "info", &r->in.info);
23690 if (flags & NDR_OUT) {
23691 ndr_print_struct(ndr, "out", "spoolss_AddForm");
23693 ndr_print_WERROR(ndr, "result", r->out.result);
23699 static enum ndr_err_code ndr_push_spoolss_DeleteForm(struct ndr_push *ndr, int flags, const struct spoolss_DeleteForm *r)
23701 if (flags & NDR_IN) {
23702 if (r->in.handle == NULL) {
23703 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23705 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23706 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
23707 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
23708 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
23709 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));
23711 if (flags & NDR_OUT) {
23712 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23714 return NDR_ERR_SUCCESS;
23717 static enum ndr_err_code ndr_pull_spoolss_DeleteForm(struct ndr_pull *ndr, int flags, struct spoolss_DeleteForm *r)
23719 TALLOC_CTX *_mem_save_handle_0;
23720 if (flags & NDR_IN) {
23721 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23722 NDR_PULL_ALLOC(ndr, r->in.handle);
23724 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23725 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23726 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23727 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23728 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
23729 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
23730 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
23731 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));
23733 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
23734 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));
23736 if (flags & NDR_OUT) {
23737 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23739 return NDR_ERR_SUCCESS;
23742 _PUBLIC_ void ndr_print_spoolss_DeleteForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeleteForm *r)
23744 ndr_print_struct(ndr, name, "spoolss_DeleteForm");
23746 if (flags & NDR_SET_VALUES) {
23747 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23749 if (flags & NDR_IN) {
23750 ndr_print_struct(ndr, "in", "spoolss_DeleteForm");
23752 ndr_print_ptr(ndr, "handle", r->in.handle);
23754 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23756 ndr_print_string(ndr, "form_name", r->in.form_name);
23759 if (flags & NDR_OUT) {
23760 ndr_print_struct(ndr, "out", "spoolss_DeleteForm");
23762 ndr_print_WERROR(ndr, "result", r->out.result);
23768 static enum ndr_err_code ndr_push_spoolss_GetForm(struct ndr_push *ndr, int flags, const struct spoolss_GetForm *r)
23770 if (flags & NDR_IN) {
23771 if (r->in.handle == NULL) {
23772 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23774 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23775 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
23776 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
23777 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
23778 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));
23779 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23780 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
23781 if (r->in.buffer) {
23782 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
23784 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
23786 if (flags & NDR_OUT) {
23787 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
23790 struct ndr_push *_ndr_info;
23791 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
23792 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
23793 NDR_CHECK(ndr_push_spoolss_FormInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
23794 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
23797 if (r->out.needed == NULL) {
23798 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23800 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
23801 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23803 return NDR_ERR_SUCCESS;
23806 static enum ndr_err_code ndr_pull_spoolss_GetForm(struct ndr_pull *ndr, int flags, struct spoolss_GetForm *r)
23808 uint32_t _ptr_buffer;
23809 uint32_t _ptr_info;
23810 TALLOC_CTX *_mem_save_handle_0;
23811 TALLOC_CTX *_mem_save_buffer_0;
23812 TALLOC_CTX *_mem_save_info_0;
23813 TALLOC_CTX *_mem_save_needed_0;
23814 if (flags & NDR_IN) {
23815 ZERO_STRUCT(r->out);
23817 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23818 NDR_PULL_ALLOC(ndr, r->in.handle);
23820 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23821 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23822 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23823 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23824 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
23825 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
23826 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
23827 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));
23829 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
23830 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));
23831 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23832 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
23834 NDR_PULL_ALLOC(ndr, r->in.buffer);
23836 r->in.buffer = NULL;
23838 if (r->in.buffer) {
23839 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
23840 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
23841 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
23842 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
23844 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
23845 NDR_PULL_ALLOC(ndr, r->out.needed);
23846 ZERO_STRUCTP(r->out.needed);
23848 if (flags & NDR_OUT) {
23849 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
23851 NDR_PULL_ALLOC(ndr, r->out.info);
23853 r->out.info = NULL;
23856 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
23857 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
23859 struct ndr_pull *_ndr_info;
23860 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
23861 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
23862 NDR_CHECK(ndr_pull_spoolss_FormInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
23863 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
23865 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
23867 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23868 NDR_PULL_ALLOC(ndr, r->out.needed);
23870 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
23871 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
23872 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
23873 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
23874 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23876 return NDR_ERR_SUCCESS;
23879 _PUBLIC_ void ndr_print_spoolss_GetForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetForm *r)
23881 ndr_print_struct(ndr, name, "spoolss_GetForm");
23883 if (flags & NDR_SET_VALUES) {
23884 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23886 if (flags & NDR_IN) {
23887 ndr_print_struct(ndr, "in", "spoolss_GetForm");
23889 ndr_print_ptr(ndr, "handle", r->in.handle);
23891 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23893 ndr_print_string(ndr, "form_name", r->in.form_name);
23894 ndr_print_uint32(ndr, "level", r->in.level);
23895 ndr_print_ptr(ndr, "buffer", r->in.buffer);
23897 if (r->in.buffer) {
23898 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
23901 ndr_print_uint32(ndr, "offered", r->in.offered);
23904 if (flags & NDR_OUT) {
23905 ndr_print_struct(ndr, "out", "spoolss_GetForm");
23907 ndr_print_ptr(ndr, "info", r->out.info);
23910 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
23911 ndr_print_spoolss_FormInfo(ndr, "info", r->out.info);
23914 ndr_print_ptr(ndr, "needed", r->out.needed);
23916 ndr_print_uint32(ndr, "needed", *r->out.needed);
23918 ndr_print_WERROR(ndr, "result", r->out.result);
23924 static enum ndr_err_code ndr_push_spoolss_SetForm(struct ndr_push *ndr, int flags, const struct spoolss_SetForm *r)
23926 if (flags & NDR_IN) {
23927 if (r->in.handle == NULL) {
23928 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23930 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23931 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
23932 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
23933 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
23934 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));
23935 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23936 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
23937 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
23939 if (flags & NDR_OUT) {
23940 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23942 return NDR_ERR_SUCCESS;
23945 static enum ndr_err_code ndr_pull_spoolss_SetForm(struct ndr_pull *ndr, int flags, struct spoolss_SetForm *r)
23947 TALLOC_CTX *_mem_save_handle_0;
23948 if (flags & NDR_IN) {
23949 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23950 NDR_PULL_ALLOC(ndr, r->in.handle);
23952 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23953 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23954 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23955 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23956 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
23957 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
23958 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
23959 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));
23961 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
23962 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));
23963 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23964 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
23965 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
23967 if (flags & NDR_OUT) {
23968 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23970 return NDR_ERR_SUCCESS;
23973 _PUBLIC_ void ndr_print_spoolss_SetForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetForm *r)
23975 ndr_print_struct(ndr, name, "spoolss_SetForm");
23977 if (flags & NDR_SET_VALUES) {
23978 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23980 if (flags & NDR_IN) {
23981 ndr_print_struct(ndr, "in", "spoolss_SetForm");
23983 ndr_print_ptr(ndr, "handle", r->in.handle);
23985 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23987 ndr_print_string(ndr, "form_name", r->in.form_name);
23988 ndr_print_uint32(ndr, "level", r->in.level);
23989 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
23990 ndr_print_spoolss_AddFormInfo(ndr, "info", &r->in.info);
23993 if (flags & NDR_OUT) {
23994 ndr_print_struct(ndr, "out", "spoolss_SetForm");
23996 ndr_print_WERROR(ndr, "result", r->out.result);
24002 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumForms(struct ndr_push *ndr, int flags, const struct _spoolss_EnumForms *r)
24004 if (flags & NDR_IN) {
24005 if (r->in.handle == NULL) {
24006 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24008 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24009 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24010 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
24011 if (r->in.buffer) {
24012 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
24014 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
24016 if (flags & NDR_OUT) {
24017 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
24019 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
24021 if (r->out.needed == NULL) {
24022 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24024 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
24025 if (r->out.count == NULL) {
24026 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24028 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
24029 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24031 return NDR_ERR_SUCCESS;
24034 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumForms(struct ndr_pull *ndr, int flags, struct _spoolss_EnumForms *r)
24036 uint32_t _ptr_buffer;
24037 uint32_t _ptr_info;
24038 TALLOC_CTX *_mem_save_handle_0;
24039 TALLOC_CTX *_mem_save_buffer_0;
24040 TALLOC_CTX *_mem_save_info_0;
24041 TALLOC_CTX *_mem_save_needed_0;
24042 TALLOC_CTX *_mem_save_count_0;
24043 if (flags & NDR_IN) {
24044 ZERO_STRUCT(r->out);
24046 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24047 NDR_PULL_ALLOC(ndr, r->in.handle);
24049 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24050 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24051 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24052 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24053 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24054 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
24056 NDR_PULL_ALLOC(ndr, r->in.buffer);
24058 r->in.buffer = NULL;
24060 if (r->in.buffer) {
24061 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
24062 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
24063 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
24064 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
24066 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
24067 NDR_PULL_ALLOC(ndr, r->out.needed);
24068 ZERO_STRUCTP(r->out.needed);
24069 NDR_PULL_ALLOC(ndr, r->out.count);
24070 ZERO_STRUCTP(r->out.count);
24072 if (flags & NDR_OUT) {
24073 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
24075 NDR_PULL_ALLOC(ndr, r->out.info);
24077 r->out.info = NULL;
24080 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24081 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24082 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
24083 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24085 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24086 NDR_PULL_ALLOC(ndr, r->out.needed);
24088 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
24089 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
24090 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
24091 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
24092 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24093 NDR_PULL_ALLOC(ndr, r->out.count);
24095 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
24096 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
24097 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
24098 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
24099 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24101 return NDR_ERR_SUCCESS;
24104 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumForms(struct ndr_push *ndr, int flags, const struct __spoolss_EnumForms *r)
24106 uint32_t cntr_info_0;
24107 if (flags & NDR_IN) {
24108 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24109 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
24111 if (flags & NDR_OUT) {
24112 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24113 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
24114 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
24116 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24117 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
24120 return NDR_ERR_SUCCESS;
24123 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumForms(struct ndr_pull *ndr, int flags, struct __spoolss_EnumForms *r)
24125 uint32_t cntr_info_0;
24126 TALLOC_CTX *_mem_save_info_0;
24127 if (flags & NDR_IN) {
24128 ZERO_STRUCT(r->out);
24130 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24131 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
24133 if (flags & NDR_OUT) {
24134 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
24135 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24136 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24137 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24138 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
24139 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
24141 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24142 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
24144 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24146 return NDR_ERR_SUCCESS;
24149 _PUBLIC_ void ndr_print_spoolss_EnumForms(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumForms *r)
24151 uint32_t cntr_info_2;
24152 ndr_print_struct(ndr, name, "spoolss_EnumForms");
24154 if (flags & NDR_SET_VALUES) {
24155 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24157 if (flags & NDR_IN) {
24158 ndr_print_struct(ndr, "in", "spoolss_EnumForms");
24160 ndr_print_ptr(ndr, "handle", r->in.handle);
24162 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24164 ndr_print_uint32(ndr, "level", r->in.level);
24165 ndr_print_ptr(ndr, "buffer", r->in.buffer);
24167 if (r->in.buffer) {
24168 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
24171 ndr_print_uint32(ndr, "offered", r->in.offered);
24174 if (flags & NDR_OUT) {
24175 ndr_print_struct(ndr, "out", "spoolss_EnumForms");
24177 ndr_print_ptr(ndr, "count", r->out.count);
24179 ndr_print_uint32(ndr, "count", *r->out.count);
24181 ndr_print_ptr(ndr, "info", r->out.info);
24183 ndr_print_ptr(ndr, "info", *r->out.info);
24185 if (*r->out.info) {
24186 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
24188 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
24190 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
24191 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
24192 ndr_print_spoolss_FormInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
24200 ndr_print_ptr(ndr, "needed", r->out.needed);
24202 ndr_print_uint32(ndr, "needed", *r->out.needed);
24204 ndr_print_WERROR(ndr, "result", r->out.result);
24210 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPorts(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPorts *r)
24212 if (flags & NDR_IN) {
24213 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
24214 if (r->in.servername) {
24215 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
24216 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24217 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
24218 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
24220 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24221 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
24222 if (r->in.buffer) {
24223 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
24225 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
24227 if (flags & NDR_OUT) {
24228 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
24230 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
24232 if (r->out.needed == NULL) {
24233 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24235 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
24236 if (r->out.count == NULL) {
24237 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24239 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
24240 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24242 return NDR_ERR_SUCCESS;
24245 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPorts(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPorts *r)
24247 uint32_t _ptr_servername;
24248 uint32_t _ptr_buffer;
24249 uint32_t _ptr_info;
24250 TALLOC_CTX *_mem_save_servername_0;
24251 TALLOC_CTX *_mem_save_buffer_0;
24252 TALLOC_CTX *_mem_save_info_0;
24253 TALLOC_CTX *_mem_save_needed_0;
24254 TALLOC_CTX *_mem_save_count_0;
24255 if (flags & NDR_IN) {
24256 ZERO_STRUCT(r->out);
24258 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
24259 if (_ptr_servername) {
24260 NDR_PULL_ALLOC(ndr, r->in.servername);
24262 r->in.servername = NULL;
24264 if (r->in.servername) {
24265 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
24266 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
24267 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
24268 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
24269 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
24270 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));
24272 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
24273 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
24274 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
24276 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24277 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
24279 NDR_PULL_ALLOC(ndr, r->in.buffer);
24281 r->in.buffer = NULL;
24283 if (r->in.buffer) {
24284 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
24285 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
24286 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
24287 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
24289 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
24290 NDR_PULL_ALLOC(ndr, r->out.needed);
24291 ZERO_STRUCTP(r->out.needed);
24292 NDR_PULL_ALLOC(ndr, r->out.count);
24293 ZERO_STRUCTP(r->out.count);
24295 if (flags & NDR_OUT) {
24296 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
24298 NDR_PULL_ALLOC(ndr, r->out.info);
24300 r->out.info = NULL;
24303 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24304 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24305 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
24306 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24308 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24309 NDR_PULL_ALLOC(ndr, r->out.needed);
24311 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
24312 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
24313 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
24314 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
24315 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24316 NDR_PULL_ALLOC(ndr, r->out.count);
24318 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
24319 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
24320 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
24321 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
24322 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24324 return NDR_ERR_SUCCESS;
24327 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPorts(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPorts *r)
24329 uint32_t cntr_info_0;
24330 if (flags & NDR_IN) {
24331 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24332 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
24334 if (flags & NDR_OUT) {
24335 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24336 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
24337 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
24339 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24340 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
24343 return NDR_ERR_SUCCESS;
24346 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPorts(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPorts *r)
24348 uint32_t cntr_info_0;
24349 TALLOC_CTX *_mem_save_info_0;
24350 if (flags & NDR_IN) {
24351 ZERO_STRUCT(r->out);
24353 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24354 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
24356 if (flags & NDR_OUT) {
24357 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
24358 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24359 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24360 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24361 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
24362 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
24364 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24365 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
24367 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24369 return NDR_ERR_SUCCESS;
24372 _PUBLIC_ void ndr_print_spoolss_EnumPorts(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPorts *r)
24374 uint32_t cntr_info_2;
24375 ndr_print_struct(ndr, name, "spoolss_EnumPorts");
24377 if (flags & NDR_SET_VALUES) {
24378 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24380 if (flags & NDR_IN) {
24381 ndr_print_struct(ndr, "in", "spoolss_EnumPorts");
24383 ndr_print_ptr(ndr, "servername", r->in.servername);
24385 if (r->in.servername) {
24386 ndr_print_string(ndr, "servername", r->in.servername);
24389 ndr_print_uint32(ndr, "level", r->in.level);
24390 ndr_print_ptr(ndr, "buffer", r->in.buffer);
24392 if (r->in.buffer) {
24393 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
24396 ndr_print_uint32(ndr, "offered", r->in.offered);
24399 if (flags & NDR_OUT) {
24400 ndr_print_struct(ndr, "out", "spoolss_EnumPorts");
24402 ndr_print_ptr(ndr, "count", r->out.count);
24404 ndr_print_uint32(ndr, "count", *r->out.count);
24406 ndr_print_ptr(ndr, "info", r->out.info);
24408 ndr_print_ptr(ndr, "info", *r->out.info);
24410 if (*r->out.info) {
24411 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
24413 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
24415 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
24416 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
24417 ndr_print_spoolss_PortInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
24425 ndr_print_ptr(ndr, "needed", r->out.needed);
24427 ndr_print_uint32(ndr, "needed", *r->out.needed);
24429 ndr_print_WERROR(ndr, "result", r->out.result);
24435 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumMonitors(struct ndr_push *ndr, int flags, const struct _spoolss_EnumMonitors *r)
24437 if (flags & NDR_IN) {
24438 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
24439 if (r->in.servername) {
24440 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
24441 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24442 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
24443 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
24445 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24446 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
24447 if (r->in.buffer) {
24448 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
24450 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
24452 if (flags & NDR_OUT) {
24453 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
24455 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
24457 if (r->out.needed == NULL) {
24458 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24460 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
24461 if (r->out.count == NULL) {
24462 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24464 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
24465 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24467 return NDR_ERR_SUCCESS;
24470 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumMonitors(struct ndr_pull *ndr, int flags, struct _spoolss_EnumMonitors *r)
24472 uint32_t _ptr_servername;
24473 uint32_t _ptr_buffer;
24474 uint32_t _ptr_info;
24475 TALLOC_CTX *_mem_save_servername_0;
24476 TALLOC_CTX *_mem_save_buffer_0;
24477 TALLOC_CTX *_mem_save_info_0;
24478 TALLOC_CTX *_mem_save_needed_0;
24479 TALLOC_CTX *_mem_save_count_0;
24480 if (flags & NDR_IN) {
24481 ZERO_STRUCT(r->out);
24483 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
24484 if (_ptr_servername) {
24485 NDR_PULL_ALLOC(ndr, r->in.servername);
24487 r->in.servername = NULL;
24489 if (r->in.servername) {
24490 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
24491 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
24492 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
24493 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
24494 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
24495 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));
24497 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
24498 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
24499 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
24501 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24502 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
24504 NDR_PULL_ALLOC(ndr, r->in.buffer);
24506 r->in.buffer = NULL;
24508 if (r->in.buffer) {
24509 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
24510 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
24511 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
24512 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
24514 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
24515 NDR_PULL_ALLOC(ndr, r->out.needed);
24516 ZERO_STRUCTP(r->out.needed);
24517 NDR_PULL_ALLOC(ndr, r->out.count);
24518 ZERO_STRUCTP(r->out.count);
24520 if (flags & NDR_OUT) {
24521 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
24523 NDR_PULL_ALLOC(ndr, r->out.info);
24525 r->out.info = NULL;
24528 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24529 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24530 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
24531 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24533 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24534 NDR_PULL_ALLOC(ndr, r->out.needed);
24536 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
24537 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
24538 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
24539 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
24540 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24541 NDR_PULL_ALLOC(ndr, r->out.count);
24543 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
24544 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
24545 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
24546 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
24547 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24549 return NDR_ERR_SUCCESS;
24552 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumMonitors(struct ndr_push *ndr, int flags, const struct __spoolss_EnumMonitors *r)
24554 uint32_t cntr_info_0;
24555 if (flags & NDR_IN) {
24556 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24557 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
24559 if (flags & NDR_OUT) {
24560 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24561 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
24562 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
24564 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24565 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
24568 return NDR_ERR_SUCCESS;
24571 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumMonitors(struct ndr_pull *ndr, int flags, struct __spoolss_EnumMonitors *r)
24573 uint32_t cntr_info_0;
24574 TALLOC_CTX *_mem_save_info_0;
24575 if (flags & NDR_IN) {
24576 ZERO_STRUCT(r->out);
24578 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24579 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
24581 if (flags & NDR_OUT) {
24582 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
24583 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24584 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24585 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24586 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
24587 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
24589 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24590 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
24592 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24594 return NDR_ERR_SUCCESS;
24597 _PUBLIC_ void ndr_print_spoolss_EnumMonitors(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumMonitors *r)
24599 uint32_t cntr_info_2;
24600 ndr_print_struct(ndr, name, "spoolss_EnumMonitors");
24602 if (flags & NDR_SET_VALUES) {
24603 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24605 if (flags & NDR_IN) {
24606 ndr_print_struct(ndr, "in", "spoolss_EnumMonitors");
24608 ndr_print_ptr(ndr, "servername", r->in.servername);
24610 if (r->in.servername) {
24611 ndr_print_string(ndr, "servername", r->in.servername);
24614 ndr_print_uint32(ndr, "level", r->in.level);
24615 ndr_print_ptr(ndr, "buffer", r->in.buffer);
24617 if (r->in.buffer) {
24618 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
24621 ndr_print_uint32(ndr, "offered", r->in.offered);
24624 if (flags & NDR_OUT) {
24625 ndr_print_struct(ndr, "out", "spoolss_EnumMonitors");
24627 ndr_print_ptr(ndr, "count", r->out.count);
24629 ndr_print_uint32(ndr, "count", *r->out.count);
24631 ndr_print_ptr(ndr, "info", r->out.info);
24633 ndr_print_ptr(ndr, "info", *r->out.info);
24635 if (*r->out.info) {
24636 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
24638 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
24640 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
24641 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
24642 ndr_print_spoolss_MonitorInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
24650 ndr_print_ptr(ndr, "needed", r->out.needed);
24652 ndr_print_uint32(ndr, "needed", *r->out.needed);
24654 ndr_print_WERROR(ndr, "result", r->out.result);
24660 static enum ndr_err_code ndr_push_spoolss_AddPort(struct ndr_push *ndr, int flags, const struct spoolss_AddPort *r)
24662 if (flags & NDR_IN) {
24663 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
24664 if (r->in.server_name) {
24665 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
24666 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24667 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
24668 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));
24670 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown));
24671 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
24672 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24673 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
24674 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));
24676 if (flags & NDR_OUT) {
24677 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24679 return NDR_ERR_SUCCESS;
24682 static enum ndr_err_code ndr_pull_spoolss_AddPort(struct ndr_pull *ndr, int flags, struct spoolss_AddPort *r)
24684 uint32_t _ptr_server_name;
24685 TALLOC_CTX *_mem_save_server_name_0;
24686 if (flags & NDR_IN) {
24687 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
24688 if (_ptr_server_name) {
24689 NDR_PULL_ALLOC(ndr, r->in.server_name);
24691 r->in.server_name = NULL;
24693 if (r->in.server_name) {
24694 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
24695 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
24696 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
24697 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
24698 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
24699 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));
24701 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
24702 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));
24703 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
24705 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown));
24706 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.monitor_name));
24707 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.monitor_name));
24708 if (ndr_get_array_length(ndr, &r->in.monitor_name) > ndr_get_array_size(ndr, &r->in.monitor_name)) {
24709 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));
24711 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.monitor_name), sizeof(uint16_t)));
24712 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));
24714 if (flags & NDR_OUT) {
24715 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24717 return NDR_ERR_SUCCESS;
24720 _PUBLIC_ void ndr_print_spoolss_AddPort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPort *r)
24722 ndr_print_struct(ndr, name, "spoolss_AddPort");
24724 if (flags & NDR_SET_VALUES) {
24725 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24727 if (flags & NDR_IN) {
24728 ndr_print_struct(ndr, "in", "spoolss_AddPort");
24730 ndr_print_ptr(ndr, "server_name", r->in.server_name);
24732 if (r->in.server_name) {
24733 ndr_print_string(ndr, "server_name", r->in.server_name);
24736 ndr_print_uint32(ndr, "unknown", r->in.unknown);
24737 ndr_print_string(ndr, "monitor_name", r->in.monitor_name);
24740 if (flags & NDR_OUT) {
24741 ndr_print_struct(ndr, "out", "spoolss_AddPort");
24743 ndr_print_WERROR(ndr, "result", r->out.result);
24749 static enum ndr_err_code ndr_push_spoolss_ConfigurePort(struct ndr_push *ndr, int flags, const struct spoolss_ConfigurePort *r)
24751 if (flags & NDR_IN) {
24753 if (flags & NDR_OUT) {
24754 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24756 return NDR_ERR_SUCCESS;
24759 static enum ndr_err_code ndr_pull_spoolss_ConfigurePort(struct ndr_pull *ndr, int flags, struct spoolss_ConfigurePort *r)
24761 if (flags & NDR_IN) {
24763 if (flags & NDR_OUT) {
24764 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24766 return NDR_ERR_SUCCESS;
24769 _PUBLIC_ void ndr_print_spoolss_ConfigurePort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ConfigurePort *r)
24771 ndr_print_struct(ndr, name, "spoolss_ConfigurePort");
24773 if (flags & NDR_SET_VALUES) {
24774 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24776 if (flags & NDR_IN) {
24777 ndr_print_struct(ndr, "in", "spoolss_ConfigurePort");
24781 if (flags & NDR_OUT) {
24782 ndr_print_struct(ndr, "out", "spoolss_ConfigurePort");
24784 ndr_print_WERROR(ndr, "result", r->out.result);
24790 static enum ndr_err_code ndr_push_spoolss_DeletePort(struct ndr_push *ndr, int flags, const struct spoolss_DeletePort *r)
24792 if (flags & NDR_IN) {
24794 if (flags & NDR_OUT) {
24795 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24797 return NDR_ERR_SUCCESS;
24800 static enum ndr_err_code ndr_pull_spoolss_DeletePort(struct ndr_pull *ndr, int flags, struct spoolss_DeletePort *r)
24802 if (flags & NDR_IN) {
24804 if (flags & NDR_OUT) {
24805 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24807 return NDR_ERR_SUCCESS;
24810 _PUBLIC_ void ndr_print_spoolss_DeletePort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePort *r)
24812 ndr_print_struct(ndr, name, "spoolss_DeletePort");
24814 if (flags & NDR_SET_VALUES) {
24815 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24817 if (flags & NDR_IN) {
24818 ndr_print_struct(ndr, "in", "spoolss_DeletePort");
24822 if (flags & NDR_OUT) {
24823 ndr_print_struct(ndr, "out", "spoolss_DeletePort");
24825 ndr_print_WERROR(ndr, "result", r->out.result);
24831 static enum ndr_err_code ndr_push_spoolss_CreatePrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_CreatePrinterIC *r)
24833 if (flags & NDR_IN) {
24834 if (r->in.handle == NULL) {
24835 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24837 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24838 if (r->in.devmode_ctr == NULL) {
24839 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24841 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
24843 if (flags & NDR_OUT) {
24844 if (r->out.gdi_handle == NULL) {
24845 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24847 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.gdi_handle));
24848 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24850 return NDR_ERR_SUCCESS;
24853 static enum ndr_err_code ndr_pull_spoolss_CreatePrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_CreatePrinterIC *r)
24855 TALLOC_CTX *_mem_save_handle_0;
24856 TALLOC_CTX *_mem_save_gdi_handle_0;
24857 TALLOC_CTX *_mem_save_devmode_ctr_0;
24858 if (flags & NDR_IN) {
24859 ZERO_STRUCT(r->out);
24861 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24862 NDR_PULL_ALLOC(ndr, r->in.handle);
24864 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24865 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24866 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24867 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24868 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24869 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
24871 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
24872 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
24873 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
24874 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
24875 NDR_PULL_ALLOC(ndr, r->out.gdi_handle);
24876 ZERO_STRUCTP(r->out.gdi_handle);
24878 if (flags & NDR_OUT) {
24879 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24880 NDR_PULL_ALLOC(ndr, r->out.gdi_handle);
24882 _mem_save_gdi_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24883 NDR_PULL_SET_MEM_CTX(ndr, r->out.gdi_handle, LIBNDR_FLAG_REF_ALLOC);
24884 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.gdi_handle));
24885 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_gdi_handle_0, LIBNDR_FLAG_REF_ALLOC);
24886 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24888 return NDR_ERR_SUCCESS;
24891 _PUBLIC_ void ndr_print_spoolss_CreatePrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_CreatePrinterIC *r)
24893 ndr_print_struct(ndr, name, "spoolss_CreatePrinterIC");
24895 if (flags & NDR_SET_VALUES) {
24896 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24898 if (flags & NDR_IN) {
24899 ndr_print_struct(ndr, "in", "spoolss_CreatePrinterIC");
24901 ndr_print_ptr(ndr, "handle", r->in.handle);
24903 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24905 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
24907 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
24911 if (flags & NDR_OUT) {
24912 ndr_print_struct(ndr, "out", "spoolss_CreatePrinterIC");
24914 ndr_print_ptr(ndr, "gdi_handle", r->out.gdi_handle);
24916 ndr_print_policy_handle(ndr, "gdi_handle", r->out.gdi_handle);
24918 ndr_print_WERROR(ndr, "result", r->out.result);
24924 static enum ndr_err_code ndr_push_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_PlayGDIScriptOnPrinterIC *r)
24926 if (flags & NDR_IN) {
24928 if (flags & NDR_OUT) {
24929 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24931 return NDR_ERR_SUCCESS;
24934 static enum ndr_err_code ndr_pull_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_PlayGDIScriptOnPrinterIC *r)
24936 if (flags & NDR_IN) {
24938 if (flags & NDR_OUT) {
24939 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24941 return NDR_ERR_SUCCESS;
24944 _PUBLIC_ void ndr_print_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_PlayGDIScriptOnPrinterIC *r)
24946 ndr_print_struct(ndr, name, "spoolss_PlayGDIScriptOnPrinterIC");
24948 if (flags & NDR_SET_VALUES) {
24949 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24951 if (flags & NDR_IN) {
24952 ndr_print_struct(ndr, "in", "spoolss_PlayGDIScriptOnPrinterIC");
24956 if (flags & NDR_OUT) {
24957 ndr_print_struct(ndr, "out", "spoolss_PlayGDIScriptOnPrinterIC");
24959 ndr_print_WERROR(ndr, "result", r->out.result);
24965 static enum ndr_err_code ndr_push_spoolss_DeletePrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterIC *r)
24967 if (flags & NDR_IN) {
24968 if (r->in.gdi_handle == NULL) {
24969 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24971 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.gdi_handle));
24973 if (flags & NDR_OUT) {
24974 if (r->out.gdi_handle == NULL) {
24975 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24977 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.gdi_handle));
24978 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24980 return NDR_ERR_SUCCESS;
24983 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterIC *r)
24985 TALLOC_CTX *_mem_save_gdi_handle_0;
24986 if (flags & NDR_IN) {
24987 ZERO_STRUCT(r->out);
24989 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24990 NDR_PULL_ALLOC(ndr, r->in.gdi_handle);
24992 _mem_save_gdi_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24993 NDR_PULL_SET_MEM_CTX(ndr, r->in.gdi_handle, LIBNDR_FLAG_REF_ALLOC);
24994 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.gdi_handle));
24995 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_gdi_handle_0, LIBNDR_FLAG_REF_ALLOC);
24996 NDR_PULL_ALLOC(ndr, r->out.gdi_handle);
24997 *r->out.gdi_handle = *r->in.gdi_handle;
24999 if (flags & NDR_OUT) {
25000 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25001 NDR_PULL_ALLOC(ndr, r->out.gdi_handle);
25003 _mem_save_gdi_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25004 NDR_PULL_SET_MEM_CTX(ndr, r->out.gdi_handle, LIBNDR_FLAG_REF_ALLOC);
25005 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.gdi_handle));
25006 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_gdi_handle_0, LIBNDR_FLAG_REF_ALLOC);
25007 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25009 return NDR_ERR_SUCCESS;
25012 _PUBLIC_ void ndr_print_spoolss_DeletePrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterIC *r)
25014 ndr_print_struct(ndr, name, "spoolss_DeletePrinterIC");
25016 if (flags & NDR_SET_VALUES) {
25017 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25019 if (flags & NDR_IN) {
25020 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterIC");
25022 ndr_print_ptr(ndr, "gdi_handle", r->in.gdi_handle);
25024 ndr_print_policy_handle(ndr, "gdi_handle", r->in.gdi_handle);
25028 if (flags & NDR_OUT) {
25029 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterIC");
25031 ndr_print_ptr(ndr, "gdi_handle", r->out.gdi_handle);
25033 ndr_print_policy_handle(ndr, "gdi_handle", r->out.gdi_handle);
25035 ndr_print_WERROR(ndr, "result", r->out.result);
25041 static enum ndr_err_code ndr_push_spoolss_AddPrinterConnection(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterConnection *r)
25043 if (flags & NDR_IN) {
25045 if (flags & NDR_OUT) {
25046 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25048 return NDR_ERR_SUCCESS;
25051 static enum ndr_err_code ndr_pull_spoolss_AddPrinterConnection(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterConnection *r)
25053 if (flags & NDR_IN) {
25055 if (flags & NDR_OUT) {
25056 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25058 return NDR_ERR_SUCCESS;
25061 _PUBLIC_ void ndr_print_spoolss_AddPrinterConnection(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterConnection *r)
25063 ndr_print_struct(ndr, name, "spoolss_AddPrinterConnection");
25065 if (flags & NDR_SET_VALUES) {
25066 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25068 if (flags & NDR_IN) {
25069 ndr_print_struct(ndr, "in", "spoolss_AddPrinterConnection");
25073 if (flags & NDR_OUT) {
25074 ndr_print_struct(ndr, "out", "spoolss_AddPrinterConnection");
25076 ndr_print_WERROR(ndr, "result", r->out.result);
25082 static enum ndr_err_code ndr_push_spoolss_DeletePrinterConnection(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterConnection *r)
25084 if (flags & NDR_IN) {
25086 if (flags & NDR_OUT) {
25087 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25089 return NDR_ERR_SUCCESS;
25092 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterConnection(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterConnection *r)
25094 if (flags & NDR_IN) {
25096 if (flags & NDR_OUT) {
25097 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25099 return NDR_ERR_SUCCESS;
25102 _PUBLIC_ void ndr_print_spoolss_DeletePrinterConnection(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterConnection *r)
25104 ndr_print_struct(ndr, name, "spoolss_DeletePrinterConnection");
25106 if (flags & NDR_SET_VALUES) {
25107 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25109 if (flags & NDR_IN) {
25110 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterConnection");
25114 if (flags & NDR_OUT) {
25115 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterConnection");
25117 ndr_print_WERROR(ndr, "result", r->out.result);
25123 static enum ndr_err_code ndr_push_spoolss_PrinterMessageBox(struct ndr_push *ndr, int flags, const struct spoolss_PrinterMessageBox *r)
25125 if (flags & NDR_IN) {
25127 if (flags & NDR_OUT) {
25128 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25130 return NDR_ERR_SUCCESS;
25133 static enum ndr_err_code ndr_pull_spoolss_PrinterMessageBox(struct ndr_pull *ndr, int flags, struct spoolss_PrinterMessageBox *r)
25135 if (flags & NDR_IN) {
25137 if (flags & NDR_OUT) {
25138 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25140 return NDR_ERR_SUCCESS;
25143 _PUBLIC_ void ndr_print_spoolss_PrinterMessageBox(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_PrinterMessageBox *r)
25145 ndr_print_struct(ndr, name, "spoolss_PrinterMessageBox");
25147 if (flags & NDR_SET_VALUES) {
25148 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25150 if (flags & NDR_IN) {
25151 ndr_print_struct(ndr, "in", "spoolss_PrinterMessageBox");
25155 if (flags & NDR_OUT) {
25156 ndr_print_struct(ndr, "out", "spoolss_PrinterMessageBox");
25158 ndr_print_WERROR(ndr, "result", r->out.result);
25164 static enum ndr_err_code ndr_push_spoolss_AddMonitor(struct ndr_push *ndr, int flags, const struct spoolss_AddMonitor *r)
25166 if (flags & NDR_IN) {
25168 if (flags & NDR_OUT) {
25169 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25171 return NDR_ERR_SUCCESS;
25174 static enum ndr_err_code ndr_pull_spoolss_AddMonitor(struct ndr_pull *ndr, int flags, struct spoolss_AddMonitor *r)
25176 if (flags & NDR_IN) {
25178 if (flags & NDR_OUT) {
25179 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25181 return NDR_ERR_SUCCESS;
25184 _PUBLIC_ void ndr_print_spoolss_AddMonitor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddMonitor *r)
25186 ndr_print_struct(ndr, name, "spoolss_AddMonitor");
25188 if (flags & NDR_SET_VALUES) {
25189 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25191 if (flags & NDR_IN) {
25192 ndr_print_struct(ndr, "in", "spoolss_AddMonitor");
25196 if (flags & NDR_OUT) {
25197 ndr_print_struct(ndr, "out", "spoolss_AddMonitor");
25199 ndr_print_WERROR(ndr, "result", r->out.result);
25205 static enum ndr_err_code ndr_push_spoolss_DeleteMonitor(struct ndr_push *ndr, int flags, const struct spoolss_DeleteMonitor *r)
25207 if (flags & NDR_IN) {
25209 if (flags & NDR_OUT) {
25210 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25212 return NDR_ERR_SUCCESS;
25215 static enum ndr_err_code ndr_pull_spoolss_DeleteMonitor(struct ndr_pull *ndr, int flags, struct spoolss_DeleteMonitor *r)
25217 if (flags & NDR_IN) {
25219 if (flags & NDR_OUT) {
25220 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25222 return NDR_ERR_SUCCESS;
25225 _PUBLIC_ void ndr_print_spoolss_DeleteMonitor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeleteMonitor *r)
25227 ndr_print_struct(ndr, name, "spoolss_DeleteMonitor");
25229 if (flags & NDR_SET_VALUES) {
25230 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25232 if (flags & NDR_IN) {
25233 ndr_print_struct(ndr, "in", "spoolss_DeleteMonitor");
25237 if (flags & NDR_OUT) {
25238 ndr_print_struct(ndr, "out", "spoolss_DeleteMonitor");
25240 ndr_print_WERROR(ndr, "result", r->out.result);
25246 static enum ndr_err_code ndr_push_spoolss_DeletePrintProcessor(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrintProcessor *r)
25248 if (flags & NDR_IN) {
25250 if (flags & NDR_OUT) {
25251 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25253 return NDR_ERR_SUCCESS;
25256 static enum ndr_err_code ndr_pull_spoolss_DeletePrintProcessor(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrintProcessor *r)
25258 if (flags & NDR_IN) {
25260 if (flags & NDR_OUT) {
25261 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25263 return NDR_ERR_SUCCESS;
25266 _PUBLIC_ void ndr_print_spoolss_DeletePrintProcessor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrintProcessor *r)
25268 ndr_print_struct(ndr, name, "spoolss_DeletePrintProcessor");
25270 if (flags & NDR_SET_VALUES) {
25271 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25273 if (flags & NDR_IN) {
25274 ndr_print_struct(ndr, "in", "spoolss_DeletePrintProcessor");
25278 if (flags & NDR_OUT) {
25279 ndr_print_struct(ndr, "out", "spoolss_DeletePrintProcessor");
25281 ndr_print_WERROR(ndr, "result", r->out.result);
25287 static enum ndr_err_code ndr_push_spoolss_AddPrintProvidor(struct ndr_push *ndr, int flags, const struct spoolss_AddPrintProvidor *r)
25289 if (flags & NDR_IN) {
25291 if (flags & NDR_OUT) {
25292 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25294 return NDR_ERR_SUCCESS;
25297 static enum ndr_err_code ndr_pull_spoolss_AddPrintProvidor(struct ndr_pull *ndr, int flags, struct spoolss_AddPrintProvidor *r)
25299 if (flags & NDR_IN) {
25301 if (flags & NDR_OUT) {
25302 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25304 return NDR_ERR_SUCCESS;
25307 _PUBLIC_ void ndr_print_spoolss_AddPrintProvidor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrintProvidor *r)
25309 ndr_print_struct(ndr, name, "spoolss_AddPrintProvidor");
25311 if (flags & NDR_SET_VALUES) {
25312 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25314 if (flags & NDR_IN) {
25315 ndr_print_struct(ndr, "in", "spoolss_AddPrintProvidor");
25319 if (flags & NDR_OUT) {
25320 ndr_print_struct(ndr, "out", "spoolss_AddPrintProvidor");
25322 ndr_print_WERROR(ndr, "result", r->out.result);
25328 static enum ndr_err_code ndr_push_spoolss_DeletePrintProvidor(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrintProvidor *r)
25330 if (flags & NDR_IN) {
25332 if (flags & NDR_OUT) {
25333 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25335 return NDR_ERR_SUCCESS;
25338 static enum ndr_err_code ndr_pull_spoolss_DeletePrintProvidor(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrintProvidor *r)
25340 if (flags & NDR_IN) {
25342 if (flags & NDR_OUT) {
25343 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25345 return NDR_ERR_SUCCESS;
25348 _PUBLIC_ void ndr_print_spoolss_DeletePrintProvidor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrintProvidor *r)
25350 ndr_print_struct(ndr, name, "spoolss_DeletePrintProvidor");
25352 if (flags & NDR_SET_VALUES) {
25353 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25355 if (flags & NDR_IN) {
25356 ndr_print_struct(ndr, "in", "spoolss_DeletePrintProvidor");
25360 if (flags & NDR_OUT) {
25361 ndr_print_struct(ndr, "out", "spoolss_DeletePrintProvidor");
25363 ndr_print_WERROR(ndr, "result", r->out.result);
25369 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrintProcDataTypes(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrintProcDataTypes *r)
25371 if (flags & NDR_IN) {
25372 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
25373 if (r->in.servername) {
25374 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
25375 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
25376 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
25377 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
25379 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.print_processor_name));
25380 if (r->in.print_processor_name) {
25381 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
25382 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
25383 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
25384 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));
25386 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
25387 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
25388 if (r->in.buffer) {
25389 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
25391 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
25393 if (flags & NDR_OUT) {
25394 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
25396 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
25398 if (r->out.needed == NULL) {
25399 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25401 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
25402 if (r->out.count == NULL) {
25403 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25405 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
25406 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25408 return NDR_ERR_SUCCESS;
25411 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrintProcDataTypes(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrintProcDataTypes *r)
25413 uint32_t _ptr_servername;
25414 uint32_t _ptr_print_processor_name;
25415 uint32_t _ptr_buffer;
25416 uint32_t _ptr_info;
25417 TALLOC_CTX *_mem_save_servername_0;
25418 TALLOC_CTX *_mem_save_print_processor_name_0;
25419 TALLOC_CTX *_mem_save_buffer_0;
25420 TALLOC_CTX *_mem_save_info_0;
25421 TALLOC_CTX *_mem_save_needed_0;
25422 TALLOC_CTX *_mem_save_count_0;
25423 if (flags & NDR_IN) {
25424 ZERO_STRUCT(r->out);
25426 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
25427 if (_ptr_servername) {
25428 NDR_PULL_ALLOC(ndr, r->in.servername);
25430 r->in.servername = NULL;
25432 if (r->in.servername) {
25433 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
25434 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
25435 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
25436 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
25437 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
25438 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));
25440 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
25441 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
25442 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
25444 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor_name));
25445 if (_ptr_print_processor_name) {
25446 NDR_PULL_ALLOC(ndr, r->in.print_processor_name);
25448 r->in.print_processor_name = NULL;
25450 if (r->in.print_processor_name) {
25451 _mem_save_print_processor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
25452 NDR_PULL_SET_MEM_CTX(ndr, r->in.print_processor_name, 0);
25453 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.print_processor_name));
25454 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.print_processor_name));
25455 if (ndr_get_array_length(ndr, &r->in.print_processor_name) > ndr_get_array_size(ndr, &r->in.print_processor_name)) {
25456 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));
25458 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.print_processor_name), sizeof(uint16_t)));
25459 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));
25460 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_name_0, 0);
25462 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
25463 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
25465 NDR_PULL_ALLOC(ndr, r->in.buffer);
25467 r->in.buffer = NULL;
25469 if (r->in.buffer) {
25470 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
25471 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
25472 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
25473 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
25475 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
25476 NDR_PULL_ALLOC(ndr, r->out.needed);
25477 ZERO_STRUCTP(r->out.needed);
25478 NDR_PULL_ALLOC(ndr, r->out.count);
25479 ZERO_STRUCTP(r->out.count);
25481 if (flags & NDR_OUT) {
25482 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
25484 NDR_PULL_ALLOC(ndr, r->out.info);
25486 r->out.info = NULL;
25489 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
25490 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
25491 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
25492 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
25494 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25495 NDR_PULL_ALLOC(ndr, r->out.needed);
25497 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
25498 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
25499 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
25500 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
25501 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25502 NDR_PULL_ALLOC(ndr, r->out.count);
25504 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
25505 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
25506 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
25507 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
25508 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25510 return NDR_ERR_SUCCESS;
25513 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrintProcDataTypes(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrintProcDataTypes *r)
25515 uint32_t cntr_info_0;
25516 if (flags & NDR_IN) {
25517 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
25518 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
25520 if (flags & NDR_OUT) {
25521 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
25522 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
25523 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
25525 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
25526 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
25529 return NDR_ERR_SUCCESS;
25532 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrintProcDataTypes(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrintProcDataTypes *r)
25534 uint32_t cntr_info_0;
25535 TALLOC_CTX *_mem_save_info_0;
25536 if (flags & NDR_IN) {
25537 ZERO_STRUCT(r->out);
25539 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
25540 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
25542 if (flags & NDR_OUT) {
25543 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
25544 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
25545 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
25546 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
25547 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
25548 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
25550 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
25551 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
25553 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
25555 return NDR_ERR_SUCCESS;
25558 _PUBLIC_ void ndr_print_spoolss_EnumPrintProcDataTypes(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrintProcDataTypes *r)
25560 uint32_t cntr_info_2;
25561 ndr_print_struct(ndr, name, "spoolss_EnumPrintProcDataTypes");
25563 if (flags & NDR_SET_VALUES) {
25564 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25566 if (flags & NDR_IN) {
25567 ndr_print_struct(ndr, "in", "spoolss_EnumPrintProcDataTypes");
25569 ndr_print_ptr(ndr, "servername", r->in.servername);
25571 if (r->in.servername) {
25572 ndr_print_string(ndr, "servername", r->in.servername);
25575 ndr_print_ptr(ndr, "print_processor_name", r->in.print_processor_name);
25577 if (r->in.print_processor_name) {
25578 ndr_print_string(ndr, "print_processor_name", r->in.print_processor_name);
25581 ndr_print_uint32(ndr, "level", r->in.level);
25582 ndr_print_ptr(ndr, "buffer", r->in.buffer);
25584 if (r->in.buffer) {
25585 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
25588 ndr_print_uint32(ndr, "offered", r->in.offered);
25591 if (flags & NDR_OUT) {
25592 ndr_print_struct(ndr, "out", "spoolss_EnumPrintProcDataTypes");
25594 ndr_print_ptr(ndr, "count", r->out.count);
25596 ndr_print_uint32(ndr, "count", *r->out.count);
25598 ndr_print_ptr(ndr, "info", r->out.info);
25600 ndr_print_ptr(ndr, "info", *r->out.info);
25602 if (*r->out.info) {
25603 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
25605 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
25607 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
25608 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
25609 ndr_print_spoolss_PrintProcDataTypesInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
25617 ndr_print_ptr(ndr, "needed", r->out.needed);
25619 ndr_print_uint32(ndr, "needed", *r->out.needed);
25621 ndr_print_WERROR(ndr, "result", r->out.result);
25627 static enum ndr_err_code ndr_push_spoolss_ResetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ResetPrinter *r)
25629 if (flags & NDR_IN) {
25630 if (r->in.handle == NULL) {
25631 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25633 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25634 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.data_type));
25635 if (r->in.data_type) {
25636 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.data_type, CH_UTF16)));
25637 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
25638 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.data_type, CH_UTF16)));
25639 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));
25641 if (r->in.devmode_ctr == NULL) {
25642 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25644 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
25646 if (flags & NDR_OUT) {
25647 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25649 return NDR_ERR_SUCCESS;
25652 static enum ndr_err_code ndr_pull_spoolss_ResetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ResetPrinter *r)
25654 uint32_t _ptr_data_type;
25655 TALLOC_CTX *_mem_save_handle_0;
25656 TALLOC_CTX *_mem_save_data_type_0;
25657 TALLOC_CTX *_mem_save_devmode_ctr_0;
25658 if (flags & NDR_IN) {
25659 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25660 NDR_PULL_ALLOC(ndr, r->in.handle);
25662 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25663 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25664 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25665 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25666 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
25667 if (_ptr_data_type) {
25668 NDR_PULL_ALLOC(ndr, r->in.data_type);
25670 r->in.data_type = NULL;
25672 if (r->in.data_type) {
25673 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
25674 NDR_PULL_SET_MEM_CTX(ndr, r->in.data_type, 0);
25675 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.data_type));
25676 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.data_type));
25677 if (ndr_get_array_length(ndr, &r->in.data_type) > ndr_get_array_size(ndr, &r->in.data_type)) {
25678 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));
25680 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.data_type), sizeof(uint16_t)));
25681 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));
25682 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
25684 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25685 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
25687 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
25688 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
25689 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
25690 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
25692 if (flags & NDR_OUT) {
25693 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25695 return NDR_ERR_SUCCESS;
25698 _PUBLIC_ void ndr_print_spoolss_ResetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ResetPrinter *r)
25700 ndr_print_struct(ndr, name, "spoolss_ResetPrinter");
25702 if (flags & NDR_SET_VALUES) {
25703 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25705 if (flags & NDR_IN) {
25706 ndr_print_struct(ndr, "in", "spoolss_ResetPrinter");
25708 ndr_print_ptr(ndr, "handle", r->in.handle);
25710 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25712 ndr_print_ptr(ndr, "data_type", r->in.data_type);
25714 if (r->in.data_type) {
25715 ndr_print_string(ndr, "data_type", r->in.data_type);
25718 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
25720 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
25724 if (flags & NDR_OUT) {
25725 ndr_print_struct(ndr, "out", "spoolss_ResetPrinter");
25727 ndr_print_WERROR(ndr, "result", r->out.result);
25733 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriver2(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriver2 *r)
25735 if (flags & NDR_IN) {
25736 if (r->in.handle == NULL) {
25737 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25739 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25740 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.architecture));
25741 if (r->in.architecture) {
25742 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
25743 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
25744 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
25745 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
25747 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
25748 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
25749 if (r->in.buffer) {
25750 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
25752 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
25753 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_major_version));
25754 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_minor_version));
25756 if (flags & NDR_OUT) {
25757 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
25760 struct ndr_push *_ndr_info;
25761 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
25762 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
25763 NDR_CHECK(ndr_push_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
25764 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
25767 if (r->out.needed == NULL) {
25768 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25770 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
25771 if (r->out.server_major_version == NULL) {
25772 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25774 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.server_major_version));
25775 if (r->out.server_minor_version == NULL) {
25776 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25778 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.server_minor_version));
25779 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25781 return NDR_ERR_SUCCESS;
25784 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriver2(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriver2 *r)
25786 uint32_t _ptr_architecture;
25787 uint32_t _ptr_buffer;
25788 uint32_t _ptr_info;
25789 TALLOC_CTX *_mem_save_handle_0;
25790 TALLOC_CTX *_mem_save_architecture_0;
25791 TALLOC_CTX *_mem_save_buffer_0;
25792 TALLOC_CTX *_mem_save_info_0;
25793 TALLOC_CTX *_mem_save_needed_0;
25794 TALLOC_CTX *_mem_save_server_major_version_0;
25795 TALLOC_CTX *_mem_save_server_minor_version_0;
25796 if (flags & NDR_IN) {
25797 ZERO_STRUCT(r->out);
25799 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25800 NDR_PULL_ALLOC(ndr, r->in.handle);
25802 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25803 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25804 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25805 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25806 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
25807 if (_ptr_architecture) {
25808 NDR_PULL_ALLOC(ndr, r->in.architecture);
25810 r->in.architecture = NULL;
25812 if (r->in.architecture) {
25813 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
25814 NDR_PULL_SET_MEM_CTX(ndr, r->in.architecture, 0);
25815 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
25816 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
25817 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
25818 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));
25820 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
25821 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
25822 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
25824 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
25825 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
25827 NDR_PULL_ALLOC(ndr, r->in.buffer);
25829 r->in.buffer = NULL;
25831 if (r->in.buffer) {
25832 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
25833 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
25834 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
25835 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
25837 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
25838 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_major_version));
25839 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_minor_version));
25840 NDR_PULL_ALLOC(ndr, r->out.needed);
25841 ZERO_STRUCTP(r->out.needed);
25842 NDR_PULL_ALLOC(ndr, r->out.server_major_version);
25843 ZERO_STRUCTP(r->out.server_major_version);
25844 NDR_PULL_ALLOC(ndr, r->out.server_minor_version);
25845 ZERO_STRUCTP(r->out.server_minor_version);
25847 if (flags & NDR_OUT) {
25848 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
25850 NDR_PULL_ALLOC(ndr, r->out.info);
25852 r->out.info = NULL;
25855 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
25856 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
25858 struct ndr_pull *_ndr_info;
25859 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
25860 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
25861 NDR_CHECK(ndr_pull_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
25862 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
25864 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
25866 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25867 NDR_PULL_ALLOC(ndr, r->out.needed);
25869 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
25870 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
25871 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
25872 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
25873 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25874 NDR_PULL_ALLOC(ndr, r->out.server_major_version);
25876 _mem_save_server_major_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
25877 NDR_PULL_SET_MEM_CTX(ndr, r->out.server_major_version, LIBNDR_FLAG_REF_ALLOC);
25878 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.server_major_version));
25879 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_major_version_0, LIBNDR_FLAG_REF_ALLOC);
25880 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25881 NDR_PULL_ALLOC(ndr, r->out.server_minor_version);
25883 _mem_save_server_minor_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
25884 NDR_PULL_SET_MEM_CTX(ndr, r->out.server_minor_version, LIBNDR_FLAG_REF_ALLOC);
25885 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.server_minor_version));
25886 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_minor_version_0, LIBNDR_FLAG_REF_ALLOC);
25887 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25889 return NDR_ERR_SUCCESS;
25892 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriver2(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriver2 *r)
25894 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriver2");
25896 if (flags & NDR_SET_VALUES) {
25897 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25899 if (flags & NDR_IN) {
25900 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriver2");
25902 ndr_print_ptr(ndr, "handle", r->in.handle);
25904 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25906 ndr_print_ptr(ndr, "architecture", r->in.architecture);
25908 if (r->in.architecture) {
25909 ndr_print_string(ndr, "architecture", r->in.architecture);
25912 ndr_print_uint32(ndr, "level", r->in.level);
25913 ndr_print_ptr(ndr, "buffer", r->in.buffer);
25915 if (r->in.buffer) {
25916 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
25919 ndr_print_uint32(ndr, "offered", r->in.offered);
25920 ndr_print_uint32(ndr, "client_major_version", r->in.client_major_version);
25921 ndr_print_uint32(ndr, "client_minor_version", r->in.client_minor_version);
25924 if (flags & NDR_OUT) {
25925 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriver2");
25927 ndr_print_ptr(ndr, "info", r->out.info);
25930 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
25931 ndr_print_spoolss_DriverInfo(ndr, "info", r->out.info);
25934 ndr_print_ptr(ndr, "needed", r->out.needed);
25936 ndr_print_uint32(ndr, "needed", *r->out.needed);
25938 ndr_print_ptr(ndr, "server_major_version", r->out.server_major_version);
25940 ndr_print_uint32(ndr, "server_major_version", *r->out.server_major_version);
25942 ndr_print_ptr(ndr, "server_minor_version", r->out.server_minor_version);
25944 ndr_print_uint32(ndr, "server_minor_version", *r->out.server_minor_version);
25946 ndr_print_WERROR(ndr, "result", r->out.result);
25952 static enum ndr_err_code ndr_push_spoolss_FindFirstPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_FindFirstPrinterChangeNotification *r)
25954 if (flags & NDR_IN) {
25956 if (flags & NDR_OUT) {
25957 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25959 return NDR_ERR_SUCCESS;
25962 static enum ndr_err_code ndr_pull_spoolss_FindFirstPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_FindFirstPrinterChangeNotification *r)
25964 if (flags & NDR_IN) {
25966 if (flags & NDR_OUT) {
25967 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25969 return NDR_ERR_SUCCESS;
25972 _PUBLIC_ void ndr_print_spoolss_FindFirstPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindFirstPrinterChangeNotification *r)
25974 ndr_print_struct(ndr, name, "spoolss_FindFirstPrinterChangeNotification");
25976 if (flags & NDR_SET_VALUES) {
25977 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25979 if (flags & NDR_IN) {
25980 ndr_print_struct(ndr, "in", "spoolss_FindFirstPrinterChangeNotification");
25984 if (flags & NDR_OUT) {
25985 ndr_print_struct(ndr, "out", "spoolss_FindFirstPrinterChangeNotification");
25987 ndr_print_WERROR(ndr, "result", r->out.result);
25993 static enum ndr_err_code ndr_push_spoolss_FindNextPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_FindNextPrinterChangeNotification *r)
25995 if (flags & NDR_IN) {
25997 if (flags & NDR_OUT) {
25998 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26000 return NDR_ERR_SUCCESS;
26003 static enum ndr_err_code ndr_pull_spoolss_FindNextPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_FindNextPrinterChangeNotification *r)
26005 if (flags & NDR_IN) {
26007 if (flags & NDR_OUT) {
26008 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26010 return NDR_ERR_SUCCESS;
26013 _PUBLIC_ void ndr_print_spoolss_FindNextPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindNextPrinterChangeNotification *r)
26015 ndr_print_struct(ndr, name, "spoolss_FindNextPrinterChangeNotification");
26017 if (flags & NDR_SET_VALUES) {
26018 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26020 if (flags & NDR_IN) {
26021 ndr_print_struct(ndr, "in", "spoolss_FindNextPrinterChangeNotification");
26025 if (flags & NDR_OUT) {
26026 ndr_print_struct(ndr, "out", "spoolss_FindNextPrinterChangeNotification");
26028 ndr_print_WERROR(ndr, "result", r->out.result);
26034 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FindClosePrinterNotify(struct ndr_push *ndr, int flags, const struct spoolss_FindClosePrinterNotify *r)
26036 if (flags & NDR_IN) {
26037 if (r->in.handle == NULL) {
26038 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26040 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26042 if (flags & NDR_OUT) {
26043 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26045 return NDR_ERR_SUCCESS;
26048 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FindClosePrinterNotify(struct ndr_pull *ndr, int flags, struct spoolss_FindClosePrinterNotify *r)
26050 TALLOC_CTX *_mem_save_handle_0;
26051 if (flags & NDR_IN) {
26052 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26053 NDR_PULL_ALLOC(ndr, r->in.handle);
26055 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26056 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26057 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26058 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26060 if (flags & NDR_OUT) {
26061 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26063 return NDR_ERR_SUCCESS;
26066 _PUBLIC_ void ndr_print_spoolss_FindClosePrinterNotify(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindClosePrinterNotify *r)
26068 ndr_print_struct(ndr, name, "spoolss_FindClosePrinterNotify");
26070 if (flags & NDR_SET_VALUES) {
26071 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26073 if (flags & NDR_IN) {
26074 ndr_print_struct(ndr, "in", "spoolss_FindClosePrinterNotify");
26076 ndr_print_ptr(ndr, "handle", r->in.handle);
26078 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26082 if (flags & NDR_OUT) {
26083 ndr_print_struct(ndr, "out", "spoolss_FindClosePrinterNotify");
26085 ndr_print_WERROR(ndr, "result", r->out.result);
26091 static enum ndr_err_code ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_push *ndr, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
26093 if (flags & NDR_IN) {
26095 if (flags & NDR_OUT) {
26096 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26098 return NDR_ERR_SUCCESS;
26101 static enum ndr_err_code ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_pull *ndr, int flags, struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
26103 if (flags & NDR_IN) {
26105 if (flags & NDR_OUT) {
26106 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26108 return NDR_ERR_SUCCESS;
26111 _PUBLIC_ void ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
26113 ndr_print_struct(ndr, name, "spoolss_RouterFindFirstPrinterChangeNotificationOld");
26115 if (flags & NDR_SET_VALUES) {
26116 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26118 if (flags & NDR_IN) {
26119 ndr_print_struct(ndr, "in", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
26123 if (flags & NDR_OUT) {
26124 ndr_print_struct(ndr, "out", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
26126 ndr_print_WERROR(ndr, "result", r->out.result);
26132 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ReplyOpenPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReplyOpenPrinter *r)
26134 if (flags & NDR_IN) {
26135 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
26136 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
26137 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
26138 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));
26139 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.printer_local));
26140 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
26141 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
26142 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
26143 if (r->in.buffer) {
26144 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.bufsize));
26145 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.bufsize));
26148 if (flags & NDR_OUT) {
26149 if (r->out.handle == NULL) {
26150 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26152 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
26153 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26155 return NDR_ERR_SUCCESS;
26158 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ReplyOpenPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReplyOpenPrinter *r)
26160 uint32_t _ptr_buffer;
26161 TALLOC_CTX *_mem_save_buffer_0;
26162 TALLOC_CTX *_mem_save_handle_0;
26163 if (flags & NDR_IN) {
26164 ZERO_STRUCT(r->out);
26166 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
26167 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
26168 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
26169 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));
26171 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
26172 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));
26173 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.printer_local));
26174 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
26175 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.bufsize));
26176 if (r->in.bufsize > 512) {
26177 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
26179 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
26181 NDR_PULL_ALLOC(ndr, r->in.buffer);
26183 r->in.buffer = NULL;
26185 if (r->in.buffer) {
26186 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
26187 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
26188 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
26189 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
26190 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
26191 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
26193 NDR_PULL_ALLOC(ndr, r->out.handle);
26194 ZERO_STRUCTP(r->out.handle);
26195 if (r->in.buffer) {
26196 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.bufsize));
26199 if (flags & NDR_OUT) {
26200 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26201 NDR_PULL_ALLOC(ndr, r->out.handle);
26203 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26204 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
26205 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
26206 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26207 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26209 return NDR_ERR_SUCCESS;
26212 _PUBLIC_ void ndr_print_spoolss_ReplyOpenPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReplyOpenPrinter *r)
26214 ndr_print_struct(ndr, name, "spoolss_ReplyOpenPrinter");
26216 if (flags & NDR_SET_VALUES) {
26217 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26219 if (flags & NDR_IN) {
26220 ndr_print_struct(ndr, "in", "spoolss_ReplyOpenPrinter");
26222 ndr_print_string(ndr, "server_name", r->in.server_name);
26223 ndr_print_uint32(ndr, "printer_local", r->in.printer_local);
26224 ndr_print_winreg_Type(ndr, "type", r->in.type);
26225 ndr_print_uint32(ndr, "bufsize", r->in.bufsize);
26226 ndr_print_ptr(ndr, "buffer", r->in.buffer);
26228 if (r->in.buffer) {
26229 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.bufsize);
26234 if (flags & NDR_OUT) {
26235 ndr_print_struct(ndr, "out", "spoolss_ReplyOpenPrinter");
26237 ndr_print_ptr(ndr, "handle", r->out.handle);
26239 ndr_print_policy_handle(ndr, "handle", r->out.handle);
26241 ndr_print_WERROR(ndr, "result", r->out.result);
26247 static enum ndr_err_code ndr_push_spoolss_RouterReplyPrinter(struct ndr_push *ndr, int flags, const struct spoolss_RouterReplyPrinter *r)
26249 if (flags & NDR_IN) {
26250 if (r->in.handle == NULL) {
26251 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26253 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26254 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
26255 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
26256 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
26257 if (r->in.buffer) {
26258 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.bufsize));
26259 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.bufsize));
26262 if (flags & NDR_OUT) {
26263 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26265 return NDR_ERR_SUCCESS;
26268 static enum ndr_err_code ndr_pull_spoolss_RouterReplyPrinter(struct ndr_pull *ndr, int flags, struct spoolss_RouterReplyPrinter *r)
26270 uint32_t _ptr_buffer;
26271 TALLOC_CTX *_mem_save_handle_0;
26272 TALLOC_CTX *_mem_save_buffer_0;
26273 if (flags & NDR_IN) {
26274 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26275 NDR_PULL_ALLOC(ndr, r->in.handle);
26277 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26278 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26279 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26280 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26281 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
26282 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.bufsize));
26283 if (r->in.bufsize > 512) {
26284 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
26286 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
26288 NDR_PULL_ALLOC(ndr, r->in.buffer);
26290 r->in.buffer = NULL;
26292 if (r->in.buffer) {
26293 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
26294 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
26295 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
26296 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
26297 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
26298 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
26300 if (r->in.buffer) {
26301 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.bufsize));
26304 if (flags & NDR_OUT) {
26305 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26307 return NDR_ERR_SUCCESS;
26310 _PUBLIC_ void ndr_print_spoolss_RouterReplyPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterReplyPrinter *r)
26312 ndr_print_struct(ndr, name, "spoolss_RouterReplyPrinter");
26314 if (flags & NDR_SET_VALUES) {
26315 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26317 if (flags & NDR_IN) {
26318 ndr_print_struct(ndr, "in", "spoolss_RouterReplyPrinter");
26320 ndr_print_ptr(ndr, "handle", r->in.handle);
26322 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26324 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
26325 ndr_print_uint32(ndr, "bufsize", r->in.bufsize);
26326 ndr_print_ptr(ndr, "buffer", r->in.buffer);
26328 if (r->in.buffer) {
26329 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.bufsize);
26334 if (flags & NDR_OUT) {
26335 ndr_print_struct(ndr, "out", "spoolss_RouterReplyPrinter");
26337 ndr_print_WERROR(ndr, "result", r->out.result);
26343 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ReplyClosePrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReplyClosePrinter *r)
26345 if (flags & NDR_IN) {
26346 if (r->in.handle == NULL) {
26347 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26349 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26351 if (flags & NDR_OUT) {
26352 if (r->out.handle == NULL) {
26353 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26355 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
26356 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26358 return NDR_ERR_SUCCESS;
26361 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ReplyClosePrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReplyClosePrinter *r)
26363 TALLOC_CTX *_mem_save_handle_0;
26364 if (flags & NDR_IN) {
26365 ZERO_STRUCT(r->out);
26367 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26368 NDR_PULL_ALLOC(ndr, r->in.handle);
26370 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26371 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26372 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26373 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26374 NDR_PULL_ALLOC(ndr, r->out.handle);
26375 *r->out.handle = *r->in.handle;
26377 if (flags & NDR_OUT) {
26378 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26379 NDR_PULL_ALLOC(ndr, r->out.handle);
26381 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26382 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
26383 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
26384 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26385 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26387 return NDR_ERR_SUCCESS;
26390 _PUBLIC_ void ndr_print_spoolss_ReplyClosePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReplyClosePrinter *r)
26392 ndr_print_struct(ndr, name, "spoolss_ReplyClosePrinter");
26394 if (flags & NDR_SET_VALUES) {
26395 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26397 if (flags & NDR_IN) {
26398 ndr_print_struct(ndr, "in", "spoolss_ReplyClosePrinter");
26400 ndr_print_ptr(ndr, "handle", r->in.handle);
26402 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26406 if (flags & NDR_OUT) {
26407 ndr_print_struct(ndr, "out", "spoolss_ReplyClosePrinter");
26409 ndr_print_ptr(ndr, "handle", r->out.handle);
26411 ndr_print_policy_handle(ndr, "handle", r->out.handle);
26413 ndr_print_WERROR(ndr, "result", r->out.result);
26419 static enum ndr_err_code ndr_push_spoolss_AddPortEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPortEx *r)
26421 if (flags & NDR_IN) {
26423 if (flags & NDR_OUT) {
26424 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26426 return NDR_ERR_SUCCESS;
26429 static enum ndr_err_code ndr_pull_spoolss_AddPortEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPortEx *r)
26431 if (flags & NDR_IN) {
26433 if (flags & NDR_OUT) {
26434 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26436 return NDR_ERR_SUCCESS;
26439 _PUBLIC_ void ndr_print_spoolss_AddPortEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPortEx *r)
26441 ndr_print_struct(ndr, name, "spoolss_AddPortEx");
26443 if (flags & NDR_SET_VALUES) {
26444 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26446 if (flags & NDR_IN) {
26447 ndr_print_struct(ndr, "in", "spoolss_AddPortEx");
26451 if (flags & NDR_OUT) {
26452 ndr_print_struct(ndr, "out", "spoolss_AddPortEx");
26454 ndr_print_WERROR(ndr, "result", r->out.result);
26460 static enum ndr_err_code ndr_push_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotification *r)
26462 if (flags & NDR_IN) {
26464 if (flags & NDR_OUT) {
26465 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26467 return NDR_ERR_SUCCESS;
26470 static enum ndr_err_code ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_RouterFindFirstPrinterChangeNotification *r)
26472 if (flags & NDR_IN) {
26474 if (flags & NDR_OUT) {
26475 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26477 return NDR_ERR_SUCCESS;
26480 _PUBLIC_ void ndr_print_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotification *r)
26482 ndr_print_struct(ndr, name, "spoolss_RouterFindFirstPrinterChangeNotification");
26484 if (flags & NDR_SET_VALUES) {
26485 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26487 if (flags & NDR_IN) {
26488 ndr_print_struct(ndr, "in", "spoolss_RouterFindFirstPrinterChangeNotification");
26492 if (flags & NDR_OUT) {
26493 ndr_print_struct(ndr, "out", "spoolss_RouterFindFirstPrinterChangeNotification");
26495 ndr_print_WERROR(ndr, "result", r->out.result);
26501 static enum ndr_err_code ndr_push_spoolss_SpoolerInit(struct ndr_push *ndr, int flags, const struct spoolss_SpoolerInit *r)
26503 if (flags & NDR_IN) {
26505 if (flags & NDR_OUT) {
26506 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26508 return NDR_ERR_SUCCESS;
26511 static enum ndr_err_code ndr_pull_spoolss_SpoolerInit(struct ndr_pull *ndr, int flags, struct spoolss_SpoolerInit *r)
26513 if (flags & NDR_IN) {
26515 if (flags & NDR_OUT) {
26516 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26518 return NDR_ERR_SUCCESS;
26521 _PUBLIC_ void ndr_print_spoolss_SpoolerInit(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SpoolerInit *r)
26523 ndr_print_struct(ndr, name, "spoolss_SpoolerInit");
26525 if (flags & NDR_SET_VALUES) {
26526 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26528 if (flags & NDR_IN) {
26529 ndr_print_struct(ndr, "in", "spoolss_SpoolerInit");
26533 if (flags & NDR_OUT) {
26534 ndr_print_struct(ndr, "out", "spoolss_SpoolerInit");
26536 ndr_print_WERROR(ndr, "result", r->out.result);
26542 static enum ndr_err_code ndr_push_spoolss_ResetPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_ResetPrinterEx *r)
26544 if (flags & NDR_IN) {
26546 if (flags & NDR_OUT) {
26547 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26549 return NDR_ERR_SUCCESS;
26552 static enum ndr_err_code ndr_pull_spoolss_ResetPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_ResetPrinterEx *r)
26554 if (flags & NDR_IN) {
26556 if (flags & NDR_OUT) {
26557 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26559 return NDR_ERR_SUCCESS;
26562 _PUBLIC_ void ndr_print_spoolss_ResetPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ResetPrinterEx *r)
26564 ndr_print_struct(ndr, name, "spoolss_ResetPrinterEx");
26566 if (flags & NDR_SET_VALUES) {
26567 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26569 if (flags & NDR_IN) {
26570 ndr_print_struct(ndr, "in", "spoolss_ResetPrinterEx");
26574 if (flags & NDR_OUT) {
26575 ndr_print_struct(ndr, "out", "spoolss_ResetPrinterEx");
26577 ndr_print_WERROR(ndr, "result", r->out.result);
26583 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_push *ndr, int flags, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
26585 if (flags & NDR_IN) {
26586 if (r->in.handle == NULL) {
26587 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26589 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26590 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
26591 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.options));
26592 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.local_machine));
26593 if (r->in.local_machine) {
26594 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.local_machine, CH_UTF16)));
26595 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
26596 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.local_machine, CH_UTF16)));
26597 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));
26599 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.printer_local));
26600 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.notify_options));
26601 if (r->in.notify_options) {
26602 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.notify_options));
26605 if (flags & NDR_OUT) {
26606 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26608 return NDR_ERR_SUCCESS;
26611 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_pull *ndr, int flags, struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
26613 uint32_t _ptr_local_machine;
26614 uint32_t _ptr_notify_options;
26615 TALLOC_CTX *_mem_save_handle_0;
26616 TALLOC_CTX *_mem_save_local_machine_0;
26617 TALLOC_CTX *_mem_save_notify_options_0;
26618 if (flags & NDR_IN) {
26619 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26620 NDR_PULL_ALLOC(ndr, r->in.handle);
26622 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26623 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26624 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26625 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26626 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
26627 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.options));
26628 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_local_machine));
26629 if (_ptr_local_machine) {
26630 NDR_PULL_ALLOC(ndr, r->in.local_machine);
26632 r->in.local_machine = NULL;
26634 if (r->in.local_machine) {
26635 _mem_save_local_machine_0 = NDR_PULL_GET_MEM_CTX(ndr);
26636 NDR_PULL_SET_MEM_CTX(ndr, r->in.local_machine, 0);
26637 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.local_machine));
26638 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.local_machine));
26639 if (ndr_get_array_length(ndr, &r->in.local_machine) > ndr_get_array_size(ndr, &r->in.local_machine)) {
26640 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));
26642 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.local_machine), sizeof(uint16_t)));
26643 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));
26644 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_local_machine_0, 0);
26646 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.printer_local));
26647 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_options));
26648 if (_ptr_notify_options) {
26649 NDR_PULL_ALLOC(ndr, r->in.notify_options);
26651 r->in.notify_options = NULL;
26653 if (r->in.notify_options) {
26654 _mem_save_notify_options_0 = NDR_PULL_GET_MEM_CTX(ndr);
26655 NDR_PULL_SET_MEM_CTX(ndr, r->in.notify_options, 0);
26656 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.notify_options));
26657 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_options_0, 0);
26660 if (flags & NDR_OUT) {
26661 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26663 return NDR_ERR_SUCCESS;
26666 _PUBLIC_ void ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
26668 ndr_print_struct(ndr, name, "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
26670 if (flags & NDR_SET_VALUES) {
26671 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26673 if (flags & NDR_IN) {
26674 ndr_print_struct(ndr, "in", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
26676 ndr_print_ptr(ndr, "handle", r->in.handle);
26678 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26680 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
26681 ndr_print_uint32(ndr, "options", r->in.options);
26682 ndr_print_ptr(ndr, "local_machine", r->in.local_machine);
26684 if (r->in.local_machine) {
26685 ndr_print_string(ndr, "local_machine", r->in.local_machine);
26688 ndr_print_uint32(ndr, "printer_local", r->in.printer_local);
26689 ndr_print_ptr(ndr, "notify_options", r->in.notify_options);
26691 if (r->in.notify_options) {
26692 ndr_print_spoolss_NotifyOption(ndr, "notify_options", r->in.notify_options);
26697 if (flags & NDR_OUT) {
26698 ndr_print_struct(ndr, "out", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
26700 ndr_print_WERROR(ndr, "result", r->out.result);
26706 static enum ndr_err_code ndr_push_spoolss_RouterReplyPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_RouterReplyPrinterEx *r)
26708 if (flags & NDR_IN) {
26709 if (r->in.handle == NULL) {
26710 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26712 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26713 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.color));
26714 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
26715 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.reply_type));
26716 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.reply_type));
26717 NDR_CHECK(ndr_push_spoolss_ReplyPrinterInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
26719 if (flags & NDR_OUT) {
26720 if (r->out.reply_result == NULL) {
26721 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26723 NDR_CHECK(ndr_push_spoolss_PrinterNotifyFlags(ndr, NDR_SCALARS, *r->out.reply_result));
26724 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26726 return NDR_ERR_SUCCESS;
26729 static enum ndr_err_code ndr_pull_spoolss_RouterReplyPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_RouterReplyPrinterEx *r)
26731 TALLOC_CTX *_mem_save_handle_0;
26732 TALLOC_CTX *_mem_save_reply_result_0;
26733 if (flags & NDR_IN) {
26734 ZERO_STRUCT(r->out);
26736 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26737 NDR_PULL_ALLOC(ndr, r->in.handle);
26739 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26740 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26741 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26742 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26743 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.color));
26744 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
26745 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.reply_type));
26746 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.reply_type));
26747 NDR_CHECK(ndr_pull_spoolss_ReplyPrinterInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
26748 NDR_PULL_ALLOC(ndr, r->out.reply_result);
26749 ZERO_STRUCTP(r->out.reply_result);
26751 if (flags & NDR_OUT) {
26752 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26753 NDR_PULL_ALLOC(ndr, r->out.reply_result);
26755 _mem_save_reply_result_0 = NDR_PULL_GET_MEM_CTX(ndr);
26756 NDR_PULL_SET_MEM_CTX(ndr, r->out.reply_result, LIBNDR_FLAG_REF_ALLOC);
26757 NDR_CHECK(ndr_pull_spoolss_PrinterNotifyFlags(ndr, NDR_SCALARS, r->out.reply_result));
26758 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_reply_result_0, LIBNDR_FLAG_REF_ALLOC);
26759 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26761 return NDR_ERR_SUCCESS;
26764 _PUBLIC_ void ndr_print_spoolss_RouterReplyPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterReplyPrinterEx *r)
26766 ndr_print_struct(ndr, name, "spoolss_RouterReplyPrinterEx");
26768 if (flags & NDR_SET_VALUES) {
26769 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26771 if (flags & NDR_IN) {
26772 ndr_print_struct(ndr, "in", "spoolss_RouterReplyPrinterEx");
26774 ndr_print_ptr(ndr, "handle", r->in.handle);
26776 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26778 ndr_print_uint32(ndr, "color", r->in.color);
26779 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
26780 ndr_print_uint32(ndr, "reply_type", r->in.reply_type);
26781 ndr_print_set_switch_value(ndr, &r->in.info, r->in.reply_type);
26782 ndr_print_spoolss_ReplyPrinterInfo(ndr, "info", &r->in.info);
26785 if (flags & NDR_OUT) {
26786 ndr_print_struct(ndr, "out", "spoolss_RouterReplyPrinterEx");
26788 ndr_print_ptr(ndr, "reply_result", r->out.reply_result);
26790 ndr_print_spoolss_PrinterNotifyFlags(ndr, "reply_result", *r->out.reply_result);
26792 ndr_print_WERROR(ndr, "result", r->out.result);
26798 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_push *ndr, int flags, const struct spoolss_RouterRefreshPrinterChangeNotify *r)
26800 if (flags & NDR_IN) {
26801 if (r->in.handle == NULL) {
26802 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26804 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26805 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.change_low));
26806 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.options));
26807 if (r->in.options) {
26808 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.options));
26811 if (flags & NDR_OUT) {
26812 if (r->out.info == NULL) {
26813 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26815 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
26816 if (*r->out.info) {
26817 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
26819 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26821 return NDR_ERR_SUCCESS;
26824 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_pull *ndr, int flags, struct spoolss_RouterRefreshPrinterChangeNotify *r)
26826 uint32_t _ptr_options;
26827 uint32_t _ptr_info;
26828 TALLOC_CTX *_mem_save_handle_0;
26829 TALLOC_CTX *_mem_save_options_0;
26830 TALLOC_CTX *_mem_save_info_0;
26831 TALLOC_CTX *_mem_save_info_1;
26832 if (flags & NDR_IN) {
26833 ZERO_STRUCT(r->out);
26835 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26836 NDR_PULL_ALLOC(ndr, r->in.handle);
26838 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26839 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26840 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26841 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26842 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.change_low));
26843 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_options));
26844 if (_ptr_options) {
26845 NDR_PULL_ALLOC(ndr, r->in.options);
26847 r->in.options = NULL;
26849 if (r->in.options) {
26850 _mem_save_options_0 = NDR_PULL_GET_MEM_CTX(ndr);
26851 NDR_PULL_SET_MEM_CTX(ndr, r->in.options, 0);
26852 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.options));
26853 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_options_0, 0);
26855 NDR_PULL_ALLOC(ndr, r->out.info);
26856 ZERO_STRUCTP(r->out.info);
26858 if (flags & NDR_OUT) {
26859 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26860 NDR_PULL_ALLOC(ndr, r->out.info);
26862 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
26863 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
26864 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
26866 NDR_PULL_ALLOC(ndr, *r->out.info);
26868 *r->out.info = NULL;
26870 if (*r->out.info) {
26871 _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
26872 NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
26873 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
26874 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
26876 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
26877 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26879 return NDR_ERR_SUCCESS;
26882 _PUBLIC_ void ndr_print_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterRefreshPrinterChangeNotify *r)
26884 ndr_print_struct(ndr, name, "spoolss_RouterRefreshPrinterChangeNotify");
26886 if (flags & NDR_SET_VALUES) {
26887 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26889 if (flags & NDR_IN) {
26890 ndr_print_struct(ndr, "in", "spoolss_RouterRefreshPrinterChangeNotify");
26892 ndr_print_ptr(ndr, "handle", r->in.handle);
26894 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26896 ndr_print_uint32(ndr, "change_low", r->in.change_low);
26897 ndr_print_ptr(ndr, "options", r->in.options);
26899 if (r->in.options) {
26900 ndr_print_spoolss_NotifyOption(ndr, "options", r->in.options);
26905 if (flags & NDR_OUT) {
26906 ndr_print_struct(ndr, "out", "spoolss_RouterRefreshPrinterChangeNotify");
26908 ndr_print_ptr(ndr, "info", r->out.info);
26910 ndr_print_ptr(ndr, "info", *r->out.info);
26912 if (*r->out.info) {
26913 ndr_print_spoolss_NotifyInfo(ndr, "info", *r->out.info);
26917 ndr_print_WERROR(ndr, "result", r->out.result);
26923 static enum ndr_err_code ndr_push_spoolss_44(struct ndr_push *ndr, int flags, const struct spoolss_44 *r)
26925 if (flags & NDR_IN) {
26927 if (flags & NDR_OUT) {
26928 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26930 return NDR_ERR_SUCCESS;
26933 static enum ndr_err_code ndr_pull_spoolss_44(struct ndr_pull *ndr, int flags, struct spoolss_44 *r)
26935 if (flags & NDR_IN) {
26937 if (flags & NDR_OUT) {
26938 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26940 return NDR_ERR_SUCCESS;
26943 _PUBLIC_ void ndr_print_spoolss_44(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_44 *r)
26945 ndr_print_struct(ndr, name, "spoolss_44");
26947 if (flags & NDR_SET_VALUES) {
26948 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26950 if (flags & NDR_IN) {
26951 ndr_print_struct(ndr, "in", "spoolss_44");
26955 if (flags & NDR_OUT) {
26956 ndr_print_struct(ndr, "out", "spoolss_44");
26958 ndr_print_WERROR(ndr, "result", r->out.result);
26964 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OpenPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_OpenPrinterEx *r)
26966 if (flags & NDR_IN) {
26967 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.printername));
26968 if (r->in.printername) {
26969 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
26970 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
26971 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
26972 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26974 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.datatype));
26975 if (r->in.datatype) {
26976 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
26977 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
26978 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
26979 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.datatype, ndr_charset_length(r->in.datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26981 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
26982 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr, NDR_SCALARS, r->in.access_mask));
26983 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
26984 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.userlevel, r->in.level));
26985 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.userlevel));
26987 if (flags & NDR_OUT) {
26988 if (r->out.handle == NULL) {
26989 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26991 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
26992 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26994 return NDR_ERR_SUCCESS;
26997 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OpenPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_OpenPrinterEx *r)
26999 uint32_t _ptr_printername;
27000 uint32_t _ptr_datatype;
27001 TALLOC_CTX *_mem_save_printername_0;
27002 TALLOC_CTX *_mem_save_datatype_0;
27003 TALLOC_CTX *_mem_save_handle_0;
27004 if (flags & NDR_IN) {
27005 ZERO_STRUCT(r->out);
27007 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
27008 if (_ptr_printername) {
27009 NDR_PULL_ALLOC(ndr, r->in.printername);
27011 r->in.printername = NULL;
27013 if (r->in.printername) {
27014 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
27015 NDR_PULL_SET_MEM_CTX(ndr, r->in.printername, 0);
27016 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
27017 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
27018 if (ndr_get_array_length(ndr, &r->in.printername) > ndr_get_array_size(ndr, &r->in.printername)) {
27019 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));
27021 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t)));
27022 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t), CH_UTF16));
27023 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
27025 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
27026 if (_ptr_datatype) {
27027 NDR_PULL_ALLOC(ndr, r->in.datatype);
27029 r->in.datatype = NULL;
27031 if (r->in.datatype) {
27032 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
27033 NDR_PULL_SET_MEM_CTX(ndr, r->in.datatype, 0);
27034 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.datatype));
27035 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.datatype));
27036 if (ndr_get_array_length(ndr, &r->in.datatype) > ndr_get_array_size(ndr, &r->in.datatype)) {
27037 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));
27039 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t)));
27040 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t), CH_UTF16));
27041 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
27043 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
27044 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr, NDR_SCALARS, &r->in.access_mask));
27045 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
27046 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.userlevel, r->in.level));
27047 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.userlevel));
27048 NDR_PULL_ALLOC(ndr, r->out.handle);
27049 ZERO_STRUCTP(r->out.handle);
27051 if (flags & NDR_OUT) {
27052 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27053 NDR_PULL_ALLOC(ndr, r->out.handle);
27055 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27056 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
27057 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
27058 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27059 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27061 return NDR_ERR_SUCCESS;
27064 _PUBLIC_ void ndr_print_spoolss_OpenPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_OpenPrinterEx *r)
27066 ndr_print_struct(ndr, name, "spoolss_OpenPrinterEx");
27068 if (flags & NDR_SET_VALUES) {
27069 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27071 if (flags & NDR_IN) {
27072 ndr_print_struct(ndr, "in", "spoolss_OpenPrinterEx");
27074 ndr_print_ptr(ndr, "printername", r->in.printername);
27076 if (r->in.printername) {
27077 ndr_print_string(ndr, "printername", r->in.printername);
27080 ndr_print_ptr(ndr, "datatype", r->in.datatype);
27082 if (r->in.datatype) {
27083 ndr_print_string(ndr, "datatype", r->in.datatype);
27086 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", &r->in.devmode_ctr);
27087 ndr_print_spoolss_AccessRights(ndr, "access_mask", r->in.access_mask);
27088 ndr_print_uint32(ndr, "level", r->in.level);
27089 ndr_print_set_switch_value(ndr, &r->in.userlevel, r->in.level);
27090 ndr_print_spoolss_UserLevel(ndr, "userlevel", &r->in.userlevel);
27093 if (flags & NDR_OUT) {
27094 ndr_print_struct(ndr, "out", "spoolss_OpenPrinterEx");
27096 ndr_print_ptr(ndr, "handle", r->out.handle);
27098 ndr_print_policy_handle(ndr, "handle", r->out.handle);
27100 ndr_print_WERROR(ndr, "result", r->out.result);
27106 static enum ndr_err_code ndr_push_spoolss_AddPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterEx *r)
27108 if (flags & NDR_IN) {
27109 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
27110 if (r->in.server) {
27111 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
27112 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27113 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
27114 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
27116 if (r->in.info_ctr == NULL) {
27117 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27119 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
27120 if (r->in.devmode_ctr == NULL) {
27121 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27123 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
27124 if (r->in.secdesc_ctr == NULL) {
27125 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27127 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
27128 if (r->in.userlevel_ctr == NULL) {
27129 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27131 NDR_CHECK(ndr_push_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.userlevel_ctr));
27133 if (flags & NDR_OUT) {
27134 if (r->out.handle == NULL) {
27135 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27137 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
27138 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27140 return NDR_ERR_SUCCESS;
27143 static enum ndr_err_code ndr_pull_spoolss_AddPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterEx *r)
27145 uint32_t _ptr_server;
27146 TALLOC_CTX *_mem_save_server_0;
27147 TALLOC_CTX *_mem_save_info_ctr_0;
27148 TALLOC_CTX *_mem_save_devmode_ctr_0;
27149 TALLOC_CTX *_mem_save_secdesc_ctr_0;
27150 TALLOC_CTX *_mem_save_userlevel_ctr_0;
27151 TALLOC_CTX *_mem_save_handle_0;
27152 if (flags & NDR_IN) {
27153 ZERO_STRUCT(r->out);
27155 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
27157 NDR_PULL_ALLOC(ndr, r->in.server);
27159 r->in.server = NULL;
27161 if (r->in.server) {
27162 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
27163 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
27164 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
27165 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
27166 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
27167 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));
27169 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
27170 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
27171 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
27173 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27174 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
27176 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
27177 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
27178 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
27179 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
27180 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27181 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
27183 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
27184 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
27185 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
27186 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
27187 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27188 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
27190 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
27191 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
27192 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
27193 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
27194 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27195 NDR_PULL_ALLOC(ndr, r->in.userlevel_ctr);
27197 _mem_save_userlevel_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
27198 NDR_PULL_SET_MEM_CTX(ndr, r->in.userlevel_ctr, LIBNDR_FLAG_REF_ALLOC);
27199 NDR_CHECK(ndr_pull_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.userlevel_ctr));
27200 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_userlevel_ctr_0, LIBNDR_FLAG_REF_ALLOC);
27201 NDR_PULL_ALLOC(ndr, r->out.handle);
27202 ZERO_STRUCTP(r->out.handle);
27204 if (flags & NDR_OUT) {
27205 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27206 NDR_PULL_ALLOC(ndr, r->out.handle);
27208 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27209 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
27210 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
27211 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27212 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27214 return NDR_ERR_SUCCESS;
27217 _PUBLIC_ void ndr_print_spoolss_AddPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterEx *r)
27219 ndr_print_struct(ndr, name, "spoolss_AddPrinterEx");
27221 if (flags & NDR_SET_VALUES) {
27222 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27224 if (flags & NDR_IN) {
27225 ndr_print_struct(ndr, "in", "spoolss_AddPrinterEx");
27227 ndr_print_ptr(ndr, "server", r->in.server);
27229 if (r->in.server) {
27230 ndr_print_string(ndr, "server", r->in.server);
27233 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
27235 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
27237 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
27239 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
27241 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
27243 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
27245 ndr_print_ptr(ndr, "userlevel_ctr", r->in.userlevel_ctr);
27247 ndr_print_spoolss_UserLevelCtr(ndr, "userlevel_ctr", r->in.userlevel_ctr);
27251 if (flags & NDR_OUT) {
27252 ndr_print_struct(ndr, "out", "spoolss_AddPrinterEx");
27254 ndr_print_ptr(ndr, "handle", r->out.handle);
27256 ndr_print_policy_handle(ndr, "handle", r->out.handle);
27258 ndr_print_WERROR(ndr, "result", r->out.result);
27264 static enum ndr_err_code ndr_push_spoolss_47(struct ndr_push *ndr, int flags, const struct spoolss_47 *r)
27266 if (flags & NDR_IN) {
27268 if (flags & NDR_OUT) {
27269 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27271 return NDR_ERR_SUCCESS;
27274 static enum ndr_err_code ndr_pull_spoolss_47(struct ndr_pull *ndr, int flags, struct spoolss_47 *r)
27276 if (flags & NDR_IN) {
27278 if (flags & NDR_OUT) {
27279 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27281 return NDR_ERR_SUCCESS;
27284 _PUBLIC_ void ndr_print_spoolss_47(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_47 *r)
27286 ndr_print_struct(ndr, name, "spoolss_47");
27288 if (flags & NDR_SET_VALUES) {
27289 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27291 if (flags & NDR_IN) {
27292 ndr_print_struct(ndr, "in", "spoolss_47");
27296 if (flags & NDR_OUT) {
27297 ndr_print_struct(ndr, "out", "spoolss_47");
27299 ndr_print_WERROR(ndr, "result", r->out.result);
27305 static enum ndr_err_code ndr_push_spoolss_EnumPrinterData(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterData *r)
27307 if (flags & NDR_IN) {
27308 if (r->in.handle == NULL) {
27309 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27311 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27312 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.enum_index));
27313 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.value_offered));
27314 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_offered));
27316 if (flags & NDR_OUT) {
27317 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.value_offered / 2));
27318 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->out.value_name, r->in.value_offered / 2, sizeof(uint16_t), CH_UTF16));
27319 if (r->out.value_needed == NULL) {
27320 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27322 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.value_needed));
27323 if (r->out.type == NULL) {
27324 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27326 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
27328 uint32_t _flags_save_uint8 = ndr->flags;
27329 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
27330 if (r->out.data == NULL) {
27331 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27333 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.data_offered));
27334 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->in.data_offered));
27335 ndr->flags = _flags_save_uint8;
27337 if (r->out.data_needed == NULL) {
27338 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27340 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.data_needed));
27341 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27343 return NDR_ERR_SUCCESS;
27346 static enum ndr_err_code ndr_pull_spoolss_EnumPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterData *r)
27348 TALLOC_CTX *_mem_save_handle_0;
27349 TALLOC_CTX *_mem_save_value_needed_0;
27350 TALLOC_CTX *_mem_save_type_0;
27351 TALLOC_CTX *_mem_save_data_needed_0;
27352 if (flags & NDR_IN) {
27353 ZERO_STRUCT(r->out);
27355 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27356 NDR_PULL_ALLOC(ndr, r->in.handle);
27358 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27359 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27360 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27361 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27362 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.enum_index));
27363 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.value_offered));
27364 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_offered));
27365 NDR_PULL_ALLOC(ndr, r->out.value_needed);
27366 ZERO_STRUCTP(r->out.value_needed);
27367 NDR_PULL_ALLOC(ndr, r->out.type);
27368 ZERO_STRUCTP(r->out.type);
27369 NDR_PULL_ALLOC_N(ndr, r->out.data, r->in.data_offered);
27370 memset(r->out.data, 0, (r->in.data_offered) * sizeof(*r->out.data));
27371 NDR_PULL_ALLOC(ndr, r->out.data_needed);
27372 ZERO_STRUCTP(r->out.data_needed);
27374 if (flags & NDR_OUT) {
27375 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.value_name));
27376 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));
27377 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27378 NDR_PULL_ALLOC(ndr, r->out.value_needed);
27380 _mem_save_value_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
27381 NDR_PULL_SET_MEM_CTX(ndr, r->out.value_needed, LIBNDR_FLAG_REF_ALLOC);
27382 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.value_needed));
27383 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_needed_0, LIBNDR_FLAG_REF_ALLOC);
27384 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27385 NDR_PULL_ALLOC(ndr, r->out.type);
27387 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
27388 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
27389 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
27390 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
27392 uint32_t _flags_save_uint8 = ndr->flags;
27393 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
27394 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
27395 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27396 NDR_PULL_ALLOC_N(ndr, r->out.data, ndr_get_array_size(ndr, &r->out.data));
27398 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, ndr_get_array_size(ndr, &r->out.data)));
27399 ndr->flags = _flags_save_uint8;
27401 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27402 NDR_PULL_ALLOC(ndr, r->out.data_needed);
27404 _mem_save_data_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
27405 NDR_PULL_SET_MEM_CTX(ndr, r->out.data_needed, LIBNDR_FLAG_REF_ALLOC);
27406 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.data_needed));
27407 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_needed_0, LIBNDR_FLAG_REF_ALLOC);
27408 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27409 if (r->out.value_name) {
27410 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.value_name, r->in.value_offered / 2));
27413 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, r->in.data_offered));
27416 return NDR_ERR_SUCCESS;
27419 _PUBLIC_ void ndr_print_spoolss_EnumPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterData *r)
27421 ndr_print_struct(ndr, name, "spoolss_EnumPrinterData");
27423 if (flags & NDR_SET_VALUES) {
27424 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27426 if (flags & NDR_IN) {
27427 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterData");
27429 ndr_print_ptr(ndr, "handle", r->in.handle);
27431 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27433 ndr_print_uint32(ndr, "enum_index", r->in.enum_index);
27434 ndr_print_uint32(ndr, "value_offered", r->in.value_offered);
27435 ndr_print_uint32(ndr, "data_offered", r->in.data_offered);
27438 if (flags & NDR_OUT) {
27439 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterData");
27441 ndr_print_string(ndr, "value_name", r->out.value_name);
27442 ndr_print_ptr(ndr, "value_needed", r->out.value_needed);
27444 ndr_print_uint32(ndr, "value_needed", *r->out.value_needed);
27446 ndr_print_ptr(ndr, "type", r->out.type);
27448 ndr_print_winreg_Type(ndr, "type", *r->out.type);
27450 ndr_print_ptr(ndr, "data", r->out.data);
27452 ndr_print_array_uint8(ndr, "data", r->out.data, r->in.data_offered);
27454 ndr_print_ptr(ndr, "data_needed", r->out.data_needed);
27456 ndr_print_uint32(ndr, "data_needed", *r->out.data_needed);
27458 ndr_print_WERROR(ndr, "result", r->out.result);
27464 static enum ndr_err_code ndr_push_spoolss_DeletePrinterData(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterData *r)
27466 if (flags & NDR_IN) {
27467 if (r->in.handle == NULL) {
27468 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27470 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27471 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
27472 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27473 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
27474 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));
27476 if (flags & NDR_OUT) {
27477 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27479 return NDR_ERR_SUCCESS;
27482 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterData(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterData *r)
27484 TALLOC_CTX *_mem_save_handle_0;
27485 if (flags & NDR_IN) {
27486 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27487 NDR_PULL_ALLOC(ndr, r->in.handle);
27489 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27490 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27491 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27492 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27493 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
27494 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
27495 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
27496 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));
27498 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
27499 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));
27501 if (flags & NDR_OUT) {
27502 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27504 return NDR_ERR_SUCCESS;
27507 _PUBLIC_ void ndr_print_spoolss_DeletePrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterData *r)
27509 ndr_print_struct(ndr, name, "spoolss_DeletePrinterData");
27511 if (flags & NDR_SET_VALUES) {
27512 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27514 if (flags & NDR_IN) {
27515 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterData");
27517 ndr_print_ptr(ndr, "handle", r->in.handle);
27519 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27521 ndr_print_string(ndr, "value_name", r->in.value_name);
27524 if (flags & NDR_OUT) {
27525 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterData");
27527 ndr_print_WERROR(ndr, "result", r->out.result);
27533 static enum ndr_err_code ndr_push_spoolss_4a(struct ndr_push *ndr, int flags, const struct spoolss_4a *r)
27535 if (flags & NDR_IN) {
27537 if (flags & NDR_OUT) {
27538 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27540 return NDR_ERR_SUCCESS;
27543 static enum ndr_err_code ndr_pull_spoolss_4a(struct ndr_pull *ndr, int flags, struct spoolss_4a *r)
27545 if (flags & NDR_IN) {
27547 if (flags & NDR_OUT) {
27548 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27550 return NDR_ERR_SUCCESS;
27553 _PUBLIC_ void ndr_print_spoolss_4a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4a *r)
27555 ndr_print_struct(ndr, name, "spoolss_4a");
27557 if (flags & NDR_SET_VALUES) {
27558 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27560 if (flags & NDR_IN) {
27561 ndr_print_struct(ndr, "in", "spoolss_4a");
27565 if (flags & NDR_OUT) {
27566 ndr_print_struct(ndr, "out", "spoolss_4a");
27568 ndr_print_WERROR(ndr, "result", r->out.result);
27574 static enum ndr_err_code ndr_push_spoolss_4b(struct ndr_push *ndr, int flags, const struct spoolss_4b *r)
27576 if (flags & NDR_IN) {
27578 if (flags & NDR_OUT) {
27579 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27581 return NDR_ERR_SUCCESS;
27584 static enum ndr_err_code ndr_pull_spoolss_4b(struct ndr_pull *ndr, int flags, struct spoolss_4b *r)
27586 if (flags & NDR_IN) {
27588 if (flags & NDR_OUT) {
27589 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27591 return NDR_ERR_SUCCESS;
27594 _PUBLIC_ void ndr_print_spoolss_4b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4b *r)
27596 ndr_print_struct(ndr, name, "spoolss_4b");
27598 if (flags & NDR_SET_VALUES) {
27599 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27601 if (flags & NDR_IN) {
27602 ndr_print_struct(ndr, "in", "spoolss_4b");
27606 if (flags & NDR_OUT) {
27607 ndr_print_struct(ndr, "out", "spoolss_4b");
27609 ndr_print_WERROR(ndr, "result", r->out.result);
27615 static enum ndr_err_code ndr_push_spoolss_4c(struct ndr_push *ndr, int flags, const struct spoolss_4c *r)
27617 if (flags & NDR_IN) {
27619 if (flags & NDR_OUT) {
27620 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27622 return NDR_ERR_SUCCESS;
27625 static enum ndr_err_code ndr_pull_spoolss_4c(struct ndr_pull *ndr, int flags, struct spoolss_4c *r)
27627 if (flags & NDR_IN) {
27629 if (flags & NDR_OUT) {
27630 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27632 return NDR_ERR_SUCCESS;
27635 _PUBLIC_ void ndr_print_spoolss_4c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4c *r)
27637 ndr_print_struct(ndr, name, "spoolss_4c");
27639 if (flags & NDR_SET_VALUES) {
27640 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27642 if (flags & NDR_IN) {
27643 ndr_print_struct(ndr, "in", "spoolss_4c");
27647 if (flags & NDR_OUT) {
27648 ndr_print_struct(ndr, "out", "spoolss_4c");
27650 ndr_print_WERROR(ndr, "result", r->out.result);
27656 static enum ndr_err_code ndr_push_spoolss_SetPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_SetPrinterDataEx *r)
27658 if (flags & NDR_IN) {
27659 if (r->in.handle == NULL) {
27660 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27662 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27663 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27664 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27665 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27666 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));
27667 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
27668 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27669 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
27670 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));
27671 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
27672 if (r->in.buffer == NULL) {
27673 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27675 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.offered));
27676 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.offered));
27677 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
27679 if (flags & NDR_OUT) {
27680 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27682 return NDR_ERR_SUCCESS;
27685 static enum ndr_err_code ndr_pull_spoolss_SetPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinterDataEx *r)
27687 TALLOC_CTX *_mem_save_handle_0;
27688 if (flags & NDR_IN) {
27689 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27690 NDR_PULL_ALLOC(ndr, r->in.handle);
27692 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27693 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27694 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27695 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27696 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
27697 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
27698 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
27699 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));
27701 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
27702 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));
27703 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
27704 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
27705 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
27706 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));
27708 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
27709 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));
27710 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
27711 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
27712 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27713 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
27715 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
27716 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
27717 if (r->in.buffer) {
27718 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.offered));
27721 if (flags & NDR_OUT) {
27722 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27724 return NDR_ERR_SUCCESS;
27727 _PUBLIC_ void ndr_print_spoolss_SetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinterDataEx *r)
27729 ndr_print_struct(ndr, name, "spoolss_SetPrinterDataEx");
27731 if (flags & NDR_SET_VALUES) {
27732 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27734 if (flags & NDR_IN) {
27735 ndr_print_struct(ndr, "in", "spoolss_SetPrinterDataEx");
27737 ndr_print_ptr(ndr, "handle", r->in.handle);
27739 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27741 ndr_print_string(ndr, "key_name", r->in.key_name);
27742 ndr_print_string(ndr, "value_name", r->in.value_name);
27743 ndr_print_winreg_Type(ndr, "type", r->in.type);
27744 ndr_print_ptr(ndr, "buffer", r->in.buffer);
27746 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.offered);
27748 ndr_print_uint32(ndr, "offered", r->in.offered);
27751 if (flags & NDR_OUT) {
27752 ndr_print_struct(ndr, "out", "spoolss_SetPrinterDataEx");
27754 ndr_print_WERROR(ndr, "result", r->out.result);
27760 static enum ndr_err_code ndr_push_spoolss_GetPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDataEx *r)
27762 if (flags & NDR_IN) {
27763 if (r->in.handle == NULL) {
27764 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27766 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27767 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27768 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27769 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27770 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));
27771 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
27772 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27773 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
27774 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));
27775 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
27777 if (flags & NDR_OUT) {
27778 if (r->out.type == NULL) {
27779 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27781 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
27782 if (r->out.buffer == NULL) {
27783 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27785 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.offered));
27786 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
27787 if (r->out.needed == NULL) {
27788 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27790 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
27791 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27793 return NDR_ERR_SUCCESS;
27796 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDataEx *r)
27798 TALLOC_CTX *_mem_save_handle_0;
27799 TALLOC_CTX *_mem_save_type_0;
27800 TALLOC_CTX *_mem_save_needed_0;
27801 if (flags & NDR_IN) {
27802 ZERO_STRUCT(r->out);
27804 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27805 NDR_PULL_ALLOC(ndr, r->in.handle);
27807 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27808 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27809 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27810 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27811 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
27812 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
27813 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
27814 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));
27816 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
27817 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));
27818 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
27819 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
27820 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
27821 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));
27823 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
27824 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));
27825 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
27826 NDR_PULL_ALLOC(ndr, r->out.type);
27827 ZERO_STRUCTP(r->out.type);
27828 NDR_PULL_ALLOC_N(ndr, r->out.buffer, r->in.offered);
27829 memset(r->out.buffer, 0, (r->in.offered) * sizeof(*r->out.buffer));
27830 NDR_PULL_ALLOC(ndr, r->out.needed);
27831 ZERO_STRUCTP(r->out.needed);
27833 if (flags & NDR_OUT) {
27834 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27835 NDR_PULL_ALLOC(ndr, r->out.type);
27837 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
27838 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
27839 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
27840 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
27841 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
27842 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27843 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
27845 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)));
27846 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27847 NDR_PULL_ALLOC(ndr, r->out.needed);
27849 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
27850 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
27851 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
27852 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
27853 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27854 if (r->out.buffer) {
27855 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
27858 return NDR_ERR_SUCCESS;
27861 _PUBLIC_ void ndr_print_spoolss_GetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDataEx *r)
27863 ndr_print_struct(ndr, name, "spoolss_GetPrinterDataEx");
27865 if (flags & NDR_SET_VALUES) {
27866 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27868 if (flags & NDR_IN) {
27869 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDataEx");
27871 ndr_print_ptr(ndr, "handle", r->in.handle);
27873 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27875 ndr_print_string(ndr, "key_name", r->in.key_name);
27876 ndr_print_string(ndr, "value_name", r->in.value_name);
27877 ndr_print_uint32(ndr, "offered", r->in.offered);
27880 if (flags & NDR_OUT) {
27881 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDataEx");
27883 ndr_print_ptr(ndr, "type", r->out.type);
27885 ndr_print_winreg_Type(ndr, "type", *r->out.type);
27887 ndr_print_ptr(ndr, "buffer", r->out.buffer);
27889 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
27891 ndr_print_ptr(ndr, "needed", r->out.needed);
27893 ndr_print_uint32(ndr, "needed", *r->out.needed);
27895 ndr_print_WERROR(ndr, "result", r->out.result);
27901 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinterDataEx(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinterDataEx *r)
27903 if (flags & NDR_IN) {
27904 if (r->in.handle == NULL) {
27905 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27907 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27908 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27909 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27910 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27911 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));
27912 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
27914 if (flags & NDR_OUT) {
27915 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
27916 if (r->out.needed == NULL) {
27917 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27919 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
27920 if (r->out.count == NULL) {
27921 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27923 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
27924 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27926 return NDR_ERR_SUCCESS;
27929 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinterDataEx(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinterDataEx *r)
27931 TALLOC_CTX *_mem_save_handle_0;
27932 TALLOC_CTX *_mem_save_needed_0;
27933 TALLOC_CTX *_mem_save_count_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_array_size(ndr, &r->in.key_name));
27945 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
27946 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
27947 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));
27949 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
27950 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));
27951 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
27952 NDR_PULL_ALLOC(ndr, r->out.needed);
27953 ZERO_STRUCTP(r->out.needed);
27954 NDR_PULL_ALLOC(ndr, r->out.count);
27955 ZERO_STRUCTP(r->out.count);
27957 if (flags & NDR_OUT) {
27958 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->out.info));
27959 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27960 NDR_PULL_ALLOC(ndr, r->out.needed);
27962 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
27963 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
27964 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
27965 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
27966 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27967 NDR_PULL_ALLOC(ndr, r->out.count);
27969 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
27970 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
27971 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
27972 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
27973 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27975 return NDR_ERR_SUCCESS;
27978 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinterDataEx(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinterDataEx *r)
27980 uint32_t cntr_info_0;
27981 if (flags & NDR_IN) {
27982 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
27984 if (flags & NDR_OUT) {
27985 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
27986 NDR_CHECK(ndr_push_spoolss_PrinterEnumValues(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
27988 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
27989 NDR_CHECK(ndr_push_spoolss_PrinterEnumValues(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
27992 return NDR_ERR_SUCCESS;
27995 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinterDataEx(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinterDataEx *r)
27997 uint32_t cntr_info_0;
27998 TALLOC_CTX *_mem_save_info_0;
27999 if (flags & NDR_IN) {
28000 ZERO_STRUCT(r->out);
28002 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
28004 if (flags & NDR_OUT) {
28005 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
28006 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
28007 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
28008 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
28009 NDR_CHECK(ndr_pull_spoolss_PrinterEnumValues(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
28011 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
28012 NDR_CHECK(ndr_pull_spoolss_PrinterEnumValues(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
28014 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
28016 return NDR_ERR_SUCCESS;
28019 _PUBLIC_ void ndr_print_spoolss_EnumPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterDataEx *r)
28021 uint32_t cntr_info_2;
28022 ndr_print_struct(ndr, name, "spoolss_EnumPrinterDataEx");
28024 if (flags & NDR_SET_VALUES) {
28025 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28027 if (flags & NDR_IN) {
28028 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterDataEx");
28030 ndr_print_ptr(ndr, "handle", r->in.handle);
28032 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28034 ndr_print_string(ndr, "key_name", r->in.key_name);
28035 ndr_print_uint32(ndr, "offered", r->in.offered);
28038 if (flags & NDR_OUT) {
28039 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterDataEx");
28041 ndr_print_ptr(ndr, "count", r->out.count);
28043 ndr_print_uint32(ndr, "count", *r->out.count);
28045 ndr_print_ptr(ndr, "info", r->out.info);
28047 ndr_print_ptr(ndr, "info", *r->out.info);
28049 if (*r->out.info) {
28050 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
28052 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
28054 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
28055 ndr_print_spoolss_PrinterEnumValues(ndr, "info", &(*r->out.info)[cntr_info_2]);
28063 ndr_print_ptr(ndr, "needed", r->out.needed);
28065 ndr_print_uint32(ndr, "needed", *r->out.needed);
28067 ndr_print_WERROR(ndr, "result", r->out.result);
28073 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterKey(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterKey *r)
28075 uint32_t cntr_key_buffer_1;
28076 if (flags & NDR_IN) {
28077 if (r->in.handle == NULL) {
28078 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28080 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28081 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28082 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28083 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28084 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));
28085 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
28087 if (flags & NDR_OUT) {
28088 if (r->out.key_buffer == NULL) {
28089 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28091 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.offered / 2));
28092 for (cntr_key_buffer_1 = 0; cntr_key_buffer_1 < r->in.offered / 2; cntr_key_buffer_1++) {
28093 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.key_buffer[cntr_key_buffer_1]));
28095 if (r->out.needed == NULL) {
28096 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28098 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
28099 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28101 return NDR_ERR_SUCCESS;
28104 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterKey(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterKey *r)
28106 uint32_t cntr_key_buffer_1;
28107 TALLOC_CTX *_mem_save_handle_0;
28108 TALLOC_CTX *_mem_save_key_buffer_1;
28109 TALLOC_CTX *_mem_save_needed_0;
28110 if (flags & NDR_IN) {
28111 ZERO_STRUCT(r->out);
28113 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28114 NDR_PULL_ALLOC(ndr, r->in.handle);
28116 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28117 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
28118 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28119 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28120 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
28121 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
28122 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
28123 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));
28125 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
28126 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));
28127 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
28128 NDR_PULL_ALLOC_N(ndr, r->out.key_buffer, r->in.offered / 2);
28129 memset(r->out.key_buffer, 0, (r->in.offered / 2) * sizeof(*r->out.key_buffer));
28130 NDR_PULL_ALLOC(ndr, r->out.needed);
28131 ZERO_STRUCTP(r->out.needed);
28133 if (flags & NDR_OUT) {
28134 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.key_buffer));
28135 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28136 NDR_PULL_ALLOC_N(ndr, r->out.key_buffer, ndr_get_array_size(ndr, &r->out.key_buffer));
28138 _mem_save_key_buffer_1 = NDR_PULL_GET_MEM_CTX(ndr);
28139 NDR_PULL_SET_MEM_CTX(ndr, r->out.key_buffer, 0);
28140 for (cntr_key_buffer_1 = 0; cntr_key_buffer_1 < r->in.offered / 2; cntr_key_buffer_1++) {
28141 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.key_buffer[cntr_key_buffer_1]));
28143 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_key_buffer_1, 0);
28144 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28145 NDR_PULL_ALLOC(ndr, r->out.needed);
28147 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
28148 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
28149 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
28150 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
28151 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28152 if (r->out.key_buffer) {
28153 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.key_buffer, r->in.offered / 2));
28156 return NDR_ERR_SUCCESS;
28159 _PUBLIC_ void ndr_print_spoolss_EnumPrinterKey(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterKey *r)
28161 uint32_t cntr_key_buffer_1;
28162 ndr_print_struct(ndr, name, "spoolss_EnumPrinterKey");
28164 if (flags & NDR_SET_VALUES) {
28165 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28167 if (flags & NDR_IN) {
28168 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterKey");
28170 ndr_print_ptr(ndr, "handle", r->in.handle);
28172 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28174 ndr_print_string(ndr, "key_name", r->in.key_name);
28175 ndr_print_uint32(ndr, "offered", r->in.offered);
28178 if (flags & NDR_OUT) {
28179 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterKey");
28181 ndr_print_ptr(ndr, "key_buffer", r->out.key_buffer);
28183 ndr->print(ndr, "%s: ARRAY(%d)", "key_buffer", (int)r->in.offered / 2);
28185 for (cntr_key_buffer_1=0;cntr_key_buffer_1<r->in.offered / 2;cntr_key_buffer_1++) {
28187 if (asprintf(&idx_1, "[%d]", cntr_key_buffer_1) != -1) {
28188 ndr_print_uint16(ndr, "key_buffer", r->out.key_buffer[cntr_key_buffer_1]);
28194 ndr_print_ptr(ndr, "needed", r->out.needed);
28196 ndr_print_uint32(ndr, "needed", *r->out.needed);
28198 ndr_print_WERROR(ndr, "result", r->out.result);
28204 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDataEx *r)
28206 if (flags & NDR_IN) {
28207 if (r->in.handle == NULL) {
28208 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28210 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28211 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28212 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28213 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28214 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));
28215 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
28216 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28217 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
28218 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));
28220 if (flags & NDR_OUT) {
28221 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28223 return NDR_ERR_SUCCESS;
28226 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDataEx *r)
28228 TALLOC_CTX *_mem_save_handle_0;
28229 if (flags & NDR_IN) {
28230 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28231 NDR_PULL_ALLOC(ndr, r->in.handle);
28233 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28234 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
28235 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28236 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28237 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
28238 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
28239 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
28240 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));
28242 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
28243 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));
28244 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
28245 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
28246 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
28247 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));
28249 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
28250 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));
28252 if (flags & NDR_OUT) {
28253 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28255 return NDR_ERR_SUCCESS;
28258 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDataEx *r)
28260 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDataEx");
28262 if (flags & NDR_SET_VALUES) {
28263 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28265 if (flags & NDR_IN) {
28266 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDataEx");
28268 ndr_print_ptr(ndr, "handle", r->in.handle);
28270 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28272 ndr_print_string(ndr, "key_name", r->in.key_name);
28273 ndr_print_string(ndr, "value_name", r->in.value_name);
28276 if (flags & NDR_OUT) {
28277 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDataEx");
28279 ndr_print_WERROR(ndr, "result", r->out.result);
28285 static enum ndr_err_code ndr_push_spoolss_DeletePrinterKey(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterKey *r)
28287 if (flags & NDR_IN) {
28288 if (r->in.handle == NULL) {
28289 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28291 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28292 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28293 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28294 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28295 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));
28297 if (flags & NDR_OUT) {
28298 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28300 return NDR_ERR_SUCCESS;
28303 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterKey(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterKey *r)
28305 TALLOC_CTX *_mem_save_handle_0;
28306 if (flags & NDR_IN) {
28307 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28308 NDR_PULL_ALLOC(ndr, r->in.handle);
28310 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28311 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
28312 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28313 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28314 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
28315 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
28316 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
28317 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));
28319 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
28320 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));
28322 if (flags & NDR_OUT) {
28323 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28325 return NDR_ERR_SUCCESS;
28328 _PUBLIC_ void ndr_print_spoolss_DeletePrinterKey(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterKey *r)
28330 ndr_print_struct(ndr, name, "spoolss_DeletePrinterKey");
28332 if (flags & NDR_SET_VALUES) {
28333 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28335 if (flags & NDR_IN) {
28336 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterKey");
28338 ndr_print_ptr(ndr, "handle", r->in.handle);
28340 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28342 ndr_print_string(ndr, "key_name", r->in.key_name);
28345 if (flags & NDR_OUT) {
28346 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterKey");
28348 ndr_print_WERROR(ndr, "result", r->out.result);
28354 static enum ndr_err_code ndr_push_spoolss_53(struct ndr_push *ndr, int flags, const struct spoolss_53 *r)
28356 if (flags & NDR_IN) {
28358 if (flags & NDR_OUT) {
28359 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28361 return NDR_ERR_SUCCESS;
28364 static enum ndr_err_code ndr_pull_spoolss_53(struct ndr_pull *ndr, int flags, struct spoolss_53 *r)
28366 if (flags & NDR_IN) {
28368 if (flags & NDR_OUT) {
28369 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28371 return NDR_ERR_SUCCESS;
28374 _PUBLIC_ void ndr_print_spoolss_53(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_53 *r)
28376 ndr_print_struct(ndr, name, "spoolss_53");
28378 if (flags & NDR_SET_VALUES) {
28379 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28381 if (flags & NDR_IN) {
28382 ndr_print_struct(ndr, "in", "spoolss_53");
28386 if (flags & NDR_OUT) {
28387 ndr_print_struct(ndr, "out", "spoolss_53");
28389 ndr_print_WERROR(ndr, "result", r->out.result);
28395 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDriverEx(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDriverEx *r)
28397 if (flags & NDR_IN) {
28398 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
28399 if (r->in.server) {
28400 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
28401 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28402 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
28403 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
28405 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
28406 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28407 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
28408 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
28409 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
28410 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28411 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
28412 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver, ndr_charset_length(r->in.driver, CH_UTF16), sizeof(uint16_t), CH_UTF16));
28413 NDR_CHECK(ndr_push_spoolss_DeleteDriverFlags(ndr, NDR_SCALARS, r->in.delete_flags));
28414 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.version));
28416 if (flags & NDR_OUT) {
28417 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28419 return NDR_ERR_SUCCESS;
28422 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDriverEx(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDriverEx *r)
28424 uint32_t _ptr_server;
28425 TALLOC_CTX *_mem_save_server_0;
28426 if (flags & NDR_IN) {
28427 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
28429 NDR_PULL_ALLOC(ndr, r->in.server);
28431 r->in.server = NULL;
28433 if (r->in.server) {
28434 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
28435 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
28436 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
28437 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
28438 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
28439 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));
28441 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
28442 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
28443 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
28445 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
28446 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
28447 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
28448 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));
28450 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
28451 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
28452 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver));
28453 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.driver));
28454 if (ndr_get_array_length(ndr, &r->in.driver) > ndr_get_array_size(ndr, &r->in.driver)) {
28455 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));
28457 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t)));
28458 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t), CH_UTF16));
28459 NDR_CHECK(ndr_pull_spoolss_DeleteDriverFlags(ndr, NDR_SCALARS, &r->in.delete_flags));
28460 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.version));
28462 if (flags & NDR_OUT) {
28463 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28465 return NDR_ERR_SUCCESS;
28468 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDriverEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDriverEx *r)
28470 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDriverEx");
28472 if (flags & NDR_SET_VALUES) {
28473 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28475 if (flags & NDR_IN) {
28476 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDriverEx");
28478 ndr_print_ptr(ndr, "server", r->in.server);
28480 if (r->in.server) {
28481 ndr_print_string(ndr, "server", r->in.server);
28484 ndr_print_string(ndr, "architecture", r->in.architecture);
28485 ndr_print_string(ndr, "driver", r->in.driver);
28486 ndr_print_spoolss_DeleteDriverFlags(ndr, "delete_flags", r->in.delete_flags);
28487 ndr_print_uint32(ndr, "version", r->in.version);
28490 if (flags & NDR_OUT) {
28491 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDriverEx");
28493 ndr_print_WERROR(ndr, "result", r->out.result);
28499 static enum ndr_err_code ndr_push_spoolss_55(struct ndr_push *ndr, int flags, const struct spoolss_55 *r)
28501 if (flags & NDR_IN) {
28503 if (flags & NDR_OUT) {
28504 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28506 return NDR_ERR_SUCCESS;
28509 static enum ndr_err_code ndr_pull_spoolss_55(struct ndr_pull *ndr, int flags, struct spoolss_55 *r)
28511 if (flags & NDR_IN) {
28513 if (flags & NDR_OUT) {
28514 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28516 return NDR_ERR_SUCCESS;
28519 _PUBLIC_ void ndr_print_spoolss_55(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_55 *r)
28521 ndr_print_struct(ndr, name, "spoolss_55");
28523 if (flags & NDR_SET_VALUES) {
28524 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28526 if (flags & NDR_IN) {
28527 ndr_print_struct(ndr, "in", "spoolss_55");
28531 if (flags & NDR_OUT) {
28532 ndr_print_struct(ndr, "out", "spoolss_55");
28534 ndr_print_WERROR(ndr, "result", r->out.result);
28540 static enum ndr_err_code ndr_push_spoolss_56(struct ndr_push *ndr, int flags, const struct spoolss_56 *r)
28542 if (flags & NDR_IN) {
28544 if (flags & NDR_OUT) {
28545 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28547 return NDR_ERR_SUCCESS;
28550 static enum ndr_err_code ndr_pull_spoolss_56(struct ndr_pull *ndr, int flags, struct spoolss_56 *r)
28552 if (flags & NDR_IN) {
28554 if (flags & NDR_OUT) {
28555 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28557 return NDR_ERR_SUCCESS;
28560 _PUBLIC_ void ndr_print_spoolss_56(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_56 *r)
28562 ndr_print_struct(ndr, name, "spoolss_56");
28564 if (flags & NDR_SET_VALUES) {
28565 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28567 if (flags & NDR_IN) {
28568 ndr_print_struct(ndr, "in", "spoolss_56");
28572 if (flags & NDR_OUT) {
28573 ndr_print_struct(ndr, "out", "spoolss_56");
28575 ndr_print_WERROR(ndr, "result", r->out.result);
28581 static enum ndr_err_code ndr_push_spoolss_57(struct ndr_push *ndr, int flags, const struct spoolss_57 *r)
28583 if (flags & NDR_IN) {
28585 if (flags & NDR_OUT) {
28586 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28588 return NDR_ERR_SUCCESS;
28591 static enum ndr_err_code ndr_pull_spoolss_57(struct ndr_pull *ndr, int flags, struct spoolss_57 *r)
28593 if (flags & NDR_IN) {
28595 if (flags & NDR_OUT) {
28596 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28598 return NDR_ERR_SUCCESS;
28601 _PUBLIC_ void ndr_print_spoolss_57(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_57 *r)
28603 ndr_print_struct(ndr, name, "spoolss_57");
28605 if (flags & NDR_SET_VALUES) {
28606 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28608 if (flags & NDR_IN) {
28609 ndr_print_struct(ndr, "in", "spoolss_57");
28613 if (flags & NDR_OUT) {
28614 ndr_print_struct(ndr, "out", "spoolss_57");
28616 ndr_print_WERROR(ndr, "result", r->out.result);
28622 static enum ndr_err_code ndr_push_spoolss_XcvData(struct ndr_push *ndr, int flags, const struct spoolss_XcvData *r)
28624 if (flags & NDR_IN) {
28625 if (r->in.handle == NULL) {
28626 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28628 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28629 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.function_name, CH_UTF16)));
28630 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28631 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.function_name, CH_UTF16)));
28632 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));
28633 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.in_data));
28634 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.in_data.length));
28635 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.out_data_size));
28636 if (r->in.status_code == NULL) {
28637 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28639 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.status_code));
28641 if (flags & NDR_OUT) {
28642 if (r->out.out_data == NULL) {
28643 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28645 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.out_data_size));
28646 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.out_data, r->in.out_data_size));
28647 if (r->out.needed == NULL) {
28648 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28650 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
28651 if (r->out.status_code == NULL) {
28652 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28654 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.status_code));
28655 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28657 return NDR_ERR_SUCCESS;
28660 static enum ndr_err_code ndr_pull_spoolss_XcvData(struct ndr_pull *ndr, int flags, struct spoolss_XcvData *r)
28662 TALLOC_CTX *_mem_save_handle_0;
28663 TALLOC_CTX *_mem_save_needed_0;
28664 TALLOC_CTX *_mem_save_status_code_0;
28665 if (flags & NDR_IN) {
28666 ZERO_STRUCT(r->out);
28668 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28669 NDR_PULL_ALLOC(ndr, r->in.handle);
28671 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28672 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
28673 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28674 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28675 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.function_name));
28676 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.function_name));
28677 if (ndr_get_array_length(ndr, &r->in.function_name) > ndr_get_array_size(ndr, &r->in.function_name)) {
28678 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));
28680 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.function_name), sizeof(uint16_t)));
28681 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));
28682 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->in.in_data));
28683 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._in_data_length));
28684 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.out_data_size));
28685 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28686 NDR_PULL_ALLOC(ndr, r->in.status_code);
28688 _mem_save_status_code_0 = NDR_PULL_GET_MEM_CTX(ndr);
28689 NDR_PULL_SET_MEM_CTX(ndr, r->in.status_code, LIBNDR_FLAG_REF_ALLOC);
28690 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.status_code));
28691 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_code_0, LIBNDR_FLAG_REF_ALLOC);
28692 NDR_PULL_ALLOC_N(ndr, r->out.out_data, r->in.out_data_size);
28693 memset(r->out.out_data, 0, (r->in.out_data_size) * sizeof(*r->out.out_data));
28694 NDR_PULL_ALLOC(ndr, r->out.needed);
28695 ZERO_STRUCTP(r->out.needed);
28696 NDR_PULL_ALLOC(ndr, r->out.status_code);
28697 *r->out.status_code = *r->in.status_code;
28699 if (flags & NDR_OUT) {
28700 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.out_data));
28701 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28702 NDR_PULL_ALLOC_N(ndr, r->out.out_data, ndr_get_array_size(ndr, &r->out.out_data));
28704 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.out_data, ndr_get_array_size(ndr, &r->out.out_data)));
28705 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28706 NDR_PULL_ALLOC(ndr, r->out.needed);
28708 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
28709 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
28710 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
28711 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
28712 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28713 NDR_PULL_ALLOC(ndr, r->out.status_code);
28715 _mem_save_status_code_0 = NDR_PULL_GET_MEM_CTX(ndr);
28716 NDR_PULL_SET_MEM_CTX(ndr, r->out.status_code, LIBNDR_FLAG_REF_ALLOC);
28717 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.status_code));
28718 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_code_0, LIBNDR_FLAG_REF_ALLOC);
28719 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28720 if (r->out.out_data) {
28721 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.out_data, r->in.out_data_size));
28724 return NDR_ERR_SUCCESS;
28727 _PUBLIC_ void ndr_print_spoolss_XcvData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_XcvData *r)
28729 ndr_print_struct(ndr, name, "spoolss_XcvData");
28731 if (flags & NDR_SET_VALUES) {
28732 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28734 if (flags & NDR_IN) {
28735 ndr_print_struct(ndr, "in", "spoolss_XcvData");
28737 ndr_print_ptr(ndr, "handle", r->in.handle);
28739 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28741 ndr_print_string(ndr, "function_name", r->in.function_name);
28742 ndr_print_DATA_BLOB(ndr, "in_data", r->in.in_data);
28743 ndr_print_uint32(ndr, "_in_data_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->in.in_data.length:r->in._in_data_length);
28744 ndr_print_uint32(ndr, "out_data_size", r->in.out_data_size);
28745 ndr_print_ptr(ndr, "status_code", r->in.status_code);
28747 ndr_print_uint32(ndr, "status_code", *r->in.status_code);
28751 if (flags & NDR_OUT) {
28752 ndr_print_struct(ndr, "out", "spoolss_XcvData");
28754 ndr_print_ptr(ndr, "out_data", r->out.out_data);
28756 ndr_print_array_uint8(ndr, "out_data", r->out.out_data, r->in.out_data_size);
28758 ndr_print_ptr(ndr, "needed", r->out.needed);
28760 ndr_print_uint32(ndr, "needed", *r->out.needed);
28762 ndr_print_ptr(ndr, "status_code", r->out.status_code);
28764 ndr_print_uint32(ndr, "status_code", *r->out.status_code);
28766 ndr_print_WERROR(ndr, "result", r->out.result);
28772 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_AddPrinterDriverEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterDriverEx *r)
28774 if (flags & NDR_IN) {
28775 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
28776 if (r->in.servername) {
28777 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
28778 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28779 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
28780 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
28782 if (r->in.info_ctr == NULL) {
28783 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28785 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
28786 NDR_CHECK(ndr_push_spoolss_AddPrinterDriverExFlags(ndr, NDR_SCALARS, r->in.flags));
28788 if (flags & NDR_OUT) {
28789 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28791 return NDR_ERR_SUCCESS;
28794 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_AddPrinterDriverEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterDriverEx *r)
28796 uint32_t _ptr_servername;
28797 TALLOC_CTX *_mem_save_servername_0;
28798 TALLOC_CTX *_mem_save_info_ctr_0;
28799 if (flags & NDR_IN) {
28800 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
28801 if (_ptr_servername) {
28802 NDR_PULL_ALLOC(ndr, r->in.servername);
28804 r->in.servername = NULL;
28806 if (r->in.servername) {
28807 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
28808 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
28809 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
28810 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
28811 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
28812 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));
28814 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
28815 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
28816 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
28818 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28819 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
28821 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
28822 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
28823 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
28824 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
28825 NDR_CHECK(ndr_pull_spoolss_AddPrinterDriverExFlags(ndr, NDR_SCALARS, &r->in.flags));
28827 if (flags & NDR_OUT) {
28828 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28830 return NDR_ERR_SUCCESS;
28833 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriverEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterDriverEx *r)
28835 ndr_print_struct(ndr, name, "spoolss_AddPrinterDriverEx");
28837 if (flags & NDR_SET_VALUES) {
28838 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28840 if (flags & NDR_IN) {
28841 ndr_print_struct(ndr, "in", "spoolss_AddPrinterDriverEx");
28843 ndr_print_ptr(ndr, "servername", r->in.servername);
28845 if (r->in.servername) {
28846 ndr_print_string(ndr, "servername", r->in.servername);
28849 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
28851 ndr_print_spoolss_AddDriverInfoCtr(ndr, "info_ctr", r->in.info_ctr);
28853 ndr_print_spoolss_AddPrinterDriverExFlags(ndr, "flags", r->in.flags);
28856 if (flags & NDR_OUT) {
28857 ndr_print_struct(ndr, "out", "spoolss_AddPrinterDriverEx");
28859 ndr_print_WERROR(ndr, "result", r->out.result);
28865 static enum ndr_err_code ndr_push_spoolss_5a(struct ndr_push *ndr, int flags, const struct spoolss_5a *r)
28867 if (flags & NDR_IN) {
28869 if (flags & NDR_OUT) {
28870 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28872 return NDR_ERR_SUCCESS;
28875 static enum ndr_err_code ndr_pull_spoolss_5a(struct ndr_pull *ndr, int flags, struct spoolss_5a *r)
28877 if (flags & NDR_IN) {
28879 if (flags & NDR_OUT) {
28880 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28882 return NDR_ERR_SUCCESS;
28885 _PUBLIC_ void ndr_print_spoolss_5a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5a *r)
28887 ndr_print_struct(ndr, name, "spoolss_5a");
28889 if (flags & NDR_SET_VALUES) {
28890 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28892 if (flags & NDR_IN) {
28893 ndr_print_struct(ndr, "in", "spoolss_5a");
28897 if (flags & NDR_OUT) {
28898 ndr_print_struct(ndr, "out", "spoolss_5a");
28900 ndr_print_WERROR(ndr, "result", r->out.result);
28906 static enum ndr_err_code ndr_push_spoolss_5b(struct ndr_push *ndr, int flags, const struct spoolss_5b *r)
28908 if (flags & NDR_IN) {
28910 if (flags & NDR_OUT) {
28911 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28913 return NDR_ERR_SUCCESS;
28916 static enum ndr_err_code ndr_pull_spoolss_5b(struct ndr_pull *ndr, int flags, struct spoolss_5b *r)
28918 if (flags & NDR_IN) {
28920 if (flags & NDR_OUT) {
28921 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28923 return NDR_ERR_SUCCESS;
28926 _PUBLIC_ void ndr_print_spoolss_5b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5b *r)
28928 ndr_print_struct(ndr, name, "spoolss_5b");
28930 if (flags & NDR_SET_VALUES) {
28931 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28933 if (flags & NDR_IN) {
28934 ndr_print_struct(ndr, "in", "spoolss_5b");
28938 if (flags & NDR_OUT) {
28939 ndr_print_struct(ndr, "out", "spoolss_5b");
28941 ndr_print_WERROR(ndr, "result", r->out.result);
28947 static enum ndr_err_code ndr_push_spoolss_5c(struct ndr_push *ndr, int flags, const struct spoolss_5c *r)
28949 if (flags & NDR_IN) {
28951 if (flags & NDR_OUT) {
28952 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28954 return NDR_ERR_SUCCESS;
28957 static enum ndr_err_code ndr_pull_spoolss_5c(struct ndr_pull *ndr, int flags, struct spoolss_5c *r)
28959 if (flags & NDR_IN) {
28961 if (flags & NDR_OUT) {
28962 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28964 return NDR_ERR_SUCCESS;
28967 _PUBLIC_ void ndr_print_spoolss_5c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5c *r)
28969 ndr_print_struct(ndr, name, "spoolss_5c");
28971 if (flags & NDR_SET_VALUES) {
28972 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28974 if (flags & NDR_IN) {
28975 ndr_print_struct(ndr, "in", "spoolss_5c");
28979 if (flags & NDR_OUT) {
28980 ndr_print_struct(ndr, "out", "spoolss_5c");
28982 ndr_print_WERROR(ndr, "result", r->out.result);
28988 static enum ndr_err_code ndr_push_spoolss_5d(struct ndr_push *ndr, int flags, const struct spoolss_5d *r)
28990 if (flags & NDR_IN) {
28992 if (flags & NDR_OUT) {
28993 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28995 return NDR_ERR_SUCCESS;
28998 static enum ndr_err_code ndr_pull_spoolss_5d(struct ndr_pull *ndr, int flags, struct spoolss_5d *r)
29000 if (flags & NDR_IN) {
29002 if (flags & NDR_OUT) {
29003 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29005 return NDR_ERR_SUCCESS;
29008 _PUBLIC_ void ndr_print_spoolss_5d(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5d *r)
29010 ndr_print_struct(ndr, name, "spoolss_5d");
29012 if (flags & NDR_SET_VALUES) {
29013 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29015 if (flags & NDR_IN) {
29016 ndr_print_struct(ndr, "in", "spoolss_5d");
29020 if (flags & NDR_OUT) {
29021 ndr_print_struct(ndr, "out", "spoolss_5d");
29023 ndr_print_WERROR(ndr, "result", r->out.result);
29029 static enum ndr_err_code ndr_push_spoolss_5e(struct ndr_push *ndr, int flags, const struct spoolss_5e *r)
29031 if (flags & NDR_IN) {
29033 if (flags & NDR_OUT) {
29034 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29036 return NDR_ERR_SUCCESS;
29039 static enum ndr_err_code ndr_pull_spoolss_5e(struct ndr_pull *ndr, int flags, struct spoolss_5e *r)
29041 if (flags & NDR_IN) {
29043 if (flags & NDR_OUT) {
29044 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29046 return NDR_ERR_SUCCESS;
29049 _PUBLIC_ void ndr_print_spoolss_5e(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5e *r)
29051 ndr_print_struct(ndr, name, "spoolss_5e");
29053 if (flags & NDR_SET_VALUES) {
29054 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29056 if (flags & NDR_IN) {
29057 ndr_print_struct(ndr, "in", "spoolss_5e");
29061 if (flags & NDR_OUT) {
29062 ndr_print_struct(ndr, "out", "spoolss_5e");
29064 ndr_print_WERROR(ndr, "result", r->out.result);
29070 static enum ndr_err_code ndr_push_spoolss_5f(struct ndr_push *ndr, int flags, const struct spoolss_5f *r)
29072 if (flags & NDR_IN) {
29074 if (flags & NDR_OUT) {
29075 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29077 return NDR_ERR_SUCCESS;
29080 static enum ndr_err_code ndr_pull_spoolss_5f(struct ndr_pull *ndr, int flags, struct spoolss_5f *r)
29082 if (flags & NDR_IN) {
29084 if (flags & NDR_OUT) {
29085 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29087 return NDR_ERR_SUCCESS;
29090 _PUBLIC_ void ndr_print_spoolss_5f(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5f *r)
29092 ndr_print_struct(ndr, name, "spoolss_5f");
29094 if (flags & NDR_SET_VALUES) {
29095 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29097 if (flags & NDR_IN) {
29098 ndr_print_struct(ndr, "in", "spoolss_5f");
29102 if (flags & NDR_OUT) {
29103 ndr_print_struct(ndr, "out", "spoolss_5f");
29105 ndr_print_WERROR(ndr, "result", r->out.result);
29111 static enum ndr_err_code ndr_push_spoolss_60(struct ndr_push *ndr, int flags, const struct spoolss_60 *r)
29113 if (flags & NDR_IN) {
29115 if (flags & NDR_OUT) {
29116 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29118 return NDR_ERR_SUCCESS;
29121 static enum ndr_err_code ndr_pull_spoolss_60(struct ndr_pull *ndr, int flags, struct spoolss_60 *r)
29123 if (flags & NDR_IN) {
29125 if (flags & NDR_OUT) {
29126 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29128 return NDR_ERR_SUCCESS;
29131 _PUBLIC_ void ndr_print_spoolss_60(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_60 *r)
29133 ndr_print_struct(ndr, name, "spoolss_60");
29135 if (flags & NDR_SET_VALUES) {
29136 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29138 if (flags & NDR_IN) {
29139 ndr_print_struct(ndr, "in", "spoolss_60");
29143 if (flags & NDR_OUT) {
29144 ndr_print_struct(ndr, "out", "spoolss_60");
29146 ndr_print_WERROR(ndr, "result", r->out.result);
29152 static enum ndr_err_code ndr_push_spoolss_61(struct ndr_push *ndr, int flags, const struct spoolss_61 *r)
29154 if (flags & NDR_IN) {
29156 if (flags & NDR_OUT) {
29157 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29159 return NDR_ERR_SUCCESS;
29162 static enum ndr_err_code ndr_pull_spoolss_61(struct ndr_pull *ndr, int flags, struct spoolss_61 *r)
29164 if (flags & NDR_IN) {
29166 if (flags & NDR_OUT) {
29167 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29169 return NDR_ERR_SUCCESS;
29172 _PUBLIC_ void ndr_print_spoolss_61(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_61 *r)
29174 ndr_print_struct(ndr, name, "spoolss_61");
29176 if (flags & NDR_SET_VALUES) {
29177 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29179 if (flags & NDR_IN) {
29180 ndr_print_struct(ndr, "in", "spoolss_61");
29184 if (flags & NDR_OUT) {
29185 ndr_print_struct(ndr, "out", "spoolss_61");
29187 ndr_print_WERROR(ndr, "result", r->out.result);
29193 static enum ndr_err_code ndr_push_spoolss_62(struct ndr_push *ndr, int flags, const struct spoolss_62 *r)
29195 if (flags & NDR_IN) {
29197 if (flags & NDR_OUT) {
29198 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29200 return NDR_ERR_SUCCESS;
29203 static enum ndr_err_code ndr_pull_spoolss_62(struct ndr_pull *ndr, int flags, struct spoolss_62 *r)
29205 if (flags & NDR_IN) {
29207 if (flags & NDR_OUT) {
29208 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29210 return NDR_ERR_SUCCESS;
29213 _PUBLIC_ void ndr_print_spoolss_62(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_62 *r)
29215 ndr_print_struct(ndr, name, "spoolss_62");
29217 if (flags & NDR_SET_VALUES) {
29218 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29220 if (flags & NDR_IN) {
29221 ndr_print_struct(ndr, "in", "spoolss_62");
29225 if (flags & NDR_OUT) {
29226 ndr_print_struct(ndr, "out", "spoolss_62");
29228 ndr_print_WERROR(ndr, "result", r->out.result);
29234 static enum ndr_err_code ndr_push_spoolss_63(struct ndr_push *ndr, int flags, const struct spoolss_63 *r)
29236 if (flags & NDR_IN) {
29238 if (flags & NDR_OUT) {
29239 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29241 return NDR_ERR_SUCCESS;
29244 static enum ndr_err_code ndr_pull_spoolss_63(struct ndr_pull *ndr, int flags, struct spoolss_63 *r)
29246 if (flags & NDR_IN) {
29248 if (flags & NDR_OUT) {
29249 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29251 return NDR_ERR_SUCCESS;
29254 _PUBLIC_ void ndr_print_spoolss_63(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_63 *r)
29256 ndr_print_struct(ndr, name, "spoolss_63");
29258 if (flags & NDR_SET_VALUES) {
29259 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29261 if (flags & NDR_IN) {
29262 ndr_print_struct(ndr, "in", "spoolss_63");
29266 if (flags & NDR_OUT) {
29267 ndr_print_struct(ndr, "out", "spoolss_63");
29269 ndr_print_WERROR(ndr, "result", r->out.result);
29275 static enum ndr_err_code ndr_push_spoolss_64(struct ndr_push *ndr, int flags, const struct spoolss_64 *r)
29277 if (flags & NDR_IN) {
29279 if (flags & NDR_OUT) {
29280 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29282 return NDR_ERR_SUCCESS;
29285 static enum ndr_err_code ndr_pull_spoolss_64(struct ndr_pull *ndr, int flags, struct spoolss_64 *r)
29287 if (flags & NDR_IN) {
29289 if (flags & NDR_OUT) {
29290 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29292 return NDR_ERR_SUCCESS;
29295 _PUBLIC_ void ndr_print_spoolss_64(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_64 *r)
29297 ndr_print_struct(ndr, name, "spoolss_64");
29299 if (flags & NDR_SET_VALUES) {
29300 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29302 if (flags & NDR_IN) {
29303 ndr_print_struct(ndr, "in", "spoolss_64");
29307 if (flags & NDR_OUT) {
29308 ndr_print_struct(ndr, "out", "spoolss_64");
29310 ndr_print_WERROR(ndr, "result", r->out.result);
29316 static enum ndr_err_code ndr_push_spoolss_65(struct ndr_push *ndr, int flags, const struct spoolss_65 *r)
29318 if (flags & NDR_IN) {
29320 if (flags & NDR_OUT) {
29321 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29323 return NDR_ERR_SUCCESS;
29326 static enum ndr_err_code ndr_pull_spoolss_65(struct ndr_pull *ndr, int flags, struct spoolss_65 *r)
29328 if (flags & NDR_IN) {
29330 if (flags & NDR_OUT) {
29331 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29333 return NDR_ERR_SUCCESS;
29336 _PUBLIC_ void ndr_print_spoolss_65(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_65 *r)
29338 ndr_print_struct(ndr, name, "spoolss_65");
29340 if (flags & NDR_SET_VALUES) {
29341 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29343 if (flags & NDR_IN) {
29344 ndr_print_struct(ndr, "in", "spoolss_65");
29348 if (flags & NDR_OUT) {
29349 ndr_print_struct(ndr, "out", "spoolss_65");
29351 ndr_print_WERROR(ndr, "result", r->out.result);
29357 static enum ndr_err_code ndr_push_spoolss_GetCorePrinterDrivers(struct ndr_push *ndr, int flags, const struct spoolss_GetCorePrinterDrivers *r)
29359 uint32_t cntr_core_printer_drivers_1;
29360 if (flags & NDR_IN) {
29361 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
29362 if (r->in.servername) {
29363 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
29364 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29365 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
29366 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
29368 if (r->in.architecture == NULL) {
29369 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29371 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
29372 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29373 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
29374 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
29375 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.core_driver_size));
29376 if (r->in.core_driver_dependencies == NULL) {
29377 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29379 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.core_driver_size));
29380 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.core_driver_dependencies, r->in.core_driver_size, sizeof(uint16_t), CH_UTF16));
29381 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.core_printer_driver_count));
29383 if (flags & NDR_OUT) {
29384 if (r->out.core_printer_drivers == NULL) {
29385 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29387 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.core_printer_driver_count));
29388 for (cntr_core_printer_drivers_1 = 0; cntr_core_printer_drivers_1 < r->in.core_printer_driver_count; cntr_core_printer_drivers_1++) {
29389 NDR_CHECK(ndr_push_spoolss_CorePrinterDriver(ndr, NDR_SCALARS, &r->out.core_printer_drivers[cntr_core_printer_drivers_1]));
29391 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29393 return NDR_ERR_SUCCESS;
29396 static enum ndr_err_code ndr_pull_spoolss_GetCorePrinterDrivers(struct ndr_pull *ndr, int flags, struct spoolss_GetCorePrinterDrivers *r)
29398 uint32_t _ptr_servername;
29399 uint32_t cntr_core_printer_drivers_1;
29400 TALLOC_CTX *_mem_save_servername_0;
29401 TALLOC_CTX *_mem_save_core_printer_drivers_1;
29402 if (flags & NDR_IN) {
29403 ZERO_STRUCT(r->out);
29405 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
29406 if (_ptr_servername) {
29407 NDR_PULL_ALLOC(ndr, r->in.servername);
29409 r->in.servername = NULL;
29411 if (r->in.servername) {
29412 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
29413 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
29414 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
29415 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
29416 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
29417 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));
29419 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
29420 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
29421 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
29423 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
29424 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
29425 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
29426 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));
29428 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
29429 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
29430 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.core_driver_size));
29431 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.core_driver_dependencies));
29432 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));
29433 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.core_printer_driver_count));
29434 NDR_PULL_ALLOC_N(ndr, r->out.core_printer_drivers, r->in.core_printer_driver_count);
29435 memset(r->out.core_printer_drivers, 0, (r->in.core_printer_driver_count) * sizeof(*r->out.core_printer_drivers));
29436 if (r->in.core_driver_dependencies) {
29437 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.core_driver_dependencies, r->in.core_driver_size));
29440 if (flags & NDR_OUT) {
29441 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.core_printer_drivers));
29442 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29443 NDR_PULL_ALLOC_N(ndr, r->out.core_printer_drivers, ndr_get_array_size(ndr, &r->out.core_printer_drivers));
29445 _mem_save_core_printer_drivers_1 = NDR_PULL_GET_MEM_CTX(ndr);
29446 NDR_PULL_SET_MEM_CTX(ndr, r->out.core_printer_drivers, 0);
29447 for (cntr_core_printer_drivers_1 = 0; cntr_core_printer_drivers_1 < r->in.core_printer_driver_count; cntr_core_printer_drivers_1++) {
29448 NDR_CHECK(ndr_pull_spoolss_CorePrinterDriver(ndr, NDR_SCALARS, &r->out.core_printer_drivers[cntr_core_printer_drivers_1]));
29450 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_printer_drivers_1, 0);
29451 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29452 if (r->out.core_printer_drivers) {
29453 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.core_printer_drivers, r->in.core_printer_driver_count));
29456 return NDR_ERR_SUCCESS;
29459 _PUBLIC_ void ndr_print_spoolss_GetCorePrinterDrivers(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetCorePrinterDrivers *r)
29461 uint32_t cntr_core_printer_drivers_1;
29462 ndr_print_struct(ndr, name, "spoolss_GetCorePrinterDrivers");
29464 if (flags & NDR_SET_VALUES) {
29465 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29467 if (flags & NDR_IN) {
29468 ndr_print_struct(ndr, "in", "spoolss_GetCorePrinterDrivers");
29470 ndr_print_ptr(ndr, "servername", r->in.servername);
29472 if (r->in.servername) {
29473 ndr_print_string(ndr, "servername", r->in.servername);
29476 ndr_print_ptr(ndr, "architecture", r->in.architecture);
29478 ndr_print_string(ndr, "architecture", r->in.architecture);
29480 ndr_print_uint32(ndr, "core_driver_size", r->in.core_driver_size);
29481 ndr_print_ptr(ndr, "core_driver_dependencies", r->in.core_driver_dependencies);
29483 ndr_print_string(ndr, "core_driver_dependencies", r->in.core_driver_dependencies);
29485 ndr_print_uint32(ndr, "core_printer_driver_count", r->in.core_printer_driver_count);
29488 if (flags & NDR_OUT) {
29489 ndr_print_struct(ndr, "out", "spoolss_GetCorePrinterDrivers");
29491 ndr_print_ptr(ndr, "core_printer_drivers", r->out.core_printer_drivers);
29493 ndr->print(ndr, "%s: ARRAY(%d)", "core_printer_drivers", (int)r->in.core_printer_driver_count);
29495 for (cntr_core_printer_drivers_1=0;cntr_core_printer_drivers_1<r->in.core_printer_driver_count;cntr_core_printer_drivers_1++) {
29497 if (asprintf(&idx_1, "[%d]", cntr_core_printer_drivers_1) != -1) {
29498 ndr_print_spoolss_CorePrinterDriver(ndr, "core_printer_drivers", &r->out.core_printer_drivers[cntr_core_printer_drivers_1]);
29504 ndr_print_WERROR(ndr, "result", r->out.result);
29510 static enum ndr_err_code ndr_push_spoolss_67(struct ndr_push *ndr, int flags, const struct spoolss_67 *r)
29512 if (flags & NDR_IN) {
29514 if (flags & NDR_OUT) {
29515 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29517 return NDR_ERR_SUCCESS;
29520 static enum ndr_err_code ndr_pull_spoolss_67(struct ndr_pull *ndr, int flags, struct spoolss_67 *r)
29522 if (flags & NDR_IN) {
29524 if (flags & NDR_OUT) {
29525 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29527 return NDR_ERR_SUCCESS;
29530 _PUBLIC_ void ndr_print_spoolss_67(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_67 *r)
29532 ndr_print_struct(ndr, name, "spoolss_67");
29534 if (flags & NDR_SET_VALUES) {
29535 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29537 if (flags & NDR_IN) {
29538 ndr_print_struct(ndr, "in", "spoolss_67");
29542 if (flags & NDR_OUT) {
29543 ndr_print_struct(ndr, "out", "spoolss_67");
29545 ndr_print_WERROR(ndr, "result", r->out.result);
29551 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriverPackagePath(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriverPackagePath *r)
29553 if (flags & NDR_IN) {
29554 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
29555 if (r->in.servername) {
29556 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
29557 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29558 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
29559 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
29561 if (r->in.architecture == NULL) {
29562 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29564 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
29565 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29566 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
29567 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
29568 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.language));
29569 if (r->in.language) {
29570 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.language, CH_UTF16)));
29571 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29572 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.language, CH_UTF16)));
29573 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.language, ndr_charset_length(r->in.language, CH_UTF16), sizeof(uint16_t), CH_UTF16));
29575 if (r->in.package_id == NULL) {
29576 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29578 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.package_id, CH_UTF16)));
29579 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29580 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.package_id, CH_UTF16)));
29581 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));
29582 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.driver_package_cab));
29583 if (r->in.driver_package_cab) {
29584 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.driver_package_cab_size));
29585 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver_package_cab, r->in.driver_package_cab_size, sizeof(uint16_t), CH_UTF16));
29587 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.driver_package_cab_size));
29589 if (flags & NDR_OUT) {
29590 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.driver_package_cab));
29591 if (r->out.driver_package_cab) {
29592 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.driver_package_cab_size));
29593 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->out.driver_package_cab, r->in.driver_package_cab_size, sizeof(uint16_t), CH_UTF16));
29595 if (r->out.required == NULL) {
29596 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29598 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.required));
29599 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29601 return NDR_ERR_SUCCESS;
29604 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriverPackagePath(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriverPackagePath *r)
29606 uint32_t _ptr_servername;
29607 uint32_t _ptr_language;
29608 uint32_t _ptr_driver_package_cab;
29609 TALLOC_CTX *_mem_save_servername_0;
29610 TALLOC_CTX *_mem_save_language_0;
29611 TALLOC_CTX *_mem_save_driver_package_cab_0;
29612 TALLOC_CTX *_mem_save_required_0;
29613 if (flags & NDR_IN) {
29614 ZERO_STRUCT(r->out);
29616 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
29617 if (_ptr_servername) {
29618 NDR_PULL_ALLOC(ndr, r->in.servername);
29620 r->in.servername = NULL;
29622 if (r->in.servername) {
29623 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
29624 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
29625 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
29626 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
29627 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
29628 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));
29630 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
29631 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
29632 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
29634 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
29635 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
29636 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
29637 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));
29639 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
29640 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
29641 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_language));
29642 if (_ptr_language) {
29643 NDR_PULL_ALLOC(ndr, r->in.language);
29645 r->in.language = NULL;
29647 if (r->in.language) {
29648 _mem_save_language_0 = NDR_PULL_GET_MEM_CTX(ndr);
29649 NDR_PULL_SET_MEM_CTX(ndr, r->in.language, 0);
29650 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.language));
29651 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.language));
29652 if (ndr_get_array_length(ndr, &r->in.language) > ndr_get_array_size(ndr, &r->in.language)) {
29653 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));
29655 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.language), sizeof(uint16_t)));
29656 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.language, ndr_get_array_length(ndr, &r->in.language), sizeof(uint16_t), CH_UTF16));
29657 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_language_0, 0);
29659 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.package_id));
29660 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.package_id));
29661 if (ndr_get_array_length(ndr, &r->in.package_id) > ndr_get_array_size(ndr, &r->in.package_id)) {
29662 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));
29664 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.package_id), sizeof(uint16_t)));
29665 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));
29666 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_package_cab));
29667 if (_ptr_driver_package_cab) {
29668 NDR_PULL_ALLOC(ndr, r->in.driver_package_cab);
29670 r->in.driver_package_cab = NULL;
29672 if (r->in.driver_package_cab) {
29673 _mem_save_driver_package_cab_0 = NDR_PULL_GET_MEM_CTX(ndr);
29674 NDR_PULL_SET_MEM_CTX(ndr, r->in.driver_package_cab, 0);
29675 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver_package_cab));
29676 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));
29677 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_package_cab_0, 0);
29679 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.driver_package_cab_size));
29680 NDR_PULL_ALLOC(ndr, r->out.required);
29681 ZERO_STRUCTP(r->out.required);
29682 if (r->in.driver_package_cab) {
29683 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.driver_package_cab, r->in.driver_package_cab_size));
29686 if (flags & NDR_OUT) {
29687 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_package_cab));
29688 if (_ptr_driver_package_cab) {
29689 NDR_PULL_ALLOC(ndr, r->out.driver_package_cab);
29691 r->out.driver_package_cab = NULL;
29693 if (r->out.driver_package_cab) {
29694 _mem_save_driver_package_cab_0 = NDR_PULL_GET_MEM_CTX(ndr);
29695 NDR_PULL_SET_MEM_CTX(ndr, r->out.driver_package_cab, 0);
29696 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.driver_package_cab));
29697 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));
29698 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_package_cab_0, 0);
29700 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29701 NDR_PULL_ALLOC(ndr, r->out.required);
29703 _mem_save_required_0 = NDR_PULL_GET_MEM_CTX(ndr);
29704 NDR_PULL_SET_MEM_CTX(ndr, r->out.required, LIBNDR_FLAG_REF_ALLOC);
29705 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.required));
29706 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_required_0, LIBNDR_FLAG_REF_ALLOC);
29707 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29708 if (r->out.driver_package_cab) {
29709 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.driver_package_cab, r->in.driver_package_cab_size));
29712 return NDR_ERR_SUCCESS;
29715 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriverPackagePath(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriverPackagePath *r)
29717 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriverPackagePath");
29719 if (flags & NDR_SET_VALUES) {
29720 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29722 if (flags & NDR_IN) {
29723 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriverPackagePath");
29725 ndr_print_ptr(ndr, "servername", r->in.servername);
29727 if (r->in.servername) {
29728 ndr_print_string(ndr, "servername", r->in.servername);
29731 ndr_print_ptr(ndr, "architecture", r->in.architecture);
29733 ndr_print_string(ndr, "architecture", r->in.architecture);
29735 ndr_print_ptr(ndr, "language", r->in.language);
29737 if (r->in.language) {
29738 ndr_print_string(ndr, "language", r->in.language);
29741 ndr_print_ptr(ndr, "package_id", r->in.package_id);
29743 ndr_print_string(ndr, "package_id", r->in.package_id);
29745 ndr_print_ptr(ndr, "driver_package_cab", r->in.driver_package_cab);
29747 if (r->in.driver_package_cab) {
29748 ndr_print_string(ndr, "driver_package_cab", r->in.driver_package_cab);
29751 ndr_print_uint32(ndr, "driver_package_cab_size", r->in.driver_package_cab_size);
29754 if (flags & NDR_OUT) {
29755 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriverPackagePath");
29757 ndr_print_ptr(ndr, "driver_package_cab", r->out.driver_package_cab);
29759 if (r->out.driver_package_cab) {
29760 ndr_print_string(ndr, "driver_package_cab", r->out.driver_package_cab);
29763 ndr_print_ptr(ndr, "required", r->out.required);
29765 ndr_print_uint32(ndr, "required", *r->out.required);
29767 ndr_print_WERROR(ndr, "result", r->out.result);
29773 static enum ndr_err_code ndr_push_spoolss_69(struct ndr_push *ndr, int flags, const struct spoolss_69 *r)
29775 if (flags & NDR_IN) {
29777 if (flags & NDR_OUT) {
29778 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29780 return NDR_ERR_SUCCESS;
29783 static enum ndr_err_code ndr_pull_spoolss_69(struct ndr_pull *ndr, int flags, struct spoolss_69 *r)
29785 if (flags & NDR_IN) {
29787 if (flags & NDR_OUT) {
29788 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29790 return NDR_ERR_SUCCESS;
29793 _PUBLIC_ void ndr_print_spoolss_69(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_69 *r)
29795 ndr_print_struct(ndr, name, "spoolss_69");
29797 if (flags & NDR_SET_VALUES) {
29798 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29800 if (flags & NDR_IN) {
29801 ndr_print_struct(ndr, "in", "spoolss_69");
29805 if (flags & NDR_OUT) {
29806 ndr_print_struct(ndr, "out", "spoolss_69");
29808 ndr_print_WERROR(ndr, "result", r->out.result);
29814 static enum ndr_err_code ndr_push_spoolss_6a(struct ndr_push *ndr, int flags, const struct spoolss_6a *r)
29816 if (flags & NDR_IN) {
29818 if (flags & NDR_OUT) {
29819 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29821 return NDR_ERR_SUCCESS;
29824 static enum ndr_err_code ndr_pull_spoolss_6a(struct ndr_pull *ndr, int flags, struct spoolss_6a *r)
29826 if (flags & NDR_IN) {
29828 if (flags & NDR_OUT) {
29829 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29831 return NDR_ERR_SUCCESS;
29834 _PUBLIC_ void ndr_print_spoolss_6a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_6a *r)
29836 ndr_print_struct(ndr, name, "spoolss_6a");
29838 if (flags & NDR_SET_VALUES) {
29839 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29841 if (flags & NDR_IN) {
29842 ndr_print_struct(ndr, "in", "spoolss_6a");
29846 if (flags & NDR_OUT) {
29847 ndr_print_struct(ndr, "out", "spoolss_6a");
29849 ndr_print_WERROR(ndr, "result", r->out.result);
29855 static enum ndr_err_code ndr_push_spoolss_6b(struct ndr_push *ndr, int flags, const struct spoolss_6b *r)
29857 if (flags & NDR_IN) {
29859 if (flags & NDR_OUT) {
29860 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29862 return NDR_ERR_SUCCESS;
29865 static enum ndr_err_code ndr_pull_spoolss_6b(struct ndr_pull *ndr, int flags, struct spoolss_6b *r)
29867 if (flags & NDR_IN) {
29869 if (flags & NDR_OUT) {
29870 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29872 return NDR_ERR_SUCCESS;
29875 _PUBLIC_ void ndr_print_spoolss_6b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_6b *r)
29877 ndr_print_struct(ndr, name, "spoolss_6b");
29879 if (flags & NDR_SET_VALUES) {
29880 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29882 if (flags & NDR_IN) {
29883 ndr_print_struct(ndr, "in", "spoolss_6b");
29887 if (flags & NDR_OUT) {
29888 ndr_print_struct(ndr, "out", "spoolss_6b");
29890 ndr_print_WERROR(ndr, "result", r->out.result);
29896 static enum ndr_err_code ndr_push_spoolss_6c(struct ndr_push *ndr, int flags, const struct spoolss_6c *r)
29898 if (flags & NDR_IN) {
29900 if (flags & NDR_OUT) {
29901 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29903 return NDR_ERR_SUCCESS;
29906 static enum ndr_err_code ndr_pull_spoolss_6c(struct ndr_pull *ndr, int flags, struct spoolss_6c *r)
29908 if (flags & NDR_IN) {
29910 if (flags & NDR_OUT) {
29911 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29913 return NDR_ERR_SUCCESS;
29916 _PUBLIC_ void ndr_print_spoolss_6c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_6c *r)
29918 ndr_print_struct(ndr, name, "spoolss_6c");
29920 if (flags & NDR_SET_VALUES) {
29921 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29923 if (flags & NDR_IN) {
29924 ndr_print_struct(ndr, "in", "spoolss_6c");
29928 if (flags & NDR_OUT) {
29929 ndr_print_struct(ndr, "out", "spoolss_6c");
29931 ndr_print_WERROR(ndr, "result", r->out.result);
29937 static enum ndr_err_code ndr_push_spoolss_6d(struct ndr_push *ndr, int flags, const struct spoolss_6d *r)
29939 if (flags & NDR_IN) {
29941 if (flags & NDR_OUT) {
29942 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29944 return NDR_ERR_SUCCESS;
29947 static enum ndr_err_code ndr_pull_spoolss_6d(struct ndr_pull *ndr, int flags, struct spoolss_6d *r)
29949 if (flags & NDR_IN) {
29951 if (flags & NDR_OUT) {
29952 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29954 return NDR_ERR_SUCCESS;
29957 _PUBLIC_ void ndr_print_spoolss_6d(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_6d *r)
29959 ndr_print_struct(ndr, name, "spoolss_6d");
29961 if (flags & NDR_SET_VALUES) {
29962 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29964 if (flags & NDR_IN) {
29965 ndr_print_struct(ndr, "in", "spoolss_6d");
29969 if (flags & NDR_OUT) {
29970 ndr_print_struct(ndr, "out", "spoolss_6d");
29972 ndr_print_WERROR(ndr, "result", r->out.result);
29978 static const struct ndr_interface_call spoolss_calls[] = {
29980 "spoolss_EnumPrinters",
29981 sizeof(struct spoolss_EnumPrinters),
29982 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinters,
29983 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinters,
29984 (ndr_print_function_t) ndr_print_spoolss_EnumPrinters,
29988 "spoolss_OpenPrinter",
29989 sizeof(struct spoolss_OpenPrinter),
29990 (ndr_push_flags_fn_t) ndr_push_spoolss_OpenPrinter,
29991 (ndr_pull_flags_fn_t) ndr_pull_spoolss_OpenPrinter,
29992 (ndr_print_function_t) ndr_print_spoolss_OpenPrinter,
29997 sizeof(struct spoolss_SetJob),
29998 (ndr_push_flags_fn_t) ndr_push_spoolss_SetJob,
29999 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetJob,
30000 (ndr_print_function_t) ndr_print_spoolss_SetJob,
30005 sizeof(struct spoolss_GetJob),
30006 (ndr_push_flags_fn_t) ndr_push_spoolss_GetJob,
30007 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetJob,
30008 (ndr_print_function_t) ndr_print_spoolss_GetJob,
30012 "spoolss_EnumJobs",
30013 sizeof(struct spoolss_EnumJobs),
30014 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumJobs,
30015 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumJobs,
30016 (ndr_print_function_t) ndr_print_spoolss_EnumJobs,
30020 "spoolss_AddPrinter",
30021 sizeof(struct spoolss_AddPrinter),
30022 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinter,
30023 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinter,
30024 (ndr_print_function_t) ndr_print_spoolss_AddPrinter,
30028 "spoolss_DeletePrinter",
30029 sizeof(struct spoolss_DeletePrinter),
30030 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinter,
30031 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinter,
30032 (ndr_print_function_t) ndr_print_spoolss_DeletePrinter,
30036 "spoolss_SetPrinter",
30037 sizeof(struct spoolss_SetPrinter),
30038 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinter,
30039 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinter,
30040 (ndr_print_function_t) ndr_print_spoolss_SetPrinter,
30044 "spoolss_GetPrinter",
30045 sizeof(struct spoolss_GetPrinter),
30046 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinter,
30047 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinter,
30048 (ndr_print_function_t) ndr_print_spoolss_GetPrinter,
30052 "spoolss_AddPrinterDriver",
30053 sizeof(struct spoolss_AddPrinterDriver),
30054 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterDriver,
30055 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterDriver,
30056 (ndr_print_function_t) ndr_print_spoolss_AddPrinterDriver,
30060 "spoolss_EnumPrinterDrivers",
30061 sizeof(struct spoolss_EnumPrinterDrivers),
30062 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterDrivers,
30063 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterDrivers,
30064 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterDrivers,
30068 "spoolss_GetPrinterDriver",
30069 sizeof(struct spoolss_GetPrinterDriver),
30070 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriver,
30071 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriver,
30072 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriver,
30076 "spoolss_GetPrinterDriverDirectory",
30077 sizeof(struct spoolss_GetPrinterDriverDirectory),
30078 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriverDirectory,
30079 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriverDirectory,
30080 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriverDirectory,
30084 "spoolss_DeletePrinterDriver",
30085 sizeof(struct spoolss_DeletePrinterDriver),
30086 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDriver,
30087 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDriver,
30088 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDriver,
30092 "spoolss_AddPrintProcessor",
30093 sizeof(struct spoolss_AddPrintProcessor),
30094 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrintProcessor,
30095 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrintProcessor,
30096 (ndr_print_function_t) ndr_print_spoolss_AddPrintProcessor,
30100 "spoolss_EnumPrintProcessors",
30101 sizeof(struct spoolss_EnumPrintProcessors),
30102 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrintProcessors,
30103 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrintProcessors,
30104 (ndr_print_function_t) ndr_print_spoolss_EnumPrintProcessors,
30108 "spoolss_GetPrintProcessorDirectory",
30109 sizeof(struct spoolss_GetPrintProcessorDirectory),
30110 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrintProcessorDirectory,
30111 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrintProcessorDirectory,
30112 (ndr_print_function_t) ndr_print_spoolss_GetPrintProcessorDirectory,
30116 "spoolss_StartDocPrinter",
30117 sizeof(struct spoolss_StartDocPrinter),
30118 (ndr_push_flags_fn_t) ndr_push_spoolss_StartDocPrinter,
30119 (ndr_pull_flags_fn_t) ndr_pull_spoolss_StartDocPrinter,
30120 (ndr_print_function_t) ndr_print_spoolss_StartDocPrinter,
30124 "spoolss_StartPagePrinter",
30125 sizeof(struct spoolss_StartPagePrinter),
30126 (ndr_push_flags_fn_t) ndr_push_spoolss_StartPagePrinter,
30127 (ndr_pull_flags_fn_t) ndr_pull_spoolss_StartPagePrinter,
30128 (ndr_print_function_t) ndr_print_spoolss_StartPagePrinter,
30132 "spoolss_WritePrinter",
30133 sizeof(struct spoolss_WritePrinter),
30134 (ndr_push_flags_fn_t) ndr_push_spoolss_WritePrinter,
30135 (ndr_pull_flags_fn_t) ndr_pull_spoolss_WritePrinter,
30136 (ndr_print_function_t) ndr_print_spoolss_WritePrinter,
30140 "spoolss_EndPagePrinter",
30141 sizeof(struct spoolss_EndPagePrinter),
30142 (ndr_push_flags_fn_t) ndr_push_spoolss_EndPagePrinter,
30143 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EndPagePrinter,
30144 (ndr_print_function_t) ndr_print_spoolss_EndPagePrinter,
30148 "spoolss_AbortPrinter",
30149 sizeof(struct spoolss_AbortPrinter),
30150 (ndr_push_flags_fn_t) ndr_push_spoolss_AbortPrinter,
30151 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AbortPrinter,
30152 (ndr_print_function_t) ndr_print_spoolss_AbortPrinter,
30156 "spoolss_ReadPrinter",
30157 sizeof(struct spoolss_ReadPrinter),
30158 (ndr_push_flags_fn_t) ndr_push_spoolss_ReadPrinter,
30159 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReadPrinter,
30160 (ndr_print_function_t) ndr_print_spoolss_ReadPrinter,
30164 "spoolss_EndDocPrinter",
30165 sizeof(struct spoolss_EndDocPrinter),
30166 (ndr_push_flags_fn_t) ndr_push_spoolss_EndDocPrinter,
30167 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EndDocPrinter,
30168 (ndr_print_function_t) ndr_print_spoolss_EndDocPrinter,
30173 sizeof(struct spoolss_AddJob),
30174 (ndr_push_flags_fn_t) ndr_push_spoolss_AddJob,
30175 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddJob,
30176 (ndr_print_function_t) ndr_print_spoolss_AddJob,
30180 "spoolss_ScheduleJob",
30181 sizeof(struct spoolss_ScheduleJob),
30182 (ndr_push_flags_fn_t) ndr_push_spoolss_ScheduleJob,
30183 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ScheduleJob,
30184 (ndr_print_function_t) ndr_print_spoolss_ScheduleJob,
30188 "spoolss_GetPrinterData",
30189 sizeof(struct spoolss_GetPrinterData),
30190 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterData,
30191 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterData,
30192 (ndr_print_function_t) ndr_print_spoolss_GetPrinterData,
30196 "spoolss_SetPrinterData",
30197 sizeof(struct spoolss_SetPrinterData),
30198 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinterData,
30199 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinterData,
30200 (ndr_print_function_t) ndr_print_spoolss_SetPrinterData,
30204 "spoolss_WaitForPrinterChange",
30205 sizeof(struct spoolss_WaitForPrinterChange),
30206 (ndr_push_flags_fn_t) ndr_push_spoolss_WaitForPrinterChange,
30207 (ndr_pull_flags_fn_t) ndr_pull_spoolss_WaitForPrinterChange,
30208 (ndr_print_function_t) ndr_print_spoolss_WaitForPrinterChange,
30212 "spoolss_ClosePrinter",
30213 sizeof(struct spoolss_ClosePrinter),
30214 (ndr_push_flags_fn_t) ndr_push_spoolss_ClosePrinter,
30215 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ClosePrinter,
30216 (ndr_print_function_t) ndr_print_spoolss_ClosePrinter,
30221 sizeof(struct spoolss_AddForm),
30222 (ndr_push_flags_fn_t) ndr_push_spoolss_AddForm,
30223 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddForm,
30224 (ndr_print_function_t) ndr_print_spoolss_AddForm,
30228 "spoolss_DeleteForm",
30229 sizeof(struct spoolss_DeleteForm),
30230 (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteForm,
30231 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteForm,
30232 (ndr_print_function_t) ndr_print_spoolss_DeleteForm,
30237 sizeof(struct spoolss_GetForm),
30238 (ndr_push_flags_fn_t) ndr_push_spoolss_GetForm,
30239 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetForm,
30240 (ndr_print_function_t) ndr_print_spoolss_GetForm,
30245 sizeof(struct spoolss_SetForm),
30246 (ndr_push_flags_fn_t) ndr_push_spoolss_SetForm,
30247 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetForm,
30248 (ndr_print_function_t) ndr_print_spoolss_SetForm,
30252 "spoolss_EnumForms",
30253 sizeof(struct spoolss_EnumForms),
30254 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumForms,
30255 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumForms,
30256 (ndr_print_function_t) ndr_print_spoolss_EnumForms,
30260 "spoolss_EnumPorts",
30261 sizeof(struct spoolss_EnumPorts),
30262 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPorts,
30263 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPorts,
30264 (ndr_print_function_t) ndr_print_spoolss_EnumPorts,
30268 "spoolss_EnumMonitors",
30269 sizeof(struct spoolss_EnumMonitors),
30270 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumMonitors,
30271 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumMonitors,
30272 (ndr_print_function_t) ndr_print_spoolss_EnumMonitors,
30277 sizeof(struct spoolss_AddPort),
30278 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPort,
30279 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPort,
30280 (ndr_print_function_t) ndr_print_spoolss_AddPort,
30284 "spoolss_ConfigurePort",
30285 sizeof(struct spoolss_ConfigurePort),
30286 (ndr_push_flags_fn_t) ndr_push_spoolss_ConfigurePort,
30287 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ConfigurePort,
30288 (ndr_print_function_t) ndr_print_spoolss_ConfigurePort,
30292 "spoolss_DeletePort",
30293 sizeof(struct spoolss_DeletePort),
30294 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePort,
30295 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePort,
30296 (ndr_print_function_t) ndr_print_spoolss_DeletePort,
30300 "spoolss_CreatePrinterIC",
30301 sizeof(struct spoolss_CreatePrinterIC),
30302 (ndr_push_flags_fn_t) ndr_push_spoolss_CreatePrinterIC,
30303 (ndr_pull_flags_fn_t) ndr_pull_spoolss_CreatePrinterIC,
30304 (ndr_print_function_t) ndr_print_spoolss_CreatePrinterIC,
30308 "spoolss_PlayGDIScriptOnPrinterIC",
30309 sizeof(struct spoolss_PlayGDIScriptOnPrinterIC),
30310 (ndr_push_flags_fn_t) ndr_push_spoolss_PlayGDIScriptOnPrinterIC,
30311 (ndr_pull_flags_fn_t) ndr_pull_spoolss_PlayGDIScriptOnPrinterIC,
30312 (ndr_print_function_t) ndr_print_spoolss_PlayGDIScriptOnPrinterIC,
30316 "spoolss_DeletePrinterIC",
30317 sizeof(struct spoolss_DeletePrinterIC),
30318 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterIC,
30319 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterIC,
30320 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterIC,
30324 "spoolss_AddPrinterConnection",
30325 sizeof(struct spoolss_AddPrinterConnection),
30326 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterConnection,
30327 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterConnection,
30328 (ndr_print_function_t) ndr_print_spoolss_AddPrinterConnection,
30332 "spoolss_DeletePrinterConnection",
30333 sizeof(struct spoolss_DeletePrinterConnection),
30334 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterConnection,
30335 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterConnection,
30336 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterConnection,
30340 "spoolss_PrinterMessageBox",
30341 sizeof(struct spoolss_PrinterMessageBox),
30342 (ndr_push_flags_fn_t) ndr_push_spoolss_PrinterMessageBox,
30343 (ndr_pull_flags_fn_t) ndr_pull_spoolss_PrinterMessageBox,
30344 (ndr_print_function_t) ndr_print_spoolss_PrinterMessageBox,
30348 "spoolss_AddMonitor",
30349 sizeof(struct spoolss_AddMonitor),
30350 (ndr_push_flags_fn_t) ndr_push_spoolss_AddMonitor,
30351 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddMonitor,
30352 (ndr_print_function_t) ndr_print_spoolss_AddMonitor,
30356 "spoolss_DeleteMonitor",
30357 sizeof(struct spoolss_DeleteMonitor),
30358 (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteMonitor,
30359 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteMonitor,
30360 (ndr_print_function_t) ndr_print_spoolss_DeleteMonitor,
30364 "spoolss_DeletePrintProcessor",
30365 sizeof(struct spoolss_DeletePrintProcessor),
30366 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrintProcessor,
30367 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrintProcessor,
30368 (ndr_print_function_t) ndr_print_spoolss_DeletePrintProcessor,
30372 "spoolss_AddPrintProvidor",
30373 sizeof(struct spoolss_AddPrintProvidor),
30374 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrintProvidor,
30375 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrintProvidor,
30376 (ndr_print_function_t) ndr_print_spoolss_AddPrintProvidor,
30380 "spoolss_DeletePrintProvidor",
30381 sizeof(struct spoolss_DeletePrintProvidor),
30382 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrintProvidor,
30383 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrintProvidor,
30384 (ndr_print_function_t) ndr_print_spoolss_DeletePrintProvidor,
30388 "spoolss_EnumPrintProcDataTypes",
30389 sizeof(struct spoolss_EnumPrintProcDataTypes),
30390 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrintProcDataTypes,
30391 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrintProcDataTypes,
30392 (ndr_print_function_t) ndr_print_spoolss_EnumPrintProcDataTypes,
30396 "spoolss_ResetPrinter",
30397 sizeof(struct spoolss_ResetPrinter),
30398 (ndr_push_flags_fn_t) ndr_push_spoolss_ResetPrinter,
30399 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ResetPrinter,
30400 (ndr_print_function_t) ndr_print_spoolss_ResetPrinter,
30404 "spoolss_GetPrinterDriver2",
30405 sizeof(struct spoolss_GetPrinterDriver2),
30406 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriver2,
30407 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriver2,
30408 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriver2,
30412 "spoolss_FindFirstPrinterChangeNotification",
30413 sizeof(struct spoolss_FindFirstPrinterChangeNotification),
30414 (ndr_push_flags_fn_t) ndr_push_spoolss_FindFirstPrinterChangeNotification,
30415 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindFirstPrinterChangeNotification,
30416 (ndr_print_function_t) ndr_print_spoolss_FindFirstPrinterChangeNotification,
30420 "spoolss_FindNextPrinterChangeNotification",
30421 sizeof(struct spoolss_FindNextPrinterChangeNotification),
30422 (ndr_push_flags_fn_t) ndr_push_spoolss_FindNextPrinterChangeNotification,
30423 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindNextPrinterChangeNotification,
30424 (ndr_print_function_t) ndr_print_spoolss_FindNextPrinterChangeNotification,
30428 "spoolss_FindClosePrinterNotify",
30429 sizeof(struct spoolss_FindClosePrinterNotify),
30430 (ndr_push_flags_fn_t) ndr_push_spoolss_FindClosePrinterNotify,
30431 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindClosePrinterNotify,
30432 (ndr_print_function_t) ndr_print_spoolss_FindClosePrinterNotify,
30436 "spoolss_RouterFindFirstPrinterChangeNotificationOld",
30437 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotificationOld),
30438 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld,
30439 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld,
30440 (ndr_print_function_t) ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld,
30444 "spoolss_ReplyOpenPrinter",
30445 sizeof(struct spoolss_ReplyOpenPrinter),
30446 (ndr_push_flags_fn_t) ndr_push_spoolss_ReplyOpenPrinter,
30447 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReplyOpenPrinter,
30448 (ndr_print_function_t) ndr_print_spoolss_ReplyOpenPrinter,
30452 "spoolss_RouterReplyPrinter",
30453 sizeof(struct spoolss_RouterReplyPrinter),
30454 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterReplyPrinter,
30455 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterReplyPrinter,
30456 (ndr_print_function_t) ndr_print_spoolss_RouterReplyPrinter,
30460 "spoolss_ReplyClosePrinter",
30461 sizeof(struct spoolss_ReplyClosePrinter),
30462 (ndr_push_flags_fn_t) ndr_push_spoolss_ReplyClosePrinter,
30463 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReplyClosePrinter,
30464 (ndr_print_function_t) ndr_print_spoolss_ReplyClosePrinter,
30468 "spoolss_AddPortEx",
30469 sizeof(struct spoolss_AddPortEx),
30470 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPortEx,
30471 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPortEx,
30472 (ndr_print_function_t) ndr_print_spoolss_AddPortEx,
30476 "spoolss_RouterFindFirstPrinterChangeNotification",
30477 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotification),
30478 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterFindFirstPrinterChangeNotification,
30479 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification,
30480 (ndr_print_function_t) ndr_print_spoolss_RouterFindFirstPrinterChangeNotification,
30484 "spoolss_SpoolerInit",
30485 sizeof(struct spoolss_SpoolerInit),
30486 (ndr_push_flags_fn_t) ndr_push_spoolss_SpoolerInit,
30487 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SpoolerInit,
30488 (ndr_print_function_t) ndr_print_spoolss_SpoolerInit,
30492 "spoolss_ResetPrinterEx",
30493 sizeof(struct spoolss_ResetPrinterEx),
30494 (ndr_push_flags_fn_t) ndr_push_spoolss_ResetPrinterEx,
30495 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ResetPrinterEx,
30496 (ndr_print_function_t) ndr_print_spoolss_ResetPrinterEx,
30500 "spoolss_RemoteFindFirstPrinterChangeNotifyEx",
30501 sizeof(struct spoolss_RemoteFindFirstPrinterChangeNotifyEx),
30502 (ndr_push_flags_fn_t) ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
30503 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
30504 (ndr_print_function_t) ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
30508 "spoolss_RouterReplyPrinterEx",
30509 sizeof(struct spoolss_RouterReplyPrinterEx),
30510 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterReplyPrinterEx,
30511 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterReplyPrinterEx,
30512 (ndr_print_function_t) ndr_print_spoolss_RouterReplyPrinterEx,
30516 "spoolss_RouterRefreshPrinterChangeNotify",
30517 sizeof(struct spoolss_RouterRefreshPrinterChangeNotify),
30518 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterRefreshPrinterChangeNotify,
30519 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterRefreshPrinterChangeNotify,
30520 (ndr_print_function_t) ndr_print_spoolss_RouterRefreshPrinterChangeNotify,
30525 sizeof(struct spoolss_44),
30526 (ndr_push_flags_fn_t) ndr_push_spoolss_44,
30527 (ndr_pull_flags_fn_t) ndr_pull_spoolss_44,
30528 (ndr_print_function_t) ndr_print_spoolss_44,
30532 "spoolss_OpenPrinterEx",
30533 sizeof(struct spoolss_OpenPrinterEx),
30534 (ndr_push_flags_fn_t) ndr_push_spoolss_OpenPrinterEx,
30535 (ndr_pull_flags_fn_t) ndr_pull_spoolss_OpenPrinterEx,
30536 (ndr_print_function_t) ndr_print_spoolss_OpenPrinterEx,
30540 "spoolss_AddPrinterEx",
30541 sizeof(struct spoolss_AddPrinterEx),
30542 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterEx,
30543 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterEx,
30544 (ndr_print_function_t) ndr_print_spoolss_AddPrinterEx,
30549 sizeof(struct spoolss_47),
30550 (ndr_push_flags_fn_t) ndr_push_spoolss_47,
30551 (ndr_pull_flags_fn_t) ndr_pull_spoolss_47,
30552 (ndr_print_function_t) ndr_print_spoolss_47,
30556 "spoolss_EnumPrinterData",
30557 sizeof(struct spoolss_EnumPrinterData),
30558 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterData,
30559 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterData,
30560 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterData,
30564 "spoolss_DeletePrinterData",
30565 sizeof(struct spoolss_DeletePrinterData),
30566 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterData,
30567 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterData,
30568 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterData,
30573 sizeof(struct spoolss_4a),
30574 (ndr_push_flags_fn_t) ndr_push_spoolss_4a,
30575 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4a,
30576 (ndr_print_function_t) ndr_print_spoolss_4a,
30581 sizeof(struct spoolss_4b),
30582 (ndr_push_flags_fn_t) ndr_push_spoolss_4b,
30583 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4b,
30584 (ndr_print_function_t) ndr_print_spoolss_4b,
30589 sizeof(struct spoolss_4c),
30590 (ndr_push_flags_fn_t) ndr_push_spoolss_4c,
30591 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4c,
30592 (ndr_print_function_t) ndr_print_spoolss_4c,
30596 "spoolss_SetPrinterDataEx",
30597 sizeof(struct spoolss_SetPrinterDataEx),
30598 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinterDataEx,
30599 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinterDataEx,
30600 (ndr_print_function_t) ndr_print_spoolss_SetPrinterDataEx,
30604 "spoolss_GetPrinterDataEx",
30605 sizeof(struct spoolss_GetPrinterDataEx),
30606 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDataEx,
30607 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDataEx,
30608 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDataEx,
30612 "spoolss_EnumPrinterDataEx",
30613 sizeof(struct spoolss_EnumPrinterDataEx),
30614 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterDataEx,
30615 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterDataEx,
30616 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterDataEx,
30620 "spoolss_EnumPrinterKey",
30621 sizeof(struct spoolss_EnumPrinterKey),
30622 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterKey,
30623 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterKey,
30624 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterKey,
30628 "spoolss_DeletePrinterDataEx",
30629 sizeof(struct spoolss_DeletePrinterDataEx),
30630 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDataEx,
30631 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDataEx,
30632 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDataEx,
30636 "spoolss_DeletePrinterKey",
30637 sizeof(struct spoolss_DeletePrinterKey),
30638 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterKey,
30639 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterKey,
30640 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterKey,
30645 sizeof(struct spoolss_53),
30646 (ndr_push_flags_fn_t) ndr_push_spoolss_53,
30647 (ndr_pull_flags_fn_t) ndr_pull_spoolss_53,
30648 (ndr_print_function_t) ndr_print_spoolss_53,
30652 "spoolss_DeletePrinterDriverEx",
30653 sizeof(struct spoolss_DeletePrinterDriverEx),
30654 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDriverEx,
30655 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDriverEx,
30656 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDriverEx,
30661 sizeof(struct spoolss_55),
30662 (ndr_push_flags_fn_t) ndr_push_spoolss_55,
30663 (ndr_pull_flags_fn_t) ndr_pull_spoolss_55,
30664 (ndr_print_function_t) ndr_print_spoolss_55,
30669 sizeof(struct spoolss_56),
30670 (ndr_push_flags_fn_t) ndr_push_spoolss_56,
30671 (ndr_pull_flags_fn_t) ndr_pull_spoolss_56,
30672 (ndr_print_function_t) ndr_print_spoolss_56,
30677 sizeof(struct spoolss_57),
30678 (ndr_push_flags_fn_t) ndr_push_spoolss_57,
30679 (ndr_pull_flags_fn_t) ndr_pull_spoolss_57,
30680 (ndr_print_function_t) ndr_print_spoolss_57,
30685 sizeof(struct spoolss_XcvData),
30686 (ndr_push_flags_fn_t) ndr_push_spoolss_XcvData,
30687 (ndr_pull_flags_fn_t) ndr_pull_spoolss_XcvData,
30688 (ndr_print_function_t) ndr_print_spoolss_XcvData,
30692 "spoolss_AddPrinterDriverEx",
30693 sizeof(struct spoolss_AddPrinterDriverEx),
30694 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterDriverEx,
30695 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterDriverEx,
30696 (ndr_print_function_t) ndr_print_spoolss_AddPrinterDriverEx,
30701 sizeof(struct spoolss_5a),
30702 (ndr_push_flags_fn_t) ndr_push_spoolss_5a,
30703 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5a,
30704 (ndr_print_function_t) ndr_print_spoolss_5a,
30709 sizeof(struct spoolss_5b),
30710 (ndr_push_flags_fn_t) ndr_push_spoolss_5b,
30711 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5b,
30712 (ndr_print_function_t) ndr_print_spoolss_5b,
30717 sizeof(struct spoolss_5c),
30718 (ndr_push_flags_fn_t) ndr_push_spoolss_5c,
30719 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5c,
30720 (ndr_print_function_t) ndr_print_spoolss_5c,
30725 sizeof(struct spoolss_5d),
30726 (ndr_push_flags_fn_t) ndr_push_spoolss_5d,
30727 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5d,
30728 (ndr_print_function_t) ndr_print_spoolss_5d,
30733 sizeof(struct spoolss_5e),
30734 (ndr_push_flags_fn_t) ndr_push_spoolss_5e,
30735 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5e,
30736 (ndr_print_function_t) ndr_print_spoolss_5e,
30741 sizeof(struct spoolss_5f),
30742 (ndr_push_flags_fn_t) ndr_push_spoolss_5f,
30743 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5f,
30744 (ndr_print_function_t) ndr_print_spoolss_5f,
30749 sizeof(struct spoolss_60),
30750 (ndr_push_flags_fn_t) ndr_push_spoolss_60,
30751 (ndr_pull_flags_fn_t) ndr_pull_spoolss_60,
30752 (ndr_print_function_t) ndr_print_spoolss_60,
30757 sizeof(struct spoolss_61),
30758 (ndr_push_flags_fn_t) ndr_push_spoolss_61,
30759 (ndr_pull_flags_fn_t) ndr_pull_spoolss_61,
30760 (ndr_print_function_t) ndr_print_spoolss_61,
30765 sizeof(struct spoolss_62),
30766 (ndr_push_flags_fn_t) ndr_push_spoolss_62,
30767 (ndr_pull_flags_fn_t) ndr_pull_spoolss_62,
30768 (ndr_print_function_t) ndr_print_spoolss_62,
30773 sizeof(struct spoolss_63),
30774 (ndr_push_flags_fn_t) ndr_push_spoolss_63,
30775 (ndr_pull_flags_fn_t) ndr_pull_spoolss_63,
30776 (ndr_print_function_t) ndr_print_spoolss_63,
30781 sizeof(struct spoolss_64),
30782 (ndr_push_flags_fn_t) ndr_push_spoolss_64,
30783 (ndr_pull_flags_fn_t) ndr_pull_spoolss_64,
30784 (ndr_print_function_t) ndr_print_spoolss_64,
30789 sizeof(struct spoolss_65),
30790 (ndr_push_flags_fn_t) ndr_push_spoolss_65,
30791 (ndr_pull_flags_fn_t) ndr_pull_spoolss_65,
30792 (ndr_print_function_t) ndr_print_spoolss_65,
30796 "spoolss_GetCorePrinterDrivers",
30797 sizeof(struct spoolss_GetCorePrinterDrivers),
30798 (ndr_push_flags_fn_t) ndr_push_spoolss_GetCorePrinterDrivers,
30799 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetCorePrinterDrivers,
30800 (ndr_print_function_t) ndr_print_spoolss_GetCorePrinterDrivers,
30805 sizeof(struct spoolss_67),
30806 (ndr_push_flags_fn_t) ndr_push_spoolss_67,
30807 (ndr_pull_flags_fn_t) ndr_pull_spoolss_67,
30808 (ndr_print_function_t) ndr_print_spoolss_67,
30812 "spoolss_GetPrinterDriverPackagePath",
30813 sizeof(struct spoolss_GetPrinterDriverPackagePath),
30814 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriverPackagePath,
30815 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriverPackagePath,
30816 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriverPackagePath,
30821 sizeof(struct spoolss_69),
30822 (ndr_push_flags_fn_t) ndr_push_spoolss_69,
30823 (ndr_pull_flags_fn_t) ndr_pull_spoolss_69,
30824 (ndr_print_function_t) ndr_print_spoolss_69,
30829 sizeof(struct spoolss_6a),
30830 (ndr_push_flags_fn_t) ndr_push_spoolss_6a,
30831 (ndr_pull_flags_fn_t) ndr_pull_spoolss_6a,
30832 (ndr_print_function_t) ndr_print_spoolss_6a,
30837 sizeof(struct spoolss_6b),
30838 (ndr_push_flags_fn_t) ndr_push_spoolss_6b,
30839 (ndr_pull_flags_fn_t) ndr_pull_spoolss_6b,
30840 (ndr_print_function_t) ndr_print_spoolss_6b,
30845 sizeof(struct spoolss_6c),
30846 (ndr_push_flags_fn_t) ndr_push_spoolss_6c,
30847 (ndr_pull_flags_fn_t) ndr_pull_spoolss_6c,
30848 (ndr_print_function_t) ndr_print_spoolss_6c,
30853 sizeof(struct spoolss_6d),
30854 (ndr_push_flags_fn_t) ndr_push_spoolss_6d,
30855 (ndr_pull_flags_fn_t) ndr_pull_spoolss_6d,
30856 (ndr_print_function_t) ndr_print_spoolss_6d,
30859 { NULL, 0, NULL, NULL, NULL, false }
30862 static const char * const spoolss_endpoint_strings[] = {
30863 "ncacn_np:[\\pipe\\spoolss]",
30866 static const struct ndr_interface_string_array spoolss_endpoints = {
30868 .names = spoolss_endpoint_strings
30871 static const char * const spoolss_authservice_strings[] = {
30875 static const struct ndr_interface_string_array spoolss_authservices = {
30877 .names = spoolss_authservice_strings
30881 const struct ndr_interface_table ndr_table_spoolss = {
30884 {0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0x89,0xab}},
30885 NDR_SPOOLSS_VERSION
30887 .helpstring = NDR_SPOOLSS_HELPSTRING,
30889 .calls = spoolss_calls,
30890 .endpoints = &spoolss_endpoints,
30891 .authservices = &spoolss_authservices