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, MAXDEVICENAME, 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, MAXDEVICENAME, 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, MAXDEVICENAME, 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, MAXDEVICENAME, 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_array = ndr->flags;
13187 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13188 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
13189 ndr->flags = _flags_save_string_array;
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->monitor_name));
13195 ndr->flags = _flags_save_string;
13198 uint32_t _flags_save_string = ndr->flags;
13199 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13200 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
13201 ndr->flags = _flags_save_string;
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_array = ndr->flags;
13327 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13328 if (r->dependent_files) {
13329 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
13330 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
13332 ndr->flags = _flags_save_string_array;
13335 uint32_t _flags_save_string = ndr->flags;
13336 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13337 if (r->monitor_name) {
13338 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
13339 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
13341 ndr->flags = _flags_save_string;
13344 uint32_t _flags_save_string = ndr->flags;
13345 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13346 if (r->default_datatype) {
13347 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
13348 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
13350 ndr->flags = _flags_save_string;
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_dependent_files;
13461 TALLOC_CTX *_mem_save_dependent_files_0;
13462 uint32_t _ptr_monitor_name;
13463 TALLOC_CTX *_mem_save_monitor_name_0;
13464 uint32_t _ptr_default_datatype;
13465 TALLOC_CTX *_mem_save_default_datatype_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_array = ndr->flags;
13563 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13564 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
13565 if (_ptr_dependent_files) {
13566 NDR_PULL_ALLOC(ndr, r->dependent_files);
13567 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
13569 r->dependent_files = NULL;
13571 ndr->flags = _flags_save_string_array;
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_monitor_name));
13577 if (_ptr_monitor_name) {
13578 NDR_PULL_ALLOC(ndr, r->monitor_name);
13579 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
13581 r->monitor_name = NULL;
13583 ndr->flags = _flags_save_string;
13586 uint32_t _flags_save_string = ndr->flags;
13587 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13588 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
13589 if (_ptr_default_datatype) {
13590 NDR_PULL_ALLOC(ndr, r->default_datatype);
13591 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
13593 r->default_datatype = NULL;
13595 ndr->flags = _flags_save_string;
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_array = ndr->flags;
13835 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13836 if (r->dependent_files) {
13837 uint32_t _relative_save_offset;
13838 _relative_save_offset = ndr->offset;
13839 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
13840 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
13841 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
13842 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
13843 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_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_array;
13852 uint32_t _flags_save_string = ndr->flags;
13853 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13854 if (r->monitor_name) {
13855 uint32_t _relative_save_offset;
13856 _relative_save_offset = ndr->offset;
13857 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
13858 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13859 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
13860 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
13861 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_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 = ndr->flags;
13871 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13872 if (r->default_datatype) {
13873 uint32_t _relative_save_offset;
13874 _relative_save_offset = ndr->offset;
13875 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
13876 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
13877 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
13878 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
13879 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_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;
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, "dependent_files", r->dependent_files);
14114 if (r->dependent_files) {
14115 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
14118 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
14120 if (r->monitor_name) {
14121 ndr_print_string(ndr, "monitor_name", r->monitor_name);
14124 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
14126 if (r->default_datatype) {
14127 ndr_print_string(ndr, "default_datatype", r->default_datatype);
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_uint16(ndr, NDR_SCALARS, r->lang_id));
15988 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->unused));
15989 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
15991 if (ndr_flags & NDR_BUFFERS) {
15993 uint32_t _flags_save_string = ndr->flags;
15994 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15995 if (r->form_name) {
15996 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->form_name));
15997 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->form_name));
15999 ndr->flags = _flags_save_string;
16002 uint32_t _flags_save_string = ndr->flags;
16003 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
16005 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->keyword));
16006 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->keyword));
16008 ndr->flags = _flags_save_string;
16011 uint32_t _flags_save_string = ndr->flags;
16012 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16014 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->mui_dll));
16015 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->mui_dll));
16017 ndr->flags = _flags_save_string;
16020 uint32_t _flags_save_string = ndr->flags;
16021 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16022 if (r->display_name) {
16023 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->display_name));
16024 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->display_name));
16026 ndr->flags = _flags_save_string;
16029 return NDR_ERR_SUCCESS;
16032 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormInfo2 *r)
16034 uint32_t _ptr_form_name;
16035 TALLOC_CTX *_mem_save_form_name_0;
16036 uint32_t _ptr_keyword;
16037 TALLOC_CTX *_mem_save_keyword_0;
16038 uint32_t _ptr_mui_dll;
16039 TALLOC_CTX *_mem_save_mui_dll_0;
16040 uint32_t _ptr_display_name;
16041 TALLOC_CTX *_mem_save_display_name_0;
16042 if (ndr_flags & NDR_SCALARS) {
16043 NDR_CHECK(ndr_pull_align(ndr, 5));
16044 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
16046 uint32_t _flags_save_string = ndr->flags;
16047 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16048 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
16049 if (_ptr_form_name) {
16050 NDR_PULL_ALLOC(ndr, r->form_name);
16051 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->form_name, _ptr_form_name));
16053 r->form_name = NULL;
16055 ndr->flags = _flags_save_string;
16057 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
16058 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
16060 uint32_t _flags_save_string = ndr->flags;
16061 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
16062 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyword));
16063 if (_ptr_keyword) {
16064 NDR_PULL_ALLOC(ndr, r->keyword);
16065 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->keyword, _ptr_keyword));
16069 ndr->flags = _flags_save_string;
16071 NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr, NDR_SCALARS, &r->string_type));
16073 uint32_t _flags_save_string = ndr->flags;
16074 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16075 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_mui_dll));
16076 if (_ptr_mui_dll) {
16077 NDR_PULL_ALLOC(ndr, r->mui_dll);
16078 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->mui_dll, _ptr_mui_dll));
16082 ndr->flags = _flags_save_string;
16084 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ressource_id));
16086 uint32_t _flags_save_string = ndr->flags;
16087 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16088 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_display_name));
16089 if (_ptr_display_name) {
16090 NDR_PULL_ALLOC(ndr, r->display_name);
16091 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->display_name, _ptr_display_name));
16093 r->display_name = NULL;
16095 ndr->flags = _flags_save_string;
16097 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lang_id));
16098 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->unused));
16099 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
16101 if (ndr_flags & NDR_BUFFERS) {
16103 uint32_t _flags_save_string = ndr->flags;
16104 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16105 if (r->form_name) {
16106 uint32_t _relative_save_offset;
16107 _relative_save_offset = ndr->offset;
16108 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->form_name));
16109 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16110 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
16111 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->form_name));
16112 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
16113 if (ndr->offset > ndr->relative_highest_offset) {
16114 ndr->relative_highest_offset = ndr->offset;
16116 ndr->offset = _relative_save_offset;
16118 ndr->flags = _flags_save_string;
16121 uint32_t _flags_save_string = ndr->flags;
16122 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
16124 uint32_t _relative_save_offset;
16125 _relative_save_offset = ndr->offset;
16126 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->keyword));
16127 _mem_save_keyword_0 = NDR_PULL_GET_MEM_CTX(ndr);
16128 NDR_PULL_SET_MEM_CTX(ndr, r->keyword, 0);
16129 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->keyword));
16130 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyword_0, 0);
16131 if (ndr->offset > ndr->relative_highest_offset) {
16132 ndr->relative_highest_offset = ndr->offset;
16134 ndr->offset = _relative_save_offset;
16136 ndr->flags = _flags_save_string;
16139 uint32_t _flags_save_string = ndr->flags;
16140 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16142 uint32_t _relative_save_offset;
16143 _relative_save_offset = ndr->offset;
16144 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->mui_dll));
16145 _mem_save_mui_dll_0 = NDR_PULL_GET_MEM_CTX(ndr);
16146 NDR_PULL_SET_MEM_CTX(ndr, r->mui_dll, 0);
16147 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->mui_dll));
16148 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_mui_dll_0, 0);
16149 if (ndr->offset > ndr->relative_highest_offset) {
16150 ndr->relative_highest_offset = ndr->offset;
16152 ndr->offset = _relative_save_offset;
16154 ndr->flags = _flags_save_string;
16157 uint32_t _flags_save_string = ndr->flags;
16158 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16159 if (r->display_name) {
16160 uint32_t _relative_save_offset;
16161 _relative_save_offset = ndr->offset;
16162 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->display_name));
16163 _mem_save_display_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16164 NDR_PULL_SET_MEM_CTX(ndr, r->display_name, 0);
16165 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->display_name));
16166 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_display_name_0, 0);
16167 if (ndr->offset > ndr->relative_highest_offset) {
16168 ndr->relative_highest_offset = ndr->offset;
16170 ndr->offset = _relative_save_offset;
16172 ndr->flags = _flags_save_string;
16175 return NDR_ERR_SUCCESS;
16178 _PUBLIC_ void ndr_print_spoolss_FormInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_FormInfo2 *r)
16180 ndr_print_struct(ndr, name, "spoolss_FormInfo2");
16182 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
16183 ndr_print_ptr(ndr, "form_name", r->form_name);
16185 if (r->form_name) {
16186 ndr_print_string(ndr, "form_name", r->form_name);
16189 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
16190 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
16191 ndr_print_ptr(ndr, "keyword", r->keyword);
16194 ndr_print_string(ndr, "keyword", r->keyword);
16197 ndr_print_spoolss_FormStringType(ndr, "string_type", r->string_type);
16198 ndr_print_ptr(ndr, "mui_dll", r->mui_dll);
16201 ndr_print_string(ndr, "mui_dll", r->mui_dll);
16204 ndr_print_uint32(ndr, "ressource_id", r->ressource_id);
16205 ndr_print_ptr(ndr, "display_name", r->display_name);
16207 if (r->display_name) {
16208 ndr_print_string(ndr, "display_name", r->display_name);
16211 ndr_print_uint16(ndr, "lang_id", r->lang_id);
16212 ndr_print_uint16(ndr, "unused", r->unused);
16216 _PUBLIC_ size_t ndr_size_spoolss_FormInfo2(const struct spoolss_FormInfo2 *r, struct smb_iconv_convenience *ic, int flags)
16218 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo2, ic);
16221 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_FormInfo *r)
16223 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
16224 if (ndr_flags & NDR_SCALARS) {
16225 int level = ndr_push_get_switch_value(ndr, r);
16226 NDR_CHECK(ndr_push_union_align(ndr, 5));
16229 NDR_CHECK(ndr_push_align(ndr, 5));
16230 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16231 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr, NDR_SCALARS, &r->info1));
16235 NDR_CHECK(ndr_push_align(ndr, 5));
16236 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16237 NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr, NDR_SCALARS, &r->info2));
16245 if (ndr_flags & NDR_BUFFERS) {
16246 int level = ndr_push_get_switch_value(ndr, r);
16247 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
16250 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr, NDR_BUFFERS, &r->info1));
16254 NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr, NDR_BUFFERS, &r->info2));
16262 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
16263 return NDR_ERR_SUCCESS;
16266 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_FormInfo *r)
16268 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
16270 level = ndr_pull_get_switch_value(ndr, r);
16271 if (ndr_flags & NDR_SCALARS) {
16272 NDR_CHECK(ndr_pull_union_align(ndr, 5));
16275 NDR_CHECK(ndr_pull_align(ndr, 5));
16276 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16277 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr, NDR_SCALARS, &r->info1));
16281 NDR_CHECK(ndr_pull_align(ndr, 5));
16282 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16283 NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr, NDR_SCALARS, &r->info2));
16291 if (ndr_flags & NDR_BUFFERS) {
16292 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
16295 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr, NDR_BUFFERS, &r->info1));
16299 NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr, NDR_BUFFERS, &r->info2));
16307 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
16308 return NDR_ERR_SUCCESS;
16311 _PUBLIC_ void ndr_print_spoolss_FormInfo(struct ndr_print *ndr, const char *name, const union spoolss_FormInfo *r)
16314 level = ndr_print_get_switch_value(ndr, r);
16315 ndr_print_union(ndr, name, level, "spoolss_FormInfo");
16318 ndr_print_spoolss_FormInfo1(ndr, "info1", &r->info1);
16322 ndr_print_spoolss_FormInfo2(ndr, "info2", &r->info2);
16331 _PUBLIC_ size_t ndr_size_spoolss_FormInfo(const union spoolss_FormInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
16333 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo, ic);
16336 static enum ndr_err_code ndr_push_spoolss_AddFormInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddFormInfo1 *r)
16338 if (ndr_flags & NDR_SCALARS) {
16339 NDR_CHECK(ndr_push_align(ndr, 5));
16340 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
16341 NDR_CHECK(ndr_push_unique_ptr(ndr, r->form_name));
16342 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
16343 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
16344 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
16346 if (ndr_flags & NDR_BUFFERS) {
16347 if (r->form_name) {
16348 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
16349 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
16350 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
16351 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->form_name, ndr_charset_length(r->form_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16354 return NDR_ERR_SUCCESS;
16357 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddFormInfo1 *r)
16359 uint32_t _ptr_form_name;
16360 TALLOC_CTX *_mem_save_form_name_0;
16361 if (ndr_flags & NDR_SCALARS) {
16362 NDR_CHECK(ndr_pull_align(ndr, 5));
16363 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
16364 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
16365 if (_ptr_form_name) {
16366 NDR_PULL_ALLOC(ndr, r->form_name);
16368 r->form_name = NULL;
16370 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
16371 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
16372 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
16374 if (ndr_flags & NDR_BUFFERS) {
16375 if (r->form_name) {
16376 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16377 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
16378 NDR_CHECK(ndr_pull_array_size(ndr, &r->form_name));
16379 NDR_CHECK(ndr_pull_array_length(ndr, &r->form_name));
16380 if (ndr_get_array_length(ndr, &r->form_name) > ndr_get_array_size(ndr, &r->form_name)) {
16381 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));
16383 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t)));
16384 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->form_name, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t), CH_UTF16));
16385 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
16388 return NDR_ERR_SUCCESS;
16391 _PUBLIC_ void ndr_print_spoolss_AddFormInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_AddFormInfo1 *r)
16393 ndr_print_struct(ndr, name, "spoolss_AddFormInfo1");
16395 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
16396 ndr_print_ptr(ndr, "form_name", r->form_name);
16398 if (r->form_name) {
16399 ndr_print_string(ndr, "form_name", r->form_name);
16402 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
16403 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
16407 static enum ndr_err_code ndr_push_spoolss_AddFormInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddFormInfo2 *r)
16409 if (ndr_flags & NDR_SCALARS) {
16410 NDR_CHECK(ndr_push_align(ndr, 5));
16411 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
16412 NDR_CHECK(ndr_push_unique_ptr(ndr, r->form_name));
16413 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
16414 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
16415 NDR_CHECK(ndr_push_unique_ptr(ndr, r->keyword));
16416 NDR_CHECK(ndr_push_spoolss_FormStringType(ndr, NDR_SCALARS, r->string_type));
16417 NDR_CHECK(ndr_push_unique_ptr(ndr, r->mui_dll));
16418 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ressource_id));
16419 NDR_CHECK(ndr_push_unique_ptr(ndr, r->display_name));
16420 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->lang_id));
16421 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
16423 if (ndr_flags & NDR_BUFFERS) {
16424 if (r->form_name) {
16425 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
16426 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
16427 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
16428 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->form_name, ndr_charset_length(r->form_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16431 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->keyword, CH_DOS)));
16432 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
16433 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->keyword, CH_DOS)));
16434 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->keyword, ndr_charset_length(r->keyword, CH_DOS), sizeof(uint8_t), CH_DOS));
16437 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->mui_dll, CH_UTF16)));
16438 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
16439 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->mui_dll, CH_UTF16)));
16440 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->mui_dll, ndr_charset_length(r->mui_dll, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16442 if (r->display_name) {
16443 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->display_name, CH_UTF16)));
16444 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
16445 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->display_name, CH_UTF16)));
16446 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->display_name, ndr_charset_length(r->display_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16449 return NDR_ERR_SUCCESS;
16452 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddFormInfo2 *r)
16454 uint32_t _ptr_form_name;
16455 TALLOC_CTX *_mem_save_form_name_0;
16456 uint32_t _ptr_keyword;
16457 TALLOC_CTX *_mem_save_keyword_0;
16458 uint32_t _ptr_mui_dll;
16459 TALLOC_CTX *_mem_save_mui_dll_0;
16460 uint32_t _ptr_display_name;
16461 TALLOC_CTX *_mem_save_display_name_0;
16462 if (ndr_flags & NDR_SCALARS) {
16463 NDR_CHECK(ndr_pull_align(ndr, 5));
16464 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
16465 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
16466 if (_ptr_form_name) {
16467 NDR_PULL_ALLOC(ndr, r->form_name);
16469 r->form_name = NULL;
16471 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
16472 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
16473 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyword));
16474 if (_ptr_keyword) {
16475 NDR_PULL_ALLOC(ndr, r->keyword);
16479 NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr, NDR_SCALARS, &r->string_type));
16480 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_mui_dll));
16481 if (_ptr_mui_dll) {
16482 NDR_PULL_ALLOC(ndr, r->mui_dll);
16486 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ressource_id));
16487 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_display_name));
16488 if (_ptr_display_name) {
16489 NDR_PULL_ALLOC(ndr, r->display_name);
16491 r->display_name = NULL;
16493 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->lang_id));
16494 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
16496 if (ndr_flags & NDR_BUFFERS) {
16497 if (r->form_name) {
16498 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16499 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
16500 NDR_CHECK(ndr_pull_array_size(ndr, &r->form_name));
16501 NDR_CHECK(ndr_pull_array_length(ndr, &r->form_name));
16502 if (ndr_get_array_length(ndr, &r->form_name) > ndr_get_array_size(ndr, &r->form_name)) {
16503 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));
16505 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t)));
16506 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->form_name, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t), CH_UTF16));
16507 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
16510 _mem_save_keyword_0 = NDR_PULL_GET_MEM_CTX(ndr);
16511 NDR_PULL_SET_MEM_CTX(ndr, r->keyword, 0);
16512 NDR_CHECK(ndr_pull_array_size(ndr, &r->keyword));
16513 NDR_CHECK(ndr_pull_array_length(ndr, &r->keyword));
16514 if (ndr_get_array_length(ndr, &r->keyword) > ndr_get_array_size(ndr, &r->keyword)) {
16515 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));
16517 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->keyword), sizeof(uint8_t)));
16518 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->keyword, ndr_get_array_length(ndr, &r->keyword), sizeof(uint8_t), CH_DOS));
16519 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyword_0, 0);
16522 _mem_save_mui_dll_0 = NDR_PULL_GET_MEM_CTX(ndr);
16523 NDR_PULL_SET_MEM_CTX(ndr, r->mui_dll, 0);
16524 NDR_CHECK(ndr_pull_array_size(ndr, &r->mui_dll));
16525 NDR_CHECK(ndr_pull_array_length(ndr, &r->mui_dll));
16526 if (ndr_get_array_length(ndr, &r->mui_dll) > ndr_get_array_size(ndr, &r->mui_dll)) {
16527 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));
16529 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->mui_dll), sizeof(uint16_t)));
16530 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->mui_dll, ndr_get_array_length(ndr, &r->mui_dll), sizeof(uint16_t), CH_UTF16));
16531 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_mui_dll_0, 0);
16533 if (r->display_name) {
16534 _mem_save_display_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16535 NDR_PULL_SET_MEM_CTX(ndr, r->display_name, 0);
16536 NDR_CHECK(ndr_pull_array_size(ndr, &r->display_name));
16537 NDR_CHECK(ndr_pull_array_length(ndr, &r->display_name));
16538 if (ndr_get_array_length(ndr, &r->display_name) > ndr_get_array_size(ndr, &r->display_name)) {
16539 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));
16541 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->display_name), sizeof(uint16_t)));
16542 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->display_name, ndr_get_array_length(ndr, &r->display_name), sizeof(uint16_t), CH_UTF16));
16543 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_display_name_0, 0);
16546 return NDR_ERR_SUCCESS;
16549 _PUBLIC_ void ndr_print_spoolss_AddFormInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_AddFormInfo2 *r)
16551 ndr_print_struct(ndr, name, "spoolss_AddFormInfo2");
16553 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
16554 ndr_print_ptr(ndr, "form_name", r->form_name);
16556 if (r->form_name) {
16557 ndr_print_string(ndr, "form_name", r->form_name);
16560 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
16561 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
16562 ndr_print_ptr(ndr, "keyword", r->keyword);
16565 ndr_print_string(ndr, "keyword", r->keyword);
16568 ndr_print_spoolss_FormStringType(ndr, "string_type", r->string_type);
16569 ndr_print_ptr(ndr, "mui_dll", r->mui_dll);
16572 ndr_print_string(ndr, "mui_dll", r->mui_dll);
16575 ndr_print_uint32(ndr, "ressource_id", r->ressource_id);
16576 ndr_print_ptr(ndr, "display_name", r->display_name);
16578 if (r->display_name) {
16579 ndr_print_string(ndr, "display_name", r->display_name);
16582 ndr_print_uint32(ndr, "lang_id", r->lang_id);
16586 static enum ndr_err_code ndr_push_spoolss_AddFormInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_AddFormInfo *r)
16588 if (ndr_flags & NDR_SCALARS) {
16589 int level = ndr_push_get_switch_value(ndr, r);
16590 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
16591 NDR_CHECK(ndr_push_union_align(ndr, 5));
16594 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
16598 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
16602 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
16605 if (ndr_flags & NDR_BUFFERS) {
16606 int level = ndr_push_get_switch_value(ndr, r);
16610 NDR_CHECK(ndr_push_spoolss_AddFormInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
16616 NDR_CHECK(ndr_push_spoolss_AddFormInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
16621 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
16624 return NDR_ERR_SUCCESS;
16627 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_AddFormInfo *r)
16631 TALLOC_CTX *_mem_save_info1_0;
16632 TALLOC_CTX *_mem_save_info2_0;
16633 level = ndr_pull_get_switch_value(ndr, r);
16634 if (ndr_flags & NDR_SCALARS) {
16635 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
16636 if (_level != level) {
16637 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
16639 NDR_CHECK(ndr_pull_union_align(ndr, 5));
16642 uint32_t _ptr_info1;
16643 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
16645 NDR_PULL_ALLOC(ndr, r->info1);
16652 uint32_t _ptr_info2;
16653 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
16655 NDR_PULL_ALLOC(ndr, r->info2);
16662 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
16665 if (ndr_flags & NDR_BUFFERS) {
16669 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
16670 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
16671 NDR_CHECK(ndr_pull_spoolss_AddFormInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
16672 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
16678 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
16679 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
16680 NDR_CHECK(ndr_pull_spoolss_AddFormInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
16681 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
16686 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
16689 return NDR_ERR_SUCCESS;
16692 _PUBLIC_ void ndr_print_spoolss_AddFormInfo(struct ndr_print *ndr, const char *name, const union spoolss_AddFormInfo *r)
16695 level = ndr_print_get_switch_value(ndr, r);
16696 ndr_print_union(ndr, name, level, "spoolss_AddFormInfo");
16699 ndr_print_ptr(ndr, "info1", r->info1);
16702 ndr_print_spoolss_AddFormInfo1(ndr, "info1", r->info1);
16708 ndr_print_ptr(ndr, "info2", r->info2);
16711 ndr_print_spoolss_AddFormInfo2(ndr, "info2", r->info2);
16717 ndr_print_bad_level(ndr, name, level);
16721 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo1 *r)
16723 if (ndr_flags & NDR_SCALARS) {
16724 NDR_CHECK(ndr_push_align(ndr, 5));
16726 uint32_t _flags_save_string = ndr->flags;
16727 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16728 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
16729 ndr->flags = _flags_save_string;
16731 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
16733 if (ndr_flags & NDR_BUFFERS) {
16735 uint32_t _flags_save_string = ndr->flags;
16736 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16737 if (r->port_name) {
16738 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->port_name));
16739 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
16741 ndr->flags = _flags_save_string;
16744 return NDR_ERR_SUCCESS;
16747 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo1 *r)
16749 uint32_t _ptr_port_name;
16750 TALLOC_CTX *_mem_save_port_name_0;
16751 if (ndr_flags & NDR_SCALARS) {
16752 NDR_CHECK(ndr_pull_align(ndr, 5));
16754 uint32_t _flags_save_string = ndr->flags;
16755 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16756 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
16757 if (_ptr_port_name) {
16758 NDR_PULL_ALLOC(ndr, r->port_name);
16759 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
16761 r->port_name = NULL;
16763 ndr->flags = _flags_save_string;
16765 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
16767 if (ndr_flags & NDR_BUFFERS) {
16769 uint32_t _flags_save_string = ndr->flags;
16770 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16771 if (r->port_name) {
16772 uint32_t _relative_save_offset;
16773 _relative_save_offset = ndr->offset;
16774 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
16775 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16776 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
16777 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
16778 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
16779 if (ndr->offset > ndr->relative_highest_offset) {
16780 ndr->relative_highest_offset = ndr->offset;
16782 ndr->offset = _relative_save_offset;
16784 ndr->flags = _flags_save_string;
16787 return NDR_ERR_SUCCESS;
16790 _PUBLIC_ void ndr_print_spoolss_PortInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo1 *r)
16792 ndr_print_struct(ndr, name, "spoolss_PortInfo1");
16794 ndr_print_ptr(ndr, "port_name", r->port_name);
16796 if (r->port_name) {
16797 ndr_print_string(ndr, "port_name", r->port_name);
16803 _PUBLIC_ size_t ndr_size_spoolss_PortInfo1(const struct spoolss_PortInfo1 *r, struct smb_iconv_convenience *ic, int flags)
16805 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfo1, ic);
16808 static enum ndr_err_code ndr_push_spoolss_PortType(struct ndr_push *ndr, int ndr_flags, uint32_t r)
16810 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
16811 return NDR_ERR_SUCCESS;
16814 static enum ndr_err_code ndr_pull_spoolss_PortType(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
16817 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
16819 return NDR_ERR_SUCCESS;
16822 _PUBLIC_ void ndr_print_spoolss_PortType(struct ndr_print *ndr, const char *name, uint32_t r)
16824 ndr_print_uint32(ndr, name, r);
16826 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_WRITE", SPOOLSS_PORT_TYPE_WRITE, r);
16827 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_READ", SPOOLSS_PORT_TYPE_READ, r);
16828 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_REDIRECTED", SPOOLSS_PORT_TYPE_REDIRECTED, r);
16829 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_NET_ATTACHED", SPOOLSS_PORT_TYPE_NET_ATTACHED, r);
16833 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo2 *r)
16835 if (ndr_flags & NDR_SCALARS) {
16836 NDR_CHECK(ndr_push_align(ndr, 5));
16838 uint32_t _flags_save_string = ndr->flags;
16839 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16840 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
16841 ndr->flags = _flags_save_string;
16844 uint32_t _flags_save_string = ndr->flags;
16845 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16846 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
16847 ndr->flags = _flags_save_string;
16850 uint32_t _flags_save_string = ndr->flags;
16851 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16852 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->description));
16853 ndr->flags = _flags_save_string;
16855 NDR_CHECK(ndr_push_spoolss_PortType(ndr, NDR_SCALARS, r->port_type));
16856 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
16857 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
16859 if (ndr_flags & NDR_BUFFERS) {
16861 uint32_t _flags_save_string = ndr->flags;
16862 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16863 if (r->port_name) {
16864 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->port_name));
16865 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
16867 ndr->flags = _flags_save_string;
16870 uint32_t _flags_save_string = ndr->flags;
16871 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16872 if (r->monitor_name) {
16873 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
16874 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
16876 ndr->flags = _flags_save_string;
16879 uint32_t _flags_save_string = ndr->flags;
16880 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16881 if (r->description) {
16882 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->description));
16883 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->description));
16885 ndr->flags = _flags_save_string;
16888 return NDR_ERR_SUCCESS;
16891 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo2 *r)
16893 uint32_t _ptr_port_name;
16894 TALLOC_CTX *_mem_save_port_name_0;
16895 uint32_t _ptr_monitor_name;
16896 TALLOC_CTX *_mem_save_monitor_name_0;
16897 uint32_t _ptr_description;
16898 TALLOC_CTX *_mem_save_description_0;
16899 if (ndr_flags & NDR_SCALARS) {
16900 NDR_CHECK(ndr_pull_align(ndr, 5));
16902 uint32_t _flags_save_string = ndr->flags;
16903 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16904 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
16905 if (_ptr_port_name) {
16906 NDR_PULL_ALLOC(ndr, r->port_name);
16907 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
16909 r->port_name = NULL;
16911 ndr->flags = _flags_save_string;
16914 uint32_t _flags_save_string = ndr->flags;
16915 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16916 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
16917 if (_ptr_monitor_name) {
16918 NDR_PULL_ALLOC(ndr, r->monitor_name);
16919 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
16921 r->monitor_name = NULL;
16923 ndr->flags = _flags_save_string;
16926 uint32_t _flags_save_string = ndr->flags;
16927 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16928 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
16929 if (_ptr_description) {
16930 NDR_PULL_ALLOC(ndr, r->description);
16931 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->description, _ptr_description));
16933 r->description = NULL;
16935 ndr->flags = _flags_save_string;
16937 NDR_CHECK(ndr_pull_spoolss_PortType(ndr, NDR_SCALARS, &r->port_type));
16938 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
16939 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
16941 if (ndr_flags & NDR_BUFFERS) {
16943 uint32_t _flags_save_string = ndr->flags;
16944 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16945 if (r->port_name) {
16946 uint32_t _relative_save_offset;
16947 _relative_save_offset = ndr->offset;
16948 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
16949 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16950 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
16951 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
16952 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
16953 if (ndr->offset > ndr->relative_highest_offset) {
16954 ndr->relative_highest_offset = ndr->offset;
16956 ndr->offset = _relative_save_offset;
16958 ndr->flags = _flags_save_string;
16961 uint32_t _flags_save_string = ndr->flags;
16962 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16963 if (r->monitor_name) {
16964 uint32_t _relative_save_offset;
16965 _relative_save_offset = ndr->offset;
16966 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
16967 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16968 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
16969 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
16970 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
16971 if (ndr->offset > ndr->relative_highest_offset) {
16972 ndr->relative_highest_offset = ndr->offset;
16974 ndr->offset = _relative_save_offset;
16976 ndr->flags = _flags_save_string;
16979 uint32_t _flags_save_string = ndr->flags;
16980 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16981 if (r->description) {
16982 uint32_t _relative_save_offset;
16983 _relative_save_offset = ndr->offset;
16984 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->description));
16985 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
16986 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
16987 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->description));
16988 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
16989 if (ndr->offset > ndr->relative_highest_offset) {
16990 ndr->relative_highest_offset = ndr->offset;
16992 ndr->offset = _relative_save_offset;
16994 ndr->flags = _flags_save_string;
16997 return NDR_ERR_SUCCESS;
17000 _PUBLIC_ void ndr_print_spoolss_PortInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo2 *r)
17002 ndr_print_struct(ndr, name, "spoolss_PortInfo2");
17004 ndr_print_ptr(ndr, "port_name", r->port_name);
17006 if (r->port_name) {
17007 ndr_print_string(ndr, "port_name", r->port_name);
17010 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
17012 if (r->monitor_name) {
17013 ndr_print_string(ndr, "monitor_name", r->monitor_name);
17016 ndr_print_ptr(ndr, "description", r->description);
17018 if (r->description) {
17019 ndr_print_string(ndr, "description", r->description);
17022 ndr_print_spoolss_PortType(ndr, "port_type", r->port_type);
17023 ndr_print_uint32(ndr, "reserved", r->reserved);
17027 _PUBLIC_ size_t ndr_size_spoolss_PortInfo2(const struct spoolss_PortInfo2 *r, struct smb_iconv_convenience *ic, int flags)
17029 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfo2, ic);
17032 static enum ndr_err_code ndr_push_spoolss_PortStatus(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortStatus r)
17034 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
17035 return NDR_ERR_SUCCESS;
17038 static enum ndr_err_code ndr_pull_spoolss_PortStatus(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortStatus *r)
17041 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
17043 return NDR_ERR_SUCCESS;
17046 _PUBLIC_ void ndr_print_spoolss_PortStatus(struct ndr_print *ndr, const char *name, enum spoolss_PortStatus r)
17048 const char *val = NULL;
17051 case PORT_STATUS_CLEAR: val = "PORT_STATUS_CLEAR"; break;
17052 case PORT_STATUS_OFFLINE: val = "PORT_STATUS_OFFLINE"; break;
17053 case PORT_STATUS_PAPER_JAM: val = "PORT_STATUS_PAPER_JAM"; break;
17054 case PORT_STATUS_PAPER_OUT: val = "PORT_STATUS_PAPER_OUT"; break;
17055 case PORT_STATUS_OUTPUT_BIN_FULL: val = "PORT_STATUS_OUTPUT_BIN_FULL"; break;
17056 case PORT_STATUS_PAPER_PROBLEM: val = "PORT_STATUS_PAPER_PROBLEM"; break;
17057 case PORT_STATUS_NO_TONER: val = "PORT_STATUS_NO_TONER"; break;
17058 case PORT_STATUS_DOOR_OPEN: val = "PORT_STATUS_DOOR_OPEN"; break;
17059 case PORT_STATUS_USER_INTERVENTION: val = "PORT_STATUS_USER_INTERVENTION"; break;
17060 case PORT_STATUS_OUT_OF_MEMORY: val = "PORT_STATUS_OUT_OF_MEMORY"; break;
17061 case PORT_STATUS_TONER_LOW: val = "PORT_STATUS_TONER_LOW"; break;
17062 case PORT_STATUS_WARMING_UP: val = "PORT_STATUS_WARMING_UP"; break;
17063 case PORT_STATUS_POWER_SAVE: val = "PORT_STATUS_POWER_SAVE"; break;
17065 ndr_print_enum(ndr, name, "ENUM", val, r);
17068 static enum ndr_err_code ndr_push_spoolss_PortSeverity(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortSeverity r)
17070 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
17071 return NDR_ERR_SUCCESS;
17074 static enum ndr_err_code ndr_pull_spoolss_PortSeverity(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortSeverity *r)
17077 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
17079 return NDR_ERR_SUCCESS;
17082 _PUBLIC_ void ndr_print_spoolss_PortSeverity(struct ndr_print *ndr, const char *name, enum spoolss_PortSeverity r)
17084 const char *val = NULL;
17087 case PORT_STATUS_TYPE_ERROR: val = "PORT_STATUS_TYPE_ERROR"; break;
17088 case PORT_STATUS_TYPE_WARNING: val = "PORT_STATUS_TYPE_WARNING"; break;
17089 case PORT_STATUS_TYPE_INFO: val = "PORT_STATUS_TYPE_INFO"; break;
17091 ndr_print_enum(ndr, name, "ENUM", val, r);
17094 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo3 *r)
17096 if (ndr_flags & NDR_SCALARS) {
17097 NDR_CHECK(ndr_push_align(ndr, 5));
17098 NDR_CHECK(ndr_push_spoolss_PortStatus(ndr, NDR_SCALARS, r->status));
17100 uint32_t _flags_save_string = ndr->flags;
17101 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17102 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->status_string));
17103 ndr->flags = _flags_save_string;
17105 NDR_CHECK(ndr_push_spoolss_PortSeverity(ndr, NDR_SCALARS, r->severity));
17106 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17108 if (ndr_flags & NDR_BUFFERS) {
17110 uint32_t _flags_save_string = ndr->flags;
17111 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17112 if (r->status_string) {
17113 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->status_string));
17114 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->status_string));
17116 ndr->flags = _flags_save_string;
17119 return NDR_ERR_SUCCESS;
17122 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo3 *r)
17124 uint32_t _ptr_status_string;
17125 TALLOC_CTX *_mem_save_status_string_0;
17126 if (ndr_flags & NDR_SCALARS) {
17127 NDR_CHECK(ndr_pull_align(ndr, 5));
17128 NDR_CHECK(ndr_pull_spoolss_PortStatus(ndr, NDR_SCALARS, &r->status));
17130 uint32_t _flags_save_string = ndr->flags;
17131 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17132 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_status_string));
17133 if (_ptr_status_string) {
17134 NDR_PULL_ALLOC(ndr, r->status_string);
17135 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->status_string, _ptr_status_string));
17137 r->status_string = NULL;
17139 ndr->flags = _flags_save_string;
17141 NDR_CHECK(ndr_pull_spoolss_PortSeverity(ndr, NDR_SCALARS, &r->severity));
17142 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17144 if (ndr_flags & NDR_BUFFERS) {
17146 uint32_t _flags_save_string = ndr->flags;
17147 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17148 if (r->status_string) {
17149 uint32_t _relative_save_offset;
17150 _relative_save_offset = ndr->offset;
17151 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->status_string));
17152 _mem_save_status_string_0 = NDR_PULL_GET_MEM_CTX(ndr);
17153 NDR_PULL_SET_MEM_CTX(ndr, r->status_string, 0);
17154 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->status_string));
17155 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_string_0, 0);
17156 if (ndr->offset > ndr->relative_highest_offset) {
17157 ndr->relative_highest_offset = ndr->offset;
17159 ndr->offset = _relative_save_offset;
17161 ndr->flags = _flags_save_string;
17164 return NDR_ERR_SUCCESS;
17167 _PUBLIC_ void ndr_print_spoolss_PortInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo3 *r)
17169 ndr_print_struct(ndr, name, "spoolss_PortInfo3");
17171 ndr_print_spoolss_PortStatus(ndr, "status", r->status);
17172 ndr_print_ptr(ndr, "status_string", r->status_string);
17174 if (r->status_string) {
17175 ndr_print_string(ndr, "status_string", r->status_string);
17178 ndr_print_spoolss_PortSeverity(ndr, "severity", r->severity);
17182 _PUBLIC_ size_t ndr_size_spoolss_PortInfo3(const struct spoolss_PortInfo3 *r, struct smb_iconv_convenience *ic, int flags)
17184 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfo3, ic);
17187 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfoFF(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfoFF *r)
17189 if (ndr_flags & NDR_SCALARS) {
17190 NDR_CHECK(ndr_push_align(ndr, 5));
17192 uint32_t _flags_save_string = ndr->flags;
17193 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17194 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
17195 ndr->flags = _flags_save_string;
17197 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->monitor_data));
17198 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17200 if (ndr_flags & NDR_BUFFERS) {
17202 uint32_t _flags_save_string = ndr->flags;
17203 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17204 if (r->port_name) {
17205 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->port_name));
17206 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
17208 ndr->flags = _flags_save_string;
17211 return NDR_ERR_SUCCESS;
17214 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfoFF(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfoFF *r)
17216 uint32_t _ptr_port_name;
17217 TALLOC_CTX *_mem_save_port_name_0;
17218 if (ndr_flags & NDR_SCALARS) {
17219 NDR_CHECK(ndr_pull_align(ndr, 5));
17221 uint32_t _flags_save_string = ndr->flags;
17222 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17223 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
17224 if (_ptr_port_name) {
17225 NDR_PULL_ALLOC(ndr, r->port_name);
17226 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
17228 r->port_name = NULL;
17230 ndr->flags = _flags_save_string;
17232 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->monitor_data));
17233 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17235 if (ndr_flags & NDR_BUFFERS) {
17237 uint32_t _flags_save_string = ndr->flags;
17238 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17239 if (r->port_name) {
17240 uint32_t _relative_save_offset;
17241 _relative_save_offset = ndr->offset;
17242 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
17243 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17244 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
17245 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
17246 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
17247 if (ndr->offset > ndr->relative_highest_offset) {
17248 ndr->relative_highest_offset = ndr->offset;
17250 ndr->offset = _relative_save_offset;
17252 ndr->flags = _flags_save_string;
17255 return NDR_ERR_SUCCESS;
17258 _PUBLIC_ void ndr_print_spoolss_PortInfoFF(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfoFF *r)
17260 ndr_print_struct(ndr, name, "spoolss_PortInfoFF");
17262 ndr_print_ptr(ndr, "port_name", r->port_name);
17264 if (r->port_name) {
17265 ndr_print_string(ndr, "port_name", r->port_name);
17268 ndr_print_DATA_BLOB(ndr, "monitor_data", r->monitor_data);
17272 _PUBLIC_ size_t ndr_size_spoolss_PortInfoFF(const struct spoolss_PortInfoFF *r, struct smb_iconv_convenience *ic, int flags)
17274 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfoFF, ic);
17277 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PortInfo *r)
17279 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
17280 if (ndr_flags & NDR_SCALARS) {
17281 int level = ndr_push_get_switch_value(ndr, r);
17282 NDR_CHECK(ndr_push_union_align(ndr, 5));
17285 NDR_CHECK(ndr_push_align(ndr, 5));
17286 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
17287 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr, NDR_SCALARS, &r->info1));
17291 NDR_CHECK(ndr_push_align(ndr, 5));
17292 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
17293 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr, NDR_SCALARS, &r->info2));
17297 NDR_CHECK(ndr_push_align(ndr, 5));
17298 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
17299 NDR_CHECK(ndr_push_spoolss_PortInfo3(ndr, NDR_SCALARS, &r->info3));
17303 NDR_CHECK(ndr_push_align(ndr, 5));
17304 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
17305 NDR_CHECK(ndr_push_spoolss_PortInfoFF(ndr, NDR_SCALARS, &r->infoFF));
17313 if (ndr_flags & NDR_BUFFERS) {
17314 int level = ndr_push_get_switch_value(ndr, r);
17315 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
17318 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr, NDR_BUFFERS, &r->info1));
17322 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr, NDR_BUFFERS, &r->info2));
17326 NDR_CHECK(ndr_push_spoolss_PortInfo3(ndr, NDR_BUFFERS, &r->info3));
17330 NDR_CHECK(ndr_push_spoolss_PortInfoFF(ndr, NDR_BUFFERS, &r->infoFF));
17338 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
17339 return NDR_ERR_SUCCESS;
17342 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PortInfo *r)
17344 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
17346 level = ndr_pull_get_switch_value(ndr, r);
17347 if (ndr_flags & NDR_SCALARS) {
17348 NDR_CHECK(ndr_pull_union_align(ndr, 5));
17351 NDR_CHECK(ndr_pull_align(ndr, 5));
17352 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
17353 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr, NDR_SCALARS, &r->info1));
17357 NDR_CHECK(ndr_pull_align(ndr, 5));
17358 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
17359 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr, NDR_SCALARS, &r->info2));
17363 NDR_CHECK(ndr_pull_align(ndr, 5));
17364 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
17365 NDR_CHECK(ndr_pull_spoolss_PortInfo3(ndr, NDR_SCALARS, &r->info3));
17369 NDR_CHECK(ndr_pull_align(ndr, 5));
17370 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
17371 NDR_CHECK(ndr_pull_spoolss_PortInfoFF(ndr, NDR_SCALARS, &r->infoFF));
17379 if (ndr_flags & NDR_BUFFERS) {
17380 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
17383 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr, NDR_BUFFERS, &r->info1));
17387 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr, NDR_BUFFERS, &r->info2));
17391 NDR_CHECK(ndr_pull_spoolss_PortInfo3(ndr, NDR_BUFFERS, &r->info3));
17395 NDR_CHECK(ndr_pull_spoolss_PortInfoFF(ndr, NDR_BUFFERS, &r->infoFF));
17403 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
17404 return NDR_ERR_SUCCESS;
17407 _PUBLIC_ void ndr_print_spoolss_PortInfo(struct ndr_print *ndr, const char *name, const union spoolss_PortInfo *r)
17410 level = ndr_print_get_switch_value(ndr, r);
17411 ndr_print_union(ndr, name, level, "spoolss_PortInfo");
17414 ndr_print_spoolss_PortInfo1(ndr, "info1", &r->info1);
17418 ndr_print_spoolss_PortInfo2(ndr, "info2", &r->info2);
17422 ndr_print_spoolss_PortInfo3(ndr, "info3", &r->info3);
17426 ndr_print_spoolss_PortInfoFF(ndr, "infoFF", &r->infoFF);
17435 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorInfo1 *r)
17437 if (ndr_flags & NDR_SCALARS) {
17438 NDR_CHECK(ndr_push_align(ndr, 5));
17440 uint32_t _flags_save_string = ndr->flags;
17441 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17442 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
17443 ndr->flags = _flags_save_string;
17445 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17447 if (ndr_flags & NDR_BUFFERS) {
17449 uint32_t _flags_save_string = ndr->flags;
17450 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17451 if (r->monitor_name) {
17452 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
17453 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
17455 ndr->flags = _flags_save_string;
17458 return NDR_ERR_SUCCESS;
17461 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorInfo1 *r)
17463 uint32_t _ptr_monitor_name;
17464 TALLOC_CTX *_mem_save_monitor_name_0;
17465 if (ndr_flags & NDR_SCALARS) {
17466 NDR_CHECK(ndr_pull_align(ndr, 5));
17468 uint32_t _flags_save_string = ndr->flags;
17469 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17470 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
17471 if (_ptr_monitor_name) {
17472 NDR_PULL_ALLOC(ndr, r->monitor_name);
17473 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
17475 r->monitor_name = NULL;
17477 ndr->flags = _flags_save_string;
17479 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17481 if (ndr_flags & NDR_BUFFERS) {
17483 uint32_t _flags_save_string = ndr->flags;
17484 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17485 if (r->monitor_name) {
17486 uint32_t _relative_save_offset;
17487 _relative_save_offset = ndr->offset;
17488 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
17489 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17490 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
17491 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
17492 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
17493 if (ndr->offset > ndr->relative_highest_offset) {
17494 ndr->relative_highest_offset = ndr->offset;
17496 ndr->offset = _relative_save_offset;
17498 ndr->flags = _flags_save_string;
17501 return NDR_ERR_SUCCESS;
17504 _PUBLIC_ void ndr_print_spoolss_MonitorInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorInfo1 *r)
17506 ndr_print_struct(ndr, name, "spoolss_MonitorInfo1");
17508 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
17510 if (r->monitor_name) {
17511 ndr_print_string(ndr, "monitor_name", r->monitor_name);
17517 _PUBLIC_ size_t ndr_size_spoolss_MonitorInfo1(const struct spoolss_MonitorInfo1 *r, struct smb_iconv_convenience *ic, int flags)
17519 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_MonitorInfo1, ic);
17522 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorInfo2 *r)
17524 if (ndr_flags & NDR_SCALARS) {
17525 NDR_CHECK(ndr_push_align(ndr, 5));
17527 uint32_t _flags_save_string = ndr->flags;
17528 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17529 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
17530 ndr->flags = _flags_save_string;
17533 uint32_t _flags_save_string = ndr->flags;
17534 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17535 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->environment));
17536 ndr->flags = _flags_save_string;
17539 uint32_t _flags_save_string = ndr->flags;
17540 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17541 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dll_name));
17542 ndr->flags = _flags_save_string;
17544 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17546 if (ndr_flags & NDR_BUFFERS) {
17548 uint32_t _flags_save_string = ndr->flags;
17549 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17550 if (r->monitor_name) {
17551 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
17552 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
17554 ndr->flags = _flags_save_string;
17557 uint32_t _flags_save_string = ndr->flags;
17558 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17559 if (r->environment) {
17560 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->environment));
17561 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->environment));
17563 ndr->flags = _flags_save_string;
17566 uint32_t _flags_save_string = ndr->flags;
17567 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17569 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dll_name));
17570 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dll_name));
17572 ndr->flags = _flags_save_string;
17575 return NDR_ERR_SUCCESS;
17578 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorInfo2 *r)
17580 uint32_t _ptr_monitor_name;
17581 TALLOC_CTX *_mem_save_monitor_name_0;
17582 uint32_t _ptr_environment;
17583 TALLOC_CTX *_mem_save_environment_0;
17584 uint32_t _ptr_dll_name;
17585 TALLOC_CTX *_mem_save_dll_name_0;
17586 if (ndr_flags & NDR_SCALARS) {
17587 NDR_CHECK(ndr_pull_align(ndr, 5));
17589 uint32_t _flags_save_string = ndr->flags;
17590 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17591 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
17592 if (_ptr_monitor_name) {
17593 NDR_PULL_ALLOC(ndr, r->monitor_name);
17594 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
17596 r->monitor_name = NULL;
17598 ndr->flags = _flags_save_string;
17601 uint32_t _flags_save_string = ndr->flags;
17602 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17603 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
17604 if (_ptr_environment) {
17605 NDR_PULL_ALLOC(ndr, r->environment);
17606 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->environment, _ptr_environment));
17608 r->environment = NULL;
17610 ndr->flags = _flags_save_string;
17613 uint32_t _flags_save_string = ndr->flags;
17614 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17615 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dll_name));
17616 if (_ptr_dll_name) {
17617 NDR_PULL_ALLOC(ndr, r->dll_name);
17618 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dll_name, _ptr_dll_name));
17620 r->dll_name = NULL;
17622 ndr->flags = _flags_save_string;
17624 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17626 if (ndr_flags & NDR_BUFFERS) {
17628 uint32_t _flags_save_string = ndr->flags;
17629 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17630 if (r->monitor_name) {
17631 uint32_t _relative_save_offset;
17632 _relative_save_offset = ndr->offset;
17633 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
17634 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17635 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
17636 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
17637 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
17638 if (ndr->offset > ndr->relative_highest_offset) {
17639 ndr->relative_highest_offset = ndr->offset;
17641 ndr->offset = _relative_save_offset;
17643 ndr->flags = _flags_save_string;
17646 uint32_t _flags_save_string = ndr->flags;
17647 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17648 if (r->environment) {
17649 uint32_t _relative_save_offset;
17650 _relative_save_offset = ndr->offset;
17651 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->environment));
17652 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
17653 NDR_PULL_SET_MEM_CTX(ndr, r->environment, 0);
17654 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->environment));
17655 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
17656 if (ndr->offset > ndr->relative_highest_offset) {
17657 ndr->relative_highest_offset = ndr->offset;
17659 ndr->offset = _relative_save_offset;
17661 ndr->flags = _flags_save_string;
17664 uint32_t _flags_save_string = ndr->flags;
17665 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17667 uint32_t _relative_save_offset;
17668 _relative_save_offset = ndr->offset;
17669 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dll_name));
17670 _mem_save_dll_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17671 NDR_PULL_SET_MEM_CTX(ndr, r->dll_name, 0);
17672 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->dll_name));
17673 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dll_name_0, 0);
17674 if (ndr->offset > ndr->relative_highest_offset) {
17675 ndr->relative_highest_offset = ndr->offset;
17677 ndr->offset = _relative_save_offset;
17679 ndr->flags = _flags_save_string;
17682 return NDR_ERR_SUCCESS;
17685 _PUBLIC_ void ndr_print_spoolss_MonitorInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorInfo2 *r)
17687 ndr_print_struct(ndr, name, "spoolss_MonitorInfo2");
17689 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
17691 if (r->monitor_name) {
17692 ndr_print_string(ndr, "monitor_name", r->monitor_name);
17695 ndr_print_ptr(ndr, "environment", r->environment);
17697 if (r->environment) {
17698 ndr_print_string(ndr, "environment", r->environment);
17701 ndr_print_ptr(ndr, "dll_name", r->dll_name);
17704 ndr_print_string(ndr, "dll_name", r->dll_name);
17710 _PUBLIC_ size_t ndr_size_spoolss_MonitorInfo2(const struct spoolss_MonitorInfo2 *r, struct smb_iconv_convenience *ic, int flags)
17712 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_MonitorInfo2, ic);
17715 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_MonitorInfo *r)
17717 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
17718 if (ndr_flags & NDR_SCALARS) {
17719 int level = ndr_push_get_switch_value(ndr, r);
17720 NDR_CHECK(ndr_push_union_align(ndr, 5));
17723 NDR_CHECK(ndr_push_align(ndr, 5));
17724 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
17725 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr, NDR_SCALARS, &r->info1));
17729 NDR_CHECK(ndr_push_align(ndr, 5));
17730 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
17731 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr, NDR_SCALARS, &r->info2));
17739 if (ndr_flags & NDR_BUFFERS) {
17740 int level = ndr_push_get_switch_value(ndr, r);
17741 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
17744 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr, NDR_BUFFERS, &r->info1));
17748 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr, NDR_BUFFERS, &r->info2));
17756 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
17757 return NDR_ERR_SUCCESS;
17760 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_MonitorInfo *r)
17762 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
17764 level = ndr_pull_get_switch_value(ndr, r);
17765 if (ndr_flags & NDR_SCALARS) {
17766 NDR_CHECK(ndr_pull_union_align(ndr, 5));
17769 NDR_CHECK(ndr_pull_align(ndr, 5));
17770 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
17771 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr, NDR_SCALARS, &r->info1));
17775 NDR_CHECK(ndr_pull_align(ndr, 5));
17776 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
17777 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr, NDR_SCALARS, &r->info2));
17785 if (ndr_flags & NDR_BUFFERS) {
17786 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
17789 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr, NDR_BUFFERS, &r->info1));
17793 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr, NDR_BUFFERS, &r->info2));
17801 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
17802 return NDR_ERR_SUCCESS;
17805 _PUBLIC_ void ndr_print_spoolss_MonitorInfo(struct ndr_print *ndr, const char *name, const union spoolss_MonitorInfo *r)
17808 level = ndr_print_get_switch_value(ndr, r);
17809 ndr_print_union(ndr, name, level, "spoolss_MonitorInfo");
17812 ndr_print_spoolss_MonitorInfo1(ndr, "info1", &r->info1);
17816 ndr_print_spoolss_MonitorInfo2(ndr, "info2", &r->info2);
17825 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcDataTypesInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcDataTypesInfo1 *r)
17827 if (ndr_flags & NDR_SCALARS) {
17828 NDR_CHECK(ndr_push_align(ndr, 5));
17830 uint32_t _flags_save_string = ndr->flags;
17831 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17832 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->name_array));
17833 ndr->flags = _flags_save_string;
17835 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17837 if (ndr_flags & NDR_BUFFERS) {
17839 uint32_t _flags_save_string = ndr->flags;
17840 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17841 if (r->name_array) {
17842 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->name_array));
17843 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->name_array));
17845 ndr->flags = _flags_save_string;
17848 return NDR_ERR_SUCCESS;
17851 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcDataTypesInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcDataTypesInfo1 *r)
17853 uint32_t _ptr_name_array;
17854 TALLOC_CTX *_mem_save_name_array_0;
17855 if (ndr_flags & NDR_SCALARS) {
17856 NDR_CHECK(ndr_pull_align(ndr, 5));
17858 uint32_t _flags_save_string = ndr->flags;
17859 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17860 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name_array));
17861 if (_ptr_name_array) {
17862 NDR_PULL_ALLOC(ndr, r->name_array);
17863 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->name_array, _ptr_name_array));
17865 r->name_array = NULL;
17867 ndr->flags = _flags_save_string;
17869 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17871 if (ndr_flags & NDR_BUFFERS) {
17873 uint32_t _flags_save_string = ndr->flags;
17874 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17875 if (r->name_array) {
17876 uint32_t _relative_save_offset;
17877 _relative_save_offset = ndr->offset;
17878 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->name_array));
17879 _mem_save_name_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
17880 NDR_PULL_SET_MEM_CTX(ndr, r->name_array, 0);
17881 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->name_array));
17882 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_array_0, 0);
17883 if (ndr->offset > ndr->relative_highest_offset) {
17884 ndr->relative_highest_offset = ndr->offset;
17886 ndr->offset = _relative_save_offset;
17888 ndr->flags = _flags_save_string;
17891 return NDR_ERR_SUCCESS;
17894 _PUBLIC_ void ndr_print_spoolss_PrintProcDataTypesInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcDataTypesInfo1 *r)
17896 ndr_print_struct(ndr, name, "spoolss_PrintProcDataTypesInfo1");
17898 ndr_print_ptr(ndr, "name_array", r->name_array);
17900 if (r->name_array) {
17901 ndr_print_string(ndr, "name_array", r->name_array);
17907 _PUBLIC_ size_t ndr_size_spoolss_PrintProcDataTypesInfo1(const struct spoolss_PrintProcDataTypesInfo1 *r, struct smb_iconv_convenience *ic, int flags)
17909 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcDataTypesInfo1, ic);
17912 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcDataTypesInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcDataTypesInfo *r)
17914 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
17915 if (ndr_flags & NDR_SCALARS) {
17916 int level = ndr_push_get_switch_value(ndr, r);
17917 NDR_CHECK(ndr_push_union_align(ndr, 5));
17920 NDR_CHECK(ndr_push_align(ndr, 5));
17921 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
17922 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo1(ndr, NDR_SCALARS, &r->info1));
17930 if (ndr_flags & NDR_BUFFERS) {
17931 int level = ndr_push_get_switch_value(ndr, r);
17932 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
17935 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo1(ndr, NDR_BUFFERS, &r->info1));
17943 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
17944 return NDR_ERR_SUCCESS;
17947 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcDataTypesInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcDataTypesInfo *r)
17949 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
17951 level = ndr_pull_get_switch_value(ndr, r);
17952 if (ndr_flags & NDR_SCALARS) {
17953 NDR_CHECK(ndr_pull_union_align(ndr, 5));
17956 NDR_CHECK(ndr_pull_align(ndr, 5));
17957 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
17958 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo1(ndr, NDR_SCALARS, &r->info1));
17966 if (ndr_flags & NDR_BUFFERS) {
17967 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
17970 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo1(ndr, NDR_BUFFERS, &r->info1));
17978 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
17979 return NDR_ERR_SUCCESS;
17982 _PUBLIC_ void ndr_print_spoolss_PrintProcDataTypesInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcDataTypesInfo *r)
17985 level = ndr_print_get_switch_value(ndr, r);
17986 ndr_print_union(ndr, name, level, "spoolss_PrintProcDataTypesInfo");
17989 ndr_print_spoolss_PrintProcDataTypesInfo1(ndr, "info1", &r->info1);
17998 static enum ndr_err_code ndr_push_spoolss_PrinterChangeFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
18000 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
18001 return NDR_ERR_SUCCESS;
18004 static enum ndr_err_code ndr_pull_spoolss_PrinterChangeFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
18007 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
18009 return NDR_ERR_SUCCESS;
18012 _PUBLIC_ void ndr_print_spoolss_PrinterChangeFlags(struct ndr_print *ndr, const char *name, uint32_t r)
18014 ndr_print_uint32(ndr, name, r);
18016 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER", PRINTER_CHANGE_ADD_PRINTER, r);
18017 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER", PRINTER_CHANGE_SET_PRINTER, r);
18018 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER", PRINTER_CHANGE_DELETE_PRINTER, r);
18019 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_FAILED_CONNECTION_PRINTER", PRINTER_CHANGE_FAILED_CONNECTION_PRINTER, r);
18020 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_JOB", PRINTER_CHANGE_ADD_JOB, r);
18021 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_JOB", PRINTER_CHANGE_SET_JOB, r);
18022 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_JOB", PRINTER_CHANGE_DELETE_JOB, r);
18023 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_WRITE_JOB", PRINTER_CHANGE_WRITE_JOB, r);
18024 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_FORM", PRINTER_CHANGE_ADD_FORM, r);
18025 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_FORM", PRINTER_CHANGE_SET_FORM, r);
18026 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_FORM", PRINTER_CHANGE_DELETE_FORM, r);
18027 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PORT", PRINTER_CHANGE_ADD_PORT, r);
18028 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_CONFIGURE_PORT", PRINTER_CHANGE_CONFIGURE_PORT, r);
18029 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PORT", PRINTER_CHANGE_DELETE_PORT, r);
18030 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINT_PROCESSOR", PRINTER_CHANGE_ADD_PRINT_PROCESSOR, r);
18031 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINT_PROCESSOR", PRINTER_CHANGE_DELETE_PRINT_PROCESSOR, r);
18032 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SERVER", PRINTER_CHANGE_SERVER, r);
18033 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER_DRIVER", PRINTER_CHANGE_ADD_PRINTER_DRIVER, r);
18034 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER_DRIVER", PRINTER_CHANGE_SET_PRINTER_DRIVER, r);
18035 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER_DRIVER", PRINTER_CHANGE_DELETE_PRINTER_DRIVER, r);
18036 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_TIMEOUT", PRINTER_CHANGE_TIMEOUT, r);
18040 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobNotifyField(struct ndr_push *ndr, int ndr_flags, enum spoolss_JobNotifyField r)
18042 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
18043 return NDR_ERR_SUCCESS;
18046 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobNotifyField(struct ndr_pull *ndr, int ndr_flags, enum spoolss_JobNotifyField *r)
18049 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
18051 return NDR_ERR_SUCCESS;
18054 _PUBLIC_ void ndr_print_spoolss_JobNotifyField(struct ndr_print *ndr, const char *name, enum spoolss_JobNotifyField r)
18056 const char *val = NULL;
18059 case JOB_NOTIFY_FIELD_PRINTER_NAME: val = "JOB_NOTIFY_FIELD_PRINTER_NAME"; break;
18060 case JOB_NOTIFY_FIELD_MACHINE_NAME: val = "JOB_NOTIFY_FIELD_MACHINE_NAME"; break;
18061 case JOB_NOTIFY_FIELD_PORT_NAME: val = "JOB_NOTIFY_FIELD_PORT_NAME"; break;
18062 case JOB_NOTIFY_FIELD_USER_NAME: val = "JOB_NOTIFY_FIELD_USER_NAME"; break;
18063 case JOB_NOTIFY_FIELD_NOTIFY_NAME: val = "JOB_NOTIFY_FIELD_NOTIFY_NAME"; break;
18064 case JOB_NOTIFY_FIELD_DATATYPE: val = "JOB_NOTIFY_FIELD_DATATYPE"; break;
18065 case JOB_NOTIFY_FIELD_PRINT_PROCESSOR: val = "JOB_NOTIFY_FIELD_PRINT_PROCESSOR"; break;
18066 case JOB_NOTIFY_FIELD_PARAMETERS: val = "JOB_NOTIFY_FIELD_PARAMETERS"; break;
18067 case JOB_NOTIFY_FIELD_DRIVER_NAME: val = "JOB_NOTIFY_FIELD_DRIVER_NAME"; break;
18068 case JOB_NOTIFY_FIELD_DEVMODE: val = "JOB_NOTIFY_FIELD_DEVMODE"; break;
18069 case JOB_NOTIFY_FIELD_STATUS: val = "JOB_NOTIFY_FIELD_STATUS"; break;
18070 case JOB_NOTIFY_FIELD_STATUS_STRING: val = "JOB_NOTIFY_FIELD_STATUS_STRING"; break;
18071 case JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR: val = "JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR"; break;
18072 case JOB_NOTIFY_FIELD_DOCUMENT: val = "JOB_NOTIFY_FIELD_DOCUMENT"; break;
18073 case JOB_NOTIFY_FIELD_PRIORITY: val = "JOB_NOTIFY_FIELD_PRIORITY"; break;
18074 case JOB_NOTIFY_FIELD_POSITION: val = "JOB_NOTIFY_FIELD_POSITION"; break;
18075 case JOB_NOTIFY_FIELD_SUBMITTED: val = "JOB_NOTIFY_FIELD_SUBMITTED"; break;
18076 case JOB_NOTIFY_FIELD_START_TIME: val = "JOB_NOTIFY_FIELD_START_TIME"; break;
18077 case JOB_NOTIFY_FIELD_UNTIL_TIME: val = "JOB_NOTIFY_FIELD_UNTIL_TIME"; break;
18078 case JOB_NOTIFY_FIELD_TIME: val = "JOB_NOTIFY_FIELD_TIME"; break;
18079 case JOB_NOTIFY_FIELD_TOTAL_PAGES: val = "JOB_NOTIFY_FIELD_TOTAL_PAGES"; break;
18080 case JOB_NOTIFY_FIELD_PAGES_PRINTED: val = "JOB_NOTIFY_FIELD_PAGES_PRINTED"; break;
18081 case JOB_NOTIFY_FIELD_TOTAL_BYTES: val = "JOB_NOTIFY_FIELD_TOTAL_BYTES"; break;
18082 case JOB_NOTIFY_FIELD_BYTES_PRINTED: val = "JOB_NOTIFY_FIELD_BYTES_PRINTED"; break;
18084 ndr_print_enum(ndr, name, "ENUM", val, r);
18087 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintNotifyField(struct ndr_push *ndr, int ndr_flags, enum spoolss_PrintNotifyField r)
18089 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
18090 return NDR_ERR_SUCCESS;
18093 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintNotifyField(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PrintNotifyField *r)
18096 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
18098 return NDR_ERR_SUCCESS;
18101 _PUBLIC_ void ndr_print_spoolss_PrintNotifyField(struct ndr_print *ndr, const char *name, enum spoolss_PrintNotifyField r)
18103 const char *val = NULL;
18106 case PRINTER_NOTIFY_FIELD_SERVER_NAME: val = "PRINTER_NOTIFY_FIELD_SERVER_NAME"; break;
18107 case PRINTER_NOTIFY_FIELD_PRINTER_NAME: val = "PRINTER_NOTIFY_FIELD_PRINTER_NAME"; break;
18108 case PRINTER_NOTIFY_FIELD_SHARE_NAME: val = "PRINTER_NOTIFY_FIELD_SHARE_NAME"; break;
18109 case PRINTER_NOTIFY_FIELD_PORT_NAME: val = "PRINTER_NOTIFY_FIELD_PORT_NAME"; break;
18110 case PRINTER_NOTIFY_FIELD_DRIVER_NAME: val = "PRINTER_NOTIFY_FIELD_DRIVER_NAME"; break;
18111 case PRINTER_NOTIFY_FIELD_COMMENT: val = "PRINTER_NOTIFY_FIELD_COMMENT"; break;
18112 case PRINTER_NOTIFY_FIELD_LOCATION: val = "PRINTER_NOTIFY_FIELD_LOCATION"; break;
18113 case PRINTER_NOTIFY_FIELD_DEVMODE: val = "PRINTER_NOTIFY_FIELD_DEVMODE"; break;
18114 case PRINTER_NOTIFY_FIELD_SEPFILE: val = "PRINTER_NOTIFY_FIELD_SEPFILE"; break;
18115 case PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR: val = "PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR"; break;
18116 case PRINTER_NOTIFY_FIELD_PARAMETERS: val = "PRINTER_NOTIFY_FIELD_PARAMETERS"; break;
18117 case PRINTER_NOTIFY_FIELD_DATATYPE: val = "PRINTER_NOTIFY_FIELD_DATATYPE"; break;
18118 case PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR: val = "PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR"; break;
18119 case PRINTER_NOTIFY_FIELD_ATTRIBUTES: val = "PRINTER_NOTIFY_FIELD_ATTRIBUTES"; break;
18120 case PRINTER_NOTIFY_FIELD_PRIORITY: val = "PRINTER_NOTIFY_FIELD_PRIORITY"; break;
18121 case PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY: val = "PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY"; break;
18122 case PRINTER_NOTIFY_FIELD_START_TIME: val = "PRINTER_NOTIFY_FIELD_START_TIME"; break;
18123 case PRINTER_NOTIFY_FIELD_UNTIL_TIME: val = "PRINTER_NOTIFY_FIELD_UNTIL_TIME"; break;
18124 case PRINTER_NOTIFY_FIELD_STATUS: val = "PRINTER_NOTIFY_FIELD_STATUS"; break;
18125 case PRINTER_NOTIFY_FIELD_STATUS_STRING: val = "PRINTER_NOTIFY_FIELD_STATUS_STRING"; break;
18126 case PRINTER_NOTIFY_FIELD_CJOBS: val = "PRINTER_NOTIFY_FIELD_CJOBS"; break;
18127 case PRINTER_NOTIFY_FIELD_AVERAGE_PPM: val = "PRINTER_NOTIFY_FIELD_AVERAGE_PPM"; break;
18128 case PRINTER_NOTIFY_FIELD_TOTAL_PAGES: val = "PRINTER_NOTIFY_FIELD_TOTAL_PAGES"; break;
18129 case PRINTER_NOTIFY_FIELD_PAGES_PRINTED: val = "PRINTER_NOTIFY_FIELD_PAGES_PRINTED"; break;
18130 case PRINTER_NOTIFY_FIELD_TOTAL_BYTES: val = "PRINTER_NOTIFY_FIELD_TOTAL_BYTES"; break;
18131 case PRINTER_NOTIFY_FIELD_BYTES_PRINTED: val = "PRINTER_NOTIFY_FIELD_BYTES_PRINTED"; break;
18132 case PRINTER_NOTIFY_FIELD_OBJECT_GUID: val = "PRINTER_NOTIFY_FIELD_OBJECT_GUID"; break;
18133 case PRINTER_NOTIFY_FIELD_FRIENDLY_NAME: val = "PRINTER_NOTIFY_FIELD_FRIENDLY_NAME"; break;
18135 ndr_print_enum(ndr, name, "ENUM", val, r);
18138 static enum ndr_err_code ndr_push_spoolss_NotifyType(struct ndr_push *ndr, int ndr_flags, enum spoolss_NotifyType r)
18140 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
18141 return NDR_ERR_SUCCESS;
18144 static enum ndr_err_code ndr_pull_spoolss_NotifyType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_NotifyType *r)
18147 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
18149 return NDR_ERR_SUCCESS;
18152 _PUBLIC_ void ndr_print_spoolss_NotifyType(struct ndr_print *ndr, const char *name, enum spoolss_NotifyType r)
18154 const char *val = NULL;
18157 case PRINTER_NOTIFY_TYPE: val = "PRINTER_NOTIFY_TYPE"; break;
18158 case JOB_NOTIFY_TYPE: val = "JOB_NOTIFY_TYPE"; break;
18160 ndr_print_enum(ndr, name, "ENUM", val, r);
18163 static enum ndr_err_code ndr_push_spoolss_Field(struct ndr_push *ndr, int ndr_flags, const union spoolss_Field *r)
18165 if (ndr_flags & NDR_SCALARS) {
18166 int level = ndr_push_get_switch_value(ndr, r);
18167 NDR_CHECK(ndr_push_union_align(ndr, 2));
18169 case PRINTER_NOTIFY_TYPE: {
18170 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->field));
18173 case JOB_NOTIFY_TYPE: {
18174 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->field));
18178 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->field));
18183 if (ndr_flags & NDR_BUFFERS) {
18184 int level = ndr_push_get_switch_value(ndr, r);
18186 case PRINTER_NOTIFY_TYPE:
18189 case JOB_NOTIFY_TYPE:
18197 return NDR_ERR_SUCCESS;
18200 static enum ndr_err_code ndr_pull_spoolss_Field(struct ndr_pull *ndr, int ndr_flags, union spoolss_Field *r)
18203 level = ndr_pull_get_switch_value(ndr, r);
18204 if (ndr_flags & NDR_SCALARS) {
18205 NDR_CHECK(ndr_pull_union_align(ndr, 2));
18207 case PRINTER_NOTIFY_TYPE: {
18208 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->field));
18211 case JOB_NOTIFY_TYPE: {
18212 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->field));
18216 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->field));
18221 if (ndr_flags & NDR_BUFFERS) {
18223 case PRINTER_NOTIFY_TYPE:
18226 case JOB_NOTIFY_TYPE:
18234 return NDR_ERR_SUCCESS;
18237 static enum ndr_err_code ndr_push_spoolss_NotifyOptionType(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyOptionType *r)
18239 uint32_t cntr_fields_1;
18240 if (ndr_flags & NDR_SCALARS) {
18241 NDR_CHECK(ndr_push_align(ndr, 5));
18242 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr, NDR_SCALARS, r->type));
18243 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->u1));
18244 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u2));
18245 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u3));
18246 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
18247 NDR_CHECK(ndr_push_unique_ptr(ndr, r->fields));
18248 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18250 if (ndr_flags & NDR_BUFFERS) {
18252 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
18253 for (cntr_fields_1 = 0; cntr_fields_1 < r->count; cntr_fields_1++) {
18254 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->fields[cntr_fields_1], r->type));
18255 NDR_CHECK(ndr_push_spoolss_Field(ndr, NDR_SCALARS, &r->fields[cntr_fields_1]));
18259 return NDR_ERR_SUCCESS;
18262 static enum ndr_err_code ndr_pull_spoolss_NotifyOptionType(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyOptionType *r)
18264 uint32_t _ptr_fields;
18265 uint32_t cntr_fields_1;
18266 TALLOC_CTX *_mem_save_fields_0;
18267 TALLOC_CTX *_mem_save_fields_1;
18268 if (ndr_flags & NDR_SCALARS) {
18269 NDR_CHECK(ndr_pull_align(ndr, 5));
18270 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr, NDR_SCALARS, &r->type));
18271 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->u1));
18272 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u2));
18273 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u3));
18274 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
18275 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_fields));
18277 NDR_PULL_ALLOC(ndr, r->fields);
18281 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
18283 if (ndr_flags & NDR_BUFFERS) {
18285 _mem_save_fields_0 = NDR_PULL_GET_MEM_CTX(ndr);
18286 NDR_PULL_SET_MEM_CTX(ndr, r->fields, 0);
18287 NDR_CHECK(ndr_pull_array_size(ndr, &r->fields));
18288 NDR_PULL_ALLOC_N(ndr, r->fields, ndr_get_array_size(ndr, &r->fields));
18289 _mem_save_fields_1 = NDR_PULL_GET_MEM_CTX(ndr);
18290 NDR_PULL_SET_MEM_CTX(ndr, r->fields, 0);
18291 for (cntr_fields_1 = 0; cntr_fields_1 < r->count; cntr_fields_1++) {
18292 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->fields[cntr_fields_1], r->type));
18293 NDR_CHECK(ndr_pull_spoolss_Field(ndr, NDR_SCALARS, &r->fields[cntr_fields_1]));
18295 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fields_1, 0);
18296 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fields_0, 0);
18299 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->fields, r->count));
18302 return NDR_ERR_SUCCESS;
18305 _PUBLIC_ void ndr_print_spoolss_NotifyOptionType(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyOptionType *r)
18307 uint32_t cntr_fields_1;
18308 ndr_print_struct(ndr, name, "spoolss_NotifyOptionType");
18310 ndr_print_spoolss_NotifyType(ndr, "type", r->type);
18311 ndr_print_uint16(ndr, "u1", r->u1);
18312 ndr_print_uint32(ndr, "u2", r->u2);
18313 ndr_print_uint32(ndr, "u3", r->u3);
18314 ndr_print_uint32(ndr, "count", r->count);
18315 ndr_print_ptr(ndr, "fields", r->fields);
18318 ndr->print(ndr, "%s: ARRAY(%d)", "fields", (int)r->count);
18320 for (cntr_fields_1=0;cntr_fields_1<r->count;cntr_fields_1++) {
18322 if (asprintf(&idx_1, "[%d]", cntr_fields_1) != -1) {
18323 ndr_print_set_switch_value(ndr, &r->fields[cntr_fields_1], r->type);
18324 ndr_print_spoolss_Field(ndr, "fields", &r->fields[cntr_fields_1]);
18334 static enum ndr_err_code ndr_push_spoolssNotifyOptionFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
18336 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
18337 return NDR_ERR_SUCCESS;
18340 static enum ndr_err_code ndr_pull_spoolssNotifyOptionFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
18343 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
18345 return NDR_ERR_SUCCESS;
18348 _PUBLIC_ void ndr_print_spoolssNotifyOptionFlags(struct ndr_print *ndr, const char *name, uint32_t r)
18350 ndr_print_uint32(ndr, name, r);
18352 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_OPTIONS_REFRESH", PRINTER_NOTIFY_OPTIONS_REFRESH, r);
18356 static enum ndr_err_code ndr_push_spoolss_NotifyOption(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyOption *r)
18358 uint32_t cntr_types_1;
18359 if (ndr_flags & NDR_SCALARS) {
18360 NDR_CHECK(ndr_push_align(ndr, 5));
18361 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
18362 NDR_CHECK(ndr_push_spoolssNotifyOptionFlags(ndr, NDR_SCALARS, r->flags));
18363 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
18364 NDR_CHECK(ndr_push_unique_ptr(ndr, r->types));
18365 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18367 if (ndr_flags & NDR_BUFFERS) {
18369 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
18370 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
18371 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr, NDR_SCALARS, &r->types[cntr_types_1]));
18373 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
18374 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr, NDR_BUFFERS, &r->types[cntr_types_1]));
18378 return NDR_ERR_SUCCESS;
18381 static enum ndr_err_code ndr_pull_spoolss_NotifyOption(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyOption *r)
18383 uint32_t _ptr_types;
18384 uint32_t cntr_types_1;
18385 TALLOC_CTX *_mem_save_types_0;
18386 TALLOC_CTX *_mem_save_types_1;
18387 if (ndr_flags & NDR_SCALARS) {
18388 NDR_CHECK(ndr_pull_align(ndr, 5));
18389 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
18390 NDR_CHECK(ndr_pull_spoolssNotifyOptionFlags(ndr, NDR_SCALARS, &r->flags));
18391 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
18392 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_types));
18394 NDR_PULL_ALLOC(ndr, r->types);
18398 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
18400 if (ndr_flags & NDR_BUFFERS) {
18402 _mem_save_types_0 = NDR_PULL_GET_MEM_CTX(ndr);
18403 NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
18404 NDR_CHECK(ndr_pull_array_size(ndr, &r->types));
18405 NDR_PULL_ALLOC_N(ndr, r->types, ndr_get_array_size(ndr, &r->types));
18406 _mem_save_types_1 = NDR_PULL_GET_MEM_CTX(ndr);
18407 NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
18408 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
18409 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr, NDR_SCALARS, &r->types[cntr_types_1]));
18411 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
18412 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr, NDR_BUFFERS, &r->types[cntr_types_1]));
18414 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_1, 0);
18415 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_0, 0);
18418 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->types, r->count));
18421 return NDR_ERR_SUCCESS;
18424 _PUBLIC_ void ndr_print_spoolss_NotifyOption(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyOption *r)
18426 uint32_t cntr_types_1;
18427 ndr_print_struct(ndr, name, "spoolss_NotifyOption");
18429 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
18430 ndr_print_spoolssNotifyOptionFlags(ndr, "flags", r->flags);
18431 ndr_print_uint32(ndr, "count", r->count);
18432 ndr_print_ptr(ndr, "types", r->types);
18435 ndr->print(ndr, "%s: ARRAY(%d)", "types", (int)r->count);
18437 for (cntr_types_1=0;cntr_types_1<r->count;cntr_types_1++) {
18439 if (asprintf(&idx_1, "[%d]", cntr_types_1) != -1) {
18440 ndr_print_spoolss_NotifyOptionType(ndr, "types", &r->types[cntr_types_1]);
18450 static enum ndr_err_code ndr_push_spoolss_NotifyString(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyString *r)
18452 if (ndr_flags & NDR_SCALARS) {
18453 NDR_CHECK(ndr_push_align(ndr, 5));
18454 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
18455 NDR_CHECK(ndr_push_unique_ptr(ndr, r->string));
18456 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18458 if (ndr_flags & NDR_BUFFERS) {
18460 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->size / 2));
18461 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->string, r->size / 2, sizeof(uint16_t), CH_UTF16));
18464 return NDR_ERR_SUCCESS;
18467 static enum ndr_err_code ndr_pull_spoolss_NotifyString(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyString *r)
18469 uint32_t _ptr_string;
18470 TALLOC_CTX *_mem_save_string_0;
18471 if (ndr_flags & NDR_SCALARS) {
18472 NDR_CHECK(ndr_pull_align(ndr, 5));
18473 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
18474 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_string));
18476 NDR_PULL_ALLOC(ndr, r->string);
18480 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
18482 if (ndr_flags & NDR_BUFFERS) {
18484 _mem_save_string_0 = NDR_PULL_GET_MEM_CTX(ndr);
18485 NDR_PULL_SET_MEM_CTX(ndr, r->string, 0);
18486 NDR_CHECK(ndr_pull_array_size(ndr, &r->string));
18487 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->string, ndr_get_array_size(ndr, &r->string), sizeof(uint16_t), CH_UTF16));
18488 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_string_0, 0);
18491 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->string, r->size / 2));
18494 return NDR_ERR_SUCCESS;
18497 _PUBLIC_ void ndr_print_spoolss_NotifyString(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyString *r)
18499 ndr_print_struct(ndr, name, "spoolss_NotifyString");
18501 ndr_print_uint32(ndr, "size", r->size);
18502 ndr_print_ptr(ndr, "string", r->string);
18505 ndr_print_string(ndr, "string", r->string);
18511 static enum ndr_err_code ndr_push_spoolss_NotifyTable(struct ndr_push *ndr, int ndr_flags, enum spoolss_NotifyTable r)
18513 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
18514 return NDR_ERR_SUCCESS;
18517 static enum ndr_err_code ndr_pull_spoolss_NotifyTable(struct ndr_pull *ndr, int ndr_flags, enum spoolss_NotifyTable *r)
18520 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
18522 return NDR_ERR_SUCCESS;
18525 _PUBLIC_ void ndr_print_spoolss_NotifyTable(struct ndr_print *ndr, const char *name, enum spoolss_NotifyTable r)
18527 const char *val = NULL;
18530 case NOTIFY_TABLE_DWORD: val = "NOTIFY_TABLE_DWORD"; break;
18531 case NOTIFY_TABLE_STRING: val = "NOTIFY_TABLE_STRING"; break;
18532 case NOTIFY_TABLE_DEVMODE: val = "NOTIFY_TABLE_DEVMODE"; break;
18533 case NOTIFY_TABLE_TIME: val = "NOTIFY_TABLE_TIME"; break;
18534 case NOTIFY_TABLE_SECURITYDESCRIPTOR: val = "NOTIFY_TABLE_SECURITYDESCRIPTOR"; break;
18536 ndr_print_enum(ndr, name, "ENUM", val, r);
18539 static enum ndr_err_code ndr_push_spoolss_NotifyData(struct ndr_push *ndr, int ndr_flags, const union spoolss_NotifyData *r)
18541 if (ndr_flags & NDR_SCALARS) {
18542 int level = ndr_push_get_switch_value(ndr, r);
18543 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
18544 NDR_CHECK(ndr_push_union_align(ndr, 5));
18547 uint32_t cntr_integer_0;
18548 for (cntr_integer_0 = 0; cntr_integer_0 < 2; cntr_integer_0++) {
18549 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->integer[cntr_integer_0]));
18554 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr, NDR_SCALARS, &r->string));
18558 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS, &r->devmode));
18562 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr, NDR_SCALARS, &r->time));
18566 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sd));
18570 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18573 if (ndr_flags & NDR_BUFFERS) {
18574 int level = ndr_push_get_switch_value(ndr, r);
18580 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr, NDR_BUFFERS, &r->string));
18584 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_BUFFERS, &r->devmode));
18588 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr, NDR_BUFFERS, &r->time));
18592 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd));
18596 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18599 return NDR_ERR_SUCCESS;
18602 static enum ndr_err_code ndr_pull_spoolss_NotifyData(struct ndr_pull *ndr, int ndr_flags, union spoolss_NotifyData *r)
18606 level = ndr_pull_get_switch_value(ndr, r);
18607 if (ndr_flags & NDR_SCALARS) {
18608 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
18609 if (_level != level) {
18610 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
18612 NDR_CHECK(ndr_pull_union_align(ndr, 5));
18615 uint32_t cntr_integer_0;
18616 for (cntr_integer_0 = 0; cntr_integer_0 < 2; cntr_integer_0++) {
18617 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->integer[cntr_integer_0]));
18622 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr, NDR_SCALARS, &r->string));
18626 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS, &r->devmode));
18630 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr, NDR_SCALARS, &r->time));
18634 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sd));
18638 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18641 if (ndr_flags & NDR_BUFFERS) {
18647 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr, NDR_BUFFERS, &r->string));
18651 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_BUFFERS, &r->devmode));
18655 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr, NDR_BUFFERS, &r->time));
18659 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd));
18663 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18666 return NDR_ERR_SUCCESS;
18669 _PUBLIC_ void ndr_print_spoolss_NotifyData(struct ndr_print *ndr, const char *name, const union spoolss_NotifyData *r)
18672 uint32_t cntr_integer_0;
18673 level = ndr_print_get_switch_value(ndr, r);
18674 ndr_print_union(ndr, name, level, "spoolss_NotifyData");
18677 ndr->print(ndr, "%s: ARRAY(%d)", "integer", (int)2);
18679 for (cntr_integer_0=0;cntr_integer_0<2;cntr_integer_0++) {
18681 if (asprintf(&idx_0, "[%d]", cntr_integer_0) != -1) {
18682 ndr_print_uint32(ndr, "integer", r->integer[cntr_integer_0]);
18690 ndr_print_spoolss_NotifyString(ndr, "string", &r->string);
18694 ndr_print_spoolss_DevmodeContainer(ndr, "devmode", &r->devmode);
18698 ndr_print_spoolss_TimeCtr(ndr, "time", &r->time);
18702 ndr_print_sec_desc_buf(ndr, "sd", &r->sd);
18706 ndr_print_bad_level(ndr, name, level);
18710 static enum ndr_err_code ndr_push_spoolss_Notify(struct ndr_push *ndr, int ndr_flags, const struct spoolss_Notify *r)
18712 if (ndr_flags & NDR_SCALARS) {
18713 NDR_CHECK(ndr_push_align(ndr, 5));
18714 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr, NDR_SCALARS, r->type));
18715 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->field, r->type));
18716 NDR_CHECK(ndr_push_spoolss_Field(ndr, NDR_SCALARS, &r->field));
18717 NDR_CHECK(ndr_push_spoolss_NotifyTable(ndr, NDR_SCALARS, r->variable_type));
18718 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
18719 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->data, r->variable_type));
18720 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr, NDR_SCALARS, &r->data));
18721 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18723 if (ndr_flags & NDR_BUFFERS) {
18724 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr, NDR_BUFFERS, &r->data));
18726 return NDR_ERR_SUCCESS;
18729 static enum ndr_err_code ndr_pull_spoolss_Notify(struct ndr_pull *ndr, int ndr_flags, struct spoolss_Notify *r)
18731 if (ndr_flags & NDR_SCALARS) {
18732 NDR_CHECK(ndr_pull_align(ndr, 5));
18733 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr, NDR_SCALARS, &r->type));
18734 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->field, r->type));
18735 NDR_CHECK(ndr_pull_spoolss_Field(ndr, NDR_SCALARS, &r->field));
18736 NDR_CHECK(ndr_pull_spoolss_NotifyTable(ndr, NDR_SCALARS, &r->variable_type));
18737 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
18738 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->data, r->variable_type));
18739 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr, NDR_SCALARS, &r->data));
18740 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
18742 if (ndr_flags & NDR_BUFFERS) {
18743 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr, NDR_BUFFERS, &r->data));
18745 return NDR_ERR_SUCCESS;
18748 _PUBLIC_ void ndr_print_spoolss_Notify(struct ndr_print *ndr, const char *name, const struct spoolss_Notify *r)
18750 ndr_print_struct(ndr, name, "spoolss_Notify");
18752 ndr_print_spoolss_NotifyType(ndr, "type", r->type);
18753 ndr_print_set_switch_value(ndr, &r->field, r->type);
18754 ndr_print_spoolss_Field(ndr, "field", &r->field);
18755 ndr_print_spoolss_NotifyTable(ndr, "variable_type", r->variable_type);
18756 ndr_print_uint32(ndr, "job_id", r->job_id);
18757 ndr_print_set_switch_value(ndr, &r->data, r->variable_type);
18758 ndr_print_spoolss_NotifyData(ndr, "data", &r->data);
18762 static enum ndr_err_code ndr_push_spoolss_NotifyInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyInfo *r)
18764 uint32_t cntr_notifies_0;
18765 if (ndr_flags & NDR_SCALARS) {
18766 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
18767 NDR_CHECK(ndr_push_align(ndr, 5));
18768 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
18769 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
18770 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
18771 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
18772 NDR_CHECK(ndr_push_spoolss_Notify(ndr, NDR_SCALARS, &r->notifies[cntr_notifies_0]));
18774 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18776 if (ndr_flags & NDR_BUFFERS) {
18777 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
18778 NDR_CHECK(ndr_push_spoolss_Notify(ndr, NDR_BUFFERS, &r->notifies[cntr_notifies_0]));
18781 return NDR_ERR_SUCCESS;
18784 static enum ndr_err_code ndr_pull_spoolss_NotifyInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyInfo *r)
18786 uint32_t cntr_notifies_0;
18787 TALLOC_CTX *_mem_save_notifies_0;
18788 if (ndr_flags & NDR_SCALARS) {
18789 NDR_CHECK(ndr_pull_array_size(ndr, &r->notifies));
18790 NDR_CHECK(ndr_pull_align(ndr, 5));
18791 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
18792 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
18793 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
18794 NDR_PULL_ALLOC_N(ndr, r->notifies, ndr_get_array_size(ndr, &r->notifies));
18795 _mem_save_notifies_0 = NDR_PULL_GET_MEM_CTX(ndr);
18796 NDR_PULL_SET_MEM_CTX(ndr, r->notifies, 0);
18797 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
18798 NDR_CHECK(ndr_pull_spoolss_Notify(ndr, NDR_SCALARS, &r->notifies[cntr_notifies_0]));
18800 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notifies_0, 0);
18802 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->notifies, r->count));
18804 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
18806 if (ndr_flags & NDR_BUFFERS) {
18807 _mem_save_notifies_0 = NDR_PULL_GET_MEM_CTX(ndr);
18808 NDR_PULL_SET_MEM_CTX(ndr, r->notifies, 0);
18809 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
18810 NDR_CHECK(ndr_pull_spoolss_Notify(ndr, NDR_BUFFERS, &r->notifies[cntr_notifies_0]));
18812 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notifies_0, 0);
18814 return NDR_ERR_SUCCESS;
18817 _PUBLIC_ void ndr_print_spoolss_NotifyInfo(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyInfo *r)
18819 uint32_t cntr_notifies_0;
18820 ndr_print_struct(ndr, name, "spoolss_NotifyInfo");
18822 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
18823 ndr_print_uint32(ndr, "flags", r->flags);
18824 ndr_print_uint32(ndr, "count", r->count);
18825 ndr->print(ndr, "%s: ARRAY(%d)", "notifies", (int)r->count);
18827 for (cntr_notifies_0=0;cntr_notifies_0<r->count;cntr_notifies_0++) {
18829 if (asprintf(&idx_0, "[%d]", cntr_notifies_0) != -1) {
18830 ndr_print_spoolss_Notify(ndr, "notifies", &r->notifies[cntr_notifies_0]);
18838 static enum ndr_err_code ndr_push_spoolss_ReplyPrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_ReplyPrinterInfo *r)
18840 if (ndr_flags & NDR_SCALARS) {
18841 int level = ndr_push_get_switch_value(ndr, r);
18842 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
18843 NDR_CHECK(ndr_push_union_align(ndr, 5));
18846 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info0));
18850 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18853 if (ndr_flags & NDR_BUFFERS) {
18854 int level = ndr_push_get_switch_value(ndr, r);
18858 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
18863 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18866 return NDR_ERR_SUCCESS;
18869 static enum ndr_err_code ndr_pull_spoolss_ReplyPrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_ReplyPrinterInfo *r)
18873 TALLOC_CTX *_mem_save_info0_0;
18874 level = ndr_pull_get_switch_value(ndr, r);
18875 if (ndr_flags & NDR_SCALARS) {
18876 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
18877 if (_level != level) {
18878 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
18880 NDR_CHECK(ndr_pull_union_align(ndr, 5));
18883 uint32_t _ptr_info0;
18884 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0));
18886 NDR_PULL_ALLOC(ndr, r->info0);
18893 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18896 if (ndr_flags & NDR_BUFFERS) {
18900 _mem_save_info0_0 = NDR_PULL_GET_MEM_CTX(ndr);
18901 NDR_PULL_SET_MEM_CTX(ndr, r->info0, 0);
18902 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
18903 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info0_0, 0);
18908 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18911 return NDR_ERR_SUCCESS;
18914 _PUBLIC_ void ndr_print_spoolss_ReplyPrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_ReplyPrinterInfo *r)
18917 level = ndr_print_get_switch_value(ndr, r);
18918 ndr_print_union(ndr, name, level, "spoolss_ReplyPrinterInfo");
18921 ndr_print_ptr(ndr, "info0", r->info0);
18924 ndr_print_spoolss_NotifyInfo(ndr, "info0", r->info0);
18930 ndr_print_bad_level(ndr, name, level);
18934 static enum ndr_err_code ndr_push_spoolss_PrinterNotifyFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
18936 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
18937 return NDR_ERR_SUCCESS;
18940 static enum ndr_err_code ndr_pull_spoolss_PrinterNotifyFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
18943 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
18945 return NDR_ERR_SUCCESS;
18948 _PUBLIC_ void ndr_print_spoolss_PrinterNotifyFlags(struct ndr_print *ndr, const char *name, uint32_t r)
18950 ndr_print_uint32(ndr, name, r);
18952 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDED", PRINTER_NOTIFY_INFO_DISCARDED, r);
18953 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDNOTED", PRINTER_NOTIFY_INFO_DISCARDNOTED, r);
18954 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_COLOR_MISMATCH", PRINTER_NOTIFY_INFO_COLOR_MISMATCH, r);
18958 static enum ndr_err_code ndr_push_spoolss_UserLevel1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel1 *r)
18960 if (ndr_flags & NDR_SCALARS) {
18961 NDR_CHECK(ndr_push_align(ndr, 5));
18962 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
18963 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client));
18964 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
18965 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
18966 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr, NDR_SCALARS, r->major));
18967 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr, NDR_SCALARS, r->minor));
18968 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor));
18969 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18971 if (ndr_flags & NDR_BUFFERS) {
18973 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
18974 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
18975 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
18976 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client, ndr_charset_length(r->client, CH_UTF16), sizeof(uint16_t), CH_UTF16));
18979 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
18980 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
18981 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
18982 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
18985 return NDR_ERR_SUCCESS;
18988 static enum ndr_err_code ndr_pull_spoolss_UserLevel1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel1 *r)
18990 uint32_t _ptr_client;
18991 TALLOC_CTX *_mem_save_client_0;
18992 uint32_t _ptr_user;
18993 TALLOC_CTX *_mem_save_user_0;
18994 if (ndr_flags & NDR_SCALARS) {
18995 NDR_CHECK(ndr_pull_align(ndr, 5));
18996 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
18997 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client));
18999 NDR_PULL_ALLOC(ndr, r->client);
19003 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
19005 NDR_PULL_ALLOC(ndr, r->user);
19009 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
19010 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr, NDR_SCALARS, &r->major));
19011 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr, NDR_SCALARS, &r->minor));
19012 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor));
19013 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
19015 if (ndr_flags & NDR_BUFFERS) {
19017 _mem_save_client_0 = NDR_PULL_GET_MEM_CTX(ndr);
19018 NDR_PULL_SET_MEM_CTX(ndr, r->client, 0);
19019 NDR_CHECK(ndr_pull_array_size(ndr, &r->client));
19020 NDR_CHECK(ndr_pull_array_length(ndr, &r->client));
19021 if (ndr_get_array_length(ndr, &r->client) > ndr_get_array_size(ndr, &r->client)) {
19022 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));
19024 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t)));
19025 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t), CH_UTF16));
19026 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0);
19029 _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
19030 NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
19031 NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
19032 NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
19033 if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) {
19034 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));
19036 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t)));
19037 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16));
19038 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
19041 return NDR_ERR_SUCCESS;
19044 _PUBLIC_ void ndr_print_spoolss_UserLevel1(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel1 *r)
19046 ndr_print_struct(ndr, name, "spoolss_UserLevel1");
19048 ndr_print_uint32(ndr, "size", r->size);
19049 ndr_print_ptr(ndr, "client", r->client);
19052 ndr_print_string(ndr, "client", r->client);
19055 ndr_print_ptr(ndr, "user", r->user);
19058 ndr_print_string(ndr, "user", r->user);
19061 ndr_print_uint32(ndr, "build", r->build);
19062 ndr_print_spoolss_MajorVersion(ndr, "major", r->major);
19063 ndr_print_spoolss_MinorVersion(ndr, "minor", r->minor);
19064 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor", r->processor);
19068 static enum ndr_err_code ndr_push_spoolss_UserLevel2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel2 *r)
19070 if (ndr_flags & NDR_SCALARS) {
19071 NDR_CHECK(ndr_push_align(ndr, 4));
19072 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->not_used));
19073 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
19075 if (ndr_flags & NDR_BUFFERS) {
19077 return NDR_ERR_SUCCESS;
19080 static enum ndr_err_code ndr_pull_spoolss_UserLevel2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel2 *r)
19082 if (ndr_flags & NDR_SCALARS) {
19083 NDR_CHECK(ndr_pull_align(ndr, 4));
19084 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->not_used));
19085 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
19087 if (ndr_flags & NDR_BUFFERS) {
19089 return NDR_ERR_SUCCESS;
19092 _PUBLIC_ void ndr_print_spoolss_UserLevel2(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel2 *r)
19094 ndr_print_struct(ndr, name, "spoolss_UserLevel2");
19096 ndr_print_uint32(ndr, "not_used", r->not_used);
19100 static enum ndr_err_code ndr_push_spoolss_UserLevel3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel3 *r)
19102 if (ndr_flags & NDR_SCALARS) {
19103 NDR_CHECK(ndr_push_align(ndr, 5));
19104 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
19105 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
19106 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size2));
19107 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client));
19108 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
19109 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
19110 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr, NDR_SCALARS, r->major));
19111 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr, NDR_SCALARS, r->minor));
19112 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor));
19113 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->reserved));
19114 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
19116 if (ndr_flags & NDR_BUFFERS) {
19118 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
19119 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
19120 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
19121 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client, ndr_charset_length(r->client, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19124 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
19125 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
19126 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
19127 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19130 return NDR_ERR_SUCCESS;
19133 static enum ndr_err_code ndr_pull_spoolss_UserLevel3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel3 *r)
19135 uint32_t _ptr_client;
19136 TALLOC_CTX *_mem_save_client_0;
19137 uint32_t _ptr_user;
19138 TALLOC_CTX *_mem_save_user_0;
19139 if (ndr_flags & NDR_SCALARS) {
19140 NDR_CHECK(ndr_pull_align(ndr, 5));
19141 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
19142 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
19143 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size2));
19144 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client));
19146 NDR_PULL_ALLOC(ndr, r->client);
19150 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
19152 NDR_PULL_ALLOC(ndr, r->user);
19156 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
19157 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr, NDR_SCALARS, &r->major));
19158 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr, NDR_SCALARS, &r->minor));
19159 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor));
19160 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->reserved));
19161 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
19163 if (ndr_flags & NDR_BUFFERS) {
19165 _mem_save_client_0 = NDR_PULL_GET_MEM_CTX(ndr);
19166 NDR_PULL_SET_MEM_CTX(ndr, r->client, 0);
19167 NDR_CHECK(ndr_pull_array_size(ndr, &r->client));
19168 NDR_CHECK(ndr_pull_array_length(ndr, &r->client));
19169 if (ndr_get_array_length(ndr, &r->client) > ndr_get_array_size(ndr, &r->client)) {
19170 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));
19172 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t)));
19173 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t), CH_UTF16));
19174 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0);
19177 _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
19178 NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
19179 NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
19180 NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
19181 if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) {
19182 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));
19184 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t)));
19185 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16));
19186 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
19189 return NDR_ERR_SUCCESS;
19192 _PUBLIC_ void ndr_print_spoolss_UserLevel3(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel3 *r)
19194 ndr_print_struct(ndr, name, "spoolss_UserLevel3");
19196 ndr_print_uint32(ndr, "size", r->size);
19197 ndr_print_uint32(ndr, "flags", r->flags);
19198 ndr_print_uint32(ndr, "size2", r->size2);
19199 ndr_print_ptr(ndr, "client", r->client);
19202 ndr_print_string(ndr, "client", r->client);
19205 ndr_print_ptr(ndr, "user", r->user);
19208 ndr_print_string(ndr, "user", r->user);
19211 ndr_print_uint32(ndr, "build", r->build);
19212 ndr_print_spoolss_MajorVersion(ndr, "major", r->major);
19213 ndr_print_spoolss_MinorVersion(ndr, "minor", r->minor);
19214 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor", r->processor);
19215 ndr_print_udlong(ndr, "reserved", r->reserved);
19219 static enum ndr_err_code ndr_push_spoolss_UserLevel(struct ndr_push *ndr, int ndr_flags, const union spoolss_UserLevel *r)
19221 if (ndr_flags & NDR_SCALARS) {
19222 int level = ndr_push_get_switch_value(ndr, r);
19223 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
19224 NDR_CHECK(ndr_push_union_align(ndr, 5));
19227 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level1));
19231 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level2));
19235 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level3));
19239 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19242 if (ndr_flags & NDR_BUFFERS) {
19243 int level = ndr_push_get_switch_value(ndr, r);
19247 NDR_CHECK(ndr_push_spoolss_UserLevel1(ndr, NDR_SCALARS|NDR_BUFFERS, r->level1));
19253 NDR_CHECK(ndr_push_spoolss_UserLevel2(ndr, NDR_SCALARS, r->level2));
19259 NDR_CHECK(ndr_push_spoolss_UserLevel3(ndr, NDR_SCALARS|NDR_BUFFERS, r->level3));
19264 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19267 return NDR_ERR_SUCCESS;
19270 static enum ndr_err_code ndr_pull_spoolss_UserLevel(struct ndr_pull *ndr, int ndr_flags, union spoolss_UserLevel *r)
19274 TALLOC_CTX *_mem_save_level1_0;
19275 TALLOC_CTX *_mem_save_level2_0;
19276 TALLOC_CTX *_mem_save_level3_0;
19277 level = ndr_pull_get_switch_value(ndr, r);
19278 if (ndr_flags & NDR_SCALARS) {
19279 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
19280 if (_level != level) {
19281 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
19283 NDR_CHECK(ndr_pull_union_align(ndr, 5));
19286 uint32_t _ptr_level1;
19287 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level1));
19289 NDR_PULL_ALLOC(ndr, r->level1);
19296 uint32_t _ptr_level2;
19297 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level2));
19299 NDR_PULL_ALLOC(ndr, r->level2);
19306 uint32_t _ptr_level3;
19307 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level3));
19309 NDR_PULL_ALLOC(ndr, r->level3);
19316 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19319 if (ndr_flags & NDR_BUFFERS) {
19323 _mem_save_level1_0 = NDR_PULL_GET_MEM_CTX(ndr);
19324 NDR_PULL_SET_MEM_CTX(ndr, r->level1, 0);
19325 NDR_CHECK(ndr_pull_spoolss_UserLevel1(ndr, NDR_SCALARS|NDR_BUFFERS, r->level1));
19326 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level1_0, 0);
19332 _mem_save_level2_0 = NDR_PULL_GET_MEM_CTX(ndr);
19333 NDR_PULL_SET_MEM_CTX(ndr, r->level2, 0);
19334 NDR_CHECK(ndr_pull_spoolss_UserLevel2(ndr, NDR_SCALARS, r->level2));
19335 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level2_0, 0);
19341 _mem_save_level3_0 = NDR_PULL_GET_MEM_CTX(ndr);
19342 NDR_PULL_SET_MEM_CTX(ndr, r->level3, 0);
19343 NDR_CHECK(ndr_pull_spoolss_UserLevel3(ndr, NDR_SCALARS|NDR_BUFFERS, r->level3));
19344 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level3_0, 0);
19349 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19352 return NDR_ERR_SUCCESS;
19355 _PUBLIC_ void ndr_print_spoolss_UserLevel(struct ndr_print *ndr, const char *name, const union spoolss_UserLevel *r)
19358 level = ndr_print_get_switch_value(ndr, r);
19359 ndr_print_union(ndr, name, level, "spoolss_UserLevel");
19362 ndr_print_ptr(ndr, "level1", r->level1);
19365 ndr_print_spoolss_UserLevel1(ndr, "level1", r->level1);
19371 ndr_print_ptr(ndr, "level2", r->level2);
19374 ndr_print_spoolss_UserLevel2(ndr, "level2", r->level2);
19380 ndr_print_ptr(ndr, "level3", r->level3);
19383 ndr_print_spoolss_UserLevel3(ndr, "level3", r->level3);
19389 ndr_print_bad_level(ndr, name, level);
19393 static enum ndr_err_code ndr_push_spoolss_UserLevelCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevelCtr *r)
19395 if (ndr_flags & NDR_SCALARS) {
19396 NDR_CHECK(ndr_push_align(ndr, 5));
19397 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
19398 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->user_info, r->level));
19399 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_SCALARS, &r->user_info));
19400 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
19402 if (ndr_flags & NDR_BUFFERS) {
19403 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_BUFFERS, &r->user_info));
19405 return NDR_ERR_SUCCESS;
19408 static enum ndr_err_code ndr_pull_spoolss_UserLevelCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevelCtr *r)
19410 if (ndr_flags & NDR_SCALARS) {
19411 NDR_CHECK(ndr_pull_align(ndr, 5));
19412 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
19413 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->user_info, r->level));
19414 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_SCALARS, &r->user_info));
19415 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
19417 if (ndr_flags & NDR_BUFFERS) {
19418 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_BUFFERS, &r->user_info));
19420 return NDR_ERR_SUCCESS;
19423 _PUBLIC_ void ndr_print_spoolss_UserLevelCtr(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevelCtr *r)
19425 ndr_print_struct(ndr, name, "spoolss_UserLevelCtr");
19427 ndr_print_uint32(ndr, "level", r->level);
19428 ndr_print_set_switch_value(ndr, &r->user_info, r->level);
19429 ndr_print_spoolss_UserLevel(ndr, "user_info", &r->user_info);
19433 static enum ndr_err_code ndr_push_spoolss_AccessRights(struct ndr_push *ndr, int ndr_flags, uint32_t r)
19435 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
19436 return NDR_ERR_SUCCESS;
19439 static enum ndr_err_code ndr_pull_spoolss_AccessRights(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
19442 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
19444 return NDR_ERR_SUCCESS;
19447 _PUBLIC_ void ndr_print_spoolss_AccessRights(struct ndr_print *ndr, const char *name, uint32_t r)
19449 ndr_print_uint32(ndr, name, r);
19451 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SERVER_ACCESS_ADMINISTER", SERVER_ACCESS_ADMINISTER, r);
19452 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SERVER_ACCESS_ENUMERATE", SERVER_ACCESS_ENUMERATE, r);
19453 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ACCESS_ADMINISTER", PRINTER_ACCESS_ADMINISTER, r);
19454 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ACCESS_USE", PRINTER_ACCESS_USE, r);
19455 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_ACCESS_ADMINISTER", JOB_ACCESS_ADMINISTER, r);
19456 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_ACCESS_READ", JOB_ACCESS_READ, r);
19460 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterEnumValues(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterEnumValues *r)
19462 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
19463 if (ndr_flags & NDR_SCALARS) {
19464 NDR_CHECK(ndr_push_align(ndr, 5));
19465 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
19467 uint32_t _flags_save_string = ndr->flags;
19468 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19469 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->value_name));
19470 ndr->flags = _flags_save_string;
19472 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2 * strlen_m_term(r->value_name)));
19473 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->type));
19474 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data));
19475 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_PrinterData(r->data, r->type, ndr->iconv_convenience, ndr->flags)));
19476 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
19478 if (ndr_flags & NDR_BUFFERS) {
19479 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
19481 uint32_t _flags_save_string = ndr->flags;
19482 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19483 if (r->value_name) {
19484 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->value_name));
19485 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->value_name));
19487 ndr->flags = _flags_save_string;
19490 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data));
19492 struct ndr_push *_ndr_data;
19493 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_data, 0, r->data_length));
19494 NDR_CHECK(ndr_push_set_switch_value(_ndr_data, r->data, r->type));
19495 NDR_CHECK(ndr_push_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, r->data));
19496 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_data, 0, r->data_length));
19500 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
19501 return NDR_ERR_SUCCESS;
19504 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterEnumValues(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterEnumValues *r)
19506 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
19507 uint32_t _ptr_value_name;
19508 TALLOC_CTX *_mem_save_value_name_0;
19509 uint32_t _ptr_data;
19510 TALLOC_CTX *_mem_save_data_0;
19511 if (ndr_flags & NDR_SCALARS) {
19512 NDR_CHECK(ndr_pull_align(ndr, 5));
19513 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
19515 uint32_t _flags_save_string = ndr->flags;
19516 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19517 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_value_name));
19518 if (_ptr_value_name) {
19519 NDR_PULL_ALLOC(ndr, r->value_name);
19520 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->value_name, _ptr_value_name));
19522 r->value_name = NULL;
19524 ndr->flags = _flags_save_string;
19526 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->value_name_len));
19527 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->type));
19528 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
19530 NDR_PULL_ALLOC(ndr, r->data);
19531 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data, _ptr_data));
19535 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->data_length));
19536 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
19538 if (ndr_flags & NDR_BUFFERS) {
19539 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
19541 uint32_t _flags_save_string = ndr->flags;
19542 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19543 if (r->value_name) {
19544 uint32_t _relative_save_offset;
19545 _relative_save_offset = ndr->offset;
19546 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->value_name));
19547 _mem_save_value_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
19548 NDR_PULL_SET_MEM_CTX(ndr, r->value_name, 0);
19549 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->value_name));
19550 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_name_0, 0);
19551 if (ndr->offset > ndr->relative_highest_offset) {
19552 ndr->relative_highest_offset = ndr->offset;
19554 ndr->offset = _relative_save_offset;
19556 ndr->flags = _flags_save_string;
19559 uint32_t _relative_save_offset;
19560 _relative_save_offset = ndr->offset;
19561 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data));
19562 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
19563 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
19565 struct ndr_pull *_ndr_data;
19566 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_data, 0, r->data_length));
19567 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data, r->data, r->type));
19568 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, r->data));
19569 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_data, 0, r->data_length));
19571 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
19572 if (ndr->offset > ndr->relative_highest_offset) {
19573 ndr->relative_highest_offset = ndr->offset;
19575 ndr->offset = _relative_save_offset;
19578 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
19579 return NDR_ERR_SUCCESS;
19582 _PUBLIC_ void ndr_print_spoolss_PrinterEnumValues(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterEnumValues *r)
19584 ndr_print_struct(ndr, name, "spoolss_PrinterEnumValues");
19586 ndr_print_ptr(ndr, "value_name", r->value_name);
19588 if (r->value_name) {
19589 ndr_print_string(ndr, "value_name", r->value_name);
19592 ndr_print_uint32(ndr, "value_name_len", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2 * strlen_m_term(r->value_name):r->value_name_len);
19593 ndr_print_winreg_Type(ndr, "type", r->type);
19594 ndr_print_ptr(ndr, "data", r->data);
19597 ndr_print_set_switch_value(ndr, r->data, r->type);
19598 ndr_print_spoolss_PrinterData(ndr, "data", r->data);
19601 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);
19605 _PUBLIC_ size_t ndr_size_spoolss_PrinterEnumValues(const struct spoolss_PrinterEnumValues *r, struct smb_iconv_convenience *ic, int flags)
19607 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterEnumValues, ic);
19610 static enum ndr_err_code ndr_push_spoolss_KeyNames(struct ndr_push *ndr, int ndr_flags, const union spoolss_KeyNames *r)
19612 if (ndr_flags & NDR_SCALARS) {
19613 int level = ndr_push_get_switch_value(ndr, r);
19614 NDR_CHECK(ndr_push_union_align(ndr, 4));
19624 uint32_t _flags_save_string_array = ndr->flags;
19625 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19626 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string_array));
19627 ndr->flags = _flags_save_string_array;
19633 if (ndr_flags & NDR_BUFFERS) {
19634 int level = ndr_push_get_switch_value(ndr, r);
19647 return NDR_ERR_SUCCESS;
19650 static enum ndr_err_code ndr_pull_spoolss_KeyNames(struct ndr_pull *ndr, int ndr_flags, union spoolss_KeyNames *r)
19653 level = ndr_pull_get_switch_value(ndr, r);
19654 if (ndr_flags & NDR_SCALARS) {
19655 NDR_CHECK(ndr_pull_union_align(ndr, 4));
19665 uint32_t _flags_save_string_array = ndr->flags;
19666 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19667 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string_array));
19668 ndr->flags = _flags_save_string_array;
19674 if (ndr_flags & NDR_BUFFERS) {
19687 return NDR_ERR_SUCCESS;
19690 _PUBLIC_ void ndr_print_spoolss_KeyNames(struct ndr_print *ndr, const char *name, const union spoolss_KeyNames *r)
19693 level = ndr_print_get_switch_value(ndr, r);
19694 ndr_print_union(ndr, name, level, "spoolss_KeyNames");
19703 ndr_print_string_array(ndr, "string_array", r->string_array);
19709 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DeleteDriverFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
19711 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
19712 return NDR_ERR_SUCCESS;
19715 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DeleteDriverFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
19718 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
19720 return NDR_ERR_SUCCESS;
19723 _PUBLIC_ void ndr_print_spoolss_DeleteDriverFlags(struct ndr_print *ndr, const char *name, uint32_t r)
19725 ndr_print_uint32(ndr, name, r);
19727 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_UNUSED_FILES", DPD_DELETE_UNUSED_FILES, r);
19728 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_SPECIFIC_VERSION", DPD_DELETE_SPECIFIC_VERSION, r);
19729 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_ALL_FILES", DPD_DELETE_ALL_FILES, r);
19733 static enum ndr_err_code ndr_push_spoolss_PortProtocol(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortProtocol r)
19735 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
19736 return NDR_ERR_SUCCESS;
19739 static enum ndr_err_code ndr_pull_spoolss_PortProtocol(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortProtocol *r)
19742 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
19744 return NDR_ERR_SUCCESS;
19747 _PUBLIC_ void ndr_print_spoolss_PortProtocol(struct ndr_print *ndr, const char *name, enum spoolss_PortProtocol r)
19749 const char *val = NULL;
19752 case PROTOCOL_RAWTCP_TYPE: val = "PROTOCOL_RAWTCP_TYPE"; break;
19753 case PROTOCOL_LPR_TYPE: val = "PROTOCOL_LPR_TYPE"; break;
19755 ndr_print_enum(ndr, name, "ENUM", val, r);
19758 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortData1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortData1 *r)
19760 if (ndr_flags & NDR_SCALARS) {
19761 NDR_CHECK(ndr_push_align(ndr, 4));
19762 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, 64, sizeof(uint16_t), CH_UTF16));
19763 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0x00000001));
19764 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr, NDR_SCALARS, r->protocol));
19765 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, sizeof(r)));
19766 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
19767 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hostaddress, 49, sizeof(uint16_t), CH_UTF16));
19768 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
19769 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dblspool));
19770 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->queue, 33, sizeof(uint16_t), CH_UTF16));
19771 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->ip_address, 16, sizeof(uint16_t), CH_UTF16));
19772 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_address, 13, sizeof(uint16_t), CH_UTF16));
19773 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->device_type, 257, sizeof(uint16_t), CH_UTF16));
19774 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_number));
19775 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_enabled));
19776 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_dev_index));
19777 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
19779 if (ndr_flags & NDR_BUFFERS) {
19781 return NDR_ERR_SUCCESS;
19784 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortData1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortData1 *r)
19786 if (ndr_flags & NDR_SCALARS) {
19787 NDR_CHECK(ndr_pull_align(ndr, 4));
19788 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, 64, sizeof(uint16_t), CH_UTF16));
19789 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
19790 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr, NDR_SCALARS, &r->protocol));
19791 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
19792 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
19793 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hostaddress, 49, sizeof(uint16_t), CH_UTF16));
19794 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
19795 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dblspool));
19796 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->queue, 33, sizeof(uint16_t), CH_UTF16));
19797 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->ip_address, 16, sizeof(uint16_t), CH_UTF16));
19798 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_address, 13, sizeof(uint16_t), CH_UTF16));
19799 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device_type, 257, sizeof(uint16_t), CH_UTF16));
19800 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_number));
19801 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_enabled));
19802 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_dev_index));
19803 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
19805 if (ndr_flags & NDR_BUFFERS) {
19807 return NDR_ERR_SUCCESS;
19810 _PUBLIC_ void ndr_print_spoolss_PortData1(struct ndr_print *ndr, const char *name, const struct spoolss_PortData1 *r)
19812 ndr_print_struct(ndr, name, "spoolss_PortData1");
19814 ndr_print_string(ndr, "portname", r->portname);
19815 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x00000001:r->version);
19816 ndr_print_spoolss_PortProtocol(ndr, "protocol", r->protocol);
19817 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?sizeof(r):r->size);
19818 ndr_print_uint32(ndr, "reserved", r->reserved);
19819 ndr_print_string(ndr, "hostaddress", r->hostaddress);
19820 ndr_print_string(ndr, "snmpcommunity", r->snmpcommunity);
19821 ndr_print_uint32(ndr, "dblspool", r->dblspool);
19822 ndr_print_string(ndr, "queue", r->queue);
19823 ndr_print_string(ndr, "ip_address", r->ip_address);
19824 ndr_print_string(ndr, "hardware_address", r->hardware_address);
19825 ndr_print_string(ndr, "device_type", r->device_type);
19826 ndr_print_uint32(ndr, "port_number", r->port_number);
19827 ndr_print_uint32(ndr, "snmp_enabled", r->snmp_enabled);
19828 ndr_print_uint32(ndr, "snmp_dev_index", r->snmp_dev_index);
19832 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortData2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortData2 *r)
19834 if (ndr_flags & NDR_SCALARS) {
19835 NDR_CHECK(ndr_push_align(ndr, 4));
19836 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, 64, sizeof(uint16_t), CH_UTF16));
19837 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0x00000002));
19838 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr, NDR_SCALARS, r->protocol));
19839 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, sizeof(r)));
19840 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
19841 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hostaddress, 128, sizeof(uint16_t), CH_UTF16));
19842 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
19843 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dblspool));
19844 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->queue, 33, sizeof(uint16_t), CH_UTF16));
19845 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->device_type, 257, sizeof(uint16_t), CH_UTF16));
19846 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_number));
19847 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_enabled));
19848 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_dev_index));
19849 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_monitor_mib_index));
19850 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
19852 if (ndr_flags & NDR_BUFFERS) {
19854 return NDR_ERR_SUCCESS;
19857 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortData2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortData2 *r)
19859 if (ndr_flags & NDR_SCALARS) {
19860 NDR_CHECK(ndr_pull_align(ndr, 4));
19861 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, 64, sizeof(uint16_t), CH_UTF16));
19862 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
19863 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr, NDR_SCALARS, &r->protocol));
19864 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
19865 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
19866 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hostaddress, 128, sizeof(uint16_t), CH_UTF16));
19867 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
19868 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dblspool));
19869 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->queue, 33, sizeof(uint16_t), CH_UTF16));
19870 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device_type, 257, sizeof(uint16_t), CH_UTF16));
19871 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_number));
19872 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_enabled));
19873 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_dev_index));
19874 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_monitor_mib_index));
19875 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
19877 if (ndr_flags & NDR_BUFFERS) {
19879 return NDR_ERR_SUCCESS;
19882 _PUBLIC_ void ndr_print_spoolss_PortData2(struct ndr_print *ndr, const char *name, const struct spoolss_PortData2 *r)
19884 ndr_print_struct(ndr, name, "spoolss_PortData2");
19886 ndr_print_string(ndr, "portname", r->portname);
19887 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x00000002:r->version);
19888 ndr_print_spoolss_PortProtocol(ndr, "protocol", r->protocol);
19889 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?sizeof(r):r->size);
19890 ndr_print_uint32(ndr, "reserved", r->reserved);
19891 ndr_print_string(ndr, "hostaddress", r->hostaddress);
19892 ndr_print_string(ndr, "snmpcommunity", r->snmpcommunity);
19893 ndr_print_uint32(ndr, "dblspool", r->dblspool);
19894 ndr_print_string(ndr, "queue", r->queue);
19895 ndr_print_string(ndr, "device_type", r->device_type);
19896 ndr_print_uint32(ndr, "port_number", r->port_number);
19897 ndr_print_uint32(ndr, "snmp_enabled", r->snmp_enabled);
19898 ndr_print_uint32(ndr, "snmp_dev_index", r->snmp_dev_index);
19899 ndr_print_uint32(ndr, "port_monitor_mib_index", r->port_monitor_mib_index);
19903 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorUi(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorUi *r)
19905 if (ndr_flags & NDR_SCALARS) {
19906 NDR_CHECK(ndr_push_align(ndr, 4));
19908 uint32_t _flags_save_string = ndr->flags;
19909 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19910 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dll_name));
19911 ndr->flags = _flags_save_string;
19913 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
19915 if (ndr_flags & NDR_BUFFERS) {
19917 return NDR_ERR_SUCCESS;
19920 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorUi(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorUi *r)
19922 if (ndr_flags & NDR_SCALARS) {
19923 NDR_CHECK(ndr_pull_align(ndr, 4));
19925 uint32_t _flags_save_string = ndr->flags;
19926 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19927 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->dll_name));
19928 ndr->flags = _flags_save_string;
19930 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
19932 if (ndr_flags & NDR_BUFFERS) {
19934 return NDR_ERR_SUCCESS;
19937 _PUBLIC_ void ndr_print_spoolss_MonitorUi(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorUi *r)
19939 ndr_print_struct(ndr, name, "spoolss_MonitorUi");
19941 ndr_print_string(ndr, "dll_name", r->dll_name);
19945 static enum ndr_err_code ndr_push_spoolss_AddPrinterDriverExFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
19947 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
19948 return NDR_ERR_SUCCESS;
19951 static enum ndr_err_code ndr_pull_spoolss_AddPrinterDriverExFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
19954 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
19956 return NDR_ERR_SUCCESS;
19959 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriverExFlags(struct ndr_print *ndr, const char *name, uint32_t r)
19961 ndr_print_uint32(ndr, name, r);
19963 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_STRICT_UPGRADE", APD_STRICT_UPGRADE, r);
19964 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_STRICT_DOWNGRADE", APD_STRICT_DOWNGRADE, r);
19965 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_ALL_FILES", APD_COPY_ALL_FILES, r);
19966 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_NEW_FILES", APD_COPY_NEW_FILES, r);
19967 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_FROM_DIRECTORY", APD_COPY_FROM_DIRECTORY, r);
19968 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_DONT_COPY_FILES_TO_CLUSTER", APD_DONT_COPY_FILES_TO_CLUSTER, r);
19969 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_TO_ALL_SPOOLERS", APD_COPY_TO_ALL_SPOOLERS, r);
19970 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_RETURN_BLOCKING_STATUS_CODE", APD_RETURN_BLOCKING_STATUS_CODE, r);
19974 static enum ndr_err_code ndr_push_spoolss_CorePrinterDriver(struct ndr_push *ndr, int ndr_flags, const struct spoolss_CorePrinterDriver *r)
19976 if (ndr_flags & NDR_SCALARS) {
19977 NDR_CHECK(ndr_push_align(ndr, 8));
19978 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->core_driver_guid));
19979 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
19980 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
19981 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->formname, 520, sizeof(uint8_t), CH_UTF8));
19982 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
19984 if (ndr_flags & NDR_BUFFERS) {
19986 return NDR_ERR_SUCCESS;
19989 static enum ndr_err_code ndr_pull_spoolss_CorePrinterDriver(struct ndr_pull *ndr, int ndr_flags, struct spoolss_CorePrinterDriver *r)
19991 if (ndr_flags & NDR_SCALARS) {
19992 NDR_CHECK(ndr_pull_align(ndr, 8));
19993 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->core_driver_guid));
19994 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
19995 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
19996 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->formname, 520, sizeof(uint8_t), CH_UTF8));
19997 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
19999 if (ndr_flags & NDR_BUFFERS) {
20001 return NDR_ERR_SUCCESS;
20004 _PUBLIC_ void ndr_print_spoolss_CorePrinterDriver(struct ndr_print *ndr, const char *name, const struct spoolss_CorePrinterDriver *r)
20006 ndr_print_struct(ndr, name, "spoolss_CorePrinterDriver");
20008 ndr_print_GUID(ndr, "core_driver_guid", &r->core_driver_guid);
20009 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
20010 ndr_print_hyper(ndr, "driver_version", r->driver_version);
20011 ndr_print_string(ndr, "formname", r->formname);
20015 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinters(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinters *r)
20017 if (flags & NDR_IN) {
20018 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, r->in.flags));
20019 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
20020 if (r->in.server) {
20021 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20022 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
20023 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20024 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20026 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20027 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20028 if (r->in.buffer) {
20029 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
20031 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
20033 if (flags & NDR_OUT) {
20034 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
20036 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
20038 if (r->out.needed == NULL) {
20039 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20041 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
20042 if (r->out.count == NULL) {
20043 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20045 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
20046 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
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 _ptr_server;
20054 uint32_t _ptr_buffer;
20055 uint32_t _ptr_info;
20056 TALLOC_CTX *_mem_save_server_0;
20057 TALLOC_CTX *_mem_save_buffer_0;
20058 TALLOC_CTX *_mem_save_info_0;
20059 TALLOC_CTX *_mem_save_needed_0;
20060 TALLOC_CTX *_mem_save_count_0;
20061 if (flags & NDR_IN) {
20062 ZERO_STRUCT(r->out);
20064 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, &r->in.flags));
20065 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
20067 NDR_PULL_ALLOC(ndr, r->in.server);
20069 r->in.server = NULL;
20071 if (r->in.server) {
20072 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
20073 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
20074 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
20075 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
20076 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
20077 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));
20079 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
20080 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
20081 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
20083 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20084 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20086 NDR_PULL_ALLOC(ndr, r->in.buffer);
20088 r->in.buffer = NULL;
20090 if (r->in.buffer) {
20091 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
20092 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20093 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
20094 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20096 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
20097 NDR_PULL_ALLOC(ndr, r->out.needed);
20098 ZERO_STRUCTP(r->out.needed);
20099 NDR_PULL_ALLOC(ndr, r->out.count);
20100 ZERO_STRUCTP(r->out.count);
20102 if (flags & NDR_OUT) {
20103 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
20105 NDR_PULL_ALLOC(ndr, r->out.info);
20107 r->out.info = NULL;
20110 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20111 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20112 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
20113 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20115 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20116 NDR_PULL_ALLOC(ndr, r->out.needed);
20118 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
20119 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
20120 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
20121 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
20122 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20123 NDR_PULL_ALLOC(ndr, r->out.count);
20125 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
20126 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
20127 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
20128 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
20129 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20131 return NDR_ERR_SUCCESS;
20134 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinters(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinters *r)
20136 uint32_t cntr_info_0;
20137 if (flags & NDR_IN) {
20138 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20139 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
20141 if (flags & NDR_OUT) {
20142 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20143 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
20144 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
20146 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20147 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
20150 return NDR_ERR_SUCCESS;
20153 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinters(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinters *r)
20155 uint32_t cntr_info_0;
20156 TALLOC_CTX *_mem_save_info_0;
20157 if (flags & NDR_IN) {
20158 ZERO_STRUCT(r->out);
20160 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20161 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
20163 if (flags & NDR_OUT) {
20164 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
20165 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20166 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20167 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20168 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
20169 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
20171 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20172 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
20174 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20176 return NDR_ERR_SUCCESS;
20179 _PUBLIC_ void ndr_print_spoolss_EnumPrinters(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinters *r)
20181 uint32_t cntr_info_2;
20182 ndr_print_struct(ndr, name, "spoolss_EnumPrinters");
20184 if (flags & NDR_SET_VALUES) {
20185 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20187 if (flags & NDR_IN) {
20188 ndr_print_struct(ndr, "in", "spoolss_EnumPrinters");
20190 ndr_print_spoolss_EnumPrinterFlags(ndr, "flags", r->in.flags);
20191 ndr_print_ptr(ndr, "server", r->in.server);
20193 if (r->in.server) {
20194 ndr_print_string(ndr, "server", r->in.server);
20197 ndr_print_uint32(ndr, "level", r->in.level);
20198 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20200 if (r->in.buffer) {
20201 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
20204 ndr_print_uint32(ndr, "offered", r->in.offered);
20207 if (flags & NDR_OUT) {
20208 ndr_print_struct(ndr, "out", "spoolss_EnumPrinters");
20210 ndr_print_ptr(ndr, "count", r->out.count);
20212 ndr_print_uint32(ndr, "count", *r->out.count);
20214 ndr_print_ptr(ndr, "info", r->out.info);
20216 ndr_print_ptr(ndr, "info", *r->out.info);
20218 if (*r->out.info) {
20219 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
20221 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
20223 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
20224 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
20225 ndr_print_spoolss_PrinterInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
20233 ndr_print_ptr(ndr, "needed", r->out.needed);
20235 ndr_print_uint32(ndr, "needed", *r->out.needed);
20237 ndr_print_WERROR(ndr, "result", r->out.result);
20243 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OpenPrinter(struct ndr_push *ndr, int flags, const struct spoolss_OpenPrinter *r)
20245 if (flags & NDR_IN) {
20246 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.printername));
20247 if (r->in.printername) {
20248 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
20249 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
20250 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
20251 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20253 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.datatype));
20254 if (r->in.datatype) {
20255 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
20256 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
20257 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
20258 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.datatype, ndr_charset_length(r->in.datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20260 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
20261 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr, NDR_SCALARS, r->in.access_mask));
20263 if (flags & NDR_OUT) {
20264 if (r->out.handle == NULL) {
20265 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20267 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
20268 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20270 return NDR_ERR_SUCCESS;
20273 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OpenPrinter(struct ndr_pull *ndr, int flags, struct spoolss_OpenPrinter *r)
20275 uint32_t _ptr_printername;
20276 uint32_t _ptr_datatype;
20277 TALLOC_CTX *_mem_save_printername_0;
20278 TALLOC_CTX *_mem_save_datatype_0;
20279 TALLOC_CTX *_mem_save_handle_0;
20280 if (flags & NDR_IN) {
20281 ZERO_STRUCT(r->out);
20283 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
20284 if (_ptr_printername) {
20285 NDR_PULL_ALLOC(ndr, r->in.printername);
20287 r->in.printername = NULL;
20289 if (r->in.printername) {
20290 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
20291 NDR_PULL_SET_MEM_CTX(ndr, r->in.printername, 0);
20292 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
20293 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
20294 if (ndr_get_array_length(ndr, &r->in.printername) > ndr_get_array_size(ndr, &r->in.printername)) {
20295 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));
20297 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t)));
20298 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t), CH_UTF16));
20299 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
20301 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
20302 if (_ptr_datatype) {
20303 NDR_PULL_ALLOC(ndr, r->in.datatype);
20305 r->in.datatype = NULL;
20307 if (r->in.datatype) {
20308 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
20309 NDR_PULL_SET_MEM_CTX(ndr, r->in.datatype, 0);
20310 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.datatype));
20311 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.datatype));
20312 if (ndr_get_array_length(ndr, &r->in.datatype) > ndr_get_array_size(ndr, &r->in.datatype)) {
20313 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));
20315 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t)));
20316 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t), CH_UTF16));
20317 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
20319 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
20320 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr, NDR_SCALARS, &r->in.access_mask));
20321 NDR_PULL_ALLOC(ndr, r->out.handle);
20322 ZERO_STRUCTP(r->out.handle);
20324 if (flags & NDR_OUT) {
20325 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20326 NDR_PULL_ALLOC(ndr, r->out.handle);
20328 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20329 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
20330 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
20331 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20332 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20334 return NDR_ERR_SUCCESS;
20337 _PUBLIC_ void ndr_print_spoolss_OpenPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_OpenPrinter *r)
20339 ndr_print_struct(ndr, name, "spoolss_OpenPrinter");
20341 if (flags & NDR_SET_VALUES) {
20342 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20344 if (flags & NDR_IN) {
20345 ndr_print_struct(ndr, "in", "spoolss_OpenPrinter");
20347 ndr_print_ptr(ndr, "printername", r->in.printername);
20349 if (r->in.printername) {
20350 ndr_print_string(ndr, "printername", r->in.printername);
20353 ndr_print_ptr(ndr, "datatype", r->in.datatype);
20355 if (r->in.datatype) {
20356 ndr_print_string(ndr, "datatype", r->in.datatype);
20359 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", &r->in.devmode_ctr);
20360 ndr_print_spoolss_AccessRights(ndr, "access_mask", r->in.access_mask);
20363 if (flags & NDR_OUT) {
20364 ndr_print_struct(ndr, "out", "spoolss_OpenPrinter");
20366 ndr_print_ptr(ndr, "handle", r->out.handle);
20368 ndr_print_policy_handle(ndr, "handle", r->out.handle);
20370 ndr_print_WERROR(ndr, "result", r->out.result);
20376 static enum ndr_err_code ndr_push_spoolss_SetJob(struct ndr_push *ndr, int flags, const struct spoolss_SetJob *r)
20378 if (flags & NDR_IN) {
20379 if (r->in.handle == NULL) {
20380 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20382 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20383 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.job_id));
20384 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.ctr));
20386 NDR_CHECK(ndr_push_spoolss_JobInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
20388 NDR_CHECK(ndr_push_spoolss_JobControl(ndr, NDR_SCALARS, r->in.command));
20390 if (flags & NDR_OUT) {
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_SetJob(struct ndr_pull *ndr, int flags, struct spoolss_SetJob *r)
20399 TALLOC_CTX *_mem_save_handle_0;
20400 TALLOC_CTX *_mem_save_ctr_0;
20401 if (flags & NDR_IN) {
20402 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20403 NDR_PULL_ALLOC(ndr, r->in.handle);
20405 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20406 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20407 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20408 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20409 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.job_id));
20410 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr));
20412 NDR_PULL_ALLOC(ndr, r->in.ctr);
20417 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20418 NDR_PULL_SET_MEM_CTX(ndr, r->in.ctr, 0);
20419 NDR_CHECK(ndr_pull_spoolss_JobInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
20420 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, 0);
20422 NDR_CHECK(ndr_pull_spoolss_JobControl(ndr, NDR_SCALARS, &r->in.command));
20424 if (flags & NDR_OUT) {
20425 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20427 return NDR_ERR_SUCCESS;
20430 _PUBLIC_ void ndr_print_spoolss_SetJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetJob *r)
20432 ndr_print_struct(ndr, name, "spoolss_SetJob");
20434 if (flags & NDR_SET_VALUES) {
20435 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20437 if (flags & NDR_IN) {
20438 ndr_print_struct(ndr, "in", "spoolss_SetJob");
20440 ndr_print_ptr(ndr, "handle", r->in.handle);
20442 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20444 ndr_print_uint32(ndr, "job_id", r->in.job_id);
20445 ndr_print_ptr(ndr, "ctr", r->in.ctr);
20448 ndr_print_spoolss_JobInfoContainer(ndr, "ctr", r->in.ctr);
20451 ndr_print_spoolss_JobControl(ndr, "command", r->in.command);
20454 if (flags & NDR_OUT) {
20455 ndr_print_struct(ndr, "out", "spoolss_SetJob");
20457 ndr_print_WERROR(ndr, "result", r->out.result);
20463 static enum ndr_err_code ndr_push_spoolss_GetJob(struct ndr_push *ndr, int flags, const struct spoolss_GetJob *r)
20465 if (flags & NDR_IN) {
20466 if (r->in.handle == NULL) {
20467 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20469 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20470 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.job_id));
20471 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20472 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20473 if (r->in.buffer) {
20474 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
20476 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
20478 if (flags & NDR_OUT) {
20479 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
20482 struct ndr_push *_ndr_info;
20483 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
20484 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
20485 NDR_CHECK(ndr_push_spoolss_JobInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
20486 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
20489 if (r->out.needed == NULL) {
20490 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20492 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
20493 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20495 return NDR_ERR_SUCCESS;
20498 static enum ndr_err_code ndr_pull_spoolss_GetJob(struct ndr_pull *ndr, int flags, struct spoolss_GetJob *r)
20500 uint32_t _ptr_buffer;
20501 uint32_t _ptr_info;
20502 TALLOC_CTX *_mem_save_handle_0;
20503 TALLOC_CTX *_mem_save_buffer_0;
20504 TALLOC_CTX *_mem_save_info_0;
20505 TALLOC_CTX *_mem_save_needed_0;
20506 if (flags & NDR_IN) {
20507 ZERO_STRUCT(r->out);
20509 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20510 NDR_PULL_ALLOC(ndr, r->in.handle);
20512 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20513 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20514 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20515 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20516 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.job_id));
20517 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20518 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20520 NDR_PULL_ALLOC(ndr, r->in.buffer);
20522 r->in.buffer = NULL;
20524 if (r->in.buffer) {
20525 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
20526 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20527 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
20528 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20530 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
20531 NDR_PULL_ALLOC(ndr, r->out.needed);
20532 ZERO_STRUCTP(r->out.needed);
20534 if (flags & NDR_OUT) {
20535 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
20537 NDR_PULL_ALLOC(ndr, r->out.info);
20539 r->out.info = NULL;
20542 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20543 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20545 struct ndr_pull *_ndr_info;
20546 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
20547 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
20548 NDR_CHECK(ndr_pull_spoolss_JobInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
20549 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
20551 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20553 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20554 NDR_PULL_ALLOC(ndr, r->out.needed);
20556 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
20557 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
20558 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
20559 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
20560 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20562 return NDR_ERR_SUCCESS;
20565 _PUBLIC_ void ndr_print_spoolss_GetJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetJob *r)
20567 ndr_print_struct(ndr, name, "spoolss_GetJob");
20569 if (flags & NDR_SET_VALUES) {
20570 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20572 if (flags & NDR_IN) {
20573 ndr_print_struct(ndr, "in", "spoolss_GetJob");
20575 ndr_print_ptr(ndr, "handle", r->in.handle);
20577 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20579 ndr_print_uint32(ndr, "job_id", r->in.job_id);
20580 ndr_print_uint32(ndr, "level", r->in.level);
20581 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20583 if (r->in.buffer) {
20584 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
20587 ndr_print_uint32(ndr, "offered", r->in.offered);
20590 if (flags & NDR_OUT) {
20591 ndr_print_struct(ndr, "out", "spoolss_GetJob");
20593 ndr_print_ptr(ndr, "info", r->out.info);
20596 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
20597 ndr_print_spoolss_JobInfo(ndr, "info", r->out.info);
20600 ndr_print_ptr(ndr, "needed", r->out.needed);
20602 ndr_print_uint32(ndr, "needed", *r->out.needed);
20604 ndr_print_WERROR(ndr, "result", r->out.result);
20610 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumJobs(struct ndr_push *ndr, int flags, const struct _spoolss_EnumJobs *r)
20612 if (flags & NDR_IN) {
20613 if (r->in.handle == NULL) {
20614 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20616 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20617 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.firstjob));
20618 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.numjobs));
20619 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20620 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20621 if (r->in.buffer) {
20622 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
20624 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
20626 if (flags & NDR_OUT) {
20627 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
20629 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
20631 if (r->out.needed == NULL) {
20632 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20634 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
20635 if (r->out.count == NULL) {
20636 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20638 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
20639 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20641 return NDR_ERR_SUCCESS;
20644 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumJobs(struct ndr_pull *ndr, int flags, struct _spoolss_EnumJobs *r)
20646 uint32_t _ptr_buffer;
20647 uint32_t _ptr_info;
20648 TALLOC_CTX *_mem_save_handle_0;
20649 TALLOC_CTX *_mem_save_buffer_0;
20650 TALLOC_CTX *_mem_save_info_0;
20651 TALLOC_CTX *_mem_save_needed_0;
20652 TALLOC_CTX *_mem_save_count_0;
20653 if (flags & NDR_IN) {
20654 ZERO_STRUCT(r->out);
20656 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20657 NDR_PULL_ALLOC(ndr, r->in.handle);
20659 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20660 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20661 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20662 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20663 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.firstjob));
20664 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.numjobs));
20665 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20666 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20668 NDR_PULL_ALLOC(ndr, r->in.buffer);
20670 r->in.buffer = NULL;
20672 if (r->in.buffer) {
20673 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
20674 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20675 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
20676 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20678 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
20679 NDR_PULL_ALLOC(ndr, r->out.needed);
20680 ZERO_STRUCTP(r->out.needed);
20681 NDR_PULL_ALLOC(ndr, r->out.count);
20682 ZERO_STRUCTP(r->out.count);
20684 if (flags & NDR_OUT) {
20685 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
20687 NDR_PULL_ALLOC(ndr, r->out.info);
20689 r->out.info = NULL;
20692 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20693 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20694 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
20695 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20697 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20698 NDR_PULL_ALLOC(ndr, r->out.needed);
20700 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
20701 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
20702 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
20703 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
20704 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20705 NDR_PULL_ALLOC(ndr, r->out.count);
20707 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
20708 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
20709 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
20710 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
20711 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20713 return NDR_ERR_SUCCESS;
20716 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumJobs(struct ndr_push *ndr, int flags, const struct __spoolss_EnumJobs *r)
20718 uint32_t cntr_info_0;
20719 if (flags & NDR_IN) {
20720 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20721 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
20723 if (flags & NDR_OUT) {
20724 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20725 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
20726 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
20728 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20729 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
20732 return NDR_ERR_SUCCESS;
20735 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumJobs(struct ndr_pull *ndr, int flags, struct __spoolss_EnumJobs *r)
20737 uint32_t cntr_info_0;
20738 TALLOC_CTX *_mem_save_info_0;
20739 if (flags & NDR_IN) {
20740 ZERO_STRUCT(r->out);
20742 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20743 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
20745 if (flags & NDR_OUT) {
20746 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
20747 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20748 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20749 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20750 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
20751 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
20753 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20754 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
20756 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20758 return NDR_ERR_SUCCESS;
20761 _PUBLIC_ void ndr_print_spoolss_EnumJobs(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumJobs *r)
20763 uint32_t cntr_info_2;
20764 ndr_print_struct(ndr, name, "spoolss_EnumJobs");
20766 if (flags & NDR_SET_VALUES) {
20767 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20769 if (flags & NDR_IN) {
20770 ndr_print_struct(ndr, "in", "spoolss_EnumJobs");
20772 ndr_print_ptr(ndr, "handle", r->in.handle);
20774 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20776 ndr_print_uint32(ndr, "firstjob", r->in.firstjob);
20777 ndr_print_uint32(ndr, "numjobs", r->in.numjobs);
20778 ndr_print_uint32(ndr, "level", r->in.level);
20779 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20781 if (r->in.buffer) {
20782 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
20785 ndr_print_uint32(ndr, "offered", r->in.offered);
20788 if (flags & NDR_OUT) {
20789 ndr_print_struct(ndr, "out", "spoolss_EnumJobs");
20791 ndr_print_ptr(ndr, "count", r->out.count);
20793 ndr_print_uint32(ndr, "count", *r->out.count);
20795 ndr_print_ptr(ndr, "info", r->out.info);
20797 ndr_print_ptr(ndr, "info", *r->out.info);
20799 if (*r->out.info) {
20800 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
20802 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
20804 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
20805 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
20806 ndr_print_spoolss_JobInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
20814 ndr_print_ptr(ndr, "needed", r->out.needed);
20816 ndr_print_uint32(ndr, "needed", *r->out.needed);
20818 ndr_print_WERROR(ndr, "result", r->out.result);
20824 static enum ndr_err_code ndr_push_spoolss_AddPrinter(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinter *r)
20826 if (flags & NDR_IN) {
20827 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
20828 if (r->in.server) {
20829 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20830 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
20831 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20832 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20834 if (r->in.info_ctr == NULL) {
20835 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20837 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
20838 if (r->in.devmode_ctr == NULL) {
20839 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20841 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
20842 if (r->in.secdesc_ctr == NULL) {
20843 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20845 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
20847 if (flags & NDR_OUT) {
20848 if (r->out.handle == NULL) {
20849 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20851 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
20852 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20854 return NDR_ERR_SUCCESS;
20857 static enum ndr_err_code ndr_pull_spoolss_AddPrinter(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinter *r)
20859 uint32_t _ptr_server;
20860 TALLOC_CTX *_mem_save_server_0;
20861 TALLOC_CTX *_mem_save_info_ctr_0;
20862 TALLOC_CTX *_mem_save_devmode_ctr_0;
20863 TALLOC_CTX *_mem_save_secdesc_ctr_0;
20864 TALLOC_CTX *_mem_save_handle_0;
20865 if (flags & NDR_IN) {
20866 ZERO_STRUCT(r->out);
20868 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
20870 NDR_PULL_ALLOC(ndr, r->in.server);
20872 r->in.server = NULL;
20874 if (r->in.server) {
20875 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
20876 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
20877 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
20878 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
20879 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
20880 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));
20882 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
20883 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
20884 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
20886 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20887 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
20889 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20890 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
20891 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
20892 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
20893 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20894 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
20896 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20897 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
20898 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
20899 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
20900 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20901 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
20903 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20904 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
20905 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
20906 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
20907 NDR_PULL_ALLOC(ndr, r->out.handle);
20908 ZERO_STRUCTP(r->out.handle);
20910 if (flags & NDR_OUT) {
20911 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20912 NDR_PULL_ALLOC(ndr, r->out.handle);
20914 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20915 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
20916 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
20917 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20918 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20920 return NDR_ERR_SUCCESS;
20923 _PUBLIC_ void ndr_print_spoolss_AddPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinter *r)
20925 ndr_print_struct(ndr, name, "spoolss_AddPrinter");
20927 if (flags & NDR_SET_VALUES) {
20928 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20930 if (flags & NDR_IN) {
20931 ndr_print_struct(ndr, "in", "spoolss_AddPrinter");
20933 ndr_print_ptr(ndr, "server", r->in.server);
20935 if (r->in.server) {
20936 ndr_print_string(ndr, "server", r->in.server);
20939 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
20941 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
20943 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
20945 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
20947 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
20949 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
20953 if (flags & NDR_OUT) {
20954 ndr_print_struct(ndr, "out", "spoolss_AddPrinter");
20956 ndr_print_ptr(ndr, "handle", r->out.handle);
20958 ndr_print_policy_handle(ndr, "handle", r->out.handle);
20960 ndr_print_WERROR(ndr, "result", r->out.result);
20966 static enum ndr_err_code ndr_push_spoolss_DeletePrinter(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinter *r)
20968 if (flags & NDR_IN) {
20969 if (r->in.handle == NULL) {
20970 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20972 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20974 if (flags & NDR_OUT) {
20975 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20977 return NDR_ERR_SUCCESS;
20980 static enum ndr_err_code ndr_pull_spoolss_DeletePrinter(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinter *r)
20982 TALLOC_CTX *_mem_save_handle_0;
20983 if (flags & NDR_IN) {
20984 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20985 NDR_PULL_ALLOC(ndr, r->in.handle);
20987 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20988 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20989 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20990 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20992 if (flags & NDR_OUT) {
20993 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20995 return NDR_ERR_SUCCESS;
20998 _PUBLIC_ void ndr_print_spoolss_DeletePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinter *r)
21000 ndr_print_struct(ndr, name, "spoolss_DeletePrinter");
21002 if (flags & NDR_SET_VALUES) {
21003 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21005 if (flags & NDR_IN) {
21006 ndr_print_struct(ndr, "in", "spoolss_DeletePrinter");
21008 ndr_print_ptr(ndr, "handle", r->in.handle);
21010 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21014 if (flags & NDR_OUT) {
21015 ndr_print_struct(ndr, "out", "spoolss_DeletePrinter");
21017 ndr_print_WERROR(ndr, "result", r->out.result);
21023 static enum ndr_err_code ndr_push_spoolss_SetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_SetPrinter *r)
21025 if (flags & NDR_IN) {
21026 if (r->in.handle == NULL) {
21027 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21029 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21030 if (r->in.info_ctr == NULL) {
21031 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21033 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
21034 if (r->in.devmode_ctr == NULL) {
21035 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21037 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
21038 if (r->in.secdesc_ctr == NULL) {
21039 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21041 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
21042 NDR_CHECK(ndr_push_spoolss_PrinterControl(ndr, NDR_SCALARS, r->in.command));
21044 if (flags & NDR_OUT) {
21045 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21047 return NDR_ERR_SUCCESS;
21050 static enum ndr_err_code ndr_pull_spoolss_SetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinter *r)
21052 TALLOC_CTX *_mem_save_handle_0;
21053 TALLOC_CTX *_mem_save_info_ctr_0;
21054 TALLOC_CTX *_mem_save_devmode_ctr_0;
21055 TALLOC_CTX *_mem_save_secdesc_ctr_0;
21056 if (flags & NDR_IN) {
21057 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21058 NDR_PULL_ALLOC(ndr, r->in.handle);
21060 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21061 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21062 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21063 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21064 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21065 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
21067 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
21068 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
21069 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
21070 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
21071 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21072 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
21074 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
21075 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
21076 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
21077 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
21078 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21079 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
21081 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
21082 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
21083 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
21084 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
21085 NDR_CHECK(ndr_pull_spoolss_PrinterControl(ndr, NDR_SCALARS, &r->in.command));
21087 if (flags & NDR_OUT) {
21088 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21090 return NDR_ERR_SUCCESS;
21093 _PUBLIC_ void ndr_print_spoolss_SetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinter *r)
21095 ndr_print_struct(ndr, name, "spoolss_SetPrinter");
21097 if (flags & NDR_SET_VALUES) {
21098 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21100 if (flags & NDR_IN) {
21101 ndr_print_struct(ndr, "in", "spoolss_SetPrinter");
21103 ndr_print_ptr(ndr, "handle", r->in.handle);
21105 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21107 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
21109 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
21111 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
21113 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
21115 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
21117 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
21119 ndr_print_spoolss_PrinterControl(ndr, "command", r->in.command);
21122 if (flags & NDR_OUT) {
21123 ndr_print_struct(ndr, "out", "spoolss_SetPrinter");
21125 ndr_print_WERROR(ndr, "result", r->out.result);
21131 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinter *r)
21133 if (flags & NDR_IN) {
21134 if (r->in.handle == NULL) {
21135 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21137 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21138 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21139 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
21140 if (r->in.buffer) {
21141 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
21143 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21145 if (flags & NDR_OUT) {
21146 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
21149 struct ndr_push *_ndr_info;
21150 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21151 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
21152 NDR_CHECK(ndr_push_spoolss_PrinterInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
21153 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21156 if (r->out.needed == NULL) {
21157 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21159 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21160 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21162 return NDR_ERR_SUCCESS;
21165 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinter *r)
21167 uint32_t _ptr_buffer;
21168 uint32_t _ptr_info;
21169 TALLOC_CTX *_mem_save_handle_0;
21170 TALLOC_CTX *_mem_save_buffer_0;
21171 TALLOC_CTX *_mem_save_info_0;
21172 TALLOC_CTX *_mem_save_needed_0;
21173 if (flags & NDR_IN) {
21174 ZERO_STRUCT(r->out);
21176 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21177 NDR_PULL_ALLOC(ndr, r->in.handle);
21179 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21180 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21181 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21182 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21183 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21184 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
21186 NDR_PULL_ALLOC(ndr, r->in.buffer);
21188 r->in.buffer = NULL;
21190 if (r->in.buffer) {
21191 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21192 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
21193 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
21194 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
21196 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21197 NDR_PULL_ALLOC(ndr, r->out.needed);
21198 ZERO_STRUCTP(r->out.needed);
21200 if (flags & NDR_OUT) {
21201 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
21203 NDR_PULL_ALLOC(ndr, r->out.info);
21205 r->out.info = NULL;
21208 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21209 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21211 struct ndr_pull *_ndr_info;
21212 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21213 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
21214 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
21215 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21217 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21219 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21220 NDR_PULL_ALLOC(ndr, r->out.needed);
21222 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21223 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21224 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21225 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21226 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21228 return NDR_ERR_SUCCESS;
21231 _PUBLIC_ void ndr_print_spoolss_GetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinter *r)
21233 ndr_print_struct(ndr, name, "spoolss_GetPrinter");
21235 if (flags & NDR_SET_VALUES) {
21236 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21238 if (flags & NDR_IN) {
21239 ndr_print_struct(ndr, "in", "spoolss_GetPrinter");
21241 ndr_print_ptr(ndr, "handle", r->in.handle);
21243 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21245 ndr_print_uint32(ndr, "level", r->in.level);
21246 ndr_print_ptr(ndr, "buffer", r->in.buffer);
21248 if (r->in.buffer) {
21249 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
21252 ndr_print_uint32(ndr, "offered", r->in.offered);
21255 if (flags & NDR_OUT) {
21256 ndr_print_struct(ndr, "out", "spoolss_GetPrinter");
21258 ndr_print_ptr(ndr, "info", r->out.info);
21261 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
21262 ndr_print_spoolss_PrinterInfo(ndr, "info", r->out.info);
21265 ndr_print_ptr(ndr, "needed", r->out.needed);
21267 ndr_print_uint32(ndr, "needed", *r->out.needed);
21269 ndr_print_WERROR(ndr, "result", r->out.result);
21275 static enum ndr_err_code ndr_push_spoolss_AddPrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterDriver *r)
21277 if (flags & NDR_IN) {
21278 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
21279 if (r->in.servername) {
21280 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
21281 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21282 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
21283 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21285 if (r->in.info_ctr == NULL) {
21286 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21288 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
21290 if (flags & NDR_OUT) {
21291 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21293 return NDR_ERR_SUCCESS;
21296 static enum ndr_err_code ndr_pull_spoolss_AddPrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterDriver *r)
21298 uint32_t _ptr_servername;
21299 TALLOC_CTX *_mem_save_servername_0;
21300 TALLOC_CTX *_mem_save_info_ctr_0;
21301 if (flags & NDR_IN) {
21302 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
21303 if (_ptr_servername) {
21304 NDR_PULL_ALLOC(ndr, r->in.servername);
21306 r->in.servername = NULL;
21308 if (r->in.servername) {
21309 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
21310 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
21311 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
21312 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
21313 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
21314 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));
21316 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
21317 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
21318 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
21320 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21321 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
21323 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
21324 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
21325 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
21326 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
21328 if (flags & NDR_OUT) {
21329 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21331 return NDR_ERR_SUCCESS;
21334 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterDriver *r)
21336 ndr_print_struct(ndr, name, "spoolss_AddPrinterDriver");
21338 if (flags & NDR_SET_VALUES) {
21339 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21341 if (flags & NDR_IN) {
21342 ndr_print_struct(ndr, "in", "spoolss_AddPrinterDriver");
21344 ndr_print_ptr(ndr, "servername", r->in.servername);
21346 if (r->in.servername) {
21347 ndr_print_string(ndr, "servername", r->in.servername);
21350 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
21352 ndr_print_spoolss_AddDriverInfoCtr(ndr, "info_ctr", r->in.info_ctr);
21356 if (flags & NDR_OUT) {
21357 ndr_print_struct(ndr, "out", "spoolss_AddPrinterDriver");
21359 ndr_print_WERROR(ndr, "result", r->out.result);
21365 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinterDrivers(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinterDrivers *r)
21367 if (flags & NDR_IN) {
21368 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
21369 if (r->in.server) {
21370 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21371 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21372 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21373 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21375 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
21376 if (r->in.environment) {
21377 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
21378 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21379 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
21380 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21382 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21383 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
21384 if (r->in.buffer) {
21385 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
21387 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21389 if (flags & NDR_OUT) {
21390 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
21392 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
21394 if (r->out.needed == NULL) {
21395 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21397 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21398 if (r->out.count == NULL) {
21399 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21401 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
21402 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21404 return NDR_ERR_SUCCESS;
21407 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinterDrivers *r)
21409 uint32_t _ptr_server;
21410 uint32_t _ptr_environment;
21411 uint32_t _ptr_buffer;
21412 uint32_t _ptr_info;
21413 TALLOC_CTX *_mem_save_server_0;
21414 TALLOC_CTX *_mem_save_environment_0;
21415 TALLOC_CTX *_mem_save_buffer_0;
21416 TALLOC_CTX *_mem_save_info_0;
21417 TALLOC_CTX *_mem_save_needed_0;
21418 TALLOC_CTX *_mem_save_count_0;
21419 if (flags & NDR_IN) {
21420 ZERO_STRUCT(r->out);
21422 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
21424 NDR_PULL_ALLOC(ndr, r->in.server);
21426 r->in.server = NULL;
21428 if (r->in.server) {
21429 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
21430 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
21431 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
21432 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
21433 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
21434 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));
21436 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
21437 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
21438 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
21440 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
21441 if (_ptr_environment) {
21442 NDR_PULL_ALLOC(ndr, r->in.environment);
21444 r->in.environment = NULL;
21446 if (r->in.environment) {
21447 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
21448 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
21449 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
21450 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
21451 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
21452 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));
21454 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
21455 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
21456 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
21458 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21459 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
21461 NDR_PULL_ALLOC(ndr, r->in.buffer);
21463 r->in.buffer = NULL;
21465 if (r->in.buffer) {
21466 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21467 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
21468 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
21469 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
21471 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21472 NDR_PULL_ALLOC(ndr, r->out.needed);
21473 ZERO_STRUCTP(r->out.needed);
21474 NDR_PULL_ALLOC(ndr, r->out.count);
21475 ZERO_STRUCTP(r->out.count);
21477 if (flags & NDR_OUT) {
21478 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
21480 NDR_PULL_ALLOC(ndr, r->out.info);
21482 r->out.info = NULL;
21485 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21486 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21487 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
21488 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21490 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21491 NDR_PULL_ALLOC(ndr, r->out.needed);
21493 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21494 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21495 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21496 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21497 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21498 NDR_PULL_ALLOC(ndr, r->out.count);
21500 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
21501 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
21502 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
21503 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
21504 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21506 return NDR_ERR_SUCCESS;
21509 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinterDrivers(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinterDrivers *r)
21511 uint32_t cntr_info_0;
21512 if (flags & NDR_IN) {
21513 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21514 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
21516 if (flags & NDR_OUT) {
21517 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21518 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
21519 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
21521 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21522 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
21525 return NDR_ERR_SUCCESS;
21528 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinterDrivers *r)
21530 uint32_t cntr_info_0;
21531 TALLOC_CTX *_mem_save_info_0;
21532 if (flags & NDR_IN) {
21533 ZERO_STRUCT(r->out);
21535 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21536 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
21538 if (flags & NDR_OUT) {
21539 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
21540 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21541 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21542 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21543 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
21544 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
21546 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21547 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
21549 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21551 return NDR_ERR_SUCCESS;
21554 _PUBLIC_ void ndr_print_spoolss_EnumPrinterDrivers(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterDrivers *r)
21556 uint32_t cntr_info_2;
21557 ndr_print_struct(ndr, name, "spoolss_EnumPrinterDrivers");
21559 if (flags & NDR_SET_VALUES) {
21560 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21562 if (flags & NDR_IN) {
21563 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterDrivers");
21565 ndr_print_ptr(ndr, "server", r->in.server);
21567 if (r->in.server) {
21568 ndr_print_string(ndr, "server", r->in.server);
21571 ndr_print_ptr(ndr, "environment", r->in.environment);
21573 if (r->in.environment) {
21574 ndr_print_string(ndr, "environment", r->in.environment);
21577 ndr_print_uint32(ndr, "level", r->in.level);
21578 ndr_print_ptr(ndr, "buffer", r->in.buffer);
21580 if (r->in.buffer) {
21581 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
21584 ndr_print_uint32(ndr, "offered", r->in.offered);
21587 if (flags & NDR_OUT) {
21588 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterDrivers");
21590 ndr_print_ptr(ndr, "count", r->out.count);
21592 ndr_print_uint32(ndr, "count", *r->out.count);
21594 ndr_print_ptr(ndr, "info", r->out.info);
21596 ndr_print_ptr(ndr, "info", *r->out.info);
21598 if (*r->out.info) {
21599 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
21601 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
21603 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
21604 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
21605 ndr_print_spoolss_DriverInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
21613 ndr_print_ptr(ndr, "needed", r->out.needed);
21615 ndr_print_uint32(ndr, "needed", *r->out.needed);
21617 ndr_print_WERROR(ndr, "result", r->out.result);
21623 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriver *r)
21625 if (flags & NDR_IN) {
21626 if (r->in.handle == NULL) {
21627 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21629 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21630 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.architecture));
21631 if (r->in.architecture) {
21632 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
21633 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21634 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
21635 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21637 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21638 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
21639 if (r->in.buffer) {
21640 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
21642 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21644 if (flags & NDR_OUT) {
21645 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
21648 struct ndr_push *_ndr_info;
21649 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21650 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
21651 NDR_CHECK(ndr_push_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
21652 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21655 if (r->out.needed == NULL) {
21656 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21658 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21659 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21661 return NDR_ERR_SUCCESS;
21664 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriver *r)
21666 uint32_t _ptr_architecture;
21667 uint32_t _ptr_buffer;
21668 uint32_t _ptr_info;
21669 TALLOC_CTX *_mem_save_handle_0;
21670 TALLOC_CTX *_mem_save_architecture_0;
21671 TALLOC_CTX *_mem_save_buffer_0;
21672 TALLOC_CTX *_mem_save_info_0;
21673 TALLOC_CTX *_mem_save_needed_0;
21674 if (flags & NDR_IN) {
21675 ZERO_STRUCT(r->out);
21677 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21678 NDR_PULL_ALLOC(ndr, r->in.handle);
21680 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21681 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21682 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21683 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21684 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
21685 if (_ptr_architecture) {
21686 NDR_PULL_ALLOC(ndr, r->in.architecture);
21688 r->in.architecture = NULL;
21690 if (r->in.architecture) {
21691 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
21692 NDR_PULL_SET_MEM_CTX(ndr, r->in.architecture, 0);
21693 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
21694 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
21695 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
21696 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));
21698 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
21699 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
21700 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
21702 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21703 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
21705 NDR_PULL_ALLOC(ndr, r->in.buffer);
21707 r->in.buffer = NULL;
21709 if (r->in.buffer) {
21710 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21711 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
21712 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
21713 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
21715 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21716 NDR_PULL_ALLOC(ndr, r->out.needed);
21717 ZERO_STRUCTP(r->out.needed);
21719 if (flags & NDR_OUT) {
21720 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
21722 NDR_PULL_ALLOC(ndr, r->out.info);
21724 r->out.info = NULL;
21727 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21728 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21730 struct ndr_pull *_ndr_info;
21731 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21732 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
21733 NDR_CHECK(ndr_pull_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
21734 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21736 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21738 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21739 NDR_PULL_ALLOC(ndr, r->out.needed);
21741 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21742 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21743 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21744 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21745 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21747 return NDR_ERR_SUCCESS;
21750 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriver *r)
21752 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriver");
21754 if (flags & NDR_SET_VALUES) {
21755 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21757 if (flags & NDR_IN) {
21758 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriver");
21760 ndr_print_ptr(ndr, "handle", r->in.handle);
21762 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21764 ndr_print_ptr(ndr, "architecture", r->in.architecture);
21766 if (r->in.architecture) {
21767 ndr_print_string(ndr, "architecture", r->in.architecture);
21770 ndr_print_uint32(ndr, "level", r->in.level);
21771 ndr_print_ptr(ndr, "buffer", r->in.buffer);
21773 if (r->in.buffer) {
21774 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
21777 ndr_print_uint32(ndr, "offered", r->in.offered);
21780 if (flags & NDR_OUT) {
21781 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriver");
21783 ndr_print_ptr(ndr, "info", r->out.info);
21786 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
21787 ndr_print_spoolss_DriverInfo(ndr, "info", r->out.info);
21790 ndr_print_ptr(ndr, "needed", r->out.needed);
21792 ndr_print_uint32(ndr, "needed", *r->out.needed);
21794 ndr_print_WERROR(ndr, "result", r->out.result);
21800 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinterDriverDirectory(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriverDirectory *r)
21802 if (flags & NDR_IN) {
21803 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
21804 if (r->in.server) {
21805 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21806 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21807 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21808 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21810 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
21811 if (r->in.environment) {
21812 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
21813 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21814 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
21815 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21817 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21818 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
21819 if (r->in.buffer) {
21820 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
21822 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21824 if (flags & NDR_OUT) {
21825 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
21828 struct ndr_push *_ndr_info;
21829 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21830 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
21831 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
21832 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21835 if (r->out.needed == NULL) {
21836 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21838 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21839 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21841 return NDR_ERR_SUCCESS;
21844 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinterDriverDirectory(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriverDirectory *r)
21846 uint32_t _ptr_server;
21847 uint32_t _ptr_environment;
21848 uint32_t _ptr_buffer;
21849 uint32_t _ptr_info;
21850 TALLOC_CTX *_mem_save_server_0;
21851 TALLOC_CTX *_mem_save_environment_0;
21852 TALLOC_CTX *_mem_save_buffer_0;
21853 TALLOC_CTX *_mem_save_info_0;
21854 TALLOC_CTX *_mem_save_needed_0;
21855 if (flags & NDR_IN) {
21856 ZERO_STRUCT(r->out);
21858 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
21860 NDR_PULL_ALLOC(ndr, r->in.server);
21862 r->in.server = NULL;
21864 if (r->in.server) {
21865 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
21866 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
21867 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
21868 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
21869 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
21870 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));
21872 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
21873 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
21874 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
21876 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
21877 if (_ptr_environment) {
21878 NDR_PULL_ALLOC(ndr, r->in.environment);
21880 r->in.environment = NULL;
21882 if (r->in.environment) {
21883 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
21884 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
21885 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
21886 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
21887 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
21888 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));
21890 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
21891 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
21892 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
21894 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21895 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
21897 NDR_PULL_ALLOC(ndr, r->in.buffer);
21899 r->in.buffer = NULL;
21901 if (r->in.buffer) {
21902 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21903 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
21904 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
21905 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
21907 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21908 NDR_PULL_ALLOC(ndr, r->out.needed);
21909 ZERO_STRUCTP(r->out.needed);
21911 if (flags & NDR_OUT) {
21912 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
21914 NDR_PULL_ALLOC(ndr, r->out.info);
21916 r->out.info = NULL;
21919 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21920 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21922 struct ndr_pull *_ndr_info;
21923 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21924 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
21925 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
21926 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21928 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21930 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21931 NDR_PULL_ALLOC(ndr, r->out.needed);
21933 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21934 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21935 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21936 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21937 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21939 return NDR_ERR_SUCCESS;
21942 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriverDirectory(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriverDirectory *r)
21944 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriverDirectory");
21946 if (flags & NDR_SET_VALUES) {
21947 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21949 if (flags & NDR_IN) {
21950 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriverDirectory");
21952 ndr_print_ptr(ndr, "server", r->in.server);
21954 if (r->in.server) {
21955 ndr_print_string(ndr, "server", r->in.server);
21958 ndr_print_ptr(ndr, "environment", r->in.environment);
21960 if (r->in.environment) {
21961 ndr_print_string(ndr, "environment", r->in.environment);
21964 ndr_print_uint32(ndr, "level", r->in.level);
21965 ndr_print_ptr(ndr, "buffer", r->in.buffer);
21967 if (r->in.buffer) {
21968 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
21971 ndr_print_uint32(ndr, "offered", r->in.offered);
21974 if (flags & NDR_OUT) {
21975 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriverDirectory");
21977 ndr_print_ptr(ndr, "info", r->out.info);
21980 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
21981 ndr_print_spoolss_DriverDirectoryInfo(ndr, "info", r->out.info);
21984 ndr_print_ptr(ndr, "needed", r->out.needed);
21986 ndr_print_uint32(ndr, "needed", *r->out.needed);
21988 ndr_print_WERROR(ndr, "result", r->out.result);
21994 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDriver *r)
21996 if (flags & NDR_IN) {
21997 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
21998 if (r->in.server) {
21999 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22000 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22001 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22002 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22004 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, 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.architecture, CH_UTF16)));
22007 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22008 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, 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.driver, CH_UTF16)));
22011 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver, ndr_charset_length(r->in.driver, 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_DeletePrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDriver *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.driver));
22050 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.driver));
22051 if (ndr_get_array_length(ndr, &r->in.driver) > ndr_get_array_size(ndr, &r->in.driver)) {
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.driver), ndr_get_array_length(ndr, &r->in.driver));
22054 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t)));
22055 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t), CH_UTF16));
22057 if (flags & NDR_OUT) {
22058 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22060 return NDR_ERR_SUCCESS;
22063 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDriver *r)
22065 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDriver");
22067 if (flags & NDR_SET_VALUES) {
22068 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22070 if (flags & NDR_IN) {
22071 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDriver");
22073 ndr_print_ptr(ndr, "server", r->in.server);
22075 if (r->in.server) {
22076 ndr_print_string(ndr, "server", r->in.server);
22079 ndr_print_string(ndr, "architecture", r->in.architecture);
22080 ndr_print_string(ndr, "driver", r->in.driver);
22083 if (flags & NDR_OUT) {
22084 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDriver");
22086 ndr_print_WERROR(ndr, "result", r->out.result);
22092 static enum ndr_err_code ndr_push_spoolss_AddPrintProcessor(struct ndr_push *ndr, int flags, const struct spoolss_AddPrintProcessor *r)
22094 if (flags & NDR_IN) {
22095 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
22096 if (r->in.server) {
22097 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22098 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22099 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22100 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22102 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
22103 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22104 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
22105 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22106 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.path_name, CH_UTF16)));
22107 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22108 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.path_name, CH_UTF16)));
22109 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));
22110 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
22111 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22112 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
22113 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));
22115 if (flags & NDR_OUT) {
22116 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22118 return NDR_ERR_SUCCESS;
22121 static enum ndr_err_code ndr_pull_spoolss_AddPrintProcessor(struct ndr_pull *ndr, int flags, struct spoolss_AddPrintProcessor *r)
22123 uint32_t _ptr_server;
22124 TALLOC_CTX *_mem_save_server_0;
22125 if (flags & NDR_IN) {
22126 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
22128 NDR_PULL_ALLOC(ndr, r->in.server);
22130 r->in.server = NULL;
22132 if (r->in.server) {
22133 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
22134 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
22135 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
22136 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
22137 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
22138 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));
22140 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
22141 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
22142 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
22144 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
22145 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
22146 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
22147 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));
22149 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
22150 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
22151 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.path_name));
22152 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.path_name));
22153 if (ndr_get_array_length(ndr, &r->in.path_name) > ndr_get_array_size(ndr, &r->in.path_name)) {
22154 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));
22156 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.path_name), sizeof(uint16_t)));
22157 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));
22158 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.print_processor_name));
22159 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.print_processor_name));
22160 if (ndr_get_array_length(ndr, &r->in.print_processor_name) > ndr_get_array_size(ndr, &r->in.print_processor_name)) {
22161 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));
22163 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.print_processor_name), sizeof(uint16_t)));
22164 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));
22166 if (flags & NDR_OUT) {
22167 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22169 return NDR_ERR_SUCCESS;
22172 _PUBLIC_ void ndr_print_spoolss_AddPrintProcessor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrintProcessor *r)
22174 ndr_print_struct(ndr, name, "spoolss_AddPrintProcessor");
22176 if (flags & NDR_SET_VALUES) {
22177 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22179 if (flags & NDR_IN) {
22180 ndr_print_struct(ndr, "in", "spoolss_AddPrintProcessor");
22182 ndr_print_ptr(ndr, "server", r->in.server);
22184 if (r->in.server) {
22185 ndr_print_string(ndr, "server", r->in.server);
22188 ndr_print_string(ndr, "architecture", r->in.architecture);
22189 ndr_print_string(ndr, "path_name", r->in.path_name);
22190 ndr_print_string(ndr, "print_processor_name", r->in.print_processor_name);
22193 if (flags & NDR_OUT) {
22194 ndr_print_struct(ndr, "out", "spoolss_AddPrintProcessor");
22196 ndr_print_WERROR(ndr, "result", r->out.result);
22202 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrintProcessors(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrintProcessors *r)
22204 if (flags & NDR_IN) {
22205 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
22206 if (r->in.servername) {
22207 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
22208 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22209 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
22210 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22212 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
22213 if (r->in.environment) {
22214 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
22215 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22216 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
22217 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22219 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22220 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
22221 if (r->in.buffer) {
22222 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
22224 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22226 if (flags & NDR_OUT) {
22227 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
22229 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
22231 if (r->out.needed == NULL) {
22232 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22234 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22235 if (r->out.count == NULL) {
22236 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22238 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
22239 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22241 return NDR_ERR_SUCCESS;
22244 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrintProcessors(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrintProcessors *r)
22246 uint32_t _ptr_servername;
22247 uint32_t _ptr_environment;
22248 uint32_t _ptr_buffer;
22249 uint32_t _ptr_info;
22250 TALLOC_CTX *_mem_save_servername_0;
22251 TALLOC_CTX *_mem_save_environment_0;
22252 TALLOC_CTX *_mem_save_buffer_0;
22253 TALLOC_CTX *_mem_save_info_0;
22254 TALLOC_CTX *_mem_save_needed_0;
22255 TALLOC_CTX *_mem_save_count_0;
22256 if (flags & NDR_IN) {
22257 ZERO_STRUCT(r->out);
22259 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
22260 if (_ptr_servername) {
22261 NDR_PULL_ALLOC(ndr, r->in.servername);
22263 r->in.servername = NULL;
22265 if (r->in.servername) {
22266 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
22267 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
22268 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
22269 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
22270 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
22271 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));
22273 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
22274 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
22275 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
22277 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
22278 if (_ptr_environment) {
22279 NDR_PULL_ALLOC(ndr, r->in.environment);
22281 r->in.environment = NULL;
22283 if (r->in.environment) {
22284 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
22285 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
22286 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
22287 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
22288 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
22289 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));
22291 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
22292 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
22293 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
22295 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22296 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
22298 NDR_PULL_ALLOC(ndr, r->in.buffer);
22300 r->in.buffer = NULL;
22302 if (r->in.buffer) {
22303 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
22304 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
22305 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
22306 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22308 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22309 NDR_PULL_ALLOC(ndr, r->out.needed);
22310 ZERO_STRUCTP(r->out.needed);
22311 NDR_PULL_ALLOC(ndr, r->out.count);
22312 ZERO_STRUCTP(r->out.count);
22314 if (flags & NDR_OUT) {
22315 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
22317 NDR_PULL_ALLOC(ndr, r->out.info);
22319 r->out.info = NULL;
22322 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22323 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22324 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
22325 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22327 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22328 NDR_PULL_ALLOC(ndr, r->out.needed);
22330 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22331 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22332 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22333 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22334 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22335 NDR_PULL_ALLOC(ndr, r->out.count);
22337 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
22338 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
22339 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
22340 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
22341 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22343 return NDR_ERR_SUCCESS;
22346 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrintProcessors(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrintProcessors *r)
22348 uint32_t cntr_info_0;
22349 if (flags & NDR_IN) {
22350 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22351 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
22353 if (flags & NDR_OUT) {
22354 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22355 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
22356 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
22358 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22359 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
22362 return NDR_ERR_SUCCESS;
22365 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrintProcessors(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrintProcessors *r)
22367 uint32_t cntr_info_0;
22368 TALLOC_CTX *_mem_save_info_0;
22369 if (flags & NDR_IN) {
22370 ZERO_STRUCT(r->out);
22372 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22373 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
22375 if (flags & NDR_OUT) {
22376 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
22377 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22378 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22379 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22380 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
22381 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
22383 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22384 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
22386 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22388 return NDR_ERR_SUCCESS;
22391 _PUBLIC_ void ndr_print_spoolss_EnumPrintProcessors(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrintProcessors *r)
22393 uint32_t cntr_info_2;
22394 ndr_print_struct(ndr, name, "spoolss_EnumPrintProcessors");
22396 if (flags & NDR_SET_VALUES) {
22397 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22399 if (flags & NDR_IN) {
22400 ndr_print_struct(ndr, "in", "spoolss_EnumPrintProcessors");
22402 ndr_print_ptr(ndr, "servername", r->in.servername);
22404 if (r->in.servername) {
22405 ndr_print_string(ndr, "servername", r->in.servername);
22408 ndr_print_ptr(ndr, "environment", r->in.environment);
22410 if (r->in.environment) {
22411 ndr_print_string(ndr, "environment", r->in.environment);
22414 ndr_print_uint32(ndr, "level", r->in.level);
22415 ndr_print_ptr(ndr, "buffer", r->in.buffer);
22417 if (r->in.buffer) {
22418 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
22421 ndr_print_uint32(ndr, "offered", r->in.offered);
22424 if (flags & NDR_OUT) {
22425 ndr_print_struct(ndr, "out", "spoolss_EnumPrintProcessors");
22427 ndr_print_ptr(ndr, "count", r->out.count);
22429 ndr_print_uint32(ndr, "count", *r->out.count);
22431 ndr_print_ptr(ndr, "info", r->out.info);
22433 ndr_print_ptr(ndr, "info", *r->out.info);
22435 if (*r->out.info) {
22436 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
22438 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
22440 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
22441 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
22442 ndr_print_spoolss_PrintProcessorInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
22450 ndr_print_ptr(ndr, "needed", r->out.needed);
22452 ndr_print_uint32(ndr, "needed", *r->out.needed);
22454 ndr_print_WERROR(ndr, "result", r->out.result);
22460 static enum ndr_err_code ndr_push_spoolss_GetPrintProcessorDirectory(struct ndr_push *ndr, int flags, const struct spoolss_GetPrintProcessorDirectory *r)
22462 if (flags & NDR_IN) {
22463 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
22464 if (r->in.server) {
22465 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22466 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22467 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22468 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22470 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
22471 if (r->in.environment) {
22472 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
22473 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22474 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
22475 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22477 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22478 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
22479 if (r->in.buffer) {
22480 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
22482 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22484 if (flags & NDR_OUT) {
22485 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
22488 struct ndr_push *_ndr_info;
22489 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
22490 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
22491 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
22492 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
22495 if (r->out.needed == NULL) {
22496 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22498 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22499 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22501 return NDR_ERR_SUCCESS;
22504 static enum ndr_err_code ndr_pull_spoolss_GetPrintProcessorDirectory(struct ndr_pull *ndr, int flags, struct spoolss_GetPrintProcessorDirectory *r)
22506 uint32_t _ptr_server;
22507 uint32_t _ptr_environment;
22508 uint32_t _ptr_buffer;
22509 uint32_t _ptr_info;
22510 TALLOC_CTX *_mem_save_server_0;
22511 TALLOC_CTX *_mem_save_environment_0;
22512 TALLOC_CTX *_mem_save_buffer_0;
22513 TALLOC_CTX *_mem_save_info_0;
22514 TALLOC_CTX *_mem_save_needed_0;
22515 if (flags & NDR_IN) {
22516 ZERO_STRUCT(r->out);
22518 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
22520 NDR_PULL_ALLOC(ndr, r->in.server);
22522 r->in.server = NULL;
22524 if (r->in.server) {
22525 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
22526 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
22527 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
22528 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
22529 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
22530 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));
22532 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
22533 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
22534 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
22536 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
22537 if (_ptr_environment) {
22538 NDR_PULL_ALLOC(ndr, r->in.environment);
22540 r->in.environment = NULL;
22542 if (r->in.environment) {
22543 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
22544 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
22545 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
22546 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
22547 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
22548 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));
22550 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
22551 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
22552 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
22554 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22555 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
22557 NDR_PULL_ALLOC(ndr, r->in.buffer);
22559 r->in.buffer = NULL;
22561 if (r->in.buffer) {
22562 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
22563 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
22564 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
22565 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22567 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22568 NDR_PULL_ALLOC(ndr, r->out.needed);
22569 ZERO_STRUCTP(r->out.needed);
22571 if (flags & NDR_OUT) {
22572 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
22574 NDR_PULL_ALLOC(ndr, r->out.info);
22576 r->out.info = NULL;
22579 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22580 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22582 struct ndr_pull *_ndr_info;
22583 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
22584 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
22585 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
22586 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
22588 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22590 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22591 NDR_PULL_ALLOC(ndr, r->out.needed);
22593 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22594 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22595 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22596 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22597 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22599 return NDR_ERR_SUCCESS;
22602 _PUBLIC_ void ndr_print_spoolss_GetPrintProcessorDirectory(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrintProcessorDirectory *r)
22604 ndr_print_struct(ndr, name, "spoolss_GetPrintProcessorDirectory");
22606 if (flags & NDR_SET_VALUES) {
22607 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22609 if (flags & NDR_IN) {
22610 ndr_print_struct(ndr, "in", "spoolss_GetPrintProcessorDirectory");
22612 ndr_print_ptr(ndr, "server", r->in.server);
22614 if (r->in.server) {
22615 ndr_print_string(ndr, "server", r->in.server);
22618 ndr_print_ptr(ndr, "environment", r->in.environment);
22620 if (r->in.environment) {
22621 ndr_print_string(ndr, "environment", r->in.environment);
22624 ndr_print_uint32(ndr, "level", r->in.level);
22625 ndr_print_ptr(ndr, "buffer", r->in.buffer);
22627 if (r->in.buffer) {
22628 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
22631 ndr_print_uint32(ndr, "offered", r->in.offered);
22634 if (flags & NDR_OUT) {
22635 ndr_print_struct(ndr, "out", "spoolss_GetPrintProcessorDirectory");
22637 ndr_print_ptr(ndr, "info", r->out.info);
22640 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
22641 ndr_print_spoolss_PrintProcessorDirectoryInfo(ndr, "info", r->out.info);
22644 ndr_print_ptr(ndr, "needed", r->out.needed);
22646 ndr_print_uint32(ndr, "needed", *r->out.needed);
22648 ndr_print_WERROR(ndr, "result", r->out.result);
22654 static enum ndr_err_code ndr_push_spoolss_StartDocPrinter(struct ndr_push *ndr, int flags, const struct spoolss_StartDocPrinter *r)
22656 if (flags & NDR_IN) {
22657 if (r->in.handle == NULL) {
22658 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22660 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22661 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22662 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
22663 NDR_CHECK(ndr_push_spoolss_DocumentInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
22665 if (flags & NDR_OUT) {
22666 if (r->out.job_id == NULL) {
22667 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22669 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.job_id));
22670 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22672 return NDR_ERR_SUCCESS;
22675 static enum ndr_err_code ndr_pull_spoolss_StartDocPrinter(struct ndr_pull *ndr, int flags, struct spoolss_StartDocPrinter *r)
22677 TALLOC_CTX *_mem_save_handle_0;
22678 TALLOC_CTX *_mem_save_job_id_0;
22679 if (flags & NDR_IN) {
22680 ZERO_STRUCT(r->out);
22682 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22683 NDR_PULL_ALLOC(ndr, r->in.handle);
22685 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22686 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22687 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22688 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22689 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22690 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
22691 NDR_CHECK(ndr_pull_spoolss_DocumentInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
22692 NDR_PULL_ALLOC(ndr, r->out.job_id);
22693 ZERO_STRUCTP(r->out.job_id);
22695 if (flags & NDR_OUT) {
22696 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22697 NDR_PULL_ALLOC(ndr, r->out.job_id);
22699 _mem_save_job_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
22700 NDR_PULL_SET_MEM_CTX(ndr, r->out.job_id, LIBNDR_FLAG_REF_ALLOC);
22701 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.job_id));
22702 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_job_id_0, LIBNDR_FLAG_REF_ALLOC);
22703 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22705 return NDR_ERR_SUCCESS;
22708 _PUBLIC_ void ndr_print_spoolss_StartDocPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_StartDocPrinter *r)
22710 ndr_print_struct(ndr, name, "spoolss_StartDocPrinter");
22712 if (flags & NDR_SET_VALUES) {
22713 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22715 if (flags & NDR_IN) {
22716 ndr_print_struct(ndr, "in", "spoolss_StartDocPrinter");
22718 ndr_print_ptr(ndr, "handle", r->in.handle);
22720 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22722 ndr_print_uint32(ndr, "level", r->in.level);
22723 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
22724 ndr_print_spoolss_DocumentInfo(ndr, "info", &r->in.info);
22727 if (flags & NDR_OUT) {
22728 ndr_print_struct(ndr, "out", "spoolss_StartDocPrinter");
22730 ndr_print_ptr(ndr, "job_id", r->out.job_id);
22732 ndr_print_uint32(ndr, "job_id", *r->out.job_id);
22734 ndr_print_WERROR(ndr, "result", r->out.result);
22740 static enum ndr_err_code ndr_push_spoolss_StartPagePrinter(struct ndr_push *ndr, int flags, const struct spoolss_StartPagePrinter *r)
22742 if (flags & NDR_IN) {
22743 if (r->in.handle == NULL) {
22744 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22746 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22748 if (flags & NDR_OUT) {
22749 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22751 return NDR_ERR_SUCCESS;
22754 static enum ndr_err_code ndr_pull_spoolss_StartPagePrinter(struct ndr_pull *ndr, int flags, struct spoolss_StartPagePrinter *r)
22756 TALLOC_CTX *_mem_save_handle_0;
22757 if (flags & NDR_IN) {
22758 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22759 NDR_PULL_ALLOC(ndr, r->in.handle);
22761 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22762 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22763 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22764 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22766 if (flags & NDR_OUT) {
22767 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22769 return NDR_ERR_SUCCESS;
22772 _PUBLIC_ void ndr_print_spoolss_StartPagePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_StartPagePrinter *r)
22774 ndr_print_struct(ndr, name, "spoolss_StartPagePrinter");
22776 if (flags & NDR_SET_VALUES) {
22777 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22779 if (flags & NDR_IN) {
22780 ndr_print_struct(ndr, "in", "spoolss_StartPagePrinter");
22782 ndr_print_ptr(ndr, "handle", r->in.handle);
22784 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22788 if (flags & NDR_OUT) {
22789 ndr_print_struct(ndr, "out", "spoolss_StartPagePrinter");
22791 ndr_print_WERROR(ndr, "result", r->out.result);
22797 static enum ndr_err_code ndr_push_spoolss_WritePrinter(struct ndr_push *ndr, int flags, const struct spoolss_WritePrinter *r)
22799 if (flags & NDR_IN) {
22800 if (r->in.handle == NULL) {
22801 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22803 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22804 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
22805 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data.length));
22807 if (flags & NDR_OUT) {
22808 if (r->out.num_written == NULL) {
22809 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22811 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.num_written));
22812 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22814 return NDR_ERR_SUCCESS;
22817 static enum ndr_err_code ndr_pull_spoolss_WritePrinter(struct ndr_pull *ndr, int flags, struct spoolss_WritePrinter *r)
22819 TALLOC_CTX *_mem_save_handle_0;
22820 TALLOC_CTX *_mem_save_num_written_0;
22821 if (flags & NDR_IN) {
22822 ZERO_STRUCT(r->out);
22824 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22825 NDR_PULL_ALLOC(ndr, r->in.handle);
22827 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22828 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22829 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22830 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22831 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->in.data));
22832 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._data_size));
22833 NDR_PULL_ALLOC(ndr, r->out.num_written);
22834 ZERO_STRUCTP(r->out.num_written);
22836 if (flags & NDR_OUT) {
22837 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22838 NDR_PULL_ALLOC(ndr, r->out.num_written);
22840 _mem_save_num_written_0 = NDR_PULL_GET_MEM_CTX(ndr);
22841 NDR_PULL_SET_MEM_CTX(ndr, r->out.num_written, LIBNDR_FLAG_REF_ALLOC);
22842 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.num_written));
22843 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_num_written_0, LIBNDR_FLAG_REF_ALLOC);
22844 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22846 return NDR_ERR_SUCCESS;
22849 _PUBLIC_ void ndr_print_spoolss_WritePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_WritePrinter *r)
22851 ndr_print_struct(ndr, name, "spoolss_WritePrinter");
22853 if (flags & NDR_SET_VALUES) {
22854 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22856 if (flags & NDR_IN) {
22857 ndr_print_struct(ndr, "in", "spoolss_WritePrinter");
22859 ndr_print_ptr(ndr, "handle", r->in.handle);
22861 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22863 ndr_print_DATA_BLOB(ndr, "data", r->in.data);
22864 ndr_print_uint32(ndr, "_data_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->in.data.length:r->in._data_size);
22867 if (flags & NDR_OUT) {
22868 ndr_print_struct(ndr, "out", "spoolss_WritePrinter");
22870 ndr_print_ptr(ndr, "num_written", r->out.num_written);
22872 ndr_print_uint32(ndr, "num_written", *r->out.num_written);
22874 ndr_print_WERROR(ndr, "result", r->out.result);
22880 static enum ndr_err_code ndr_push_spoolss_EndPagePrinter(struct ndr_push *ndr, int flags, const struct spoolss_EndPagePrinter *r)
22882 if (flags & NDR_IN) {
22883 if (r->in.handle == NULL) {
22884 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22886 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22888 if (flags & NDR_OUT) {
22889 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22891 return NDR_ERR_SUCCESS;
22894 static enum ndr_err_code ndr_pull_spoolss_EndPagePrinter(struct ndr_pull *ndr, int flags, struct spoolss_EndPagePrinter *r)
22896 TALLOC_CTX *_mem_save_handle_0;
22897 if (flags & NDR_IN) {
22898 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22899 NDR_PULL_ALLOC(ndr, r->in.handle);
22901 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22902 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22903 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22904 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22906 if (flags & NDR_OUT) {
22907 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22909 return NDR_ERR_SUCCESS;
22912 _PUBLIC_ void ndr_print_spoolss_EndPagePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EndPagePrinter *r)
22914 ndr_print_struct(ndr, name, "spoolss_EndPagePrinter");
22916 if (flags & NDR_SET_VALUES) {
22917 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22919 if (flags & NDR_IN) {
22920 ndr_print_struct(ndr, "in", "spoolss_EndPagePrinter");
22922 ndr_print_ptr(ndr, "handle", r->in.handle);
22924 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22928 if (flags & NDR_OUT) {
22929 ndr_print_struct(ndr, "out", "spoolss_EndPagePrinter");
22931 ndr_print_WERROR(ndr, "result", r->out.result);
22937 static enum ndr_err_code ndr_push_spoolss_AbortPrinter(struct ndr_push *ndr, int flags, const struct spoolss_AbortPrinter *r)
22939 if (flags & NDR_IN) {
22940 if (r->in.handle == NULL) {
22941 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22943 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22945 if (flags & NDR_OUT) {
22946 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22948 return NDR_ERR_SUCCESS;
22951 static enum ndr_err_code ndr_pull_spoolss_AbortPrinter(struct ndr_pull *ndr, int flags, struct spoolss_AbortPrinter *r)
22953 TALLOC_CTX *_mem_save_handle_0;
22954 if (flags & NDR_IN) {
22955 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22956 NDR_PULL_ALLOC(ndr, r->in.handle);
22958 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22959 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22960 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22961 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22963 if (flags & NDR_OUT) {
22964 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22966 return NDR_ERR_SUCCESS;
22969 _PUBLIC_ void ndr_print_spoolss_AbortPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AbortPrinter *r)
22971 ndr_print_struct(ndr, name, "spoolss_AbortPrinter");
22973 if (flags & NDR_SET_VALUES) {
22974 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22976 if (flags & NDR_IN) {
22977 ndr_print_struct(ndr, "in", "spoolss_AbortPrinter");
22979 ndr_print_ptr(ndr, "handle", r->in.handle);
22981 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22985 if (flags & NDR_OUT) {
22986 ndr_print_struct(ndr, "out", "spoolss_AbortPrinter");
22988 ndr_print_WERROR(ndr, "result", r->out.result);
22994 static enum ndr_err_code ndr_push_spoolss_ReadPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReadPrinter *r)
22996 if (flags & NDR_IN) {
22997 if (r->in.handle == NULL) {
22998 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23000 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23001 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_size));
23003 if (flags & NDR_OUT) {
23004 if (r->out.data == NULL) {
23005 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23007 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.data_size));
23008 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->in.data_size));
23009 if (r->out._data_size == NULL) {
23010 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23012 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out._data_size));
23013 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23015 return NDR_ERR_SUCCESS;
23018 static enum ndr_err_code ndr_pull_spoolss_ReadPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReadPrinter *r)
23020 TALLOC_CTX *_mem_save_handle_0;
23021 TALLOC_CTX *_mem_save__data_size_0;
23022 if (flags & NDR_IN) {
23023 ZERO_STRUCT(r->out);
23025 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23026 NDR_PULL_ALLOC(ndr, r->in.handle);
23028 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23029 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23030 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23031 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23032 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_size));
23033 NDR_PULL_ALLOC_N(ndr, r->out.data, r->in.data_size);
23034 memset(r->out.data, 0, (r->in.data_size) * sizeof(*r->out.data));
23035 NDR_PULL_ALLOC(ndr, r->out._data_size);
23036 ZERO_STRUCTP(r->out._data_size);
23038 if (flags & NDR_OUT) {
23039 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
23040 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23041 NDR_PULL_ALLOC_N(ndr, r->out.data, ndr_get_array_size(ndr, &r->out.data));
23043 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, ndr_get_array_size(ndr, &r->out.data)));
23044 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23045 NDR_PULL_ALLOC(ndr, r->out._data_size);
23047 _mem_save__data_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
23048 NDR_PULL_SET_MEM_CTX(ndr, r->out._data_size, LIBNDR_FLAG_REF_ALLOC);
23049 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out._data_size));
23050 NDR_PULL_SET_MEM_CTX(ndr, _mem_save__data_size_0, LIBNDR_FLAG_REF_ALLOC);
23051 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23053 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, r->in.data_size));
23056 return NDR_ERR_SUCCESS;
23059 _PUBLIC_ void ndr_print_spoolss_ReadPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReadPrinter *r)
23061 ndr_print_struct(ndr, name, "spoolss_ReadPrinter");
23063 if (flags & NDR_SET_VALUES) {
23064 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23066 if (flags & NDR_IN) {
23067 ndr_print_struct(ndr, "in", "spoolss_ReadPrinter");
23069 ndr_print_ptr(ndr, "handle", r->in.handle);
23071 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23073 ndr_print_uint32(ndr, "data_size", r->in.data_size);
23076 if (flags & NDR_OUT) {
23077 ndr_print_struct(ndr, "out", "spoolss_ReadPrinter");
23079 ndr_print_ptr(ndr, "data", r->out.data);
23081 ndr_print_array_uint8(ndr, "data", r->out.data, r->in.data_size);
23083 ndr_print_ptr(ndr, "_data_size", r->out._data_size);
23085 ndr_print_uint32(ndr, "_data_size", *r->out._data_size);
23087 ndr_print_WERROR(ndr, "result", r->out.result);
23093 static enum ndr_err_code ndr_push_spoolss_EndDocPrinter(struct ndr_push *ndr, int flags, const struct spoolss_EndDocPrinter *r)
23095 if (flags & NDR_IN) {
23096 if (r->in.handle == NULL) {
23097 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23099 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23101 if (flags & NDR_OUT) {
23102 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23104 return NDR_ERR_SUCCESS;
23107 static enum ndr_err_code ndr_pull_spoolss_EndDocPrinter(struct ndr_pull *ndr, int flags, struct spoolss_EndDocPrinter *r)
23109 TALLOC_CTX *_mem_save_handle_0;
23110 if (flags & NDR_IN) {
23111 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23112 NDR_PULL_ALLOC(ndr, r->in.handle);
23114 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23115 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23116 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23117 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23119 if (flags & NDR_OUT) {
23120 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23122 return NDR_ERR_SUCCESS;
23125 _PUBLIC_ void ndr_print_spoolss_EndDocPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EndDocPrinter *r)
23127 ndr_print_struct(ndr, name, "spoolss_EndDocPrinter");
23129 if (flags & NDR_SET_VALUES) {
23130 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23132 if (flags & NDR_IN) {
23133 ndr_print_struct(ndr, "in", "spoolss_EndDocPrinter");
23135 ndr_print_ptr(ndr, "handle", r->in.handle);
23137 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23141 if (flags & NDR_OUT) {
23142 ndr_print_struct(ndr, "out", "spoolss_EndDocPrinter");
23144 ndr_print_WERROR(ndr, "result", r->out.result);
23150 static enum ndr_err_code ndr_push_spoolss_AddJob(struct ndr_push *ndr, int flags, const struct spoolss_AddJob *r)
23152 if (flags & NDR_IN) {
23153 if (r->in.handle == NULL) {
23154 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23156 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23157 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23158 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
23159 if (r->in.buffer) {
23160 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.offered));
23161 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.offered));
23163 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
23165 if (flags & NDR_OUT) {
23166 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.buffer));
23167 if (r->out.buffer) {
23168 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.offered));
23169 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
23171 if (r->out.needed == NULL) {
23172 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23174 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
23175 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23177 return NDR_ERR_SUCCESS;
23180 static enum ndr_err_code ndr_pull_spoolss_AddJob(struct ndr_pull *ndr, int flags, struct spoolss_AddJob *r)
23182 uint32_t _ptr_buffer;
23183 TALLOC_CTX *_mem_save_handle_0;
23184 TALLOC_CTX *_mem_save_buffer_0;
23185 TALLOC_CTX *_mem_save_needed_0;
23186 if (flags & NDR_IN) {
23187 ZERO_STRUCT(r->out);
23189 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23190 NDR_PULL_ALLOC(ndr, r->in.handle);
23192 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23193 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23194 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23195 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23196 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23197 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
23199 NDR_PULL_ALLOC(ndr, r->in.buffer);
23201 r->in.buffer = NULL;
23203 if (r->in.buffer) {
23204 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
23205 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
23206 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
23207 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
23208 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
23209 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
23211 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
23212 NDR_PULL_ALLOC(ndr, r->out.needed);
23213 ZERO_STRUCTP(r->out.needed);
23214 if (r->in.buffer) {
23215 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.offered));
23218 if (flags & NDR_OUT) {
23219 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
23221 NDR_PULL_ALLOC(ndr, r->out.buffer);
23223 r->out.buffer = NULL;
23225 if (r->out.buffer) {
23226 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
23227 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, 0);
23228 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
23229 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
23230 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)));
23231 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
23233 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23234 NDR_PULL_ALLOC(ndr, r->out.needed);
23236 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
23237 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
23238 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
23239 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
23240 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23241 if (r->out.buffer) {
23242 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
23245 return NDR_ERR_SUCCESS;
23248 _PUBLIC_ void ndr_print_spoolss_AddJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddJob *r)
23250 ndr_print_struct(ndr, name, "spoolss_AddJob");
23252 if (flags & NDR_SET_VALUES) {
23253 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23255 if (flags & NDR_IN) {
23256 ndr_print_struct(ndr, "in", "spoolss_AddJob");
23258 ndr_print_ptr(ndr, "handle", r->in.handle);
23260 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23262 ndr_print_uint32(ndr, "level", r->in.level);
23263 ndr_print_ptr(ndr, "buffer", r->in.buffer);
23265 if (r->in.buffer) {
23266 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.offered);
23269 ndr_print_uint32(ndr, "offered", r->in.offered);
23272 if (flags & NDR_OUT) {
23273 ndr_print_struct(ndr, "out", "spoolss_AddJob");
23275 ndr_print_ptr(ndr, "buffer", r->out.buffer);
23277 if (r->out.buffer) {
23278 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
23281 ndr_print_ptr(ndr, "needed", r->out.needed);
23283 ndr_print_uint32(ndr, "needed", *r->out.needed);
23285 ndr_print_WERROR(ndr, "result", r->out.result);
23291 static enum ndr_err_code ndr_push_spoolss_ScheduleJob(struct ndr_push *ndr, int flags, const struct spoolss_ScheduleJob *r)
23293 if (flags & NDR_IN) {
23294 if (r->in.handle == NULL) {
23295 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23297 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23298 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.jobid));
23300 if (flags & NDR_OUT) {
23301 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23303 return NDR_ERR_SUCCESS;
23306 static enum ndr_err_code ndr_pull_spoolss_ScheduleJob(struct ndr_pull *ndr, int flags, struct spoolss_ScheduleJob *r)
23308 TALLOC_CTX *_mem_save_handle_0;
23309 if (flags & NDR_IN) {
23310 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23311 NDR_PULL_ALLOC(ndr, r->in.handle);
23313 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23314 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23315 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23316 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23317 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.jobid));
23319 if (flags & NDR_OUT) {
23320 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23322 return NDR_ERR_SUCCESS;
23325 _PUBLIC_ void ndr_print_spoolss_ScheduleJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ScheduleJob *r)
23327 ndr_print_struct(ndr, name, "spoolss_ScheduleJob");
23329 if (flags & NDR_SET_VALUES) {
23330 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23332 if (flags & NDR_IN) {
23333 ndr_print_struct(ndr, "in", "spoolss_ScheduleJob");
23335 ndr_print_ptr(ndr, "handle", r->in.handle);
23337 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23339 ndr_print_uint32(ndr, "jobid", r->in.jobid);
23342 if (flags & NDR_OUT) {
23343 ndr_print_struct(ndr, "out", "spoolss_ScheduleJob");
23345 ndr_print_WERROR(ndr, "result", r->out.result);
23351 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct _spoolss_GetPrinterData *r)
23353 if (flags & NDR_IN) {
23354 if (r->in.handle == NULL) {
23355 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23357 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23358 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
23359 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
23360 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
23361 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));
23362 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
23364 if (flags & NDR_OUT) {
23365 if (r->out.type == NULL) {
23366 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23368 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
23369 if (r->out.data == NULL) {
23370 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23372 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.data));
23373 if (r->out.needed == NULL) {
23374 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23376 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
23377 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23379 return NDR_ERR_SUCCESS;
23382 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct _spoolss_GetPrinterData *r)
23384 TALLOC_CTX *_mem_save_handle_0;
23385 TALLOC_CTX *_mem_save_type_0;
23386 TALLOC_CTX *_mem_save_data_0;
23387 TALLOC_CTX *_mem_save_needed_0;
23388 if (flags & NDR_IN) {
23389 ZERO_STRUCT(r->out);
23391 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23392 NDR_PULL_ALLOC(ndr, r->in.handle);
23394 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23395 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23396 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23397 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23398 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
23399 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
23400 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
23401 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));
23403 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
23404 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));
23405 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
23406 NDR_PULL_ALLOC(ndr, r->out.type);
23407 ZERO_STRUCTP(r->out.type);
23408 NDR_PULL_ALLOC(ndr, r->out.data);
23409 ZERO_STRUCTP(r->out.data);
23410 NDR_PULL_ALLOC(ndr, r->out.needed);
23411 ZERO_STRUCTP(r->out.needed);
23413 if (flags & NDR_OUT) {
23414 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23415 NDR_PULL_ALLOC(ndr, r->out.type);
23417 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
23418 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
23419 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
23420 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
23421 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23422 NDR_PULL_ALLOC(ndr, r->out.data);
23424 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
23425 NDR_PULL_SET_MEM_CTX(ndr, r->out.data, LIBNDR_FLAG_REF_ALLOC);
23426 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.data));
23427 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
23428 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23429 NDR_PULL_ALLOC(ndr, r->out.needed);
23431 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
23432 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
23433 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
23434 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
23435 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23437 return NDR_ERR_SUCCESS;
23440 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct __spoolss_GetPrinterData *r)
23442 if (flags & NDR_IN) {
23443 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
23445 if (flags & NDR_OUT) {
23446 if (r->out.data == NULL) {
23447 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23449 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.data, r->in.type));
23450 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
23452 return NDR_ERR_SUCCESS;
23455 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct __spoolss_GetPrinterData *r)
23457 TALLOC_CTX *_mem_save_data_0;
23458 if (flags & NDR_IN) {
23459 ZERO_STRUCT(r->out);
23461 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
23462 NDR_PULL_ALLOC(ndr, r->out.data);
23463 ZERO_STRUCTP(r->out.data);
23465 if (flags & NDR_OUT) {
23466 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23467 NDR_PULL_ALLOC(ndr, r->out.data);
23469 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
23470 NDR_PULL_SET_MEM_CTX(ndr, r->out.data, LIBNDR_FLAG_REF_ALLOC);
23471 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.data, r->in.type));
23472 NDR_CHECK(ndr_pull_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
23473 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
23475 return NDR_ERR_SUCCESS;
23478 _PUBLIC_ void ndr_print_spoolss_GetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterData *r)
23480 ndr_print_struct(ndr, name, "spoolss_GetPrinterData");
23482 if (flags & NDR_SET_VALUES) {
23483 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23485 if (flags & NDR_IN) {
23486 ndr_print_struct(ndr, "in", "spoolss_GetPrinterData");
23488 ndr_print_ptr(ndr, "handle", r->in.handle);
23490 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23492 ndr_print_string(ndr, "value_name", r->in.value_name);
23493 ndr_print_uint32(ndr, "offered", r->in.offered);
23496 if (flags & NDR_OUT) {
23497 ndr_print_struct(ndr, "out", "spoolss_GetPrinterData");
23499 ndr_print_ptr(ndr, "type", r->out.type);
23501 ndr_print_winreg_Type(ndr, "type", *r->out.type);
23503 ndr_print_ptr(ndr, "data", r->out.data);
23505 ndr_print_set_switch_value(ndr, r->out.data, *r->out.type);
23506 ndr_print_spoolss_PrinterData(ndr, "data", r->out.data);
23508 ndr_print_ptr(ndr, "needed", r->out.needed);
23510 ndr_print_uint32(ndr, "needed", *r->out.needed);
23512 ndr_print_WERROR(ndr, "result", r->out.result);
23518 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct _spoolss_SetPrinterData *r)
23520 if (flags & NDR_IN) {
23521 if (r->in.handle == NULL) {
23522 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23524 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23525 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
23526 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
23527 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
23528 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));
23529 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
23530 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
23531 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in._offered));
23533 if (flags & NDR_OUT) {
23534 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23536 return NDR_ERR_SUCCESS;
23539 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct __spoolss_SetPrinterData *r)
23541 if (flags & NDR_IN) {
23542 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
23544 if (flags & NDR_OUT) {
23545 if (r->out.data == NULL) {
23546 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23548 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.data, r->in.type));
23549 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
23551 return NDR_ERR_SUCCESS;
23554 static enum ndr_err_code ndr_pull_spoolss_SetPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinterData *r)
23556 TALLOC_CTX *_mem_save_handle_0;
23557 if (flags & NDR_IN) {
23558 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23559 NDR_PULL_ALLOC(ndr, r->in.handle);
23561 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23562 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23563 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23564 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23565 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
23566 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
23567 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
23568 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));
23570 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
23571 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));
23572 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
23574 struct ndr_pull *_ndr_data;
23575 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_data, 4, -1));
23576 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data, &r->in.data, r->in.type));
23577 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
23578 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_data, 4, -1));
23580 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._offered));
23582 if (flags & NDR_OUT) {
23583 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23585 return NDR_ERR_SUCCESS;
23588 _PUBLIC_ void ndr_print_spoolss_SetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinterData *r)
23590 ndr_print_struct(ndr, name, "spoolss_SetPrinterData");
23592 if (flags & NDR_SET_VALUES) {
23593 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23595 if (flags & NDR_IN) {
23596 ndr_print_struct(ndr, "in", "spoolss_SetPrinterData");
23598 ndr_print_ptr(ndr, "handle", r->in.handle);
23600 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23602 ndr_print_string(ndr, "value_name", r->in.value_name);
23603 ndr_print_winreg_Type(ndr, "type", r->in.type);
23604 ndr_print_set_switch_value(ndr, &r->in.data, r->in.type);
23605 ndr_print_spoolss_PrinterData(ndr, "data", &r->in.data);
23606 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);
23609 if (flags & NDR_OUT) {
23610 ndr_print_struct(ndr, "out", "spoolss_SetPrinterData");
23612 ndr_print_WERROR(ndr, "result", r->out.result);
23618 static enum ndr_err_code ndr_push_spoolss_WaitForPrinterChange(struct ndr_push *ndr, int flags, const struct spoolss_WaitForPrinterChange *r)
23620 if (flags & NDR_IN) {
23622 if (flags & NDR_OUT) {
23623 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23625 return NDR_ERR_SUCCESS;
23628 static enum ndr_err_code ndr_pull_spoolss_WaitForPrinterChange(struct ndr_pull *ndr, int flags, struct spoolss_WaitForPrinterChange *r)
23630 if (flags & NDR_IN) {
23632 if (flags & NDR_OUT) {
23633 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23635 return NDR_ERR_SUCCESS;
23638 _PUBLIC_ void ndr_print_spoolss_WaitForPrinterChange(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_WaitForPrinterChange *r)
23640 ndr_print_struct(ndr, name, "spoolss_WaitForPrinterChange");
23642 if (flags & NDR_SET_VALUES) {
23643 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23645 if (flags & NDR_IN) {
23646 ndr_print_struct(ndr, "in", "spoolss_WaitForPrinterChange");
23650 if (flags & NDR_OUT) {
23651 ndr_print_struct(ndr, "out", "spoolss_WaitForPrinterChange");
23653 ndr_print_WERROR(ndr, "result", r->out.result);
23659 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ClosePrinter(struct ndr_push *ndr, int flags, const struct spoolss_ClosePrinter *r)
23661 if (flags & NDR_IN) {
23662 if (r->in.handle == NULL) {
23663 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23665 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23667 if (flags & NDR_OUT) {
23668 if (r->out.handle == NULL) {
23669 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23671 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
23672 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23674 return NDR_ERR_SUCCESS;
23677 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ClosePrinter(struct ndr_pull *ndr, int flags, struct spoolss_ClosePrinter *r)
23679 TALLOC_CTX *_mem_save_handle_0;
23680 if (flags & NDR_IN) {
23681 ZERO_STRUCT(r->out);
23683 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23684 NDR_PULL_ALLOC(ndr, r->in.handle);
23686 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23687 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23688 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23689 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23690 NDR_PULL_ALLOC(ndr, r->out.handle);
23691 *r->out.handle = *r->in.handle;
23693 if (flags & NDR_OUT) {
23694 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23695 NDR_PULL_ALLOC(ndr, r->out.handle);
23697 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23698 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
23699 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
23700 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23701 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23703 return NDR_ERR_SUCCESS;
23706 _PUBLIC_ void ndr_print_spoolss_ClosePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ClosePrinter *r)
23708 ndr_print_struct(ndr, name, "spoolss_ClosePrinter");
23710 if (flags & NDR_SET_VALUES) {
23711 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23713 if (flags & NDR_IN) {
23714 ndr_print_struct(ndr, "in", "spoolss_ClosePrinter");
23716 ndr_print_ptr(ndr, "handle", r->in.handle);
23718 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23722 if (flags & NDR_OUT) {
23723 ndr_print_struct(ndr, "out", "spoolss_ClosePrinter");
23725 ndr_print_ptr(ndr, "handle", r->out.handle);
23727 ndr_print_policy_handle(ndr, "handle", r->out.handle);
23729 ndr_print_WERROR(ndr, "result", r->out.result);
23735 static enum ndr_err_code ndr_push_spoolss_AddForm(struct ndr_push *ndr, int flags, const struct spoolss_AddForm *r)
23737 if (flags & NDR_IN) {
23738 if (r->in.handle == NULL) {
23739 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23741 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23742 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23743 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
23744 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
23746 if (flags & NDR_OUT) {
23747 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23749 return NDR_ERR_SUCCESS;
23752 static enum ndr_err_code ndr_pull_spoolss_AddForm(struct ndr_pull *ndr, int flags, struct spoolss_AddForm *r)
23754 TALLOC_CTX *_mem_save_handle_0;
23755 if (flags & NDR_IN) {
23756 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23757 NDR_PULL_ALLOC(ndr, r->in.handle);
23759 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23760 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23761 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23762 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23763 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23764 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
23765 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
23767 if (flags & NDR_OUT) {
23768 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23770 return NDR_ERR_SUCCESS;
23773 _PUBLIC_ void ndr_print_spoolss_AddForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddForm *r)
23775 ndr_print_struct(ndr, name, "spoolss_AddForm");
23777 if (flags & NDR_SET_VALUES) {
23778 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23780 if (flags & NDR_IN) {
23781 ndr_print_struct(ndr, "in", "spoolss_AddForm");
23783 ndr_print_ptr(ndr, "handle", r->in.handle);
23785 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23787 ndr_print_uint32(ndr, "level", r->in.level);
23788 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
23789 ndr_print_spoolss_AddFormInfo(ndr, "info", &r->in.info);
23792 if (flags & NDR_OUT) {
23793 ndr_print_struct(ndr, "out", "spoolss_AddForm");
23795 ndr_print_WERROR(ndr, "result", r->out.result);
23801 static enum ndr_err_code ndr_push_spoolss_DeleteForm(struct ndr_push *ndr, int flags, const struct spoolss_DeleteForm *r)
23803 if (flags & NDR_IN) {
23804 if (r->in.handle == NULL) {
23805 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23807 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23808 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
23809 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
23810 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
23811 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));
23813 if (flags & NDR_OUT) {
23814 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23816 return NDR_ERR_SUCCESS;
23819 static enum ndr_err_code ndr_pull_spoolss_DeleteForm(struct ndr_pull *ndr, int flags, struct spoolss_DeleteForm *r)
23821 TALLOC_CTX *_mem_save_handle_0;
23822 if (flags & NDR_IN) {
23823 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23824 NDR_PULL_ALLOC(ndr, r->in.handle);
23826 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23827 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23828 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23829 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23830 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
23831 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
23832 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
23833 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));
23835 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
23836 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));
23838 if (flags & NDR_OUT) {
23839 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23841 return NDR_ERR_SUCCESS;
23844 _PUBLIC_ void ndr_print_spoolss_DeleteForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeleteForm *r)
23846 ndr_print_struct(ndr, name, "spoolss_DeleteForm");
23848 if (flags & NDR_SET_VALUES) {
23849 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23851 if (flags & NDR_IN) {
23852 ndr_print_struct(ndr, "in", "spoolss_DeleteForm");
23854 ndr_print_ptr(ndr, "handle", r->in.handle);
23856 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23858 ndr_print_string(ndr, "form_name", r->in.form_name);
23861 if (flags & NDR_OUT) {
23862 ndr_print_struct(ndr, "out", "spoolss_DeleteForm");
23864 ndr_print_WERROR(ndr, "result", r->out.result);
23870 static enum ndr_err_code ndr_push_spoolss_GetForm(struct ndr_push *ndr, int flags, const struct spoolss_GetForm *r)
23872 if (flags & NDR_IN) {
23873 if (r->in.handle == NULL) {
23874 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23876 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23877 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
23878 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
23879 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
23880 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));
23881 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23882 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
23883 if (r->in.buffer) {
23884 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
23886 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
23888 if (flags & NDR_OUT) {
23889 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
23892 struct ndr_push *_ndr_info;
23893 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
23894 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
23895 NDR_CHECK(ndr_push_spoolss_FormInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
23896 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
23899 if (r->out.needed == NULL) {
23900 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23902 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
23903 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23905 return NDR_ERR_SUCCESS;
23908 static enum ndr_err_code ndr_pull_spoolss_GetForm(struct ndr_pull *ndr, int flags, struct spoolss_GetForm *r)
23910 uint32_t _ptr_buffer;
23911 uint32_t _ptr_info;
23912 TALLOC_CTX *_mem_save_handle_0;
23913 TALLOC_CTX *_mem_save_buffer_0;
23914 TALLOC_CTX *_mem_save_info_0;
23915 TALLOC_CTX *_mem_save_needed_0;
23916 if (flags & NDR_IN) {
23917 ZERO_STRUCT(r->out);
23919 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23920 NDR_PULL_ALLOC(ndr, r->in.handle);
23922 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23923 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23924 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23925 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23926 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
23927 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
23928 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
23929 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));
23931 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
23932 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));
23933 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23934 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
23936 NDR_PULL_ALLOC(ndr, r->in.buffer);
23938 r->in.buffer = NULL;
23940 if (r->in.buffer) {
23941 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
23942 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
23943 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
23944 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
23946 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
23947 NDR_PULL_ALLOC(ndr, r->out.needed);
23948 ZERO_STRUCTP(r->out.needed);
23950 if (flags & NDR_OUT) {
23951 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
23953 NDR_PULL_ALLOC(ndr, r->out.info);
23955 r->out.info = NULL;
23958 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
23959 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
23961 struct ndr_pull *_ndr_info;
23962 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
23963 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
23964 NDR_CHECK(ndr_pull_spoolss_FormInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
23965 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
23967 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
23969 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23970 NDR_PULL_ALLOC(ndr, r->out.needed);
23972 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
23973 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
23974 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
23975 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
23976 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23978 return NDR_ERR_SUCCESS;
23981 _PUBLIC_ void ndr_print_spoolss_GetForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetForm *r)
23983 ndr_print_struct(ndr, name, "spoolss_GetForm");
23985 if (flags & NDR_SET_VALUES) {
23986 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23988 if (flags & NDR_IN) {
23989 ndr_print_struct(ndr, "in", "spoolss_GetForm");
23991 ndr_print_ptr(ndr, "handle", r->in.handle);
23993 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23995 ndr_print_string(ndr, "form_name", r->in.form_name);
23996 ndr_print_uint32(ndr, "level", r->in.level);
23997 ndr_print_ptr(ndr, "buffer", r->in.buffer);
23999 if (r->in.buffer) {
24000 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
24003 ndr_print_uint32(ndr, "offered", r->in.offered);
24006 if (flags & NDR_OUT) {
24007 ndr_print_struct(ndr, "out", "spoolss_GetForm");
24009 ndr_print_ptr(ndr, "info", r->out.info);
24012 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
24013 ndr_print_spoolss_FormInfo(ndr, "info", r->out.info);
24016 ndr_print_ptr(ndr, "needed", r->out.needed);
24018 ndr_print_uint32(ndr, "needed", *r->out.needed);
24020 ndr_print_WERROR(ndr, "result", r->out.result);
24026 static enum ndr_err_code ndr_push_spoolss_SetForm(struct ndr_push *ndr, int flags, const struct spoolss_SetForm *r)
24028 if (flags & NDR_IN) {
24029 if (r->in.handle == NULL) {
24030 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24032 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24033 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
24034 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24035 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
24036 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));
24037 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24038 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
24039 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
24041 if (flags & NDR_OUT) {
24042 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24044 return NDR_ERR_SUCCESS;
24047 static enum ndr_err_code ndr_pull_spoolss_SetForm(struct ndr_pull *ndr, int flags, struct spoolss_SetForm *r)
24049 TALLOC_CTX *_mem_save_handle_0;
24050 if (flags & NDR_IN) {
24051 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24052 NDR_PULL_ALLOC(ndr, r->in.handle);
24054 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24055 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24056 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24057 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24058 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
24059 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
24060 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
24061 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));
24063 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
24064 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));
24065 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24066 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
24067 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
24069 if (flags & NDR_OUT) {
24070 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24072 return NDR_ERR_SUCCESS;
24075 _PUBLIC_ void ndr_print_spoolss_SetForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetForm *r)
24077 ndr_print_struct(ndr, name, "spoolss_SetForm");
24079 if (flags & NDR_SET_VALUES) {
24080 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24082 if (flags & NDR_IN) {
24083 ndr_print_struct(ndr, "in", "spoolss_SetForm");
24085 ndr_print_ptr(ndr, "handle", r->in.handle);
24087 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24089 ndr_print_string(ndr, "form_name", r->in.form_name);
24090 ndr_print_uint32(ndr, "level", r->in.level);
24091 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
24092 ndr_print_spoolss_AddFormInfo(ndr, "info", &r->in.info);
24095 if (flags & NDR_OUT) {
24096 ndr_print_struct(ndr, "out", "spoolss_SetForm");
24098 ndr_print_WERROR(ndr, "result", r->out.result);
24104 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumForms(struct ndr_push *ndr, int flags, const struct _spoolss_EnumForms *r)
24106 if (flags & NDR_IN) {
24107 if (r->in.handle == NULL) {
24108 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24110 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24111 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24112 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
24113 if (r->in.buffer) {
24114 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
24116 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
24118 if (flags & NDR_OUT) {
24119 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
24121 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
24123 if (r->out.needed == NULL) {
24124 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24126 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
24127 if (r->out.count == NULL) {
24128 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24130 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
24131 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24133 return NDR_ERR_SUCCESS;
24136 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumForms(struct ndr_pull *ndr, int flags, struct _spoolss_EnumForms *r)
24138 uint32_t _ptr_buffer;
24139 uint32_t _ptr_info;
24140 TALLOC_CTX *_mem_save_handle_0;
24141 TALLOC_CTX *_mem_save_buffer_0;
24142 TALLOC_CTX *_mem_save_info_0;
24143 TALLOC_CTX *_mem_save_needed_0;
24144 TALLOC_CTX *_mem_save_count_0;
24145 if (flags & NDR_IN) {
24146 ZERO_STRUCT(r->out);
24148 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24149 NDR_PULL_ALLOC(ndr, r->in.handle);
24151 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24152 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24153 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24154 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24155 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24156 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
24158 NDR_PULL_ALLOC(ndr, r->in.buffer);
24160 r->in.buffer = NULL;
24162 if (r->in.buffer) {
24163 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
24164 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
24165 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
24166 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
24168 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
24169 NDR_PULL_ALLOC(ndr, r->out.needed);
24170 ZERO_STRUCTP(r->out.needed);
24171 NDR_PULL_ALLOC(ndr, r->out.count);
24172 ZERO_STRUCTP(r->out.count);
24174 if (flags & NDR_OUT) {
24175 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
24177 NDR_PULL_ALLOC(ndr, r->out.info);
24179 r->out.info = NULL;
24182 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24183 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24184 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
24185 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24187 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24188 NDR_PULL_ALLOC(ndr, r->out.needed);
24190 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
24191 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
24192 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
24193 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
24194 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24195 NDR_PULL_ALLOC(ndr, r->out.count);
24197 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
24198 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
24199 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
24200 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
24201 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24203 return NDR_ERR_SUCCESS;
24206 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumForms(struct ndr_push *ndr, int flags, const struct __spoolss_EnumForms *r)
24208 uint32_t cntr_info_0;
24209 if (flags & NDR_IN) {
24210 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24211 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
24213 if (flags & NDR_OUT) {
24214 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24215 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
24216 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
24218 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24219 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
24222 return NDR_ERR_SUCCESS;
24225 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumForms(struct ndr_pull *ndr, int flags, struct __spoolss_EnumForms *r)
24227 uint32_t cntr_info_0;
24228 TALLOC_CTX *_mem_save_info_0;
24229 if (flags & NDR_IN) {
24230 ZERO_STRUCT(r->out);
24232 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24233 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
24235 if (flags & NDR_OUT) {
24236 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
24237 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24238 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24239 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24240 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
24241 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
24243 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24244 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
24246 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24248 return NDR_ERR_SUCCESS;
24251 _PUBLIC_ void ndr_print_spoolss_EnumForms(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumForms *r)
24253 uint32_t cntr_info_2;
24254 ndr_print_struct(ndr, name, "spoolss_EnumForms");
24256 if (flags & NDR_SET_VALUES) {
24257 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24259 if (flags & NDR_IN) {
24260 ndr_print_struct(ndr, "in", "spoolss_EnumForms");
24262 ndr_print_ptr(ndr, "handle", r->in.handle);
24264 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24266 ndr_print_uint32(ndr, "level", r->in.level);
24267 ndr_print_ptr(ndr, "buffer", r->in.buffer);
24269 if (r->in.buffer) {
24270 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
24273 ndr_print_uint32(ndr, "offered", r->in.offered);
24276 if (flags & NDR_OUT) {
24277 ndr_print_struct(ndr, "out", "spoolss_EnumForms");
24279 ndr_print_ptr(ndr, "count", r->out.count);
24281 ndr_print_uint32(ndr, "count", *r->out.count);
24283 ndr_print_ptr(ndr, "info", r->out.info);
24285 ndr_print_ptr(ndr, "info", *r->out.info);
24287 if (*r->out.info) {
24288 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
24290 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
24292 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
24293 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
24294 ndr_print_spoolss_FormInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
24302 ndr_print_ptr(ndr, "needed", r->out.needed);
24304 ndr_print_uint32(ndr, "needed", *r->out.needed);
24306 ndr_print_WERROR(ndr, "result", r->out.result);
24312 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPorts(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPorts *r)
24314 if (flags & NDR_IN) {
24315 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
24316 if (r->in.servername) {
24317 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
24318 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24319 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
24320 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
24322 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24323 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
24324 if (r->in.buffer) {
24325 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
24327 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
24329 if (flags & NDR_OUT) {
24330 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
24332 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
24334 if (r->out.needed == NULL) {
24335 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24337 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
24338 if (r->out.count == NULL) {
24339 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24341 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
24342 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24344 return NDR_ERR_SUCCESS;
24347 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPorts(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPorts *r)
24349 uint32_t _ptr_servername;
24350 uint32_t _ptr_buffer;
24351 uint32_t _ptr_info;
24352 TALLOC_CTX *_mem_save_servername_0;
24353 TALLOC_CTX *_mem_save_buffer_0;
24354 TALLOC_CTX *_mem_save_info_0;
24355 TALLOC_CTX *_mem_save_needed_0;
24356 TALLOC_CTX *_mem_save_count_0;
24357 if (flags & NDR_IN) {
24358 ZERO_STRUCT(r->out);
24360 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
24361 if (_ptr_servername) {
24362 NDR_PULL_ALLOC(ndr, r->in.servername);
24364 r->in.servername = NULL;
24366 if (r->in.servername) {
24367 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
24368 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
24369 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
24370 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
24371 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
24372 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));
24374 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
24375 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
24376 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
24378 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24379 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
24381 NDR_PULL_ALLOC(ndr, r->in.buffer);
24383 r->in.buffer = NULL;
24385 if (r->in.buffer) {
24386 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
24387 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
24388 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
24389 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
24391 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
24392 NDR_PULL_ALLOC(ndr, r->out.needed);
24393 ZERO_STRUCTP(r->out.needed);
24394 NDR_PULL_ALLOC(ndr, r->out.count);
24395 ZERO_STRUCTP(r->out.count);
24397 if (flags & NDR_OUT) {
24398 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
24400 NDR_PULL_ALLOC(ndr, r->out.info);
24402 r->out.info = NULL;
24405 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24406 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24407 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
24408 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24410 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24411 NDR_PULL_ALLOC(ndr, r->out.needed);
24413 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
24414 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
24415 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
24416 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
24417 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24418 NDR_PULL_ALLOC(ndr, r->out.count);
24420 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
24421 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
24422 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
24423 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
24424 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24426 return NDR_ERR_SUCCESS;
24429 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPorts(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPorts *r)
24431 uint32_t cntr_info_0;
24432 if (flags & NDR_IN) {
24433 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24434 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
24436 if (flags & NDR_OUT) {
24437 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24438 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
24439 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
24441 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24442 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
24445 return NDR_ERR_SUCCESS;
24448 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPorts(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPorts *r)
24450 uint32_t cntr_info_0;
24451 TALLOC_CTX *_mem_save_info_0;
24452 if (flags & NDR_IN) {
24453 ZERO_STRUCT(r->out);
24455 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24456 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
24458 if (flags & NDR_OUT) {
24459 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
24460 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24461 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24462 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24463 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
24464 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
24466 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24467 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
24469 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24471 return NDR_ERR_SUCCESS;
24474 _PUBLIC_ void ndr_print_spoolss_EnumPorts(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPorts *r)
24476 uint32_t cntr_info_2;
24477 ndr_print_struct(ndr, name, "spoolss_EnumPorts");
24479 if (flags & NDR_SET_VALUES) {
24480 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24482 if (flags & NDR_IN) {
24483 ndr_print_struct(ndr, "in", "spoolss_EnumPorts");
24485 ndr_print_ptr(ndr, "servername", r->in.servername);
24487 if (r->in.servername) {
24488 ndr_print_string(ndr, "servername", r->in.servername);
24491 ndr_print_uint32(ndr, "level", r->in.level);
24492 ndr_print_ptr(ndr, "buffer", r->in.buffer);
24494 if (r->in.buffer) {
24495 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
24498 ndr_print_uint32(ndr, "offered", r->in.offered);
24501 if (flags & NDR_OUT) {
24502 ndr_print_struct(ndr, "out", "spoolss_EnumPorts");
24504 ndr_print_ptr(ndr, "count", r->out.count);
24506 ndr_print_uint32(ndr, "count", *r->out.count);
24508 ndr_print_ptr(ndr, "info", r->out.info);
24510 ndr_print_ptr(ndr, "info", *r->out.info);
24512 if (*r->out.info) {
24513 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
24515 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
24517 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
24518 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
24519 ndr_print_spoolss_PortInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
24527 ndr_print_ptr(ndr, "needed", r->out.needed);
24529 ndr_print_uint32(ndr, "needed", *r->out.needed);
24531 ndr_print_WERROR(ndr, "result", r->out.result);
24537 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumMonitors(struct ndr_push *ndr, int flags, const struct _spoolss_EnumMonitors *r)
24539 if (flags & NDR_IN) {
24540 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
24541 if (r->in.servername) {
24542 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
24543 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24544 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
24545 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
24547 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24548 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
24549 if (r->in.buffer) {
24550 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
24552 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
24554 if (flags & NDR_OUT) {
24555 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
24557 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
24559 if (r->out.needed == NULL) {
24560 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24562 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
24563 if (r->out.count == NULL) {
24564 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24566 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
24567 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24569 return NDR_ERR_SUCCESS;
24572 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumMonitors(struct ndr_pull *ndr, int flags, struct _spoolss_EnumMonitors *r)
24574 uint32_t _ptr_servername;
24575 uint32_t _ptr_buffer;
24576 uint32_t _ptr_info;
24577 TALLOC_CTX *_mem_save_servername_0;
24578 TALLOC_CTX *_mem_save_buffer_0;
24579 TALLOC_CTX *_mem_save_info_0;
24580 TALLOC_CTX *_mem_save_needed_0;
24581 TALLOC_CTX *_mem_save_count_0;
24582 if (flags & NDR_IN) {
24583 ZERO_STRUCT(r->out);
24585 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
24586 if (_ptr_servername) {
24587 NDR_PULL_ALLOC(ndr, r->in.servername);
24589 r->in.servername = NULL;
24591 if (r->in.servername) {
24592 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
24593 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
24594 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
24595 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
24596 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
24597 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));
24599 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
24600 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
24601 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
24603 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24604 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
24606 NDR_PULL_ALLOC(ndr, r->in.buffer);
24608 r->in.buffer = NULL;
24610 if (r->in.buffer) {
24611 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
24612 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
24613 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
24614 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
24616 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
24617 NDR_PULL_ALLOC(ndr, r->out.needed);
24618 ZERO_STRUCTP(r->out.needed);
24619 NDR_PULL_ALLOC(ndr, r->out.count);
24620 ZERO_STRUCTP(r->out.count);
24622 if (flags & NDR_OUT) {
24623 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
24625 NDR_PULL_ALLOC(ndr, r->out.info);
24627 r->out.info = NULL;
24630 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24631 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24632 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
24633 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24635 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24636 NDR_PULL_ALLOC(ndr, r->out.needed);
24638 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
24639 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
24640 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
24641 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
24642 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24643 NDR_PULL_ALLOC(ndr, r->out.count);
24645 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
24646 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
24647 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
24648 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
24649 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24651 return NDR_ERR_SUCCESS;
24654 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumMonitors(struct ndr_push *ndr, int flags, const struct __spoolss_EnumMonitors *r)
24656 uint32_t cntr_info_0;
24657 if (flags & NDR_IN) {
24658 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24659 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
24661 if (flags & NDR_OUT) {
24662 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24663 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
24664 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
24666 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24667 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
24670 return NDR_ERR_SUCCESS;
24673 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumMonitors(struct ndr_pull *ndr, int flags, struct __spoolss_EnumMonitors *r)
24675 uint32_t cntr_info_0;
24676 TALLOC_CTX *_mem_save_info_0;
24677 if (flags & NDR_IN) {
24678 ZERO_STRUCT(r->out);
24680 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24681 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
24683 if (flags & NDR_OUT) {
24684 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
24685 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24686 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24687 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24688 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
24689 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
24691 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24692 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
24694 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24696 return NDR_ERR_SUCCESS;
24699 _PUBLIC_ void ndr_print_spoolss_EnumMonitors(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumMonitors *r)
24701 uint32_t cntr_info_2;
24702 ndr_print_struct(ndr, name, "spoolss_EnumMonitors");
24704 if (flags & NDR_SET_VALUES) {
24705 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24707 if (flags & NDR_IN) {
24708 ndr_print_struct(ndr, "in", "spoolss_EnumMonitors");
24710 ndr_print_ptr(ndr, "servername", r->in.servername);
24712 if (r->in.servername) {
24713 ndr_print_string(ndr, "servername", r->in.servername);
24716 ndr_print_uint32(ndr, "level", r->in.level);
24717 ndr_print_ptr(ndr, "buffer", r->in.buffer);
24719 if (r->in.buffer) {
24720 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
24723 ndr_print_uint32(ndr, "offered", r->in.offered);
24726 if (flags & NDR_OUT) {
24727 ndr_print_struct(ndr, "out", "spoolss_EnumMonitors");
24729 ndr_print_ptr(ndr, "count", r->out.count);
24731 ndr_print_uint32(ndr, "count", *r->out.count);
24733 ndr_print_ptr(ndr, "info", r->out.info);
24735 ndr_print_ptr(ndr, "info", *r->out.info);
24737 if (*r->out.info) {
24738 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
24740 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
24742 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
24743 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
24744 ndr_print_spoolss_MonitorInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
24752 ndr_print_ptr(ndr, "needed", r->out.needed);
24754 ndr_print_uint32(ndr, "needed", *r->out.needed);
24756 ndr_print_WERROR(ndr, "result", r->out.result);
24762 static enum ndr_err_code ndr_push_spoolss_AddPort(struct ndr_push *ndr, int flags, const struct spoolss_AddPort *r)
24764 if (flags & NDR_IN) {
24765 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
24766 if (r->in.server_name) {
24767 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
24768 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24769 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
24770 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));
24772 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown));
24773 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
24774 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24775 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
24776 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));
24778 if (flags & NDR_OUT) {
24779 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24781 return NDR_ERR_SUCCESS;
24784 static enum ndr_err_code ndr_pull_spoolss_AddPort(struct ndr_pull *ndr, int flags, struct spoolss_AddPort *r)
24786 uint32_t _ptr_server_name;
24787 TALLOC_CTX *_mem_save_server_name_0;
24788 if (flags & NDR_IN) {
24789 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
24790 if (_ptr_server_name) {
24791 NDR_PULL_ALLOC(ndr, r->in.server_name);
24793 r->in.server_name = NULL;
24795 if (r->in.server_name) {
24796 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
24797 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
24798 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
24799 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
24800 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
24801 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));
24803 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
24804 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));
24805 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
24807 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown));
24808 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.monitor_name));
24809 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.monitor_name));
24810 if (ndr_get_array_length(ndr, &r->in.monitor_name) > ndr_get_array_size(ndr, &r->in.monitor_name)) {
24811 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));
24813 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.monitor_name), sizeof(uint16_t)));
24814 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));
24816 if (flags & NDR_OUT) {
24817 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24819 return NDR_ERR_SUCCESS;
24822 _PUBLIC_ void ndr_print_spoolss_AddPort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPort *r)
24824 ndr_print_struct(ndr, name, "spoolss_AddPort");
24826 if (flags & NDR_SET_VALUES) {
24827 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24829 if (flags & NDR_IN) {
24830 ndr_print_struct(ndr, "in", "spoolss_AddPort");
24832 ndr_print_ptr(ndr, "server_name", r->in.server_name);
24834 if (r->in.server_name) {
24835 ndr_print_string(ndr, "server_name", r->in.server_name);
24838 ndr_print_uint32(ndr, "unknown", r->in.unknown);
24839 ndr_print_string(ndr, "monitor_name", r->in.monitor_name);
24842 if (flags & NDR_OUT) {
24843 ndr_print_struct(ndr, "out", "spoolss_AddPort");
24845 ndr_print_WERROR(ndr, "result", r->out.result);
24851 static enum ndr_err_code ndr_push_spoolss_ConfigurePort(struct ndr_push *ndr, int flags, const struct spoolss_ConfigurePort *r)
24853 if (flags & NDR_IN) {
24855 if (flags & NDR_OUT) {
24856 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24858 return NDR_ERR_SUCCESS;
24861 static enum ndr_err_code ndr_pull_spoolss_ConfigurePort(struct ndr_pull *ndr, int flags, struct spoolss_ConfigurePort *r)
24863 if (flags & NDR_IN) {
24865 if (flags & NDR_OUT) {
24866 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24868 return NDR_ERR_SUCCESS;
24871 _PUBLIC_ void ndr_print_spoolss_ConfigurePort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ConfigurePort *r)
24873 ndr_print_struct(ndr, name, "spoolss_ConfigurePort");
24875 if (flags & NDR_SET_VALUES) {
24876 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24878 if (flags & NDR_IN) {
24879 ndr_print_struct(ndr, "in", "spoolss_ConfigurePort");
24883 if (flags & NDR_OUT) {
24884 ndr_print_struct(ndr, "out", "spoolss_ConfigurePort");
24886 ndr_print_WERROR(ndr, "result", r->out.result);
24892 static enum ndr_err_code ndr_push_spoolss_DeletePort(struct ndr_push *ndr, int flags, const struct spoolss_DeletePort *r)
24894 if (flags & NDR_IN) {
24896 if (flags & NDR_OUT) {
24897 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24899 return NDR_ERR_SUCCESS;
24902 static enum ndr_err_code ndr_pull_spoolss_DeletePort(struct ndr_pull *ndr, int flags, struct spoolss_DeletePort *r)
24904 if (flags & NDR_IN) {
24906 if (flags & NDR_OUT) {
24907 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24909 return NDR_ERR_SUCCESS;
24912 _PUBLIC_ void ndr_print_spoolss_DeletePort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePort *r)
24914 ndr_print_struct(ndr, name, "spoolss_DeletePort");
24916 if (flags & NDR_SET_VALUES) {
24917 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24919 if (flags & NDR_IN) {
24920 ndr_print_struct(ndr, "in", "spoolss_DeletePort");
24924 if (flags & NDR_OUT) {
24925 ndr_print_struct(ndr, "out", "spoolss_DeletePort");
24927 ndr_print_WERROR(ndr, "result", r->out.result);
24933 static enum ndr_err_code ndr_push_spoolss_CreatePrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_CreatePrinterIC *r)
24935 if (flags & NDR_IN) {
24936 if (r->in.handle == NULL) {
24937 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24939 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24940 if (r->in.devmode_ctr == NULL) {
24941 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24943 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
24945 if (flags & NDR_OUT) {
24946 if (r->out.gdi_handle == NULL) {
24947 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24949 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.gdi_handle));
24950 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24952 return NDR_ERR_SUCCESS;
24955 static enum ndr_err_code ndr_pull_spoolss_CreatePrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_CreatePrinterIC *r)
24957 TALLOC_CTX *_mem_save_handle_0;
24958 TALLOC_CTX *_mem_save_gdi_handle_0;
24959 TALLOC_CTX *_mem_save_devmode_ctr_0;
24960 if (flags & NDR_IN) {
24961 ZERO_STRUCT(r->out);
24963 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24964 NDR_PULL_ALLOC(ndr, r->in.handle);
24966 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24967 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24968 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24969 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24970 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24971 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
24973 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
24974 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
24975 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
24976 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
24977 NDR_PULL_ALLOC(ndr, r->out.gdi_handle);
24978 ZERO_STRUCTP(r->out.gdi_handle);
24980 if (flags & NDR_OUT) {
24981 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24982 NDR_PULL_ALLOC(ndr, r->out.gdi_handle);
24984 _mem_save_gdi_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24985 NDR_PULL_SET_MEM_CTX(ndr, r->out.gdi_handle, LIBNDR_FLAG_REF_ALLOC);
24986 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.gdi_handle));
24987 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_gdi_handle_0, LIBNDR_FLAG_REF_ALLOC);
24988 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24990 return NDR_ERR_SUCCESS;
24993 _PUBLIC_ void ndr_print_spoolss_CreatePrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_CreatePrinterIC *r)
24995 ndr_print_struct(ndr, name, "spoolss_CreatePrinterIC");
24997 if (flags & NDR_SET_VALUES) {
24998 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25000 if (flags & NDR_IN) {
25001 ndr_print_struct(ndr, "in", "spoolss_CreatePrinterIC");
25003 ndr_print_ptr(ndr, "handle", r->in.handle);
25005 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25007 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
25009 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
25013 if (flags & NDR_OUT) {
25014 ndr_print_struct(ndr, "out", "spoolss_CreatePrinterIC");
25016 ndr_print_ptr(ndr, "gdi_handle", r->out.gdi_handle);
25018 ndr_print_policy_handle(ndr, "gdi_handle", r->out.gdi_handle);
25020 ndr_print_WERROR(ndr, "result", r->out.result);
25026 static enum ndr_err_code ndr_push_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_PlayGDIScriptOnPrinterIC *r)
25028 if (flags & NDR_IN) {
25030 if (flags & NDR_OUT) {
25031 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25033 return NDR_ERR_SUCCESS;
25036 static enum ndr_err_code ndr_pull_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_PlayGDIScriptOnPrinterIC *r)
25038 if (flags & NDR_IN) {
25040 if (flags & NDR_OUT) {
25041 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25043 return NDR_ERR_SUCCESS;
25046 _PUBLIC_ void ndr_print_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_PlayGDIScriptOnPrinterIC *r)
25048 ndr_print_struct(ndr, name, "spoolss_PlayGDIScriptOnPrinterIC");
25050 if (flags & NDR_SET_VALUES) {
25051 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25053 if (flags & NDR_IN) {
25054 ndr_print_struct(ndr, "in", "spoolss_PlayGDIScriptOnPrinterIC");
25058 if (flags & NDR_OUT) {
25059 ndr_print_struct(ndr, "out", "spoolss_PlayGDIScriptOnPrinterIC");
25061 ndr_print_WERROR(ndr, "result", r->out.result);
25067 static enum ndr_err_code ndr_push_spoolss_DeletePrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterIC *r)
25069 if (flags & NDR_IN) {
25070 if (r->in.gdi_handle == NULL) {
25071 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25073 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.gdi_handle));
25075 if (flags & NDR_OUT) {
25076 if (r->out.gdi_handle == NULL) {
25077 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25079 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.gdi_handle));
25080 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25082 return NDR_ERR_SUCCESS;
25085 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterIC *r)
25087 TALLOC_CTX *_mem_save_gdi_handle_0;
25088 if (flags & NDR_IN) {
25089 ZERO_STRUCT(r->out);
25091 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25092 NDR_PULL_ALLOC(ndr, r->in.gdi_handle);
25094 _mem_save_gdi_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25095 NDR_PULL_SET_MEM_CTX(ndr, r->in.gdi_handle, LIBNDR_FLAG_REF_ALLOC);
25096 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.gdi_handle));
25097 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_gdi_handle_0, LIBNDR_FLAG_REF_ALLOC);
25098 NDR_PULL_ALLOC(ndr, r->out.gdi_handle);
25099 *r->out.gdi_handle = *r->in.gdi_handle;
25101 if (flags & NDR_OUT) {
25102 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25103 NDR_PULL_ALLOC(ndr, r->out.gdi_handle);
25105 _mem_save_gdi_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25106 NDR_PULL_SET_MEM_CTX(ndr, r->out.gdi_handle, LIBNDR_FLAG_REF_ALLOC);
25107 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.gdi_handle));
25108 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_gdi_handle_0, LIBNDR_FLAG_REF_ALLOC);
25109 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25111 return NDR_ERR_SUCCESS;
25114 _PUBLIC_ void ndr_print_spoolss_DeletePrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterIC *r)
25116 ndr_print_struct(ndr, name, "spoolss_DeletePrinterIC");
25118 if (flags & NDR_SET_VALUES) {
25119 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25121 if (flags & NDR_IN) {
25122 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterIC");
25124 ndr_print_ptr(ndr, "gdi_handle", r->in.gdi_handle);
25126 ndr_print_policy_handle(ndr, "gdi_handle", r->in.gdi_handle);
25130 if (flags & NDR_OUT) {
25131 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterIC");
25133 ndr_print_ptr(ndr, "gdi_handle", r->out.gdi_handle);
25135 ndr_print_policy_handle(ndr, "gdi_handle", r->out.gdi_handle);
25137 ndr_print_WERROR(ndr, "result", r->out.result);
25143 static enum ndr_err_code ndr_push_spoolss_AddPrinterConnection(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterConnection *r)
25145 if (flags & NDR_IN) {
25147 if (flags & NDR_OUT) {
25148 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25150 return NDR_ERR_SUCCESS;
25153 static enum ndr_err_code ndr_pull_spoolss_AddPrinterConnection(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterConnection *r)
25155 if (flags & NDR_IN) {
25157 if (flags & NDR_OUT) {
25158 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25160 return NDR_ERR_SUCCESS;
25163 _PUBLIC_ void ndr_print_spoolss_AddPrinterConnection(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterConnection *r)
25165 ndr_print_struct(ndr, name, "spoolss_AddPrinterConnection");
25167 if (flags & NDR_SET_VALUES) {
25168 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25170 if (flags & NDR_IN) {
25171 ndr_print_struct(ndr, "in", "spoolss_AddPrinterConnection");
25175 if (flags & NDR_OUT) {
25176 ndr_print_struct(ndr, "out", "spoolss_AddPrinterConnection");
25178 ndr_print_WERROR(ndr, "result", r->out.result);
25184 static enum ndr_err_code ndr_push_spoolss_DeletePrinterConnection(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterConnection *r)
25186 if (flags & NDR_IN) {
25188 if (flags & NDR_OUT) {
25189 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25191 return NDR_ERR_SUCCESS;
25194 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterConnection(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterConnection *r)
25196 if (flags & NDR_IN) {
25198 if (flags & NDR_OUT) {
25199 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25201 return NDR_ERR_SUCCESS;
25204 _PUBLIC_ void ndr_print_spoolss_DeletePrinterConnection(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterConnection *r)
25206 ndr_print_struct(ndr, name, "spoolss_DeletePrinterConnection");
25208 if (flags & NDR_SET_VALUES) {
25209 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25211 if (flags & NDR_IN) {
25212 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterConnection");
25216 if (flags & NDR_OUT) {
25217 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterConnection");
25219 ndr_print_WERROR(ndr, "result", r->out.result);
25225 static enum ndr_err_code ndr_push_spoolss_PrinterMessageBox(struct ndr_push *ndr, int flags, const struct spoolss_PrinterMessageBox *r)
25227 if (flags & NDR_IN) {
25229 if (flags & NDR_OUT) {
25230 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25232 return NDR_ERR_SUCCESS;
25235 static enum ndr_err_code ndr_pull_spoolss_PrinterMessageBox(struct ndr_pull *ndr, int flags, struct spoolss_PrinterMessageBox *r)
25237 if (flags & NDR_IN) {
25239 if (flags & NDR_OUT) {
25240 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25242 return NDR_ERR_SUCCESS;
25245 _PUBLIC_ void ndr_print_spoolss_PrinterMessageBox(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_PrinterMessageBox *r)
25247 ndr_print_struct(ndr, name, "spoolss_PrinterMessageBox");
25249 if (flags & NDR_SET_VALUES) {
25250 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25252 if (flags & NDR_IN) {
25253 ndr_print_struct(ndr, "in", "spoolss_PrinterMessageBox");
25257 if (flags & NDR_OUT) {
25258 ndr_print_struct(ndr, "out", "spoolss_PrinterMessageBox");
25260 ndr_print_WERROR(ndr, "result", r->out.result);
25266 static enum ndr_err_code ndr_push_spoolss_AddMonitor(struct ndr_push *ndr, int flags, const struct spoolss_AddMonitor *r)
25268 if (flags & NDR_IN) {
25270 if (flags & NDR_OUT) {
25271 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25273 return NDR_ERR_SUCCESS;
25276 static enum ndr_err_code ndr_pull_spoolss_AddMonitor(struct ndr_pull *ndr, int flags, struct spoolss_AddMonitor *r)
25278 if (flags & NDR_IN) {
25280 if (flags & NDR_OUT) {
25281 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25283 return NDR_ERR_SUCCESS;
25286 _PUBLIC_ void ndr_print_spoolss_AddMonitor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddMonitor *r)
25288 ndr_print_struct(ndr, name, "spoolss_AddMonitor");
25290 if (flags & NDR_SET_VALUES) {
25291 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25293 if (flags & NDR_IN) {
25294 ndr_print_struct(ndr, "in", "spoolss_AddMonitor");
25298 if (flags & NDR_OUT) {
25299 ndr_print_struct(ndr, "out", "spoolss_AddMonitor");
25301 ndr_print_WERROR(ndr, "result", r->out.result);
25307 static enum ndr_err_code ndr_push_spoolss_DeleteMonitor(struct ndr_push *ndr, int flags, const struct spoolss_DeleteMonitor *r)
25309 if (flags & NDR_IN) {
25311 if (flags & NDR_OUT) {
25312 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25314 return NDR_ERR_SUCCESS;
25317 static enum ndr_err_code ndr_pull_spoolss_DeleteMonitor(struct ndr_pull *ndr, int flags, struct spoolss_DeleteMonitor *r)
25319 if (flags & NDR_IN) {
25321 if (flags & NDR_OUT) {
25322 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25324 return NDR_ERR_SUCCESS;
25327 _PUBLIC_ void ndr_print_spoolss_DeleteMonitor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeleteMonitor *r)
25329 ndr_print_struct(ndr, name, "spoolss_DeleteMonitor");
25331 if (flags & NDR_SET_VALUES) {
25332 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25334 if (flags & NDR_IN) {
25335 ndr_print_struct(ndr, "in", "spoolss_DeleteMonitor");
25339 if (flags & NDR_OUT) {
25340 ndr_print_struct(ndr, "out", "spoolss_DeleteMonitor");
25342 ndr_print_WERROR(ndr, "result", r->out.result);
25348 static enum ndr_err_code ndr_push_spoolss_DeletePrintProcessor(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrintProcessor *r)
25350 if (flags & NDR_IN) {
25352 if (flags & NDR_OUT) {
25353 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25355 return NDR_ERR_SUCCESS;
25358 static enum ndr_err_code ndr_pull_spoolss_DeletePrintProcessor(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrintProcessor *r)
25360 if (flags & NDR_IN) {
25362 if (flags & NDR_OUT) {
25363 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25365 return NDR_ERR_SUCCESS;
25368 _PUBLIC_ void ndr_print_spoolss_DeletePrintProcessor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrintProcessor *r)
25370 ndr_print_struct(ndr, name, "spoolss_DeletePrintProcessor");
25372 if (flags & NDR_SET_VALUES) {
25373 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25375 if (flags & NDR_IN) {
25376 ndr_print_struct(ndr, "in", "spoolss_DeletePrintProcessor");
25380 if (flags & NDR_OUT) {
25381 ndr_print_struct(ndr, "out", "spoolss_DeletePrintProcessor");
25383 ndr_print_WERROR(ndr, "result", r->out.result);
25389 static enum ndr_err_code ndr_push_spoolss_AddPrintProvidor(struct ndr_push *ndr, int flags, const struct spoolss_AddPrintProvidor *r)
25391 if (flags & NDR_IN) {
25393 if (flags & NDR_OUT) {
25394 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25396 return NDR_ERR_SUCCESS;
25399 static enum ndr_err_code ndr_pull_spoolss_AddPrintProvidor(struct ndr_pull *ndr, int flags, struct spoolss_AddPrintProvidor *r)
25401 if (flags & NDR_IN) {
25403 if (flags & NDR_OUT) {
25404 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25406 return NDR_ERR_SUCCESS;
25409 _PUBLIC_ void ndr_print_spoolss_AddPrintProvidor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrintProvidor *r)
25411 ndr_print_struct(ndr, name, "spoolss_AddPrintProvidor");
25413 if (flags & NDR_SET_VALUES) {
25414 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25416 if (flags & NDR_IN) {
25417 ndr_print_struct(ndr, "in", "spoolss_AddPrintProvidor");
25421 if (flags & NDR_OUT) {
25422 ndr_print_struct(ndr, "out", "spoolss_AddPrintProvidor");
25424 ndr_print_WERROR(ndr, "result", r->out.result);
25430 static enum ndr_err_code ndr_push_spoolss_DeletePrintProvidor(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrintProvidor *r)
25432 if (flags & NDR_IN) {
25434 if (flags & NDR_OUT) {
25435 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25437 return NDR_ERR_SUCCESS;
25440 static enum ndr_err_code ndr_pull_spoolss_DeletePrintProvidor(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrintProvidor *r)
25442 if (flags & NDR_IN) {
25444 if (flags & NDR_OUT) {
25445 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25447 return NDR_ERR_SUCCESS;
25450 _PUBLIC_ void ndr_print_spoolss_DeletePrintProvidor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrintProvidor *r)
25452 ndr_print_struct(ndr, name, "spoolss_DeletePrintProvidor");
25454 if (flags & NDR_SET_VALUES) {
25455 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25457 if (flags & NDR_IN) {
25458 ndr_print_struct(ndr, "in", "spoolss_DeletePrintProvidor");
25462 if (flags & NDR_OUT) {
25463 ndr_print_struct(ndr, "out", "spoolss_DeletePrintProvidor");
25465 ndr_print_WERROR(ndr, "result", r->out.result);
25471 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrintProcDataTypes(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrintProcDataTypes *r)
25473 if (flags & NDR_IN) {
25474 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
25475 if (r->in.servername) {
25476 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
25477 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
25478 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
25479 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
25481 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.print_processor_name));
25482 if (r->in.print_processor_name) {
25483 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
25484 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
25485 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
25486 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));
25488 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
25489 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
25490 if (r->in.buffer) {
25491 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
25493 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
25495 if (flags & NDR_OUT) {
25496 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
25498 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
25500 if (r->out.needed == NULL) {
25501 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25503 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
25504 if (r->out.count == NULL) {
25505 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25507 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
25508 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25510 return NDR_ERR_SUCCESS;
25513 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrintProcDataTypes(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrintProcDataTypes *r)
25515 uint32_t _ptr_servername;
25516 uint32_t _ptr_print_processor_name;
25517 uint32_t _ptr_buffer;
25518 uint32_t _ptr_info;
25519 TALLOC_CTX *_mem_save_servername_0;
25520 TALLOC_CTX *_mem_save_print_processor_name_0;
25521 TALLOC_CTX *_mem_save_buffer_0;
25522 TALLOC_CTX *_mem_save_info_0;
25523 TALLOC_CTX *_mem_save_needed_0;
25524 TALLOC_CTX *_mem_save_count_0;
25525 if (flags & NDR_IN) {
25526 ZERO_STRUCT(r->out);
25528 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
25529 if (_ptr_servername) {
25530 NDR_PULL_ALLOC(ndr, r->in.servername);
25532 r->in.servername = NULL;
25534 if (r->in.servername) {
25535 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
25536 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
25537 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
25538 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
25539 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
25540 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));
25542 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
25543 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
25544 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
25546 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor_name));
25547 if (_ptr_print_processor_name) {
25548 NDR_PULL_ALLOC(ndr, r->in.print_processor_name);
25550 r->in.print_processor_name = NULL;
25552 if (r->in.print_processor_name) {
25553 _mem_save_print_processor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
25554 NDR_PULL_SET_MEM_CTX(ndr, r->in.print_processor_name, 0);
25555 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.print_processor_name));
25556 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.print_processor_name));
25557 if (ndr_get_array_length(ndr, &r->in.print_processor_name) > ndr_get_array_size(ndr, &r->in.print_processor_name)) {
25558 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));
25560 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.print_processor_name), sizeof(uint16_t)));
25561 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));
25562 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_name_0, 0);
25564 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
25565 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
25567 NDR_PULL_ALLOC(ndr, r->in.buffer);
25569 r->in.buffer = NULL;
25571 if (r->in.buffer) {
25572 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
25573 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
25574 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
25575 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
25577 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
25578 NDR_PULL_ALLOC(ndr, r->out.needed);
25579 ZERO_STRUCTP(r->out.needed);
25580 NDR_PULL_ALLOC(ndr, r->out.count);
25581 ZERO_STRUCTP(r->out.count);
25583 if (flags & NDR_OUT) {
25584 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
25586 NDR_PULL_ALLOC(ndr, r->out.info);
25588 r->out.info = NULL;
25591 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
25592 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
25593 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
25594 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
25596 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25597 NDR_PULL_ALLOC(ndr, r->out.needed);
25599 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
25600 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
25601 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
25602 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
25603 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25604 NDR_PULL_ALLOC(ndr, r->out.count);
25606 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
25607 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
25608 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
25609 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
25610 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25612 return NDR_ERR_SUCCESS;
25615 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrintProcDataTypes(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrintProcDataTypes *r)
25617 uint32_t cntr_info_0;
25618 if (flags & NDR_IN) {
25619 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
25620 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
25622 if (flags & NDR_OUT) {
25623 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
25624 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
25625 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
25627 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
25628 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
25631 return NDR_ERR_SUCCESS;
25634 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrintProcDataTypes(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrintProcDataTypes *r)
25636 uint32_t cntr_info_0;
25637 TALLOC_CTX *_mem_save_info_0;
25638 if (flags & NDR_IN) {
25639 ZERO_STRUCT(r->out);
25641 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
25642 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
25644 if (flags & NDR_OUT) {
25645 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
25646 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
25647 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
25648 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
25649 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
25650 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
25652 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
25653 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
25655 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
25657 return NDR_ERR_SUCCESS;
25660 _PUBLIC_ void ndr_print_spoolss_EnumPrintProcDataTypes(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrintProcDataTypes *r)
25662 uint32_t cntr_info_2;
25663 ndr_print_struct(ndr, name, "spoolss_EnumPrintProcDataTypes");
25665 if (flags & NDR_SET_VALUES) {
25666 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25668 if (flags & NDR_IN) {
25669 ndr_print_struct(ndr, "in", "spoolss_EnumPrintProcDataTypes");
25671 ndr_print_ptr(ndr, "servername", r->in.servername);
25673 if (r->in.servername) {
25674 ndr_print_string(ndr, "servername", r->in.servername);
25677 ndr_print_ptr(ndr, "print_processor_name", r->in.print_processor_name);
25679 if (r->in.print_processor_name) {
25680 ndr_print_string(ndr, "print_processor_name", r->in.print_processor_name);
25683 ndr_print_uint32(ndr, "level", r->in.level);
25684 ndr_print_ptr(ndr, "buffer", r->in.buffer);
25686 if (r->in.buffer) {
25687 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
25690 ndr_print_uint32(ndr, "offered", r->in.offered);
25693 if (flags & NDR_OUT) {
25694 ndr_print_struct(ndr, "out", "spoolss_EnumPrintProcDataTypes");
25696 ndr_print_ptr(ndr, "count", r->out.count);
25698 ndr_print_uint32(ndr, "count", *r->out.count);
25700 ndr_print_ptr(ndr, "info", r->out.info);
25702 ndr_print_ptr(ndr, "info", *r->out.info);
25704 if (*r->out.info) {
25705 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
25707 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
25709 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
25710 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
25711 ndr_print_spoolss_PrintProcDataTypesInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
25719 ndr_print_ptr(ndr, "needed", r->out.needed);
25721 ndr_print_uint32(ndr, "needed", *r->out.needed);
25723 ndr_print_WERROR(ndr, "result", r->out.result);
25729 static enum ndr_err_code ndr_push_spoolss_ResetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ResetPrinter *r)
25731 if (flags & NDR_IN) {
25732 if (r->in.handle == NULL) {
25733 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25735 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25736 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.data_type));
25737 if (r->in.data_type) {
25738 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.data_type, CH_UTF16)));
25739 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
25740 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.data_type, CH_UTF16)));
25741 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));
25743 if (r->in.devmode_ctr == NULL) {
25744 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25746 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
25748 if (flags & NDR_OUT) {
25749 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25751 return NDR_ERR_SUCCESS;
25754 static enum ndr_err_code ndr_pull_spoolss_ResetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ResetPrinter *r)
25756 uint32_t _ptr_data_type;
25757 TALLOC_CTX *_mem_save_handle_0;
25758 TALLOC_CTX *_mem_save_data_type_0;
25759 TALLOC_CTX *_mem_save_devmode_ctr_0;
25760 if (flags & NDR_IN) {
25761 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25762 NDR_PULL_ALLOC(ndr, r->in.handle);
25764 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25765 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25766 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25767 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25768 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
25769 if (_ptr_data_type) {
25770 NDR_PULL_ALLOC(ndr, r->in.data_type);
25772 r->in.data_type = NULL;
25774 if (r->in.data_type) {
25775 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
25776 NDR_PULL_SET_MEM_CTX(ndr, r->in.data_type, 0);
25777 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.data_type));
25778 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.data_type));
25779 if (ndr_get_array_length(ndr, &r->in.data_type) > ndr_get_array_size(ndr, &r->in.data_type)) {
25780 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));
25782 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.data_type), sizeof(uint16_t)));
25783 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));
25784 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
25786 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25787 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
25789 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
25790 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
25791 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
25792 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
25794 if (flags & NDR_OUT) {
25795 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25797 return NDR_ERR_SUCCESS;
25800 _PUBLIC_ void ndr_print_spoolss_ResetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ResetPrinter *r)
25802 ndr_print_struct(ndr, name, "spoolss_ResetPrinter");
25804 if (flags & NDR_SET_VALUES) {
25805 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25807 if (flags & NDR_IN) {
25808 ndr_print_struct(ndr, "in", "spoolss_ResetPrinter");
25810 ndr_print_ptr(ndr, "handle", r->in.handle);
25812 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25814 ndr_print_ptr(ndr, "data_type", r->in.data_type);
25816 if (r->in.data_type) {
25817 ndr_print_string(ndr, "data_type", r->in.data_type);
25820 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
25822 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
25826 if (flags & NDR_OUT) {
25827 ndr_print_struct(ndr, "out", "spoolss_ResetPrinter");
25829 ndr_print_WERROR(ndr, "result", r->out.result);
25835 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriver2(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriver2 *r)
25837 if (flags & NDR_IN) {
25838 if (r->in.handle == NULL) {
25839 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25841 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25842 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.architecture));
25843 if (r->in.architecture) {
25844 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
25845 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
25846 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
25847 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
25849 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
25850 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
25851 if (r->in.buffer) {
25852 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
25854 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
25855 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_major_version));
25856 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_minor_version));
25858 if (flags & NDR_OUT) {
25859 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
25862 struct ndr_push *_ndr_info;
25863 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
25864 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
25865 NDR_CHECK(ndr_push_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
25866 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
25869 if (r->out.needed == NULL) {
25870 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25872 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
25873 if (r->out.server_major_version == NULL) {
25874 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25876 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.server_major_version));
25877 if (r->out.server_minor_version == NULL) {
25878 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25880 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.server_minor_version));
25881 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25883 return NDR_ERR_SUCCESS;
25886 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriver2(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriver2 *r)
25888 uint32_t _ptr_architecture;
25889 uint32_t _ptr_buffer;
25890 uint32_t _ptr_info;
25891 TALLOC_CTX *_mem_save_handle_0;
25892 TALLOC_CTX *_mem_save_architecture_0;
25893 TALLOC_CTX *_mem_save_buffer_0;
25894 TALLOC_CTX *_mem_save_info_0;
25895 TALLOC_CTX *_mem_save_needed_0;
25896 TALLOC_CTX *_mem_save_server_major_version_0;
25897 TALLOC_CTX *_mem_save_server_minor_version_0;
25898 if (flags & NDR_IN) {
25899 ZERO_STRUCT(r->out);
25901 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25902 NDR_PULL_ALLOC(ndr, r->in.handle);
25904 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25905 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25906 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25907 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25908 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
25909 if (_ptr_architecture) {
25910 NDR_PULL_ALLOC(ndr, r->in.architecture);
25912 r->in.architecture = NULL;
25914 if (r->in.architecture) {
25915 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
25916 NDR_PULL_SET_MEM_CTX(ndr, r->in.architecture, 0);
25917 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
25918 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
25919 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
25920 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));
25922 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
25923 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
25924 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
25926 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
25927 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
25929 NDR_PULL_ALLOC(ndr, r->in.buffer);
25931 r->in.buffer = NULL;
25933 if (r->in.buffer) {
25934 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
25935 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
25936 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
25937 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
25939 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
25940 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_major_version));
25941 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_minor_version));
25942 NDR_PULL_ALLOC(ndr, r->out.needed);
25943 ZERO_STRUCTP(r->out.needed);
25944 NDR_PULL_ALLOC(ndr, r->out.server_major_version);
25945 ZERO_STRUCTP(r->out.server_major_version);
25946 NDR_PULL_ALLOC(ndr, r->out.server_minor_version);
25947 ZERO_STRUCTP(r->out.server_minor_version);
25949 if (flags & NDR_OUT) {
25950 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
25952 NDR_PULL_ALLOC(ndr, r->out.info);
25954 r->out.info = NULL;
25957 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
25958 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
25960 struct ndr_pull *_ndr_info;
25961 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
25962 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
25963 NDR_CHECK(ndr_pull_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
25964 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
25966 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
25968 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25969 NDR_PULL_ALLOC(ndr, r->out.needed);
25971 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
25972 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
25973 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
25974 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
25975 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25976 NDR_PULL_ALLOC(ndr, r->out.server_major_version);
25978 _mem_save_server_major_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
25979 NDR_PULL_SET_MEM_CTX(ndr, r->out.server_major_version, LIBNDR_FLAG_REF_ALLOC);
25980 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.server_major_version));
25981 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_major_version_0, LIBNDR_FLAG_REF_ALLOC);
25982 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25983 NDR_PULL_ALLOC(ndr, r->out.server_minor_version);
25985 _mem_save_server_minor_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
25986 NDR_PULL_SET_MEM_CTX(ndr, r->out.server_minor_version, LIBNDR_FLAG_REF_ALLOC);
25987 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.server_minor_version));
25988 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_minor_version_0, LIBNDR_FLAG_REF_ALLOC);
25989 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25991 return NDR_ERR_SUCCESS;
25994 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriver2(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriver2 *r)
25996 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriver2");
25998 if (flags & NDR_SET_VALUES) {
25999 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26001 if (flags & NDR_IN) {
26002 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriver2");
26004 ndr_print_ptr(ndr, "handle", r->in.handle);
26006 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26008 ndr_print_ptr(ndr, "architecture", r->in.architecture);
26010 if (r->in.architecture) {
26011 ndr_print_string(ndr, "architecture", r->in.architecture);
26014 ndr_print_uint32(ndr, "level", r->in.level);
26015 ndr_print_ptr(ndr, "buffer", r->in.buffer);
26017 if (r->in.buffer) {
26018 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
26021 ndr_print_uint32(ndr, "offered", r->in.offered);
26022 ndr_print_uint32(ndr, "client_major_version", r->in.client_major_version);
26023 ndr_print_uint32(ndr, "client_minor_version", r->in.client_minor_version);
26026 if (flags & NDR_OUT) {
26027 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriver2");
26029 ndr_print_ptr(ndr, "info", r->out.info);
26032 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
26033 ndr_print_spoolss_DriverInfo(ndr, "info", r->out.info);
26036 ndr_print_ptr(ndr, "needed", r->out.needed);
26038 ndr_print_uint32(ndr, "needed", *r->out.needed);
26040 ndr_print_ptr(ndr, "server_major_version", r->out.server_major_version);
26042 ndr_print_uint32(ndr, "server_major_version", *r->out.server_major_version);
26044 ndr_print_ptr(ndr, "server_minor_version", r->out.server_minor_version);
26046 ndr_print_uint32(ndr, "server_minor_version", *r->out.server_minor_version);
26048 ndr_print_WERROR(ndr, "result", r->out.result);
26054 static enum ndr_err_code ndr_push_spoolss_FindFirstPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_FindFirstPrinterChangeNotification *r)
26056 if (flags & NDR_IN) {
26058 if (flags & NDR_OUT) {
26059 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26061 return NDR_ERR_SUCCESS;
26064 static enum ndr_err_code ndr_pull_spoolss_FindFirstPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_FindFirstPrinterChangeNotification *r)
26066 if (flags & NDR_IN) {
26068 if (flags & NDR_OUT) {
26069 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26071 return NDR_ERR_SUCCESS;
26074 _PUBLIC_ void ndr_print_spoolss_FindFirstPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindFirstPrinterChangeNotification *r)
26076 ndr_print_struct(ndr, name, "spoolss_FindFirstPrinterChangeNotification");
26078 if (flags & NDR_SET_VALUES) {
26079 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26081 if (flags & NDR_IN) {
26082 ndr_print_struct(ndr, "in", "spoolss_FindFirstPrinterChangeNotification");
26086 if (flags & NDR_OUT) {
26087 ndr_print_struct(ndr, "out", "spoolss_FindFirstPrinterChangeNotification");
26089 ndr_print_WERROR(ndr, "result", r->out.result);
26095 static enum ndr_err_code ndr_push_spoolss_FindNextPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_FindNextPrinterChangeNotification *r)
26097 if (flags & NDR_IN) {
26099 if (flags & NDR_OUT) {
26100 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26102 return NDR_ERR_SUCCESS;
26105 static enum ndr_err_code ndr_pull_spoolss_FindNextPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_FindNextPrinterChangeNotification *r)
26107 if (flags & NDR_IN) {
26109 if (flags & NDR_OUT) {
26110 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26112 return NDR_ERR_SUCCESS;
26115 _PUBLIC_ void ndr_print_spoolss_FindNextPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindNextPrinterChangeNotification *r)
26117 ndr_print_struct(ndr, name, "spoolss_FindNextPrinterChangeNotification");
26119 if (flags & NDR_SET_VALUES) {
26120 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26122 if (flags & NDR_IN) {
26123 ndr_print_struct(ndr, "in", "spoolss_FindNextPrinterChangeNotification");
26127 if (flags & NDR_OUT) {
26128 ndr_print_struct(ndr, "out", "spoolss_FindNextPrinterChangeNotification");
26130 ndr_print_WERROR(ndr, "result", r->out.result);
26136 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FindClosePrinterNotify(struct ndr_push *ndr, int flags, const struct spoolss_FindClosePrinterNotify *r)
26138 if (flags & NDR_IN) {
26139 if (r->in.handle == NULL) {
26140 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26142 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26144 if (flags & NDR_OUT) {
26145 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26147 return NDR_ERR_SUCCESS;
26150 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FindClosePrinterNotify(struct ndr_pull *ndr, int flags, struct spoolss_FindClosePrinterNotify *r)
26152 TALLOC_CTX *_mem_save_handle_0;
26153 if (flags & NDR_IN) {
26154 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26155 NDR_PULL_ALLOC(ndr, r->in.handle);
26157 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26158 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26159 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26160 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26162 if (flags & NDR_OUT) {
26163 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26165 return NDR_ERR_SUCCESS;
26168 _PUBLIC_ void ndr_print_spoolss_FindClosePrinterNotify(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindClosePrinterNotify *r)
26170 ndr_print_struct(ndr, name, "spoolss_FindClosePrinterNotify");
26172 if (flags & NDR_SET_VALUES) {
26173 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26175 if (flags & NDR_IN) {
26176 ndr_print_struct(ndr, "in", "spoolss_FindClosePrinterNotify");
26178 ndr_print_ptr(ndr, "handle", r->in.handle);
26180 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26184 if (flags & NDR_OUT) {
26185 ndr_print_struct(ndr, "out", "spoolss_FindClosePrinterNotify");
26187 ndr_print_WERROR(ndr, "result", r->out.result);
26193 static enum ndr_err_code ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_push *ndr, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
26195 if (flags & NDR_IN) {
26197 if (flags & NDR_OUT) {
26198 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26200 return NDR_ERR_SUCCESS;
26203 static enum ndr_err_code ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_pull *ndr, int flags, struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
26205 if (flags & NDR_IN) {
26207 if (flags & NDR_OUT) {
26208 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26210 return NDR_ERR_SUCCESS;
26213 _PUBLIC_ void ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
26215 ndr_print_struct(ndr, name, "spoolss_RouterFindFirstPrinterChangeNotificationOld");
26217 if (flags & NDR_SET_VALUES) {
26218 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26220 if (flags & NDR_IN) {
26221 ndr_print_struct(ndr, "in", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
26225 if (flags & NDR_OUT) {
26226 ndr_print_struct(ndr, "out", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
26228 ndr_print_WERROR(ndr, "result", r->out.result);
26234 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ReplyOpenPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReplyOpenPrinter *r)
26236 if (flags & NDR_IN) {
26237 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
26238 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
26239 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
26240 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));
26241 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.printer_local));
26242 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
26243 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
26244 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
26245 if (r->in.buffer) {
26246 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.bufsize));
26247 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.bufsize));
26250 if (flags & NDR_OUT) {
26251 if (r->out.handle == NULL) {
26252 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26254 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
26255 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26257 return NDR_ERR_SUCCESS;
26260 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ReplyOpenPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReplyOpenPrinter *r)
26262 uint32_t _ptr_buffer;
26263 TALLOC_CTX *_mem_save_buffer_0;
26264 TALLOC_CTX *_mem_save_handle_0;
26265 if (flags & NDR_IN) {
26266 ZERO_STRUCT(r->out);
26268 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
26269 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
26270 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
26271 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));
26273 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
26274 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));
26275 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.printer_local));
26276 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
26277 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.bufsize));
26278 if (r->in.bufsize > 512) {
26279 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
26281 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
26283 NDR_PULL_ALLOC(ndr, r->in.buffer);
26285 r->in.buffer = NULL;
26287 if (r->in.buffer) {
26288 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
26289 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
26290 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
26291 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
26292 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
26293 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
26295 NDR_PULL_ALLOC(ndr, r->out.handle);
26296 ZERO_STRUCTP(r->out.handle);
26297 if (r->in.buffer) {
26298 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.bufsize));
26301 if (flags & NDR_OUT) {
26302 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26303 NDR_PULL_ALLOC(ndr, r->out.handle);
26305 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26306 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
26307 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
26308 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26309 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26311 return NDR_ERR_SUCCESS;
26314 _PUBLIC_ void ndr_print_spoolss_ReplyOpenPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReplyOpenPrinter *r)
26316 ndr_print_struct(ndr, name, "spoolss_ReplyOpenPrinter");
26318 if (flags & NDR_SET_VALUES) {
26319 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26321 if (flags & NDR_IN) {
26322 ndr_print_struct(ndr, "in", "spoolss_ReplyOpenPrinter");
26324 ndr_print_string(ndr, "server_name", r->in.server_name);
26325 ndr_print_uint32(ndr, "printer_local", r->in.printer_local);
26326 ndr_print_winreg_Type(ndr, "type", r->in.type);
26327 ndr_print_uint32(ndr, "bufsize", r->in.bufsize);
26328 ndr_print_ptr(ndr, "buffer", r->in.buffer);
26330 if (r->in.buffer) {
26331 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.bufsize);
26336 if (flags & NDR_OUT) {
26337 ndr_print_struct(ndr, "out", "spoolss_ReplyOpenPrinter");
26339 ndr_print_ptr(ndr, "handle", r->out.handle);
26341 ndr_print_policy_handle(ndr, "handle", r->out.handle);
26343 ndr_print_WERROR(ndr, "result", r->out.result);
26349 static enum ndr_err_code ndr_push_spoolss_RouterReplyPrinter(struct ndr_push *ndr, int flags, const struct spoolss_RouterReplyPrinter *r)
26351 if (flags & NDR_IN) {
26352 if (r->in.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->in.handle));
26356 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
26357 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
26358 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
26359 if (r->in.buffer) {
26360 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.bufsize));
26361 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.bufsize));
26364 if (flags & NDR_OUT) {
26365 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26367 return NDR_ERR_SUCCESS;
26370 static enum ndr_err_code ndr_pull_spoolss_RouterReplyPrinter(struct ndr_pull *ndr, int flags, struct spoolss_RouterReplyPrinter *r)
26372 uint32_t _ptr_buffer;
26373 TALLOC_CTX *_mem_save_handle_0;
26374 TALLOC_CTX *_mem_save_buffer_0;
26375 if (flags & NDR_IN) {
26376 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26377 NDR_PULL_ALLOC(ndr, r->in.handle);
26379 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26380 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26381 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26382 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26383 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
26384 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.bufsize));
26385 if (r->in.bufsize > 512) {
26386 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
26388 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
26390 NDR_PULL_ALLOC(ndr, r->in.buffer);
26392 r->in.buffer = NULL;
26394 if (r->in.buffer) {
26395 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
26396 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
26397 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
26398 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
26399 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
26400 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
26402 if (r->in.buffer) {
26403 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.bufsize));
26406 if (flags & NDR_OUT) {
26407 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26409 return NDR_ERR_SUCCESS;
26412 _PUBLIC_ void ndr_print_spoolss_RouterReplyPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterReplyPrinter *r)
26414 ndr_print_struct(ndr, name, "spoolss_RouterReplyPrinter");
26416 if (flags & NDR_SET_VALUES) {
26417 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26419 if (flags & NDR_IN) {
26420 ndr_print_struct(ndr, "in", "spoolss_RouterReplyPrinter");
26422 ndr_print_ptr(ndr, "handle", r->in.handle);
26424 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26426 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
26427 ndr_print_uint32(ndr, "bufsize", r->in.bufsize);
26428 ndr_print_ptr(ndr, "buffer", r->in.buffer);
26430 if (r->in.buffer) {
26431 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.bufsize);
26436 if (flags & NDR_OUT) {
26437 ndr_print_struct(ndr, "out", "spoolss_RouterReplyPrinter");
26439 ndr_print_WERROR(ndr, "result", r->out.result);
26445 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ReplyClosePrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReplyClosePrinter *r)
26447 if (flags & NDR_IN) {
26448 if (r->in.handle == NULL) {
26449 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26451 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26453 if (flags & NDR_OUT) {
26454 if (r->out.handle == NULL) {
26455 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26457 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
26458 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26460 return NDR_ERR_SUCCESS;
26463 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ReplyClosePrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReplyClosePrinter *r)
26465 TALLOC_CTX *_mem_save_handle_0;
26466 if (flags & NDR_IN) {
26467 ZERO_STRUCT(r->out);
26469 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26470 NDR_PULL_ALLOC(ndr, r->in.handle);
26472 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26473 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26474 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26475 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26476 NDR_PULL_ALLOC(ndr, r->out.handle);
26477 *r->out.handle = *r->in.handle;
26479 if (flags & NDR_OUT) {
26480 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26481 NDR_PULL_ALLOC(ndr, r->out.handle);
26483 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26484 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
26485 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
26486 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26487 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26489 return NDR_ERR_SUCCESS;
26492 _PUBLIC_ void ndr_print_spoolss_ReplyClosePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReplyClosePrinter *r)
26494 ndr_print_struct(ndr, name, "spoolss_ReplyClosePrinter");
26496 if (flags & NDR_SET_VALUES) {
26497 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26499 if (flags & NDR_IN) {
26500 ndr_print_struct(ndr, "in", "spoolss_ReplyClosePrinter");
26502 ndr_print_ptr(ndr, "handle", r->in.handle);
26504 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26508 if (flags & NDR_OUT) {
26509 ndr_print_struct(ndr, "out", "spoolss_ReplyClosePrinter");
26511 ndr_print_ptr(ndr, "handle", r->out.handle);
26513 ndr_print_policy_handle(ndr, "handle", r->out.handle);
26515 ndr_print_WERROR(ndr, "result", r->out.result);
26521 static enum ndr_err_code ndr_push_spoolss_AddPortEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPortEx *r)
26523 if (flags & NDR_IN) {
26525 if (flags & NDR_OUT) {
26526 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26528 return NDR_ERR_SUCCESS;
26531 static enum ndr_err_code ndr_pull_spoolss_AddPortEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPortEx *r)
26533 if (flags & NDR_IN) {
26535 if (flags & NDR_OUT) {
26536 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26538 return NDR_ERR_SUCCESS;
26541 _PUBLIC_ void ndr_print_spoolss_AddPortEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPortEx *r)
26543 ndr_print_struct(ndr, name, "spoolss_AddPortEx");
26545 if (flags & NDR_SET_VALUES) {
26546 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26548 if (flags & NDR_IN) {
26549 ndr_print_struct(ndr, "in", "spoolss_AddPortEx");
26553 if (flags & NDR_OUT) {
26554 ndr_print_struct(ndr, "out", "spoolss_AddPortEx");
26556 ndr_print_WERROR(ndr, "result", r->out.result);
26562 static enum ndr_err_code ndr_push_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotification *r)
26564 if (flags & NDR_IN) {
26566 if (flags & NDR_OUT) {
26567 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26569 return NDR_ERR_SUCCESS;
26572 static enum ndr_err_code ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_RouterFindFirstPrinterChangeNotification *r)
26574 if (flags & NDR_IN) {
26576 if (flags & NDR_OUT) {
26577 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26579 return NDR_ERR_SUCCESS;
26582 _PUBLIC_ void ndr_print_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotification *r)
26584 ndr_print_struct(ndr, name, "spoolss_RouterFindFirstPrinterChangeNotification");
26586 if (flags & NDR_SET_VALUES) {
26587 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26589 if (flags & NDR_IN) {
26590 ndr_print_struct(ndr, "in", "spoolss_RouterFindFirstPrinterChangeNotification");
26594 if (flags & NDR_OUT) {
26595 ndr_print_struct(ndr, "out", "spoolss_RouterFindFirstPrinterChangeNotification");
26597 ndr_print_WERROR(ndr, "result", r->out.result);
26603 static enum ndr_err_code ndr_push_spoolss_SpoolerInit(struct ndr_push *ndr, int flags, const struct spoolss_SpoolerInit *r)
26605 if (flags & NDR_IN) {
26607 if (flags & NDR_OUT) {
26608 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26610 return NDR_ERR_SUCCESS;
26613 static enum ndr_err_code ndr_pull_spoolss_SpoolerInit(struct ndr_pull *ndr, int flags, struct spoolss_SpoolerInit *r)
26615 if (flags & NDR_IN) {
26617 if (flags & NDR_OUT) {
26618 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26620 return NDR_ERR_SUCCESS;
26623 _PUBLIC_ void ndr_print_spoolss_SpoolerInit(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SpoolerInit *r)
26625 ndr_print_struct(ndr, name, "spoolss_SpoolerInit");
26627 if (flags & NDR_SET_VALUES) {
26628 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26630 if (flags & NDR_IN) {
26631 ndr_print_struct(ndr, "in", "spoolss_SpoolerInit");
26635 if (flags & NDR_OUT) {
26636 ndr_print_struct(ndr, "out", "spoolss_SpoolerInit");
26638 ndr_print_WERROR(ndr, "result", r->out.result);
26644 static enum ndr_err_code ndr_push_spoolss_ResetPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_ResetPrinterEx *r)
26646 if (flags & NDR_IN) {
26648 if (flags & NDR_OUT) {
26649 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26651 return NDR_ERR_SUCCESS;
26654 static enum ndr_err_code ndr_pull_spoolss_ResetPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_ResetPrinterEx *r)
26656 if (flags & NDR_IN) {
26658 if (flags & NDR_OUT) {
26659 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26661 return NDR_ERR_SUCCESS;
26664 _PUBLIC_ void ndr_print_spoolss_ResetPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ResetPrinterEx *r)
26666 ndr_print_struct(ndr, name, "spoolss_ResetPrinterEx");
26668 if (flags & NDR_SET_VALUES) {
26669 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26671 if (flags & NDR_IN) {
26672 ndr_print_struct(ndr, "in", "spoolss_ResetPrinterEx");
26676 if (flags & NDR_OUT) {
26677 ndr_print_struct(ndr, "out", "spoolss_ResetPrinterEx");
26679 ndr_print_WERROR(ndr, "result", r->out.result);
26685 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_push *ndr, int flags, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
26687 if (flags & NDR_IN) {
26688 if (r->in.handle == NULL) {
26689 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26691 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26692 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
26693 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.options));
26694 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.local_machine));
26695 if (r->in.local_machine) {
26696 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.local_machine, CH_UTF16)));
26697 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
26698 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.local_machine, CH_UTF16)));
26699 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));
26701 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.printer_local));
26702 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.notify_options));
26703 if (r->in.notify_options) {
26704 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.notify_options));
26707 if (flags & NDR_OUT) {
26708 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26710 return NDR_ERR_SUCCESS;
26713 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_pull *ndr, int flags, struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
26715 uint32_t _ptr_local_machine;
26716 uint32_t _ptr_notify_options;
26717 TALLOC_CTX *_mem_save_handle_0;
26718 TALLOC_CTX *_mem_save_local_machine_0;
26719 TALLOC_CTX *_mem_save_notify_options_0;
26720 if (flags & NDR_IN) {
26721 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26722 NDR_PULL_ALLOC(ndr, r->in.handle);
26724 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26725 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26726 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26727 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26728 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
26729 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.options));
26730 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_local_machine));
26731 if (_ptr_local_machine) {
26732 NDR_PULL_ALLOC(ndr, r->in.local_machine);
26734 r->in.local_machine = NULL;
26736 if (r->in.local_machine) {
26737 _mem_save_local_machine_0 = NDR_PULL_GET_MEM_CTX(ndr);
26738 NDR_PULL_SET_MEM_CTX(ndr, r->in.local_machine, 0);
26739 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.local_machine));
26740 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.local_machine));
26741 if (ndr_get_array_length(ndr, &r->in.local_machine) > ndr_get_array_size(ndr, &r->in.local_machine)) {
26742 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));
26744 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.local_machine), sizeof(uint16_t)));
26745 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));
26746 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_local_machine_0, 0);
26748 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.printer_local));
26749 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_options));
26750 if (_ptr_notify_options) {
26751 NDR_PULL_ALLOC(ndr, r->in.notify_options);
26753 r->in.notify_options = NULL;
26755 if (r->in.notify_options) {
26756 _mem_save_notify_options_0 = NDR_PULL_GET_MEM_CTX(ndr);
26757 NDR_PULL_SET_MEM_CTX(ndr, r->in.notify_options, 0);
26758 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.notify_options));
26759 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_options_0, 0);
26762 if (flags & NDR_OUT) {
26763 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26765 return NDR_ERR_SUCCESS;
26768 _PUBLIC_ void ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
26770 ndr_print_struct(ndr, name, "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
26772 if (flags & NDR_SET_VALUES) {
26773 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26775 if (flags & NDR_IN) {
26776 ndr_print_struct(ndr, "in", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
26778 ndr_print_ptr(ndr, "handle", r->in.handle);
26780 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26782 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
26783 ndr_print_uint32(ndr, "options", r->in.options);
26784 ndr_print_ptr(ndr, "local_machine", r->in.local_machine);
26786 if (r->in.local_machine) {
26787 ndr_print_string(ndr, "local_machine", r->in.local_machine);
26790 ndr_print_uint32(ndr, "printer_local", r->in.printer_local);
26791 ndr_print_ptr(ndr, "notify_options", r->in.notify_options);
26793 if (r->in.notify_options) {
26794 ndr_print_spoolss_NotifyOption(ndr, "notify_options", r->in.notify_options);
26799 if (flags & NDR_OUT) {
26800 ndr_print_struct(ndr, "out", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
26802 ndr_print_WERROR(ndr, "result", r->out.result);
26808 static enum ndr_err_code ndr_push_spoolss_RouterReplyPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_RouterReplyPrinterEx *r)
26810 if (flags & NDR_IN) {
26811 if (r->in.handle == NULL) {
26812 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26814 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26815 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.color));
26816 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
26817 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.reply_type));
26818 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.reply_type));
26819 NDR_CHECK(ndr_push_spoolss_ReplyPrinterInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
26821 if (flags & NDR_OUT) {
26822 if (r->out.reply_result == NULL) {
26823 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26825 NDR_CHECK(ndr_push_spoolss_PrinterNotifyFlags(ndr, NDR_SCALARS, *r->out.reply_result));
26826 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26828 return NDR_ERR_SUCCESS;
26831 static enum ndr_err_code ndr_pull_spoolss_RouterReplyPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_RouterReplyPrinterEx *r)
26833 TALLOC_CTX *_mem_save_handle_0;
26834 TALLOC_CTX *_mem_save_reply_result_0;
26835 if (flags & NDR_IN) {
26836 ZERO_STRUCT(r->out);
26838 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26839 NDR_PULL_ALLOC(ndr, r->in.handle);
26841 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26842 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26843 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26844 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26845 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.color));
26846 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
26847 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.reply_type));
26848 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.reply_type));
26849 NDR_CHECK(ndr_pull_spoolss_ReplyPrinterInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
26850 NDR_PULL_ALLOC(ndr, r->out.reply_result);
26851 ZERO_STRUCTP(r->out.reply_result);
26853 if (flags & NDR_OUT) {
26854 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26855 NDR_PULL_ALLOC(ndr, r->out.reply_result);
26857 _mem_save_reply_result_0 = NDR_PULL_GET_MEM_CTX(ndr);
26858 NDR_PULL_SET_MEM_CTX(ndr, r->out.reply_result, LIBNDR_FLAG_REF_ALLOC);
26859 NDR_CHECK(ndr_pull_spoolss_PrinterNotifyFlags(ndr, NDR_SCALARS, r->out.reply_result));
26860 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_reply_result_0, LIBNDR_FLAG_REF_ALLOC);
26861 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26863 return NDR_ERR_SUCCESS;
26866 _PUBLIC_ void ndr_print_spoolss_RouterReplyPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterReplyPrinterEx *r)
26868 ndr_print_struct(ndr, name, "spoolss_RouterReplyPrinterEx");
26870 if (flags & NDR_SET_VALUES) {
26871 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26873 if (flags & NDR_IN) {
26874 ndr_print_struct(ndr, "in", "spoolss_RouterReplyPrinterEx");
26876 ndr_print_ptr(ndr, "handle", r->in.handle);
26878 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26880 ndr_print_uint32(ndr, "color", r->in.color);
26881 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
26882 ndr_print_uint32(ndr, "reply_type", r->in.reply_type);
26883 ndr_print_set_switch_value(ndr, &r->in.info, r->in.reply_type);
26884 ndr_print_spoolss_ReplyPrinterInfo(ndr, "info", &r->in.info);
26887 if (flags & NDR_OUT) {
26888 ndr_print_struct(ndr, "out", "spoolss_RouterReplyPrinterEx");
26890 ndr_print_ptr(ndr, "reply_result", r->out.reply_result);
26892 ndr_print_spoolss_PrinterNotifyFlags(ndr, "reply_result", *r->out.reply_result);
26894 ndr_print_WERROR(ndr, "result", r->out.result);
26900 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_push *ndr, int flags, const struct spoolss_RouterRefreshPrinterChangeNotify *r)
26902 if (flags & NDR_IN) {
26903 if (r->in.handle == NULL) {
26904 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26906 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26907 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.change_low));
26908 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.options));
26909 if (r->in.options) {
26910 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.options));
26913 if (flags & NDR_OUT) {
26914 if (r->out.info == NULL) {
26915 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26917 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
26918 if (*r->out.info) {
26919 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
26921 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26923 return NDR_ERR_SUCCESS;
26926 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_pull *ndr, int flags, struct spoolss_RouterRefreshPrinterChangeNotify *r)
26928 uint32_t _ptr_options;
26929 uint32_t _ptr_info;
26930 TALLOC_CTX *_mem_save_handle_0;
26931 TALLOC_CTX *_mem_save_options_0;
26932 TALLOC_CTX *_mem_save_info_0;
26933 TALLOC_CTX *_mem_save_info_1;
26934 if (flags & NDR_IN) {
26935 ZERO_STRUCT(r->out);
26937 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26938 NDR_PULL_ALLOC(ndr, r->in.handle);
26940 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26941 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26942 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26943 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26944 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.change_low));
26945 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_options));
26946 if (_ptr_options) {
26947 NDR_PULL_ALLOC(ndr, r->in.options);
26949 r->in.options = NULL;
26951 if (r->in.options) {
26952 _mem_save_options_0 = NDR_PULL_GET_MEM_CTX(ndr);
26953 NDR_PULL_SET_MEM_CTX(ndr, r->in.options, 0);
26954 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.options));
26955 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_options_0, 0);
26957 NDR_PULL_ALLOC(ndr, r->out.info);
26958 ZERO_STRUCTP(r->out.info);
26960 if (flags & NDR_OUT) {
26961 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26962 NDR_PULL_ALLOC(ndr, r->out.info);
26964 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
26965 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
26966 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
26968 NDR_PULL_ALLOC(ndr, *r->out.info);
26970 *r->out.info = NULL;
26972 if (*r->out.info) {
26973 _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
26974 NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
26975 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
26976 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
26978 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
26979 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26981 return NDR_ERR_SUCCESS;
26984 _PUBLIC_ void ndr_print_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterRefreshPrinterChangeNotify *r)
26986 ndr_print_struct(ndr, name, "spoolss_RouterRefreshPrinterChangeNotify");
26988 if (flags & NDR_SET_VALUES) {
26989 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26991 if (flags & NDR_IN) {
26992 ndr_print_struct(ndr, "in", "spoolss_RouterRefreshPrinterChangeNotify");
26994 ndr_print_ptr(ndr, "handle", r->in.handle);
26996 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26998 ndr_print_uint32(ndr, "change_low", r->in.change_low);
26999 ndr_print_ptr(ndr, "options", r->in.options);
27001 if (r->in.options) {
27002 ndr_print_spoolss_NotifyOption(ndr, "options", r->in.options);
27007 if (flags & NDR_OUT) {
27008 ndr_print_struct(ndr, "out", "spoolss_RouterRefreshPrinterChangeNotify");
27010 ndr_print_ptr(ndr, "info", r->out.info);
27012 ndr_print_ptr(ndr, "info", *r->out.info);
27014 if (*r->out.info) {
27015 ndr_print_spoolss_NotifyInfo(ndr, "info", *r->out.info);
27019 ndr_print_WERROR(ndr, "result", r->out.result);
27025 static enum ndr_err_code ndr_push_spoolss_44(struct ndr_push *ndr, int flags, const struct spoolss_44 *r)
27027 if (flags & NDR_IN) {
27029 if (flags & NDR_OUT) {
27030 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27032 return NDR_ERR_SUCCESS;
27035 static enum ndr_err_code ndr_pull_spoolss_44(struct ndr_pull *ndr, int flags, struct spoolss_44 *r)
27037 if (flags & NDR_IN) {
27039 if (flags & NDR_OUT) {
27040 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27042 return NDR_ERR_SUCCESS;
27045 _PUBLIC_ void ndr_print_spoolss_44(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_44 *r)
27047 ndr_print_struct(ndr, name, "spoolss_44");
27049 if (flags & NDR_SET_VALUES) {
27050 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27052 if (flags & NDR_IN) {
27053 ndr_print_struct(ndr, "in", "spoolss_44");
27057 if (flags & NDR_OUT) {
27058 ndr_print_struct(ndr, "out", "spoolss_44");
27060 ndr_print_WERROR(ndr, "result", r->out.result);
27066 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OpenPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_OpenPrinterEx *r)
27068 if (flags & NDR_IN) {
27069 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.printername));
27070 if (r->in.printername) {
27071 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
27072 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27073 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
27074 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
27076 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.datatype));
27077 if (r->in.datatype) {
27078 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
27079 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27080 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
27081 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.datatype, ndr_charset_length(r->in.datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
27083 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
27084 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr, NDR_SCALARS, r->in.access_mask));
27085 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
27086 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.userlevel, r->in.level));
27087 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.userlevel));
27089 if (flags & NDR_OUT) {
27090 if (r->out.handle == NULL) {
27091 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27093 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
27094 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27096 return NDR_ERR_SUCCESS;
27099 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OpenPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_OpenPrinterEx *r)
27101 uint32_t _ptr_printername;
27102 uint32_t _ptr_datatype;
27103 TALLOC_CTX *_mem_save_printername_0;
27104 TALLOC_CTX *_mem_save_datatype_0;
27105 TALLOC_CTX *_mem_save_handle_0;
27106 if (flags & NDR_IN) {
27107 ZERO_STRUCT(r->out);
27109 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
27110 if (_ptr_printername) {
27111 NDR_PULL_ALLOC(ndr, r->in.printername);
27113 r->in.printername = NULL;
27115 if (r->in.printername) {
27116 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
27117 NDR_PULL_SET_MEM_CTX(ndr, r->in.printername, 0);
27118 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
27119 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
27120 if (ndr_get_array_length(ndr, &r->in.printername) > ndr_get_array_size(ndr, &r->in.printername)) {
27121 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));
27123 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t)));
27124 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t), CH_UTF16));
27125 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
27127 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
27128 if (_ptr_datatype) {
27129 NDR_PULL_ALLOC(ndr, r->in.datatype);
27131 r->in.datatype = NULL;
27133 if (r->in.datatype) {
27134 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
27135 NDR_PULL_SET_MEM_CTX(ndr, r->in.datatype, 0);
27136 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.datatype));
27137 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.datatype));
27138 if (ndr_get_array_length(ndr, &r->in.datatype) > ndr_get_array_size(ndr, &r->in.datatype)) {
27139 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));
27141 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t)));
27142 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t), CH_UTF16));
27143 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
27145 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
27146 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr, NDR_SCALARS, &r->in.access_mask));
27147 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
27148 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.userlevel, r->in.level));
27149 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.userlevel));
27150 NDR_PULL_ALLOC(ndr, r->out.handle);
27151 ZERO_STRUCTP(r->out.handle);
27153 if (flags & NDR_OUT) {
27154 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27155 NDR_PULL_ALLOC(ndr, r->out.handle);
27157 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27158 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
27159 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
27160 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27161 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27163 return NDR_ERR_SUCCESS;
27166 _PUBLIC_ void ndr_print_spoolss_OpenPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_OpenPrinterEx *r)
27168 ndr_print_struct(ndr, name, "spoolss_OpenPrinterEx");
27170 if (flags & NDR_SET_VALUES) {
27171 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27173 if (flags & NDR_IN) {
27174 ndr_print_struct(ndr, "in", "spoolss_OpenPrinterEx");
27176 ndr_print_ptr(ndr, "printername", r->in.printername);
27178 if (r->in.printername) {
27179 ndr_print_string(ndr, "printername", r->in.printername);
27182 ndr_print_ptr(ndr, "datatype", r->in.datatype);
27184 if (r->in.datatype) {
27185 ndr_print_string(ndr, "datatype", r->in.datatype);
27188 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", &r->in.devmode_ctr);
27189 ndr_print_spoolss_AccessRights(ndr, "access_mask", r->in.access_mask);
27190 ndr_print_uint32(ndr, "level", r->in.level);
27191 ndr_print_set_switch_value(ndr, &r->in.userlevel, r->in.level);
27192 ndr_print_spoolss_UserLevel(ndr, "userlevel", &r->in.userlevel);
27195 if (flags & NDR_OUT) {
27196 ndr_print_struct(ndr, "out", "spoolss_OpenPrinterEx");
27198 ndr_print_ptr(ndr, "handle", r->out.handle);
27200 ndr_print_policy_handle(ndr, "handle", r->out.handle);
27202 ndr_print_WERROR(ndr, "result", r->out.result);
27208 static enum ndr_err_code ndr_push_spoolss_AddPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterEx *r)
27210 if (flags & NDR_IN) {
27211 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
27212 if (r->in.server) {
27213 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
27214 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27215 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
27216 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
27218 if (r->in.info_ctr == NULL) {
27219 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27221 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
27222 if (r->in.devmode_ctr == NULL) {
27223 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27225 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
27226 if (r->in.secdesc_ctr == NULL) {
27227 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27229 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
27230 if (r->in.userlevel_ctr == NULL) {
27231 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27233 NDR_CHECK(ndr_push_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.userlevel_ctr));
27235 if (flags & NDR_OUT) {
27236 if (r->out.handle == NULL) {
27237 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27239 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
27240 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27242 return NDR_ERR_SUCCESS;
27245 static enum ndr_err_code ndr_pull_spoolss_AddPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterEx *r)
27247 uint32_t _ptr_server;
27248 TALLOC_CTX *_mem_save_server_0;
27249 TALLOC_CTX *_mem_save_info_ctr_0;
27250 TALLOC_CTX *_mem_save_devmode_ctr_0;
27251 TALLOC_CTX *_mem_save_secdesc_ctr_0;
27252 TALLOC_CTX *_mem_save_userlevel_ctr_0;
27253 TALLOC_CTX *_mem_save_handle_0;
27254 if (flags & NDR_IN) {
27255 ZERO_STRUCT(r->out);
27257 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
27259 NDR_PULL_ALLOC(ndr, r->in.server);
27261 r->in.server = NULL;
27263 if (r->in.server) {
27264 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
27265 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
27266 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
27267 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
27268 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
27269 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));
27271 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
27272 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
27273 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
27275 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27276 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
27278 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
27279 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
27280 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
27281 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
27282 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27283 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
27285 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
27286 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
27287 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
27288 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
27289 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27290 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
27292 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
27293 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
27294 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
27295 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
27296 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27297 NDR_PULL_ALLOC(ndr, r->in.userlevel_ctr);
27299 _mem_save_userlevel_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
27300 NDR_PULL_SET_MEM_CTX(ndr, r->in.userlevel_ctr, LIBNDR_FLAG_REF_ALLOC);
27301 NDR_CHECK(ndr_pull_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.userlevel_ctr));
27302 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_userlevel_ctr_0, LIBNDR_FLAG_REF_ALLOC);
27303 NDR_PULL_ALLOC(ndr, r->out.handle);
27304 ZERO_STRUCTP(r->out.handle);
27306 if (flags & NDR_OUT) {
27307 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27308 NDR_PULL_ALLOC(ndr, r->out.handle);
27310 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27311 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
27312 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
27313 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27314 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27316 return NDR_ERR_SUCCESS;
27319 _PUBLIC_ void ndr_print_spoolss_AddPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterEx *r)
27321 ndr_print_struct(ndr, name, "spoolss_AddPrinterEx");
27323 if (flags & NDR_SET_VALUES) {
27324 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27326 if (flags & NDR_IN) {
27327 ndr_print_struct(ndr, "in", "spoolss_AddPrinterEx");
27329 ndr_print_ptr(ndr, "server", r->in.server);
27331 if (r->in.server) {
27332 ndr_print_string(ndr, "server", r->in.server);
27335 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
27337 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
27339 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
27341 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
27343 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
27345 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
27347 ndr_print_ptr(ndr, "userlevel_ctr", r->in.userlevel_ctr);
27349 ndr_print_spoolss_UserLevelCtr(ndr, "userlevel_ctr", r->in.userlevel_ctr);
27353 if (flags & NDR_OUT) {
27354 ndr_print_struct(ndr, "out", "spoolss_AddPrinterEx");
27356 ndr_print_ptr(ndr, "handle", r->out.handle);
27358 ndr_print_policy_handle(ndr, "handle", r->out.handle);
27360 ndr_print_WERROR(ndr, "result", r->out.result);
27366 static enum ndr_err_code ndr_push_spoolss_47(struct ndr_push *ndr, int flags, const struct spoolss_47 *r)
27368 if (flags & NDR_IN) {
27370 if (flags & NDR_OUT) {
27371 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27373 return NDR_ERR_SUCCESS;
27376 static enum ndr_err_code ndr_pull_spoolss_47(struct ndr_pull *ndr, int flags, struct spoolss_47 *r)
27378 if (flags & NDR_IN) {
27380 if (flags & NDR_OUT) {
27381 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27383 return NDR_ERR_SUCCESS;
27386 _PUBLIC_ void ndr_print_spoolss_47(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_47 *r)
27388 ndr_print_struct(ndr, name, "spoolss_47");
27390 if (flags & NDR_SET_VALUES) {
27391 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27393 if (flags & NDR_IN) {
27394 ndr_print_struct(ndr, "in", "spoolss_47");
27398 if (flags & NDR_OUT) {
27399 ndr_print_struct(ndr, "out", "spoolss_47");
27401 ndr_print_WERROR(ndr, "result", r->out.result);
27407 static enum ndr_err_code ndr_push_spoolss_EnumPrinterData(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterData *r)
27409 if (flags & NDR_IN) {
27410 if (r->in.handle == NULL) {
27411 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27413 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27414 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.enum_index));
27415 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.value_offered));
27416 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_offered));
27418 if (flags & NDR_OUT) {
27419 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.value_offered / 2));
27420 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->out.value_name, r->in.value_offered / 2, sizeof(uint16_t), CH_UTF16));
27421 if (r->out.value_needed == NULL) {
27422 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27424 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.value_needed));
27425 if (r->out.type == NULL) {
27426 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27428 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
27430 uint32_t _flags_save_uint8 = ndr->flags;
27431 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
27432 if (r->out.data == NULL) {
27433 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27435 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.data_offered));
27436 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->in.data_offered));
27437 ndr->flags = _flags_save_uint8;
27439 if (r->out.data_needed == NULL) {
27440 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27442 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.data_needed));
27443 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27445 return NDR_ERR_SUCCESS;
27448 static enum ndr_err_code ndr_pull_spoolss_EnumPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterData *r)
27450 TALLOC_CTX *_mem_save_handle_0;
27451 TALLOC_CTX *_mem_save_value_needed_0;
27452 TALLOC_CTX *_mem_save_type_0;
27453 TALLOC_CTX *_mem_save_data_needed_0;
27454 if (flags & NDR_IN) {
27455 ZERO_STRUCT(r->out);
27457 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27458 NDR_PULL_ALLOC(ndr, r->in.handle);
27460 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27461 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27462 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27463 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27464 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.enum_index));
27465 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.value_offered));
27466 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_offered));
27467 NDR_PULL_ALLOC(ndr, r->out.value_needed);
27468 ZERO_STRUCTP(r->out.value_needed);
27469 NDR_PULL_ALLOC(ndr, r->out.type);
27470 ZERO_STRUCTP(r->out.type);
27471 NDR_PULL_ALLOC_N(ndr, r->out.data, r->in.data_offered);
27472 memset(r->out.data, 0, (r->in.data_offered) * sizeof(*r->out.data));
27473 NDR_PULL_ALLOC(ndr, r->out.data_needed);
27474 ZERO_STRUCTP(r->out.data_needed);
27476 if (flags & NDR_OUT) {
27477 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.value_name));
27478 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));
27479 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27480 NDR_PULL_ALLOC(ndr, r->out.value_needed);
27482 _mem_save_value_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
27483 NDR_PULL_SET_MEM_CTX(ndr, r->out.value_needed, LIBNDR_FLAG_REF_ALLOC);
27484 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.value_needed));
27485 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_needed_0, LIBNDR_FLAG_REF_ALLOC);
27486 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27487 NDR_PULL_ALLOC(ndr, r->out.type);
27489 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
27490 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
27491 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
27492 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
27494 uint32_t _flags_save_uint8 = ndr->flags;
27495 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
27496 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
27497 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27498 NDR_PULL_ALLOC_N(ndr, r->out.data, ndr_get_array_size(ndr, &r->out.data));
27500 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, ndr_get_array_size(ndr, &r->out.data)));
27501 ndr->flags = _flags_save_uint8;
27503 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27504 NDR_PULL_ALLOC(ndr, r->out.data_needed);
27506 _mem_save_data_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
27507 NDR_PULL_SET_MEM_CTX(ndr, r->out.data_needed, LIBNDR_FLAG_REF_ALLOC);
27508 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.data_needed));
27509 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_needed_0, LIBNDR_FLAG_REF_ALLOC);
27510 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27511 if (r->out.value_name) {
27512 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.value_name, r->in.value_offered / 2));
27515 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, r->in.data_offered));
27518 return NDR_ERR_SUCCESS;
27521 _PUBLIC_ void ndr_print_spoolss_EnumPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterData *r)
27523 ndr_print_struct(ndr, name, "spoolss_EnumPrinterData");
27525 if (flags & NDR_SET_VALUES) {
27526 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27528 if (flags & NDR_IN) {
27529 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterData");
27531 ndr_print_ptr(ndr, "handle", r->in.handle);
27533 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27535 ndr_print_uint32(ndr, "enum_index", r->in.enum_index);
27536 ndr_print_uint32(ndr, "value_offered", r->in.value_offered);
27537 ndr_print_uint32(ndr, "data_offered", r->in.data_offered);
27540 if (flags & NDR_OUT) {
27541 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterData");
27543 ndr_print_string(ndr, "value_name", r->out.value_name);
27544 ndr_print_ptr(ndr, "value_needed", r->out.value_needed);
27546 ndr_print_uint32(ndr, "value_needed", *r->out.value_needed);
27548 ndr_print_ptr(ndr, "type", r->out.type);
27550 ndr_print_winreg_Type(ndr, "type", *r->out.type);
27552 ndr_print_ptr(ndr, "data", r->out.data);
27554 ndr_print_array_uint8(ndr, "data", r->out.data, r->in.data_offered);
27556 ndr_print_ptr(ndr, "data_needed", r->out.data_needed);
27558 ndr_print_uint32(ndr, "data_needed", *r->out.data_needed);
27560 ndr_print_WERROR(ndr, "result", r->out.result);
27566 static enum ndr_err_code ndr_push_spoolss_DeletePrinterData(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterData *r)
27568 if (flags & NDR_IN) {
27569 if (r->in.handle == NULL) {
27570 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27572 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27573 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
27574 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27575 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
27576 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));
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_DeletePrinterData(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterData *r)
27586 TALLOC_CTX *_mem_save_handle_0;
27587 if (flags & NDR_IN) {
27588 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27589 NDR_PULL_ALLOC(ndr, r->in.handle);
27591 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27592 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27593 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27594 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27595 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
27596 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
27597 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
27598 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));
27600 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
27601 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));
27603 if (flags & NDR_OUT) {
27604 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27606 return NDR_ERR_SUCCESS;
27609 _PUBLIC_ void ndr_print_spoolss_DeletePrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterData *r)
27611 ndr_print_struct(ndr, name, "spoolss_DeletePrinterData");
27613 if (flags & NDR_SET_VALUES) {
27614 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27616 if (flags & NDR_IN) {
27617 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterData");
27619 ndr_print_ptr(ndr, "handle", r->in.handle);
27621 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27623 ndr_print_string(ndr, "value_name", r->in.value_name);
27626 if (flags & NDR_OUT) {
27627 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterData");
27629 ndr_print_WERROR(ndr, "result", r->out.result);
27635 static enum ndr_err_code ndr_push_spoolss_4a(struct ndr_push *ndr, int flags, const struct spoolss_4a *r)
27637 if (flags & NDR_IN) {
27639 if (flags & NDR_OUT) {
27640 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27642 return NDR_ERR_SUCCESS;
27645 static enum ndr_err_code ndr_pull_spoolss_4a(struct ndr_pull *ndr, int flags, struct spoolss_4a *r)
27647 if (flags & NDR_IN) {
27649 if (flags & NDR_OUT) {
27650 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27652 return NDR_ERR_SUCCESS;
27655 _PUBLIC_ void ndr_print_spoolss_4a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4a *r)
27657 ndr_print_struct(ndr, name, "spoolss_4a");
27659 if (flags & NDR_SET_VALUES) {
27660 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27662 if (flags & NDR_IN) {
27663 ndr_print_struct(ndr, "in", "spoolss_4a");
27667 if (flags & NDR_OUT) {
27668 ndr_print_struct(ndr, "out", "spoolss_4a");
27670 ndr_print_WERROR(ndr, "result", r->out.result);
27676 static enum ndr_err_code ndr_push_spoolss_4b(struct ndr_push *ndr, int flags, const struct spoolss_4b *r)
27678 if (flags & NDR_IN) {
27680 if (flags & NDR_OUT) {
27681 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27683 return NDR_ERR_SUCCESS;
27686 static enum ndr_err_code ndr_pull_spoolss_4b(struct ndr_pull *ndr, int flags, struct spoolss_4b *r)
27688 if (flags & NDR_IN) {
27690 if (flags & NDR_OUT) {
27691 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27693 return NDR_ERR_SUCCESS;
27696 _PUBLIC_ void ndr_print_spoolss_4b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4b *r)
27698 ndr_print_struct(ndr, name, "spoolss_4b");
27700 if (flags & NDR_SET_VALUES) {
27701 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27703 if (flags & NDR_IN) {
27704 ndr_print_struct(ndr, "in", "spoolss_4b");
27708 if (flags & NDR_OUT) {
27709 ndr_print_struct(ndr, "out", "spoolss_4b");
27711 ndr_print_WERROR(ndr, "result", r->out.result);
27717 static enum ndr_err_code ndr_push_spoolss_4c(struct ndr_push *ndr, int flags, const struct spoolss_4c *r)
27719 if (flags & NDR_IN) {
27721 if (flags & NDR_OUT) {
27722 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27724 return NDR_ERR_SUCCESS;
27727 static enum ndr_err_code ndr_pull_spoolss_4c(struct ndr_pull *ndr, int flags, struct spoolss_4c *r)
27729 if (flags & NDR_IN) {
27731 if (flags & NDR_OUT) {
27732 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27734 return NDR_ERR_SUCCESS;
27737 _PUBLIC_ void ndr_print_spoolss_4c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4c *r)
27739 ndr_print_struct(ndr, name, "spoolss_4c");
27741 if (flags & NDR_SET_VALUES) {
27742 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27744 if (flags & NDR_IN) {
27745 ndr_print_struct(ndr, "in", "spoolss_4c");
27749 if (flags & NDR_OUT) {
27750 ndr_print_struct(ndr, "out", "spoolss_4c");
27752 ndr_print_WERROR(ndr, "result", r->out.result);
27758 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_SetPrinterDataEx(struct ndr_push *ndr, int flags, const struct _spoolss_SetPrinterDataEx *r)
27760 if (flags & NDR_IN) {
27761 if (r->in.handle == NULL) {
27762 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27764 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27765 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27766 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27767 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27768 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));
27769 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
27770 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27771 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
27772 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));
27773 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
27774 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
27775 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in._offered));
27777 if (flags & NDR_OUT) {
27778 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27780 return NDR_ERR_SUCCESS;
27783 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_SetPrinterDataEx(struct ndr_push *ndr, int flags, const struct __spoolss_SetPrinterDataEx *r)
27785 if (flags & NDR_IN) {
27786 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
27788 if (flags & NDR_OUT) {
27789 if (r->out.data == NULL) {
27790 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27792 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.data, r->in.type));
27793 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
27795 return NDR_ERR_SUCCESS;
27798 static enum ndr_err_code ndr_pull_spoolss_SetPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinterDataEx *r)
27800 TALLOC_CTX *_mem_save_handle_0;
27801 if (flags & NDR_IN) {
27802 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27803 NDR_PULL_ALLOC(ndr, r->in.handle);
27805 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27806 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27807 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27808 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27809 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
27810 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
27811 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
27812 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));
27814 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
27815 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));
27816 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
27817 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
27818 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
27819 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));
27821 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
27822 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));
27823 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
27825 struct ndr_pull *_ndr_data;
27826 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_data, 4, -1));
27827 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data, &r->in.data, r->in.type));
27828 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
27829 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_data, 4, -1));
27831 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._offered));
27833 if (flags & NDR_OUT) {
27834 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27836 return NDR_ERR_SUCCESS;
27839 _PUBLIC_ void ndr_print_spoolss_SetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinterDataEx *r)
27841 ndr_print_struct(ndr, name, "spoolss_SetPrinterDataEx");
27843 if (flags & NDR_SET_VALUES) {
27844 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27846 if (flags & NDR_IN) {
27847 ndr_print_struct(ndr, "in", "spoolss_SetPrinterDataEx");
27849 ndr_print_ptr(ndr, "handle", r->in.handle);
27851 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27853 ndr_print_string(ndr, "key_name", r->in.key_name);
27854 ndr_print_string(ndr, "value_name", r->in.value_name);
27855 ndr_print_winreg_Type(ndr, "type", r->in.type);
27856 ndr_print_set_switch_value(ndr, &r->in.data, r->in.type);
27857 ndr_print_spoolss_PrinterData(ndr, "data", &r->in.data);
27858 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);
27861 if (flags & NDR_OUT) {
27862 ndr_print_struct(ndr, "out", "spoolss_SetPrinterDataEx");
27864 ndr_print_WERROR(ndr, "result", r->out.result);
27870 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_GetPrinterDataEx(struct ndr_push *ndr, int flags, const struct _spoolss_GetPrinterDataEx *r)
27872 if (flags & NDR_IN) {
27873 if (r->in.handle == NULL) {
27874 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27876 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27877 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27878 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27879 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27880 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));
27881 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
27882 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27883 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
27884 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));
27885 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
27887 if (flags & NDR_OUT) {
27888 if (r->out.type == NULL) {
27889 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27891 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
27892 if (r->out.data == NULL) {
27893 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27895 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.data));
27896 if (r->out.needed == NULL) {
27897 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27899 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
27900 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27902 return NDR_ERR_SUCCESS;
27905 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_GetPrinterDataEx(struct ndr_pull *ndr, int flags, struct _spoolss_GetPrinterDataEx *r)
27907 TALLOC_CTX *_mem_save_handle_0;
27908 TALLOC_CTX *_mem_save_type_0;
27909 TALLOC_CTX *_mem_save_data_0;
27910 TALLOC_CTX *_mem_save_needed_0;
27911 if (flags & NDR_IN) {
27912 ZERO_STRUCT(r->out);
27914 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27915 NDR_PULL_ALLOC(ndr, r->in.handle);
27917 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27918 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27919 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27920 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27921 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
27922 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
27923 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
27924 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));
27926 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
27927 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));
27928 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
27929 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
27930 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
27931 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));
27933 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
27934 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));
27935 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
27936 NDR_PULL_ALLOC(ndr, r->out.type);
27937 ZERO_STRUCTP(r->out.type);
27938 NDR_PULL_ALLOC(ndr, r->out.data);
27939 ZERO_STRUCTP(r->out.data);
27940 NDR_PULL_ALLOC(ndr, r->out.needed);
27941 ZERO_STRUCTP(r->out.needed);
27943 if (flags & NDR_OUT) {
27944 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27945 NDR_PULL_ALLOC(ndr, r->out.type);
27947 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
27948 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
27949 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
27950 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
27951 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27952 NDR_PULL_ALLOC(ndr, r->out.data);
27954 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
27955 NDR_PULL_SET_MEM_CTX(ndr, r->out.data, LIBNDR_FLAG_REF_ALLOC);
27956 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.data));
27957 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
27958 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27959 NDR_PULL_ALLOC(ndr, r->out.needed);
27961 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
27962 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
27963 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
27964 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
27965 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27967 return NDR_ERR_SUCCESS;
27970 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_GetPrinterDataEx(struct ndr_push *ndr, int flags, const struct __spoolss_GetPrinterDataEx *r)
27972 if (flags & NDR_IN) {
27973 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
27975 if (flags & NDR_OUT) {
27976 if (r->out.data == NULL) {
27977 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27979 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.data, r->in.type));
27980 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
27982 return NDR_ERR_SUCCESS;
27985 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_GetPrinterDataEx(struct ndr_pull *ndr, int flags, struct __spoolss_GetPrinterDataEx *r)
27987 TALLOC_CTX *_mem_save_data_0;
27988 if (flags & NDR_IN) {
27989 ZERO_STRUCT(r->out);
27991 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
27992 NDR_PULL_ALLOC(ndr, r->out.data);
27993 ZERO_STRUCTP(r->out.data);
27995 if (flags & NDR_OUT) {
27996 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27997 NDR_PULL_ALLOC(ndr, r->out.data);
27999 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
28000 NDR_PULL_SET_MEM_CTX(ndr, r->out.data, LIBNDR_FLAG_REF_ALLOC);
28001 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.data, r->in.type));
28002 NDR_CHECK(ndr_pull_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
28003 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
28005 return NDR_ERR_SUCCESS;
28008 _PUBLIC_ void ndr_print_spoolss_GetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDataEx *r)
28010 ndr_print_struct(ndr, name, "spoolss_GetPrinterDataEx");
28012 if (flags & NDR_SET_VALUES) {
28013 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28015 if (flags & NDR_IN) {
28016 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDataEx");
28018 ndr_print_ptr(ndr, "handle", r->in.handle);
28020 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28022 ndr_print_string(ndr, "key_name", r->in.key_name);
28023 ndr_print_string(ndr, "value_name", r->in.value_name);
28024 ndr_print_uint32(ndr, "offered", r->in.offered);
28027 if (flags & NDR_OUT) {
28028 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDataEx");
28030 ndr_print_ptr(ndr, "type", r->out.type);
28032 ndr_print_winreg_Type(ndr, "type", *r->out.type);
28034 ndr_print_ptr(ndr, "data", r->out.data);
28036 ndr_print_set_switch_value(ndr, r->out.data, *r->out.type);
28037 ndr_print_spoolss_PrinterData(ndr, "data", r->out.data);
28039 ndr_print_ptr(ndr, "needed", r->out.needed);
28041 ndr_print_uint32(ndr, "needed", *r->out.needed);
28043 ndr_print_WERROR(ndr, "result", r->out.result);
28049 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinterDataEx(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinterDataEx *r)
28051 if (flags & NDR_IN) {
28052 if (r->in.handle == NULL) {
28053 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28055 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28056 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28057 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28058 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28059 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));
28060 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
28062 if (flags & NDR_OUT) {
28063 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
28064 if (r->out.needed == NULL) {
28065 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28067 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
28068 if (r->out.count == NULL) {
28069 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28071 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
28072 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28074 return NDR_ERR_SUCCESS;
28077 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinterDataEx(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinterDataEx *r)
28079 TALLOC_CTX *_mem_save_handle_0;
28080 TALLOC_CTX *_mem_save_needed_0;
28081 TALLOC_CTX *_mem_save_count_0;
28082 if (flags & NDR_IN) {
28083 ZERO_STRUCT(r->out);
28085 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28086 NDR_PULL_ALLOC(ndr, r->in.handle);
28088 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28089 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
28090 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28091 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28092 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
28093 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
28094 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
28095 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));
28097 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
28098 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));
28099 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
28100 NDR_PULL_ALLOC(ndr, r->out.needed);
28101 ZERO_STRUCTP(r->out.needed);
28102 NDR_PULL_ALLOC(ndr, r->out.count);
28103 ZERO_STRUCTP(r->out.count);
28105 if (flags & NDR_OUT) {
28106 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->out.info));
28107 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28108 NDR_PULL_ALLOC(ndr, r->out.needed);
28110 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
28111 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
28112 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
28113 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
28114 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28115 NDR_PULL_ALLOC(ndr, r->out.count);
28117 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
28118 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
28119 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
28120 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
28121 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28123 return NDR_ERR_SUCCESS;
28126 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinterDataEx(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinterDataEx *r)
28128 uint32_t cntr_info_0;
28129 if (flags & NDR_IN) {
28130 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
28132 if (flags & NDR_OUT) {
28133 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
28134 NDR_CHECK(ndr_push_spoolss_PrinterEnumValues(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
28136 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
28137 NDR_CHECK(ndr_push_spoolss_PrinterEnumValues(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
28140 return NDR_ERR_SUCCESS;
28143 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinterDataEx(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinterDataEx *r)
28145 uint32_t cntr_info_0;
28146 TALLOC_CTX *_mem_save_info_0;
28147 if (flags & NDR_IN) {
28148 ZERO_STRUCT(r->out);
28150 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
28152 if (flags & NDR_OUT) {
28153 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
28154 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
28155 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
28156 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
28157 NDR_CHECK(ndr_pull_spoolss_PrinterEnumValues(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
28159 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
28160 NDR_CHECK(ndr_pull_spoolss_PrinterEnumValues(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
28162 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
28164 return NDR_ERR_SUCCESS;
28167 _PUBLIC_ void ndr_print_spoolss_EnumPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterDataEx *r)
28169 uint32_t cntr_info_2;
28170 ndr_print_struct(ndr, name, "spoolss_EnumPrinterDataEx");
28172 if (flags & NDR_SET_VALUES) {
28173 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28175 if (flags & NDR_IN) {
28176 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterDataEx");
28178 ndr_print_ptr(ndr, "handle", r->in.handle);
28180 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28182 ndr_print_string(ndr, "key_name", r->in.key_name);
28183 ndr_print_uint32(ndr, "offered", r->in.offered);
28186 if (flags & NDR_OUT) {
28187 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterDataEx");
28189 ndr_print_ptr(ndr, "count", r->out.count);
28191 ndr_print_uint32(ndr, "count", *r->out.count);
28193 ndr_print_ptr(ndr, "info", r->out.info);
28195 ndr_print_ptr(ndr, "info", *r->out.info);
28197 if (*r->out.info) {
28198 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
28200 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
28202 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
28203 ndr_print_spoolss_PrinterEnumValues(ndr, "info", &(*r->out.info)[cntr_info_2]);
28211 ndr_print_ptr(ndr, "needed", r->out.needed);
28213 ndr_print_uint32(ndr, "needed", *r->out.needed);
28215 ndr_print_WERROR(ndr, "result", r->out.result);
28221 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterKey(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterKey *r)
28223 if (flags & NDR_IN) {
28224 if (r->in.handle == NULL) {
28225 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28227 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28228 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28229 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28230 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28231 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));
28232 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
28234 if (flags & NDR_OUT) {
28235 if (r->out._ndr_size == NULL) {
28236 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28238 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out._ndr_size));
28239 if (r->out.key_buffer == NULL) {
28240 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28243 struct ndr_push *_ndr_key_buffer;
28244 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_key_buffer, 0, *r->out._ndr_size * 2));
28245 NDR_CHECK(ndr_push_set_switch_value(_ndr_key_buffer, r->out.key_buffer, *r->out._ndr_size));
28246 NDR_CHECK(ndr_push_spoolss_KeyNames(_ndr_key_buffer, NDR_SCALARS|NDR_BUFFERS, r->out.key_buffer));
28247 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_key_buffer, 0, *r->out._ndr_size * 2));
28249 if (r->out.needed == NULL) {
28250 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28252 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
28253 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28255 return NDR_ERR_SUCCESS;
28258 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterKey(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterKey *r)
28260 TALLOC_CTX *_mem_save_handle_0;
28261 TALLOC_CTX *_mem_save__ndr_size_0;
28262 TALLOC_CTX *_mem_save_key_buffer_0;
28263 TALLOC_CTX *_mem_save_needed_0;
28264 if (flags & NDR_IN) {
28265 ZERO_STRUCT(r->out);
28267 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28268 NDR_PULL_ALLOC(ndr, r->in.handle);
28270 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28271 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
28272 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28273 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28274 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
28275 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
28276 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
28277 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));
28279 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
28280 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));
28281 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
28282 NDR_PULL_ALLOC(ndr, r->out._ndr_size);
28283 ZERO_STRUCTP(r->out._ndr_size);
28284 NDR_PULL_ALLOC(ndr, r->out.key_buffer);
28285 ZERO_STRUCTP(r->out.key_buffer);
28286 NDR_PULL_ALLOC(ndr, r->out.needed);
28287 ZERO_STRUCTP(r->out.needed);
28289 if (flags & NDR_OUT) {
28290 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28291 NDR_PULL_ALLOC(ndr, r->out._ndr_size);
28293 _mem_save__ndr_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
28294 NDR_PULL_SET_MEM_CTX(ndr, r->out._ndr_size, LIBNDR_FLAG_REF_ALLOC);
28295 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out._ndr_size));
28296 NDR_PULL_SET_MEM_CTX(ndr, _mem_save__ndr_size_0, LIBNDR_FLAG_REF_ALLOC);
28297 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28298 NDR_PULL_ALLOC(ndr, r->out.key_buffer);
28300 _mem_save_key_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
28301 NDR_PULL_SET_MEM_CTX(ndr, r->out.key_buffer, LIBNDR_FLAG_REF_ALLOC);
28303 struct ndr_pull *_ndr_key_buffer;
28304 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_key_buffer, 0, *r->out._ndr_size * 2));
28305 NDR_CHECK(ndr_pull_set_switch_value(_ndr_key_buffer, r->out.key_buffer, *r->out._ndr_size));
28306 NDR_CHECK(ndr_pull_spoolss_KeyNames(_ndr_key_buffer, NDR_SCALARS|NDR_BUFFERS, r->out.key_buffer));
28307 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_key_buffer, 0, *r->out._ndr_size * 2));
28309 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_key_buffer_0, LIBNDR_FLAG_REF_ALLOC);
28310 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28311 NDR_PULL_ALLOC(ndr, r->out.needed);
28313 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
28314 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
28315 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
28316 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
28317 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28319 return NDR_ERR_SUCCESS;
28322 _PUBLIC_ void ndr_print_spoolss_EnumPrinterKey(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterKey *r)
28324 ndr_print_struct(ndr, name, "spoolss_EnumPrinterKey");
28326 if (flags & NDR_SET_VALUES) {
28327 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28329 if (flags & NDR_IN) {
28330 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterKey");
28332 ndr_print_ptr(ndr, "handle", r->in.handle);
28334 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28336 ndr_print_string(ndr, "key_name", r->in.key_name);
28337 ndr_print_uint32(ndr, "offered", r->in.offered);
28340 if (flags & NDR_OUT) {
28341 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterKey");
28343 ndr_print_ptr(ndr, "_ndr_size", r->out._ndr_size);
28345 ndr_print_uint32(ndr, "_ndr_size", *r->out._ndr_size);
28347 ndr_print_ptr(ndr, "key_buffer", r->out.key_buffer);
28349 ndr_print_set_switch_value(ndr, r->out.key_buffer, *r->out._ndr_size);
28350 ndr_print_spoolss_KeyNames(ndr, "key_buffer", r->out.key_buffer);
28352 ndr_print_ptr(ndr, "needed", r->out.needed);
28354 ndr_print_uint32(ndr, "needed", *r->out.needed);
28356 ndr_print_WERROR(ndr, "result", r->out.result);
28362 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDataEx *r)
28364 if (flags & NDR_IN) {
28365 if (r->in.handle == NULL) {
28366 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28368 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28369 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28370 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28371 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28372 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));
28373 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
28374 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28375 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
28376 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));
28378 if (flags & NDR_OUT) {
28379 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28381 return NDR_ERR_SUCCESS;
28384 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDataEx *r)
28386 TALLOC_CTX *_mem_save_handle_0;
28387 if (flags & NDR_IN) {
28388 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28389 NDR_PULL_ALLOC(ndr, r->in.handle);
28391 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28392 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
28393 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28394 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28395 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
28396 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
28397 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
28398 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));
28400 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
28401 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));
28402 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
28403 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
28404 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
28405 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));
28407 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
28408 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));
28410 if (flags & NDR_OUT) {
28411 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28413 return NDR_ERR_SUCCESS;
28416 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDataEx *r)
28418 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDataEx");
28420 if (flags & NDR_SET_VALUES) {
28421 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28423 if (flags & NDR_IN) {
28424 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDataEx");
28426 ndr_print_ptr(ndr, "handle", r->in.handle);
28428 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28430 ndr_print_string(ndr, "key_name", r->in.key_name);
28431 ndr_print_string(ndr, "value_name", r->in.value_name);
28434 if (flags & NDR_OUT) {
28435 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDataEx");
28437 ndr_print_WERROR(ndr, "result", r->out.result);
28443 static enum ndr_err_code ndr_push_spoolss_DeletePrinterKey(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterKey *r)
28445 if (flags & NDR_IN) {
28446 if (r->in.handle == NULL) {
28447 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28449 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28450 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28451 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28452 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28453 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));
28455 if (flags & NDR_OUT) {
28456 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28458 return NDR_ERR_SUCCESS;
28461 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterKey(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterKey *r)
28463 TALLOC_CTX *_mem_save_handle_0;
28464 if (flags & NDR_IN) {
28465 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28466 NDR_PULL_ALLOC(ndr, r->in.handle);
28468 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28469 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
28470 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28471 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28472 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
28473 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
28474 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
28475 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));
28477 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
28478 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));
28480 if (flags & NDR_OUT) {
28481 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28483 return NDR_ERR_SUCCESS;
28486 _PUBLIC_ void ndr_print_spoolss_DeletePrinterKey(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterKey *r)
28488 ndr_print_struct(ndr, name, "spoolss_DeletePrinterKey");
28490 if (flags & NDR_SET_VALUES) {
28491 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28493 if (flags & NDR_IN) {
28494 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterKey");
28496 ndr_print_ptr(ndr, "handle", r->in.handle);
28498 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28500 ndr_print_string(ndr, "key_name", r->in.key_name);
28503 if (flags & NDR_OUT) {
28504 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterKey");
28506 ndr_print_WERROR(ndr, "result", r->out.result);
28512 static enum ndr_err_code ndr_push_spoolss_53(struct ndr_push *ndr, int flags, const struct spoolss_53 *r)
28514 if (flags & NDR_IN) {
28516 if (flags & NDR_OUT) {
28517 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28519 return NDR_ERR_SUCCESS;
28522 static enum ndr_err_code ndr_pull_spoolss_53(struct ndr_pull *ndr, int flags, struct spoolss_53 *r)
28524 if (flags & NDR_IN) {
28526 if (flags & NDR_OUT) {
28527 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28529 return NDR_ERR_SUCCESS;
28532 _PUBLIC_ void ndr_print_spoolss_53(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_53 *r)
28534 ndr_print_struct(ndr, name, "spoolss_53");
28536 if (flags & NDR_SET_VALUES) {
28537 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28539 if (flags & NDR_IN) {
28540 ndr_print_struct(ndr, "in", "spoolss_53");
28544 if (flags & NDR_OUT) {
28545 ndr_print_struct(ndr, "out", "spoolss_53");
28547 ndr_print_WERROR(ndr, "result", r->out.result);
28553 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDriverEx(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDriverEx *r)
28555 if (flags & NDR_IN) {
28556 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
28557 if (r->in.server) {
28558 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
28559 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28560 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
28561 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
28563 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
28564 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28565 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
28566 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
28567 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
28568 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28569 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
28570 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver, ndr_charset_length(r->in.driver, CH_UTF16), sizeof(uint16_t), CH_UTF16));
28571 NDR_CHECK(ndr_push_spoolss_DeleteDriverFlags(ndr, NDR_SCALARS, r->in.delete_flags));
28572 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.version));
28574 if (flags & NDR_OUT) {
28575 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28577 return NDR_ERR_SUCCESS;
28580 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDriverEx(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDriverEx *r)
28582 uint32_t _ptr_server;
28583 TALLOC_CTX *_mem_save_server_0;
28584 if (flags & NDR_IN) {
28585 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
28587 NDR_PULL_ALLOC(ndr, r->in.server);
28589 r->in.server = NULL;
28591 if (r->in.server) {
28592 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
28593 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
28594 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
28595 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
28596 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
28597 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));
28599 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
28600 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
28601 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
28603 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
28604 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
28605 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
28606 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));
28608 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
28609 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
28610 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver));
28611 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.driver));
28612 if (ndr_get_array_length(ndr, &r->in.driver) > ndr_get_array_size(ndr, &r->in.driver)) {
28613 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));
28615 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t)));
28616 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t), CH_UTF16));
28617 NDR_CHECK(ndr_pull_spoolss_DeleteDriverFlags(ndr, NDR_SCALARS, &r->in.delete_flags));
28618 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.version));
28620 if (flags & NDR_OUT) {
28621 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28623 return NDR_ERR_SUCCESS;
28626 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDriverEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDriverEx *r)
28628 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDriverEx");
28630 if (flags & NDR_SET_VALUES) {
28631 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28633 if (flags & NDR_IN) {
28634 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDriverEx");
28636 ndr_print_ptr(ndr, "server", r->in.server);
28638 if (r->in.server) {
28639 ndr_print_string(ndr, "server", r->in.server);
28642 ndr_print_string(ndr, "architecture", r->in.architecture);
28643 ndr_print_string(ndr, "driver", r->in.driver);
28644 ndr_print_spoolss_DeleteDriverFlags(ndr, "delete_flags", r->in.delete_flags);
28645 ndr_print_uint32(ndr, "version", r->in.version);
28648 if (flags & NDR_OUT) {
28649 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDriverEx");
28651 ndr_print_WERROR(ndr, "result", r->out.result);
28657 static enum ndr_err_code ndr_push_spoolss_55(struct ndr_push *ndr, int flags, const struct spoolss_55 *r)
28659 if (flags & NDR_IN) {
28661 if (flags & NDR_OUT) {
28662 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28664 return NDR_ERR_SUCCESS;
28667 static enum ndr_err_code ndr_pull_spoolss_55(struct ndr_pull *ndr, int flags, struct spoolss_55 *r)
28669 if (flags & NDR_IN) {
28671 if (flags & NDR_OUT) {
28672 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28674 return NDR_ERR_SUCCESS;
28677 _PUBLIC_ void ndr_print_spoolss_55(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_55 *r)
28679 ndr_print_struct(ndr, name, "spoolss_55");
28681 if (flags & NDR_SET_VALUES) {
28682 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28684 if (flags & NDR_IN) {
28685 ndr_print_struct(ndr, "in", "spoolss_55");
28689 if (flags & NDR_OUT) {
28690 ndr_print_struct(ndr, "out", "spoolss_55");
28692 ndr_print_WERROR(ndr, "result", r->out.result);
28698 static enum ndr_err_code ndr_push_spoolss_56(struct ndr_push *ndr, int flags, const struct spoolss_56 *r)
28700 if (flags & NDR_IN) {
28702 if (flags & NDR_OUT) {
28703 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28705 return NDR_ERR_SUCCESS;
28708 static enum ndr_err_code ndr_pull_spoolss_56(struct ndr_pull *ndr, int flags, struct spoolss_56 *r)
28710 if (flags & NDR_IN) {
28712 if (flags & NDR_OUT) {
28713 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28715 return NDR_ERR_SUCCESS;
28718 _PUBLIC_ void ndr_print_spoolss_56(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_56 *r)
28720 ndr_print_struct(ndr, name, "spoolss_56");
28722 if (flags & NDR_SET_VALUES) {
28723 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28725 if (flags & NDR_IN) {
28726 ndr_print_struct(ndr, "in", "spoolss_56");
28730 if (flags & NDR_OUT) {
28731 ndr_print_struct(ndr, "out", "spoolss_56");
28733 ndr_print_WERROR(ndr, "result", r->out.result);
28739 static enum ndr_err_code ndr_push_spoolss_57(struct ndr_push *ndr, int flags, const struct spoolss_57 *r)
28741 if (flags & NDR_IN) {
28743 if (flags & NDR_OUT) {
28744 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28746 return NDR_ERR_SUCCESS;
28749 static enum ndr_err_code ndr_pull_spoolss_57(struct ndr_pull *ndr, int flags, struct spoolss_57 *r)
28751 if (flags & NDR_IN) {
28753 if (flags & NDR_OUT) {
28754 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28756 return NDR_ERR_SUCCESS;
28759 _PUBLIC_ void ndr_print_spoolss_57(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_57 *r)
28761 ndr_print_struct(ndr, name, "spoolss_57");
28763 if (flags & NDR_SET_VALUES) {
28764 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28766 if (flags & NDR_IN) {
28767 ndr_print_struct(ndr, "in", "spoolss_57");
28771 if (flags & NDR_OUT) {
28772 ndr_print_struct(ndr, "out", "spoolss_57");
28774 ndr_print_WERROR(ndr, "result", r->out.result);
28780 static enum ndr_err_code ndr_push_spoolss_XcvData(struct ndr_push *ndr, int flags, const struct spoolss_XcvData *r)
28782 if (flags & NDR_IN) {
28783 if (r->in.handle == NULL) {
28784 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28786 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28787 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.function_name, CH_UTF16)));
28788 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28789 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.function_name, CH_UTF16)));
28790 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));
28791 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.in_data));
28792 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.in_data.length));
28793 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.out_data_size));
28794 if (r->in.status_code == NULL) {
28795 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28797 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.status_code));
28799 if (flags & NDR_OUT) {
28800 if (r->out.out_data == NULL) {
28801 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28803 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.out_data_size));
28804 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.out_data, r->in.out_data_size));
28805 if (r->out.needed == NULL) {
28806 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28808 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
28809 if (r->out.status_code == NULL) {
28810 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28812 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.status_code));
28813 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28815 return NDR_ERR_SUCCESS;
28818 static enum ndr_err_code ndr_pull_spoolss_XcvData(struct ndr_pull *ndr, int flags, struct spoolss_XcvData *r)
28820 TALLOC_CTX *_mem_save_handle_0;
28821 TALLOC_CTX *_mem_save_needed_0;
28822 TALLOC_CTX *_mem_save_status_code_0;
28823 if (flags & NDR_IN) {
28824 ZERO_STRUCT(r->out);
28826 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28827 NDR_PULL_ALLOC(ndr, r->in.handle);
28829 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28830 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
28831 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28832 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28833 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.function_name));
28834 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.function_name));
28835 if (ndr_get_array_length(ndr, &r->in.function_name) > ndr_get_array_size(ndr, &r->in.function_name)) {
28836 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));
28838 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.function_name), sizeof(uint16_t)));
28839 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));
28840 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->in.in_data));
28841 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._in_data_length));
28842 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.out_data_size));
28843 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28844 NDR_PULL_ALLOC(ndr, r->in.status_code);
28846 _mem_save_status_code_0 = NDR_PULL_GET_MEM_CTX(ndr);
28847 NDR_PULL_SET_MEM_CTX(ndr, r->in.status_code, LIBNDR_FLAG_REF_ALLOC);
28848 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.status_code));
28849 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_code_0, LIBNDR_FLAG_REF_ALLOC);
28850 NDR_PULL_ALLOC_N(ndr, r->out.out_data, r->in.out_data_size);
28851 memset(r->out.out_data, 0, (r->in.out_data_size) * sizeof(*r->out.out_data));
28852 NDR_PULL_ALLOC(ndr, r->out.needed);
28853 ZERO_STRUCTP(r->out.needed);
28854 NDR_PULL_ALLOC(ndr, r->out.status_code);
28855 *r->out.status_code = *r->in.status_code;
28857 if (flags & NDR_OUT) {
28858 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.out_data));
28859 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28860 NDR_PULL_ALLOC_N(ndr, r->out.out_data, ndr_get_array_size(ndr, &r->out.out_data));
28862 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.out_data, ndr_get_array_size(ndr, &r->out.out_data)));
28863 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28864 NDR_PULL_ALLOC(ndr, r->out.needed);
28866 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
28867 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
28868 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
28869 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
28870 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28871 NDR_PULL_ALLOC(ndr, r->out.status_code);
28873 _mem_save_status_code_0 = NDR_PULL_GET_MEM_CTX(ndr);
28874 NDR_PULL_SET_MEM_CTX(ndr, r->out.status_code, LIBNDR_FLAG_REF_ALLOC);
28875 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.status_code));
28876 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_code_0, LIBNDR_FLAG_REF_ALLOC);
28877 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28878 if (r->out.out_data) {
28879 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.out_data, r->in.out_data_size));
28882 return NDR_ERR_SUCCESS;
28885 _PUBLIC_ void ndr_print_spoolss_XcvData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_XcvData *r)
28887 ndr_print_struct(ndr, name, "spoolss_XcvData");
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_XcvData");
28895 ndr_print_ptr(ndr, "handle", r->in.handle);
28897 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28899 ndr_print_string(ndr, "function_name", r->in.function_name);
28900 ndr_print_DATA_BLOB(ndr, "in_data", r->in.in_data);
28901 ndr_print_uint32(ndr, "_in_data_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->in.in_data.length:r->in._in_data_length);
28902 ndr_print_uint32(ndr, "out_data_size", r->in.out_data_size);
28903 ndr_print_ptr(ndr, "status_code", r->in.status_code);
28905 ndr_print_uint32(ndr, "status_code", *r->in.status_code);
28909 if (flags & NDR_OUT) {
28910 ndr_print_struct(ndr, "out", "spoolss_XcvData");
28912 ndr_print_ptr(ndr, "out_data", r->out.out_data);
28914 ndr_print_array_uint8(ndr, "out_data", r->out.out_data, r->in.out_data_size);
28916 ndr_print_ptr(ndr, "needed", r->out.needed);
28918 ndr_print_uint32(ndr, "needed", *r->out.needed);
28920 ndr_print_ptr(ndr, "status_code", r->out.status_code);
28922 ndr_print_uint32(ndr, "status_code", *r->out.status_code);
28924 ndr_print_WERROR(ndr, "result", r->out.result);
28930 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_AddPrinterDriverEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterDriverEx *r)
28932 if (flags & NDR_IN) {
28933 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
28934 if (r->in.servername) {
28935 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
28936 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28937 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
28938 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
28940 if (r->in.info_ctr == NULL) {
28941 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28943 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
28944 NDR_CHECK(ndr_push_spoolss_AddPrinterDriverExFlags(ndr, NDR_SCALARS, r->in.flags));
28946 if (flags & NDR_OUT) {
28947 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28949 return NDR_ERR_SUCCESS;
28952 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_AddPrinterDriverEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterDriverEx *r)
28954 uint32_t _ptr_servername;
28955 TALLOC_CTX *_mem_save_servername_0;
28956 TALLOC_CTX *_mem_save_info_ctr_0;
28957 if (flags & NDR_IN) {
28958 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
28959 if (_ptr_servername) {
28960 NDR_PULL_ALLOC(ndr, r->in.servername);
28962 r->in.servername = NULL;
28964 if (r->in.servername) {
28965 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
28966 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
28967 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
28968 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
28969 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
28970 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));
28972 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
28973 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
28974 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
28976 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28977 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
28979 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
28980 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
28981 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
28982 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
28983 NDR_CHECK(ndr_pull_spoolss_AddPrinterDriverExFlags(ndr, NDR_SCALARS, &r->in.flags));
28985 if (flags & NDR_OUT) {
28986 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28988 return NDR_ERR_SUCCESS;
28991 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriverEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterDriverEx *r)
28993 ndr_print_struct(ndr, name, "spoolss_AddPrinterDriverEx");
28995 if (flags & NDR_SET_VALUES) {
28996 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28998 if (flags & NDR_IN) {
28999 ndr_print_struct(ndr, "in", "spoolss_AddPrinterDriverEx");
29001 ndr_print_ptr(ndr, "servername", r->in.servername);
29003 if (r->in.servername) {
29004 ndr_print_string(ndr, "servername", r->in.servername);
29007 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
29009 ndr_print_spoolss_AddDriverInfoCtr(ndr, "info_ctr", r->in.info_ctr);
29011 ndr_print_spoolss_AddPrinterDriverExFlags(ndr, "flags", r->in.flags);
29014 if (flags & NDR_OUT) {
29015 ndr_print_struct(ndr, "out", "spoolss_AddPrinterDriverEx");
29017 ndr_print_WERROR(ndr, "result", r->out.result);
29023 static enum ndr_err_code ndr_push_spoolss_5a(struct ndr_push *ndr, int flags, const struct spoolss_5a *r)
29025 if (flags & NDR_IN) {
29027 if (flags & NDR_OUT) {
29028 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29030 return NDR_ERR_SUCCESS;
29033 static enum ndr_err_code ndr_pull_spoolss_5a(struct ndr_pull *ndr, int flags, struct spoolss_5a *r)
29035 if (flags & NDR_IN) {
29037 if (flags & NDR_OUT) {
29038 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29040 return NDR_ERR_SUCCESS;
29043 _PUBLIC_ void ndr_print_spoolss_5a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5a *r)
29045 ndr_print_struct(ndr, name, "spoolss_5a");
29047 if (flags & NDR_SET_VALUES) {
29048 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29050 if (flags & NDR_IN) {
29051 ndr_print_struct(ndr, "in", "spoolss_5a");
29055 if (flags & NDR_OUT) {
29056 ndr_print_struct(ndr, "out", "spoolss_5a");
29058 ndr_print_WERROR(ndr, "result", r->out.result);
29064 static enum ndr_err_code ndr_push_spoolss_5b(struct ndr_push *ndr, int flags, const struct spoolss_5b *r)
29066 if (flags & NDR_IN) {
29068 if (flags & NDR_OUT) {
29069 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29071 return NDR_ERR_SUCCESS;
29074 static enum ndr_err_code ndr_pull_spoolss_5b(struct ndr_pull *ndr, int flags, struct spoolss_5b *r)
29076 if (flags & NDR_IN) {
29078 if (flags & NDR_OUT) {
29079 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29081 return NDR_ERR_SUCCESS;
29084 _PUBLIC_ void ndr_print_spoolss_5b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5b *r)
29086 ndr_print_struct(ndr, name, "spoolss_5b");
29088 if (flags & NDR_SET_VALUES) {
29089 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29091 if (flags & NDR_IN) {
29092 ndr_print_struct(ndr, "in", "spoolss_5b");
29096 if (flags & NDR_OUT) {
29097 ndr_print_struct(ndr, "out", "spoolss_5b");
29099 ndr_print_WERROR(ndr, "result", r->out.result);
29105 static enum ndr_err_code ndr_push_spoolss_5c(struct ndr_push *ndr, int flags, const struct spoolss_5c *r)
29107 if (flags & NDR_IN) {
29109 if (flags & NDR_OUT) {
29110 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29112 return NDR_ERR_SUCCESS;
29115 static enum ndr_err_code ndr_pull_spoolss_5c(struct ndr_pull *ndr, int flags, struct spoolss_5c *r)
29117 if (flags & NDR_IN) {
29119 if (flags & NDR_OUT) {
29120 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29122 return NDR_ERR_SUCCESS;
29125 _PUBLIC_ void ndr_print_spoolss_5c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5c *r)
29127 ndr_print_struct(ndr, name, "spoolss_5c");
29129 if (flags & NDR_SET_VALUES) {
29130 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29132 if (flags & NDR_IN) {
29133 ndr_print_struct(ndr, "in", "spoolss_5c");
29137 if (flags & NDR_OUT) {
29138 ndr_print_struct(ndr, "out", "spoolss_5c");
29140 ndr_print_WERROR(ndr, "result", r->out.result);
29146 static enum ndr_err_code ndr_push_spoolss_5d(struct ndr_push *ndr, int flags, const struct spoolss_5d *r)
29148 if (flags & NDR_IN) {
29150 if (flags & NDR_OUT) {
29151 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29153 return NDR_ERR_SUCCESS;
29156 static enum ndr_err_code ndr_pull_spoolss_5d(struct ndr_pull *ndr, int flags, struct spoolss_5d *r)
29158 if (flags & NDR_IN) {
29160 if (flags & NDR_OUT) {
29161 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29163 return NDR_ERR_SUCCESS;
29166 _PUBLIC_ void ndr_print_spoolss_5d(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5d *r)
29168 ndr_print_struct(ndr, name, "spoolss_5d");
29170 if (flags & NDR_SET_VALUES) {
29171 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29173 if (flags & NDR_IN) {
29174 ndr_print_struct(ndr, "in", "spoolss_5d");
29178 if (flags & NDR_OUT) {
29179 ndr_print_struct(ndr, "out", "spoolss_5d");
29181 ndr_print_WERROR(ndr, "result", r->out.result);
29187 static enum ndr_err_code ndr_push_spoolss_5e(struct ndr_push *ndr, int flags, const struct spoolss_5e *r)
29189 if (flags & NDR_IN) {
29191 if (flags & NDR_OUT) {
29192 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29194 return NDR_ERR_SUCCESS;
29197 static enum ndr_err_code ndr_pull_spoolss_5e(struct ndr_pull *ndr, int flags, struct spoolss_5e *r)
29199 if (flags & NDR_IN) {
29201 if (flags & NDR_OUT) {
29202 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29204 return NDR_ERR_SUCCESS;
29207 _PUBLIC_ void ndr_print_spoolss_5e(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5e *r)
29209 ndr_print_struct(ndr, name, "spoolss_5e");
29211 if (flags & NDR_SET_VALUES) {
29212 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29214 if (flags & NDR_IN) {
29215 ndr_print_struct(ndr, "in", "spoolss_5e");
29219 if (flags & NDR_OUT) {
29220 ndr_print_struct(ndr, "out", "spoolss_5e");
29222 ndr_print_WERROR(ndr, "result", r->out.result);
29228 static enum ndr_err_code ndr_push_spoolss_5f(struct ndr_push *ndr, int flags, const struct spoolss_5f *r)
29230 if (flags & NDR_IN) {
29232 if (flags & NDR_OUT) {
29233 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29235 return NDR_ERR_SUCCESS;
29238 static enum ndr_err_code ndr_pull_spoolss_5f(struct ndr_pull *ndr, int flags, struct spoolss_5f *r)
29240 if (flags & NDR_IN) {
29242 if (flags & NDR_OUT) {
29243 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29245 return NDR_ERR_SUCCESS;
29248 _PUBLIC_ void ndr_print_spoolss_5f(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5f *r)
29250 ndr_print_struct(ndr, name, "spoolss_5f");
29252 if (flags & NDR_SET_VALUES) {
29253 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29255 if (flags & NDR_IN) {
29256 ndr_print_struct(ndr, "in", "spoolss_5f");
29260 if (flags & NDR_OUT) {
29261 ndr_print_struct(ndr, "out", "spoolss_5f");
29263 ndr_print_WERROR(ndr, "result", r->out.result);
29269 static enum ndr_err_code ndr_push_spoolss_60(struct ndr_push *ndr, int flags, const struct spoolss_60 *r)
29271 if (flags & NDR_IN) {
29273 if (flags & NDR_OUT) {
29274 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29276 return NDR_ERR_SUCCESS;
29279 static enum ndr_err_code ndr_pull_spoolss_60(struct ndr_pull *ndr, int flags, struct spoolss_60 *r)
29281 if (flags & NDR_IN) {
29283 if (flags & NDR_OUT) {
29284 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29286 return NDR_ERR_SUCCESS;
29289 _PUBLIC_ void ndr_print_spoolss_60(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_60 *r)
29291 ndr_print_struct(ndr, name, "spoolss_60");
29293 if (flags & NDR_SET_VALUES) {
29294 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29296 if (flags & NDR_IN) {
29297 ndr_print_struct(ndr, "in", "spoolss_60");
29301 if (flags & NDR_OUT) {
29302 ndr_print_struct(ndr, "out", "spoolss_60");
29304 ndr_print_WERROR(ndr, "result", r->out.result);
29310 static enum ndr_err_code ndr_push_spoolss_61(struct ndr_push *ndr, int flags, const struct spoolss_61 *r)
29312 if (flags & NDR_IN) {
29314 if (flags & NDR_OUT) {
29315 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29317 return NDR_ERR_SUCCESS;
29320 static enum ndr_err_code ndr_pull_spoolss_61(struct ndr_pull *ndr, int flags, struct spoolss_61 *r)
29322 if (flags & NDR_IN) {
29324 if (flags & NDR_OUT) {
29325 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29327 return NDR_ERR_SUCCESS;
29330 _PUBLIC_ void ndr_print_spoolss_61(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_61 *r)
29332 ndr_print_struct(ndr, name, "spoolss_61");
29334 if (flags & NDR_SET_VALUES) {
29335 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29337 if (flags & NDR_IN) {
29338 ndr_print_struct(ndr, "in", "spoolss_61");
29342 if (flags & NDR_OUT) {
29343 ndr_print_struct(ndr, "out", "spoolss_61");
29345 ndr_print_WERROR(ndr, "result", r->out.result);
29351 static enum ndr_err_code ndr_push_spoolss_62(struct ndr_push *ndr, int flags, const struct spoolss_62 *r)
29353 if (flags & NDR_IN) {
29355 if (flags & NDR_OUT) {
29356 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29358 return NDR_ERR_SUCCESS;
29361 static enum ndr_err_code ndr_pull_spoolss_62(struct ndr_pull *ndr, int flags, struct spoolss_62 *r)
29363 if (flags & NDR_IN) {
29365 if (flags & NDR_OUT) {
29366 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29368 return NDR_ERR_SUCCESS;
29371 _PUBLIC_ void ndr_print_spoolss_62(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_62 *r)
29373 ndr_print_struct(ndr, name, "spoolss_62");
29375 if (flags & NDR_SET_VALUES) {
29376 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29378 if (flags & NDR_IN) {
29379 ndr_print_struct(ndr, "in", "spoolss_62");
29383 if (flags & NDR_OUT) {
29384 ndr_print_struct(ndr, "out", "spoolss_62");
29386 ndr_print_WERROR(ndr, "result", r->out.result);
29392 static enum ndr_err_code ndr_push_spoolss_63(struct ndr_push *ndr, int flags, const struct spoolss_63 *r)
29394 if (flags & NDR_IN) {
29396 if (flags & NDR_OUT) {
29397 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29399 return NDR_ERR_SUCCESS;
29402 static enum ndr_err_code ndr_pull_spoolss_63(struct ndr_pull *ndr, int flags, struct spoolss_63 *r)
29404 if (flags & NDR_IN) {
29406 if (flags & NDR_OUT) {
29407 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29409 return NDR_ERR_SUCCESS;
29412 _PUBLIC_ void ndr_print_spoolss_63(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_63 *r)
29414 ndr_print_struct(ndr, name, "spoolss_63");
29416 if (flags & NDR_SET_VALUES) {
29417 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29419 if (flags & NDR_IN) {
29420 ndr_print_struct(ndr, "in", "spoolss_63");
29424 if (flags & NDR_OUT) {
29425 ndr_print_struct(ndr, "out", "spoolss_63");
29427 ndr_print_WERROR(ndr, "result", r->out.result);
29433 static enum ndr_err_code ndr_push_spoolss_64(struct ndr_push *ndr, int flags, const struct spoolss_64 *r)
29435 if (flags & NDR_IN) {
29437 if (flags & NDR_OUT) {
29438 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29440 return NDR_ERR_SUCCESS;
29443 static enum ndr_err_code ndr_pull_spoolss_64(struct ndr_pull *ndr, int flags, struct spoolss_64 *r)
29445 if (flags & NDR_IN) {
29447 if (flags & NDR_OUT) {
29448 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29450 return NDR_ERR_SUCCESS;
29453 _PUBLIC_ void ndr_print_spoolss_64(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_64 *r)
29455 ndr_print_struct(ndr, name, "spoolss_64");
29457 if (flags & NDR_SET_VALUES) {
29458 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29460 if (flags & NDR_IN) {
29461 ndr_print_struct(ndr, "in", "spoolss_64");
29465 if (flags & NDR_OUT) {
29466 ndr_print_struct(ndr, "out", "spoolss_64");
29468 ndr_print_WERROR(ndr, "result", r->out.result);
29474 static enum ndr_err_code ndr_push_spoolss_65(struct ndr_push *ndr, int flags, const struct spoolss_65 *r)
29476 if (flags & NDR_IN) {
29478 if (flags & NDR_OUT) {
29479 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29481 return NDR_ERR_SUCCESS;
29484 static enum ndr_err_code ndr_pull_spoolss_65(struct ndr_pull *ndr, int flags, struct spoolss_65 *r)
29486 if (flags & NDR_IN) {
29488 if (flags & NDR_OUT) {
29489 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29491 return NDR_ERR_SUCCESS;
29494 _PUBLIC_ void ndr_print_spoolss_65(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_65 *r)
29496 ndr_print_struct(ndr, name, "spoolss_65");
29498 if (flags & NDR_SET_VALUES) {
29499 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29501 if (flags & NDR_IN) {
29502 ndr_print_struct(ndr, "in", "spoolss_65");
29506 if (flags & NDR_OUT) {
29507 ndr_print_struct(ndr, "out", "spoolss_65");
29509 ndr_print_WERROR(ndr, "result", r->out.result);
29515 static enum ndr_err_code ndr_push_spoolss_GetCorePrinterDrivers(struct ndr_push *ndr, int flags, const struct spoolss_GetCorePrinterDrivers *r)
29517 uint32_t cntr_core_printer_drivers_1;
29518 if (flags & NDR_IN) {
29519 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
29520 if (r->in.servername) {
29521 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
29522 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29523 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
29524 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
29526 if (r->in.architecture == NULL) {
29527 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29529 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
29530 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29531 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
29532 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
29533 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.core_driver_size));
29534 if (r->in.core_driver_dependencies == NULL) {
29535 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29537 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.core_driver_size));
29538 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.core_driver_dependencies, r->in.core_driver_size, sizeof(uint16_t), CH_UTF16));
29539 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.core_printer_driver_count));
29541 if (flags & NDR_OUT) {
29542 if (r->out.core_printer_drivers == NULL) {
29543 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29545 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.core_printer_driver_count));
29546 for (cntr_core_printer_drivers_1 = 0; cntr_core_printer_drivers_1 < r->in.core_printer_driver_count; cntr_core_printer_drivers_1++) {
29547 NDR_CHECK(ndr_push_spoolss_CorePrinterDriver(ndr, NDR_SCALARS, &r->out.core_printer_drivers[cntr_core_printer_drivers_1]));
29549 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29551 return NDR_ERR_SUCCESS;
29554 static enum ndr_err_code ndr_pull_spoolss_GetCorePrinterDrivers(struct ndr_pull *ndr, int flags, struct spoolss_GetCorePrinterDrivers *r)
29556 uint32_t _ptr_servername;
29557 uint32_t cntr_core_printer_drivers_1;
29558 TALLOC_CTX *_mem_save_servername_0;
29559 TALLOC_CTX *_mem_save_core_printer_drivers_1;
29560 if (flags & NDR_IN) {
29561 ZERO_STRUCT(r->out);
29563 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
29564 if (_ptr_servername) {
29565 NDR_PULL_ALLOC(ndr, r->in.servername);
29567 r->in.servername = NULL;
29569 if (r->in.servername) {
29570 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
29571 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
29572 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
29573 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
29574 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
29575 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));
29577 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
29578 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
29579 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
29581 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
29582 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
29583 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
29584 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));
29586 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
29587 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
29588 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.core_driver_size));
29589 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.core_driver_dependencies));
29590 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));
29591 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.core_printer_driver_count));
29592 NDR_PULL_ALLOC_N(ndr, r->out.core_printer_drivers, r->in.core_printer_driver_count);
29593 memset(r->out.core_printer_drivers, 0, (r->in.core_printer_driver_count) * sizeof(*r->out.core_printer_drivers));
29594 if (r->in.core_driver_dependencies) {
29595 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.core_driver_dependencies, r->in.core_driver_size));
29598 if (flags & NDR_OUT) {
29599 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.core_printer_drivers));
29600 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29601 NDR_PULL_ALLOC_N(ndr, r->out.core_printer_drivers, ndr_get_array_size(ndr, &r->out.core_printer_drivers));
29603 _mem_save_core_printer_drivers_1 = NDR_PULL_GET_MEM_CTX(ndr);
29604 NDR_PULL_SET_MEM_CTX(ndr, r->out.core_printer_drivers, 0);
29605 for (cntr_core_printer_drivers_1 = 0; cntr_core_printer_drivers_1 < r->in.core_printer_driver_count; cntr_core_printer_drivers_1++) {
29606 NDR_CHECK(ndr_pull_spoolss_CorePrinterDriver(ndr, NDR_SCALARS, &r->out.core_printer_drivers[cntr_core_printer_drivers_1]));
29608 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_printer_drivers_1, 0);
29609 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29610 if (r->out.core_printer_drivers) {
29611 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.core_printer_drivers, r->in.core_printer_driver_count));
29614 return NDR_ERR_SUCCESS;
29617 _PUBLIC_ void ndr_print_spoolss_GetCorePrinterDrivers(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetCorePrinterDrivers *r)
29619 uint32_t cntr_core_printer_drivers_1;
29620 ndr_print_struct(ndr, name, "spoolss_GetCorePrinterDrivers");
29622 if (flags & NDR_SET_VALUES) {
29623 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29625 if (flags & NDR_IN) {
29626 ndr_print_struct(ndr, "in", "spoolss_GetCorePrinterDrivers");
29628 ndr_print_ptr(ndr, "servername", r->in.servername);
29630 if (r->in.servername) {
29631 ndr_print_string(ndr, "servername", r->in.servername);
29634 ndr_print_ptr(ndr, "architecture", r->in.architecture);
29636 ndr_print_string(ndr, "architecture", r->in.architecture);
29638 ndr_print_uint32(ndr, "core_driver_size", r->in.core_driver_size);
29639 ndr_print_ptr(ndr, "core_driver_dependencies", r->in.core_driver_dependencies);
29641 ndr_print_string(ndr, "core_driver_dependencies", r->in.core_driver_dependencies);
29643 ndr_print_uint32(ndr, "core_printer_driver_count", r->in.core_printer_driver_count);
29646 if (flags & NDR_OUT) {
29647 ndr_print_struct(ndr, "out", "spoolss_GetCorePrinterDrivers");
29649 ndr_print_ptr(ndr, "core_printer_drivers", r->out.core_printer_drivers);
29651 ndr->print(ndr, "%s: ARRAY(%d)", "core_printer_drivers", (int)r->in.core_printer_driver_count);
29653 for (cntr_core_printer_drivers_1=0;cntr_core_printer_drivers_1<r->in.core_printer_driver_count;cntr_core_printer_drivers_1++) {
29655 if (asprintf(&idx_1, "[%d]", cntr_core_printer_drivers_1) != -1) {
29656 ndr_print_spoolss_CorePrinterDriver(ndr, "core_printer_drivers", &r->out.core_printer_drivers[cntr_core_printer_drivers_1]);
29662 ndr_print_WERROR(ndr, "result", r->out.result);
29668 static enum ndr_err_code ndr_push_spoolss_67(struct ndr_push *ndr, int flags, const struct spoolss_67 *r)
29670 if (flags & NDR_IN) {
29672 if (flags & NDR_OUT) {
29673 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29675 return NDR_ERR_SUCCESS;
29678 static enum ndr_err_code ndr_pull_spoolss_67(struct ndr_pull *ndr, int flags, struct spoolss_67 *r)
29680 if (flags & NDR_IN) {
29682 if (flags & NDR_OUT) {
29683 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29685 return NDR_ERR_SUCCESS;
29688 _PUBLIC_ void ndr_print_spoolss_67(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_67 *r)
29690 ndr_print_struct(ndr, name, "spoolss_67");
29692 if (flags & NDR_SET_VALUES) {
29693 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29695 if (flags & NDR_IN) {
29696 ndr_print_struct(ndr, "in", "spoolss_67");
29700 if (flags & NDR_OUT) {
29701 ndr_print_struct(ndr, "out", "spoolss_67");
29703 ndr_print_WERROR(ndr, "result", r->out.result);
29709 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriverPackagePath(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriverPackagePath *r)
29711 if (flags & NDR_IN) {
29712 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
29713 if (r->in.servername) {
29714 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
29715 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29716 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
29717 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
29719 if (r->in.architecture == NULL) {
29720 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29722 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
29723 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29724 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
29725 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
29726 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.language));
29727 if (r->in.language) {
29728 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.language, CH_UTF16)));
29729 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29730 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.language, CH_UTF16)));
29731 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.language, ndr_charset_length(r->in.language, CH_UTF16), sizeof(uint16_t), CH_UTF16));
29733 if (r->in.package_id == NULL) {
29734 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29736 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.package_id, CH_UTF16)));
29737 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29738 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.package_id, CH_UTF16)));
29739 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));
29740 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.driver_package_cab));
29741 if (r->in.driver_package_cab) {
29742 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.driver_package_cab_size));
29743 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver_package_cab, r->in.driver_package_cab_size, sizeof(uint16_t), CH_UTF16));
29745 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.driver_package_cab_size));
29747 if (flags & NDR_OUT) {
29748 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.driver_package_cab));
29749 if (r->out.driver_package_cab) {
29750 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.driver_package_cab_size));
29751 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->out.driver_package_cab, r->in.driver_package_cab_size, sizeof(uint16_t), CH_UTF16));
29753 if (r->out.required == NULL) {
29754 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29756 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.required));
29757 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29759 return NDR_ERR_SUCCESS;
29762 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriverPackagePath(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriverPackagePath *r)
29764 uint32_t _ptr_servername;
29765 uint32_t _ptr_language;
29766 uint32_t _ptr_driver_package_cab;
29767 TALLOC_CTX *_mem_save_servername_0;
29768 TALLOC_CTX *_mem_save_language_0;
29769 TALLOC_CTX *_mem_save_driver_package_cab_0;
29770 TALLOC_CTX *_mem_save_required_0;
29771 if (flags & NDR_IN) {
29772 ZERO_STRUCT(r->out);
29774 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
29775 if (_ptr_servername) {
29776 NDR_PULL_ALLOC(ndr, r->in.servername);
29778 r->in.servername = NULL;
29780 if (r->in.servername) {
29781 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
29782 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
29783 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
29784 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
29785 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
29786 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));
29788 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
29789 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
29790 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
29792 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
29793 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
29794 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
29795 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));
29797 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
29798 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
29799 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_language));
29800 if (_ptr_language) {
29801 NDR_PULL_ALLOC(ndr, r->in.language);
29803 r->in.language = NULL;
29805 if (r->in.language) {
29806 _mem_save_language_0 = NDR_PULL_GET_MEM_CTX(ndr);
29807 NDR_PULL_SET_MEM_CTX(ndr, r->in.language, 0);
29808 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.language));
29809 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.language));
29810 if (ndr_get_array_length(ndr, &r->in.language) > ndr_get_array_size(ndr, &r->in.language)) {
29811 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));
29813 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.language), sizeof(uint16_t)));
29814 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.language, ndr_get_array_length(ndr, &r->in.language), sizeof(uint16_t), CH_UTF16));
29815 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_language_0, 0);
29817 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.package_id));
29818 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.package_id));
29819 if (ndr_get_array_length(ndr, &r->in.package_id) > ndr_get_array_size(ndr, &r->in.package_id)) {
29820 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));
29822 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.package_id), sizeof(uint16_t)));
29823 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));
29824 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_package_cab));
29825 if (_ptr_driver_package_cab) {
29826 NDR_PULL_ALLOC(ndr, r->in.driver_package_cab);
29828 r->in.driver_package_cab = NULL;
29830 if (r->in.driver_package_cab) {
29831 _mem_save_driver_package_cab_0 = NDR_PULL_GET_MEM_CTX(ndr);
29832 NDR_PULL_SET_MEM_CTX(ndr, r->in.driver_package_cab, 0);
29833 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver_package_cab));
29834 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));
29835 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_package_cab_0, 0);
29837 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.driver_package_cab_size));
29838 NDR_PULL_ALLOC(ndr, r->out.required);
29839 ZERO_STRUCTP(r->out.required);
29840 if (r->in.driver_package_cab) {
29841 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.driver_package_cab, r->in.driver_package_cab_size));
29844 if (flags & NDR_OUT) {
29845 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_package_cab));
29846 if (_ptr_driver_package_cab) {
29847 NDR_PULL_ALLOC(ndr, r->out.driver_package_cab);
29849 r->out.driver_package_cab = NULL;
29851 if (r->out.driver_package_cab) {
29852 _mem_save_driver_package_cab_0 = NDR_PULL_GET_MEM_CTX(ndr);
29853 NDR_PULL_SET_MEM_CTX(ndr, r->out.driver_package_cab, 0);
29854 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.driver_package_cab));
29855 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));
29856 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_package_cab_0, 0);
29858 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29859 NDR_PULL_ALLOC(ndr, r->out.required);
29861 _mem_save_required_0 = NDR_PULL_GET_MEM_CTX(ndr);
29862 NDR_PULL_SET_MEM_CTX(ndr, r->out.required, LIBNDR_FLAG_REF_ALLOC);
29863 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.required));
29864 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_required_0, LIBNDR_FLAG_REF_ALLOC);
29865 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29866 if (r->out.driver_package_cab) {
29867 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.driver_package_cab, r->in.driver_package_cab_size));
29870 return NDR_ERR_SUCCESS;
29873 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriverPackagePath(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriverPackagePath *r)
29875 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriverPackagePath");
29877 if (flags & NDR_SET_VALUES) {
29878 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29880 if (flags & NDR_IN) {
29881 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriverPackagePath");
29883 ndr_print_ptr(ndr, "servername", r->in.servername);
29885 if (r->in.servername) {
29886 ndr_print_string(ndr, "servername", r->in.servername);
29889 ndr_print_ptr(ndr, "architecture", r->in.architecture);
29891 ndr_print_string(ndr, "architecture", r->in.architecture);
29893 ndr_print_ptr(ndr, "language", r->in.language);
29895 if (r->in.language) {
29896 ndr_print_string(ndr, "language", r->in.language);
29899 ndr_print_ptr(ndr, "package_id", r->in.package_id);
29901 ndr_print_string(ndr, "package_id", r->in.package_id);
29903 ndr_print_ptr(ndr, "driver_package_cab", r->in.driver_package_cab);
29905 if (r->in.driver_package_cab) {
29906 ndr_print_string(ndr, "driver_package_cab", r->in.driver_package_cab);
29909 ndr_print_uint32(ndr, "driver_package_cab_size", r->in.driver_package_cab_size);
29912 if (flags & NDR_OUT) {
29913 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriverPackagePath");
29915 ndr_print_ptr(ndr, "driver_package_cab", r->out.driver_package_cab);
29917 if (r->out.driver_package_cab) {
29918 ndr_print_string(ndr, "driver_package_cab", r->out.driver_package_cab);
29921 ndr_print_ptr(ndr, "required", r->out.required);
29923 ndr_print_uint32(ndr, "required", *r->out.required);
29925 ndr_print_WERROR(ndr, "result", r->out.result);
29931 static enum ndr_err_code ndr_push_spoolss_69(struct ndr_push *ndr, int flags, const struct spoolss_69 *r)
29933 if (flags & NDR_IN) {
29935 if (flags & NDR_OUT) {
29936 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29938 return NDR_ERR_SUCCESS;
29941 static enum ndr_err_code ndr_pull_spoolss_69(struct ndr_pull *ndr, int flags, struct spoolss_69 *r)
29943 if (flags & NDR_IN) {
29945 if (flags & NDR_OUT) {
29946 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29948 return NDR_ERR_SUCCESS;
29951 _PUBLIC_ void ndr_print_spoolss_69(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_69 *r)
29953 ndr_print_struct(ndr, name, "spoolss_69");
29955 if (flags & NDR_SET_VALUES) {
29956 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29958 if (flags & NDR_IN) {
29959 ndr_print_struct(ndr, "in", "spoolss_69");
29963 if (flags & NDR_OUT) {
29964 ndr_print_struct(ndr, "out", "spoolss_69");
29966 ndr_print_WERROR(ndr, "result", r->out.result);
29972 static enum ndr_err_code ndr_push_spoolss_6a(struct ndr_push *ndr, int flags, const struct spoolss_6a *r)
29974 if (flags & NDR_IN) {
29976 if (flags & NDR_OUT) {
29977 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29979 return NDR_ERR_SUCCESS;
29982 static enum ndr_err_code ndr_pull_spoolss_6a(struct ndr_pull *ndr, int flags, struct spoolss_6a *r)
29984 if (flags & NDR_IN) {
29986 if (flags & NDR_OUT) {
29987 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29989 return NDR_ERR_SUCCESS;
29992 _PUBLIC_ void ndr_print_spoolss_6a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_6a *r)
29994 ndr_print_struct(ndr, name, "spoolss_6a");
29996 if (flags & NDR_SET_VALUES) {
29997 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29999 if (flags & NDR_IN) {
30000 ndr_print_struct(ndr, "in", "spoolss_6a");
30004 if (flags & NDR_OUT) {
30005 ndr_print_struct(ndr, "out", "spoolss_6a");
30007 ndr_print_WERROR(ndr, "result", r->out.result);
30013 static enum ndr_err_code ndr_push_spoolss_6b(struct ndr_push *ndr, int flags, const struct spoolss_6b *r)
30015 if (flags & NDR_IN) {
30017 if (flags & NDR_OUT) {
30018 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30020 return NDR_ERR_SUCCESS;
30023 static enum ndr_err_code ndr_pull_spoolss_6b(struct ndr_pull *ndr, int flags, struct spoolss_6b *r)
30025 if (flags & NDR_IN) {
30027 if (flags & NDR_OUT) {
30028 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30030 return NDR_ERR_SUCCESS;
30033 _PUBLIC_ void ndr_print_spoolss_6b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_6b *r)
30035 ndr_print_struct(ndr, name, "spoolss_6b");
30037 if (flags & NDR_SET_VALUES) {
30038 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30040 if (flags & NDR_IN) {
30041 ndr_print_struct(ndr, "in", "spoolss_6b");
30045 if (flags & NDR_OUT) {
30046 ndr_print_struct(ndr, "out", "spoolss_6b");
30048 ndr_print_WERROR(ndr, "result", r->out.result);
30054 static enum ndr_err_code ndr_push_spoolss_6c(struct ndr_push *ndr, int flags, const struct spoolss_6c *r)
30056 if (flags & NDR_IN) {
30058 if (flags & NDR_OUT) {
30059 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30061 return NDR_ERR_SUCCESS;
30064 static enum ndr_err_code ndr_pull_spoolss_6c(struct ndr_pull *ndr, int flags, struct spoolss_6c *r)
30066 if (flags & NDR_IN) {
30068 if (flags & NDR_OUT) {
30069 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30071 return NDR_ERR_SUCCESS;
30074 _PUBLIC_ void ndr_print_spoolss_6c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_6c *r)
30076 ndr_print_struct(ndr, name, "spoolss_6c");
30078 if (flags & NDR_SET_VALUES) {
30079 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30081 if (flags & NDR_IN) {
30082 ndr_print_struct(ndr, "in", "spoolss_6c");
30086 if (flags & NDR_OUT) {
30087 ndr_print_struct(ndr, "out", "spoolss_6c");
30089 ndr_print_WERROR(ndr, "result", r->out.result);
30095 static enum ndr_err_code ndr_push_spoolss_6d(struct ndr_push *ndr, int flags, const struct spoolss_6d *r)
30097 if (flags & NDR_IN) {
30099 if (flags & NDR_OUT) {
30100 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30102 return NDR_ERR_SUCCESS;
30105 static enum ndr_err_code ndr_pull_spoolss_6d(struct ndr_pull *ndr, int flags, struct spoolss_6d *r)
30107 if (flags & NDR_IN) {
30109 if (flags & NDR_OUT) {
30110 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30112 return NDR_ERR_SUCCESS;
30115 _PUBLIC_ void ndr_print_spoolss_6d(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_6d *r)
30117 ndr_print_struct(ndr, name, "spoolss_6d");
30119 if (flags & NDR_SET_VALUES) {
30120 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30122 if (flags & NDR_IN) {
30123 ndr_print_struct(ndr, "in", "spoolss_6d");
30127 if (flags & NDR_OUT) {
30128 ndr_print_struct(ndr, "out", "spoolss_6d");
30130 ndr_print_WERROR(ndr, "result", r->out.result);
30136 static const struct ndr_interface_call spoolss_calls[] = {
30138 "spoolss_EnumPrinters",
30139 sizeof(struct spoolss_EnumPrinters),
30140 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinters,
30141 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinters,
30142 (ndr_print_function_t) ndr_print_spoolss_EnumPrinters,
30146 "spoolss_OpenPrinter",
30147 sizeof(struct spoolss_OpenPrinter),
30148 (ndr_push_flags_fn_t) ndr_push_spoolss_OpenPrinter,
30149 (ndr_pull_flags_fn_t) ndr_pull_spoolss_OpenPrinter,
30150 (ndr_print_function_t) ndr_print_spoolss_OpenPrinter,
30155 sizeof(struct spoolss_SetJob),
30156 (ndr_push_flags_fn_t) ndr_push_spoolss_SetJob,
30157 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetJob,
30158 (ndr_print_function_t) ndr_print_spoolss_SetJob,
30163 sizeof(struct spoolss_GetJob),
30164 (ndr_push_flags_fn_t) ndr_push_spoolss_GetJob,
30165 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetJob,
30166 (ndr_print_function_t) ndr_print_spoolss_GetJob,
30170 "spoolss_EnumJobs",
30171 sizeof(struct spoolss_EnumJobs),
30172 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumJobs,
30173 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumJobs,
30174 (ndr_print_function_t) ndr_print_spoolss_EnumJobs,
30178 "spoolss_AddPrinter",
30179 sizeof(struct spoolss_AddPrinter),
30180 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinter,
30181 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinter,
30182 (ndr_print_function_t) ndr_print_spoolss_AddPrinter,
30186 "spoolss_DeletePrinter",
30187 sizeof(struct spoolss_DeletePrinter),
30188 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinter,
30189 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinter,
30190 (ndr_print_function_t) ndr_print_spoolss_DeletePrinter,
30194 "spoolss_SetPrinter",
30195 sizeof(struct spoolss_SetPrinter),
30196 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinter,
30197 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinter,
30198 (ndr_print_function_t) ndr_print_spoolss_SetPrinter,
30202 "spoolss_GetPrinter",
30203 sizeof(struct spoolss_GetPrinter),
30204 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinter,
30205 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinter,
30206 (ndr_print_function_t) ndr_print_spoolss_GetPrinter,
30210 "spoolss_AddPrinterDriver",
30211 sizeof(struct spoolss_AddPrinterDriver),
30212 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterDriver,
30213 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterDriver,
30214 (ndr_print_function_t) ndr_print_spoolss_AddPrinterDriver,
30218 "spoolss_EnumPrinterDrivers",
30219 sizeof(struct spoolss_EnumPrinterDrivers),
30220 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterDrivers,
30221 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterDrivers,
30222 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterDrivers,
30226 "spoolss_GetPrinterDriver",
30227 sizeof(struct spoolss_GetPrinterDriver),
30228 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriver,
30229 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriver,
30230 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriver,
30234 "spoolss_GetPrinterDriverDirectory",
30235 sizeof(struct spoolss_GetPrinterDriverDirectory),
30236 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriverDirectory,
30237 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriverDirectory,
30238 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriverDirectory,
30242 "spoolss_DeletePrinterDriver",
30243 sizeof(struct spoolss_DeletePrinterDriver),
30244 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDriver,
30245 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDriver,
30246 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDriver,
30250 "spoolss_AddPrintProcessor",
30251 sizeof(struct spoolss_AddPrintProcessor),
30252 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrintProcessor,
30253 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrintProcessor,
30254 (ndr_print_function_t) ndr_print_spoolss_AddPrintProcessor,
30258 "spoolss_EnumPrintProcessors",
30259 sizeof(struct spoolss_EnumPrintProcessors),
30260 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrintProcessors,
30261 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrintProcessors,
30262 (ndr_print_function_t) ndr_print_spoolss_EnumPrintProcessors,
30266 "spoolss_GetPrintProcessorDirectory",
30267 sizeof(struct spoolss_GetPrintProcessorDirectory),
30268 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrintProcessorDirectory,
30269 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrintProcessorDirectory,
30270 (ndr_print_function_t) ndr_print_spoolss_GetPrintProcessorDirectory,
30274 "spoolss_StartDocPrinter",
30275 sizeof(struct spoolss_StartDocPrinter),
30276 (ndr_push_flags_fn_t) ndr_push_spoolss_StartDocPrinter,
30277 (ndr_pull_flags_fn_t) ndr_pull_spoolss_StartDocPrinter,
30278 (ndr_print_function_t) ndr_print_spoolss_StartDocPrinter,
30282 "spoolss_StartPagePrinter",
30283 sizeof(struct spoolss_StartPagePrinter),
30284 (ndr_push_flags_fn_t) ndr_push_spoolss_StartPagePrinter,
30285 (ndr_pull_flags_fn_t) ndr_pull_spoolss_StartPagePrinter,
30286 (ndr_print_function_t) ndr_print_spoolss_StartPagePrinter,
30290 "spoolss_WritePrinter",
30291 sizeof(struct spoolss_WritePrinter),
30292 (ndr_push_flags_fn_t) ndr_push_spoolss_WritePrinter,
30293 (ndr_pull_flags_fn_t) ndr_pull_spoolss_WritePrinter,
30294 (ndr_print_function_t) ndr_print_spoolss_WritePrinter,
30298 "spoolss_EndPagePrinter",
30299 sizeof(struct spoolss_EndPagePrinter),
30300 (ndr_push_flags_fn_t) ndr_push_spoolss_EndPagePrinter,
30301 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EndPagePrinter,
30302 (ndr_print_function_t) ndr_print_spoolss_EndPagePrinter,
30306 "spoolss_AbortPrinter",
30307 sizeof(struct spoolss_AbortPrinter),
30308 (ndr_push_flags_fn_t) ndr_push_spoolss_AbortPrinter,
30309 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AbortPrinter,
30310 (ndr_print_function_t) ndr_print_spoolss_AbortPrinter,
30314 "spoolss_ReadPrinter",
30315 sizeof(struct spoolss_ReadPrinter),
30316 (ndr_push_flags_fn_t) ndr_push_spoolss_ReadPrinter,
30317 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReadPrinter,
30318 (ndr_print_function_t) ndr_print_spoolss_ReadPrinter,
30322 "spoolss_EndDocPrinter",
30323 sizeof(struct spoolss_EndDocPrinter),
30324 (ndr_push_flags_fn_t) ndr_push_spoolss_EndDocPrinter,
30325 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EndDocPrinter,
30326 (ndr_print_function_t) ndr_print_spoolss_EndDocPrinter,
30331 sizeof(struct spoolss_AddJob),
30332 (ndr_push_flags_fn_t) ndr_push_spoolss_AddJob,
30333 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddJob,
30334 (ndr_print_function_t) ndr_print_spoolss_AddJob,
30338 "spoolss_ScheduleJob",
30339 sizeof(struct spoolss_ScheduleJob),
30340 (ndr_push_flags_fn_t) ndr_push_spoolss_ScheduleJob,
30341 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ScheduleJob,
30342 (ndr_print_function_t) ndr_print_spoolss_ScheduleJob,
30346 "spoolss_GetPrinterData",
30347 sizeof(struct spoolss_GetPrinterData),
30348 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterData,
30349 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterData,
30350 (ndr_print_function_t) ndr_print_spoolss_GetPrinterData,
30354 "spoolss_SetPrinterData",
30355 sizeof(struct spoolss_SetPrinterData),
30356 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinterData,
30357 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinterData,
30358 (ndr_print_function_t) ndr_print_spoolss_SetPrinterData,
30362 "spoolss_WaitForPrinterChange",
30363 sizeof(struct spoolss_WaitForPrinterChange),
30364 (ndr_push_flags_fn_t) ndr_push_spoolss_WaitForPrinterChange,
30365 (ndr_pull_flags_fn_t) ndr_pull_spoolss_WaitForPrinterChange,
30366 (ndr_print_function_t) ndr_print_spoolss_WaitForPrinterChange,
30370 "spoolss_ClosePrinter",
30371 sizeof(struct spoolss_ClosePrinter),
30372 (ndr_push_flags_fn_t) ndr_push_spoolss_ClosePrinter,
30373 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ClosePrinter,
30374 (ndr_print_function_t) ndr_print_spoolss_ClosePrinter,
30379 sizeof(struct spoolss_AddForm),
30380 (ndr_push_flags_fn_t) ndr_push_spoolss_AddForm,
30381 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddForm,
30382 (ndr_print_function_t) ndr_print_spoolss_AddForm,
30386 "spoolss_DeleteForm",
30387 sizeof(struct spoolss_DeleteForm),
30388 (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteForm,
30389 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteForm,
30390 (ndr_print_function_t) ndr_print_spoolss_DeleteForm,
30395 sizeof(struct spoolss_GetForm),
30396 (ndr_push_flags_fn_t) ndr_push_spoolss_GetForm,
30397 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetForm,
30398 (ndr_print_function_t) ndr_print_spoolss_GetForm,
30403 sizeof(struct spoolss_SetForm),
30404 (ndr_push_flags_fn_t) ndr_push_spoolss_SetForm,
30405 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetForm,
30406 (ndr_print_function_t) ndr_print_spoolss_SetForm,
30410 "spoolss_EnumForms",
30411 sizeof(struct spoolss_EnumForms),
30412 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumForms,
30413 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumForms,
30414 (ndr_print_function_t) ndr_print_spoolss_EnumForms,
30418 "spoolss_EnumPorts",
30419 sizeof(struct spoolss_EnumPorts),
30420 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPorts,
30421 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPorts,
30422 (ndr_print_function_t) ndr_print_spoolss_EnumPorts,
30426 "spoolss_EnumMonitors",
30427 sizeof(struct spoolss_EnumMonitors),
30428 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumMonitors,
30429 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumMonitors,
30430 (ndr_print_function_t) ndr_print_spoolss_EnumMonitors,
30435 sizeof(struct spoolss_AddPort),
30436 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPort,
30437 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPort,
30438 (ndr_print_function_t) ndr_print_spoolss_AddPort,
30442 "spoolss_ConfigurePort",
30443 sizeof(struct spoolss_ConfigurePort),
30444 (ndr_push_flags_fn_t) ndr_push_spoolss_ConfigurePort,
30445 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ConfigurePort,
30446 (ndr_print_function_t) ndr_print_spoolss_ConfigurePort,
30450 "spoolss_DeletePort",
30451 sizeof(struct spoolss_DeletePort),
30452 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePort,
30453 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePort,
30454 (ndr_print_function_t) ndr_print_spoolss_DeletePort,
30458 "spoolss_CreatePrinterIC",
30459 sizeof(struct spoolss_CreatePrinterIC),
30460 (ndr_push_flags_fn_t) ndr_push_spoolss_CreatePrinterIC,
30461 (ndr_pull_flags_fn_t) ndr_pull_spoolss_CreatePrinterIC,
30462 (ndr_print_function_t) ndr_print_spoolss_CreatePrinterIC,
30466 "spoolss_PlayGDIScriptOnPrinterIC",
30467 sizeof(struct spoolss_PlayGDIScriptOnPrinterIC),
30468 (ndr_push_flags_fn_t) ndr_push_spoolss_PlayGDIScriptOnPrinterIC,
30469 (ndr_pull_flags_fn_t) ndr_pull_spoolss_PlayGDIScriptOnPrinterIC,
30470 (ndr_print_function_t) ndr_print_spoolss_PlayGDIScriptOnPrinterIC,
30474 "spoolss_DeletePrinterIC",
30475 sizeof(struct spoolss_DeletePrinterIC),
30476 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterIC,
30477 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterIC,
30478 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterIC,
30482 "spoolss_AddPrinterConnection",
30483 sizeof(struct spoolss_AddPrinterConnection),
30484 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterConnection,
30485 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterConnection,
30486 (ndr_print_function_t) ndr_print_spoolss_AddPrinterConnection,
30490 "spoolss_DeletePrinterConnection",
30491 sizeof(struct spoolss_DeletePrinterConnection),
30492 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterConnection,
30493 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterConnection,
30494 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterConnection,
30498 "spoolss_PrinterMessageBox",
30499 sizeof(struct spoolss_PrinterMessageBox),
30500 (ndr_push_flags_fn_t) ndr_push_spoolss_PrinterMessageBox,
30501 (ndr_pull_flags_fn_t) ndr_pull_spoolss_PrinterMessageBox,
30502 (ndr_print_function_t) ndr_print_spoolss_PrinterMessageBox,
30506 "spoolss_AddMonitor",
30507 sizeof(struct spoolss_AddMonitor),
30508 (ndr_push_flags_fn_t) ndr_push_spoolss_AddMonitor,
30509 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddMonitor,
30510 (ndr_print_function_t) ndr_print_spoolss_AddMonitor,
30514 "spoolss_DeleteMonitor",
30515 sizeof(struct spoolss_DeleteMonitor),
30516 (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteMonitor,
30517 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteMonitor,
30518 (ndr_print_function_t) ndr_print_spoolss_DeleteMonitor,
30522 "spoolss_DeletePrintProcessor",
30523 sizeof(struct spoolss_DeletePrintProcessor),
30524 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrintProcessor,
30525 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrintProcessor,
30526 (ndr_print_function_t) ndr_print_spoolss_DeletePrintProcessor,
30530 "spoolss_AddPrintProvidor",
30531 sizeof(struct spoolss_AddPrintProvidor),
30532 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrintProvidor,
30533 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrintProvidor,
30534 (ndr_print_function_t) ndr_print_spoolss_AddPrintProvidor,
30538 "spoolss_DeletePrintProvidor",
30539 sizeof(struct spoolss_DeletePrintProvidor),
30540 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrintProvidor,
30541 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrintProvidor,
30542 (ndr_print_function_t) ndr_print_spoolss_DeletePrintProvidor,
30546 "spoolss_EnumPrintProcDataTypes",
30547 sizeof(struct spoolss_EnumPrintProcDataTypes),
30548 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrintProcDataTypes,
30549 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrintProcDataTypes,
30550 (ndr_print_function_t) ndr_print_spoolss_EnumPrintProcDataTypes,
30554 "spoolss_ResetPrinter",
30555 sizeof(struct spoolss_ResetPrinter),
30556 (ndr_push_flags_fn_t) ndr_push_spoolss_ResetPrinter,
30557 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ResetPrinter,
30558 (ndr_print_function_t) ndr_print_spoolss_ResetPrinter,
30562 "spoolss_GetPrinterDriver2",
30563 sizeof(struct spoolss_GetPrinterDriver2),
30564 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriver2,
30565 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriver2,
30566 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriver2,
30570 "spoolss_FindFirstPrinterChangeNotification",
30571 sizeof(struct spoolss_FindFirstPrinterChangeNotification),
30572 (ndr_push_flags_fn_t) ndr_push_spoolss_FindFirstPrinterChangeNotification,
30573 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindFirstPrinterChangeNotification,
30574 (ndr_print_function_t) ndr_print_spoolss_FindFirstPrinterChangeNotification,
30578 "spoolss_FindNextPrinterChangeNotification",
30579 sizeof(struct spoolss_FindNextPrinterChangeNotification),
30580 (ndr_push_flags_fn_t) ndr_push_spoolss_FindNextPrinterChangeNotification,
30581 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindNextPrinterChangeNotification,
30582 (ndr_print_function_t) ndr_print_spoolss_FindNextPrinterChangeNotification,
30586 "spoolss_FindClosePrinterNotify",
30587 sizeof(struct spoolss_FindClosePrinterNotify),
30588 (ndr_push_flags_fn_t) ndr_push_spoolss_FindClosePrinterNotify,
30589 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindClosePrinterNotify,
30590 (ndr_print_function_t) ndr_print_spoolss_FindClosePrinterNotify,
30594 "spoolss_RouterFindFirstPrinterChangeNotificationOld",
30595 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotificationOld),
30596 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld,
30597 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld,
30598 (ndr_print_function_t) ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld,
30602 "spoolss_ReplyOpenPrinter",
30603 sizeof(struct spoolss_ReplyOpenPrinter),
30604 (ndr_push_flags_fn_t) ndr_push_spoolss_ReplyOpenPrinter,
30605 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReplyOpenPrinter,
30606 (ndr_print_function_t) ndr_print_spoolss_ReplyOpenPrinter,
30610 "spoolss_RouterReplyPrinter",
30611 sizeof(struct spoolss_RouterReplyPrinter),
30612 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterReplyPrinter,
30613 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterReplyPrinter,
30614 (ndr_print_function_t) ndr_print_spoolss_RouterReplyPrinter,
30618 "spoolss_ReplyClosePrinter",
30619 sizeof(struct spoolss_ReplyClosePrinter),
30620 (ndr_push_flags_fn_t) ndr_push_spoolss_ReplyClosePrinter,
30621 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReplyClosePrinter,
30622 (ndr_print_function_t) ndr_print_spoolss_ReplyClosePrinter,
30626 "spoolss_AddPortEx",
30627 sizeof(struct spoolss_AddPortEx),
30628 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPortEx,
30629 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPortEx,
30630 (ndr_print_function_t) ndr_print_spoolss_AddPortEx,
30634 "spoolss_RouterFindFirstPrinterChangeNotification",
30635 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotification),
30636 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterFindFirstPrinterChangeNotification,
30637 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification,
30638 (ndr_print_function_t) ndr_print_spoolss_RouterFindFirstPrinterChangeNotification,
30642 "spoolss_SpoolerInit",
30643 sizeof(struct spoolss_SpoolerInit),
30644 (ndr_push_flags_fn_t) ndr_push_spoolss_SpoolerInit,
30645 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SpoolerInit,
30646 (ndr_print_function_t) ndr_print_spoolss_SpoolerInit,
30650 "spoolss_ResetPrinterEx",
30651 sizeof(struct spoolss_ResetPrinterEx),
30652 (ndr_push_flags_fn_t) ndr_push_spoolss_ResetPrinterEx,
30653 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ResetPrinterEx,
30654 (ndr_print_function_t) ndr_print_spoolss_ResetPrinterEx,
30658 "spoolss_RemoteFindFirstPrinterChangeNotifyEx",
30659 sizeof(struct spoolss_RemoteFindFirstPrinterChangeNotifyEx),
30660 (ndr_push_flags_fn_t) ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
30661 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
30662 (ndr_print_function_t) ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
30666 "spoolss_RouterReplyPrinterEx",
30667 sizeof(struct spoolss_RouterReplyPrinterEx),
30668 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterReplyPrinterEx,
30669 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterReplyPrinterEx,
30670 (ndr_print_function_t) ndr_print_spoolss_RouterReplyPrinterEx,
30674 "spoolss_RouterRefreshPrinterChangeNotify",
30675 sizeof(struct spoolss_RouterRefreshPrinterChangeNotify),
30676 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterRefreshPrinterChangeNotify,
30677 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterRefreshPrinterChangeNotify,
30678 (ndr_print_function_t) ndr_print_spoolss_RouterRefreshPrinterChangeNotify,
30683 sizeof(struct spoolss_44),
30684 (ndr_push_flags_fn_t) ndr_push_spoolss_44,
30685 (ndr_pull_flags_fn_t) ndr_pull_spoolss_44,
30686 (ndr_print_function_t) ndr_print_spoolss_44,
30690 "spoolss_OpenPrinterEx",
30691 sizeof(struct spoolss_OpenPrinterEx),
30692 (ndr_push_flags_fn_t) ndr_push_spoolss_OpenPrinterEx,
30693 (ndr_pull_flags_fn_t) ndr_pull_spoolss_OpenPrinterEx,
30694 (ndr_print_function_t) ndr_print_spoolss_OpenPrinterEx,
30698 "spoolss_AddPrinterEx",
30699 sizeof(struct spoolss_AddPrinterEx),
30700 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterEx,
30701 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterEx,
30702 (ndr_print_function_t) ndr_print_spoolss_AddPrinterEx,
30707 sizeof(struct spoolss_47),
30708 (ndr_push_flags_fn_t) ndr_push_spoolss_47,
30709 (ndr_pull_flags_fn_t) ndr_pull_spoolss_47,
30710 (ndr_print_function_t) ndr_print_spoolss_47,
30714 "spoolss_EnumPrinterData",
30715 sizeof(struct spoolss_EnumPrinterData),
30716 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterData,
30717 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterData,
30718 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterData,
30722 "spoolss_DeletePrinterData",
30723 sizeof(struct spoolss_DeletePrinterData),
30724 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterData,
30725 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterData,
30726 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterData,
30731 sizeof(struct spoolss_4a),
30732 (ndr_push_flags_fn_t) ndr_push_spoolss_4a,
30733 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4a,
30734 (ndr_print_function_t) ndr_print_spoolss_4a,
30739 sizeof(struct spoolss_4b),
30740 (ndr_push_flags_fn_t) ndr_push_spoolss_4b,
30741 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4b,
30742 (ndr_print_function_t) ndr_print_spoolss_4b,
30747 sizeof(struct spoolss_4c),
30748 (ndr_push_flags_fn_t) ndr_push_spoolss_4c,
30749 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4c,
30750 (ndr_print_function_t) ndr_print_spoolss_4c,
30754 "spoolss_SetPrinterDataEx",
30755 sizeof(struct spoolss_SetPrinterDataEx),
30756 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinterDataEx,
30757 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinterDataEx,
30758 (ndr_print_function_t) ndr_print_spoolss_SetPrinterDataEx,
30762 "spoolss_GetPrinterDataEx",
30763 sizeof(struct spoolss_GetPrinterDataEx),
30764 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDataEx,
30765 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDataEx,
30766 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDataEx,
30770 "spoolss_EnumPrinterDataEx",
30771 sizeof(struct spoolss_EnumPrinterDataEx),
30772 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterDataEx,
30773 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterDataEx,
30774 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterDataEx,
30778 "spoolss_EnumPrinterKey",
30779 sizeof(struct spoolss_EnumPrinterKey),
30780 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterKey,
30781 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterKey,
30782 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterKey,
30786 "spoolss_DeletePrinterDataEx",
30787 sizeof(struct spoolss_DeletePrinterDataEx),
30788 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDataEx,
30789 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDataEx,
30790 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDataEx,
30794 "spoolss_DeletePrinterKey",
30795 sizeof(struct spoolss_DeletePrinterKey),
30796 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterKey,
30797 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterKey,
30798 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterKey,
30803 sizeof(struct spoolss_53),
30804 (ndr_push_flags_fn_t) ndr_push_spoolss_53,
30805 (ndr_pull_flags_fn_t) ndr_pull_spoolss_53,
30806 (ndr_print_function_t) ndr_print_spoolss_53,
30810 "spoolss_DeletePrinterDriverEx",
30811 sizeof(struct spoolss_DeletePrinterDriverEx),
30812 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDriverEx,
30813 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDriverEx,
30814 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDriverEx,
30819 sizeof(struct spoolss_55),
30820 (ndr_push_flags_fn_t) ndr_push_spoolss_55,
30821 (ndr_pull_flags_fn_t) ndr_pull_spoolss_55,
30822 (ndr_print_function_t) ndr_print_spoolss_55,
30827 sizeof(struct spoolss_56),
30828 (ndr_push_flags_fn_t) ndr_push_spoolss_56,
30829 (ndr_pull_flags_fn_t) ndr_pull_spoolss_56,
30830 (ndr_print_function_t) ndr_print_spoolss_56,
30835 sizeof(struct spoolss_57),
30836 (ndr_push_flags_fn_t) ndr_push_spoolss_57,
30837 (ndr_pull_flags_fn_t) ndr_pull_spoolss_57,
30838 (ndr_print_function_t) ndr_print_spoolss_57,
30843 sizeof(struct spoolss_XcvData),
30844 (ndr_push_flags_fn_t) ndr_push_spoolss_XcvData,
30845 (ndr_pull_flags_fn_t) ndr_pull_spoolss_XcvData,
30846 (ndr_print_function_t) ndr_print_spoolss_XcvData,
30850 "spoolss_AddPrinterDriverEx",
30851 sizeof(struct spoolss_AddPrinterDriverEx),
30852 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterDriverEx,
30853 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterDriverEx,
30854 (ndr_print_function_t) ndr_print_spoolss_AddPrinterDriverEx,
30859 sizeof(struct spoolss_5a),
30860 (ndr_push_flags_fn_t) ndr_push_spoolss_5a,
30861 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5a,
30862 (ndr_print_function_t) ndr_print_spoolss_5a,
30867 sizeof(struct spoolss_5b),
30868 (ndr_push_flags_fn_t) ndr_push_spoolss_5b,
30869 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5b,
30870 (ndr_print_function_t) ndr_print_spoolss_5b,
30875 sizeof(struct spoolss_5c),
30876 (ndr_push_flags_fn_t) ndr_push_spoolss_5c,
30877 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5c,
30878 (ndr_print_function_t) ndr_print_spoolss_5c,
30883 sizeof(struct spoolss_5d),
30884 (ndr_push_flags_fn_t) ndr_push_spoolss_5d,
30885 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5d,
30886 (ndr_print_function_t) ndr_print_spoolss_5d,
30891 sizeof(struct spoolss_5e),
30892 (ndr_push_flags_fn_t) ndr_push_spoolss_5e,
30893 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5e,
30894 (ndr_print_function_t) ndr_print_spoolss_5e,
30899 sizeof(struct spoolss_5f),
30900 (ndr_push_flags_fn_t) ndr_push_spoolss_5f,
30901 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5f,
30902 (ndr_print_function_t) ndr_print_spoolss_5f,
30907 sizeof(struct spoolss_60),
30908 (ndr_push_flags_fn_t) ndr_push_spoolss_60,
30909 (ndr_pull_flags_fn_t) ndr_pull_spoolss_60,
30910 (ndr_print_function_t) ndr_print_spoolss_60,
30915 sizeof(struct spoolss_61),
30916 (ndr_push_flags_fn_t) ndr_push_spoolss_61,
30917 (ndr_pull_flags_fn_t) ndr_pull_spoolss_61,
30918 (ndr_print_function_t) ndr_print_spoolss_61,
30923 sizeof(struct spoolss_62),
30924 (ndr_push_flags_fn_t) ndr_push_spoolss_62,
30925 (ndr_pull_flags_fn_t) ndr_pull_spoolss_62,
30926 (ndr_print_function_t) ndr_print_spoolss_62,
30931 sizeof(struct spoolss_63),
30932 (ndr_push_flags_fn_t) ndr_push_spoolss_63,
30933 (ndr_pull_flags_fn_t) ndr_pull_spoolss_63,
30934 (ndr_print_function_t) ndr_print_spoolss_63,
30939 sizeof(struct spoolss_64),
30940 (ndr_push_flags_fn_t) ndr_push_spoolss_64,
30941 (ndr_pull_flags_fn_t) ndr_pull_spoolss_64,
30942 (ndr_print_function_t) ndr_print_spoolss_64,
30947 sizeof(struct spoolss_65),
30948 (ndr_push_flags_fn_t) ndr_push_spoolss_65,
30949 (ndr_pull_flags_fn_t) ndr_pull_spoolss_65,
30950 (ndr_print_function_t) ndr_print_spoolss_65,
30954 "spoolss_GetCorePrinterDrivers",
30955 sizeof(struct spoolss_GetCorePrinterDrivers),
30956 (ndr_push_flags_fn_t) ndr_push_spoolss_GetCorePrinterDrivers,
30957 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetCorePrinterDrivers,
30958 (ndr_print_function_t) ndr_print_spoolss_GetCorePrinterDrivers,
30963 sizeof(struct spoolss_67),
30964 (ndr_push_flags_fn_t) ndr_push_spoolss_67,
30965 (ndr_pull_flags_fn_t) ndr_pull_spoolss_67,
30966 (ndr_print_function_t) ndr_print_spoolss_67,
30970 "spoolss_GetPrinterDriverPackagePath",
30971 sizeof(struct spoolss_GetPrinterDriverPackagePath),
30972 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriverPackagePath,
30973 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriverPackagePath,
30974 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriverPackagePath,
30979 sizeof(struct spoolss_69),
30980 (ndr_push_flags_fn_t) ndr_push_spoolss_69,
30981 (ndr_pull_flags_fn_t) ndr_pull_spoolss_69,
30982 (ndr_print_function_t) ndr_print_spoolss_69,
30987 sizeof(struct spoolss_6a),
30988 (ndr_push_flags_fn_t) ndr_push_spoolss_6a,
30989 (ndr_pull_flags_fn_t) ndr_pull_spoolss_6a,
30990 (ndr_print_function_t) ndr_print_spoolss_6a,
30995 sizeof(struct spoolss_6b),
30996 (ndr_push_flags_fn_t) ndr_push_spoolss_6b,
30997 (ndr_pull_flags_fn_t) ndr_pull_spoolss_6b,
30998 (ndr_print_function_t) ndr_print_spoolss_6b,
31003 sizeof(struct spoolss_6c),
31004 (ndr_push_flags_fn_t) ndr_push_spoolss_6c,
31005 (ndr_pull_flags_fn_t) ndr_pull_spoolss_6c,
31006 (ndr_print_function_t) ndr_print_spoolss_6c,
31011 sizeof(struct spoolss_6d),
31012 (ndr_push_flags_fn_t) ndr_push_spoolss_6d,
31013 (ndr_pull_flags_fn_t) ndr_pull_spoolss_6d,
31014 (ndr_print_function_t) ndr_print_spoolss_6d,
31017 { NULL, 0, NULL, NULL, NULL, false }
31020 static const char * const spoolss_endpoint_strings[] = {
31021 "ncacn_np:[\\pipe\\spoolss]",
31024 static const struct ndr_interface_string_array spoolss_endpoints = {
31026 .names = spoolss_endpoint_strings
31029 static const char * const spoolss_authservice_strings[] = {
31033 static const struct ndr_interface_string_array spoolss_authservices = {
31035 .names = spoolss_authservice_strings
31039 const struct ndr_interface_table ndr_table_spoolss = {
31042 {0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0x89,0xab}},
31043 NDR_SPOOLSS_VERSION
31045 .helpstring = NDR_SPOOLSS_HELPSTRING,
31047 .calls = spoolss_calls,
31048 .endpoints = &spoolss_endpoints,
31049 .authservices = &spoolss_authservices