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 _PUBLIC_ void ndr_print_spoolss_StringArray2(struct ndr_print *ndr, const char *name, const struct spoolss_StringArray2 *r)
8130 ndr_print_struct(ndr, name, "spoolss_StringArray2");
8132 ndr_print_uint32(ndr, "_ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?(ndr_size_spoolss_StringArray2(r, ndr->iconv_convenience, ndr->flags) - 4) / 2:r->_ndr_size);
8133 ndr_print_string_array(ndr, "string", r->string);
8137 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo1 *r)
8139 if (ndr_flags & NDR_SCALARS) {
8140 NDR_CHECK(ndr_push_align(ndr, 5));
8141 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
8142 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8144 if (ndr_flags & NDR_BUFFERS) {
8145 if (r->driver_name) {
8146 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8147 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8148 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8149 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8152 return NDR_ERR_SUCCESS;
8155 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo1 *r)
8157 uint32_t _ptr_driver_name;
8158 TALLOC_CTX *_mem_save_driver_name_0;
8159 if (ndr_flags & NDR_SCALARS) {
8160 NDR_CHECK(ndr_pull_align(ndr, 5));
8161 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8162 if (_ptr_driver_name) {
8163 NDR_PULL_ALLOC(ndr, r->driver_name);
8165 r->driver_name = NULL;
8167 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8169 if (ndr_flags & NDR_BUFFERS) {
8170 if (r->driver_name) {
8171 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8172 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8173 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
8174 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
8175 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
8176 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));
8178 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
8179 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
8180 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8183 return NDR_ERR_SUCCESS;
8186 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo1 *r)
8188 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo1");
8190 ndr_print_ptr(ndr, "driver_name", r->driver_name);
8192 if (r->driver_name) {
8193 ndr_print_string(ndr, "driver_name", r->driver_name);
8199 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverOSVersion(struct ndr_push *ndr, int ndr_flags, enum spoolss_DriverOSVersion r)
8201 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
8202 return NDR_ERR_SUCCESS;
8205 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverOSVersion(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DriverOSVersion *r)
8208 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
8210 return NDR_ERR_SUCCESS;
8213 _PUBLIC_ void ndr_print_spoolss_DriverOSVersion(struct ndr_print *ndr, const char *name, enum spoolss_DriverOSVersion r)
8215 const char *val = NULL;
8218 case SPOOLSS_DRIVER_VERSION_9X: val = "SPOOLSS_DRIVER_VERSION_9X"; break;
8219 case SPOOLSS_DRIVER_VERSION_NT35: val = "SPOOLSS_DRIVER_VERSION_NT35"; break;
8220 case SPOOLSS_DRIVER_VERSION_NT4: val = "SPOOLSS_DRIVER_VERSION_NT4"; break;
8221 case SPOOLSS_DRIVER_VERSION_200X: val = "SPOOLSS_DRIVER_VERSION_200X"; break;
8223 ndr_print_enum(ndr, name, "ENUM", val, r);
8226 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo2 *r)
8228 if (ndr_flags & NDR_SCALARS) {
8229 NDR_CHECK(ndr_push_align(ndr, 5));
8230 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
8231 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
8232 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
8233 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
8234 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
8235 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
8236 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8238 if (ndr_flags & NDR_BUFFERS) {
8239 if (r->driver_name) {
8240 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8241 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8242 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8243 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8245 if (r->architecture) {
8246 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8247 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8248 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8249 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8251 if (r->driver_path) {
8252 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8253 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8254 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8255 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8258 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8259 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8260 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8261 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8263 if (r->config_file) {
8264 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8265 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8266 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8267 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8270 return NDR_ERR_SUCCESS;
8273 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo2 *r)
8275 uint32_t _ptr_driver_name;
8276 TALLOC_CTX *_mem_save_driver_name_0;
8277 uint32_t _ptr_architecture;
8278 TALLOC_CTX *_mem_save_architecture_0;
8279 uint32_t _ptr_driver_path;
8280 TALLOC_CTX *_mem_save_driver_path_0;
8281 uint32_t _ptr_data_file;
8282 TALLOC_CTX *_mem_save_data_file_0;
8283 uint32_t _ptr_config_file;
8284 TALLOC_CTX *_mem_save_config_file_0;
8285 if (ndr_flags & NDR_SCALARS) {
8286 NDR_CHECK(ndr_pull_align(ndr, 5));
8287 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
8288 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8289 if (_ptr_driver_name) {
8290 NDR_PULL_ALLOC(ndr, r->driver_name);
8292 r->driver_name = NULL;
8294 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
8295 if (_ptr_architecture) {
8296 NDR_PULL_ALLOC(ndr, r->architecture);
8298 r->architecture = NULL;
8300 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
8301 if (_ptr_driver_path) {
8302 NDR_PULL_ALLOC(ndr, r->driver_path);
8304 r->driver_path = NULL;
8306 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
8307 if (_ptr_data_file) {
8308 NDR_PULL_ALLOC(ndr, r->data_file);
8310 r->data_file = NULL;
8312 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
8313 if (_ptr_config_file) {
8314 NDR_PULL_ALLOC(ndr, r->config_file);
8316 r->config_file = NULL;
8318 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8320 if (ndr_flags & NDR_BUFFERS) {
8321 if (r->driver_name) {
8322 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8323 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8324 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
8325 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
8326 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
8327 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));
8329 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
8330 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
8331 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8333 if (r->architecture) {
8334 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
8335 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
8336 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
8337 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
8338 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
8339 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));
8341 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
8342 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
8343 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
8345 if (r->driver_path) {
8346 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
8347 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
8348 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
8349 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
8350 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
8351 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));
8353 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
8354 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
8355 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
8358 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8359 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
8360 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
8361 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
8362 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
8363 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));
8365 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
8366 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
8367 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
8369 if (r->config_file) {
8370 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8371 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
8372 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
8373 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
8374 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
8375 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));
8377 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
8378 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
8379 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
8382 return NDR_ERR_SUCCESS;
8385 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo2 *r)
8387 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo2");
8389 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
8390 ndr_print_ptr(ndr, "driver_name", r->driver_name);
8392 if (r->driver_name) {
8393 ndr_print_string(ndr, "driver_name", r->driver_name);
8396 ndr_print_ptr(ndr, "architecture", r->architecture);
8398 if (r->architecture) {
8399 ndr_print_string(ndr, "architecture", r->architecture);
8402 ndr_print_ptr(ndr, "driver_path", r->driver_path);
8404 if (r->driver_path) {
8405 ndr_print_string(ndr, "driver_path", r->driver_path);
8408 ndr_print_ptr(ndr, "data_file", r->data_file);
8411 ndr_print_string(ndr, "data_file", r->data_file);
8414 ndr_print_ptr(ndr, "config_file", r->config_file);
8416 if (r->config_file) {
8417 ndr_print_string(ndr, "config_file", r->config_file);
8423 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo3 *r)
8425 if (ndr_flags & NDR_SCALARS) {
8426 NDR_CHECK(ndr_push_align(ndr, 5));
8427 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
8428 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
8429 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
8430 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
8431 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
8432 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
8433 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
8434 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
8435 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
8436 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8437 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
8438 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8440 if (ndr_flags & NDR_BUFFERS) {
8441 if (r->driver_name) {
8442 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8443 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8444 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8445 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8447 if (r->architecture) {
8448 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8449 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8450 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8451 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8453 if (r->driver_path) {
8454 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8455 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8456 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8457 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8460 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8461 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8462 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8463 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8465 if (r->config_file) {
8466 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8467 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8468 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8469 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8472 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8473 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8474 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8475 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8477 if (r->monitor_name) {
8478 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8479 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8480 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8481 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8483 if (r->default_datatype) {
8484 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8485 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8486 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8487 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8489 if (r->dependent_files) {
8490 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8493 return NDR_ERR_SUCCESS;
8496 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo3 *r)
8498 uint32_t _ptr_driver_name;
8499 TALLOC_CTX *_mem_save_driver_name_0;
8500 uint32_t _ptr_architecture;
8501 TALLOC_CTX *_mem_save_architecture_0;
8502 uint32_t _ptr_driver_path;
8503 TALLOC_CTX *_mem_save_driver_path_0;
8504 uint32_t _ptr_data_file;
8505 TALLOC_CTX *_mem_save_data_file_0;
8506 uint32_t _ptr_config_file;
8507 TALLOC_CTX *_mem_save_config_file_0;
8508 uint32_t _ptr_help_file;
8509 TALLOC_CTX *_mem_save_help_file_0;
8510 uint32_t _ptr_monitor_name;
8511 TALLOC_CTX *_mem_save_monitor_name_0;
8512 uint32_t _ptr_default_datatype;
8513 TALLOC_CTX *_mem_save_default_datatype_0;
8514 uint32_t _ptr_dependent_files;
8515 TALLOC_CTX *_mem_save_dependent_files_0;
8516 if (ndr_flags & NDR_SCALARS) {
8517 NDR_CHECK(ndr_pull_align(ndr, 5));
8518 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
8519 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8520 if (_ptr_driver_name) {
8521 NDR_PULL_ALLOC(ndr, r->driver_name);
8523 r->driver_name = NULL;
8525 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
8526 if (_ptr_architecture) {
8527 NDR_PULL_ALLOC(ndr, r->architecture);
8529 r->architecture = NULL;
8531 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
8532 if (_ptr_driver_path) {
8533 NDR_PULL_ALLOC(ndr, r->driver_path);
8535 r->driver_path = NULL;
8537 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
8538 if (_ptr_data_file) {
8539 NDR_PULL_ALLOC(ndr, r->data_file);
8541 r->data_file = NULL;
8543 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
8544 if (_ptr_config_file) {
8545 NDR_PULL_ALLOC(ndr, r->config_file);
8547 r->config_file = NULL;
8549 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
8550 if (_ptr_help_file) {
8551 NDR_PULL_ALLOC(ndr, r->help_file);
8553 r->help_file = NULL;
8555 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
8556 if (_ptr_monitor_name) {
8557 NDR_PULL_ALLOC(ndr, r->monitor_name);
8559 r->monitor_name = NULL;
8561 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
8562 if (_ptr_default_datatype) {
8563 NDR_PULL_ALLOC(ndr, r->default_datatype);
8565 r->default_datatype = NULL;
8567 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
8568 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
8569 if (_ptr_dependent_files) {
8570 NDR_PULL_ALLOC(ndr, r->dependent_files);
8572 r->dependent_files = NULL;
8574 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8576 if (ndr_flags & NDR_BUFFERS) {
8577 if (r->driver_name) {
8578 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8579 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8580 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
8581 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
8582 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
8583 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));
8585 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
8586 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
8587 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8589 if (r->architecture) {
8590 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
8591 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
8592 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
8593 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
8594 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
8595 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));
8597 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
8598 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
8599 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
8601 if (r->driver_path) {
8602 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
8603 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
8604 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
8605 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
8606 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
8607 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));
8609 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
8610 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
8611 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
8614 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8615 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
8616 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
8617 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
8618 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
8619 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));
8621 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
8622 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
8623 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
8625 if (r->config_file) {
8626 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8627 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
8628 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
8629 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
8630 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
8631 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));
8633 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
8634 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
8635 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
8638 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8639 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
8640 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
8641 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
8642 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
8643 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));
8645 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
8646 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
8647 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
8649 if (r->monitor_name) {
8650 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8651 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
8652 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
8653 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
8654 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
8655 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));
8657 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
8658 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
8659 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
8661 if (r->default_datatype) {
8662 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
8663 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
8664 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
8665 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
8666 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
8667 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));
8669 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
8670 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
8671 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
8673 if (r->dependent_files) {
8674 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
8675 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
8676 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8677 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
8680 return NDR_ERR_SUCCESS;
8683 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo3 *r)
8685 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo3");
8687 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
8688 ndr_print_ptr(ndr, "driver_name", r->driver_name);
8690 if (r->driver_name) {
8691 ndr_print_string(ndr, "driver_name", r->driver_name);
8694 ndr_print_ptr(ndr, "architecture", r->architecture);
8696 if (r->architecture) {
8697 ndr_print_string(ndr, "architecture", r->architecture);
8700 ndr_print_ptr(ndr, "driver_path", r->driver_path);
8702 if (r->driver_path) {
8703 ndr_print_string(ndr, "driver_path", r->driver_path);
8706 ndr_print_ptr(ndr, "data_file", r->data_file);
8709 ndr_print_string(ndr, "data_file", r->data_file);
8712 ndr_print_ptr(ndr, "config_file", r->config_file);
8714 if (r->config_file) {
8715 ndr_print_string(ndr, "config_file", r->config_file);
8718 ndr_print_ptr(ndr, "help_file", r->help_file);
8721 ndr_print_string(ndr, "help_file", r->help_file);
8724 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
8726 if (r->monitor_name) {
8727 ndr_print_string(ndr, "monitor_name", r->monitor_name);
8730 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
8732 if (r->default_datatype) {
8733 ndr_print_string(ndr, "default_datatype", r->default_datatype);
8736 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);
8737 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
8739 if (r->dependent_files) {
8740 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
8746 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo4 *r)
8748 if (ndr_flags & NDR_SCALARS) {
8749 NDR_CHECK(ndr_push_align(ndr, 5));
8750 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
8751 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
8752 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
8753 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
8754 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
8755 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
8756 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
8757 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
8758 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
8759 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8760 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
8761 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8762 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
8763 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8765 if (ndr_flags & NDR_BUFFERS) {
8766 if (r->driver_name) {
8767 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8768 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8769 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8770 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8772 if (r->architecture) {
8773 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8774 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8775 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8776 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8778 if (r->driver_path) {
8779 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8780 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8781 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8782 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8785 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8786 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8787 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8788 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8790 if (r->config_file) {
8791 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8792 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8793 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8794 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8797 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8798 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8799 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8800 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8802 if (r->monitor_name) {
8803 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8804 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8805 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8806 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8808 if (r->default_datatype) {
8809 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8810 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8811 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8812 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8814 if (r->dependent_files) {
8815 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8817 if (r->previous_names) {
8818 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
8821 return NDR_ERR_SUCCESS;
8824 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo4 *r)
8826 uint32_t _ptr_driver_name;
8827 TALLOC_CTX *_mem_save_driver_name_0;
8828 uint32_t _ptr_architecture;
8829 TALLOC_CTX *_mem_save_architecture_0;
8830 uint32_t _ptr_driver_path;
8831 TALLOC_CTX *_mem_save_driver_path_0;
8832 uint32_t _ptr_data_file;
8833 TALLOC_CTX *_mem_save_data_file_0;
8834 uint32_t _ptr_config_file;
8835 TALLOC_CTX *_mem_save_config_file_0;
8836 uint32_t _ptr_help_file;
8837 TALLOC_CTX *_mem_save_help_file_0;
8838 uint32_t _ptr_monitor_name;
8839 TALLOC_CTX *_mem_save_monitor_name_0;
8840 uint32_t _ptr_default_datatype;
8841 TALLOC_CTX *_mem_save_default_datatype_0;
8842 uint32_t _ptr_dependent_files;
8843 TALLOC_CTX *_mem_save_dependent_files_0;
8844 uint32_t _ptr_previous_names;
8845 TALLOC_CTX *_mem_save_previous_names_0;
8846 if (ndr_flags & NDR_SCALARS) {
8847 NDR_CHECK(ndr_pull_align(ndr, 5));
8848 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
8849 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8850 if (_ptr_driver_name) {
8851 NDR_PULL_ALLOC(ndr, r->driver_name);
8853 r->driver_name = NULL;
8855 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
8856 if (_ptr_architecture) {
8857 NDR_PULL_ALLOC(ndr, r->architecture);
8859 r->architecture = NULL;
8861 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
8862 if (_ptr_driver_path) {
8863 NDR_PULL_ALLOC(ndr, r->driver_path);
8865 r->driver_path = NULL;
8867 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
8868 if (_ptr_data_file) {
8869 NDR_PULL_ALLOC(ndr, r->data_file);
8871 r->data_file = NULL;
8873 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
8874 if (_ptr_config_file) {
8875 NDR_PULL_ALLOC(ndr, r->config_file);
8877 r->config_file = NULL;
8879 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
8880 if (_ptr_help_file) {
8881 NDR_PULL_ALLOC(ndr, r->help_file);
8883 r->help_file = NULL;
8885 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
8886 if (_ptr_monitor_name) {
8887 NDR_PULL_ALLOC(ndr, r->monitor_name);
8889 r->monitor_name = NULL;
8891 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
8892 if (_ptr_default_datatype) {
8893 NDR_PULL_ALLOC(ndr, r->default_datatype);
8895 r->default_datatype = NULL;
8897 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
8898 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
8899 if (_ptr_dependent_files) {
8900 NDR_PULL_ALLOC(ndr, r->dependent_files);
8902 r->dependent_files = NULL;
8904 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
8905 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
8906 if (_ptr_previous_names) {
8907 NDR_PULL_ALLOC(ndr, r->previous_names);
8909 r->previous_names = NULL;
8911 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8913 if (ndr_flags & NDR_BUFFERS) {
8914 if (r->driver_name) {
8915 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8916 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8917 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
8918 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
8919 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
8920 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));
8922 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
8923 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
8924 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8926 if (r->architecture) {
8927 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
8928 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
8929 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
8930 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
8931 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
8932 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));
8934 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
8935 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
8936 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
8938 if (r->driver_path) {
8939 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
8940 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
8941 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
8942 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
8943 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
8944 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));
8946 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
8947 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
8948 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
8951 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8952 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
8953 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
8954 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
8955 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
8956 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));
8958 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
8959 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
8960 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
8962 if (r->config_file) {
8963 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8964 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
8965 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
8966 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
8967 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
8968 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));
8970 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
8971 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
8972 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
8975 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8976 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
8977 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
8978 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
8979 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
8980 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));
8982 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
8983 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
8984 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
8986 if (r->monitor_name) {
8987 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8988 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
8989 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
8990 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
8991 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
8992 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));
8994 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
8995 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
8996 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
8998 if (r->default_datatype) {
8999 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
9000 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
9001 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
9002 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
9003 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
9004 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));
9006 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
9007 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
9008 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
9010 if (r->dependent_files) {
9011 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
9012 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
9013 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
9014 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
9016 if (r->previous_names) {
9017 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
9018 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
9019 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
9020 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
9023 return NDR_ERR_SUCCESS;
9026 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo4 *r)
9028 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo4");
9030 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
9031 ndr_print_ptr(ndr, "driver_name", r->driver_name);
9033 if (r->driver_name) {
9034 ndr_print_string(ndr, "driver_name", r->driver_name);
9037 ndr_print_ptr(ndr, "architecture", r->architecture);
9039 if (r->architecture) {
9040 ndr_print_string(ndr, "architecture", r->architecture);
9043 ndr_print_ptr(ndr, "driver_path", r->driver_path);
9045 if (r->driver_path) {
9046 ndr_print_string(ndr, "driver_path", r->driver_path);
9049 ndr_print_ptr(ndr, "data_file", r->data_file);
9052 ndr_print_string(ndr, "data_file", r->data_file);
9055 ndr_print_ptr(ndr, "config_file", r->config_file);
9057 if (r->config_file) {
9058 ndr_print_string(ndr, "config_file", r->config_file);
9061 ndr_print_ptr(ndr, "help_file", r->help_file);
9064 ndr_print_string(ndr, "help_file", r->help_file);
9067 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
9069 if (r->monitor_name) {
9070 ndr_print_string(ndr, "monitor_name", r->monitor_name);
9073 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
9075 if (r->default_datatype) {
9076 ndr_print_string(ndr, "default_datatype", r->default_datatype);
9079 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);
9080 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
9082 if (r->dependent_files) {
9083 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
9086 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);
9087 ndr_print_ptr(ndr, "previous_names", r->previous_names);
9089 if (r->previous_names) {
9090 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
9096 static enum ndr_err_code ndr_push_spoolss_DriverAttributes(struct ndr_push *ndr, int ndr_flags, uint32_t r)
9098 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
9099 return NDR_ERR_SUCCESS;
9102 static enum ndr_err_code ndr_pull_spoolss_DriverAttributes(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
9105 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
9107 return NDR_ERR_SUCCESS;
9110 _PUBLIC_ void ndr_print_spoolss_DriverAttributes(struct ndr_print *ndr, const char *name, uint32_t r)
9112 ndr_print_uint32(ndr, name, r);
9114 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_DRIVER_PACKAGE_AWARE", PRINTER_DRIVER_PACKAGE_AWARE, r);
9118 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo6 *r)
9120 if (ndr_flags & NDR_SCALARS) {
9121 NDR_CHECK(ndr_push_align(ndr, 8));
9122 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
9123 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
9124 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
9125 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
9126 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
9127 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
9128 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
9129 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
9130 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
9131 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9132 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
9133 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9134 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
9135 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
9136 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
9137 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_name));
9138 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_url));
9139 NDR_CHECK(ndr_push_unique_ptr(ndr, r->hardware_id));
9140 NDR_CHECK(ndr_push_unique_ptr(ndr, r->provider));
9141 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
9143 if (ndr_flags & NDR_BUFFERS) {
9144 if (r->driver_name) {
9145 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
9146 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9147 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
9148 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9150 if (r->architecture) {
9151 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
9152 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9153 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
9154 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9156 if (r->driver_path) {
9157 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
9158 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9159 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
9160 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9163 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
9164 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9165 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
9166 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9168 if (r->config_file) {
9169 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
9170 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9171 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
9172 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9175 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
9176 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9177 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
9178 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9180 if (r->monitor_name) {
9181 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
9182 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9183 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
9184 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9186 if (r->default_datatype) {
9187 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
9188 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9189 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
9190 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9192 if (r->dependent_files) {
9193 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
9195 if (r->previous_names) {
9196 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
9198 if (r->manufacturer_name) {
9199 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
9200 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9201 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
9202 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_name, ndr_charset_length(r->manufacturer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9204 if (r->manufacturer_url) {
9205 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
9206 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9207 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
9208 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_url, ndr_charset_length(r->manufacturer_url, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9210 if (r->hardware_id) {
9211 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
9212 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9213 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
9214 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_id, ndr_charset_length(r->hardware_id, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9217 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
9218 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9219 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
9220 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->provider, ndr_charset_length(r->provider, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9223 return NDR_ERR_SUCCESS;
9226 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo6 *r)
9228 uint32_t _ptr_driver_name;
9229 TALLOC_CTX *_mem_save_driver_name_0;
9230 uint32_t _ptr_architecture;
9231 TALLOC_CTX *_mem_save_architecture_0;
9232 uint32_t _ptr_driver_path;
9233 TALLOC_CTX *_mem_save_driver_path_0;
9234 uint32_t _ptr_data_file;
9235 TALLOC_CTX *_mem_save_data_file_0;
9236 uint32_t _ptr_config_file;
9237 TALLOC_CTX *_mem_save_config_file_0;
9238 uint32_t _ptr_help_file;
9239 TALLOC_CTX *_mem_save_help_file_0;
9240 uint32_t _ptr_monitor_name;
9241 TALLOC_CTX *_mem_save_monitor_name_0;
9242 uint32_t _ptr_default_datatype;
9243 TALLOC_CTX *_mem_save_default_datatype_0;
9244 uint32_t _ptr_dependent_files;
9245 TALLOC_CTX *_mem_save_dependent_files_0;
9246 uint32_t _ptr_previous_names;
9247 TALLOC_CTX *_mem_save_previous_names_0;
9248 uint32_t _ptr_manufacturer_name;
9249 TALLOC_CTX *_mem_save_manufacturer_name_0;
9250 uint32_t _ptr_manufacturer_url;
9251 TALLOC_CTX *_mem_save_manufacturer_url_0;
9252 uint32_t _ptr_hardware_id;
9253 TALLOC_CTX *_mem_save_hardware_id_0;
9254 uint32_t _ptr_provider;
9255 TALLOC_CTX *_mem_save_provider_0;
9256 if (ndr_flags & NDR_SCALARS) {
9257 NDR_CHECK(ndr_pull_align(ndr, 8));
9258 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
9259 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
9260 if (_ptr_driver_name) {
9261 NDR_PULL_ALLOC(ndr, r->driver_name);
9263 r->driver_name = NULL;
9265 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
9266 if (_ptr_architecture) {
9267 NDR_PULL_ALLOC(ndr, r->architecture);
9269 r->architecture = NULL;
9271 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
9272 if (_ptr_driver_path) {
9273 NDR_PULL_ALLOC(ndr, r->driver_path);
9275 r->driver_path = NULL;
9277 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
9278 if (_ptr_data_file) {
9279 NDR_PULL_ALLOC(ndr, r->data_file);
9281 r->data_file = NULL;
9283 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
9284 if (_ptr_config_file) {
9285 NDR_PULL_ALLOC(ndr, r->config_file);
9287 r->config_file = NULL;
9289 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
9290 if (_ptr_help_file) {
9291 NDR_PULL_ALLOC(ndr, r->help_file);
9293 r->help_file = NULL;
9295 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
9296 if (_ptr_monitor_name) {
9297 NDR_PULL_ALLOC(ndr, r->monitor_name);
9299 r->monitor_name = NULL;
9301 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
9302 if (_ptr_default_datatype) {
9303 NDR_PULL_ALLOC(ndr, r->default_datatype);
9305 r->default_datatype = NULL;
9307 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
9308 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
9309 if (_ptr_dependent_files) {
9310 NDR_PULL_ALLOC(ndr, r->dependent_files);
9312 r->dependent_files = NULL;
9314 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
9315 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
9316 if (_ptr_previous_names) {
9317 NDR_PULL_ALLOC(ndr, r->previous_names);
9319 r->previous_names = NULL;
9321 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
9322 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
9323 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
9324 if (_ptr_manufacturer_name) {
9325 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
9327 r->manufacturer_name = NULL;
9329 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
9330 if (_ptr_manufacturer_url) {
9331 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
9333 r->manufacturer_url = NULL;
9335 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
9336 if (_ptr_hardware_id) {
9337 NDR_PULL_ALLOC(ndr, r->hardware_id);
9339 r->hardware_id = NULL;
9341 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
9342 if (_ptr_provider) {
9343 NDR_PULL_ALLOC(ndr, r->provider);
9347 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
9349 if (ndr_flags & NDR_BUFFERS) {
9350 if (r->driver_name) {
9351 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9352 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
9353 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
9354 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
9355 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
9356 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));
9358 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
9359 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
9360 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
9362 if (r->architecture) {
9363 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
9364 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
9365 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
9366 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
9367 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
9368 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));
9370 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
9371 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
9372 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
9374 if (r->driver_path) {
9375 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
9376 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
9377 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
9378 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
9379 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
9380 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));
9382 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
9383 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
9384 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
9387 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9388 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
9389 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
9390 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
9391 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
9392 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));
9394 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
9395 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
9396 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
9398 if (r->config_file) {
9399 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9400 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
9401 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
9402 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
9403 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
9404 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));
9406 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
9407 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
9408 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
9411 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9412 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
9413 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
9414 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
9415 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
9416 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));
9418 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
9419 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
9420 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
9422 if (r->monitor_name) {
9423 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9424 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
9425 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
9426 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
9427 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
9428 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));
9430 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
9431 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
9432 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
9434 if (r->default_datatype) {
9435 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
9436 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
9437 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
9438 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
9439 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
9440 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));
9442 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
9443 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
9444 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
9446 if (r->dependent_files) {
9447 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
9448 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
9449 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
9450 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
9452 if (r->previous_names) {
9453 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
9454 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
9455 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
9456 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
9458 if (r->manufacturer_name) {
9459 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9460 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
9461 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_name));
9462 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_name));
9463 if (ndr_get_array_length(ndr, &r->manufacturer_name) > ndr_get_array_size(ndr, &r->manufacturer_name)) {
9464 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));
9466 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t)));
9467 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_name, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t), CH_UTF16));
9468 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
9470 if (r->manufacturer_url) {
9471 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
9472 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
9473 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_url));
9474 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_url));
9475 if (ndr_get_array_length(ndr, &r->manufacturer_url) > ndr_get_array_size(ndr, &r->manufacturer_url)) {
9476 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));
9478 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t)));
9479 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_url, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t), CH_UTF16));
9480 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
9482 if (r->hardware_id) {
9483 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
9484 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
9485 NDR_CHECK(ndr_pull_array_size(ndr, &r->hardware_id));
9486 NDR_CHECK(ndr_pull_array_length(ndr, &r->hardware_id));
9487 if (ndr_get_array_length(ndr, &r->hardware_id) > ndr_get_array_size(ndr, &r->hardware_id)) {
9488 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));
9490 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t)));
9491 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_id, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t), CH_UTF16));
9492 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
9495 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
9496 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
9497 NDR_CHECK(ndr_pull_array_size(ndr, &r->provider));
9498 NDR_CHECK(ndr_pull_array_length(ndr, &r->provider));
9499 if (ndr_get_array_length(ndr, &r->provider) > ndr_get_array_size(ndr, &r->provider)) {
9500 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));
9502 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t)));
9503 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->provider, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t), CH_UTF16));
9504 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
9507 return NDR_ERR_SUCCESS;
9510 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo6 *r)
9512 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo6");
9514 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
9515 ndr_print_ptr(ndr, "driver_name", r->driver_name);
9517 if (r->driver_name) {
9518 ndr_print_string(ndr, "driver_name", r->driver_name);
9521 ndr_print_ptr(ndr, "architecture", r->architecture);
9523 if (r->architecture) {
9524 ndr_print_string(ndr, "architecture", r->architecture);
9527 ndr_print_ptr(ndr, "driver_path", r->driver_path);
9529 if (r->driver_path) {
9530 ndr_print_string(ndr, "driver_path", r->driver_path);
9533 ndr_print_ptr(ndr, "data_file", r->data_file);
9536 ndr_print_string(ndr, "data_file", r->data_file);
9539 ndr_print_ptr(ndr, "config_file", r->config_file);
9541 if (r->config_file) {
9542 ndr_print_string(ndr, "config_file", r->config_file);
9545 ndr_print_ptr(ndr, "help_file", r->help_file);
9548 ndr_print_string(ndr, "help_file", r->help_file);
9551 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
9553 if (r->monitor_name) {
9554 ndr_print_string(ndr, "monitor_name", r->monitor_name);
9557 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
9559 if (r->default_datatype) {
9560 ndr_print_string(ndr, "default_datatype", r->default_datatype);
9563 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);
9564 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
9566 if (r->dependent_files) {
9567 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
9570 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);
9571 ndr_print_ptr(ndr, "previous_names", r->previous_names);
9573 if (r->previous_names) {
9574 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
9577 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
9578 ndr_print_hyper(ndr, "driver_version", r->driver_version);
9579 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
9581 if (r->manufacturer_name) {
9582 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
9585 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
9587 if (r->manufacturer_url) {
9588 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
9591 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
9593 if (r->hardware_id) {
9594 ndr_print_string(ndr, "hardware_id", r->hardware_id);
9597 ndr_print_ptr(ndr, "provider", r->provider);
9600 ndr_print_string(ndr, "provider", r->provider);
9606 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo8(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo8 *r)
9608 if (ndr_flags & NDR_SCALARS) {
9609 NDR_CHECK(ndr_push_align(ndr, 8));
9610 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
9611 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
9612 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
9613 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
9614 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
9615 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
9616 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
9617 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
9618 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
9619 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9620 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
9621 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9622 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
9623 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
9624 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
9625 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_name));
9626 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_url));
9627 NDR_CHECK(ndr_push_unique_ptr(ndr, r->hardware_id));
9628 NDR_CHECK(ndr_push_unique_ptr(ndr, r->provider));
9629 NDR_CHECK(ndr_push_unique_ptr(ndr, r->print_processor));
9630 NDR_CHECK(ndr_push_unique_ptr(ndr, r->vendor_setup));
9631 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->color_profiles, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9632 NDR_CHECK(ndr_push_unique_ptr(ndr, r->color_profiles));
9633 NDR_CHECK(ndr_push_unique_ptr(ndr, r->inf_path));
9634 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->printer_driver_attributes));
9635 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->core_driver_dependencies, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9636 NDR_CHECK(ndr_push_unique_ptr(ndr, r->core_driver_dependencies));
9637 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->min_inbox_driver_ver_date));
9638 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->min_inbox_driver_ver_version));
9639 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
9641 if (ndr_flags & NDR_BUFFERS) {
9642 if (r->driver_name) {
9643 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
9644 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9645 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
9646 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9648 if (r->architecture) {
9649 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
9650 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9651 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
9652 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9654 if (r->driver_path) {
9655 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
9656 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9657 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
9658 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9661 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
9662 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9663 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
9664 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9666 if (r->config_file) {
9667 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
9668 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9669 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
9670 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9673 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
9674 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9675 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
9676 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9678 if (r->monitor_name) {
9679 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
9680 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9681 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
9682 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9684 if (r->default_datatype) {
9685 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
9686 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9687 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
9688 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9690 if (r->dependent_files) {
9691 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
9693 if (r->previous_names) {
9694 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
9696 if (r->manufacturer_name) {
9697 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
9698 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9699 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
9700 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_name, ndr_charset_length(r->manufacturer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9702 if (r->manufacturer_url) {
9703 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
9704 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9705 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
9706 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_url, ndr_charset_length(r->manufacturer_url, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9708 if (r->hardware_id) {
9709 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
9710 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9711 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
9712 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_id, ndr_charset_length(r->hardware_id, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9715 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
9716 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9717 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
9718 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->provider, ndr_charset_length(r->provider, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9720 if (r->print_processor) {
9721 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
9722 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9723 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
9724 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->print_processor, ndr_charset_length(r->print_processor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9726 if (r->vendor_setup) {
9727 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->vendor_setup, 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->vendor_setup, CH_UTF16)));
9730 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->vendor_setup, ndr_charset_length(r->vendor_setup, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9732 if (r->color_profiles) {
9733 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->color_profiles));
9736 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->inf_path, CH_UTF16)));
9737 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9738 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->inf_path, CH_UTF16)));
9739 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->inf_path, ndr_charset_length(r->inf_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9741 if (r->core_driver_dependencies) {
9742 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->core_driver_dependencies));
9745 return NDR_ERR_SUCCESS;
9748 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo8(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo8 *r)
9750 uint32_t _ptr_driver_name;
9751 TALLOC_CTX *_mem_save_driver_name_0;
9752 uint32_t _ptr_architecture;
9753 TALLOC_CTX *_mem_save_architecture_0;
9754 uint32_t _ptr_driver_path;
9755 TALLOC_CTX *_mem_save_driver_path_0;
9756 uint32_t _ptr_data_file;
9757 TALLOC_CTX *_mem_save_data_file_0;
9758 uint32_t _ptr_config_file;
9759 TALLOC_CTX *_mem_save_config_file_0;
9760 uint32_t _ptr_help_file;
9761 TALLOC_CTX *_mem_save_help_file_0;
9762 uint32_t _ptr_monitor_name;
9763 TALLOC_CTX *_mem_save_monitor_name_0;
9764 uint32_t _ptr_default_datatype;
9765 TALLOC_CTX *_mem_save_default_datatype_0;
9766 uint32_t _ptr_dependent_files;
9767 TALLOC_CTX *_mem_save_dependent_files_0;
9768 uint32_t _ptr_previous_names;
9769 TALLOC_CTX *_mem_save_previous_names_0;
9770 uint32_t _ptr_manufacturer_name;
9771 TALLOC_CTX *_mem_save_manufacturer_name_0;
9772 uint32_t _ptr_manufacturer_url;
9773 TALLOC_CTX *_mem_save_manufacturer_url_0;
9774 uint32_t _ptr_hardware_id;
9775 TALLOC_CTX *_mem_save_hardware_id_0;
9776 uint32_t _ptr_provider;
9777 TALLOC_CTX *_mem_save_provider_0;
9778 uint32_t _ptr_print_processor;
9779 TALLOC_CTX *_mem_save_print_processor_0;
9780 uint32_t _ptr_vendor_setup;
9781 TALLOC_CTX *_mem_save_vendor_setup_0;
9782 uint32_t _ptr_color_profiles;
9783 TALLOC_CTX *_mem_save_color_profiles_0;
9784 uint32_t _ptr_inf_path;
9785 TALLOC_CTX *_mem_save_inf_path_0;
9786 uint32_t _ptr_core_driver_dependencies;
9787 TALLOC_CTX *_mem_save_core_driver_dependencies_0;
9788 if (ndr_flags & NDR_SCALARS) {
9789 NDR_CHECK(ndr_pull_align(ndr, 8));
9790 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
9791 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
9792 if (_ptr_driver_name) {
9793 NDR_PULL_ALLOC(ndr, r->driver_name);
9795 r->driver_name = NULL;
9797 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
9798 if (_ptr_architecture) {
9799 NDR_PULL_ALLOC(ndr, r->architecture);
9801 r->architecture = NULL;
9803 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
9804 if (_ptr_driver_path) {
9805 NDR_PULL_ALLOC(ndr, r->driver_path);
9807 r->driver_path = NULL;
9809 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
9810 if (_ptr_data_file) {
9811 NDR_PULL_ALLOC(ndr, r->data_file);
9813 r->data_file = NULL;
9815 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
9816 if (_ptr_config_file) {
9817 NDR_PULL_ALLOC(ndr, r->config_file);
9819 r->config_file = NULL;
9821 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
9822 if (_ptr_help_file) {
9823 NDR_PULL_ALLOC(ndr, r->help_file);
9825 r->help_file = NULL;
9827 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
9828 if (_ptr_monitor_name) {
9829 NDR_PULL_ALLOC(ndr, r->monitor_name);
9831 r->monitor_name = NULL;
9833 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
9834 if (_ptr_default_datatype) {
9835 NDR_PULL_ALLOC(ndr, r->default_datatype);
9837 r->default_datatype = NULL;
9839 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
9840 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
9841 if (_ptr_dependent_files) {
9842 NDR_PULL_ALLOC(ndr, r->dependent_files);
9844 r->dependent_files = NULL;
9846 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
9847 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
9848 if (_ptr_previous_names) {
9849 NDR_PULL_ALLOC(ndr, r->previous_names);
9851 r->previous_names = NULL;
9853 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
9854 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
9855 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
9856 if (_ptr_manufacturer_name) {
9857 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
9859 r->manufacturer_name = NULL;
9861 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
9862 if (_ptr_manufacturer_url) {
9863 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
9865 r->manufacturer_url = NULL;
9867 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
9868 if (_ptr_hardware_id) {
9869 NDR_PULL_ALLOC(ndr, r->hardware_id);
9871 r->hardware_id = NULL;
9873 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
9874 if (_ptr_provider) {
9875 NDR_PULL_ALLOC(ndr, r->provider);
9879 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
9880 if (_ptr_print_processor) {
9881 NDR_PULL_ALLOC(ndr, r->print_processor);
9883 r->print_processor = NULL;
9885 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_vendor_setup));
9886 if (_ptr_vendor_setup) {
9887 NDR_PULL_ALLOC(ndr, r->vendor_setup);
9889 r->vendor_setup = NULL;
9891 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_color_profiles));
9892 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_color_profiles));
9893 if (_ptr_color_profiles) {
9894 NDR_PULL_ALLOC(ndr, r->color_profiles);
9896 r->color_profiles = NULL;
9898 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_inf_path));
9899 if (_ptr_inf_path) {
9900 NDR_PULL_ALLOC(ndr, r->inf_path);
9904 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->printer_driver_attributes));
9905 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_core_driver_dependencies));
9906 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_core_driver_dependencies));
9907 if (_ptr_core_driver_dependencies) {
9908 NDR_PULL_ALLOC(ndr, r->core_driver_dependencies);
9910 r->core_driver_dependencies = NULL;
9912 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_date));
9913 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_version));
9914 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
9916 if (ndr_flags & NDR_BUFFERS) {
9917 if (r->driver_name) {
9918 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9919 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
9920 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
9921 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
9922 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
9923 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));
9925 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
9926 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
9927 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
9929 if (r->architecture) {
9930 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
9931 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
9932 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
9933 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
9934 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
9935 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));
9937 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
9938 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
9939 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
9941 if (r->driver_path) {
9942 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
9943 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
9944 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
9945 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
9946 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
9947 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));
9949 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
9950 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
9951 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
9954 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9955 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
9956 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
9957 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
9958 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
9959 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));
9961 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
9962 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
9963 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
9965 if (r->config_file) {
9966 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9967 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
9968 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
9969 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
9970 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
9971 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));
9973 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
9974 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
9975 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
9978 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9979 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
9980 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
9981 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
9982 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
9983 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));
9985 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
9986 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
9987 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
9989 if (r->monitor_name) {
9990 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9991 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
9992 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
9993 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
9994 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
9995 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));
9997 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
9998 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
9999 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
10001 if (r->default_datatype) {
10002 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
10003 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
10004 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
10005 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
10006 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
10007 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));
10009 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
10010 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
10011 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
10013 if (r->dependent_files) {
10014 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
10015 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
10016 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
10017 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
10019 if (r->previous_names) {
10020 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
10021 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
10022 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
10023 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
10025 if (r->manufacturer_name) {
10026 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10027 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
10028 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_name));
10029 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_name));
10030 if (ndr_get_array_length(ndr, &r->manufacturer_name) > ndr_get_array_size(ndr, &r->manufacturer_name)) {
10031 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));
10033 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t)));
10034 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_name, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t), CH_UTF16));
10035 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
10037 if (r->manufacturer_url) {
10038 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
10039 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
10040 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_url));
10041 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_url));
10042 if (ndr_get_array_length(ndr, &r->manufacturer_url) > ndr_get_array_size(ndr, &r->manufacturer_url)) {
10043 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));
10045 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t)));
10046 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_url, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t), CH_UTF16));
10047 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
10049 if (r->hardware_id) {
10050 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
10051 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
10052 NDR_CHECK(ndr_pull_array_size(ndr, &r->hardware_id));
10053 NDR_CHECK(ndr_pull_array_length(ndr, &r->hardware_id));
10054 if (ndr_get_array_length(ndr, &r->hardware_id) > ndr_get_array_size(ndr, &r->hardware_id)) {
10055 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));
10057 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t)));
10058 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_id, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t), CH_UTF16));
10059 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
10062 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
10063 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
10064 NDR_CHECK(ndr_pull_array_size(ndr, &r->provider));
10065 NDR_CHECK(ndr_pull_array_length(ndr, &r->provider));
10066 if (ndr_get_array_length(ndr, &r->provider) > ndr_get_array_size(ndr, &r->provider)) {
10067 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));
10069 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t)));
10070 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->provider, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t), CH_UTF16));
10071 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
10073 if (r->print_processor) {
10074 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
10075 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
10076 NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
10077 NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
10078 if (ndr_get_array_length(ndr, &r->print_processor) > ndr_get_array_size(ndr, &r->print_processor)) {
10079 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));
10081 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t)));
10082 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t), CH_UTF16));
10083 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
10085 if (r->vendor_setup) {
10086 _mem_save_vendor_setup_0 = NDR_PULL_GET_MEM_CTX(ndr);
10087 NDR_PULL_SET_MEM_CTX(ndr, r->vendor_setup, 0);
10088 NDR_CHECK(ndr_pull_array_size(ndr, &r->vendor_setup));
10089 NDR_CHECK(ndr_pull_array_length(ndr, &r->vendor_setup));
10090 if (ndr_get_array_length(ndr, &r->vendor_setup) > ndr_get_array_size(ndr, &r->vendor_setup)) {
10091 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));
10093 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->vendor_setup), sizeof(uint16_t)));
10094 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->vendor_setup, ndr_get_array_length(ndr, &r->vendor_setup), sizeof(uint16_t), CH_UTF16));
10095 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vendor_setup_0, 0);
10097 if (r->color_profiles) {
10098 _mem_save_color_profiles_0 = NDR_PULL_GET_MEM_CTX(ndr);
10099 NDR_PULL_SET_MEM_CTX(ndr, r->color_profiles, 0);
10100 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->color_profiles));
10101 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_color_profiles_0, 0);
10104 _mem_save_inf_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
10105 NDR_PULL_SET_MEM_CTX(ndr, r->inf_path, 0);
10106 NDR_CHECK(ndr_pull_array_size(ndr, &r->inf_path));
10107 NDR_CHECK(ndr_pull_array_length(ndr, &r->inf_path));
10108 if (ndr_get_array_length(ndr, &r->inf_path) > ndr_get_array_size(ndr, &r->inf_path)) {
10109 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));
10111 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->inf_path), sizeof(uint16_t)));
10112 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->inf_path, ndr_get_array_length(ndr, &r->inf_path), sizeof(uint16_t), CH_UTF16));
10113 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_inf_path_0, 0);
10115 if (r->core_driver_dependencies) {
10116 _mem_save_core_driver_dependencies_0 = NDR_PULL_GET_MEM_CTX(ndr);
10117 NDR_PULL_SET_MEM_CTX(ndr, r->core_driver_dependencies, 0);
10118 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->core_driver_dependencies));
10119 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_driver_dependencies_0, 0);
10122 return NDR_ERR_SUCCESS;
10125 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo8(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo8 *r)
10127 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo8");
10129 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
10130 ndr_print_ptr(ndr, "driver_name", r->driver_name);
10132 if (r->driver_name) {
10133 ndr_print_string(ndr, "driver_name", r->driver_name);
10136 ndr_print_ptr(ndr, "architecture", r->architecture);
10138 if (r->architecture) {
10139 ndr_print_string(ndr, "architecture", r->architecture);
10142 ndr_print_ptr(ndr, "driver_path", r->driver_path);
10144 if (r->driver_path) {
10145 ndr_print_string(ndr, "driver_path", r->driver_path);
10148 ndr_print_ptr(ndr, "data_file", r->data_file);
10150 if (r->data_file) {
10151 ndr_print_string(ndr, "data_file", r->data_file);
10154 ndr_print_ptr(ndr, "config_file", r->config_file);
10156 if (r->config_file) {
10157 ndr_print_string(ndr, "config_file", r->config_file);
10160 ndr_print_ptr(ndr, "help_file", r->help_file);
10162 if (r->help_file) {
10163 ndr_print_string(ndr, "help_file", r->help_file);
10166 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
10168 if (r->monitor_name) {
10169 ndr_print_string(ndr, "monitor_name", r->monitor_name);
10172 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
10174 if (r->default_datatype) {
10175 ndr_print_string(ndr, "default_datatype", r->default_datatype);
10178 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);
10179 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
10181 if (r->dependent_files) {
10182 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
10185 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);
10186 ndr_print_ptr(ndr, "previous_names", r->previous_names);
10188 if (r->previous_names) {
10189 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
10192 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
10193 ndr_print_hyper(ndr, "driver_version", r->driver_version);
10194 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
10196 if (r->manufacturer_name) {
10197 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
10200 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
10202 if (r->manufacturer_url) {
10203 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
10206 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
10208 if (r->hardware_id) {
10209 ndr_print_string(ndr, "hardware_id", r->hardware_id);
10212 ndr_print_ptr(ndr, "provider", r->provider);
10215 ndr_print_string(ndr, "provider", r->provider);
10218 ndr_print_ptr(ndr, "print_processor", r->print_processor);
10220 if (r->print_processor) {
10221 ndr_print_string(ndr, "print_processor", r->print_processor);
10224 ndr_print_ptr(ndr, "vendor_setup", r->vendor_setup);
10226 if (r->vendor_setup) {
10227 ndr_print_string(ndr, "vendor_setup", r->vendor_setup);
10230 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);
10231 ndr_print_ptr(ndr, "color_profiles", r->color_profiles);
10233 if (r->color_profiles) {
10234 ndr_print_spoolss_StringArray(ndr, "color_profiles", r->color_profiles);
10237 ndr_print_ptr(ndr, "inf_path", r->inf_path);
10240 ndr_print_string(ndr, "inf_path", r->inf_path);
10243 ndr_print_uint32(ndr, "printer_driver_attributes", r->printer_driver_attributes);
10244 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);
10245 ndr_print_ptr(ndr, "core_driver_dependencies", r->core_driver_dependencies);
10247 if (r->core_driver_dependencies) {
10248 ndr_print_spoolss_StringArray(ndr, "core_driver_dependencies", r->core_driver_dependencies);
10251 ndr_print_NTTIME(ndr, "min_inbox_driver_ver_date", r->min_inbox_driver_ver_date);
10252 ndr_print_hyper(ndr, "min_inbox_driver_ver_version", r->min_inbox_driver_ver_version);
10256 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_AddDriverInfo *r)
10258 if (ndr_flags & NDR_SCALARS) {
10259 int level = ndr_push_get_switch_value(ndr, r);
10260 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
10261 NDR_CHECK(ndr_push_union_align(ndr, 5));
10264 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
10268 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
10272 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
10276 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
10280 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info6));
10284 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info8));
10288 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
10291 if (ndr_flags & NDR_BUFFERS) {
10292 int level = ndr_push_get_switch_value(ndr, r);
10296 NDR_CHECK(ndr_push_spoolss_AddDriverInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
10302 NDR_CHECK(ndr_push_spoolss_AddDriverInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
10308 NDR_CHECK(ndr_push_spoolss_AddDriverInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3));
10314 NDR_CHECK(ndr_push_spoolss_AddDriverInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
10320 NDR_CHECK(ndr_push_spoolss_AddDriverInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->info6));
10326 NDR_CHECK(ndr_push_spoolss_AddDriverInfo8(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
10331 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
10334 return NDR_ERR_SUCCESS;
10337 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_AddDriverInfo *r)
10341 TALLOC_CTX *_mem_save_info1_0;
10342 TALLOC_CTX *_mem_save_info2_0;
10343 TALLOC_CTX *_mem_save_info3_0;
10344 TALLOC_CTX *_mem_save_info4_0;
10345 TALLOC_CTX *_mem_save_info6_0;
10346 TALLOC_CTX *_mem_save_info8_0;
10347 level = ndr_pull_get_switch_value(ndr, r);
10348 if (ndr_flags & NDR_SCALARS) {
10349 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
10350 if (_level != level) {
10351 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
10353 NDR_CHECK(ndr_pull_union_align(ndr, 5));
10356 uint32_t _ptr_info1;
10357 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
10359 NDR_PULL_ALLOC(ndr, r->info1);
10366 uint32_t _ptr_info2;
10367 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
10369 NDR_PULL_ALLOC(ndr, r->info2);
10376 uint32_t _ptr_info3;
10377 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
10379 NDR_PULL_ALLOC(ndr, r->info3);
10386 uint32_t _ptr_info4;
10387 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
10389 NDR_PULL_ALLOC(ndr, r->info4);
10396 uint32_t _ptr_info6;
10397 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info6));
10399 NDR_PULL_ALLOC(ndr, r->info6);
10406 uint32_t _ptr_info8;
10407 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info8));
10409 NDR_PULL_ALLOC(ndr, r->info8);
10416 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
10419 if (ndr_flags & NDR_BUFFERS) {
10423 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
10424 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
10425 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
10426 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
10432 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
10433 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
10434 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
10435 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
10441 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
10442 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
10443 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3));
10444 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
10450 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
10451 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
10452 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
10453 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
10459 _mem_save_info6_0 = NDR_PULL_GET_MEM_CTX(ndr);
10460 NDR_PULL_SET_MEM_CTX(ndr, r->info6, 0);
10461 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->info6));
10462 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info6_0, 0);
10468 _mem_save_info8_0 = NDR_PULL_GET_MEM_CTX(ndr);
10469 NDR_PULL_SET_MEM_CTX(ndr, r->info8, 0);
10470 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo8(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
10471 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info8_0, 0);
10476 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
10479 return NDR_ERR_SUCCESS;
10482 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo(struct ndr_print *ndr, const char *name, const union spoolss_AddDriverInfo *r)
10485 level = ndr_print_get_switch_value(ndr, r);
10486 ndr_print_union(ndr, name, level, "spoolss_AddDriverInfo");
10489 ndr_print_ptr(ndr, "info1", r->info1);
10492 ndr_print_spoolss_AddDriverInfo1(ndr, "info1", r->info1);
10498 ndr_print_ptr(ndr, "info2", r->info2);
10501 ndr_print_spoolss_AddDriverInfo2(ndr, "info2", r->info2);
10507 ndr_print_ptr(ndr, "info3", r->info3);
10510 ndr_print_spoolss_AddDriverInfo3(ndr, "info3", r->info3);
10516 ndr_print_ptr(ndr, "info4", r->info4);
10519 ndr_print_spoolss_AddDriverInfo4(ndr, "info4", r->info4);
10525 ndr_print_ptr(ndr, "info6", r->info6);
10528 ndr_print_spoolss_AddDriverInfo6(ndr, "info6", r->info6);
10534 ndr_print_ptr(ndr, "info8", r->info8);
10537 ndr_print_spoolss_AddDriverInfo8(ndr, "info8", r->info8);
10543 ndr_print_bad_level(ndr, name, level);
10547 static enum ndr_err_code ndr_push_spoolss_AddDriverInfoCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfoCtr *r)
10549 if (ndr_flags & NDR_SCALARS) {
10550 NDR_CHECK(ndr_push_align(ndr, 5));
10551 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
10552 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
10553 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr, NDR_SCALARS, &r->info));
10554 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
10556 if (ndr_flags & NDR_BUFFERS) {
10557 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr, NDR_BUFFERS, &r->info));
10559 return NDR_ERR_SUCCESS;
10562 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfoCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfoCtr *r)
10564 if (ndr_flags & NDR_SCALARS) {
10565 NDR_CHECK(ndr_pull_align(ndr, 5));
10566 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
10567 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
10568 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr, NDR_SCALARS, &r->info));
10569 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
10571 if (ndr_flags & NDR_BUFFERS) {
10572 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr, NDR_BUFFERS, &r->info));
10574 return NDR_ERR_SUCCESS;
10577 _PUBLIC_ void ndr_print_spoolss_AddDriverInfoCtr(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfoCtr *r)
10579 ndr_print_struct(ndr, name, "spoolss_AddDriverInfoCtr");
10581 ndr_print_uint32(ndr, "level", r->level);
10582 ndr_print_set_switch_value(ndr, &r->info, r->level);
10583 ndr_print_spoolss_AddDriverInfo(ndr, "info", &r->info);
10587 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo1 *r)
10589 if (ndr_flags & NDR_SCALARS) {
10590 NDR_CHECK(ndr_push_align(ndr, 5));
10592 uint32_t _flags_save_string = ndr->flags;
10593 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10594 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
10595 ndr->flags = _flags_save_string;
10597 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
10599 if (ndr_flags & NDR_BUFFERS) {
10601 uint32_t _flags_save_string = ndr->flags;
10602 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10603 if (r->driver_name) {
10604 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
10605 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
10607 ndr->flags = _flags_save_string;
10610 return NDR_ERR_SUCCESS;
10613 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo1 *r)
10615 uint32_t _ptr_driver_name;
10616 TALLOC_CTX *_mem_save_driver_name_0;
10617 if (ndr_flags & NDR_SCALARS) {
10618 NDR_CHECK(ndr_pull_align(ndr, 5));
10620 uint32_t _flags_save_string = ndr->flags;
10621 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10622 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
10623 if (_ptr_driver_name) {
10624 NDR_PULL_ALLOC(ndr, r->driver_name);
10625 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
10627 r->driver_name = NULL;
10629 ndr->flags = _flags_save_string;
10631 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
10633 if (ndr_flags & NDR_BUFFERS) {
10635 uint32_t _flags_save_string = ndr->flags;
10636 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10637 if (r->driver_name) {
10638 uint32_t _relative_save_offset;
10639 _relative_save_offset = ndr->offset;
10640 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
10641 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10642 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
10643 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
10644 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
10645 if (ndr->offset > ndr->relative_highest_offset) {
10646 ndr->relative_highest_offset = ndr->offset;
10648 ndr->offset = _relative_save_offset;
10650 ndr->flags = _flags_save_string;
10653 return NDR_ERR_SUCCESS;
10656 _PUBLIC_ void ndr_print_spoolss_DriverInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo1 *r)
10658 ndr_print_struct(ndr, name, "spoolss_DriverInfo1");
10660 ndr_print_ptr(ndr, "driver_name", r->driver_name);
10662 if (r->driver_name) {
10663 ndr_print_string(ndr, "driver_name", r->driver_name);
10669 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo1(const struct spoolss_DriverInfo1 *r, struct smb_iconv_convenience *ic, int flags)
10671 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo1, ic);
10674 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo2 *r)
10676 if (ndr_flags & NDR_SCALARS) {
10677 NDR_CHECK(ndr_push_align(ndr, 5));
10678 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
10680 uint32_t _flags_save_string = ndr->flags;
10681 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10682 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
10683 ndr->flags = _flags_save_string;
10686 uint32_t _flags_save_string = ndr->flags;
10687 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10688 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
10689 ndr->flags = _flags_save_string;
10692 uint32_t _flags_save_string = ndr->flags;
10693 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10694 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
10695 ndr->flags = _flags_save_string;
10698 uint32_t _flags_save_string = ndr->flags;
10699 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10700 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
10701 ndr->flags = _flags_save_string;
10704 uint32_t _flags_save_string = ndr->flags;
10705 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10706 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
10707 ndr->flags = _flags_save_string;
10709 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
10711 if (ndr_flags & NDR_BUFFERS) {
10713 uint32_t _flags_save_string = ndr->flags;
10714 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10715 if (r->driver_name) {
10716 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
10717 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
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->architecture) {
10725 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
10726 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
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->driver_path) {
10734 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
10735 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
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->data_file) {
10743 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
10744 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
10746 ndr->flags = _flags_save_string;
10749 uint32_t _flags_save_string = ndr->flags;
10750 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10751 if (r->config_file) {
10752 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
10753 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
10755 ndr->flags = _flags_save_string;
10758 return NDR_ERR_SUCCESS;
10761 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo2 *r)
10763 uint32_t _ptr_driver_name;
10764 TALLOC_CTX *_mem_save_driver_name_0;
10765 uint32_t _ptr_architecture;
10766 TALLOC_CTX *_mem_save_architecture_0;
10767 uint32_t _ptr_driver_path;
10768 TALLOC_CTX *_mem_save_driver_path_0;
10769 uint32_t _ptr_data_file;
10770 TALLOC_CTX *_mem_save_data_file_0;
10771 uint32_t _ptr_config_file;
10772 TALLOC_CTX *_mem_save_config_file_0;
10773 if (ndr_flags & NDR_SCALARS) {
10774 NDR_CHECK(ndr_pull_align(ndr, 5));
10775 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
10777 uint32_t _flags_save_string = ndr->flags;
10778 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10779 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
10780 if (_ptr_driver_name) {
10781 NDR_PULL_ALLOC(ndr, r->driver_name);
10782 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
10784 r->driver_name = NULL;
10786 ndr->flags = _flags_save_string;
10789 uint32_t _flags_save_string = ndr->flags;
10790 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10791 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
10792 if (_ptr_architecture) {
10793 NDR_PULL_ALLOC(ndr, r->architecture);
10794 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
10796 r->architecture = NULL;
10798 ndr->flags = _flags_save_string;
10801 uint32_t _flags_save_string = ndr->flags;
10802 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10803 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
10804 if (_ptr_driver_path) {
10805 NDR_PULL_ALLOC(ndr, r->driver_path);
10806 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
10808 r->driver_path = NULL;
10810 ndr->flags = _flags_save_string;
10813 uint32_t _flags_save_string = ndr->flags;
10814 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10815 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
10816 if (_ptr_data_file) {
10817 NDR_PULL_ALLOC(ndr, r->data_file);
10818 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
10820 r->data_file = NULL;
10822 ndr->flags = _flags_save_string;
10825 uint32_t _flags_save_string = ndr->flags;
10826 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10827 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
10828 if (_ptr_config_file) {
10829 NDR_PULL_ALLOC(ndr, r->config_file);
10830 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
10832 r->config_file = NULL;
10834 ndr->flags = _flags_save_string;
10836 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
10838 if (ndr_flags & NDR_BUFFERS) {
10840 uint32_t _flags_save_string = ndr->flags;
10841 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10842 if (r->driver_name) {
10843 uint32_t _relative_save_offset;
10844 _relative_save_offset = ndr->offset;
10845 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
10846 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10847 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
10848 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
10849 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
10850 if (ndr->offset > ndr->relative_highest_offset) {
10851 ndr->relative_highest_offset = ndr->offset;
10853 ndr->offset = _relative_save_offset;
10855 ndr->flags = _flags_save_string;
10858 uint32_t _flags_save_string = ndr->flags;
10859 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10860 if (r->architecture) {
10861 uint32_t _relative_save_offset;
10862 _relative_save_offset = ndr->offset;
10863 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
10864 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
10865 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
10866 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
10867 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
10868 if (ndr->offset > ndr->relative_highest_offset) {
10869 ndr->relative_highest_offset = ndr->offset;
10871 ndr->offset = _relative_save_offset;
10873 ndr->flags = _flags_save_string;
10876 uint32_t _flags_save_string = ndr->flags;
10877 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10878 if (r->driver_path) {
10879 uint32_t _relative_save_offset;
10880 _relative_save_offset = ndr->offset;
10881 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
10882 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
10883 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
10884 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
10885 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
10886 if (ndr->offset > ndr->relative_highest_offset) {
10887 ndr->relative_highest_offset = ndr->offset;
10889 ndr->offset = _relative_save_offset;
10891 ndr->flags = _flags_save_string;
10894 uint32_t _flags_save_string = ndr->flags;
10895 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10896 if (r->data_file) {
10897 uint32_t _relative_save_offset;
10898 _relative_save_offset = ndr->offset;
10899 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
10900 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10901 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
10902 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
10903 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
10904 if (ndr->offset > ndr->relative_highest_offset) {
10905 ndr->relative_highest_offset = ndr->offset;
10907 ndr->offset = _relative_save_offset;
10909 ndr->flags = _flags_save_string;
10912 uint32_t _flags_save_string = ndr->flags;
10913 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10914 if (r->config_file) {
10915 uint32_t _relative_save_offset;
10916 _relative_save_offset = ndr->offset;
10917 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
10918 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10919 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
10920 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
10921 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
10922 if (ndr->offset > ndr->relative_highest_offset) {
10923 ndr->relative_highest_offset = ndr->offset;
10925 ndr->offset = _relative_save_offset;
10927 ndr->flags = _flags_save_string;
10930 return NDR_ERR_SUCCESS;
10933 _PUBLIC_ void ndr_print_spoolss_DriverInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo2 *r)
10935 ndr_print_struct(ndr, name, "spoolss_DriverInfo2");
10937 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
10938 ndr_print_ptr(ndr, "driver_name", r->driver_name);
10940 if (r->driver_name) {
10941 ndr_print_string(ndr, "driver_name", r->driver_name);
10944 ndr_print_ptr(ndr, "architecture", r->architecture);
10946 if (r->architecture) {
10947 ndr_print_string(ndr, "architecture", r->architecture);
10950 ndr_print_ptr(ndr, "driver_path", r->driver_path);
10952 if (r->driver_path) {
10953 ndr_print_string(ndr, "driver_path", r->driver_path);
10956 ndr_print_ptr(ndr, "data_file", r->data_file);
10958 if (r->data_file) {
10959 ndr_print_string(ndr, "data_file", r->data_file);
10962 ndr_print_ptr(ndr, "config_file", r->config_file);
10964 if (r->config_file) {
10965 ndr_print_string(ndr, "config_file", r->config_file);
10971 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo2(const struct spoolss_DriverInfo2 *r, struct smb_iconv_convenience *ic, int flags)
10973 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo2, ic);
10976 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo3 *r)
10978 if (ndr_flags & NDR_SCALARS) {
10979 NDR_CHECK(ndr_push_align(ndr, 5));
10980 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
10982 uint32_t _flags_save_string = ndr->flags;
10983 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10984 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
10985 ndr->flags = _flags_save_string;
10988 uint32_t _flags_save_string = ndr->flags;
10989 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10990 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
10991 ndr->flags = _flags_save_string;
10994 uint32_t _flags_save_string = ndr->flags;
10995 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10996 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
10997 ndr->flags = _flags_save_string;
11000 uint32_t _flags_save_string = ndr->flags;
11001 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11002 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
11003 ndr->flags = _flags_save_string;
11006 uint32_t _flags_save_string = ndr->flags;
11007 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11008 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
11009 ndr->flags = _flags_save_string;
11012 uint32_t _flags_save_string = ndr->flags;
11013 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11014 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
11015 ndr->flags = _flags_save_string;
11018 uint32_t _flags_save_string_array = ndr->flags;
11019 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11020 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
11021 ndr->flags = _flags_save_string_array;
11024 uint32_t _flags_save_string = ndr->flags;
11025 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11026 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
11027 ndr->flags = _flags_save_string;
11030 uint32_t _flags_save_string = ndr->flags;
11031 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11032 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
11033 ndr->flags = _flags_save_string;
11035 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
11037 if (ndr_flags & NDR_BUFFERS) {
11039 uint32_t _flags_save_string = ndr->flags;
11040 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11041 if (r->driver_name) {
11042 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
11043 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
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->architecture) {
11051 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
11052 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
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->driver_path) {
11060 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
11061 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
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->data_file) {
11069 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
11070 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_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->config_file) {
11078 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
11079 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
11081 ndr->flags = _flags_save_string;
11084 uint32_t _flags_save_string = ndr->flags;
11085 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11086 if (r->help_file) {
11087 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
11088 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
11090 ndr->flags = _flags_save_string;
11093 uint32_t _flags_save_string_array = ndr->flags;
11094 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11095 if (r->dependent_files) {
11096 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
11097 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
11099 ndr->flags = _flags_save_string_array;
11102 uint32_t _flags_save_string = ndr->flags;
11103 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11104 if (r->monitor_name) {
11105 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
11106 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
11108 ndr->flags = _flags_save_string;
11111 uint32_t _flags_save_string = ndr->flags;
11112 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11113 if (r->default_datatype) {
11114 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
11115 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
11117 ndr->flags = _flags_save_string;
11120 return NDR_ERR_SUCCESS;
11123 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo3 *r)
11125 uint32_t _ptr_driver_name;
11126 TALLOC_CTX *_mem_save_driver_name_0;
11127 uint32_t _ptr_architecture;
11128 TALLOC_CTX *_mem_save_architecture_0;
11129 uint32_t _ptr_driver_path;
11130 TALLOC_CTX *_mem_save_driver_path_0;
11131 uint32_t _ptr_data_file;
11132 TALLOC_CTX *_mem_save_data_file_0;
11133 uint32_t _ptr_config_file;
11134 TALLOC_CTX *_mem_save_config_file_0;
11135 uint32_t _ptr_help_file;
11136 TALLOC_CTX *_mem_save_help_file_0;
11137 uint32_t _ptr_dependent_files;
11138 TALLOC_CTX *_mem_save_dependent_files_0;
11139 uint32_t _ptr_monitor_name;
11140 TALLOC_CTX *_mem_save_monitor_name_0;
11141 uint32_t _ptr_default_datatype;
11142 TALLOC_CTX *_mem_save_default_datatype_0;
11143 if (ndr_flags & NDR_SCALARS) {
11144 NDR_CHECK(ndr_pull_align(ndr, 5));
11145 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
11147 uint32_t _flags_save_string = ndr->flags;
11148 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11149 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
11150 if (_ptr_driver_name) {
11151 NDR_PULL_ALLOC(ndr, r->driver_name);
11152 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
11154 r->driver_name = NULL;
11156 ndr->flags = _flags_save_string;
11159 uint32_t _flags_save_string = ndr->flags;
11160 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11161 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
11162 if (_ptr_architecture) {
11163 NDR_PULL_ALLOC(ndr, r->architecture);
11164 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
11166 r->architecture = NULL;
11168 ndr->flags = _flags_save_string;
11171 uint32_t _flags_save_string = ndr->flags;
11172 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11173 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
11174 if (_ptr_driver_path) {
11175 NDR_PULL_ALLOC(ndr, r->driver_path);
11176 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
11178 r->driver_path = NULL;
11180 ndr->flags = _flags_save_string;
11183 uint32_t _flags_save_string = ndr->flags;
11184 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11185 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
11186 if (_ptr_data_file) {
11187 NDR_PULL_ALLOC(ndr, r->data_file);
11188 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
11190 r->data_file = NULL;
11192 ndr->flags = _flags_save_string;
11195 uint32_t _flags_save_string = ndr->flags;
11196 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11197 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
11198 if (_ptr_config_file) {
11199 NDR_PULL_ALLOC(ndr, r->config_file);
11200 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
11202 r->config_file = NULL;
11204 ndr->flags = _flags_save_string;
11207 uint32_t _flags_save_string = ndr->flags;
11208 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11209 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
11210 if (_ptr_help_file) {
11211 NDR_PULL_ALLOC(ndr, r->help_file);
11212 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
11214 r->help_file = NULL;
11216 ndr->flags = _flags_save_string;
11219 uint32_t _flags_save_string_array = ndr->flags;
11220 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11221 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
11222 if (_ptr_dependent_files) {
11223 NDR_PULL_ALLOC(ndr, r->dependent_files);
11224 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
11226 r->dependent_files = NULL;
11228 ndr->flags = _flags_save_string_array;
11231 uint32_t _flags_save_string = ndr->flags;
11232 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11233 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
11234 if (_ptr_monitor_name) {
11235 NDR_PULL_ALLOC(ndr, r->monitor_name);
11236 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
11238 r->monitor_name = NULL;
11240 ndr->flags = _flags_save_string;
11243 uint32_t _flags_save_string = ndr->flags;
11244 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11245 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
11246 if (_ptr_default_datatype) {
11247 NDR_PULL_ALLOC(ndr, r->default_datatype);
11248 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
11250 r->default_datatype = NULL;
11252 ndr->flags = _flags_save_string;
11254 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
11256 if (ndr_flags & NDR_BUFFERS) {
11258 uint32_t _flags_save_string = ndr->flags;
11259 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11260 if (r->driver_name) {
11261 uint32_t _relative_save_offset;
11262 _relative_save_offset = ndr->offset;
11263 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
11264 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11265 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
11266 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
11267 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
11268 if (ndr->offset > ndr->relative_highest_offset) {
11269 ndr->relative_highest_offset = ndr->offset;
11271 ndr->offset = _relative_save_offset;
11273 ndr->flags = _flags_save_string;
11276 uint32_t _flags_save_string = ndr->flags;
11277 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11278 if (r->architecture) {
11279 uint32_t _relative_save_offset;
11280 _relative_save_offset = ndr->offset;
11281 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
11282 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
11283 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
11284 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
11285 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
11286 if (ndr->offset > ndr->relative_highest_offset) {
11287 ndr->relative_highest_offset = ndr->offset;
11289 ndr->offset = _relative_save_offset;
11291 ndr->flags = _flags_save_string;
11294 uint32_t _flags_save_string = ndr->flags;
11295 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11296 if (r->driver_path) {
11297 uint32_t _relative_save_offset;
11298 _relative_save_offset = ndr->offset;
11299 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
11300 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
11301 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
11302 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
11303 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
11304 if (ndr->offset > ndr->relative_highest_offset) {
11305 ndr->relative_highest_offset = ndr->offset;
11307 ndr->offset = _relative_save_offset;
11309 ndr->flags = _flags_save_string;
11312 uint32_t _flags_save_string = ndr->flags;
11313 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11314 if (r->data_file) {
11315 uint32_t _relative_save_offset;
11316 _relative_save_offset = ndr->offset;
11317 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
11318 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11319 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
11320 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
11321 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
11322 if (ndr->offset > ndr->relative_highest_offset) {
11323 ndr->relative_highest_offset = ndr->offset;
11325 ndr->offset = _relative_save_offset;
11327 ndr->flags = _flags_save_string;
11330 uint32_t _flags_save_string = ndr->flags;
11331 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11332 if (r->config_file) {
11333 uint32_t _relative_save_offset;
11334 _relative_save_offset = ndr->offset;
11335 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
11336 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11337 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
11338 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
11339 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
11340 if (ndr->offset > ndr->relative_highest_offset) {
11341 ndr->relative_highest_offset = ndr->offset;
11343 ndr->offset = _relative_save_offset;
11345 ndr->flags = _flags_save_string;
11348 uint32_t _flags_save_string = ndr->flags;
11349 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11350 if (r->help_file) {
11351 uint32_t _relative_save_offset;
11352 _relative_save_offset = ndr->offset;
11353 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
11354 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11355 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
11356 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
11357 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
11358 if (ndr->offset > ndr->relative_highest_offset) {
11359 ndr->relative_highest_offset = ndr->offset;
11361 ndr->offset = _relative_save_offset;
11363 ndr->flags = _flags_save_string;
11366 uint32_t _flags_save_string_array = ndr->flags;
11367 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11368 if (r->dependent_files) {
11369 uint32_t _relative_save_offset;
11370 _relative_save_offset = ndr->offset;
11371 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
11372 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
11373 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
11374 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
11375 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
11376 if (ndr->offset > ndr->relative_highest_offset) {
11377 ndr->relative_highest_offset = ndr->offset;
11379 ndr->offset = _relative_save_offset;
11381 ndr->flags = _flags_save_string_array;
11384 uint32_t _flags_save_string = ndr->flags;
11385 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11386 if (r->monitor_name) {
11387 uint32_t _relative_save_offset;
11388 _relative_save_offset = ndr->offset;
11389 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
11390 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11391 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
11392 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
11393 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
11394 if (ndr->offset > ndr->relative_highest_offset) {
11395 ndr->relative_highest_offset = ndr->offset;
11397 ndr->offset = _relative_save_offset;
11399 ndr->flags = _flags_save_string;
11402 uint32_t _flags_save_string = ndr->flags;
11403 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11404 if (r->default_datatype) {
11405 uint32_t _relative_save_offset;
11406 _relative_save_offset = ndr->offset;
11407 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
11408 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
11409 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
11410 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
11411 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
11412 if (ndr->offset > ndr->relative_highest_offset) {
11413 ndr->relative_highest_offset = ndr->offset;
11415 ndr->offset = _relative_save_offset;
11417 ndr->flags = _flags_save_string;
11420 return NDR_ERR_SUCCESS;
11423 _PUBLIC_ void ndr_print_spoolss_DriverInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo3 *r)
11425 ndr_print_struct(ndr, name, "spoolss_DriverInfo3");
11427 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
11428 ndr_print_ptr(ndr, "driver_name", r->driver_name);
11430 if (r->driver_name) {
11431 ndr_print_string(ndr, "driver_name", r->driver_name);
11434 ndr_print_ptr(ndr, "architecture", r->architecture);
11436 if (r->architecture) {
11437 ndr_print_string(ndr, "architecture", r->architecture);
11440 ndr_print_ptr(ndr, "driver_path", r->driver_path);
11442 if (r->driver_path) {
11443 ndr_print_string(ndr, "driver_path", r->driver_path);
11446 ndr_print_ptr(ndr, "data_file", r->data_file);
11448 if (r->data_file) {
11449 ndr_print_string(ndr, "data_file", r->data_file);
11452 ndr_print_ptr(ndr, "config_file", r->config_file);
11454 if (r->config_file) {
11455 ndr_print_string(ndr, "config_file", r->config_file);
11458 ndr_print_ptr(ndr, "help_file", r->help_file);
11460 if (r->help_file) {
11461 ndr_print_string(ndr, "help_file", r->help_file);
11464 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
11466 if (r->dependent_files) {
11467 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
11470 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
11472 if (r->monitor_name) {
11473 ndr_print_string(ndr, "monitor_name", r->monitor_name);
11476 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
11478 if (r->default_datatype) {
11479 ndr_print_string(ndr, "default_datatype", r->default_datatype);
11485 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo3(const struct spoolss_DriverInfo3 *r, struct smb_iconv_convenience *ic, int flags)
11487 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo3, ic);
11490 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo4 *r)
11492 if (ndr_flags & NDR_SCALARS) {
11493 NDR_CHECK(ndr_push_align(ndr, 5));
11494 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
11496 uint32_t _flags_save_string = ndr->flags;
11497 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11498 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
11499 ndr->flags = _flags_save_string;
11502 uint32_t _flags_save_string = ndr->flags;
11503 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11504 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
11505 ndr->flags = _flags_save_string;
11508 uint32_t _flags_save_string = ndr->flags;
11509 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11510 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
11511 ndr->flags = _flags_save_string;
11514 uint32_t _flags_save_string = ndr->flags;
11515 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11516 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
11517 ndr->flags = _flags_save_string;
11520 uint32_t _flags_save_string = ndr->flags;
11521 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11522 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
11523 ndr->flags = _flags_save_string;
11526 uint32_t _flags_save_string = ndr->flags;
11527 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11528 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
11529 ndr->flags = _flags_save_string;
11532 uint32_t _flags_save_string_array = ndr->flags;
11533 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11534 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
11535 ndr->flags = _flags_save_string_array;
11538 uint32_t _flags_save_string = ndr->flags;
11539 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11540 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
11541 ndr->flags = _flags_save_string;
11544 uint32_t _flags_save_string = ndr->flags;
11545 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11546 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
11547 ndr->flags = _flags_save_string;
11550 uint32_t _flags_save_string_array = ndr->flags;
11551 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11552 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
11553 ndr->flags = _flags_save_string_array;
11555 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
11557 if (ndr_flags & NDR_BUFFERS) {
11559 uint32_t _flags_save_string = ndr->flags;
11560 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11561 if (r->driver_name) {
11562 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
11563 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
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->architecture) {
11571 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
11572 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
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->driver_path) {
11580 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
11581 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
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->data_file) {
11589 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
11590 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_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->config_file) {
11598 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
11599 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
11601 ndr->flags = _flags_save_string;
11604 uint32_t _flags_save_string = ndr->flags;
11605 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11606 if (r->help_file) {
11607 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
11608 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
11610 ndr->flags = _flags_save_string;
11613 uint32_t _flags_save_string_array = ndr->flags;
11614 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11615 if (r->dependent_files) {
11616 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
11617 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
11619 ndr->flags = _flags_save_string_array;
11622 uint32_t _flags_save_string = ndr->flags;
11623 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11624 if (r->monitor_name) {
11625 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
11626 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
11628 ndr->flags = _flags_save_string;
11631 uint32_t _flags_save_string = ndr->flags;
11632 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11633 if (r->default_datatype) {
11634 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
11635 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
11637 ndr->flags = _flags_save_string;
11640 uint32_t _flags_save_string_array = ndr->flags;
11641 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11642 if (r->previous_names) {
11643 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->previous_names));
11644 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
11646 ndr->flags = _flags_save_string_array;
11649 return NDR_ERR_SUCCESS;
11652 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo4 *r)
11654 uint32_t _ptr_driver_name;
11655 TALLOC_CTX *_mem_save_driver_name_0;
11656 uint32_t _ptr_architecture;
11657 TALLOC_CTX *_mem_save_architecture_0;
11658 uint32_t _ptr_driver_path;
11659 TALLOC_CTX *_mem_save_driver_path_0;
11660 uint32_t _ptr_data_file;
11661 TALLOC_CTX *_mem_save_data_file_0;
11662 uint32_t _ptr_config_file;
11663 TALLOC_CTX *_mem_save_config_file_0;
11664 uint32_t _ptr_help_file;
11665 TALLOC_CTX *_mem_save_help_file_0;
11666 uint32_t _ptr_dependent_files;
11667 TALLOC_CTX *_mem_save_dependent_files_0;
11668 uint32_t _ptr_monitor_name;
11669 TALLOC_CTX *_mem_save_monitor_name_0;
11670 uint32_t _ptr_default_datatype;
11671 TALLOC_CTX *_mem_save_default_datatype_0;
11672 uint32_t _ptr_previous_names;
11673 TALLOC_CTX *_mem_save_previous_names_0;
11674 if (ndr_flags & NDR_SCALARS) {
11675 NDR_CHECK(ndr_pull_align(ndr, 5));
11676 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
11678 uint32_t _flags_save_string = ndr->flags;
11679 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11680 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
11681 if (_ptr_driver_name) {
11682 NDR_PULL_ALLOC(ndr, r->driver_name);
11683 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
11685 r->driver_name = NULL;
11687 ndr->flags = _flags_save_string;
11690 uint32_t _flags_save_string = ndr->flags;
11691 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11692 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
11693 if (_ptr_architecture) {
11694 NDR_PULL_ALLOC(ndr, r->architecture);
11695 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
11697 r->architecture = NULL;
11699 ndr->flags = _flags_save_string;
11702 uint32_t _flags_save_string = ndr->flags;
11703 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11704 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
11705 if (_ptr_driver_path) {
11706 NDR_PULL_ALLOC(ndr, r->driver_path);
11707 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
11709 r->driver_path = NULL;
11711 ndr->flags = _flags_save_string;
11714 uint32_t _flags_save_string = ndr->flags;
11715 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11716 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
11717 if (_ptr_data_file) {
11718 NDR_PULL_ALLOC(ndr, r->data_file);
11719 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
11721 r->data_file = NULL;
11723 ndr->flags = _flags_save_string;
11726 uint32_t _flags_save_string = ndr->flags;
11727 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11728 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
11729 if (_ptr_config_file) {
11730 NDR_PULL_ALLOC(ndr, r->config_file);
11731 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
11733 r->config_file = NULL;
11735 ndr->flags = _flags_save_string;
11738 uint32_t _flags_save_string = ndr->flags;
11739 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11740 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
11741 if (_ptr_help_file) {
11742 NDR_PULL_ALLOC(ndr, r->help_file);
11743 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
11745 r->help_file = NULL;
11747 ndr->flags = _flags_save_string;
11750 uint32_t _flags_save_string_array = ndr->flags;
11751 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11752 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
11753 if (_ptr_dependent_files) {
11754 NDR_PULL_ALLOC(ndr, r->dependent_files);
11755 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
11757 r->dependent_files = NULL;
11759 ndr->flags = _flags_save_string_array;
11762 uint32_t _flags_save_string = ndr->flags;
11763 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11764 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
11765 if (_ptr_monitor_name) {
11766 NDR_PULL_ALLOC(ndr, r->monitor_name);
11767 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
11769 r->monitor_name = NULL;
11771 ndr->flags = _flags_save_string;
11774 uint32_t _flags_save_string = ndr->flags;
11775 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11776 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
11777 if (_ptr_default_datatype) {
11778 NDR_PULL_ALLOC(ndr, r->default_datatype);
11779 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
11781 r->default_datatype = NULL;
11783 ndr->flags = _flags_save_string;
11786 uint32_t _flags_save_string_array = ndr->flags;
11787 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11788 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
11789 if (_ptr_previous_names) {
11790 NDR_PULL_ALLOC(ndr, r->previous_names);
11791 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
11793 r->previous_names = NULL;
11795 ndr->flags = _flags_save_string_array;
11797 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
11799 if (ndr_flags & NDR_BUFFERS) {
11801 uint32_t _flags_save_string = ndr->flags;
11802 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11803 if (r->driver_name) {
11804 uint32_t _relative_save_offset;
11805 _relative_save_offset = ndr->offset;
11806 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
11807 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11808 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
11809 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
11810 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
11811 if (ndr->offset > ndr->relative_highest_offset) {
11812 ndr->relative_highest_offset = ndr->offset;
11814 ndr->offset = _relative_save_offset;
11816 ndr->flags = _flags_save_string;
11819 uint32_t _flags_save_string = ndr->flags;
11820 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11821 if (r->architecture) {
11822 uint32_t _relative_save_offset;
11823 _relative_save_offset = ndr->offset;
11824 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
11825 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
11826 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
11827 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
11828 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
11829 if (ndr->offset > ndr->relative_highest_offset) {
11830 ndr->relative_highest_offset = ndr->offset;
11832 ndr->offset = _relative_save_offset;
11834 ndr->flags = _flags_save_string;
11837 uint32_t _flags_save_string = ndr->flags;
11838 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11839 if (r->driver_path) {
11840 uint32_t _relative_save_offset;
11841 _relative_save_offset = ndr->offset;
11842 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
11843 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
11844 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
11845 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
11846 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
11847 if (ndr->offset > ndr->relative_highest_offset) {
11848 ndr->relative_highest_offset = ndr->offset;
11850 ndr->offset = _relative_save_offset;
11852 ndr->flags = _flags_save_string;
11855 uint32_t _flags_save_string = ndr->flags;
11856 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11857 if (r->data_file) {
11858 uint32_t _relative_save_offset;
11859 _relative_save_offset = ndr->offset;
11860 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
11861 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11862 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
11863 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
11864 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
11865 if (ndr->offset > ndr->relative_highest_offset) {
11866 ndr->relative_highest_offset = ndr->offset;
11868 ndr->offset = _relative_save_offset;
11870 ndr->flags = _flags_save_string;
11873 uint32_t _flags_save_string = ndr->flags;
11874 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11875 if (r->config_file) {
11876 uint32_t _relative_save_offset;
11877 _relative_save_offset = ndr->offset;
11878 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
11879 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11880 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
11881 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
11882 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
11883 if (ndr->offset > ndr->relative_highest_offset) {
11884 ndr->relative_highest_offset = ndr->offset;
11886 ndr->offset = _relative_save_offset;
11888 ndr->flags = _flags_save_string;
11891 uint32_t _flags_save_string = ndr->flags;
11892 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11893 if (r->help_file) {
11894 uint32_t _relative_save_offset;
11895 _relative_save_offset = ndr->offset;
11896 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
11897 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11898 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
11899 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
11900 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
11901 if (ndr->offset > ndr->relative_highest_offset) {
11902 ndr->relative_highest_offset = ndr->offset;
11904 ndr->offset = _relative_save_offset;
11906 ndr->flags = _flags_save_string;
11909 uint32_t _flags_save_string_array = ndr->flags;
11910 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11911 if (r->dependent_files) {
11912 uint32_t _relative_save_offset;
11913 _relative_save_offset = ndr->offset;
11914 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
11915 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
11916 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
11917 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
11918 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
11919 if (ndr->offset > ndr->relative_highest_offset) {
11920 ndr->relative_highest_offset = ndr->offset;
11922 ndr->offset = _relative_save_offset;
11924 ndr->flags = _flags_save_string_array;
11927 uint32_t _flags_save_string = ndr->flags;
11928 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11929 if (r->monitor_name) {
11930 uint32_t _relative_save_offset;
11931 _relative_save_offset = ndr->offset;
11932 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
11933 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11934 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
11935 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
11936 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
11937 if (ndr->offset > ndr->relative_highest_offset) {
11938 ndr->relative_highest_offset = ndr->offset;
11940 ndr->offset = _relative_save_offset;
11942 ndr->flags = _flags_save_string;
11945 uint32_t _flags_save_string = ndr->flags;
11946 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11947 if (r->default_datatype) {
11948 uint32_t _relative_save_offset;
11949 _relative_save_offset = ndr->offset;
11950 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
11951 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
11952 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
11953 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
11954 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
11955 if (ndr->offset > ndr->relative_highest_offset) {
11956 ndr->relative_highest_offset = ndr->offset;
11958 ndr->offset = _relative_save_offset;
11960 ndr->flags = _flags_save_string;
11963 uint32_t _flags_save_string_array = ndr->flags;
11964 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11965 if (r->previous_names) {
11966 uint32_t _relative_save_offset;
11967 _relative_save_offset = ndr->offset;
11968 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
11969 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
11970 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
11971 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
11972 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
11973 if (ndr->offset > ndr->relative_highest_offset) {
11974 ndr->relative_highest_offset = ndr->offset;
11976 ndr->offset = _relative_save_offset;
11978 ndr->flags = _flags_save_string_array;
11981 return NDR_ERR_SUCCESS;
11984 _PUBLIC_ void ndr_print_spoolss_DriverInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo4 *r)
11986 ndr_print_struct(ndr, name, "spoolss_DriverInfo4");
11988 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
11989 ndr_print_ptr(ndr, "driver_name", r->driver_name);
11991 if (r->driver_name) {
11992 ndr_print_string(ndr, "driver_name", r->driver_name);
11995 ndr_print_ptr(ndr, "architecture", r->architecture);
11997 if (r->architecture) {
11998 ndr_print_string(ndr, "architecture", r->architecture);
12001 ndr_print_ptr(ndr, "driver_path", r->driver_path);
12003 if (r->driver_path) {
12004 ndr_print_string(ndr, "driver_path", r->driver_path);
12007 ndr_print_ptr(ndr, "data_file", r->data_file);
12009 if (r->data_file) {
12010 ndr_print_string(ndr, "data_file", r->data_file);
12013 ndr_print_ptr(ndr, "config_file", r->config_file);
12015 if (r->config_file) {
12016 ndr_print_string(ndr, "config_file", r->config_file);
12019 ndr_print_ptr(ndr, "help_file", r->help_file);
12021 if (r->help_file) {
12022 ndr_print_string(ndr, "help_file", r->help_file);
12025 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
12027 if (r->dependent_files) {
12028 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
12031 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
12033 if (r->monitor_name) {
12034 ndr_print_string(ndr, "monitor_name", r->monitor_name);
12037 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
12039 if (r->default_datatype) {
12040 ndr_print_string(ndr, "default_datatype", r->default_datatype);
12043 ndr_print_ptr(ndr, "previous_names", r->previous_names);
12045 if (r->previous_names) {
12046 ndr_print_string_array(ndr, "previous_names", r->previous_names);
12052 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo4(const struct spoolss_DriverInfo4 *r, struct smb_iconv_convenience *ic, int flags)
12054 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo4, ic);
12057 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo5 *r)
12059 if (ndr_flags & NDR_SCALARS) {
12060 NDR_CHECK(ndr_push_align(ndr, 5));
12061 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
12063 uint32_t _flags_save_string = ndr->flags;
12064 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12065 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
12066 ndr->flags = _flags_save_string;
12069 uint32_t _flags_save_string = ndr->flags;
12070 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12071 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
12072 ndr->flags = _flags_save_string;
12075 uint32_t _flags_save_string = ndr->flags;
12076 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12077 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
12078 ndr->flags = _flags_save_string;
12081 uint32_t _flags_save_string = ndr->flags;
12082 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12083 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
12084 ndr->flags = _flags_save_string;
12087 uint32_t _flags_save_string = ndr->flags;
12088 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12089 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
12090 ndr->flags = _flags_save_string;
12092 NDR_CHECK(ndr_push_spoolss_DriverAttributes(ndr, NDR_SCALARS, r->driver_attributes));
12093 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->config_version));
12094 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->driver_version));
12095 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
12097 if (ndr_flags & NDR_BUFFERS) {
12099 uint32_t _flags_save_string = ndr->flags;
12100 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12101 if (r->driver_name) {
12102 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
12103 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
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->architecture) {
12111 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
12112 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
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->driver_path) {
12120 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
12121 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
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->data_file) {
12129 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
12130 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
12132 ndr->flags = _flags_save_string;
12135 uint32_t _flags_save_string = ndr->flags;
12136 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12137 if (r->config_file) {
12138 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
12139 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
12141 ndr->flags = _flags_save_string;
12144 return NDR_ERR_SUCCESS;
12147 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo5 *r)
12149 uint32_t _ptr_driver_name;
12150 TALLOC_CTX *_mem_save_driver_name_0;
12151 uint32_t _ptr_architecture;
12152 TALLOC_CTX *_mem_save_architecture_0;
12153 uint32_t _ptr_driver_path;
12154 TALLOC_CTX *_mem_save_driver_path_0;
12155 uint32_t _ptr_data_file;
12156 TALLOC_CTX *_mem_save_data_file_0;
12157 uint32_t _ptr_config_file;
12158 TALLOC_CTX *_mem_save_config_file_0;
12159 if (ndr_flags & NDR_SCALARS) {
12160 NDR_CHECK(ndr_pull_align(ndr, 5));
12161 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
12163 uint32_t _flags_save_string = ndr->flags;
12164 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12165 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
12166 if (_ptr_driver_name) {
12167 NDR_PULL_ALLOC(ndr, r->driver_name);
12168 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
12170 r->driver_name = NULL;
12172 ndr->flags = _flags_save_string;
12175 uint32_t _flags_save_string = ndr->flags;
12176 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12177 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
12178 if (_ptr_architecture) {
12179 NDR_PULL_ALLOC(ndr, r->architecture);
12180 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
12182 r->architecture = NULL;
12184 ndr->flags = _flags_save_string;
12187 uint32_t _flags_save_string = ndr->flags;
12188 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12189 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
12190 if (_ptr_driver_path) {
12191 NDR_PULL_ALLOC(ndr, r->driver_path);
12192 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
12194 r->driver_path = NULL;
12196 ndr->flags = _flags_save_string;
12199 uint32_t _flags_save_string = ndr->flags;
12200 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12201 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
12202 if (_ptr_data_file) {
12203 NDR_PULL_ALLOC(ndr, r->data_file);
12204 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
12206 r->data_file = NULL;
12208 ndr->flags = _flags_save_string;
12211 uint32_t _flags_save_string = ndr->flags;
12212 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12213 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
12214 if (_ptr_config_file) {
12215 NDR_PULL_ALLOC(ndr, r->config_file);
12216 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
12218 r->config_file = NULL;
12220 ndr->flags = _flags_save_string;
12222 NDR_CHECK(ndr_pull_spoolss_DriverAttributes(ndr, NDR_SCALARS, &r->driver_attributes));
12223 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->config_version));
12224 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->driver_version));
12225 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
12227 if (ndr_flags & NDR_BUFFERS) {
12229 uint32_t _flags_save_string = ndr->flags;
12230 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12231 if (r->driver_name) {
12232 uint32_t _relative_save_offset;
12233 _relative_save_offset = ndr->offset;
12234 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
12235 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12236 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
12237 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
12238 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
12239 if (ndr->offset > ndr->relative_highest_offset) {
12240 ndr->relative_highest_offset = ndr->offset;
12242 ndr->offset = _relative_save_offset;
12244 ndr->flags = _flags_save_string;
12247 uint32_t _flags_save_string = ndr->flags;
12248 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12249 if (r->architecture) {
12250 uint32_t _relative_save_offset;
12251 _relative_save_offset = ndr->offset;
12252 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
12253 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
12254 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
12255 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
12256 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
12257 if (ndr->offset > ndr->relative_highest_offset) {
12258 ndr->relative_highest_offset = ndr->offset;
12260 ndr->offset = _relative_save_offset;
12262 ndr->flags = _flags_save_string;
12265 uint32_t _flags_save_string = ndr->flags;
12266 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12267 if (r->driver_path) {
12268 uint32_t _relative_save_offset;
12269 _relative_save_offset = ndr->offset;
12270 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
12271 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
12272 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
12273 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
12274 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
12275 if (ndr->offset > ndr->relative_highest_offset) {
12276 ndr->relative_highest_offset = ndr->offset;
12278 ndr->offset = _relative_save_offset;
12280 ndr->flags = _flags_save_string;
12283 uint32_t _flags_save_string = ndr->flags;
12284 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12285 if (r->data_file) {
12286 uint32_t _relative_save_offset;
12287 _relative_save_offset = ndr->offset;
12288 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
12289 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12290 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
12291 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
12292 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
12293 if (ndr->offset > ndr->relative_highest_offset) {
12294 ndr->relative_highest_offset = ndr->offset;
12296 ndr->offset = _relative_save_offset;
12298 ndr->flags = _flags_save_string;
12301 uint32_t _flags_save_string = ndr->flags;
12302 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12303 if (r->config_file) {
12304 uint32_t _relative_save_offset;
12305 _relative_save_offset = ndr->offset;
12306 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
12307 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12308 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
12309 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
12310 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
12311 if (ndr->offset > ndr->relative_highest_offset) {
12312 ndr->relative_highest_offset = ndr->offset;
12314 ndr->offset = _relative_save_offset;
12316 ndr->flags = _flags_save_string;
12319 return NDR_ERR_SUCCESS;
12322 _PUBLIC_ void ndr_print_spoolss_DriverInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo5 *r)
12324 ndr_print_struct(ndr, name, "spoolss_DriverInfo5");
12326 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
12327 ndr_print_ptr(ndr, "driver_name", r->driver_name);
12329 if (r->driver_name) {
12330 ndr_print_string(ndr, "driver_name", r->driver_name);
12333 ndr_print_ptr(ndr, "architecture", r->architecture);
12335 if (r->architecture) {
12336 ndr_print_string(ndr, "architecture", r->architecture);
12339 ndr_print_ptr(ndr, "driver_path", r->driver_path);
12341 if (r->driver_path) {
12342 ndr_print_string(ndr, "driver_path", r->driver_path);
12345 ndr_print_ptr(ndr, "data_file", r->data_file);
12347 if (r->data_file) {
12348 ndr_print_string(ndr, "data_file", r->data_file);
12351 ndr_print_ptr(ndr, "config_file", r->config_file);
12353 if (r->config_file) {
12354 ndr_print_string(ndr, "config_file", r->config_file);
12357 ndr_print_spoolss_DriverAttributes(ndr, "driver_attributes", r->driver_attributes);
12358 ndr_print_uint32(ndr, "config_version", r->config_version);
12359 ndr_print_uint32(ndr, "driver_version", r->driver_version);
12363 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo5(const struct spoolss_DriverInfo5 *r, struct smb_iconv_convenience *ic, int flags)
12365 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo5, ic);
12368 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo6 *r)
12370 if (ndr_flags & NDR_SCALARS) {
12371 NDR_CHECK(ndr_push_align(ndr, 8));
12372 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
12374 uint32_t _flags_save_string = ndr->flags;
12375 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12376 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
12377 ndr->flags = _flags_save_string;
12380 uint32_t _flags_save_string = ndr->flags;
12381 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12382 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
12383 ndr->flags = _flags_save_string;
12386 uint32_t _flags_save_string = ndr->flags;
12387 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12388 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
12389 ndr->flags = _flags_save_string;
12392 uint32_t _flags_save_string = ndr->flags;
12393 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12394 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
12395 ndr->flags = _flags_save_string;
12398 uint32_t _flags_save_string = ndr->flags;
12399 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12400 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
12401 ndr->flags = _flags_save_string;
12404 uint32_t _flags_save_string = ndr->flags;
12405 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12406 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
12407 ndr->flags = _flags_save_string;
12410 uint32_t _flags_save_string_array = ndr->flags;
12411 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12412 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
12413 ndr->flags = _flags_save_string_array;
12416 uint32_t _flags_save_string = ndr->flags;
12417 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12418 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
12419 ndr->flags = _flags_save_string;
12422 uint32_t _flags_save_string = ndr->flags;
12423 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12424 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
12425 ndr->flags = _flags_save_string;
12428 uint32_t _flags_save_string_array = ndr->flags;
12429 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12430 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
12431 ndr->flags = _flags_save_string_array;
12433 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
12434 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
12436 uint32_t _flags_save_string = ndr->flags;
12437 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12438 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_name));
12439 ndr->flags = _flags_save_string;
12442 uint32_t _flags_save_string = ndr->flags;
12443 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12444 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_url));
12445 ndr->flags = _flags_save_string;
12448 uint32_t _flags_save_string = ndr->flags;
12449 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12450 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->hardware_id));
12451 ndr->flags = _flags_save_string;
12454 uint32_t _flags_save_string = ndr->flags;
12455 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12456 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->provider));
12457 ndr->flags = _flags_save_string;
12459 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
12461 if (ndr_flags & NDR_BUFFERS) {
12463 uint32_t _flags_save_string = ndr->flags;
12464 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12465 if (r->driver_name) {
12466 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
12467 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
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->architecture) {
12475 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
12476 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
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->driver_path) {
12484 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
12485 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
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->data_file) {
12493 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
12494 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_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->config_file) {
12502 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
12503 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
12505 ndr->flags = _flags_save_string;
12508 uint32_t _flags_save_string = ndr->flags;
12509 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12510 if (r->help_file) {
12511 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
12512 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
12514 ndr->flags = _flags_save_string;
12517 uint32_t _flags_save_string_array = ndr->flags;
12518 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12519 if (r->dependent_files) {
12520 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
12521 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
12523 ndr->flags = _flags_save_string_array;
12526 uint32_t _flags_save_string = ndr->flags;
12527 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12528 if (r->monitor_name) {
12529 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
12530 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
12532 ndr->flags = _flags_save_string;
12535 uint32_t _flags_save_string = ndr->flags;
12536 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12537 if (r->default_datatype) {
12538 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
12539 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
12541 ndr->flags = _flags_save_string;
12544 uint32_t _flags_save_string_array = ndr->flags;
12545 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12546 if (r->previous_names) {
12547 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->previous_names));
12548 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
12550 ndr->flags = _flags_save_string_array;
12553 uint32_t _flags_save_string = ndr->flags;
12554 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12555 if (r->manufacturer_name) {
12556 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_name));
12557 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_name));
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->manufacturer_url) {
12565 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_url));
12566 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_url));
12568 ndr->flags = _flags_save_string;
12571 uint32_t _flags_save_string = ndr->flags;
12572 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12573 if (r->hardware_id) {
12574 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->hardware_id));
12575 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->hardware_id));
12577 ndr->flags = _flags_save_string;
12580 uint32_t _flags_save_string = ndr->flags;
12581 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12583 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->provider));
12584 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->provider));
12586 ndr->flags = _flags_save_string;
12589 return NDR_ERR_SUCCESS;
12592 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo6 *r)
12594 uint32_t _ptr_driver_name;
12595 TALLOC_CTX *_mem_save_driver_name_0;
12596 uint32_t _ptr_architecture;
12597 TALLOC_CTX *_mem_save_architecture_0;
12598 uint32_t _ptr_driver_path;
12599 TALLOC_CTX *_mem_save_driver_path_0;
12600 uint32_t _ptr_data_file;
12601 TALLOC_CTX *_mem_save_data_file_0;
12602 uint32_t _ptr_config_file;
12603 TALLOC_CTX *_mem_save_config_file_0;
12604 uint32_t _ptr_help_file;
12605 TALLOC_CTX *_mem_save_help_file_0;
12606 uint32_t _ptr_dependent_files;
12607 TALLOC_CTX *_mem_save_dependent_files_0;
12608 uint32_t _ptr_monitor_name;
12609 TALLOC_CTX *_mem_save_monitor_name_0;
12610 uint32_t _ptr_default_datatype;
12611 TALLOC_CTX *_mem_save_default_datatype_0;
12612 uint32_t _ptr_previous_names;
12613 TALLOC_CTX *_mem_save_previous_names_0;
12614 uint32_t _ptr_manufacturer_name;
12615 TALLOC_CTX *_mem_save_manufacturer_name_0;
12616 uint32_t _ptr_manufacturer_url;
12617 TALLOC_CTX *_mem_save_manufacturer_url_0;
12618 uint32_t _ptr_hardware_id;
12619 TALLOC_CTX *_mem_save_hardware_id_0;
12620 uint32_t _ptr_provider;
12621 TALLOC_CTX *_mem_save_provider_0;
12622 if (ndr_flags & NDR_SCALARS) {
12623 NDR_CHECK(ndr_pull_align(ndr, 8));
12624 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
12626 uint32_t _flags_save_string = ndr->flags;
12627 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12628 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
12629 if (_ptr_driver_name) {
12630 NDR_PULL_ALLOC(ndr, r->driver_name);
12631 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
12633 r->driver_name = NULL;
12635 ndr->flags = _flags_save_string;
12638 uint32_t _flags_save_string = ndr->flags;
12639 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12640 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
12641 if (_ptr_architecture) {
12642 NDR_PULL_ALLOC(ndr, r->architecture);
12643 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
12645 r->architecture = NULL;
12647 ndr->flags = _flags_save_string;
12650 uint32_t _flags_save_string = ndr->flags;
12651 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12652 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
12653 if (_ptr_driver_path) {
12654 NDR_PULL_ALLOC(ndr, r->driver_path);
12655 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
12657 r->driver_path = NULL;
12659 ndr->flags = _flags_save_string;
12662 uint32_t _flags_save_string = ndr->flags;
12663 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12664 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
12665 if (_ptr_data_file) {
12666 NDR_PULL_ALLOC(ndr, r->data_file);
12667 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
12669 r->data_file = NULL;
12671 ndr->flags = _flags_save_string;
12674 uint32_t _flags_save_string = ndr->flags;
12675 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12676 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
12677 if (_ptr_config_file) {
12678 NDR_PULL_ALLOC(ndr, r->config_file);
12679 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
12681 r->config_file = NULL;
12683 ndr->flags = _flags_save_string;
12686 uint32_t _flags_save_string = ndr->flags;
12687 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12688 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
12689 if (_ptr_help_file) {
12690 NDR_PULL_ALLOC(ndr, r->help_file);
12691 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
12693 r->help_file = NULL;
12695 ndr->flags = _flags_save_string;
12698 uint32_t _flags_save_string_array = ndr->flags;
12699 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12700 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
12701 if (_ptr_dependent_files) {
12702 NDR_PULL_ALLOC(ndr, r->dependent_files);
12703 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
12705 r->dependent_files = NULL;
12707 ndr->flags = _flags_save_string_array;
12710 uint32_t _flags_save_string = ndr->flags;
12711 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12712 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
12713 if (_ptr_monitor_name) {
12714 NDR_PULL_ALLOC(ndr, r->monitor_name);
12715 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
12717 r->monitor_name = NULL;
12719 ndr->flags = _flags_save_string;
12722 uint32_t _flags_save_string = ndr->flags;
12723 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12724 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
12725 if (_ptr_default_datatype) {
12726 NDR_PULL_ALLOC(ndr, r->default_datatype);
12727 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
12729 r->default_datatype = NULL;
12731 ndr->flags = _flags_save_string;
12734 uint32_t _flags_save_string_array = ndr->flags;
12735 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12736 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
12737 if (_ptr_previous_names) {
12738 NDR_PULL_ALLOC(ndr, r->previous_names);
12739 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
12741 r->previous_names = NULL;
12743 ndr->flags = _flags_save_string_array;
12745 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
12746 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
12748 uint32_t _flags_save_string = ndr->flags;
12749 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12750 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
12751 if (_ptr_manufacturer_name) {
12752 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
12753 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_name, _ptr_manufacturer_name));
12755 r->manufacturer_name = NULL;
12757 ndr->flags = _flags_save_string;
12760 uint32_t _flags_save_string = ndr->flags;
12761 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12762 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
12763 if (_ptr_manufacturer_url) {
12764 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
12765 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_url, _ptr_manufacturer_url));
12767 r->manufacturer_url = NULL;
12769 ndr->flags = _flags_save_string;
12772 uint32_t _flags_save_string = ndr->flags;
12773 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12774 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
12775 if (_ptr_hardware_id) {
12776 NDR_PULL_ALLOC(ndr, r->hardware_id);
12777 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->hardware_id, _ptr_hardware_id));
12779 r->hardware_id = NULL;
12781 ndr->flags = _flags_save_string;
12784 uint32_t _flags_save_string = ndr->flags;
12785 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12786 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
12787 if (_ptr_provider) {
12788 NDR_PULL_ALLOC(ndr, r->provider);
12789 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->provider, _ptr_provider));
12791 r->provider = NULL;
12793 ndr->flags = _flags_save_string;
12795 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
12797 if (ndr_flags & NDR_BUFFERS) {
12799 uint32_t _flags_save_string = ndr->flags;
12800 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12801 if (r->driver_name) {
12802 uint32_t _relative_save_offset;
12803 _relative_save_offset = ndr->offset;
12804 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
12805 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12806 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
12807 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
12808 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
12809 if (ndr->offset > ndr->relative_highest_offset) {
12810 ndr->relative_highest_offset = ndr->offset;
12812 ndr->offset = _relative_save_offset;
12814 ndr->flags = _flags_save_string;
12817 uint32_t _flags_save_string = ndr->flags;
12818 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12819 if (r->architecture) {
12820 uint32_t _relative_save_offset;
12821 _relative_save_offset = ndr->offset;
12822 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
12823 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
12824 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
12825 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
12826 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
12827 if (ndr->offset > ndr->relative_highest_offset) {
12828 ndr->relative_highest_offset = ndr->offset;
12830 ndr->offset = _relative_save_offset;
12832 ndr->flags = _flags_save_string;
12835 uint32_t _flags_save_string = ndr->flags;
12836 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12837 if (r->driver_path) {
12838 uint32_t _relative_save_offset;
12839 _relative_save_offset = ndr->offset;
12840 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
12841 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
12842 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
12843 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
12844 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
12845 if (ndr->offset > ndr->relative_highest_offset) {
12846 ndr->relative_highest_offset = ndr->offset;
12848 ndr->offset = _relative_save_offset;
12850 ndr->flags = _flags_save_string;
12853 uint32_t _flags_save_string = ndr->flags;
12854 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12855 if (r->data_file) {
12856 uint32_t _relative_save_offset;
12857 _relative_save_offset = ndr->offset;
12858 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
12859 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12860 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
12861 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
12862 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
12863 if (ndr->offset > ndr->relative_highest_offset) {
12864 ndr->relative_highest_offset = ndr->offset;
12866 ndr->offset = _relative_save_offset;
12868 ndr->flags = _flags_save_string;
12871 uint32_t _flags_save_string = ndr->flags;
12872 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12873 if (r->config_file) {
12874 uint32_t _relative_save_offset;
12875 _relative_save_offset = ndr->offset;
12876 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
12877 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12878 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
12879 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
12880 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
12881 if (ndr->offset > ndr->relative_highest_offset) {
12882 ndr->relative_highest_offset = ndr->offset;
12884 ndr->offset = _relative_save_offset;
12886 ndr->flags = _flags_save_string;
12889 uint32_t _flags_save_string = ndr->flags;
12890 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12891 if (r->help_file) {
12892 uint32_t _relative_save_offset;
12893 _relative_save_offset = ndr->offset;
12894 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
12895 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12896 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
12897 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
12898 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
12899 if (ndr->offset > ndr->relative_highest_offset) {
12900 ndr->relative_highest_offset = ndr->offset;
12902 ndr->offset = _relative_save_offset;
12904 ndr->flags = _flags_save_string;
12907 uint32_t _flags_save_string_array = ndr->flags;
12908 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12909 if (r->dependent_files) {
12910 uint32_t _relative_save_offset;
12911 _relative_save_offset = ndr->offset;
12912 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
12913 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
12914 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
12915 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
12916 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
12917 if (ndr->offset > ndr->relative_highest_offset) {
12918 ndr->relative_highest_offset = ndr->offset;
12920 ndr->offset = _relative_save_offset;
12922 ndr->flags = _flags_save_string_array;
12925 uint32_t _flags_save_string = ndr->flags;
12926 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12927 if (r->monitor_name) {
12928 uint32_t _relative_save_offset;
12929 _relative_save_offset = ndr->offset;
12930 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
12931 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12932 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
12933 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
12934 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
12935 if (ndr->offset > ndr->relative_highest_offset) {
12936 ndr->relative_highest_offset = ndr->offset;
12938 ndr->offset = _relative_save_offset;
12940 ndr->flags = _flags_save_string;
12943 uint32_t _flags_save_string = ndr->flags;
12944 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12945 if (r->default_datatype) {
12946 uint32_t _relative_save_offset;
12947 _relative_save_offset = ndr->offset;
12948 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
12949 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
12950 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
12951 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
12952 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
12953 if (ndr->offset > ndr->relative_highest_offset) {
12954 ndr->relative_highest_offset = ndr->offset;
12956 ndr->offset = _relative_save_offset;
12958 ndr->flags = _flags_save_string;
12961 uint32_t _flags_save_string_array = ndr->flags;
12962 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12963 if (r->previous_names) {
12964 uint32_t _relative_save_offset;
12965 _relative_save_offset = ndr->offset;
12966 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
12967 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
12968 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
12969 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
12970 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
12971 if (ndr->offset > ndr->relative_highest_offset) {
12972 ndr->relative_highest_offset = ndr->offset;
12974 ndr->offset = _relative_save_offset;
12976 ndr->flags = _flags_save_string_array;
12979 uint32_t _flags_save_string = ndr->flags;
12980 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12981 if (r->manufacturer_name) {
12982 uint32_t _relative_save_offset;
12983 _relative_save_offset = ndr->offset;
12984 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_name));
12985 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12986 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
12987 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_name));
12988 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
12989 if (ndr->offset > ndr->relative_highest_offset) {
12990 ndr->relative_highest_offset = ndr->offset;
12992 ndr->offset = _relative_save_offset;
12994 ndr->flags = _flags_save_string;
12997 uint32_t _flags_save_string = ndr->flags;
12998 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12999 if (r->manufacturer_url) {
13000 uint32_t _relative_save_offset;
13001 _relative_save_offset = ndr->offset;
13002 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_url));
13003 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
13004 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
13005 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_url));
13006 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
13007 if (ndr->offset > ndr->relative_highest_offset) {
13008 ndr->relative_highest_offset = ndr->offset;
13010 ndr->offset = _relative_save_offset;
13012 ndr->flags = _flags_save_string;
13015 uint32_t _flags_save_string = ndr->flags;
13016 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13017 if (r->hardware_id) {
13018 uint32_t _relative_save_offset;
13019 _relative_save_offset = ndr->offset;
13020 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->hardware_id));
13021 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
13022 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
13023 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->hardware_id));
13024 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
13025 if (ndr->offset > ndr->relative_highest_offset) {
13026 ndr->relative_highest_offset = ndr->offset;
13028 ndr->offset = _relative_save_offset;
13030 ndr->flags = _flags_save_string;
13033 uint32_t _flags_save_string = ndr->flags;
13034 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13036 uint32_t _relative_save_offset;
13037 _relative_save_offset = ndr->offset;
13038 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->provider));
13039 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
13040 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
13041 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->provider));
13042 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
13043 if (ndr->offset > ndr->relative_highest_offset) {
13044 ndr->relative_highest_offset = ndr->offset;
13046 ndr->offset = _relative_save_offset;
13048 ndr->flags = _flags_save_string;
13051 return NDR_ERR_SUCCESS;
13054 _PUBLIC_ void ndr_print_spoolss_DriverInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo6 *r)
13056 ndr_print_struct(ndr, name, "spoolss_DriverInfo6");
13058 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
13059 ndr_print_ptr(ndr, "driver_name", r->driver_name);
13061 if (r->driver_name) {
13062 ndr_print_string(ndr, "driver_name", r->driver_name);
13065 ndr_print_ptr(ndr, "architecture", r->architecture);
13067 if (r->architecture) {
13068 ndr_print_string(ndr, "architecture", r->architecture);
13071 ndr_print_ptr(ndr, "driver_path", r->driver_path);
13073 if (r->driver_path) {
13074 ndr_print_string(ndr, "driver_path", r->driver_path);
13077 ndr_print_ptr(ndr, "data_file", r->data_file);
13079 if (r->data_file) {
13080 ndr_print_string(ndr, "data_file", r->data_file);
13083 ndr_print_ptr(ndr, "config_file", r->config_file);
13085 if (r->config_file) {
13086 ndr_print_string(ndr, "config_file", r->config_file);
13089 ndr_print_ptr(ndr, "help_file", r->help_file);
13091 if (r->help_file) {
13092 ndr_print_string(ndr, "help_file", r->help_file);
13095 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
13097 if (r->dependent_files) {
13098 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
13101 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
13103 if (r->monitor_name) {
13104 ndr_print_string(ndr, "monitor_name", r->monitor_name);
13107 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
13109 if (r->default_datatype) {
13110 ndr_print_string(ndr, "default_datatype", r->default_datatype);
13113 ndr_print_ptr(ndr, "previous_names", r->previous_names);
13115 if (r->previous_names) {
13116 ndr_print_string_array(ndr, "previous_names", r->previous_names);
13119 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
13120 ndr_print_hyper(ndr, "driver_version", r->driver_version);
13121 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
13123 if (r->manufacturer_name) {
13124 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
13127 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
13129 if (r->manufacturer_url) {
13130 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
13133 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
13135 if (r->hardware_id) {
13136 ndr_print_string(ndr, "hardware_id", r->hardware_id);
13139 ndr_print_ptr(ndr, "provider", r->provider);
13142 ndr_print_string(ndr, "provider", r->provider);
13148 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo6(const struct spoolss_DriverInfo6 *r, struct smb_iconv_convenience *ic, int flags)
13150 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo6, ic);
13153 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo8(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo8 *r)
13155 if (ndr_flags & NDR_SCALARS) {
13156 NDR_CHECK(ndr_push_align(ndr, 8));
13157 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
13159 uint32_t _flags_save_string = ndr->flags;
13160 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13161 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
13162 ndr->flags = _flags_save_string;
13165 uint32_t _flags_save_string = ndr->flags;
13166 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13167 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
13168 ndr->flags = _flags_save_string;
13171 uint32_t _flags_save_string = ndr->flags;
13172 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13173 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
13174 ndr->flags = _flags_save_string;
13177 uint32_t _flags_save_string = ndr->flags;
13178 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13179 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
13180 ndr->flags = _flags_save_string;
13183 uint32_t _flags_save_string = ndr->flags;
13184 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13185 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
13186 ndr->flags = _flags_save_string;
13189 uint32_t _flags_save_string = ndr->flags;
13190 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13191 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
13192 ndr->flags = _flags_save_string;
13195 uint32_t _flags_save_string_array = ndr->flags;
13196 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13197 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
13198 ndr->flags = _flags_save_string_array;
13201 uint32_t _flags_save_string = ndr->flags;
13202 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13203 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
13204 ndr->flags = _flags_save_string;
13207 uint32_t _flags_save_string = ndr->flags;
13208 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13209 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
13210 ndr->flags = _flags_save_string;
13213 uint32_t _flags_save_string_array = ndr->flags;
13214 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13215 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
13216 ndr->flags = _flags_save_string_array;
13218 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
13219 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
13221 uint32_t _flags_save_string = ndr->flags;
13222 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13223 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_name));
13224 ndr->flags = _flags_save_string;
13227 uint32_t _flags_save_string = ndr->flags;
13228 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13229 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_url));
13230 ndr->flags = _flags_save_string;
13233 uint32_t _flags_save_string = ndr->flags;
13234 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13235 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->hardware_id));
13236 ndr->flags = _flags_save_string;
13239 uint32_t _flags_save_string = ndr->flags;
13240 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13241 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->provider));
13242 ndr->flags = _flags_save_string;
13245 uint32_t _flags_save_string = ndr->flags;
13246 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13247 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor));
13248 ndr->flags = _flags_save_string;
13251 uint32_t _flags_save_string = ndr->flags;
13252 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13253 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->vendor_setup));
13254 ndr->flags = _flags_save_string;
13257 uint32_t _flags_save_string_array = ndr->flags;
13258 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13259 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->color_profiles));
13260 ndr->flags = _flags_save_string_array;
13263 uint32_t _flags_save_string = ndr->flags;
13264 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13265 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->inf_path));
13266 ndr->flags = _flags_save_string;
13268 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->printer_driver_attributes));
13270 uint32_t _flags_save_string_array = ndr->flags;
13271 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13272 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->core_driver_dependencies));
13273 ndr->flags = _flags_save_string_array;
13275 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->min_inbox_driver_ver_date));
13276 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->min_inbox_driver_ver_version));
13277 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
13279 if (ndr_flags & NDR_BUFFERS) {
13281 uint32_t _flags_save_string = ndr->flags;
13282 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13283 if (r->driver_name) {
13284 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
13285 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
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->architecture) {
13293 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
13294 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
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->driver_path) {
13302 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
13303 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
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->data_file) {
13311 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
13312 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_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->config_file) {
13320 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
13321 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
13323 ndr->flags = _flags_save_string;
13326 uint32_t _flags_save_string = ndr->flags;
13327 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13328 if (r->help_file) {
13329 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
13330 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
13332 ndr->flags = _flags_save_string;
13335 uint32_t _flags_save_string_array = ndr->flags;
13336 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13337 if (r->dependent_files) {
13338 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
13339 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
13341 ndr->flags = _flags_save_string_array;
13344 uint32_t _flags_save_string = ndr->flags;
13345 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13346 if (r->monitor_name) {
13347 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
13348 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
13350 ndr->flags = _flags_save_string;
13353 uint32_t _flags_save_string = ndr->flags;
13354 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13355 if (r->default_datatype) {
13356 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
13357 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
13359 ndr->flags = _flags_save_string;
13362 uint32_t _flags_save_string_array = ndr->flags;
13363 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13364 if (r->previous_names) {
13365 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->previous_names));
13366 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
13368 ndr->flags = _flags_save_string_array;
13371 uint32_t _flags_save_string = ndr->flags;
13372 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13373 if (r->manufacturer_name) {
13374 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_name));
13375 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_name));
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->manufacturer_url) {
13383 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_url));
13384 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_url));
13386 ndr->flags = _flags_save_string;
13389 uint32_t _flags_save_string = ndr->flags;
13390 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13391 if (r->hardware_id) {
13392 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->hardware_id));
13393 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->hardware_id));
13395 ndr->flags = _flags_save_string;
13398 uint32_t _flags_save_string = ndr->flags;
13399 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13401 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->provider));
13402 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->provider));
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->print_processor) {
13410 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->print_processor));
13411 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor));
13413 ndr->flags = _flags_save_string;
13416 uint32_t _flags_save_string = ndr->flags;
13417 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13418 if (r->vendor_setup) {
13419 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->vendor_setup));
13420 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->vendor_setup));
13422 ndr->flags = _flags_save_string;
13425 uint32_t _flags_save_string_array = ndr->flags;
13426 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13427 if (r->color_profiles) {
13428 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->color_profiles));
13429 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->color_profiles));
13431 ndr->flags = _flags_save_string_array;
13434 uint32_t _flags_save_string = ndr->flags;
13435 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13437 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->inf_path));
13438 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->inf_path));
13440 ndr->flags = _flags_save_string;
13443 uint32_t _flags_save_string_array = ndr->flags;
13444 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13445 if (r->core_driver_dependencies) {
13446 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->core_driver_dependencies));
13447 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->core_driver_dependencies));
13449 ndr->flags = _flags_save_string_array;
13452 return NDR_ERR_SUCCESS;
13455 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo8(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo8 *r)
13457 uint32_t _ptr_driver_name;
13458 TALLOC_CTX *_mem_save_driver_name_0;
13459 uint32_t _ptr_architecture;
13460 TALLOC_CTX *_mem_save_architecture_0;
13461 uint32_t _ptr_driver_path;
13462 TALLOC_CTX *_mem_save_driver_path_0;
13463 uint32_t _ptr_data_file;
13464 TALLOC_CTX *_mem_save_data_file_0;
13465 uint32_t _ptr_config_file;
13466 TALLOC_CTX *_mem_save_config_file_0;
13467 uint32_t _ptr_help_file;
13468 TALLOC_CTX *_mem_save_help_file_0;
13469 uint32_t _ptr_dependent_files;
13470 TALLOC_CTX *_mem_save_dependent_files_0;
13471 uint32_t _ptr_monitor_name;
13472 TALLOC_CTX *_mem_save_monitor_name_0;
13473 uint32_t _ptr_default_datatype;
13474 TALLOC_CTX *_mem_save_default_datatype_0;
13475 uint32_t _ptr_previous_names;
13476 TALLOC_CTX *_mem_save_previous_names_0;
13477 uint32_t _ptr_manufacturer_name;
13478 TALLOC_CTX *_mem_save_manufacturer_name_0;
13479 uint32_t _ptr_manufacturer_url;
13480 TALLOC_CTX *_mem_save_manufacturer_url_0;
13481 uint32_t _ptr_hardware_id;
13482 TALLOC_CTX *_mem_save_hardware_id_0;
13483 uint32_t _ptr_provider;
13484 TALLOC_CTX *_mem_save_provider_0;
13485 uint32_t _ptr_print_processor;
13486 TALLOC_CTX *_mem_save_print_processor_0;
13487 uint32_t _ptr_vendor_setup;
13488 TALLOC_CTX *_mem_save_vendor_setup_0;
13489 uint32_t _ptr_color_profiles;
13490 TALLOC_CTX *_mem_save_color_profiles_0;
13491 uint32_t _ptr_inf_path;
13492 TALLOC_CTX *_mem_save_inf_path_0;
13493 uint32_t _ptr_core_driver_dependencies;
13494 TALLOC_CTX *_mem_save_core_driver_dependencies_0;
13495 if (ndr_flags & NDR_SCALARS) {
13496 NDR_CHECK(ndr_pull_align(ndr, 8));
13497 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
13499 uint32_t _flags_save_string = ndr->flags;
13500 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13501 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
13502 if (_ptr_driver_name) {
13503 NDR_PULL_ALLOC(ndr, r->driver_name);
13504 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
13506 r->driver_name = NULL;
13508 ndr->flags = _flags_save_string;
13511 uint32_t _flags_save_string = ndr->flags;
13512 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13513 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
13514 if (_ptr_architecture) {
13515 NDR_PULL_ALLOC(ndr, r->architecture);
13516 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
13518 r->architecture = NULL;
13520 ndr->flags = _flags_save_string;
13523 uint32_t _flags_save_string = ndr->flags;
13524 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13525 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
13526 if (_ptr_driver_path) {
13527 NDR_PULL_ALLOC(ndr, r->driver_path);
13528 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
13530 r->driver_path = NULL;
13532 ndr->flags = _flags_save_string;
13535 uint32_t _flags_save_string = ndr->flags;
13536 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13537 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
13538 if (_ptr_data_file) {
13539 NDR_PULL_ALLOC(ndr, r->data_file);
13540 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
13542 r->data_file = NULL;
13544 ndr->flags = _flags_save_string;
13547 uint32_t _flags_save_string = ndr->flags;
13548 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13549 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
13550 if (_ptr_config_file) {
13551 NDR_PULL_ALLOC(ndr, r->config_file);
13552 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
13554 r->config_file = NULL;
13556 ndr->flags = _flags_save_string;
13559 uint32_t _flags_save_string = ndr->flags;
13560 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13561 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
13562 if (_ptr_help_file) {
13563 NDR_PULL_ALLOC(ndr, r->help_file);
13564 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
13566 r->help_file = NULL;
13568 ndr->flags = _flags_save_string;
13571 uint32_t _flags_save_string_array = ndr->flags;
13572 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13573 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
13574 if (_ptr_dependent_files) {
13575 NDR_PULL_ALLOC(ndr, r->dependent_files);
13576 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
13578 r->dependent_files = NULL;
13580 ndr->flags = _flags_save_string_array;
13583 uint32_t _flags_save_string = ndr->flags;
13584 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13585 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
13586 if (_ptr_monitor_name) {
13587 NDR_PULL_ALLOC(ndr, r->monitor_name);
13588 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
13590 r->monitor_name = NULL;
13592 ndr->flags = _flags_save_string;
13595 uint32_t _flags_save_string = ndr->flags;
13596 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13597 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
13598 if (_ptr_default_datatype) {
13599 NDR_PULL_ALLOC(ndr, r->default_datatype);
13600 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
13602 r->default_datatype = NULL;
13604 ndr->flags = _flags_save_string;
13607 uint32_t _flags_save_string_array = ndr->flags;
13608 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13609 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
13610 if (_ptr_previous_names) {
13611 NDR_PULL_ALLOC(ndr, r->previous_names);
13612 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
13614 r->previous_names = NULL;
13616 ndr->flags = _flags_save_string_array;
13618 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
13619 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
13621 uint32_t _flags_save_string = ndr->flags;
13622 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13623 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
13624 if (_ptr_manufacturer_name) {
13625 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
13626 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_name, _ptr_manufacturer_name));
13628 r->manufacturer_name = NULL;
13630 ndr->flags = _flags_save_string;
13633 uint32_t _flags_save_string = ndr->flags;
13634 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13635 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
13636 if (_ptr_manufacturer_url) {
13637 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
13638 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_url, _ptr_manufacturer_url));
13640 r->manufacturer_url = NULL;
13642 ndr->flags = _flags_save_string;
13645 uint32_t _flags_save_string = ndr->flags;
13646 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13647 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
13648 if (_ptr_hardware_id) {
13649 NDR_PULL_ALLOC(ndr, r->hardware_id);
13650 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->hardware_id, _ptr_hardware_id));
13652 r->hardware_id = NULL;
13654 ndr->flags = _flags_save_string;
13657 uint32_t _flags_save_string = ndr->flags;
13658 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13659 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
13660 if (_ptr_provider) {
13661 NDR_PULL_ALLOC(ndr, r->provider);
13662 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->provider, _ptr_provider));
13664 r->provider = NULL;
13666 ndr->flags = _flags_save_string;
13669 uint32_t _flags_save_string = ndr->flags;
13670 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13671 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
13672 if (_ptr_print_processor) {
13673 NDR_PULL_ALLOC(ndr, r->print_processor);
13674 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor, _ptr_print_processor));
13676 r->print_processor = NULL;
13678 ndr->flags = _flags_save_string;
13681 uint32_t _flags_save_string = ndr->flags;
13682 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13683 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_vendor_setup));
13684 if (_ptr_vendor_setup) {
13685 NDR_PULL_ALLOC(ndr, r->vendor_setup);
13686 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->vendor_setup, _ptr_vendor_setup));
13688 r->vendor_setup = NULL;
13690 ndr->flags = _flags_save_string;
13693 uint32_t _flags_save_string_array = ndr->flags;
13694 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13695 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_color_profiles));
13696 if (_ptr_color_profiles) {
13697 NDR_PULL_ALLOC(ndr, r->color_profiles);
13698 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->color_profiles, _ptr_color_profiles));
13700 r->color_profiles = NULL;
13702 ndr->flags = _flags_save_string_array;
13705 uint32_t _flags_save_string = ndr->flags;
13706 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13707 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_inf_path));
13708 if (_ptr_inf_path) {
13709 NDR_PULL_ALLOC(ndr, r->inf_path);
13710 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->inf_path, _ptr_inf_path));
13712 r->inf_path = NULL;
13714 ndr->flags = _flags_save_string;
13716 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->printer_driver_attributes));
13718 uint32_t _flags_save_string_array = ndr->flags;
13719 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13720 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_core_driver_dependencies));
13721 if (_ptr_core_driver_dependencies) {
13722 NDR_PULL_ALLOC(ndr, r->core_driver_dependencies);
13723 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->core_driver_dependencies, _ptr_core_driver_dependencies));
13725 r->core_driver_dependencies = NULL;
13727 ndr->flags = _flags_save_string_array;
13729 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_date));
13730 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_version));
13731 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
13733 if (ndr_flags & NDR_BUFFERS) {
13735 uint32_t _flags_save_string = ndr->flags;
13736 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13737 if (r->driver_name) {
13738 uint32_t _relative_save_offset;
13739 _relative_save_offset = ndr->offset;
13740 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
13741 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13742 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
13743 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
13744 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
13745 if (ndr->offset > ndr->relative_highest_offset) {
13746 ndr->relative_highest_offset = ndr->offset;
13748 ndr->offset = _relative_save_offset;
13750 ndr->flags = _flags_save_string;
13753 uint32_t _flags_save_string = ndr->flags;
13754 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13755 if (r->architecture) {
13756 uint32_t _relative_save_offset;
13757 _relative_save_offset = ndr->offset;
13758 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
13759 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
13760 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
13761 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
13762 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
13763 if (ndr->offset > ndr->relative_highest_offset) {
13764 ndr->relative_highest_offset = ndr->offset;
13766 ndr->offset = _relative_save_offset;
13768 ndr->flags = _flags_save_string;
13771 uint32_t _flags_save_string = ndr->flags;
13772 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13773 if (r->driver_path) {
13774 uint32_t _relative_save_offset;
13775 _relative_save_offset = ndr->offset;
13776 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
13777 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
13778 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
13779 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
13780 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
13781 if (ndr->offset > ndr->relative_highest_offset) {
13782 ndr->relative_highest_offset = ndr->offset;
13784 ndr->offset = _relative_save_offset;
13786 ndr->flags = _flags_save_string;
13789 uint32_t _flags_save_string = ndr->flags;
13790 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13791 if (r->data_file) {
13792 uint32_t _relative_save_offset;
13793 _relative_save_offset = ndr->offset;
13794 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
13795 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
13796 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
13797 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
13798 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
13799 if (ndr->offset > ndr->relative_highest_offset) {
13800 ndr->relative_highest_offset = ndr->offset;
13802 ndr->offset = _relative_save_offset;
13804 ndr->flags = _flags_save_string;
13807 uint32_t _flags_save_string = ndr->flags;
13808 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13809 if (r->config_file) {
13810 uint32_t _relative_save_offset;
13811 _relative_save_offset = ndr->offset;
13812 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
13813 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
13814 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
13815 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
13816 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
13817 if (ndr->offset > ndr->relative_highest_offset) {
13818 ndr->relative_highest_offset = ndr->offset;
13820 ndr->offset = _relative_save_offset;
13822 ndr->flags = _flags_save_string;
13825 uint32_t _flags_save_string = ndr->flags;
13826 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13827 if (r->help_file) {
13828 uint32_t _relative_save_offset;
13829 _relative_save_offset = ndr->offset;
13830 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
13831 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
13832 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
13833 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
13834 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
13835 if (ndr->offset > ndr->relative_highest_offset) {
13836 ndr->relative_highest_offset = ndr->offset;
13838 ndr->offset = _relative_save_offset;
13840 ndr->flags = _flags_save_string;
13843 uint32_t _flags_save_string_array = ndr->flags;
13844 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13845 if (r->dependent_files) {
13846 uint32_t _relative_save_offset;
13847 _relative_save_offset = ndr->offset;
13848 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
13849 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
13850 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
13851 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
13852 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
13853 if (ndr->offset > ndr->relative_highest_offset) {
13854 ndr->relative_highest_offset = ndr->offset;
13856 ndr->offset = _relative_save_offset;
13858 ndr->flags = _flags_save_string_array;
13861 uint32_t _flags_save_string = ndr->flags;
13862 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13863 if (r->monitor_name) {
13864 uint32_t _relative_save_offset;
13865 _relative_save_offset = ndr->offset;
13866 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
13867 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13868 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
13869 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
13870 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
13871 if (ndr->offset > ndr->relative_highest_offset) {
13872 ndr->relative_highest_offset = ndr->offset;
13874 ndr->offset = _relative_save_offset;
13876 ndr->flags = _flags_save_string;
13879 uint32_t _flags_save_string = ndr->flags;
13880 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13881 if (r->default_datatype) {
13882 uint32_t _relative_save_offset;
13883 _relative_save_offset = ndr->offset;
13884 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
13885 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
13886 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
13887 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
13888 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
13889 if (ndr->offset > ndr->relative_highest_offset) {
13890 ndr->relative_highest_offset = ndr->offset;
13892 ndr->offset = _relative_save_offset;
13894 ndr->flags = _flags_save_string;
13897 uint32_t _flags_save_string_array = ndr->flags;
13898 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13899 if (r->previous_names) {
13900 uint32_t _relative_save_offset;
13901 _relative_save_offset = ndr->offset;
13902 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
13903 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
13904 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
13905 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
13906 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
13907 if (ndr->offset > ndr->relative_highest_offset) {
13908 ndr->relative_highest_offset = ndr->offset;
13910 ndr->offset = _relative_save_offset;
13912 ndr->flags = _flags_save_string_array;
13915 uint32_t _flags_save_string = ndr->flags;
13916 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13917 if (r->manufacturer_name) {
13918 uint32_t _relative_save_offset;
13919 _relative_save_offset = ndr->offset;
13920 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_name));
13921 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13922 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
13923 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_name));
13924 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
13925 if (ndr->offset > ndr->relative_highest_offset) {
13926 ndr->relative_highest_offset = ndr->offset;
13928 ndr->offset = _relative_save_offset;
13930 ndr->flags = _flags_save_string;
13933 uint32_t _flags_save_string = ndr->flags;
13934 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13935 if (r->manufacturer_url) {
13936 uint32_t _relative_save_offset;
13937 _relative_save_offset = ndr->offset;
13938 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_url));
13939 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
13940 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
13941 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_url));
13942 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
13943 if (ndr->offset > ndr->relative_highest_offset) {
13944 ndr->relative_highest_offset = ndr->offset;
13946 ndr->offset = _relative_save_offset;
13948 ndr->flags = _flags_save_string;
13951 uint32_t _flags_save_string = ndr->flags;
13952 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13953 if (r->hardware_id) {
13954 uint32_t _relative_save_offset;
13955 _relative_save_offset = ndr->offset;
13956 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->hardware_id));
13957 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
13958 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
13959 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->hardware_id));
13960 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
13961 if (ndr->offset > ndr->relative_highest_offset) {
13962 ndr->relative_highest_offset = ndr->offset;
13964 ndr->offset = _relative_save_offset;
13966 ndr->flags = _flags_save_string;
13969 uint32_t _flags_save_string = ndr->flags;
13970 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13972 uint32_t _relative_save_offset;
13973 _relative_save_offset = ndr->offset;
13974 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->provider));
13975 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
13976 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
13977 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->provider));
13978 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
13979 if (ndr->offset > ndr->relative_highest_offset) {
13980 ndr->relative_highest_offset = ndr->offset;
13982 ndr->offset = _relative_save_offset;
13984 ndr->flags = _flags_save_string;
13987 uint32_t _flags_save_string = ndr->flags;
13988 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13989 if (r->print_processor) {
13990 uint32_t _relative_save_offset;
13991 _relative_save_offset = ndr->offset;
13992 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor));
13993 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
13994 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
13995 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor));
13996 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
13997 if (ndr->offset > ndr->relative_highest_offset) {
13998 ndr->relative_highest_offset = ndr->offset;
14000 ndr->offset = _relative_save_offset;
14002 ndr->flags = _flags_save_string;
14005 uint32_t _flags_save_string = ndr->flags;
14006 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14007 if (r->vendor_setup) {
14008 uint32_t _relative_save_offset;
14009 _relative_save_offset = ndr->offset;
14010 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->vendor_setup));
14011 _mem_save_vendor_setup_0 = NDR_PULL_GET_MEM_CTX(ndr);
14012 NDR_PULL_SET_MEM_CTX(ndr, r->vendor_setup, 0);
14013 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->vendor_setup));
14014 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vendor_setup_0, 0);
14015 if (ndr->offset > ndr->relative_highest_offset) {
14016 ndr->relative_highest_offset = ndr->offset;
14018 ndr->offset = _relative_save_offset;
14020 ndr->flags = _flags_save_string;
14023 uint32_t _flags_save_string_array = ndr->flags;
14024 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14025 if (r->color_profiles) {
14026 uint32_t _relative_save_offset;
14027 _relative_save_offset = ndr->offset;
14028 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->color_profiles));
14029 _mem_save_color_profiles_0 = NDR_PULL_GET_MEM_CTX(ndr);
14030 NDR_PULL_SET_MEM_CTX(ndr, r->color_profiles, 0);
14031 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->color_profiles));
14032 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_color_profiles_0, 0);
14033 if (ndr->offset > ndr->relative_highest_offset) {
14034 ndr->relative_highest_offset = ndr->offset;
14036 ndr->offset = _relative_save_offset;
14038 ndr->flags = _flags_save_string_array;
14041 uint32_t _flags_save_string = ndr->flags;
14042 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14044 uint32_t _relative_save_offset;
14045 _relative_save_offset = ndr->offset;
14046 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->inf_path));
14047 _mem_save_inf_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
14048 NDR_PULL_SET_MEM_CTX(ndr, r->inf_path, 0);
14049 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->inf_path));
14050 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_inf_path_0, 0);
14051 if (ndr->offset > ndr->relative_highest_offset) {
14052 ndr->relative_highest_offset = ndr->offset;
14054 ndr->offset = _relative_save_offset;
14056 ndr->flags = _flags_save_string;
14059 uint32_t _flags_save_string_array = ndr->flags;
14060 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14061 if (r->core_driver_dependencies) {
14062 uint32_t _relative_save_offset;
14063 _relative_save_offset = ndr->offset;
14064 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->core_driver_dependencies));
14065 _mem_save_core_driver_dependencies_0 = NDR_PULL_GET_MEM_CTX(ndr);
14066 NDR_PULL_SET_MEM_CTX(ndr, r->core_driver_dependencies, 0);
14067 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->core_driver_dependencies));
14068 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_driver_dependencies_0, 0);
14069 if (ndr->offset > ndr->relative_highest_offset) {
14070 ndr->relative_highest_offset = ndr->offset;
14072 ndr->offset = _relative_save_offset;
14074 ndr->flags = _flags_save_string_array;
14077 return NDR_ERR_SUCCESS;
14080 _PUBLIC_ void ndr_print_spoolss_DriverInfo8(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo8 *r)
14082 ndr_print_struct(ndr, name, "spoolss_DriverInfo8");
14084 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
14085 ndr_print_ptr(ndr, "driver_name", r->driver_name);
14087 if (r->driver_name) {
14088 ndr_print_string(ndr, "driver_name", r->driver_name);
14091 ndr_print_ptr(ndr, "architecture", r->architecture);
14093 if (r->architecture) {
14094 ndr_print_string(ndr, "architecture", r->architecture);
14097 ndr_print_ptr(ndr, "driver_path", r->driver_path);
14099 if (r->driver_path) {
14100 ndr_print_string(ndr, "driver_path", r->driver_path);
14103 ndr_print_ptr(ndr, "data_file", r->data_file);
14105 if (r->data_file) {
14106 ndr_print_string(ndr, "data_file", r->data_file);
14109 ndr_print_ptr(ndr, "config_file", r->config_file);
14111 if (r->config_file) {
14112 ndr_print_string(ndr, "config_file", r->config_file);
14115 ndr_print_ptr(ndr, "help_file", r->help_file);
14117 if (r->help_file) {
14118 ndr_print_string(ndr, "help_file", r->help_file);
14121 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
14123 if (r->dependent_files) {
14124 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
14127 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
14129 if (r->monitor_name) {
14130 ndr_print_string(ndr, "monitor_name", r->monitor_name);
14133 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
14135 if (r->default_datatype) {
14136 ndr_print_string(ndr, "default_datatype", r->default_datatype);
14139 ndr_print_ptr(ndr, "previous_names", r->previous_names);
14141 if (r->previous_names) {
14142 ndr_print_string_array(ndr, "previous_names", r->previous_names);
14145 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
14146 ndr_print_hyper(ndr, "driver_version", r->driver_version);
14147 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
14149 if (r->manufacturer_name) {
14150 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
14153 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
14155 if (r->manufacturer_url) {
14156 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
14159 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
14161 if (r->hardware_id) {
14162 ndr_print_string(ndr, "hardware_id", r->hardware_id);
14165 ndr_print_ptr(ndr, "provider", r->provider);
14168 ndr_print_string(ndr, "provider", r->provider);
14171 ndr_print_ptr(ndr, "print_processor", r->print_processor);
14173 if (r->print_processor) {
14174 ndr_print_string(ndr, "print_processor", r->print_processor);
14177 ndr_print_ptr(ndr, "vendor_setup", r->vendor_setup);
14179 if (r->vendor_setup) {
14180 ndr_print_string(ndr, "vendor_setup", r->vendor_setup);
14183 ndr_print_ptr(ndr, "color_profiles", r->color_profiles);
14185 if (r->color_profiles) {
14186 ndr_print_string_array(ndr, "color_profiles", r->color_profiles);
14189 ndr_print_ptr(ndr, "inf_path", r->inf_path);
14192 ndr_print_string(ndr, "inf_path", r->inf_path);
14195 ndr_print_uint32(ndr, "printer_driver_attributes", r->printer_driver_attributes);
14196 ndr_print_ptr(ndr, "core_driver_dependencies", r->core_driver_dependencies);
14198 if (r->core_driver_dependencies) {
14199 ndr_print_string_array(ndr, "core_driver_dependencies", r->core_driver_dependencies);
14202 ndr_print_NTTIME(ndr, "min_inbox_driver_ver_date", r->min_inbox_driver_ver_date);
14203 ndr_print_hyper(ndr, "min_inbox_driver_ver_version", r->min_inbox_driver_ver_version);
14207 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo8(const struct spoolss_DriverInfo8 *r, struct smb_iconv_convenience *ic, int flags)
14209 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo8, ic);
14212 static enum ndr_err_code ndr_push_spoolss_DriverFileType(struct ndr_push *ndr, int ndr_flags, enum spoolss_DriverFileType r)
14214 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
14215 return NDR_ERR_SUCCESS;
14218 static enum ndr_err_code ndr_pull_spoolss_DriverFileType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DriverFileType *r)
14221 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
14223 return NDR_ERR_SUCCESS;
14226 _PUBLIC_ void ndr_print_spoolss_DriverFileType(struct ndr_print *ndr, const char *name, enum spoolss_DriverFileType r)
14228 const char *val = NULL;
14231 case SPOOLSS_DRIVER_FILE_TYPE_RENDERING: val = "SPOOLSS_DRIVER_FILE_TYPE_RENDERING"; break;
14232 case SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION: val = "SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION"; break;
14233 case SPOOLSS_DRIVER_FILE_TYPE_DATA: val = "SPOOLSS_DRIVER_FILE_TYPE_DATA"; break;
14234 case SPOOLSS_DRIVER_FILE_TYPE_HELP: val = "SPOOLSS_DRIVER_FILE_TYPE_HELP"; break;
14235 case SPOOLSS_DRIVER_FILE_TYPE_OTHER: val = "SPOOLSS_DRIVER_FILE_TYPE_OTHER"; break;
14237 ndr_print_enum(ndr, name, "ENUM", val, r);
14240 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverFileInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverFileInfo *r)
14242 if (ndr_flags & NDR_SCALARS) {
14243 NDR_CHECK(ndr_push_align(ndr, 5));
14245 uint32_t _flags_save_string = ndr->flags;
14246 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14247 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->file_name));
14248 ndr->flags = _flags_save_string;
14250 NDR_CHECK(ndr_push_spoolss_DriverFileType(ndr, NDR_SCALARS, r->file_type));
14251 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->file_version));
14252 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
14254 if (ndr_flags & NDR_BUFFERS) {
14256 uint32_t _flags_save_string = ndr->flags;
14257 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14258 if (r->file_name) {
14259 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->file_name));
14260 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->file_name));
14262 ndr->flags = _flags_save_string;
14265 return NDR_ERR_SUCCESS;
14268 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverFileInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverFileInfo *r)
14270 uint32_t _ptr_file_name;
14271 TALLOC_CTX *_mem_save_file_name_0;
14272 if (ndr_flags & NDR_SCALARS) {
14273 NDR_CHECK(ndr_pull_align(ndr, 5));
14275 uint32_t _flags_save_string = ndr->flags;
14276 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14277 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_file_name));
14278 if (_ptr_file_name) {
14279 NDR_PULL_ALLOC(ndr, r->file_name);
14280 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->file_name, _ptr_file_name));
14282 r->file_name = NULL;
14284 ndr->flags = _flags_save_string;
14286 NDR_CHECK(ndr_pull_spoolss_DriverFileType(ndr, NDR_SCALARS, &r->file_type));
14287 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->file_version));
14288 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
14290 if (ndr_flags & NDR_BUFFERS) {
14292 uint32_t _flags_save_string = ndr->flags;
14293 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14294 if (r->file_name) {
14295 uint32_t _relative_save_offset;
14296 _relative_save_offset = ndr->offset;
14297 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->file_name));
14298 _mem_save_file_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14299 NDR_PULL_SET_MEM_CTX(ndr, r->file_name, 0);
14300 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->file_name));
14301 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_file_name_0, 0);
14302 if (ndr->offset > ndr->relative_highest_offset) {
14303 ndr->relative_highest_offset = ndr->offset;
14305 ndr->offset = _relative_save_offset;
14307 ndr->flags = _flags_save_string;
14310 return NDR_ERR_SUCCESS;
14313 _PUBLIC_ void ndr_print_spoolss_DriverFileInfo(struct ndr_print *ndr, const char *name, const struct spoolss_DriverFileInfo *r)
14315 ndr_print_struct(ndr, name, "spoolss_DriverFileInfo");
14317 ndr_print_ptr(ndr, "file_name", r->file_name);
14319 if (r->file_name) {
14320 ndr_print_string(ndr, "file_name", r->file_name);
14323 ndr_print_spoolss_DriverFileType(ndr, "file_type", r->file_type);
14324 ndr_print_uint32(ndr, "file_version", r->file_version);
14328 _PUBLIC_ void ndr_print_spoolss_DriverInfo101(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo101 *r)
14330 uint32_t cntr_file_info_1;
14331 ndr_print_struct(ndr, name, "spoolss_DriverInfo101");
14333 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
14334 ndr_print_ptr(ndr, "driver_name", r->driver_name);
14336 if (r->driver_name) {
14337 ndr_print_string(ndr, "driver_name", r->driver_name);
14340 ndr_print_ptr(ndr, "architecture", r->architecture);
14342 if (r->architecture) {
14343 ndr_print_string(ndr, "architecture", r->architecture);
14346 ndr_print_ptr(ndr, "file_info", r->file_info);
14348 if (r->file_info) {
14349 ndr->print(ndr, "%s: ARRAY(%d)", "file_info", (int)r->file_count);
14351 for (cntr_file_info_1=0;cntr_file_info_1<r->file_count;cntr_file_info_1++) {
14353 if (asprintf(&idx_1, "[%d]", cntr_file_info_1) != -1) {
14354 ndr_print_spoolss_DriverFileInfo(ndr, "file_info", &r->file_info[cntr_file_info_1]);
14361 ndr_print_uint32(ndr, "file_count", r->file_count);
14362 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
14364 if (r->monitor_name) {
14365 ndr_print_string(ndr, "monitor_name", r->monitor_name);
14368 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
14370 if (r->default_datatype) {
14371 ndr_print_string(ndr, "default_datatype", r->default_datatype);
14374 ndr_print_ptr(ndr, "previous_names", r->previous_names);
14376 if (r->previous_names) {
14377 ndr_print_string_array(ndr, "previous_names", r->previous_names);
14380 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
14381 ndr_print_hyper(ndr, "driver_version", r->driver_version);
14382 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
14384 if (r->manufacturer_name) {
14385 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
14388 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
14390 if (r->manufacturer_url) {
14391 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
14394 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
14396 if (r->hardware_id) {
14397 ndr_print_string(ndr, "hardware_id", r->hardware_id);
14400 ndr_print_ptr(ndr, "provider", r->provider);
14403 ndr_print_string(ndr, "provider", r->provider);
14409 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo101(const struct spoolss_DriverInfo101 *r, struct smb_iconv_convenience *ic, int flags)
14411 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo101, ic);
14414 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DriverInfo *r)
14416 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
14417 if (ndr_flags & NDR_SCALARS) {
14418 int level = ndr_push_get_switch_value(ndr, r);
14419 NDR_CHECK(ndr_push_union_align(ndr, 8));
14422 NDR_CHECK(ndr_push_align(ndr, 5));
14423 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14424 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr, NDR_SCALARS, &r->info1));
14428 NDR_CHECK(ndr_push_align(ndr, 5));
14429 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14430 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr, NDR_SCALARS, &r->info2));
14434 NDR_CHECK(ndr_push_align(ndr, 5));
14435 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14436 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr, NDR_SCALARS, &r->info3));
14440 NDR_CHECK(ndr_push_align(ndr, 5));
14441 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14442 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr, NDR_SCALARS, &r->info4));
14446 NDR_CHECK(ndr_push_align(ndr, 5));
14447 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14448 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr, NDR_SCALARS, &r->info5));
14452 NDR_CHECK(ndr_push_align(ndr, 8));
14453 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14454 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr, NDR_SCALARS, &r->info6));
14458 NDR_CHECK(ndr_push_align(ndr, 8));
14459 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14460 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr, NDR_SCALARS, &r->info8));
14464 NDR_CHECK(ndr_push_align(ndr, 8));
14465 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14466 NDR_CHECK(ndr_push_spoolss_DriverInfo101(ndr, NDR_SCALARS, &r->info101));
14474 if (ndr_flags & NDR_BUFFERS) {
14475 int level = ndr_push_get_switch_value(ndr, r);
14476 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
14479 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr, NDR_BUFFERS, &r->info1));
14483 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr, NDR_BUFFERS, &r->info2));
14487 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr, NDR_BUFFERS, &r->info3));
14491 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr, NDR_BUFFERS, &r->info4));
14495 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr, NDR_BUFFERS, &r->info5));
14499 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr, NDR_BUFFERS, &r->info6));
14503 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr, NDR_BUFFERS, &r->info8));
14507 NDR_CHECK(ndr_push_spoolss_DriverInfo101(ndr, NDR_BUFFERS, &r->info101));
14515 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
14516 return NDR_ERR_SUCCESS;
14519 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DriverInfo *r)
14521 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
14523 level = ndr_pull_get_switch_value(ndr, r);
14524 if (ndr_flags & NDR_SCALARS) {
14525 NDR_CHECK(ndr_pull_union_align(ndr, 8));
14528 NDR_CHECK(ndr_pull_align(ndr, 5));
14529 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14530 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr, NDR_SCALARS, &r->info1));
14534 NDR_CHECK(ndr_pull_align(ndr, 5));
14535 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14536 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr, NDR_SCALARS, &r->info2));
14540 NDR_CHECK(ndr_pull_align(ndr, 5));
14541 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14542 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr, NDR_SCALARS, &r->info3));
14546 NDR_CHECK(ndr_pull_align(ndr, 5));
14547 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14548 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr, NDR_SCALARS, &r->info4));
14552 NDR_CHECK(ndr_pull_align(ndr, 5));
14553 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14554 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr, NDR_SCALARS, &r->info5));
14558 NDR_CHECK(ndr_pull_align(ndr, 8));
14559 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14560 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr, NDR_SCALARS, &r->info6));
14564 NDR_CHECK(ndr_pull_align(ndr, 8));
14565 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14566 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr, NDR_SCALARS, &r->info8));
14570 NDR_CHECK(ndr_pull_align(ndr, 8));
14571 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14572 NDR_CHECK(ndr_pull_spoolss_DriverInfo101(ndr, NDR_SCALARS, &r->info101));
14580 if (ndr_flags & NDR_BUFFERS) {
14581 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
14584 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr, NDR_BUFFERS, &r->info1));
14588 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr, NDR_BUFFERS, &r->info2));
14592 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr, NDR_BUFFERS, &r->info3));
14596 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr, NDR_BUFFERS, &r->info4));
14600 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr, NDR_BUFFERS, &r->info5));
14604 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr, NDR_BUFFERS, &r->info6));
14608 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr, NDR_BUFFERS, &r->info8));
14612 NDR_CHECK(ndr_pull_spoolss_DriverInfo101(ndr, NDR_BUFFERS, &r->info101));
14620 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
14621 return NDR_ERR_SUCCESS;
14624 _PUBLIC_ void ndr_print_spoolss_DriverInfo(struct ndr_print *ndr, const char *name, const union spoolss_DriverInfo *r)
14627 level = ndr_print_get_switch_value(ndr, r);
14628 ndr_print_union(ndr, name, level, "spoolss_DriverInfo");
14631 ndr_print_spoolss_DriverInfo1(ndr, "info1", &r->info1);
14635 ndr_print_spoolss_DriverInfo2(ndr, "info2", &r->info2);
14639 ndr_print_spoolss_DriverInfo3(ndr, "info3", &r->info3);
14643 ndr_print_spoolss_DriverInfo4(ndr, "info4", &r->info4);
14647 ndr_print_spoolss_DriverInfo5(ndr, "info5", &r->info5);
14651 ndr_print_spoolss_DriverInfo6(ndr, "info6", &r->info6);
14655 ndr_print_spoolss_DriverInfo8(ndr, "info8", &r->info8);
14659 ndr_print_spoolss_DriverInfo101(ndr, "info101", &r->info101);
14668 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo(const union spoolss_DriverInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
14670 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo, ic);
14673 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverDirectoryInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverDirectoryInfo1 *r)
14675 if (ndr_flags & NDR_SCALARS) {
14676 NDR_CHECK(ndr_push_align(ndr, 4));
14678 uint32_t _flags_save_string = ndr->flags;
14679 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14680 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->directory_name));
14681 ndr->flags = _flags_save_string;
14683 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
14685 if (ndr_flags & NDR_BUFFERS) {
14687 return NDR_ERR_SUCCESS;
14690 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverDirectoryInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverDirectoryInfo1 *r)
14692 if (ndr_flags & NDR_SCALARS) {
14693 NDR_CHECK(ndr_pull_align(ndr, 4));
14695 uint32_t _flags_save_string = ndr->flags;
14696 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14697 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->directory_name));
14698 ndr->flags = _flags_save_string;
14700 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
14702 if (ndr_flags & NDR_BUFFERS) {
14704 return NDR_ERR_SUCCESS;
14707 _PUBLIC_ void ndr_print_spoolss_DriverDirectoryInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DriverDirectoryInfo1 *r)
14709 ndr_print_struct(ndr, name, "spoolss_DriverDirectoryInfo1");
14711 ndr_print_string(ndr, "directory_name", r->directory_name);
14715 _PUBLIC_ size_t ndr_size_spoolss_DriverDirectoryInfo1(const struct spoolss_DriverDirectoryInfo1 *r, struct smb_iconv_convenience *ic, int flags)
14717 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverDirectoryInfo1, ic);
14720 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverDirectoryInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DriverDirectoryInfo *r)
14722 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
14723 if (ndr_flags & NDR_SCALARS) {
14724 int level = ndr_push_get_switch_value(ndr, r);
14725 NDR_CHECK(ndr_push_union_align(ndr, 4));
14728 NDR_CHECK(ndr_push_align(ndr, 4));
14729 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14730 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14734 NDR_CHECK(ndr_push_align(ndr, 4));
14735 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14736 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14741 if (ndr_flags & NDR_BUFFERS) {
14742 int level = ndr_push_get_switch_value(ndr, r);
14743 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
14753 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
14754 return NDR_ERR_SUCCESS;
14757 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverDirectoryInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DriverDirectoryInfo *r)
14759 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
14761 level = ndr_pull_get_switch_value(ndr, r);
14762 if (ndr_flags & NDR_SCALARS) {
14763 NDR_CHECK(ndr_pull_union_align(ndr, 4));
14766 NDR_CHECK(ndr_pull_align(ndr, 4));
14767 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14768 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14772 NDR_CHECK(ndr_pull_align(ndr, 4));
14773 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14774 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14779 if (ndr_flags & NDR_BUFFERS) {
14780 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
14790 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
14791 return NDR_ERR_SUCCESS;
14794 _PUBLIC_ void ndr_print_spoolss_DriverDirectoryInfo(struct ndr_print *ndr, const char *name, const union spoolss_DriverDirectoryInfo *r)
14797 level = ndr_print_get_switch_value(ndr, r);
14798 ndr_print_union(ndr, name, level, "spoolss_DriverDirectoryInfo");
14801 ndr_print_spoolss_DriverDirectoryInfo1(ndr, "info1", &r->info1);
14805 ndr_print_spoolss_DriverDirectoryInfo1(ndr, "info1", &r->info1);
14811 _PUBLIC_ size_t ndr_size_spoolss_DriverDirectoryInfo(const union spoolss_DriverDirectoryInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
14813 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverDirectoryInfo, ic);
14816 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcessorInfo1 *r)
14818 if (ndr_flags & NDR_SCALARS) {
14819 NDR_CHECK(ndr_push_align(ndr, 5));
14821 uint32_t _flags_save_string = ndr->flags;
14822 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14823 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor_name));
14824 ndr->flags = _flags_save_string;
14826 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
14828 if (ndr_flags & NDR_BUFFERS) {
14830 uint32_t _flags_save_string = ndr->flags;
14831 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14832 if (r->print_processor_name) {
14833 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->print_processor_name));
14834 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor_name));
14836 ndr->flags = _flags_save_string;
14839 return NDR_ERR_SUCCESS;
14842 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcessorInfo1 *r)
14844 uint32_t _ptr_print_processor_name;
14845 TALLOC_CTX *_mem_save_print_processor_name_0;
14846 if (ndr_flags & NDR_SCALARS) {
14847 NDR_CHECK(ndr_pull_align(ndr, 5));
14849 uint32_t _flags_save_string = ndr->flags;
14850 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14851 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor_name));
14852 if (_ptr_print_processor_name) {
14853 NDR_PULL_ALLOC(ndr, r->print_processor_name);
14854 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor_name, _ptr_print_processor_name));
14856 r->print_processor_name = NULL;
14858 ndr->flags = _flags_save_string;
14860 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
14862 if (ndr_flags & NDR_BUFFERS) {
14864 uint32_t _flags_save_string = ndr->flags;
14865 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14866 if (r->print_processor_name) {
14867 uint32_t _relative_save_offset;
14868 _relative_save_offset = ndr->offset;
14869 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor_name));
14870 _mem_save_print_processor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14871 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor_name, 0);
14872 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor_name));
14873 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_name_0, 0);
14874 if (ndr->offset > ndr->relative_highest_offset) {
14875 ndr->relative_highest_offset = ndr->offset;
14877 ndr->offset = _relative_save_offset;
14879 ndr->flags = _flags_save_string;
14882 return NDR_ERR_SUCCESS;
14885 _PUBLIC_ void ndr_print_spoolss_PrintProcessorInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcessorInfo1 *r)
14887 ndr_print_struct(ndr, name, "spoolss_PrintProcessorInfo1");
14889 ndr_print_ptr(ndr, "print_processor_name", r->print_processor_name);
14891 if (r->print_processor_name) {
14892 ndr_print_string(ndr, "print_processor_name", r->print_processor_name);
14898 _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorInfo1(const struct spoolss_PrintProcessorInfo1 *r, struct smb_iconv_convenience *ic, int flags)
14900 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorInfo1, ic);
14903 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcessorInfo *r)
14905 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
14906 if (ndr_flags & NDR_SCALARS) {
14907 int level = ndr_push_get_switch_value(ndr, r);
14908 NDR_CHECK(ndr_push_union_align(ndr, 5));
14911 NDR_CHECK(ndr_push_align(ndr, 5));
14912 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14913 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr, NDR_SCALARS, &r->info1));
14921 if (ndr_flags & NDR_BUFFERS) {
14922 int level = ndr_push_get_switch_value(ndr, r);
14923 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
14926 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr, NDR_BUFFERS, &r->info1));
14934 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
14935 return NDR_ERR_SUCCESS;
14938 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcessorInfo *r)
14940 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
14942 level = ndr_pull_get_switch_value(ndr, r);
14943 if (ndr_flags & NDR_SCALARS) {
14944 NDR_CHECK(ndr_pull_union_align(ndr, 5));
14947 NDR_CHECK(ndr_pull_align(ndr, 5));
14948 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14949 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr, NDR_SCALARS, &r->info1));
14957 if (ndr_flags & NDR_BUFFERS) {
14958 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
14961 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr, NDR_BUFFERS, &r->info1));
14969 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
14970 return NDR_ERR_SUCCESS;
14973 _PUBLIC_ void ndr_print_spoolss_PrintProcessorInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcessorInfo *r)
14976 level = ndr_print_get_switch_value(ndr, r);
14977 ndr_print_union(ndr, name, level, "spoolss_PrintProcessorInfo");
14980 ndr_print_spoolss_PrintProcessorInfo1(ndr, "info1", &r->info1);
14989 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorDirectoryInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcessorDirectoryInfo1 *r)
14991 if (ndr_flags & NDR_SCALARS) {
14992 NDR_CHECK(ndr_push_align(ndr, 4));
14994 uint32_t _flags_save_string = ndr->flags;
14995 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14996 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->directory_name));
14997 ndr->flags = _flags_save_string;
14999 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
15001 if (ndr_flags & NDR_BUFFERS) {
15003 return NDR_ERR_SUCCESS;
15006 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorDirectoryInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcessorDirectoryInfo1 *r)
15008 if (ndr_flags & NDR_SCALARS) {
15009 NDR_CHECK(ndr_pull_align(ndr, 4));
15011 uint32_t _flags_save_string = ndr->flags;
15012 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15013 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->directory_name));
15014 ndr->flags = _flags_save_string;
15016 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
15018 if (ndr_flags & NDR_BUFFERS) {
15020 return NDR_ERR_SUCCESS;
15023 _PUBLIC_ void ndr_print_spoolss_PrintProcessorDirectoryInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcessorDirectoryInfo1 *r)
15025 ndr_print_struct(ndr, name, "spoolss_PrintProcessorDirectoryInfo1");
15027 ndr_print_string(ndr, "directory_name", r->directory_name);
15031 _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorDirectoryInfo1(const struct spoolss_PrintProcessorDirectoryInfo1 *r, struct smb_iconv_convenience *ic, int flags)
15033 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorDirectoryInfo1, ic);
15036 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorDirectoryInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcessorDirectoryInfo *r)
15038 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
15039 if (ndr_flags & NDR_SCALARS) {
15040 int level = ndr_push_get_switch_value(ndr, r);
15041 NDR_CHECK(ndr_push_union_align(ndr, 4));
15044 NDR_CHECK(ndr_push_align(ndr, 4));
15045 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15046 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
15050 NDR_CHECK(ndr_push_align(ndr, 4));
15051 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15052 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
15057 if (ndr_flags & NDR_BUFFERS) {
15058 int level = ndr_push_get_switch_value(ndr, r);
15059 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
15069 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
15070 return NDR_ERR_SUCCESS;
15073 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorDirectoryInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcessorDirectoryInfo *r)
15075 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
15077 level = ndr_pull_get_switch_value(ndr, r);
15078 if (ndr_flags & NDR_SCALARS) {
15079 NDR_CHECK(ndr_pull_union_align(ndr, 4));
15082 NDR_CHECK(ndr_pull_align(ndr, 4));
15083 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15084 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
15088 NDR_CHECK(ndr_pull_align(ndr, 4));
15089 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15090 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
15095 if (ndr_flags & NDR_BUFFERS) {
15096 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
15106 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
15107 return NDR_ERR_SUCCESS;
15110 _PUBLIC_ void ndr_print_spoolss_PrintProcessorDirectoryInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcessorDirectoryInfo *r)
15113 level = ndr_print_get_switch_value(ndr, r);
15114 ndr_print_union(ndr, name, level, "spoolss_PrintProcessorDirectoryInfo");
15117 ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr, "info1", &r->info1);
15121 ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr, "info1", &r->info1);
15127 _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorDirectoryInfo(const union spoolss_PrintProcessorDirectoryInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
15129 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorDirectoryInfo, ic);
15132 static enum ndr_err_code ndr_push_spoolss_DocumentInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DocumentInfo1 *r)
15134 if (ndr_flags & NDR_SCALARS) {
15135 NDR_CHECK(ndr_push_align(ndr, 5));
15136 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
15137 NDR_CHECK(ndr_push_unique_ptr(ndr, r->output_file));
15138 NDR_CHECK(ndr_push_unique_ptr(ndr, r->datatype));
15139 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
15141 if (ndr_flags & NDR_BUFFERS) {
15142 if (r->document_name) {
15143 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
15144 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
15145 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
15146 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15148 if (r->output_file) {
15149 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->output_file, CH_UTF16)));
15150 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
15151 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->output_file, CH_UTF16)));
15152 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->output_file, ndr_charset_length(r->output_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15155 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
15156 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
15157 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
15158 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->datatype, ndr_charset_length(r->datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15161 return NDR_ERR_SUCCESS;
15164 static enum ndr_err_code ndr_pull_spoolss_DocumentInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DocumentInfo1 *r)
15166 uint32_t _ptr_document_name;
15167 TALLOC_CTX *_mem_save_document_name_0;
15168 uint32_t _ptr_output_file;
15169 TALLOC_CTX *_mem_save_output_file_0;
15170 uint32_t _ptr_datatype;
15171 TALLOC_CTX *_mem_save_datatype_0;
15172 if (ndr_flags & NDR_SCALARS) {
15173 NDR_CHECK(ndr_pull_align(ndr, 5));
15174 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
15175 if (_ptr_document_name) {
15176 NDR_PULL_ALLOC(ndr, r->document_name);
15178 r->document_name = NULL;
15180 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_output_file));
15181 if (_ptr_output_file) {
15182 NDR_PULL_ALLOC(ndr, r->output_file);
15184 r->output_file = NULL;
15186 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
15187 if (_ptr_datatype) {
15188 NDR_PULL_ALLOC(ndr, r->datatype);
15190 r->datatype = NULL;
15192 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
15194 if (ndr_flags & NDR_BUFFERS) {
15195 if (r->document_name) {
15196 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15197 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
15198 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
15199 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
15200 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
15201 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));
15203 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
15204 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
15205 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
15207 if (r->output_file) {
15208 _mem_save_output_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
15209 NDR_PULL_SET_MEM_CTX(ndr, r->output_file, 0);
15210 NDR_CHECK(ndr_pull_array_size(ndr, &r->output_file));
15211 NDR_CHECK(ndr_pull_array_length(ndr, &r->output_file));
15212 if (ndr_get_array_length(ndr, &r->output_file) > ndr_get_array_size(ndr, &r->output_file)) {
15213 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));
15215 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->output_file), sizeof(uint16_t)));
15216 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->output_file, ndr_get_array_length(ndr, &r->output_file), sizeof(uint16_t), CH_UTF16));
15217 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_output_file_0, 0);
15220 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
15221 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
15222 NDR_CHECK(ndr_pull_array_size(ndr, &r->datatype));
15223 NDR_CHECK(ndr_pull_array_length(ndr, &r->datatype));
15224 if (ndr_get_array_length(ndr, &r->datatype) > ndr_get_array_size(ndr, &r->datatype)) {
15225 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));
15227 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t)));
15228 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->datatype, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t), CH_UTF16));
15229 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
15232 return NDR_ERR_SUCCESS;
15235 _PUBLIC_ void ndr_print_spoolss_DocumentInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DocumentInfo1 *r)
15237 ndr_print_struct(ndr, name, "spoolss_DocumentInfo1");
15239 ndr_print_ptr(ndr, "document_name", r->document_name);
15241 if (r->document_name) {
15242 ndr_print_string(ndr, "document_name", r->document_name);
15245 ndr_print_ptr(ndr, "output_file", r->output_file);
15247 if (r->output_file) {
15248 ndr_print_string(ndr, "output_file", r->output_file);
15251 ndr_print_ptr(ndr, "datatype", r->datatype);
15254 ndr_print_string(ndr, "datatype", r->datatype);
15260 static enum ndr_err_code ndr_push_spoolss_DocumentInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DocumentInfo *r)
15262 if (ndr_flags & NDR_SCALARS) {
15263 int level = ndr_push_get_switch_value(ndr, r);
15264 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
15265 NDR_CHECK(ndr_push_union_align(ndr, 5));
15268 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
15282 if (ndr_flags & NDR_BUFFERS) {
15283 int level = ndr_push_get_switch_value(ndr, r);
15287 NDR_CHECK(ndr_push_spoolss_DocumentInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
15302 return NDR_ERR_SUCCESS;
15305 static enum ndr_err_code ndr_pull_spoolss_DocumentInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DocumentInfo *r)
15309 TALLOC_CTX *_mem_save_info1_0;
15310 level = ndr_pull_get_switch_value(ndr, r);
15311 if (ndr_flags & NDR_SCALARS) {
15312 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
15313 if (_level != level) {
15314 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
15316 NDR_CHECK(ndr_pull_union_align(ndr, 5));
15319 uint32_t _ptr_info1;
15320 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
15322 NDR_PULL_ALLOC(ndr, r->info1);
15339 if (ndr_flags & NDR_BUFFERS) {
15343 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
15344 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
15345 NDR_CHECK(ndr_pull_spoolss_DocumentInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
15346 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
15361 return NDR_ERR_SUCCESS;
15364 _PUBLIC_ void ndr_print_spoolss_DocumentInfo(struct ndr_print *ndr, const char *name, const union spoolss_DocumentInfo *r)
15367 level = ndr_print_get_switch_value(ndr, r);
15368 ndr_print_union(ndr, name, level, "spoolss_DocumentInfo");
15371 ndr_print_ptr(ndr, "info1", r->info1);
15374 ndr_print_spoolss_DocumentInfo1(ndr, "info1", r->info1);
15391 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OSVersion(struct ndr_push *ndr, int ndr_flags, const struct spoolss_OSVersion *r)
15393 if (ndr_flags & NDR_SCALARS) {
15394 NDR_CHECK(ndr_push_align(ndr, 4));
15395 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_OSVersion(r, ndr->iconv_convenience, ndr->flags)));
15396 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->major));
15397 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minor));
15398 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
15399 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
15401 uint32_t _flags_save_string = ndr->flags;
15402 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15404 struct ndr_push *_ndr_extra_string;
15405 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
15406 NDR_CHECK(ndr_push_string(_ndr_extra_string, NDR_SCALARS, r->extra_string));
15407 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_extra_string, 0, 256));
15409 ndr->flags = _flags_save_string;
15411 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
15413 if (ndr_flags & NDR_BUFFERS) {
15415 return NDR_ERR_SUCCESS;
15418 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OSVersion(struct ndr_pull *ndr, int ndr_flags, struct spoolss_OSVersion *r)
15420 if (ndr_flags & NDR_SCALARS) {
15421 NDR_CHECK(ndr_pull_align(ndr, 4));
15422 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
15423 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->major));
15424 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minor));
15425 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
15426 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->platform_id));
15428 uint32_t _flags_save_string = ndr->flags;
15429 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15431 struct ndr_pull *_ndr_extra_string;
15432 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
15433 NDR_CHECK(ndr_pull_string(_ndr_extra_string, NDR_SCALARS, &r->extra_string));
15434 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_extra_string, 0, 256));
15436 ndr->flags = _flags_save_string;
15438 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
15440 if (ndr_flags & NDR_BUFFERS) {
15442 return NDR_ERR_SUCCESS;
15445 _PUBLIC_ void ndr_print_spoolss_OSVersion(struct ndr_print *ndr, const char *name, const struct spoolss_OSVersion *r)
15447 ndr_print_struct(ndr, name, "spoolss_OSVersion");
15449 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);
15450 ndr_print_uint32(ndr, "major", r->major);
15451 ndr_print_uint32(ndr, "minor", r->minor);
15452 ndr_print_uint32(ndr, "build", r->build);
15453 ndr_print_uint32(ndr, "platform_id", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->platform_id);
15454 ndr_print_string(ndr, "extra_string", r->extra_string);
15458 _PUBLIC_ size_t ndr_size_spoolss_OSVersion(const struct spoolss_OSVersion *r, struct smb_iconv_convenience *ic, int flags)
15460 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_OSVersion, ic);
15463 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OSVersionEx(struct ndr_push *ndr, int ndr_flags, const struct spoolss_OSVersionEx *r)
15465 if (ndr_flags & NDR_SCALARS) {
15466 NDR_CHECK(ndr_push_align(ndr, 4));
15467 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_OSVersionEx(r, ndr->iconv_convenience, ndr->flags)));
15468 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->major));
15469 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minor));
15470 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
15471 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
15473 uint32_t _flags_save_string = ndr->flags;
15474 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15476 struct ndr_push *_ndr_extra_string;
15477 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
15478 NDR_CHECK(ndr_push_string(_ndr_extra_string, NDR_SCALARS, r->extra_string));
15479 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_extra_string, 0, 256));
15481 ndr->flags = _flags_save_string;
15483 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->service_pack_major));
15484 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->service_pack_minor));
15485 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->suite_mask));
15486 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->product_type));
15487 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->reserved));
15488 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
15490 if (ndr_flags & NDR_BUFFERS) {
15492 return NDR_ERR_SUCCESS;
15495 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OSVersionEx(struct ndr_pull *ndr, int ndr_flags, struct spoolss_OSVersionEx *r)
15497 if (ndr_flags & NDR_SCALARS) {
15498 NDR_CHECK(ndr_pull_align(ndr, 4));
15499 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
15500 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->major));
15501 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minor));
15502 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
15503 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->platform_id));
15505 uint32_t _flags_save_string = ndr->flags;
15506 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15508 struct ndr_pull *_ndr_extra_string;
15509 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
15510 NDR_CHECK(ndr_pull_string(_ndr_extra_string, NDR_SCALARS, &r->extra_string));
15511 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_extra_string, 0, 256));
15513 ndr->flags = _flags_save_string;
15515 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->service_pack_major));
15516 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->service_pack_minor));
15517 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->suite_mask));
15518 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->product_type));
15519 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->reserved));
15520 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
15522 if (ndr_flags & NDR_BUFFERS) {
15524 return NDR_ERR_SUCCESS;
15527 _PUBLIC_ void ndr_print_spoolss_OSVersionEx(struct ndr_print *ndr, const char *name, const struct spoolss_OSVersionEx *r)
15529 ndr_print_struct(ndr, name, "spoolss_OSVersionEx");
15531 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);
15532 ndr_print_uint32(ndr, "major", r->major);
15533 ndr_print_uint32(ndr, "minor", r->minor);
15534 ndr_print_uint32(ndr, "build", r->build);
15535 ndr_print_uint32(ndr, "platform_id", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->platform_id);
15536 ndr_print_string(ndr, "extra_string", r->extra_string);
15537 ndr_print_uint16(ndr, "service_pack_major", r->service_pack_major);
15538 ndr_print_uint16(ndr, "service_pack_minor", r->service_pack_minor);
15539 ndr_print_uint16(ndr, "suite_mask", r->suite_mask);
15540 ndr_print_uint8(ndr, "product_type", r->product_type);
15541 ndr_print_uint8(ndr, "reserved", r->reserved);
15545 _PUBLIC_ size_t ndr_size_spoolss_OSVersionEx(const struct spoolss_OSVersionEx *r, struct smb_iconv_convenience *ic, int flags)
15547 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_OSVersionEx, ic);
15550 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterData(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrinterData *r)
15552 if (ndr_flags & NDR_SCALARS) {
15553 int level = ndr_push_get_switch_value(ndr, r);
15554 NDR_CHECK(ndr_push_union_align(ndr, 4));
15561 uint32_t _flags_save_string = ndr->flags;
15562 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15563 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->string));
15564 ndr->flags = _flags_save_string;
15570 uint32_t _flags_save_DATA_BLOB = ndr->flags;
15571 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
15572 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->binary));
15573 ndr->flags = _flags_save_DATA_BLOB;
15578 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->value));
15581 case REG_MULTI_SZ: {
15583 uint32_t _flags_save_string_array = ndr->flags;
15584 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15585 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string_array));
15586 ndr->flags = _flags_save_string_array;
15592 uint32_t _flags_save_DATA_BLOB = ndr->flags;
15593 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
15594 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->data));
15595 ndr->flags = _flags_save_DATA_BLOB;
15601 if (ndr_flags & NDR_BUFFERS) {
15602 int level = ndr_push_get_switch_value(ndr, r);
15624 return NDR_ERR_SUCCESS;
15627 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterData(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrinterData *r)
15630 level = ndr_pull_get_switch_value(ndr, r);
15631 if (ndr_flags & NDR_SCALARS) {
15632 NDR_CHECK(ndr_pull_union_align(ndr, 4));
15639 uint32_t _flags_save_string = ndr->flags;
15640 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15641 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->string));
15642 ndr->flags = _flags_save_string;
15648 uint32_t _flags_save_DATA_BLOB = ndr->flags;
15649 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
15650 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->binary));
15651 ndr->flags = _flags_save_DATA_BLOB;
15656 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->value));
15659 case REG_MULTI_SZ: {
15661 uint32_t _flags_save_string_array = ndr->flags;
15662 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15663 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string_array));
15664 ndr->flags = _flags_save_string_array;
15670 uint32_t _flags_save_DATA_BLOB = ndr->flags;
15671 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
15672 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->data));
15673 ndr->flags = _flags_save_DATA_BLOB;
15679 if (ndr_flags & NDR_BUFFERS) {
15701 return NDR_ERR_SUCCESS;
15704 _PUBLIC_ void ndr_print_spoolss_PrinterData(struct ndr_print *ndr, const char *name, const union spoolss_PrinterData *r)
15707 level = ndr_print_get_switch_value(ndr, r);
15708 ndr_print_union(ndr, name, level, "spoolss_PrinterData");
15714 ndr_print_string(ndr, "string", r->string);
15718 ndr_print_DATA_BLOB(ndr, "binary", r->binary);
15722 ndr_print_uint32(ndr, "value", r->value);
15726 ndr_print_string_array(ndr, "string_array", r->string_array);
15730 ndr_print_DATA_BLOB(ndr, "data", r->data);
15736 _PUBLIC_ size_t ndr_size_spoolss_PrinterData(const union spoolss_PrinterData *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
15738 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterData, ic);
15741 static enum ndr_err_code ndr_push_spoolss_FormFlags(struct ndr_push *ndr, int ndr_flags, enum spoolss_FormFlags r)
15743 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
15744 return NDR_ERR_SUCCESS;
15747 static enum ndr_err_code ndr_pull_spoolss_FormFlags(struct ndr_pull *ndr, int ndr_flags, enum spoolss_FormFlags *r)
15750 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
15752 return NDR_ERR_SUCCESS;
15755 _PUBLIC_ void ndr_print_spoolss_FormFlags(struct ndr_print *ndr, const char *name, enum spoolss_FormFlags r)
15757 const char *val = NULL;
15760 case SPOOLSS_FORM_USER: val = "SPOOLSS_FORM_USER"; break;
15761 case SPOOLSS_FORM_BUILTIN: val = "SPOOLSS_FORM_BUILTIN"; break;
15762 case SPOOLSS_FORM_PRINTER: val = "SPOOLSS_FORM_PRINTER"; break;
15764 ndr_print_enum(ndr, name, "ENUM", val, r);
15767 static enum ndr_err_code ndr_push_spoolss_FormSize(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormSize *r)
15769 if (ndr_flags & NDR_SCALARS) {
15770 NDR_CHECK(ndr_push_align(ndr, 4));
15771 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->width));
15772 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->height));
15773 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
15775 if (ndr_flags & NDR_BUFFERS) {
15777 return NDR_ERR_SUCCESS;
15780 static enum ndr_err_code ndr_pull_spoolss_FormSize(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormSize *r)
15782 if (ndr_flags & NDR_SCALARS) {
15783 NDR_CHECK(ndr_pull_align(ndr, 4));
15784 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->width));
15785 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->height));
15786 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
15788 if (ndr_flags & NDR_BUFFERS) {
15790 return NDR_ERR_SUCCESS;
15793 _PUBLIC_ void ndr_print_spoolss_FormSize(struct ndr_print *ndr, const char *name, const struct spoolss_FormSize *r)
15795 ndr_print_struct(ndr, name, "spoolss_FormSize");
15797 ndr_print_uint32(ndr, "width", r->width);
15798 ndr_print_uint32(ndr, "height", r->height);
15802 static enum ndr_err_code ndr_push_spoolss_FormArea(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormArea *r)
15804 if (ndr_flags & NDR_SCALARS) {
15805 NDR_CHECK(ndr_push_align(ndr, 4));
15806 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->left));
15807 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->top));
15808 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->right));
15809 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bottom));
15810 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
15812 if (ndr_flags & NDR_BUFFERS) {
15814 return NDR_ERR_SUCCESS;
15817 static enum ndr_err_code ndr_pull_spoolss_FormArea(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormArea *r)
15819 if (ndr_flags & NDR_SCALARS) {
15820 NDR_CHECK(ndr_pull_align(ndr, 4));
15821 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->left));
15822 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->top));
15823 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->right));
15824 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bottom));
15825 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
15827 if (ndr_flags & NDR_BUFFERS) {
15829 return NDR_ERR_SUCCESS;
15832 _PUBLIC_ void ndr_print_spoolss_FormArea(struct ndr_print *ndr, const char *name, const struct spoolss_FormArea *r)
15834 ndr_print_struct(ndr, name, "spoolss_FormArea");
15836 ndr_print_uint32(ndr, "left", r->left);
15837 ndr_print_uint32(ndr, "top", r->top);
15838 ndr_print_uint32(ndr, "right", r->right);
15839 ndr_print_uint32(ndr, "bottom", r->bottom);
15843 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormInfo1 *r)
15845 if (ndr_flags & NDR_SCALARS) {
15846 NDR_CHECK(ndr_push_align(ndr, 5));
15847 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
15849 uint32_t _flags_save_string = ndr->flags;
15850 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15851 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->form_name));
15852 ndr->flags = _flags_save_string;
15854 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15855 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15856 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
15858 if (ndr_flags & NDR_BUFFERS) {
15860 uint32_t _flags_save_string = ndr->flags;
15861 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15862 if (r->form_name) {
15863 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->form_name));
15864 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->form_name));
15866 ndr->flags = _flags_save_string;
15869 return NDR_ERR_SUCCESS;
15872 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormInfo1 *r)
15874 uint32_t _ptr_form_name;
15875 TALLOC_CTX *_mem_save_form_name_0;
15876 if (ndr_flags & NDR_SCALARS) {
15877 NDR_CHECK(ndr_pull_align(ndr, 5));
15878 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
15880 uint32_t _flags_save_string = ndr->flags;
15881 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15882 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
15883 if (_ptr_form_name) {
15884 NDR_PULL_ALLOC(ndr, r->form_name);
15885 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->form_name, _ptr_form_name));
15887 r->form_name = NULL;
15889 ndr->flags = _flags_save_string;
15891 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15892 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15893 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
15895 if (ndr_flags & NDR_BUFFERS) {
15897 uint32_t _flags_save_string = ndr->flags;
15898 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15899 if (r->form_name) {
15900 uint32_t _relative_save_offset;
15901 _relative_save_offset = ndr->offset;
15902 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->form_name));
15903 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15904 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
15905 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->form_name));
15906 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
15907 if (ndr->offset > ndr->relative_highest_offset) {
15908 ndr->relative_highest_offset = ndr->offset;
15910 ndr->offset = _relative_save_offset;
15912 ndr->flags = _flags_save_string;
15915 return NDR_ERR_SUCCESS;
15918 _PUBLIC_ void ndr_print_spoolss_FormInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_FormInfo1 *r)
15920 ndr_print_struct(ndr, name, "spoolss_FormInfo1");
15922 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
15923 ndr_print_ptr(ndr, "form_name", r->form_name);
15925 if (r->form_name) {
15926 ndr_print_string(ndr, "form_name", r->form_name);
15929 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
15930 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
15934 _PUBLIC_ size_t ndr_size_spoolss_FormInfo1(const struct spoolss_FormInfo1 *r, struct smb_iconv_convenience *ic, int flags)
15936 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo1, ic);
15939 static enum ndr_err_code ndr_push_spoolss_FormStringType(struct ndr_push *ndr, int ndr_flags, uint32_t r)
15941 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
15942 return NDR_ERR_SUCCESS;
15945 static enum ndr_err_code ndr_pull_spoolss_FormStringType(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
15948 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
15950 return NDR_ERR_SUCCESS;
15953 _PUBLIC_ void ndr_print_spoolss_FormStringType(struct ndr_print *ndr, const char *name, uint32_t r)
15955 ndr_print_uint32(ndr, name, r);
15957 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_NONE", SPOOLSS_FORM_STRING_TYPE_NONE, r);
15958 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_MUI_DLL", SPOOLSS_FORM_STRING_TYPE_MUI_DLL, r);
15959 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_LANG_PAIR", SPOOLSS_FORM_STRING_TYPE_LANG_PAIR, r);
15963 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormInfo2 *r)
15965 if (ndr_flags & NDR_SCALARS) {
15966 NDR_CHECK(ndr_push_align(ndr, 5));
15967 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
15969 uint32_t _flags_save_string = ndr->flags;
15970 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15971 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->form_name));
15972 ndr->flags = _flags_save_string;
15974 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15975 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15977 uint32_t _flags_save_string = ndr->flags;
15978 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
15979 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->keyword));
15980 ndr->flags = _flags_save_string;
15982 NDR_CHECK(ndr_push_spoolss_FormStringType(ndr, NDR_SCALARS, r->string_type));
15984 uint32_t _flags_save_string = ndr->flags;
15985 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15986 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->mui_dll));
15987 ndr->flags = _flags_save_string;
15989 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ressource_id));
15991 uint32_t _flags_save_string = ndr->flags;
15992 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15993 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->display_name));
15994 ndr->flags = _flags_save_string;
15996 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->lang_id));
15997 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
15999 if (ndr_flags & NDR_BUFFERS) {
16001 uint32_t _flags_save_string = ndr->flags;
16002 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16003 if (r->form_name) {
16004 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->form_name));
16005 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->form_name));
16007 ndr->flags = _flags_save_string;
16010 uint32_t _flags_save_string = ndr->flags;
16011 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
16013 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->keyword));
16014 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->keyword));
16016 ndr->flags = _flags_save_string;
16019 uint32_t _flags_save_string = ndr->flags;
16020 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16022 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->mui_dll));
16023 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->mui_dll));
16025 ndr->flags = _flags_save_string;
16028 uint32_t _flags_save_string = ndr->flags;
16029 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16030 if (r->display_name) {
16031 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->display_name));
16032 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->display_name));
16034 ndr->flags = _flags_save_string;
16037 return NDR_ERR_SUCCESS;
16040 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormInfo2 *r)
16042 uint32_t _ptr_form_name;
16043 TALLOC_CTX *_mem_save_form_name_0;
16044 uint32_t _ptr_keyword;
16045 TALLOC_CTX *_mem_save_keyword_0;
16046 uint32_t _ptr_mui_dll;
16047 TALLOC_CTX *_mem_save_mui_dll_0;
16048 uint32_t _ptr_display_name;
16049 TALLOC_CTX *_mem_save_display_name_0;
16050 if (ndr_flags & NDR_SCALARS) {
16051 NDR_CHECK(ndr_pull_align(ndr, 5));
16052 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
16054 uint32_t _flags_save_string = ndr->flags;
16055 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16056 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
16057 if (_ptr_form_name) {
16058 NDR_PULL_ALLOC(ndr, r->form_name);
16059 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->form_name, _ptr_form_name));
16061 r->form_name = NULL;
16063 ndr->flags = _flags_save_string;
16065 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
16066 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
16068 uint32_t _flags_save_string = ndr->flags;
16069 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
16070 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyword));
16071 if (_ptr_keyword) {
16072 NDR_PULL_ALLOC(ndr, r->keyword);
16073 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->keyword, _ptr_keyword));
16077 ndr->flags = _flags_save_string;
16079 NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr, NDR_SCALARS, &r->string_type));
16081 uint32_t _flags_save_string = ndr->flags;
16082 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16083 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_mui_dll));
16084 if (_ptr_mui_dll) {
16085 NDR_PULL_ALLOC(ndr, r->mui_dll);
16086 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->mui_dll, _ptr_mui_dll));
16090 ndr->flags = _flags_save_string;
16092 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ressource_id));
16094 uint32_t _flags_save_string = ndr->flags;
16095 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16096 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_display_name));
16097 if (_ptr_display_name) {
16098 NDR_PULL_ALLOC(ndr, r->display_name);
16099 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->display_name, _ptr_display_name));
16101 r->display_name = NULL;
16103 ndr->flags = _flags_save_string;
16105 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->lang_id));
16106 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
16108 if (ndr_flags & NDR_BUFFERS) {
16110 uint32_t _flags_save_string = ndr->flags;
16111 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16112 if (r->form_name) {
16113 uint32_t _relative_save_offset;
16114 _relative_save_offset = ndr->offset;
16115 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->form_name));
16116 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16117 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
16118 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->form_name));
16119 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
16120 if (ndr->offset > ndr->relative_highest_offset) {
16121 ndr->relative_highest_offset = ndr->offset;
16123 ndr->offset = _relative_save_offset;
16125 ndr->flags = _flags_save_string;
16128 uint32_t _flags_save_string = ndr->flags;
16129 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
16131 uint32_t _relative_save_offset;
16132 _relative_save_offset = ndr->offset;
16133 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->keyword));
16134 _mem_save_keyword_0 = NDR_PULL_GET_MEM_CTX(ndr);
16135 NDR_PULL_SET_MEM_CTX(ndr, r->keyword, 0);
16136 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->keyword));
16137 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyword_0, 0);
16138 if (ndr->offset > ndr->relative_highest_offset) {
16139 ndr->relative_highest_offset = ndr->offset;
16141 ndr->offset = _relative_save_offset;
16143 ndr->flags = _flags_save_string;
16146 uint32_t _flags_save_string = ndr->flags;
16147 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16149 uint32_t _relative_save_offset;
16150 _relative_save_offset = ndr->offset;
16151 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->mui_dll));
16152 _mem_save_mui_dll_0 = NDR_PULL_GET_MEM_CTX(ndr);
16153 NDR_PULL_SET_MEM_CTX(ndr, r->mui_dll, 0);
16154 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->mui_dll));
16155 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_mui_dll_0, 0);
16156 if (ndr->offset > ndr->relative_highest_offset) {
16157 ndr->relative_highest_offset = ndr->offset;
16159 ndr->offset = _relative_save_offset;
16161 ndr->flags = _flags_save_string;
16164 uint32_t _flags_save_string = ndr->flags;
16165 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16166 if (r->display_name) {
16167 uint32_t _relative_save_offset;
16168 _relative_save_offset = ndr->offset;
16169 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->display_name));
16170 _mem_save_display_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16171 NDR_PULL_SET_MEM_CTX(ndr, r->display_name, 0);
16172 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->display_name));
16173 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_display_name_0, 0);
16174 if (ndr->offset > ndr->relative_highest_offset) {
16175 ndr->relative_highest_offset = ndr->offset;
16177 ndr->offset = _relative_save_offset;
16179 ndr->flags = _flags_save_string;
16182 return NDR_ERR_SUCCESS;
16185 _PUBLIC_ void ndr_print_spoolss_FormInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_FormInfo2 *r)
16187 ndr_print_struct(ndr, name, "spoolss_FormInfo2");
16189 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
16190 ndr_print_ptr(ndr, "form_name", r->form_name);
16192 if (r->form_name) {
16193 ndr_print_string(ndr, "form_name", r->form_name);
16196 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
16197 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
16198 ndr_print_ptr(ndr, "keyword", r->keyword);
16201 ndr_print_string(ndr, "keyword", r->keyword);
16204 ndr_print_spoolss_FormStringType(ndr, "string_type", r->string_type);
16205 ndr_print_ptr(ndr, "mui_dll", r->mui_dll);
16208 ndr_print_string(ndr, "mui_dll", r->mui_dll);
16211 ndr_print_uint32(ndr, "ressource_id", r->ressource_id);
16212 ndr_print_ptr(ndr, "display_name", r->display_name);
16214 if (r->display_name) {
16215 ndr_print_string(ndr, "display_name", r->display_name);
16218 ndr_print_uint32(ndr, "lang_id", r->lang_id);
16222 _PUBLIC_ size_t ndr_size_spoolss_FormInfo2(const struct spoolss_FormInfo2 *r, struct smb_iconv_convenience *ic, int flags)
16224 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo2, ic);
16227 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_FormInfo *r)
16229 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
16230 if (ndr_flags & NDR_SCALARS) {
16231 int level = ndr_push_get_switch_value(ndr, r);
16232 NDR_CHECK(ndr_push_union_align(ndr, 5));
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_FormInfo1(ndr, NDR_SCALARS, &r->info1));
16241 NDR_CHECK(ndr_push_align(ndr, 5));
16242 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16243 NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr, NDR_SCALARS, &r->info2));
16251 if (ndr_flags & NDR_BUFFERS) {
16252 int level = ndr_push_get_switch_value(ndr, r);
16253 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
16256 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr, NDR_BUFFERS, &r->info1));
16260 NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr, NDR_BUFFERS, &r->info2));
16268 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
16269 return NDR_ERR_SUCCESS;
16272 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_FormInfo *r)
16274 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
16276 level = ndr_pull_get_switch_value(ndr, r);
16277 if (ndr_flags & NDR_SCALARS) {
16278 NDR_CHECK(ndr_pull_union_align(ndr, 5));
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_FormInfo1(ndr, NDR_SCALARS, &r->info1));
16287 NDR_CHECK(ndr_pull_align(ndr, 5));
16288 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16289 NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr, NDR_SCALARS, &r->info2));
16297 if (ndr_flags & NDR_BUFFERS) {
16298 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
16301 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr, NDR_BUFFERS, &r->info1));
16305 NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr, NDR_BUFFERS, &r->info2));
16313 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
16314 return NDR_ERR_SUCCESS;
16317 _PUBLIC_ void ndr_print_spoolss_FormInfo(struct ndr_print *ndr, const char *name, const union spoolss_FormInfo *r)
16320 level = ndr_print_get_switch_value(ndr, r);
16321 ndr_print_union(ndr, name, level, "spoolss_FormInfo");
16324 ndr_print_spoolss_FormInfo1(ndr, "info1", &r->info1);
16328 ndr_print_spoolss_FormInfo2(ndr, "info2", &r->info2);
16337 _PUBLIC_ size_t ndr_size_spoolss_FormInfo(const union spoolss_FormInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
16339 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo, ic);
16342 static enum ndr_err_code ndr_push_spoolss_AddFormInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddFormInfo1 *r)
16344 if (ndr_flags & NDR_SCALARS) {
16345 NDR_CHECK(ndr_push_align(ndr, 5));
16346 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
16347 NDR_CHECK(ndr_push_unique_ptr(ndr, r->form_name));
16348 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
16349 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
16350 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
16352 if (ndr_flags & NDR_BUFFERS) {
16353 if (r->form_name) {
16354 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
16355 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
16356 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
16357 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->form_name, ndr_charset_length(r->form_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16360 return NDR_ERR_SUCCESS;
16363 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddFormInfo1 *r)
16365 uint32_t _ptr_form_name;
16366 TALLOC_CTX *_mem_save_form_name_0;
16367 if (ndr_flags & NDR_SCALARS) {
16368 NDR_CHECK(ndr_pull_align(ndr, 5));
16369 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
16370 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
16371 if (_ptr_form_name) {
16372 NDR_PULL_ALLOC(ndr, r->form_name);
16374 r->form_name = NULL;
16376 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
16377 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
16378 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
16380 if (ndr_flags & NDR_BUFFERS) {
16381 if (r->form_name) {
16382 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16383 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
16384 NDR_CHECK(ndr_pull_array_size(ndr, &r->form_name));
16385 NDR_CHECK(ndr_pull_array_length(ndr, &r->form_name));
16386 if (ndr_get_array_length(ndr, &r->form_name) > ndr_get_array_size(ndr, &r->form_name)) {
16387 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));
16389 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t)));
16390 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->form_name, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t), CH_UTF16));
16391 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
16394 return NDR_ERR_SUCCESS;
16397 _PUBLIC_ void ndr_print_spoolss_AddFormInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_AddFormInfo1 *r)
16399 ndr_print_struct(ndr, name, "spoolss_AddFormInfo1");
16401 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
16402 ndr_print_ptr(ndr, "form_name", r->form_name);
16404 if (r->form_name) {
16405 ndr_print_string(ndr, "form_name", r->form_name);
16408 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
16409 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
16413 static enum ndr_err_code ndr_push_spoolss_AddFormInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddFormInfo2 *r)
16415 if (ndr_flags & NDR_SCALARS) {
16416 NDR_CHECK(ndr_push_align(ndr, 5));
16417 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
16418 NDR_CHECK(ndr_push_unique_ptr(ndr, r->form_name));
16419 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
16420 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
16421 NDR_CHECK(ndr_push_unique_ptr(ndr, r->keyword));
16422 NDR_CHECK(ndr_push_spoolss_FormStringType(ndr, NDR_SCALARS, r->string_type));
16423 NDR_CHECK(ndr_push_unique_ptr(ndr, r->mui_dll));
16424 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ressource_id));
16425 NDR_CHECK(ndr_push_unique_ptr(ndr, r->display_name));
16426 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->lang_id));
16427 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
16429 if (ndr_flags & NDR_BUFFERS) {
16430 if (r->form_name) {
16431 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
16432 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
16433 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
16434 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->form_name, ndr_charset_length(r->form_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16437 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->keyword, CH_DOS)));
16438 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
16439 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->keyword, CH_DOS)));
16440 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->keyword, ndr_charset_length(r->keyword, CH_DOS), sizeof(uint8_t), CH_DOS));
16443 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->mui_dll, 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->mui_dll, CH_UTF16)));
16446 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->mui_dll, ndr_charset_length(r->mui_dll, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16448 if (r->display_name) {
16449 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->display_name, CH_UTF16)));
16450 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
16451 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->display_name, CH_UTF16)));
16452 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->display_name, ndr_charset_length(r->display_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16455 return NDR_ERR_SUCCESS;
16458 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddFormInfo2 *r)
16460 uint32_t _ptr_form_name;
16461 TALLOC_CTX *_mem_save_form_name_0;
16462 uint32_t _ptr_keyword;
16463 TALLOC_CTX *_mem_save_keyword_0;
16464 uint32_t _ptr_mui_dll;
16465 TALLOC_CTX *_mem_save_mui_dll_0;
16466 uint32_t _ptr_display_name;
16467 TALLOC_CTX *_mem_save_display_name_0;
16468 if (ndr_flags & NDR_SCALARS) {
16469 NDR_CHECK(ndr_pull_align(ndr, 5));
16470 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
16471 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
16472 if (_ptr_form_name) {
16473 NDR_PULL_ALLOC(ndr, r->form_name);
16475 r->form_name = NULL;
16477 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
16478 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
16479 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyword));
16480 if (_ptr_keyword) {
16481 NDR_PULL_ALLOC(ndr, r->keyword);
16485 NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr, NDR_SCALARS, &r->string_type));
16486 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_mui_dll));
16487 if (_ptr_mui_dll) {
16488 NDR_PULL_ALLOC(ndr, r->mui_dll);
16492 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ressource_id));
16493 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_display_name));
16494 if (_ptr_display_name) {
16495 NDR_PULL_ALLOC(ndr, r->display_name);
16497 r->display_name = NULL;
16499 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->lang_id));
16500 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
16502 if (ndr_flags & NDR_BUFFERS) {
16503 if (r->form_name) {
16504 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16505 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
16506 NDR_CHECK(ndr_pull_array_size(ndr, &r->form_name));
16507 NDR_CHECK(ndr_pull_array_length(ndr, &r->form_name));
16508 if (ndr_get_array_length(ndr, &r->form_name) > ndr_get_array_size(ndr, &r->form_name)) {
16509 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));
16511 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t)));
16512 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->form_name, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t), CH_UTF16));
16513 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
16516 _mem_save_keyword_0 = NDR_PULL_GET_MEM_CTX(ndr);
16517 NDR_PULL_SET_MEM_CTX(ndr, r->keyword, 0);
16518 NDR_CHECK(ndr_pull_array_size(ndr, &r->keyword));
16519 NDR_CHECK(ndr_pull_array_length(ndr, &r->keyword));
16520 if (ndr_get_array_length(ndr, &r->keyword) > ndr_get_array_size(ndr, &r->keyword)) {
16521 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));
16523 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->keyword), sizeof(uint8_t)));
16524 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->keyword, ndr_get_array_length(ndr, &r->keyword), sizeof(uint8_t), CH_DOS));
16525 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyword_0, 0);
16528 _mem_save_mui_dll_0 = NDR_PULL_GET_MEM_CTX(ndr);
16529 NDR_PULL_SET_MEM_CTX(ndr, r->mui_dll, 0);
16530 NDR_CHECK(ndr_pull_array_size(ndr, &r->mui_dll));
16531 NDR_CHECK(ndr_pull_array_length(ndr, &r->mui_dll));
16532 if (ndr_get_array_length(ndr, &r->mui_dll) > ndr_get_array_size(ndr, &r->mui_dll)) {
16533 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));
16535 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->mui_dll), sizeof(uint16_t)));
16536 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->mui_dll, ndr_get_array_length(ndr, &r->mui_dll), sizeof(uint16_t), CH_UTF16));
16537 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_mui_dll_0, 0);
16539 if (r->display_name) {
16540 _mem_save_display_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16541 NDR_PULL_SET_MEM_CTX(ndr, r->display_name, 0);
16542 NDR_CHECK(ndr_pull_array_size(ndr, &r->display_name));
16543 NDR_CHECK(ndr_pull_array_length(ndr, &r->display_name));
16544 if (ndr_get_array_length(ndr, &r->display_name) > ndr_get_array_size(ndr, &r->display_name)) {
16545 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));
16547 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->display_name), sizeof(uint16_t)));
16548 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->display_name, ndr_get_array_length(ndr, &r->display_name), sizeof(uint16_t), CH_UTF16));
16549 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_display_name_0, 0);
16552 return NDR_ERR_SUCCESS;
16555 _PUBLIC_ void ndr_print_spoolss_AddFormInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_AddFormInfo2 *r)
16557 ndr_print_struct(ndr, name, "spoolss_AddFormInfo2");
16559 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
16560 ndr_print_ptr(ndr, "form_name", r->form_name);
16562 if (r->form_name) {
16563 ndr_print_string(ndr, "form_name", r->form_name);
16566 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
16567 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
16568 ndr_print_ptr(ndr, "keyword", r->keyword);
16571 ndr_print_string(ndr, "keyword", r->keyword);
16574 ndr_print_spoolss_FormStringType(ndr, "string_type", r->string_type);
16575 ndr_print_ptr(ndr, "mui_dll", r->mui_dll);
16578 ndr_print_string(ndr, "mui_dll", r->mui_dll);
16581 ndr_print_uint32(ndr, "ressource_id", r->ressource_id);
16582 ndr_print_ptr(ndr, "display_name", r->display_name);
16584 if (r->display_name) {
16585 ndr_print_string(ndr, "display_name", r->display_name);
16588 ndr_print_uint32(ndr, "lang_id", r->lang_id);
16592 static enum ndr_err_code ndr_push_spoolss_AddFormInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_AddFormInfo *r)
16594 if (ndr_flags & NDR_SCALARS) {
16595 int level = ndr_push_get_switch_value(ndr, r);
16596 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
16597 NDR_CHECK(ndr_push_union_align(ndr, 5));
16600 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
16604 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
16608 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
16611 if (ndr_flags & NDR_BUFFERS) {
16612 int level = ndr_push_get_switch_value(ndr, r);
16616 NDR_CHECK(ndr_push_spoolss_AddFormInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
16622 NDR_CHECK(ndr_push_spoolss_AddFormInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
16627 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
16630 return NDR_ERR_SUCCESS;
16633 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_AddFormInfo *r)
16637 TALLOC_CTX *_mem_save_info1_0;
16638 TALLOC_CTX *_mem_save_info2_0;
16639 level = ndr_pull_get_switch_value(ndr, r);
16640 if (ndr_flags & NDR_SCALARS) {
16641 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
16642 if (_level != level) {
16643 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
16645 NDR_CHECK(ndr_pull_union_align(ndr, 5));
16648 uint32_t _ptr_info1;
16649 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
16651 NDR_PULL_ALLOC(ndr, r->info1);
16658 uint32_t _ptr_info2;
16659 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
16661 NDR_PULL_ALLOC(ndr, r->info2);
16668 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
16671 if (ndr_flags & NDR_BUFFERS) {
16675 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
16676 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
16677 NDR_CHECK(ndr_pull_spoolss_AddFormInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
16678 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
16684 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
16685 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
16686 NDR_CHECK(ndr_pull_spoolss_AddFormInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
16687 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
16692 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
16695 return NDR_ERR_SUCCESS;
16698 _PUBLIC_ void ndr_print_spoolss_AddFormInfo(struct ndr_print *ndr, const char *name, const union spoolss_AddFormInfo *r)
16701 level = ndr_print_get_switch_value(ndr, r);
16702 ndr_print_union(ndr, name, level, "spoolss_AddFormInfo");
16705 ndr_print_ptr(ndr, "info1", r->info1);
16708 ndr_print_spoolss_AddFormInfo1(ndr, "info1", r->info1);
16714 ndr_print_ptr(ndr, "info2", r->info2);
16717 ndr_print_spoolss_AddFormInfo2(ndr, "info2", r->info2);
16723 ndr_print_bad_level(ndr, name, level);
16727 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo1 *r)
16729 if (ndr_flags & NDR_SCALARS) {
16730 NDR_CHECK(ndr_push_align(ndr, 5));
16732 uint32_t _flags_save_string = ndr->flags;
16733 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16734 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
16735 ndr->flags = _flags_save_string;
16737 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
16739 if (ndr_flags & NDR_BUFFERS) {
16741 uint32_t _flags_save_string = ndr->flags;
16742 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16743 if (r->port_name) {
16744 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->port_name));
16745 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
16747 ndr->flags = _flags_save_string;
16750 return NDR_ERR_SUCCESS;
16753 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo1 *r)
16755 uint32_t _ptr_port_name;
16756 TALLOC_CTX *_mem_save_port_name_0;
16757 if (ndr_flags & NDR_SCALARS) {
16758 NDR_CHECK(ndr_pull_align(ndr, 5));
16760 uint32_t _flags_save_string = ndr->flags;
16761 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16762 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
16763 if (_ptr_port_name) {
16764 NDR_PULL_ALLOC(ndr, r->port_name);
16765 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
16767 r->port_name = NULL;
16769 ndr->flags = _flags_save_string;
16771 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
16773 if (ndr_flags & NDR_BUFFERS) {
16775 uint32_t _flags_save_string = ndr->flags;
16776 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16777 if (r->port_name) {
16778 uint32_t _relative_save_offset;
16779 _relative_save_offset = ndr->offset;
16780 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
16781 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16782 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
16783 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
16784 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
16785 if (ndr->offset > ndr->relative_highest_offset) {
16786 ndr->relative_highest_offset = ndr->offset;
16788 ndr->offset = _relative_save_offset;
16790 ndr->flags = _flags_save_string;
16793 return NDR_ERR_SUCCESS;
16796 _PUBLIC_ void ndr_print_spoolss_PortInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo1 *r)
16798 ndr_print_struct(ndr, name, "spoolss_PortInfo1");
16800 ndr_print_ptr(ndr, "port_name", r->port_name);
16802 if (r->port_name) {
16803 ndr_print_string(ndr, "port_name", r->port_name);
16809 _PUBLIC_ size_t ndr_size_spoolss_PortInfo1(const struct spoolss_PortInfo1 *r, struct smb_iconv_convenience *ic, int flags)
16811 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfo1, ic);
16814 static enum ndr_err_code ndr_push_spoolss_PortType(struct ndr_push *ndr, int ndr_flags, uint32_t r)
16816 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
16817 return NDR_ERR_SUCCESS;
16820 static enum ndr_err_code ndr_pull_spoolss_PortType(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
16823 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
16825 return NDR_ERR_SUCCESS;
16828 _PUBLIC_ void ndr_print_spoolss_PortType(struct ndr_print *ndr, const char *name, uint32_t r)
16830 ndr_print_uint32(ndr, name, r);
16832 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_WRITE", SPOOLSS_PORT_TYPE_WRITE, r);
16833 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_READ", SPOOLSS_PORT_TYPE_READ, r);
16834 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_REDIRECTED", SPOOLSS_PORT_TYPE_REDIRECTED, r);
16835 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_NET_ATTACHED", SPOOLSS_PORT_TYPE_NET_ATTACHED, r);
16839 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo2 *r)
16841 if (ndr_flags & NDR_SCALARS) {
16842 NDR_CHECK(ndr_push_align(ndr, 5));
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->port_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->monitor_name));
16853 ndr->flags = _flags_save_string;
16856 uint32_t _flags_save_string = ndr->flags;
16857 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16858 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->description));
16859 ndr->flags = _flags_save_string;
16861 NDR_CHECK(ndr_push_spoolss_PortType(ndr, NDR_SCALARS, r->port_type));
16862 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
16863 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
16865 if (ndr_flags & NDR_BUFFERS) {
16867 uint32_t _flags_save_string = ndr->flags;
16868 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16869 if (r->port_name) {
16870 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->port_name));
16871 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
16873 ndr->flags = _flags_save_string;
16876 uint32_t _flags_save_string = ndr->flags;
16877 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16878 if (r->monitor_name) {
16879 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
16880 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
16882 ndr->flags = _flags_save_string;
16885 uint32_t _flags_save_string = ndr->flags;
16886 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16887 if (r->description) {
16888 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->description));
16889 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->description));
16891 ndr->flags = _flags_save_string;
16894 return NDR_ERR_SUCCESS;
16897 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo2 *r)
16899 uint32_t _ptr_port_name;
16900 TALLOC_CTX *_mem_save_port_name_0;
16901 uint32_t _ptr_monitor_name;
16902 TALLOC_CTX *_mem_save_monitor_name_0;
16903 uint32_t _ptr_description;
16904 TALLOC_CTX *_mem_save_description_0;
16905 if (ndr_flags & NDR_SCALARS) {
16906 NDR_CHECK(ndr_pull_align(ndr, 5));
16908 uint32_t _flags_save_string = ndr->flags;
16909 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16910 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
16911 if (_ptr_port_name) {
16912 NDR_PULL_ALLOC(ndr, r->port_name);
16913 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
16915 r->port_name = NULL;
16917 ndr->flags = _flags_save_string;
16920 uint32_t _flags_save_string = ndr->flags;
16921 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16922 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
16923 if (_ptr_monitor_name) {
16924 NDR_PULL_ALLOC(ndr, r->monitor_name);
16925 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
16927 r->monitor_name = NULL;
16929 ndr->flags = _flags_save_string;
16932 uint32_t _flags_save_string = ndr->flags;
16933 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16934 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
16935 if (_ptr_description) {
16936 NDR_PULL_ALLOC(ndr, r->description);
16937 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->description, _ptr_description));
16939 r->description = NULL;
16941 ndr->flags = _flags_save_string;
16943 NDR_CHECK(ndr_pull_spoolss_PortType(ndr, NDR_SCALARS, &r->port_type));
16944 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
16945 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
16947 if (ndr_flags & NDR_BUFFERS) {
16949 uint32_t _flags_save_string = ndr->flags;
16950 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16951 if (r->port_name) {
16952 uint32_t _relative_save_offset;
16953 _relative_save_offset = ndr->offset;
16954 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
16955 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16956 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
16957 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
16958 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
16959 if (ndr->offset > ndr->relative_highest_offset) {
16960 ndr->relative_highest_offset = ndr->offset;
16962 ndr->offset = _relative_save_offset;
16964 ndr->flags = _flags_save_string;
16967 uint32_t _flags_save_string = ndr->flags;
16968 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16969 if (r->monitor_name) {
16970 uint32_t _relative_save_offset;
16971 _relative_save_offset = ndr->offset;
16972 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
16973 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16974 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
16975 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
16976 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
16977 if (ndr->offset > ndr->relative_highest_offset) {
16978 ndr->relative_highest_offset = ndr->offset;
16980 ndr->offset = _relative_save_offset;
16982 ndr->flags = _flags_save_string;
16985 uint32_t _flags_save_string = ndr->flags;
16986 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16987 if (r->description) {
16988 uint32_t _relative_save_offset;
16989 _relative_save_offset = ndr->offset;
16990 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->description));
16991 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
16992 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
16993 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->description));
16994 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
16995 if (ndr->offset > ndr->relative_highest_offset) {
16996 ndr->relative_highest_offset = ndr->offset;
16998 ndr->offset = _relative_save_offset;
17000 ndr->flags = _flags_save_string;
17003 return NDR_ERR_SUCCESS;
17006 _PUBLIC_ void ndr_print_spoolss_PortInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo2 *r)
17008 ndr_print_struct(ndr, name, "spoolss_PortInfo2");
17010 ndr_print_ptr(ndr, "port_name", r->port_name);
17012 if (r->port_name) {
17013 ndr_print_string(ndr, "port_name", r->port_name);
17016 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
17018 if (r->monitor_name) {
17019 ndr_print_string(ndr, "monitor_name", r->monitor_name);
17022 ndr_print_ptr(ndr, "description", r->description);
17024 if (r->description) {
17025 ndr_print_string(ndr, "description", r->description);
17028 ndr_print_spoolss_PortType(ndr, "port_type", r->port_type);
17029 ndr_print_uint32(ndr, "reserved", r->reserved);
17033 _PUBLIC_ size_t ndr_size_spoolss_PortInfo2(const struct spoolss_PortInfo2 *r, struct smb_iconv_convenience *ic, int flags)
17035 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfo2, ic);
17038 static enum ndr_err_code ndr_push_spoolss_PortStatus(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortStatus r)
17040 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
17041 return NDR_ERR_SUCCESS;
17044 static enum ndr_err_code ndr_pull_spoolss_PortStatus(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortStatus *r)
17047 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
17049 return NDR_ERR_SUCCESS;
17052 _PUBLIC_ void ndr_print_spoolss_PortStatus(struct ndr_print *ndr, const char *name, enum spoolss_PortStatus r)
17054 const char *val = NULL;
17057 case PORT_STATUS_CLEAR: val = "PORT_STATUS_CLEAR"; break;
17058 case PORT_STATUS_OFFLINE: val = "PORT_STATUS_OFFLINE"; break;
17059 case PORT_STATUS_PAPER_JAM: val = "PORT_STATUS_PAPER_JAM"; break;
17060 case PORT_STATUS_PAPER_OUT: val = "PORT_STATUS_PAPER_OUT"; break;
17061 case PORT_STATUS_OUTPUT_BIN_FULL: val = "PORT_STATUS_OUTPUT_BIN_FULL"; break;
17062 case PORT_STATUS_PAPER_PROBLEM: val = "PORT_STATUS_PAPER_PROBLEM"; break;
17063 case PORT_STATUS_NO_TONER: val = "PORT_STATUS_NO_TONER"; break;
17064 case PORT_STATUS_DOOR_OPEN: val = "PORT_STATUS_DOOR_OPEN"; break;
17065 case PORT_STATUS_USER_INTERVENTION: val = "PORT_STATUS_USER_INTERVENTION"; break;
17066 case PORT_STATUS_OUT_OF_MEMORY: val = "PORT_STATUS_OUT_OF_MEMORY"; break;
17067 case PORT_STATUS_TONER_LOW: val = "PORT_STATUS_TONER_LOW"; break;
17068 case PORT_STATUS_WARMING_UP: val = "PORT_STATUS_WARMING_UP"; break;
17069 case PORT_STATUS_POWER_SAVE: val = "PORT_STATUS_POWER_SAVE"; break;
17071 ndr_print_enum(ndr, name, "ENUM", val, r);
17074 static enum ndr_err_code ndr_push_spoolss_PortSeverity(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortSeverity r)
17076 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
17077 return NDR_ERR_SUCCESS;
17080 static enum ndr_err_code ndr_pull_spoolss_PortSeverity(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortSeverity *r)
17083 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
17085 return NDR_ERR_SUCCESS;
17088 _PUBLIC_ void ndr_print_spoolss_PortSeverity(struct ndr_print *ndr, const char *name, enum spoolss_PortSeverity r)
17090 const char *val = NULL;
17093 case PORT_STATUS_TYPE_ERROR: val = "PORT_STATUS_TYPE_ERROR"; break;
17094 case PORT_STATUS_TYPE_WARNING: val = "PORT_STATUS_TYPE_WARNING"; break;
17095 case PORT_STATUS_TYPE_INFO: val = "PORT_STATUS_TYPE_INFO"; break;
17097 ndr_print_enum(ndr, name, "ENUM", val, r);
17100 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo3 *r)
17102 if (ndr_flags & NDR_SCALARS) {
17103 NDR_CHECK(ndr_push_align(ndr, 5));
17104 NDR_CHECK(ndr_push_spoolss_PortStatus(ndr, NDR_SCALARS, r->status));
17106 uint32_t _flags_save_string = ndr->flags;
17107 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17108 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->status_string));
17109 ndr->flags = _flags_save_string;
17111 NDR_CHECK(ndr_push_spoolss_PortSeverity(ndr, NDR_SCALARS, r->severity));
17112 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17114 if (ndr_flags & NDR_BUFFERS) {
17116 uint32_t _flags_save_string = ndr->flags;
17117 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17118 if (r->status_string) {
17119 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->status_string));
17120 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->status_string));
17122 ndr->flags = _flags_save_string;
17125 return NDR_ERR_SUCCESS;
17128 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo3 *r)
17130 uint32_t _ptr_status_string;
17131 TALLOC_CTX *_mem_save_status_string_0;
17132 if (ndr_flags & NDR_SCALARS) {
17133 NDR_CHECK(ndr_pull_align(ndr, 5));
17134 NDR_CHECK(ndr_pull_spoolss_PortStatus(ndr, NDR_SCALARS, &r->status));
17136 uint32_t _flags_save_string = ndr->flags;
17137 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17138 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_status_string));
17139 if (_ptr_status_string) {
17140 NDR_PULL_ALLOC(ndr, r->status_string);
17141 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->status_string, _ptr_status_string));
17143 r->status_string = NULL;
17145 ndr->flags = _flags_save_string;
17147 NDR_CHECK(ndr_pull_spoolss_PortSeverity(ndr, NDR_SCALARS, &r->severity));
17148 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17150 if (ndr_flags & NDR_BUFFERS) {
17152 uint32_t _flags_save_string = ndr->flags;
17153 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17154 if (r->status_string) {
17155 uint32_t _relative_save_offset;
17156 _relative_save_offset = ndr->offset;
17157 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->status_string));
17158 _mem_save_status_string_0 = NDR_PULL_GET_MEM_CTX(ndr);
17159 NDR_PULL_SET_MEM_CTX(ndr, r->status_string, 0);
17160 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->status_string));
17161 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_string_0, 0);
17162 if (ndr->offset > ndr->relative_highest_offset) {
17163 ndr->relative_highest_offset = ndr->offset;
17165 ndr->offset = _relative_save_offset;
17167 ndr->flags = _flags_save_string;
17170 return NDR_ERR_SUCCESS;
17173 _PUBLIC_ void ndr_print_spoolss_PortInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo3 *r)
17175 ndr_print_struct(ndr, name, "spoolss_PortInfo3");
17177 ndr_print_spoolss_PortStatus(ndr, "status", r->status);
17178 ndr_print_ptr(ndr, "status_string", r->status_string);
17180 if (r->status_string) {
17181 ndr_print_string(ndr, "status_string", r->status_string);
17184 ndr_print_spoolss_PortSeverity(ndr, "severity", r->severity);
17188 _PUBLIC_ size_t ndr_size_spoolss_PortInfo3(const struct spoolss_PortInfo3 *r, struct smb_iconv_convenience *ic, int flags)
17190 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfo3, ic);
17193 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfoFF(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfoFF *r)
17195 if (ndr_flags & NDR_SCALARS) {
17196 NDR_CHECK(ndr_push_align(ndr, 5));
17198 uint32_t _flags_save_string = ndr->flags;
17199 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17200 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
17201 ndr->flags = _flags_save_string;
17203 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->monitor_data));
17204 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17206 if (ndr_flags & NDR_BUFFERS) {
17208 uint32_t _flags_save_string = ndr->flags;
17209 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17210 if (r->port_name) {
17211 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->port_name));
17212 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
17214 ndr->flags = _flags_save_string;
17217 return NDR_ERR_SUCCESS;
17220 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfoFF(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfoFF *r)
17222 uint32_t _ptr_port_name;
17223 TALLOC_CTX *_mem_save_port_name_0;
17224 if (ndr_flags & NDR_SCALARS) {
17225 NDR_CHECK(ndr_pull_align(ndr, 5));
17227 uint32_t _flags_save_string = ndr->flags;
17228 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17229 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
17230 if (_ptr_port_name) {
17231 NDR_PULL_ALLOC(ndr, r->port_name);
17232 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
17234 r->port_name = NULL;
17236 ndr->flags = _flags_save_string;
17238 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->monitor_data));
17239 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17241 if (ndr_flags & NDR_BUFFERS) {
17243 uint32_t _flags_save_string = ndr->flags;
17244 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17245 if (r->port_name) {
17246 uint32_t _relative_save_offset;
17247 _relative_save_offset = ndr->offset;
17248 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
17249 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17250 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
17251 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
17252 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
17253 if (ndr->offset > ndr->relative_highest_offset) {
17254 ndr->relative_highest_offset = ndr->offset;
17256 ndr->offset = _relative_save_offset;
17258 ndr->flags = _flags_save_string;
17261 return NDR_ERR_SUCCESS;
17264 _PUBLIC_ void ndr_print_spoolss_PortInfoFF(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfoFF *r)
17266 ndr_print_struct(ndr, name, "spoolss_PortInfoFF");
17268 ndr_print_ptr(ndr, "port_name", r->port_name);
17270 if (r->port_name) {
17271 ndr_print_string(ndr, "port_name", r->port_name);
17274 ndr_print_DATA_BLOB(ndr, "monitor_data", r->monitor_data);
17278 _PUBLIC_ size_t ndr_size_spoolss_PortInfoFF(const struct spoolss_PortInfoFF *r, struct smb_iconv_convenience *ic, int flags)
17280 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfoFF, ic);
17283 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PortInfo *r)
17285 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
17286 if (ndr_flags & NDR_SCALARS) {
17287 int level = ndr_push_get_switch_value(ndr, r);
17288 NDR_CHECK(ndr_push_union_align(ndr, 5));
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_PortInfo1(ndr, NDR_SCALARS, &r->info1));
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_PortInfo2(ndr, NDR_SCALARS, &r->info2));
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_PortInfo3(ndr, NDR_SCALARS, &r->info3));
17309 NDR_CHECK(ndr_push_align(ndr, 5));
17310 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
17311 NDR_CHECK(ndr_push_spoolss_PortInfoFF(ndr, NDR_SCALARS, &r->infoFF));
17319 if (ndr_flags & NDR_BUFFERS) {
17320 int level = ndr_push_get_switch_value(ndr, r);
17321 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
17324 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr, NDR_BUFFERS, &r->info1));
17328 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr, NDR_BUFFERS, &r->info2));
17332 NDR_CHECK(ndr_push_spoolss_PortInfo3(ndr, NDR_BUFFERS, &r->info3));
17336 NDR_CHECK(ndr_push_spoolss_PortInfoFF(ndr, NDR_BUFFERS, &r->infoFF));
17344 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
17345 return NDR_ERR_SUCCESS;
17348 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PortInfo *r)
17350 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
17352 level = ndr_pull_get_switch_value(ndr, r);
17353 if (ndr_flags & NDR_SCALARS) {
17354 NDR_CHECK(ndr_pull_union_align(ndr, 5));
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_PortInfo1(ndr, NDR_SCALARS, &r->info1));
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_PortInfo2(ndr, NDR_SCALARS, &r->info2));
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_PortInfo3(ndr, NDR_SCALARS, &r->info3));
17375 NDR_CHECK(ndr_pull_align(ndr, 5));
17376 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
17377 NDR_CHECK(ndr_pull_spoolss_PortInfoFF(ndr, NDR_SCALARS, &r->infoFF));
17385 if (ndr_flags & NDR_BUFFERS) {
17386 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
17389 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr, NDR_BUFFERS, &r->info1));
17393 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr, NDR_BUFFERS, &r->info2));
17397 NDR_CHECK(ndr_pull_spoolss_PortInfo3(ndr, NDR_BUFFERS, &r->info3));
17401 NDR_CHECK(ndr_pull_spoolss_PortInfoFF(ndr, NDR_BUFFERS, &r->infoFF));
17409 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
17410 return NDR_ERR_SUCCESS;
17413 _PUBLIC_ void ndr_print_spoolss_PortInfo(struct ndr_print *ndr, const char *name, const union spoolss_PortInfo *r)
17416 level = ndr_print_get_switch_value(ndr, r);
17417 ndr_print_union(ndr, name, level, "spoolss_PortInfo");
17420 ndr_print_spoolss_PortInfo1(ndr, "info1", &r->info1);
17424 ndr_print_spoolss_PortInfo2(ndr, "info2", &r->info2);
17428 ndr_print_spoolss_PortInfo3(ndr, "info3", &r->info3);
17432 ndr_print_spoolss_PortInfoFF(ndr, "infoFF", &r->infoFF);
17441 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorInfo1 *r)
17443 if (ndr_flags & NDR_SCALARS) {
17444 NDR_CHECK(ndr_push_align(ndr, 5));
17446 uint32_t _flags_save_string = ndr->flags;
17447 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17448 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
17449 ndr->flags = _flags_save_string;
17451 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17453 if (ndr_flags & NDR_BUFFERS) {
17455 uint32_t _flags_save_string = ndr->flags;
17456 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17457 if (r->monitor_name) {
17458 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
17459 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
17461 ndr->flags = _flags_save_string;
17464 return NDR_ERR_SUCCESS;
17467 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorInfo1 *r)
17469 uint32_t _ptr_monitor_name;
17470 TALLOC_CTX *_mem_save_monitor_name_0;
17471 if (ndr_flags & NDR_SCALARS) {
17472 NDR_CHECK(ndr_pull_align(ndr, 5));
17474 uint32_t _flags_save_string = ndr->flags;
17475 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17476 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
17477 if (_ptr_monitor_name) {
17478 NDR_PULL_ALLOC(ndr, r->monitor_name);
17479 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
17481 r->monitor_name = NULL;
17483 ndr->flags = _flags_save_string;
17485 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17487 if (ndr_flags & NDR_BUFFERS) {
17489 uint32_t _flags_save_string = ndr->flags;
17490 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17491 if (r->monitor_name) {
17492 uint32_t _relative_save_offset;
17493 _relative_save_offset = ndr->offset;
17494 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
17495 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17496 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
17497 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
17498 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
17499 if (ndr->offset > ndr->relative_highest_offset) {
17500 ndr->relative_highest_offset = ndr->offset;
17502 ndr->offset = _relative_save_offset;
17504 ndr->flags = _flags_save_string;
17507 return NDR_ERR_SUCCESS;
17510 _PUBLIC_ void ndr_print_spoolss_MonitorInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorInfo1 *r)
17512 ndr_print_struct(ndr, name, "spoolss_MonitorInfo1");
17514 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
17516 if (r->monitor_name) {
17517 ndr_print_string(ndr, "monitor_name", r->monitor_name);
17523 _PUBLIC_ size_t ndr_size_spoolss_MonitorInfo1(const struct spoolss_MonitorInfo1 *r, struct smb_iconv_convenience *ic, int flags)
17525 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_MonitorInfo1, ic);
17528 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorInfo2 *r)
17530 if (ndr_flags & NDR_SCALARS) {
17531 NDR_CHECK(ndr_push_align(ndr, 5));
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->monitor_name));
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->environment));
17542 ndr->flags = _flags_save_string;
17545 uint32_t _flags_save_string = ndr->flags;
17546 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17547 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dll_name));
17548 ndr->flags = _flags_save_string;
17550 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17552 if (ndr_flags & NDR_BUFFERS) {
17554 uint32_t _flags_save_string = ndr->flags;
17555 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17556 if (r->monitor_name) {
17557 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
17558 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
17560 ndr->flags = _flags_save_string;
17563 uint32_t _flags_save_string = ndr->flags;
17564 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17565 if (r->environment) {
17566 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->environment));
17567 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->environment));
17569 ndr->flags = _flags_save_string;
17572 uint32_t _flags_save_string = ndr->flags;
17573 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17575 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dll_name));
17576 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dll_name));
17578 ndr->flags = _flags_save_string;
17581 return NDR_ERR_SUCCESS;
17584 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorInfo2 *r)
17586 uint32_t _ptr_monitor_name;
17587 TALLOC_CTX *_mem_save_monitor_name_0;
17588 uint32_t _ptr_environment;
17589 TALLOC_CTX *_mem_save_environment_0;
17590 uint32_t _ptr_dll_name;
17591 TALLOC_CTX *_mem_save_dll_name_0;
17592 if (ndr_flags & NDR_SCALARS) {
17593 NDR_CHECK(ndr_pull_align(ndr, 5));
17595 uint32_t _flags_save_string = ndr->flags;
17596 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17597 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
17598 if (_ptr_monitor_name) {
17599 NDR_PULL_ALLOC(ndr, r->monitor_name);
17600 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
17602 r->monitor_name = NULL;
17604 ndr->flags = _flags_save_string;
17607 uint32_t _flags_save_string = ndr->flags;
17608 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17609 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
17610 if (_ptr_environment) {
17611 NDR_PULL_ALLOC(ndr, r->environment);
17612 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->environment, _ptr_environment));
17614 r->environment = NULL;
17616 ndr->flags = _flags_save_string;
17619 uint32_t _flags_save_string = ndr->flags;
17620 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17621 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dll_name));
17622 if (_ptr_dll_name) {
17623 NDR_PULL_ALLOC(ndr, r->dll_name);
17624 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dll_name, _ptr_dll_name));
17626 r->dll_name = NULL;
17628 ndr->flags = _flags_save_string;
17630 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17632 if (ndr_flags & NDR_BUFFERS) {
17634 uint32_t _flags_save_string = ndr->flags;
17635 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17636 if (r->monitor_name) {
17637 uint32_t _relative_save_offset;
17638 _relative_save_offset = ndr->offset;
17639 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
17640 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17641 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
17642 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
17643 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
17644 if (ndr->offset > ndr->relative_highest_offset) {
17645 ndr->relative_highest_offset = ndr->offset;
17647 ndr->offset = _relative_save_offset;
17649 ndr->flags = _flags_save_string;
17652 uint32_t _flags_save_string = ndr->flags;
17653 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17654 if (r->environment) {
17655 uint32_t _relative_save_offset;
17656 _relative_save_offset = ndr->offset;
17657 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->environment));
17658 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
17659 NDR_PULL_SET_MEM_CTX(ndr, r->environment, 0);
17660 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->environment));
17661 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
17662 if (ndr->offset > ndr->relative_highest_offset) {
17663 ndr->relative_highest_offset = ndr->offset;
17665 ndr->offset = _relative_save_offset;
17667 ndr->flags = _flags_save_string;
17670 uint32_t _flags_save_string = ndr->flags;
17671 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17673 uint32_t _relative_save_offset;
17674 _relative_save_offset = ndr->offset;
17675 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dll_name));
17676 _mem_save_dll_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17677 NDR_PULL_SET_MEM_CTX(ndr, r->dll_name, 0);
17678 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->dll_name));
17679 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dll_name_0, 0);
17680 if (ndr->offset > ndr->relative_highest_offset) {
17681 ndr->relative_highest_offset = ndr->offset;
17683 ndr->offset = _relative_save_offset;
17685 ndr->flags = _flags_save_string;
17688 return NDR_ERR_SUCCESS;
17691 _PUBLIC_ void ndr_print_spoolss_MonitorInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorInfo2 *r)
17693 ndr_print_struct(ndr, name, "spoolss_MonitorInfo2");
17695 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
17697 if (r->monitor_name) {
17698 ndr_print_string(ndr, "monitor_name", r->monitor_name);
17701 ndr_print_ptr(ndr, "environment", r->environment);
17703 if (r->environment) {
17704 ndr_print_string(ndr, "environment", r->environment);
17707 ndr_print_ptr(ndr, "dll_name", r->dll_name);
17710 ndr_print_string(ndr, "dll_name", r->dll_name);
17716 _PUBLIC_ size_t ndr_size_spoolss_MonitorInfo2(const struct spoolss_MonitorInfo2 *r, struct smb_iconv_convenience *ic, int flags)
17718 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_MonitorInfo2, ic);
17721 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_MonitorInfo *r)
17723 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
17724 if (ndr_flags & NDR_SCALARS) {
17725 int level = ndr_push_get_switch_value(ndr, r);
17726 NDR_CHECK(ndr_push_union_align(ndr, 5));
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_MonitorInfo1(ndr, NDR_SCALARS, &r->info1));
17735 NDR_CHECK(ndr_push_align(ndr, 5));
17736 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
17737 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr, NDR_SCALARS, &r->info2));
17745 if (ndr_flags & NDR_BUFFERS) {
17746 int level = ndr_push_get_switch_value(ndr, r);
17747 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
17750 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr, NDR_BUFFERS, &r->info1));
17754 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr, NDR_BUFFERS, &r->info2));
17762 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
17763 return NDR_ERR_SUCCESS;
17766 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_MonitorInfo *r)
17768 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
17770 level = ndr_pull_get_switch_value(ndr, r);
17771 if (ndr_flags & NDR_SCALARS) {
17772 NDR_CHECK(ndr_pull_union_align(ndr, 5));
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_MonitorInfo1(ndr, NDR_SCALARS, &r->info1));
17781 NDR_CHECK(ndr_pull_align(ndr, 5));
17782 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
17783 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr, NDR_SCALARS, &r->info2));
17791 if (ndr_flags & NDR_BUFFERS) {
17792 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
17795 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr, NDR_BUFFERS, &r->info1));
17799 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr, NDR_BUFFERS, &r->info2));
17807 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
17808 return NDR_ERR_SUCCESS;
17811 _PUBLIC_ void ndr_print_spoolss_MonitorInfo(struct ndr_print *ndr, const char *name, const union spoolss_MonitorInfo *r)
17814 level = ndr_print_get_switch_value(ndr, r);
17815 ndr_print_union(ndr, name, level, "spoolss_MonitorInfo");
17818 ndr_print_spoolss_MonitorInfo1(ndr, "info1", &r->info1);
17822 ndr_print_spoolss_MonitorInfo2(ndr, "info2", &r->info2);
17831 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcDataTypesInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcDataTypesInfo1 *r)
17833 if (ndr_flags & NDR_SCALARS) {
17834 NDR_CHECK(ndr_push_align(ndr, 5));
17836 uint32_t _flags_save_string = ndr->flags;
17837 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17838 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->name_array));
17839 ndr->flags = _flags_save_string;
17841 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17843 if (ndr_flags & NDR_BUFFERS) {
17845 uint32_t _flags_save_string = ndr->flags;
17846 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17847 if (r->name_array) {
17848 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->name_array));
17849 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->name_array));
17851 ndr->flags = _flags_save_string;
17854 return NDR_ERR_SUCCESS;
17857 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcDataTypesInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcDataTypesInfo1 *r)
17859 uint32_t _ptr_name_array;
17860 TALLOC_CTX *_mem_save_name_array_0;
17861 if (ndr_flags & NDR_SCALARS) {
17862 NDR_CHECK(ndr_pull_align(ndr, 5));
17864 uint32_t _flags_save_string = ndr->flags;
17865 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17866 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name_array));
17867 if (_ptr_name_array) {
17868 NDR_PULL_ALLOC(ndr, r->name_array);
17869 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->name_array, _ptr_name_array));
17871 r->name_array = NULL;
17873 ndr->flags = _flags_save_string;
17875 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17877 if (ndr_flags & NDR_BUFFERS) {
17879 uint32_t _flags_save_string = ndr->flags;
17880 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17881 if (r->name_array) {
17882 uint32_t _relative_save_offset;
17883 _relative_save_offset = ndr->offset;
17884 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->name_array));
17885 _mem_save_name_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
17886 NDR_PULL_SET_MEM_CTX(ndr, r->name_array, 0);
17887 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->name_array));
17888 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_array_0, 0);
17889 if (ndr->offset > ndr->relative_highest_offset) {
17890 ndr->relative_highest_offset = ndr->offset;
17892 ndr->offset = _relative_save_offset;
17894 ndr->flags = _flags_save_string;
17897 return NDR_ERR_SUCCESS;
17900 _PUBLIC_ void ndr_print_spoolss_PrintProcDataTypesInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcDataTypesInfo1 *r)
17902 ndr_print_struct(ndr, name, "spoolss_PrintProcDataTypesInfo1");
17904 ndr_print_ptr(ndr, "name_array", r->name_array);
17906 if (r->name_array) {
17907 ndr_print_string(ndr, "name_array", r->name_array);
17913 _PUBLIC_ size_t ndr_size_spoolss_PrintProcDataTypesInfo1(const struct spoolss_PrintProcDataTypesInfo1 *r, struct smb_iconv_convenience *ic, int flags)
17915 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcDataTypesInfo1, ic);
17918 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcDataTypesInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcDataTypesInfo *r)
17920 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
17921 if (ndr_flags & NDR_SCALARS) {
17922 int level = ndr_push_get_switch_value(ndr, r);
17923 NDR_CHECK(ndr_push_union_align(ndr, 5));
17926 NDR_CHECK(ndr_push_align(ndr, 5));
17927 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
17928 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo1(ndr, NDR_SCALARS, &r->info1));
17936 if (ndr_flags & NDR_BUFFERS) {
17937 int level = ndr_push_get_switch_value(ndr, r);
17938 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
17941 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo1(ndr, NDR_BUFFERS, &r->info1));
17949 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
17950 return NDR_ERR_SUCCESS;
17953 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcDataTypesInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcDataTypesInfo *r)
17955 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
17957 level = ndr_pull_get_switch_value(ndr, r);
17958 if (ndr_flags & NDR_SCALARS) {
17959 NDR_CHECK(ndr_pull_union_align(ndr, 5));
17962 NDR_CHECK(ndr_pull_align(ndr, 5));
17963 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
17964 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo1(ndr, NDR_SCALARS, &r->info1));
17972 if (ndr_flags & NDR_BUFFERS) {
17973 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
17976 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo1(ndr, NDR_BUFFERS, &r->info1));
17984 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
17985 return NDR_ERR_SUCCESS;
17988 _PUBLIC_ void ndr_print_spoolss_PrintProcDataTypesInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcDataTypesInfo *r)
17991 level = ndr_print_get_switch_value(ndr, r);
17992 ndr_print_union(ndr, name, level, "spoolss_PrintProcDataTypesInfo");
17995 ndr_print_spoolss_PrintProcDataTypesInfo1(ndr, "info1", &r->info1);
18004 static enum ndr_err_code ndr_push_spoolss_PrinterChangeFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
18006 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
18007 return NDR_ERR_SUCCESS;
18010 static enum ndr_err_code ndr_pull_spoolss_PrinterChangeFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
18013 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
18015 return NDR_ERR_SUCCESS;
18018 _PUBLIC_ void ndr_print_spoolss_PrinterChangeFlags(struct ndr_print *ndr, const char *name, uint32_t r)
18020 ndr_print_uint32(ndr, name, r);
18022 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER", PRINTER_CHANGE_ADD_PRINTER, r);
18023 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER", PRINTER_CHANGE_SET_PRINTER, r);
18024 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER", PRINTER_CHANGE_DELETE_PRINTER, r);
18025 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_FAILED_CONNECTION_PRINTER", PRINTER_CHANGE_FAILED_CONNECTION_PRINTER, r);
18026 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_JOB", PRINTER_CHANGE_ADD_JOB, r);
18027 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_JOB", PRINTER_CHANGE_SET_JOB, r);
18028 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_JOB", PRINTER_CHANGE_DELETE_JOB, r);
18029 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_WRITE_JOB", PRINTER_CHANGE_WRITE_JOB, r);
18030 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_FORM", PRINTER_CHANGE_ADD_FORM, r);
18031 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_FORM", PRINTER_CHANGE_SET_FORM, r);
18032 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_FORM", PRINTER_CHANGE_DELETE_FORM, r);
18033 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PORT", PRINTER_CHANGE_ADD_PORT, r);
18034 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_CONFIGURE_PORT", PRINTER_CHANGE_CONFIGURE_PORT, r);
18035 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PORT", PRINTER_CHANGE_DELETE_PORT, r);
18036 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINT_PROCESSOR", PRINTER_CHANGE_ADD_PRINT_PROCESSOR, r);
18037 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINT_PROCESSOR", PRINTER_CHANGE_DELETE_PRINT_PROCESSOR, r);
18038 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SERVER", PRINTER_CHANGE_SERVER, r);
18039 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER_DRIVER", PRINTER_CHANGE_ADD_PRINTER_DRIVER, r);
18040 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER_DRIVER", PRINTER_CHANGE_SET_PRINTER_DRIVER, r);
18041 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER_DRIVER", PRINTER_CHANGE_DELETE_PRINTER_DRIVER, r);
18042 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_TIMEOUT", PRINTER_CHANGE_TIMEOUT, r);
18046 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobNotifyField(struct ndr_push *ndr, int ndr_flags, enum spoolss_JobNotifyField r)
18048 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
18049 return NDR_ERR_SUCCESS;
18052 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobNotifyField(struct ndr_pull *ndr, int ndr_flags, enum spoolss_JobNotifyField *r)
18055 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
18057 return NDR_ERR_SUCCESS;
18060 _PUBLIC_ void ndr_print_spoolss_JobNotifyField(struct ndr_print *ndr, const char *name, enum spoolss_JobNotifyField r)
18062 const char *val = NULL;
18065 case JOB_NOTIFY_FIELD_PRINTER_NAME: val = "JOB_NOTIFY_FIELD_PRINTER_NAME"; break;
18066 case JOB_NOTIFY_FIELD_MACHINE_NAME: val = "JOB_NOTIFY_FIELD_MACHINE_NAME"; break;
18067 case JOB_NOTIFY_FIELD_PORT_NAME: val = "JOB_NOTIFY_FIELD_PORT_NAME"; break;
18068 case JOB_NOTIFY_FIELD_USER_NAME: val = "JOB_NOTIFY_FIELD_USER_NAME"; break;
18069 case JOB_NOTIFY_FIELD_NOTIFY_NAME: val = "JOB_NOTIFY_FIELD_NOTIFY_NAME"; break;
18070 case JOB_NOTIFY_FIELD_DATATYPE: val = "JOB_NOTIFY_FIELD_DATATYPE"; break;
18071 case JOB_NOTIFY_FIELD_PRINT_PROCESSOR: val = "JOB_NOTIFY_FIELD_PRINT_PROCESSOR"; break;
18072 case JOB_NOTIFY_FIELD_PARAMETERS: val = "JOB_NOTIFY_FIELD_PARAMETERS"; break;
18073 case JOB_NOTIFY_FIELD_DRIVER_NAME: val = "JOB_NOTIFY_FIELD_DRIVER_NAME"; break;
18074 case JOB_NOTIFY_FIELD_DEVMODE: val = "JOB_NOTIFY_FIELD_DEVMODE"; break;
18075 case JOB_NOTIFY_FIELD_STATUS: val = "JOB_NOTIFY_FIELD_STATUS"; break;
18076 case JOB_NOTIFY_FIELD_STATUS_STRING: val = "JOB_NOTIFY_FIELD_STATUS_STRING"; break;
18077 case JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR: val = "JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR"; break;
18078 case JOB_NOTIFY_FIELD_DOCUMENT: val = "JOB_NOTIFY_FIELD_DOCUMENT"; break;
18079 case JOB_NOTIFY_FIELD_PRIORITY: val = "JOB_NOTIFY_FIELD_PRIORITY"; break;
18080 case JOB_NOTIFY_FIELD_POSITION: val = "JOB_NOTIFY_FIELD_POSITION"; break;
18081 case JOB_NOTIFY_FIELD_SUBMITTED: val = "JOB_NOTIFY_FIELD_SUBMITTED"; break;
18082 case JOB_NOTIFY_FIELD_START_TIME: val = "JOB_NOTIFY_FIELD_START_TIME"; break;
18083 case JOB_NOTIFY_FIELD_UNTIL_TIME: val = "JOB_NOTIFY_FIELD_UNTIL_TIME"; break;
18084 case JOB_NOTIFY_FIELD_TIME: val = "JOB_NOTIFY_FIELD_TIME"; break;
18085 case JOB_NOTIFY_FIELD_TOTAL_PAGES: val = "JOB_NOTIFY_FIELD_TOTAL_PAGES"; break;
18086 case JOB_NOTIFY_FIELD_PAGES_PRINTED: val = "JOB_NOTIFY_FIELD_PAGES_PRINTED"; break;
18087 case JOB_NOTIFY_FIELD_TOTAL_BYTES: val = "JOB_NOTIFY_FIELD_TOTAL_BYTES"; break;
18088 case JOB_NOTIFY_FIELD_BYTES_PRINTED: val = "JOB_NOTIFY_FIELD_BYTES_PRINTED"; break;
18090 ndr_print_enum(ndr, name, "ENUM", val, r);
18093 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintNotifyField(struct ndr_push *ndr, int ndr_flags, enum spoolss_PrintNotifyField r)
18095 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
18096 return NDR_ERR_SUCCESS;
18099 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintNotifyField(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PrintNotifyField *r)
18102 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
18104 return NDR_ERR_SUCCESS;
18107 _PUBLIC_ void ndr_print_spoolss_PrintNotifyField(struct ndr_print *ndr, const char *name, enum spoolss_PrintNotifyField r)
18109 const char *val = NULL;
18112 case PRINTER_NOTIFY_FIELD_SERVER_NAME: val = "PRINTER_NOTIFY_FIELD_SERVER_NAME"; break;
18113 case PRINTER_NOTIFY_FIELD_PRINTER_NAME: val = "PRINTER_NOTIFY_FIELD_PRINTER_NAME"; break;
18114 case PRINTER_NOTIFY_FIELD_SHARE_NAME: val = "PRINTER_NOTIFY_FIELD_SHARE_NAME"; break;
18115 case PRINTER_NOTIFY_FIELD_PORT_NAME: val = "PRINTER_NOTIFY_FIELD_PORT_NAME"; break;
18116 case PRINTER_NOTIFY_FIELD_DRIVER_NAME: val = "PRINTER_NOTIFY_FIELD_DRIVER_NAME"; break;
18117 case PRINTER_NOTIFY_FIELD_COMMENT: val = "PRINTER_NOTIFY_FIELD_COMMENT"; break;
18118 case PRINTER_NOTIFY_FIELD_LOCATION: val = "PRINTER_NOTIFY_FIELD_LOCATION"; break;
18119 case PRINTER_NOTIFY_FIELD_DEVMODE: val = "PRINTER_NOTIFY_FIELD_DEVMODE"; break;
18120 case PRINTER_NOTIFY_FIELD_SEPFILE: val = "PRINTER_NOTIFY_FIELD_SEPFILE"; break;
18121 case PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR: val = "PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR"; break;
18122 case PRINTER_NOTIFY_FIELD_PARAMETERS: val = "PRINTER_NOTIFY_FIELD_PARAMETERS"; break;
18123 case PRINTER_NOTIFY_FIELD_DATATYPE: val = "PRINTER_NOTIFY_FIELD_DATATYPE"; break;
18124 case PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR: val = "PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR"; break;
18125 case PRINTER_NOTIFY_FIELD_ATTRIBUTES: val = "PRINTER_NOTIFY_FIELD_ATTRIBUTES"; break;
18126 case PRINTER_NOTIFY_FIELD_PRIORITY: val = "PRINTER_NOTIFY_FIELD_PRIORITY"; break;
18127 case PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY: val = "PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY"; break;
18128 case PRINTER_NOTIFY_FIELD_START_TIME: val = "PRINTER_NOTIFY_FIELD_START_TIME"; break;
18129 case PRINTER_NOTIFY_FIELD_UNTIL_TIME: val = "PRINTER_NOTIFY_FIELD_UNTIL_TIME"; break;
18130 case PRINTER_NOTIFY_FIELD_STATUS: val = "PRINTER_NOTIFY_FIELD_STATUS"; break;
18131 case PRINTER_NOTIFY_FIELD_STATUS_STRING: val = "PRINTER_NOTIFY_FIELD_STATUS_STRING"; break;
18132 case PRINTER_NOTIFY_FIELD_CJOBS: val = "PRINTER_NOTIFY_FIELD_CJOBS"; break;
18133 case PRINTER_NOTIFY_FIELD_AVERAGE_PPM: val = "PRINTER_NOTIFY_FIELD_AVERAGE_PPM"; break;
18134 case PRINTER_NOTIFY_FIELD_TOTAL_PAGES: val = "PRINTER_NOTIFY_FIELD_TOTAL_PAGES"; break;
18135 case PRINTER_NOTIFY_FIELD_PAGES_PRINTED: val = "PRINTER_NOTIFY_FIELD_PAGES_PRINTED"; break;
18136 case PRINTER_NOTIFY_FIELD_TOTAL_BYTES: val = "PRINTER_NOTIFY_FIELD_TOTAL_BYTES"; break;
18137 case PRINTER_NOTIFY_FIELD_BYTES_PRINTED: val = "PRINTER_NOTIFY_FIELD_BYTES_PRINTED"; break;
18138 case PRINTER_NOTIFY_FIELD_OBJECT_GUID: val = "PRINTER_NOTIFY_FIELD_OBJECT_GUID"; break;
18139 case PRINTER_NOTIFY_FIELD_FRIENDLY_NAME: val = "PRINTER_NOTIFY_FIELD_FRIENDLY_NAME"; break;
18141 ndr_print_enum(ndr, name, "ENUM", val, r);
18144 static enum ndr_err_code ndr_push_spoolss_NotifyType(struct ndr_push *ndr, int ndr_flags, enum spoolss_NotifyType r)
18146 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
18147 return NDR_ERR_SUCCESS;
18150 static enum ndr_err_code ndr_pull_spoolss_NotifyType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_NotifyType *r)
18153 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
18155 return NDR_ERR_SUCCESS;
18158 _PUBLIC_ void ndr_print_spoolss_NotifyType(struct ndr_print *ndr, const char *name, enum spoolss_NotifyType r)
18160 const char *val = NULL;
18163 case PRINTER_NOTIFY_TYPE: val = "PRINTER_NOTIFY_TYPE"; break;
18164 case JOB_NOTIFY_TYPE: val = "JOB_NOTIFY_TYPE"; break;
18166 ndr_print_enum(ndr, name, "ENUM", val, r);
18169 static enum ndr_err_code ndr_push_spoolss_Field(struct ndr_push *ndr, int ndr_flags, const union spoolss_Field *r)
18171 if (ndr_flags & NDR_SCALARS) {
18172 int level = ndr_push_get_switch_value(ndr, r);
18173 NDR_CHECK(ndr_push_union_align(ndr, 2));
18175 case PRINTER_NOTIFY_TYPE: {
18176 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->field));
18179 case JOB_NOTIFY_TYPE: {
18180 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->field));
18184 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->field));
18189 if (ndr_flags & NDR_BUFFERS) {
18190 int level = ndr_push_get_switch_value(ndr, r);
18192 case PRINTER_NOTIFY_TYPE:
18195 case JOB_NOTIFY_TYPE:
18203 return NDR_ERR_SUCCESS;
18206 static enum ndr_err_code ndr_pull_spoolss_Field(struct ndr_pull *ndr, int ndr_flags, union spoolss_Field *r)
18209 level = ndr_pull_get_switch_value(ndr, r);
18210 if (ndr_flags & NDR_SCALARS) {
18211 NDR_CHECK(ndr_pull_union_align(ndr, 2));
18213 case PRINTER_NOTIFY_TYPE: {
18214 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->field));
18217 case JOB_NOTIFY_TYPE: {
18218 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->field));
18222 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->field));
18227 if (ndr_flags & NDR_BUFFERS) {
18229 case PRINTER_NOTIFY_TYPE:
18232 case JOB_NOTIFY_TYPE:
18240 return NDR_ERR_SUCCESS;
18243 static enum ndr_err_code ndr_push_spoolss_NotifyOptionType(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyOptionType *r)
18245 uint32_t cntr_fields_1;
18246 if (ndr_flags & NDR_SCALARS) {
18247 NDR_CHECK(ndr_push_align(ndr, 5));
18248 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr, NDR_SCALARS, r->type));
18249 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->u1));
18250 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u2));
18251 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u3));
18252 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
18253 NDR_CHECK(ndr_push_unique_ptr(ndr, r->fields));
18254 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18256 if (ndr_flags & NDR_BUFFERS) {
18258 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
18259 for (cntr_fields_1 = 0; cntr_fields_1 < r->count; cntr_fields_1++) {
18260 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->fields[cntr_fields_1], r->type));
18261 NDR_CHECK(ndr_push_spoolss_Field(ndr, NDR_SCALARS, &r->fields[cntr_fields_1]));
18265 return NDR_ERR_SUCCESS;
18268 static enum ndr_err_code ndr_pull_spoolss_NotifyOptionType(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyOptionType *r)
18270 uint32_t _ptr_fields;
18271 uint32_t cntr_fields_1;
18272 TALLOC_CTX *_mem_save_fields_0;
18273 TALLOC_CTX *_mem_save_fields_1;
18274 if (ndr_flags & NDR_SCALARS) {
18275 NDR_CHECK(ndr_pull_align(ndr, 5));
18276 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr, NDR_SCALARS, &r->type));
18277 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->u1));
18278 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u2));
18279 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u3));
18280 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
18281 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_fields));
18283 NDR_PULL_ALLOC(ndr, r->fields);
18287 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
18289 if (ndr_flags & NDR_BUFFERS) {
18291 _mem_save_fields_0 = NDR_PULL_GET_MEM_CTX(ndr);
18292 NDR_PULL_SET_MEM_CTX(ndr, r->fields, 0);
18293 NDR_CHECK(ndr_pull_array_size(ndr, &r->fields));
18294 NDR_PULL_ALLOC_N(ndr, r->fields, ndr_get_array_size(ndr, &r->fields));
18295 _mem_save_fields_1 = NDR_PULL_GET_MEM_CTX(ndr);
18296 NDR_PULL_SET_MEM_CTX(ndr, r->fields, 0);
18297 for (cntr_fields_1 = 0; cntr_fields_1 < r->count; cntr_fields_1++) {
18298 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->fields[cntr_fields_1], r->type));
18299 NDR_CHECK(ndr_pull_spoolss_Field(ndr, NDR_SCALARS, &r->fields[cntr_fields_1]));
18301 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fields_1, 0);
18302 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fields_0, 0);
18305 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->fields, r->count));
18308 return NDR_ERR_SUCCESS;
18311 _PUBLIC_ void ndr_print_spoolss_NotifyOptionType(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyOptionType *r)
18313 uint32_t cntr_fields_1;
18314 ndr_print_struct(ndr, name, "spoolss_NotifyOptionType");
18316 ndr_print_spoolss_NotifyType(ndr, "type", r->type);
18317 ndr_print_uint16(ndr, "u1", r->u1);
18318 ndr_print_uint32(ndr, "u2", r->u2);
18319 ndr_print_uint32(ndr, "u3", r->u3);
18320 ndr_print_uint32(ndr, "count", r->count);
18321 ndr_print_ptr(ndr, "fields", r->fields);
18324 ndr->print(ndr, "%s: ARRAY(%d)", "fields", (int)r->count);
18326 for (cntr_fields_1=0;cntr_fields_1<r->count;cntr_fields_1++) {
18328 if (asprintf(&idx_1, "[%d]", cntr_fields_1) != -1) {
18329 ndr_print_set_switch_value(ndr, &r->fields[cntr_fields_1], r->type);
18330 ndr_print_spoolss_Field(ndr, "fields", &r->fields[cntr_fields_1]);
18340 static enum ndr_err_code ndr_push_spoolssNotifyOptionFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
18342 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
18343 return NDR_ERR_SUCCESS;
18346 static enum ndr_err_code ndr_pull_spoolssNotifyOptionFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
18349 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
18351 return NDR_ERR_SUCCESS;
18354 _PUBLIC_ void ndr_print_spoolssNotifyOptionFlags(struct ndr_print *ndr, const char *name, uint32_t r)
18356 ndr_print_uint32(ndr, name, r);
18358 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_OPTIONS_REFRESH", PRINTER_NOTIFY_OPTIONS_REFRESH, r);
18362 static enum ndr_err_code ndr_push_spoolss_NotifyOption(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyOption *r)
18364 uint32_t cntr_types_1;
18365 if (ndr_flags & NDR_SCALARS) {
18366 NDR_CHECK(ndr_push_align(ndr, 5));
18367 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
18368 NDR_CHECK(ndr_push_spoolssNotifyOptionFlags(ndr, NDR_SCALARS, r->flags));
18369 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
18370 NDR_CHECK(ndr_push_unique_ptr(ndr, r->types));
18371 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18373 if (ndr_flags & NDR_BUFFERS) {
18375 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
18376 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
18377 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr, NDR_SCALARS, &r->types[cntr_types_1]));
18379 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
18380 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr, NDR_BUFFERS, &r->types[cntr_types_1]));
18384 return NDR_ERR_SUCCESS;
18387 static enum ndr_err_code ndr_pull_spoolss_NotifyOption(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyOption *r)
18389 uint32_t _ptr_types;
18390 uint32_t cntr_types_1;
18391 TALLOC_CTX *_mem_save_types_0;
18392 TALLOC_CTX *_mem_save_types_1;
18393 if (ndr_flags & NDR_SCALARS) {
18394 NDR_CHECK(ndr_pull_align(ndr, 5));
18395 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
18396 NDR_CHECK(ndr_pull_spoolssNotifyOptionFlags(ndr, NDR_SCALARS, &r->flags));
18397 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
18398 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_types));
18400 NDR_PULL_ALLOC(ndr, r->types);
18404 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
18406 if (ndr_flags & NDR_BUFFERS) {
18408 _mem_save_types_0 = NDR_PULL_GET_MEM_CTX(ndr);
18409 NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
18410 NDR_CHECK(ndr_pull_array_size(ndr, &r->types));
18411 NDR_PULL_ALLOC_N(ndr, r->types, ndr_get_array_size(ndr, &r->types));
18412 _mem_save_types_1 = NDR_PULL_GET_MEM_CTX(ndr);
18413 NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
18414 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
18415 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr, NDR_SCALARS, &r->types[cntr_types_1]));
18417 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
18418 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr, NDR_BUFFERS, &r->types[cntr_types_1]));
18420 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_1, 0);
18421 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_0, 0);
18424 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->types, r->count));
18427 return NDR_ERR_SUCCESS;
18430 _PUBLIC_ void ndr_print_spoolss_NotifyOption(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyOption *r)
18432 uint32_t cntr_types_1;
18433 ndr_print_struct(ndr, name, "spoolss_NotifyOption");
18435 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
18436 ndr_print_spoolssNotifyOptionFlags(ndr, "flags", r->flags);
18437 ndr_print_uint32(ndr, "count", r->count);
18438 ndr_print_ptr(ndr, "types", r->types);
18441 ndr->print(ndr, "%s: ARRAY(%d)", "types", (int)r->count);
18443 for (cntr_types_1=0;cntr_types_1<r->count;cntr_types_1++) {
18445 if (asprintf(&idx_1, "[%d]", cntr_types_1) != -1) {
18446 ndr_print_spoolss_NotifyOptionType(ndr, "types", &r->types[cntr_types_1]);
18456 static enum ndr_err_code ndr_push_spoolss_NotifyString(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyString *r)
18458 if (ndr_flags & NDR_SCALARS) {
18459 NDR_CHECK(ndr_push_align(ndr, 5));
18460 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
18461 NDR_CHECK(ndr_push_unique_ptr(ndr, r->string));
18462 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18464 if (ndr_flags & NDR_BUFFERS) {
18466 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->size / 2));
18467 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->string, r->size / 2, sizeof(uint16_t), CH_UTF16));
18470 return NDR_ERR_SUCCESS;
18473 static enum ndr_err_code ndr_pull_spoolss_NotifyString(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyString *r)
18475 uint32_t _ptr_string;
18476 TALLOC_CTX *_mem_save_string_0;
18477 if (ndr_flags & NDR_SCALARS) {
18478 NDR_CHECK(ndr_pull_align(ndr, 5));
18479 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
18480 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_string));
18482 NDR_PULL_ALLOC(ndr, r->string);
18486 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
18488 if (ndr_flags & NDR_BUFFERS) {
18490 _mem_save_string_0 = NDR_PULL_GET_MEM_CTX(ndr);
18491 NDR_PULL_SET_MEM_CTX(ndr, r->string, 0);
18492 NDR_CHECK(ndr_pull_array_size(ndr, &r->string));
18493 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->string, ndr_get_array_size(ndr, &r->string), sizeof(uint16_t), CH_UTF16));
18494 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_string_0, 0);
18497 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->string, r->size / 2));
18500 return NDR_ERR_SUCCESS;
18503 _PUBLIC_ void ndr_print_spoolss_NotifyString(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyString *r)
18505 ndr_print_struct(ndr, name, "spoolss_NotifyString");
18507 ndr_print_uint32(ndr, "size", r->size);
18508 ndr_print_ptr(ndr, "string", r->string);
18511 ndr_print_string(ndr, "string", r->string);
18517 static enum ndr_err_code ndr_push_spoolss_NotifyTable(struct ndr_push *ndr, int ndr_flags, enum spoolss_NotifyTable r)
18519 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
18520 return NDR_ERR_SUCCESS;
18523 static enum ndr_err_code ndr_pull_spoolss_NotifyTable(struct ndr_pull *ndr, int ndr_flags, enum spoolss_NotifyTable *r)
18526 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
18528 return NDR_ERR_SUCCESS;
18531 _PUBLIC_ void ndr_print_spoolss_NotifyTable(struct ndr_print *ndr, const char *name, enum spoolss_NotifyTable r)
18533 const char *val = NULL;
18536 case NOTIFY_TABLE_DWORD: val = "NOTIFY_TABLE_DWORD"; break;
18537 case NOTIFY_TABLE_STRING: val = "NOTIFY_TABLE_STRING"; break;
18538 case NOTIFY_TABLE_DEVMODE: val = "NOTIFY_TABLE_DEVMODE"; break;
18539 case NOTIFY_TABLE_TIME: val = "NOTIFY_TABLE_TIME"; break;
18540 case NOTIFY_TABLE_SECURITYDESCRIPTOR: val = "NOTIFY_TABLE_SECURITYDESCRIPTOR"; break;
18542 ndr_print_enum(ndr, name, "ENUM", val, r);
18545 static enum ndr_err_code ndr_push_spoolss_NotifyData(struct ndr_push *ndr, int ndr_flags, const union spoolss_NotifyData *r)
18547 if (ndr_flags & NDR_SCALARS) {
18548 int level = ndr_push_get_switch_value(ndr, r);
18549 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
18550 NDR_CHECK(ndr_push_union_align(ndr, 5));
18553 uint32_t cntr_integer_0;
18554 for (cntr_integer_0 = 0; cntr_integer_0 < 2; cntr_integer_0++) {
18555 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->integer[cntr_integer_0]));
18560 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr, NDR_SCALARS, &r->string));
18564 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS, &r->devmode));
18568 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr, NDR_SCALARS, &r->time));
18572 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sd));
18576 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18579 if (ndr_flags & NDR_BUFFERS) {
18580 int level = ndr_push_get_switch_value(ndr, r);
18586 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr, NDR_BUFFERS, &r->string));
18590 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_BUFFERS, &r->devmode));
18594 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr, NDR_BUFFERS, &r->time));
18598 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd));
18602 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18605 return NDR_ERR_SUCCESS;
18608 static enum ndr_err_code ndr_pull_spoolss_NotifyData(struct ndr_pull *ndr, int ndr_flags, union spoolss_NotifyData *r)
18612 level = ndr_pull_get_switch_value(ndr, r);
18613 if (ndr_flags & NDR_SCALARS) {
18614 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
18615 if (_level != level) {
18616 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
18618 NDR_CHECK(ndr_pull_union_align(ndr, 5));
18621 uint32_t cntr_integer_0;
18622 for (cntr_integer_0 = 0; cntr_integer_0 < 2; cntr_integer_0++) {
18623 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->integer[cntr_integer_0]));
18628 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr, NDR_SCALARS, &r->string));
18632 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS, &r->devmode));
18636 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr, NDR_SCALARS, &r->time));
18640 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sd));
18644 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18647 if (ndr_flags & NDR_BUFFERS) {
18653 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr, NDR_BUFFERS, &r->string));
18657 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_BUFFERS, &r->devmode));
18661 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr, NDR_BUFFERS, &r->time));
18665 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd));
18669 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18672 return NDR_ERR_SUCCESS;
18675 _PUBLIC_ void ndr_print_spoolss_NotifyData(struct ndr_print *ndr, const char *name, const union spoolss_NotifyData *r)
18678 uint32_t cntr_integer_0;
18679 level = ndr_print_get_switch_value(ndr, r);
18680 ndr_print_union(ndr, name, level, "spoolss_NotifyData");
18683 ndr->print(ndr, "%s: ARRAY(%d)", "integer", (int)2);
18685 for (cntr_integer_0=0;cntr_integer_0<2;cntr_integer_0++) {
18687 if (asprintf(&idx_0, "[%d]", cntr_integer_0) != -1) {
18688 ndr_print_uint32(ndr, "integer", r->integer[cntr_integer_0]);
18696 ndr_print_spoolss_NotifyString(ndr, "string", &r->string);
18700 ndr_print_spoolss_DevmodeContainer(ndr, "devmode", &r->devmode);
18704 ndr_print_spoolss_TimeCtr(ndr, "time", &r->time);
18708 ndr_print_sec_desc_buf(ndr, "sd", &r->sd);
18712 ndr_print_bad_level(ndr, name, level);
18716 static enum ndr_err_code ndr_push_spoolss_Notify(struct ndr_push *ndr, int ndr_flags, const struct spoolss_Notify *r)
18718 if (ndr_flags & NDR_SCALARS) {
18719 NDR_CHECK(ndr_push_align(ndr, 5));
18720 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr, NDR_SCALARS, r->type));
18721 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->field, r->type));
18722 NDR_CHECK(ndr_push_spoolss_Field(ndr, NDR_SCALARS, &r->field));
18723 NDR_CHECK(ndr_push_spoolss_NotifyTable(ndr, NDR_SCALARS, r->variable_type));
18724 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
18725 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->data, r->variable_type));
18726 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr, NDR_SCALARS, &r->data));
18727 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18729 if (ndr_flags & NDR_BUFFERS) {
18730 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr, NDR_BUFFERS, &r->data));
18732 return NDR_ERR_SUCCESS;
18735 static enum ndr_err_code ndr_pull_spoolss_Notify(struct ndr_pull *ndr, int ndr_flags, struct spoolss_Notify *r)
18737 if (ndr_flags & NDR_SCALARS) {
18738 NDR_CHECK(ndr_pull_align(ndr, 5));
18739 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr, NDR_SCALARS, &r->type));
18740 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->field, r->type));
18741 NDR_CHECK(ndr_pull_spoolss_Field(ndr, NDR_SCALARS, &r->field));
18742 NDR_CHECK(ndr_pull_spoolss_NotifyTable(ndr, NDR_SCALARS, &r->variable_type));
18743 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
18744 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->data, r->variable_type));
18745 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr, NDR_SCALARS, &r->data));
18746 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
18748 if (ndr_flags & NDR_BUFFERS) {
18749 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr, NDR_BUFFERS, &r->data));
18751 return NDR_ERR_SUCCESS;
18754 _PUBLIC_ void ndr_print_spoolss_Notify(struct ndr_print *ndr, const char *name, const struct spoolss_Notify *r)
18756 ndr_print_struct(ndr, name, "spoolss_Notify");
18758 ndr_print_spoolss_NotifyType(ndr, "type", r->type);
18759 ndr_print_set_switch_value(ndr, &r->field, r->type);
18760 ndr_print_spoolss_Field(ndr, "field", &r->field);
18761 ndr_print_spoolss_NotifyTable(ndr, "variable_type", r->variable_type);
18762 ndr_print_uint32(ndr, "job_id", r->job_id);
18763 ndr_print_set_switch_value(ndr, &r->data, r->variable_type);
18764 ndr_print_spoolss_NotifyData(ndr, "data", &r->data);
18768 static enum ndr_err_code ndr_push_spoolss_NotifyInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyInfo *r)
18770 uint32_t cntr_notifies_0;
18771 if (ndr_flags & NDR_SCALARS) {
18772 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
18773 NDR_CHECK(ndr_push_align(ndr, 5));
18774 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
18775 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
18776 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
18777 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
18778 NDR_CHECK(ndr_push_spoolss_Notify(ndr, NDR_SCALARS, &r->notifies[cntr_notifies_0]));
18780 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18782 if (ndr_flags & NDR_BUFFERS) {
18783 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
18784 NDR_CHECK(ndr_push_spoolss_Notify(ndr, NDR_BUFFERS, &r->notifies[cntr_notifies_0]));
18787 return NDR_ERR_SUCCESS;
18790 static enum ndr_err_code ndr_pull_spoolss_NotifyInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyInfo *r)
18792 uint32_t cntr_notifies_0;
18793 TALLOC_CTX *_mem_save_notifies_0;
18794 if (ndr_flags & NDR_SCALARS) {
18795 NDR_CHECK(ndr_pull_array_size(ndr, &r->notifies));
18796 NDR_CHECK(ndr_pull_align(ndr, 5));
18797 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
18798 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
18799 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
18800 NDR_PULL_ALLOC_N(ndr, r->notifies, ndr_get_array_size(ndr, &r->notifies));
18801 _mem_save_notifies_0 = NDR_PULL_GET_MEM_CTX(ndr);
18802 NDR_PULL_SET_MEM_CTX(ndr, r->notifies, 0);
18803 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
18804 NDR_CHECK(ndr_pull_spoolss_Notify(ndr, NDR_SCALARS, &r->notifies[cntr_notifies_0]));
18806 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notifies_0, 0);
18808 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->notifies, r->count));
18810 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
18812 if (ndr_flags & NDR_BUFFERS) {
18813 _mem_save_notifies_0 = NDR_PULL_GET_MEM_CTX(ndr);
18814 NDR_PULL_SET_MEM_CTX(ndr, r->notifies, 0);
18815 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
18816 NDR_CHECK(ndr_pull_spoolss_Notify(ndr, NDR_BUFFERS, &r->notifies[cntr_notifies_0]));
18818 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notifies_0, 0);
18820 return NDR_ERR_SUCCESS;
18823 _PUBLIC_ void ndr_print_spoolss_NotifyInfo(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyInfo *r)
18825 uint32_t cntr_notifies_0;
18826 ndr_print_struct(ndr, name, "spoolss_NotifyInfo");
18828 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
18829 ndr_print_uint32(ndr, "flags", r->flags);
18830 ndr_print_uint32(ndr, "count", r->count);
18831 ndr->print(ndr, "%s: ARRAY(%d)", "notifies", (int)r->count);
18833 for (cntr_notifies_0=0;cntr_notifies_0<r->count;cntr_notifies_0++) {
18835 if (asprintf(&idx_0, "[%d]", cntr_notifies_0) != -1) {
18836 ndr_print_spoolss_Notify(ndr, "notifies", &r->notifies[cntr_notifies_0]);
18844 static enum ndr_err_code ndr_push_spoolss_ReplyPrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_ReplyPrinterInfo *r)
18846 if (ndr_flags & NDR_SCALARS) {
18847 int level = ndr_push_get_switch_value(ndr, r);
18848 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
18849 NDR_CHECK(ndr_push_union_align(ndr, 5));
18852 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info0));
18856 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18859 if (ndr_flags & NDR_BUFFERS) {
18860 int level = ndr_push_get_switch_value(ndr, r);
18864 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
18869 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18872 return NDR_ERR_SUCCESS;
18875 static enum ndr_err_code ndr_pull_spoolss_ReplyPrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_ReplyPrinterInfo *r)
18879 TALLOC_CTX *_mem_save_info0_0;
18880 level = ndr_pull_get_switch_value(ndr, r);
18881 if (ndr_flags & NDR_SCALARS) {
18882 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
18883 if (_level != level) {
18884 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
18886 NDR_CHECK(ndr_pull_union_align(ndr, 5));
18889 uint32_t _ptr_info0;
18890 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0));
18892 NDR_PULL_ALLOC(ndr, r->info0);
18899 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18902 if (ndr_flags & NDR_BUFFERS) {
18906 _mem_save_info0_0 = NDR_PULL_GET_MEM_CTX(ndr);
18907 NDR_PULL_SET_MEM_CTX(ndr, r->info0, 0);
18908 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
18909 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info0_0, 0);
18914 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18917 return NDR_ERR_SUCCESS;
18920 _PUBLIC_ void ndr_print_spoolss_ReplyPrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_ReplyPrinterInfo *r)
18923 level = ndr_print_get_switch_value(ndr, r);
18924 ndr_print_union(ndr, name, level, "spoolss_ReplyPrinterInfo");
18927 ndr_print_ptr(ndr, "info0", r->info0);
18930 ndr_print_spoolss_NotifyInfo(ndr, "info0", r->info0);
18936 ndr_print_bad_level(ndr, name, level);
18940 static enum ndr_err_code ndr_push_spoolss_PrinterNotifyFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
18942 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
18943 return NDR_ERR_SUCCESS;
18946 static enum ndr_err_code ndr_pull_spoolss_PrinterNotifyFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
18949 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
18951 return NDR_ERR_SUCCESS;
18954 _PUBLIC_ void ndr_print_spoolss_PrinterNotifyFlags(struct ndr_print *ndr, const char *name, uint32_t r)
18956 ndr_print_uint32(ndr, name, r);
18958 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDED", PRINTER_NOTIFY_INFO_DISCARDED, r);
18959 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDNOTED", PRINTER_NOTIFY_INFO_DISCARDNOTED, r);
18960 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_COLOR_MISMATCH", PRINTER_NOTIFY_INFO_COLOR_MISMATCH, r);
18964 static enum ndr_err_code ndr_push_spoolss_UserLevel1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel1 *r)
18966 if (ndr_flags & NDR_SCALARS) {
18967 NDR_CHECK(ndr_push_align(ndr, 5));
18968 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
18969 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client));
18970 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
18971 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
18972 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr, NDR_SCALARS, r->major));
18973 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr, NDR_SCALARS, r->minor));
18974 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor));
18975 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18977 if (ndr_flags & NDR_BUFFERS) {
18979 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client, 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->client, CH_UTF16)));
18982 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client, ndr_charset_length(r->client, CH_UTF16), sizeof(uint16_t), CH_UTF16));
18985 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
18986 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
18987 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
18988 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
18991 return NDR_ERR_SUCCESS;
18994 static enum ndr_err_code ndr_pull_spoolss_UserLevel1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel1 *r)
18996 uint32_t _ptr_client;
18997 TALLOC_CTX *_mem_save_client_0;
18998 uint32_t _ptr_user;
18999 TALLOC_CTX *_mem_save_user_0;
19000 if (ndr_flags & NDR_SCALARS) {
19001 NDR_CHECK(ndr_pull_align(ndr, 5));
19002 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
19003 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client));
19005 NDR_PULL_ALLOC(ndr, r->client);
19009 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
19011 NDR_PULL_ALLOC(ndr, r->user);
19015 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
19016 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr, NDR_SCALARS, &r->major));
19017 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr, NDR_SCALARS, &r->minor));
19018 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor));
19019 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
19021 if (ndr_flags & NDR_BUFFERS) {
19023 _mem_save_client_0 = NDR_PULL_GET_MEM_CTX(ndr);
19024 NDR_PULL_SET_MEM_CTX(ndr, r->client, 0);
19025 NDR_CHECK(ndr_pull_array_size(ndr, &r->client));
19026 NDR_CHECK(ndr_pull_array_length(ndr, &r->client));
19027 if (ndr_get_array_length(ndr, &r->client) > ndr_get_array_size(ndr, &r->client)) {
19028 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));
19030 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t)));
19031 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t), CH_UTF16));
19032 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0);
19035 _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
19036 NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
19037 NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
19038 NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
19039 if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) {
19040 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));
19042 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t)));
19043 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16));
19044 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
19047 return NDR_ERR_SUCCESS;
19050 _PUBLIC_ void ndr_print_spoolss_UserLevel1(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel1 *r)
19052 ndr_print_struct(ndr, name, "spoolss_UserLevel1");
19054 ndr_print_uint32(ndr, "size", r->size);
19055 ndr_print_ptr(ndr, "client", r->client);
19058 ndr_print_string(ndr, "client", r->client);
19061 ndr_print_ptr(ndr, "user", r->user);
19064 ndr_print_string(ndr, "user", r->user);
19067 ndr_print_uint32(ndr, "build", r->build);
19068 ndr_print_spoolss_MajorVersion(ndr, "major", r->major);
19069 ndr_print_spoolss_MinorVersion(ndr, "minor", r->minor);
19070 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor", r->processor);
19074 static enum ndr_err_code ndr_push_spoolss_UserLevel2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel2 *r)
19076 if (ndr_flags & NDR_SCALARS) {
19077 NDR_CHECK(ndr_push_align(ndr, 4));
19078 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->not_used));
19079 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
19081 if (ndr_flags & NDR_BUFFERS) {
19083 return NDR_ERR_SUCCESS;
19086 static enum ndr_err_code ndr_pull_spoolss_UserLevel2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel2 *r)
19088 if (ndr_flags & NDR_SCALARS) {
19089 NDR_CHECK(ndr_pull_align(ndr, 4));
19090 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->not_used));
19091 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
19093 if (ndr_flags & NDR_BUFFERS) {
19095 return NDR_ERR_SUCCESS;
19098 _PUBLIC_ void ndr_print_spoolss_UserLevel2(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel2 *r)
19100 ndr_print_struct(ndr, name, "spoolss_UserLevel2");
19102 ndr_print_uint32(ndr, "not_used", r->not_used);
19106 static enum ndr_err_code ndr_push_spoolss_UserLevel3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel3 *r)
19108 if (ndr_flags & NDR_SCALARS) {
19109 NDR_CHECK(ndr_push_align(ndr, 5));
19110 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
19111 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
19112 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size2));
19113 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client));
19114 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
19115 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
19116 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr, NDR_SCALARS, r->major));
19117 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr, NDR_SCALARS, r->minor));
19118 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor));
19119 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->reserved));
19120 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
19122 if (ndr_flags & NDR_BUFFERS) {
19124 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client, 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->client, CH_UTF16)));
19127 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client, ndr_charset_length(r->client, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19130 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
19131 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
19132 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
19133 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19136 return NDR_ERR_SUCCESS;
19139 static enum ndr_err_code ndr_pull_spoolss_UserLevel3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel3 *r)
19141 uint32_t _ptr_client;
19142 TALLOC_CTX *_mem_save_client_0;
19143 uint32_t _ptr_user;
19144 TALLOC_CTX *_mem_save_user_0;
19145 if (ndr_flags & NDR_SCALARS) {
19146 NDR_CHECK(ndr_pull_align(ndr, 5));
19147 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
19148 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
19149 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size2));
19150 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client));
19152 NDR_PULL_ALLOC(ndr, r->client);
19156 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
19158 NDR_PULL_ALLOC(ndr, r->user);
19162 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
19163 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr, NDR_SCALARS, &r->major));
19164 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr, NDR_SCALARS, &r->minor));
19165 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor));
19166 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->reserved));
19167 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
19169 if (ndr_flags & NDR_BUFFERS) {
19171 _mem_save_client_0 = NDR_PULL_GET_MEM_CTX(ndr);
19172 NDR_PULL_SET_MEM_CTX(ndr, r->client, 0);
19173 NDR_CHECK(ndr_pull_array_size(ndr, &r->client));
19174 NDR_CHECK(ndr_pull_array_length(ndr, &r->client));
19175 if (ndr_get_array_length(ndr, &r->client) > ndr_get_array_size(ndr, &r->client)) {
19176 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));
19178 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t)));
19179 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t), CH_UTF16));
19180 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0);
19183 _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
19184 NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
19185 NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
19186 NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
19187 if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) {
19188 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));
19190 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t)));
19191 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16));
19192 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
19195 return NDR_ERR_SUCCESS;
19198 _PUBLIC_ void ndr_print_spoolss_UserLevel3(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel3 *r)
19200 ndr_print_struct(ndr, name, "spoolss_UserLevel3");
19202 ndr_print_uint32(ndr, "size", r->size);
19203 ndr_print_uint32(ndr, "flags", r->flags);
19204 ndr_print_uint32(ndr, "size2", r->size2);
19205 ndr_print_ptr(ndr, "client", r->client);
19208 ndr_print_string(ndr, "client", r->client);
19211 ndr_print_ptr(ndr, "user", r->user);
19214 ndr_print_string(ndr, "user", r->user);
19217 ndr_print_uint32(ndr, "build", r->build);
19218 ndr_print_spoolss_MajorVersion(ndr, "major", r->major);
19219 ndr_print_spoolss_MinorVersion(ndr, "minor", r->minor);
19220 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor", r->processor);
19221 ndr_print_udlong(ndr, "reserved", r->reserved);
19225 static enum ndr_err_code ndr_push_spoolss_UserLevel(struct ndr_push *ndr, int ndr_flags, const union spoolss_UserLevel *r)
19227 if (ndr_flags & NDR_SCALARS) {
19228 int level = ndr_push_get_switch_value(ndr, r);
19229 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
19230 NDR_CHECK(ndr_push_union_align(ndr, 5));
19233 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level1));
19237 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level2));
19241 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level3));
19245 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19248 if (ndr_flags & NDR_BUFFERS) {
19249 int level = ndr_push_get_switch_value(ndr, r);
19253 NDR_CHECK(ndr_push_spoolss_UserLevel1(ndr, NDR_SCALARS|NDR_BUFFERS, r->level1));
19259 NDR_CHECK(ndr_push_spoolss_UserLevel2(ndr, NDR_SCALARS, r->level2));
19265 NDR_CHECK(ndr_push_spoolss_UserLevel3(ndr, NDR_SCALARS|NDR_BUFFERS, r->level3));
19270 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19273 return NDR_ERR_SUCCESS;
19276 static enum ndr_err_code ndr_pull_spoolss_UserLevel(struct ndr_pull *ndr, int ndr_flags, union spoolss_UserLevel *r)
19280 TALLOC_CTX *_mem_save_level1_0;
19281 TALLOC_CTX *_mem_save_level2_0;
19282 TALLOC_CTX *_mem_save_level3_0;
19283 level = ndr_pull_get_switch_value(ndr, r);
19284 if (ndr_flags & NDR_SCALARS) {
19285 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
19286 if (_level != level) {
19287 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
19289 NDR_CHECK(ndr_pull_union_align(ndr, 5));
19292 uint32_t _ptr_level1;
19293 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level1));
19295 NDR_PULL_ALLOC(ndr, r->level1);
19302 uint32_t _ptr_level2;
19303 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level2));
19305 NDR_PULL_ALLOC(ndr, r->level2);
19312 uint32_t _ptr_level3;
19313 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level3));
19315 NDR_PULL_ALLOC(ndr, r->level3);
19322 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19325 if (ndr_flags & NDR_BUFFERS) {
19329 _mem_save_level1_0 = NDR_PULL_GET_MEM_CTX(ndr);
19330 NDR_PULL_SET_MEM_CTX(ndr, r->level1, 0);
19331 NDR_CHECK(ndr_pull_spoolss_UserLevel1(ndr, NDR_SCALARS|NDR_BUFFERS, r->level1));
19332 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level1_0, 0);
19338 _mem_save_level2_0 = NDR_PULL_GET_MEM_CTX(ndr);
19339 NDR_PULL_SET_MEM_CTX(ndr, r->level2, 0);
19340 NDR_CHECK(ndr_pull_spoolss_UserLevel2(ndr, NDR_SCALARS, r->level2));
19341 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level2_0, 0);
19347 _mem_save_level3_0 = NDR_PULL_GET_MEM_CTX(ndr);
19348 NDR_PULL_SET_MEM_CTX(ndr, r->level3, 0);
19349 NDR_CHECK(ndr_pull_spoolss_UserLevel3(ndr, NDR_SCALARS|NDR_BUFFERS, r->level3));
19350 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level3_0, 0);
19355 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19358 return NDR_ERR_SUCCESS;
19361 _PUBLIC_ void ndr_print_spoolss_UserLevel(struct ndr_print *ndr, const char *name, const union spoolss_UserLevel *r)
19364 level = ndr_print_get_switch_value(ndr, r);
19365 ndr_print_union(ndr, name, level, "spoolss_UserLevel");
19368 ndr_print_ptr(ndr, "level1", r->level1);
19371 ndr_print_spoolss_UserLevel1(ndr, "level1", r->level1);
19377 ndr_print_ptr(ndr, "level2", r->level2);
19380 ndr_print_spoolss_UserLevel2(ndr, "level2", r->level2);
19386 ndr_print_ptr(ndr, "level3", r->level3);
19389 ndr_print_spoolss_UserLevel3(ndr, "level3", r->level3);
19395 ndr_print_bad_level(ndr, name, level);
19399 static enum ndr_err_code ndr_push_spoolss_UserLevelCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevelCtr *r)
19401 if (ndr_flags & NDR_SCALARS) {
19402 NDR_CHECK(ndr_push_align(ndr, 5));
19403 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
19404 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->user_info, r->level));
19405 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_SCALARS, &r->user_info));
19406 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
19408 if (ndr_flags & NDR_BUFFERS) {
19409 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_BUFFERS, &r->user_info));
19411 return NDR_ERR_SUCCESS;
19414 static enum ndr_err_code ndr_pull_spoolss_UserLevelCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevelCtr *r)
19416 if (ndr_flags & NDR_SCALARS) {
19417 NDR_CHECK(ndr_pull_align(ndr, 5));
19418 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
19419 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->user_info, r->level));
19420 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_SCALARS, &r->user_info));
19421 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
19423 if (ndr_flags & NDR_BUFFERS) {
19424 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_BUFFERS, &r->user_info));
19426 return NDR_ERR_SUCCESS;
19429 _PUBLIC_ void ndr_print_spoolss_UserLevelCtr(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevelCtr *r)
19431 ndr_print_struct(ndr, name, "spoolss_UserLevelCtr");
19433 ndr_print_uint32(ndr, "level", r->level);
19434 ndr_print_set_switch_value(ndr, &r->user_info, r->level);
19435 ndr_print_spoolss_UserLevel(ndr, "user_info", &r->user_info);
19439 static enum ndr_err_code ndr_push_spoolss_AccessRights(struct ndr_push *ndr, int ndr_flags, uint32_t r)
19441 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
19442 return NDR_ERR_SUCCESS;
19445 static enum ndr_err_code ndr_pull_spoolss_AccessRights(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
19448 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
19450 return NDR_ERR_SUCCESS;
19453 _PUBLIC_ void ndr_print_spoolss_AccessRights(struct ndr_print *ndr, const char *name, uint32_t r)
19455 ndr_print_uint32(ndr, name, r);
19457 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SERVER_ACCESS_ADMINISTER", SERVER_ACCESS_ADMINISTER, r);
19458 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SERVER_ACCESS_ENUMERATE", SERVER_ACCESS_ENUMERATE, r);
19459 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ACCESS_ADMINISTER", PRINTER_ACCESS_ADMINISTER, r);
19460 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ACCESS_USE", PRINTER_ACCESS_USE, r);
19461 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_ACCESS_ADMINISTER", JOB_ACCESS_ADMINISTER, r);
19462 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_ACCESS_READ", JOB_ACCESS_READ, r);
19466 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterEnumValues(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterEnumValues *r)
19468 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
19469 if (ndr_flags & NDR_SCALARS) {
19470 NDR_CHECK(ndr_push_align(ndr, 5));
19471 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
19473 uint32_t _flags_save_string = ndr->flags;
19474 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19475 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->value_name));
19476 ndr->flags = _flags_save_string;
19478 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2 * strlen_m_term(r->value_name)));
19479 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->type));
19480 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data));
19481 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_PrinterData(r->data, r->type, ndr->iconv_convenience, ndr->flags)));
19482 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
19484 if (ndr_flags & NDR_BUFFERS) {
19485 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
19487 uint32_t _flags_save_string = ndr->flags;
19488 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19489 if (r->value_name) {
19490 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->value_name));
19491 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->value_name));
19493 ndr->flags = _flags_save_string;
19496 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data));
19498 struct ndr_push *_ndr_data;
19499 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_data, 0, r->data_length));
19500 NDR_CHECK(ndr_push_set_switch_value(_ndr_data, r->data, r->type));
19501 NDR_CHECK(ndr_push_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, r->data));
19502 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_data, 0, r->data_length));
19506 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
19507 return NDR_ERR_SUCCESS;
19510 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterEnumValues(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterEnumValues *r)
19512 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
19513 uint32_t _ptr_value_name;
19514 TALLOC_CTX *_mem_save_value_name_0;
19515 uint32_t _ptr_data;
19516 TALLOC_CTX *_mem_save_data_0;
19517 if (ndr_flags & NDR_SCALARS) {
19518 NDR_CHECK(ndr_pull_align(ndr, 5));
19519 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
19521 uint32_t _flags_save_string = ndr->flags;
19522 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19523 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_value_name));
19524 if (_ptr_value_name) {
19525 NDR_PULL_ALLOC(ndr, r->value_name);
19526 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->value_name, _ptr_value_name));
19528 r->value_name = NULL;
19530 ndr->flags = _flags_save_string;
19532 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->value_name_len));
19533 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->type));
19534 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
19536 NDR_PULL_ALLOC(ndr, r->data);
19537 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data, _ptr_data));
19541 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->data_length));
19542 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
19544 if (ndr_flags & NDR_BUFFERS) {
19545 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
19547 uint32_t _flags_save_string = ndr->flags;
19548 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19549 if (r->value_name) {
19550 uint32_t _relative_save_offset;
19551 _relative_save_offset = ndr->offset;
19552 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->value_name));
19553 _mem_save_value_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
19554 NDR_PULL_SET_MEM_CTX(ndr, r->value_name, 0);
19555 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->value_name));
19556 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_name_0, 0);
19557 if (ndr->offset > ndr->relative_highest_offset) {
19558 ndr->relative_highest_offset = ndr->offset;
19560 ndr->offset = _relative_save_offset;
19562 ndr->flags = _flags_save_string;
19565 uint32_t _relative_save_offset;
19566 _relative_save_offset = ndr->offset;
19567 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data));
19568 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
19569 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
19571 struct ndr_pull *_ndr_data;
19572 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_data, 0, r->data_length));
19573 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data, r->data, r->type));
19574 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, r->data));
19575 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_data, 0, r->data_length));
19577 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
19578 if (ndr->offset > ndr->relative_highest_offset) {
19579 ndr->relative_highest_offset = ndr->offset;
19581 ndr->offset = _relative_save_offset;
19584 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
19585 return NDR_ERR_SUCCESS;
19588 _PUBLIC_ void ndr_print_spoolss_PrinterEnumValues(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterEnumValues *r)
19590 ndr_print_struct(ndr, name, "spoolss_PrinterEnumValues");
19592 ndr_print_ptr(ndr, "value_name", r->value_name);
19594 if (r->value_name) {
19595 ndr_print_string(ndr, "value_name", r->value_name);
19598 ndr_print_uint32(ndr, "value_name_len", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2 * strlen_m_term(r->value_name):r->value_name_len);
19599 ndr_print_winreg_Type(ndr, "type", r->type);
19600 ndr_print_ptr(ndr, "data", r->data);
19603 ndr_print_set_switch_value(ndr, r->data, r->type);
19604 ndr_print_spoolss_PrinterData(ndr, "data", r->data);
19607 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);
19611 _PUBLIC_ size_t ndr_size_spoolss_PrinterEnumValues(const struct spoolss_PrinterEnumValues *r, struct smb_iconv_convenience *ic, int flags)
19613 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterEnumValues, ic);
19616 static enum ndr_err_code ndr_push_spoolss_KeyNames(struct ndr_push *ndr, int ndr_flags, const union spoolss_KeyNames *r)
19618 if (ndr_flags & NDR_SCALARS) {
19619 int level = ndr_push_get_switch_value(ndr, r);
19620 NDR_CHECK(ndr_push_union_align(ndr, 4));
19630 uint32_t _flags_save_string_array = ndr->flags;
19631 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19632 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string_array));
19633 ndr->flags = _flags_save_string_array;
19639 if (ndr_flags & NDR_BUFFERS) {
19640 int level = ndr_push_get_switch_value(ndr, r);
19653 return NDR_ERR_SUCCESS;
19656 static enum ndr_err_code ndr_pull_spoolss_KeyNames(struct ndr_pull *ndr, int ndr_flags, union spoolss_KeyNames *r)
19659 level = ndr_pull_get_switch_value(ndr, r);
19660 if (ndr_flags & NDR_SCALARS) {
19661 NDR_CHECK(ndr_pull_union_align(ndr, 4));
19671 uint32_t _flags_save_string_array = ndr->flags;
19672 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19673 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string_array));
19674 ndr->flags = _flags_save_string_array;
19680 if (ndr_flags & NDR_BUFFERS) {
19693 return NDR_ERR_SUCCESS;
19696 _PUBLIC_ void ndr_print_spoolss_KeyNames(struct ndr_print *ndr, const char *name, const union spoolss_KeyNames *r)
19699 level = ndr_print_get_switch_value(ndr, r);
19700 ndr_print_union(ndr, name, level, "spoolss_KeyNames");
19709 ndr_print_string_array(ndr, "string_array", r->string_array);
19715 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DeleteDriverFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
19717 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
19718 return NDR_ERR_SUCCESS;
19721 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DeleteDriverFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
19724 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
19726 return NDR_ERR_SUCCESS;
19729 _PUBLIC_ void ndr_print_spoolss_DeleteDriverFlags(struct ndr_print *ndr, const char *name, uint32_t r)
19731 ndr_print_uint32(ndr, name, r);
19733 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_UNUSED_FILES", DPD_DELETE_UNUSED_FILES, r);
19734 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_SPECIFIC_VERSION", DPD_DELETE_SPECIFIC_VERSION, r);
19735 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_ALL_FILES", DPD_DELETE_ALL_FILES, r);
19739 static enum ndr_err_code ndr_push_spoolss_PortProtocol(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortProtocol r)
19741 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
19742 return NDR_ERR_SUCCESS;
19745 static enum ndr_err_code ndr_pull_spoolss_PortProtocol(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortProtocol *r)
19748 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
19750 return NDR_ERR_SUCCESS;
19753 _PUBLIC_ void ndr_print_spoolss_PortProtocol(struct ndr_print *ndr, const char *name, enum spoolss_PortProtocol r)
19755 const char *val = NULL;
19758 case PROTOCOL_RAWTCP_TYPE: val = "PROTOCOL_RAWTCP_TYPE"; break;
19759 case PROTOCOL_LPR_TYPE: val = "PROTOCOL_LPR_TYPE"; break;
19761 ndr_print_enum(ndr, name, "ENUM", val, r);
19764 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortData1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortData1 *r)
19766 if (ndr_flags & NDR_SCALARS) {
19767 NDR_CHECK(ndr_push_align(ndr, 4));
19768 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, 64, sizeof(uint16_t), CH_UTF16));
19769 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0x00000001));
19770 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr, NDR_SCALARS, r->protocol));
19771 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, sizeof(r)));
19772 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
19773 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hostaddress, 49, sizeof(uint16_t), CH_UTF16));
19774 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
19775 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dblspool));
19776 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->queue, 33, sizeof(uint16_t), CH_UTF16));
19777 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->ip_address, 16, sizeof(uint16_t), CH_UTF16));
19778 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_address, 13, sizeof(uint16_t), CH_UTF16));
19779 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->device_type, 257, sizeof(uint16_t), CH_UTF16));
19780 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_number));
19781 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_enabled));
19782 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_dev_index));
19783 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
19785 if (ndr_flags & NDR_BUFFERS) {
19787 return NDR_ERR_SUCCESS;
19790 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortData1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortData1 *r)
19792 if (ndr_flags & NDR_SCALARS) {
19793 NDR_CHECK(ndr_pull_align(ndr, 4));
19794 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, 64, sizeof(uint16_t), CH_UTF16));
19795 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
19796 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr, NDR_SCALARS, &r->protocol));
19797 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
19798 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
19799 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hostaddress, 49, sizeof(uint16_t), CH_UTF16));
19800 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
19801 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dblspool));
19802 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->queue, 33, sizeof(uint16_t), CH_UTF16));
19803 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->ip_address, 16, sizeof(uint16_t), CH_UTF16));
19804 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_address, 13, sizeof(uint16_t), CH_UTF16));
19805 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device_type, 257, sizeof(uint16_t), CH_UTF16));
19806 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_number));
19807 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_enabled));
19808 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_dev_index));
19809 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
19811 if (ndr_flags & NDR_BUFFERS) {
19813 return NDR_ERR_SUCCESS;
19816 _PUBLIC_ void ndr_print_spoolss_PortData1(struct ndr_print *ndr, const char *name, const struct spoolss_PortData1 *r)
19818 ndr_print_struct(ndr, name, "spoolss_PortData1");
19820 ndr_print_string(ndr, "portname", r->portname);
19821 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x00000001:r->version);
19822 ndr_print_spoolss_PortProtocol(ndr, "protocol", r->protocol);
19823 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?sizeof(r):r->size);
19824 ndr_print_uint32(ndr, "reserved", r->reserved);
19825 ndr_print_string(ndr, "hostaddress", r->hostaddress);
19826 ndr_print_string(ndr, "snmpcommunity", r->snmpcommunity);
19827 ndr_print_uint32(ndr, "dblspool", r->dblspool);
19828 ndr_print_string(ndr, "queue", r->queue);
19829 ndr_print_string(ndr, "ip_address", r->ip_address);
19830 ndr_print_string(ndr, "hardware_address", r->hardware_address);
19831 ndr_print_string(ndr, "device_type", r->device_type);
19832 ndr_print_uint32(ndr, "port_number", r->port_number);
19833 ndr_print_uint32(ndr, "snmp_enabled", r->snmp_enabled);
19834 ndr_print_uint32(ndr, "snmp_dev_index", r->snmp_dev_index);
19838 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortData2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortData2 *r)
19840 if (ndr_flags & NDR_SCALARS) {
19841 NDR_CHECK(ndr_push_align(ndr, 4));
19842 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, 64, sizeof(uint16_t), CH_UTF16));
19843 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0x00000002));
19844 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr, NDR_SCALARS, r->protocol));
19845 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, sizeof(r)));
19846 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
19847 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hostaddress, 128, sizeof(uint16_t), CH_UTF16));
19848 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
19849 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dblspool));
19850 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->queue, 33, sizeof(uint16_t), CH_UTF16));
19851 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->device_type, 257, sizeof(uint16_t), CH_UTF16));
19852 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_number));
19853 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_enabled));
19854 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_dev_index));
19855 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_monitor_mib_index));
19856 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
19858 if (ndr_flags & NDR_BUFFERS) {
19860 return NDR_ERR_SUCCESS;
19863 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortData2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortData2 *r)
19865 if (ndr_flags & NDR_SCALARS) {
19866 NDR_CHECK(ndr_pull_align(ndr, 4));
19867 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, 64, sizeof(uint16_t), CH_UTF16));
19868 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
19869 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr, NDR_SCALARS, &r->protocol));
19870 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
19871 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
19872 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hostaddress, 128, sizeof(uint16_t), CH_UTF16));
19873 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
19874 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dblspool));
19875 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->queue, 33, sizeof(uint16_t), CH_UTF16));
19876 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device_type, 257, sizeof(uint16_t), CH_UTF16));
19877 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_number));
19878 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_enabled));
19879 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_dev_index));
19880 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_monitor_mib_index));
19881 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
19883 if (ndr_flags & NDR_BUFFERS) {
19885 return NDR_ERR_SUCCESS;
19888 _PUBLIC_ void ndr_print_spoolss_PortData2(struct ndr_print *ndr, const char *name, const struct spoolss_PortData2 *r)
19890 ndr_print_struct(ndr, name, "spoolss_PortData2");
19892 ndr_print_string(ndr, "portname", r->portname);
19893 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x00000002:r->version);
19894 ndr_print_spoolss_PortProtocol(ndr, "protocol", r->protocol);
19895 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?sizeof(r):r->size);
19896 ndr_print_uint32(ndr, "reserved", r->reserved);
19897 ndr_print_string(ndr, "hostaddress", r->hostaddress);
19898 ndr_print_string(ndr, "snmpcommunity", r->snmpcommunity);
19899 ndr_print_uint32(ndr, "dblspool", r->dblspool);
19900 ndr_print_string(ndr, "queue", r->queue);
19901 ndr_print_string(ndr, "device_type", r->device_type);
19902 ndr_print_uint32(ndr, "port_number", r->port_number);
19903 ndr_print_uint32(ndr, "snmp_enabled", r->snmp_enabled);
19904 ndr_print_uint32(ndr, "snmp_dev_index", r->snmp_dev_index);
19905 ndr_print_uint32(ndr, "port_monitor_mib_index", r->port_monitor_mib_index);
19909 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorUi(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorUi *r)
19911 if (ndr_flags & NDR_SCALARS) {
19912 NDR_CHECK(ndr_push_align(ndr, 4));
19914 uint32_t _flags_save_string = ndr->flags;
19915 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19916 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dll_name));
19917 ndr->flags = _flags_save_string;
19919 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
19921 if (ndr_flags & NDR_BUFFERS) {
19923 return NDR_ERR_SUCCESS;
19926 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorUi(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorUi *r)
19928 if (ndr_flags & NDR_SCALARS) {
19929 NDR_CHECK(ndr_pull_align(ndr, 4));
19931 uint32_t _flags_save_string = ndr->flags;
19932 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19933 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->dll_name));
19934 ndr->flags = _flags_save_string;
19936 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
19938 if (ndr_flags & NDR_BUFFERS) {
19940 return NDR_ERR_SUCCESS;
19943 _PUBLIC_ void ndr_print_spoolss_MonitorUi(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorUi *r)
19945 ndr_print_struct(ndr, name, "spoolss_MonitorUi");
19947 ndr_print_string(ndr, "dll_name", r->dll_name);
19951 static enum ndr_err_code ndr_push_spoolss_AddPrinterDriverExFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
19953 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
19954 return NDR_ERR_SUCCESS;
19957 static enum ndr_err_code ndr_pull_spoolss_AddPrinterDriverExFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
19960 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
19962 return NDR_ERR_SUCCESS;
19965 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriverExFlags(struct ndr_print *ndr, const char *name, uint32_t r)
19967 ndr_print_uint32(ndr, name, r);
19969 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_STRICT_UPGRADE", APD_STRICT_UPGRADE, r);
19970 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_STRICT_DOWNGRADE", APD_STRICT_DOWNGRADE, r);
19971 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_ALL_FILES", APD_COPY_ALL_FILES, r);
19972 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_NEW_FILES", APD_COPY_NEW_FILES, r);
19973 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_FROM_DIRECTORY", APD_COPY_FROM_DIRECTORY, r);
19974 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_DONT_COPY_FILES_TO_CLUSTER", APD_DONT_COPY_FILES_TO_CLUSTER, r);
19975 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_TO_ALL_SPOOLERS", APD_COPY_TO_ALL_SPOOLERS, r);
19976 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_RETURN_BLOCKING_STATUS_CODE", APD_RETURN_BLOCKING_STATUS_CODE, r);
19980 static enum ndr_err_code ndr_push_spoolss_CorePrinterDriver(struct ndr_push *ndr, int ndr_flags, const struct spoolss_CorePrinterDriver *r)
19982 if (ndr_flags & NDR_SCALARS) {
19983 NDR_CHECK(ndr_push_align(ndr, 8));
19984 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->core_driver_guid));
19985 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
19986 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
19987 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->formname, 520, sizeof(uint8_t), CH_UTF8));
19988 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
19990 if (ndr_flags & NDR_BUFFERS) {
19992 return NDR_ERR_SUCCESS;
19995 static enum ndr_err_code ndr_pull_spoolss_CorePrinterDriver(struct ndr_pull *ndr, int ndr_flags, struct spoolss_CorePrinterDriver *r)
19997 if (ndr_flags & NDR_SCALARS) {
19998 NDR_CHECK(ndr_pull_align(ndr, 8));
19999 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->core_driver_guid));
20000 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
20001 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
20002 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->formname, 520, sizeof(uint8_t), CH_UTF8));
20003 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
20005 if (ndr_flags & NDR_BUFFERS) {
20007 return NDR_ERR_SUCCESS;
20010 _PUBLIC_ void ndr_print_spoolss_CorePrinterDriver(struct ndr_print *ndr, const char *name, const struct spoolss_CorePrinterDriver *r)
20012 ndr_print_struct(ndr, name, "spoolss_CorePrinterDriver");
20014 ndr_print_GUID(ndr, "core_driver_guid", &r->core_driver_guid);
20015 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
20016 ndr_print_hyper(ndr, "driver_version", r->driver_version);
20017 ndr_print_string(ndr, "formname", r->formname);
20021 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinters(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinters *r)
20023 if (flags & NDR_IN) {
20024 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, r->in.flags));
20025 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
20026 if (r->in.server) {
20027 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20028 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
20029 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20030 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20032 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20033 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20034 if (r->in.buffer) {
20035 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
20037 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
20039 if (flags & NDR_OUT) {
20040 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
20042 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
20044 if (r->out.needed == NULL) {
20045 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20047 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
20048 if (r->out.count == NULL) {
20049 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20051 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
20052 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20054 return NDR_ERR_SUCCESS;
20057 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinters(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinters *r)
20059 uint32_t _ptr_server;
20060 uint32_t _ptr_buffer;
20061 uint32_t _ptr_info;
20062 TALLOC_CTX *_mem_save_server_0;
20063 TALLOC_CTX *_mem_save_buffer_0;
20064 TALLOC_CTX *_mem_save_info_0;
20065 TALLOC_CTX *_mem_save_needed_0;
20066 TALLOC_CTX *_mem_save_count_0;
20067 if (flags & NDR_IN) {
20068 ZERO_STRUCT(r->out);
20070 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, &r->in.flags));
20071 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
20073 NDR_PULL_ALLOC(ndr, r->in.server);
20075 r->in.server = NULL;
20077 if (r->in.server) {
20078 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
20079 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
20080 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
20081 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
20082 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
20083 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));
20085 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
20086 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
20087 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
20089 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20090 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20092 NDR_PULL_ALLOC(ndr, r->in.buffer);
20094 r->in.buffer = NULL;
20096 if (r->in.buffer) {
20097 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
20098 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20099 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
20100 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20102 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
20103 NDR_PULL_ALLOC(ndr, r->out.needed);
20104 ZERO_STRUCTP(r->out.needed);
20105 NDR_PULL_ALLOC(ndr, r->out.count);
20106 ZERO_STRUCTP(r->out.count);
20108 if (flags & NDR_OUT) {
20109 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
20111 NDR_PULL_ALLOC(ndr, r->out.info);
20113 r->out.info = NULL;
20116 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20117 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20118 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
20119 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20121 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20122 NDR_PULL_ALLOC(ndr, r->out.needed);
20124 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
20125 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
20126 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
20127 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
20128 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20129 NDR_PULL_ALLOC(ndr, r->out.count);
20131 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
20132 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
20133 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
20134 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
20135 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20137 return NDR_ERR_SUCCESS;
20140 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinters(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinters *r)
20142 uint32_t cntr_info_0;
20143 if (flags & NDR_IN) {
20144 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20145 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
20147 if (flags & NDR_OUT) {
20148 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20149 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
20150 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
20152 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20153 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
20156 return NDR_ERR_SUCCESS;
20159 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinters(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinters *r)
20161 uint32_t cntr_info_0;
20162 TALLOC_CTX *_mem_save_info_0;
20163 if (flags & NDR_IN) {
20164 ZERO_STRUCT(r->out);
20166 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20167 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
20169 if (flags & NDR_OUT) {
20170 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
20171 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20172 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20173 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20174 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
20175 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
20177 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20178 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
20180 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20182 return NDR_ERR_SUCCESS;
20185 _PUBLIC_ void ndr_print_spoolss_EnumPrinters(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinters *r)
20187 uint32_t cntr_info_2;
20188 ndr_print_struct(ndr, name, "spoolss_EnumPrinters");
20190 if (flags & NDR_SET_VALUES) {
20191 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20193 if (flags & NDR_IN) {
20194 ndr_print_struct(ndr, "in", "spoolss_EnumPrinters");
20196 ndr_print_spoolss_EnumPrinterFlags(ndr, "flags", r->in.flags);
20197 ndr_print_ptr(ndr, "server", r->in.server);
20199 if (r->in.server) {
20200 ndr_print_string(ndr, "server", r->in.server);
20203 ndr_print_uint32(ndr, "level", r->in.level);
20204 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20206 if (r->in.buffer) {
20207 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
20210 ndr_print_uint32(ndr, "offered", r->in.offered);
20213 if (flags & NDR_OUT) {
20214 ndr_print_struct(ndr, "out", "spoolss_EnumPrinters");
20216 ndr_print_ptr(ndr, "count", r->out.count);
20218 ndr_print_uint32(ndr, "count", *r->out.count);
20220 ndr_print_ptr(ndr, "info", r->out.info);
20222 ndr_print_ptr(ndr, "info", *r->out.info);
20224 if (*r->out.info) {
20225 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
20227 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
20229 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
20230 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
20231 ndr_print_spoolss_PrinterInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
20239 ndr_print_ptr(ndr, "needed", r->out.needed);
20241 ndr_print_uint32(ndr, "needed", *r->out.needed);
20243 ndr_print_WERROR(ndr, "result", r->out.result);
20249 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OpenPrinter(struct ndr_push *ndr, int flags, const struct spoolss_OpenPrinter *r)
20251 if (flags & NDR_IN) {
20252 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.printername));
20253 if (r->in.printername) {
20254 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
20255 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
20256 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
20257 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20259 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.datatype));
20260 if (r->in.datatype) {
20261 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
20262 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
20263 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
20264 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.datatype, ndr_charset_length(r->in.datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20266 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
20267 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr, NDR_SCALARS, r->in.access_mask));
20269 if (flags & NDR_OUT) {
20270 if (r->out.handle == NULL) {
20271 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20273 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
20274 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20276 return NDR_ERR_SUCCESS;
20279 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OpenPrinter(struct ndr_pull *ndr, int flags, struct spoolss_OpenPrinter *r)
20281 uint32_t _ptr_printername;
20282 uint32_t _ptr_datatype;
20283 TALLOC_CTX *_mem_save_printername_0;
20284 TALLOC_CTX *_mem_save_datatype_0;
20285 TALLOC_CTX *_mem_save_handle_0;
20286 if (flags & NDR_IN) {
20287 ZERO_STRUCT(r->out);
20289 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
20290 if (_ptr_printername) {
20291 NDR_PULL_ALLOC(ndr, r->in.printername);
20293 r->in.printername = NULL;
20295 if (r->in.printername) {
20296 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
20297 NDR_PULL_SET_MEM_CTX(ndr, r->in.printername, 0);
20298 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
20299 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
20300 if (ndr_get_array_length(ndr, &r->in.printername) > ndr_get_array_size(ndr, &r->in.printername)) {
20301 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));
20303 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t)));
20304 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t), CH_UTF16));
20305 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
20307 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
20308 if (_ptr_datatype) {
20309 NDR_PULL_ALLOC(ndr, r->in.datatype);
20311 r->in.datatype = NULL;
20313 if (r->in.datatype) {
20314 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
20315 NDR_PULL_SET_MEM_CTX(ndr, r->in.datatype, 0);
20316 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.datatype));
20317 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.datatype));
20318 if (ndr_get_array_length(ndr, &r->in.datatype) > ndr_get_array_size(ndr, &r->in.datatype)) {
20319 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));
20321 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t)));
20322 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t), CH_UTF16));
20323 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
20325 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
20326 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr, NDR_SCALARS, &r->in.access_mask));
20327 NDR_PULL_ALLOC(ndr, r->out.handle);
20328 ZERO_STRUCTP(r->out.handle);
20330 if (flags & NDR_OUT) {
20331 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20332 NDR_PULL_ALLOC(ndr, r->out.handle);
20334 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20335 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
20336 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
20337 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20338 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20340 return NDR_ERR_SUCCESS;
20343 _PUBLIC_ void ndr_print_spoolss_OpenPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_OpenPrinter *r)
20345 ndr_print_struct(ndr, name, "spoolss_OpenPrinter");
20347 if (flags & NDR_SET_VALUES) {
20348 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20350 if (flags & NDR_IN) {
20351 ndr_print_struct(ndr, "in", "spoolss_OpenPrinter");
20353 ndr_print_ptr(ndr, "printername", r->in.printername);
20355 if (r->in.printername) {
20356 ndr_print_string(ndr, "printername", r->in.printername);
20359 ndr_print_ptr(ndr, "datatype", r->in.datatype);
20361 if (r->in.datatype) {
20362 ndr_print_string(ndr, "datatype", r->in.datatype);
20365 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", &r->in.devmode_ctr);
20366 ndr_print_spoolss_AccessRights(ndr, "access_mask", r->in.access_mask);
20369 if (flags & NDR_OUT) {
20370 ndr_print_struct(ndr, "out", "spoolss_OpenPrinter");
20372 ndr_print_ptr(ndr, "handle", r->out.handle);
20374 ndr_print_policy_handle(ndr, "handle", r->out.handle);
20376 ndr_print_WERROR(ndr, "result", r->out.result);
20382 static enum ndr_err_code ndr_push_spoolss_SetJob(struct ndr_push *ndr, int flags, const struct spoolss_SetJob *r)
20384 if (flags & NDR_IN) {
20385 if (r->in.handle == NULL) {
20386 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20388 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20389 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.job_id));
20390 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.ctr));
20392 NDR_CHECK(ndr_push_spoolss_JobInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
20394 NDR_CHECK(ndr_push_spoolss_JobControl(ndr, NDR_SCALARS, r->in.command));
20396 if (flags & NDR_OUT) {
20397 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20399 return NDR_ERR_SUCCESS;
20402 static enum ndr_err_code ndr_pull_spoolss_SetJob(struct ndr_pull *ndr, int flags, struct spoolss_SetJob *r)
20405 TALLOC_CTX *_mem_save_handle_0;
20406 TALLOC_CTX *_mem_save_ctr_0;
20407 if (flags & NDR_IN) {
20408 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20409 NDR_PULL_ALLOC(ndr, r->in.handle);
20411 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20412 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20413 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20414 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20415 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.job_id));
20416 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr));
20418 NDR_PULL_ALLOC(ndr, r->in.ctr);
20423 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20424 NDR_PULL_SET_MEM_CTX(ndr, r->in.ctr, 0);
20425 NDR_CHECK(ndr_pull_spoolss_JobInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
20426 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, 0);
20428 NDR_CHECK(ndr_pull_spoolss_JobControl(ndr, NDR_SCALARS, &r->in.command));
20430 if (flags & NDR_OUT) {
20431 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20433 return NDR_ERR_SUCCESS;
20436 _PUBLIC_ void ndr_print_spoolss_SetJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetJob *r)
20438 ndr_print_struct(ndr, name, "spoolss_SetJob");
20440 if (flags & NDR_SET_VALUES) {
20441 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20443 if (flags & NDR_IN) {
20444 ndr_print_struct(ndr, "in", "spoolss_SetJob");
20446 ndr_print_ptr(ndr, "handle", r->in.handle);
20448 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20450 ndr_print_uint32(ndr, "job_id", r->in.job_id);
20451 ndr_print_ptr(ndr, "ctr", r->in.ctr);
20454 ndr_print_spoolss_JobInfoContainer(ndr, "ctr", r->in.ctr);
20457 ndr_print_spoolss_JobControl(ndr, "command", r->in.command);
20460 if (flags & NDR_OUT) {
20461 ndr_print_struct(ndr, "out", "spoolss_SetJob");
20463 ndr_print_WERROR(ndr, "result", r->out.result);
20469 static enum ndr_err_code ndr_push_spoolss_GetJob(struct ndr_push *ndr, int flags, const struct spoolss_GetJob *r)
20471 if (flags & NDR_IN) {
20472 if (r->in.handle == NULL) {
20473 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20475 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20476 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.job_id));
20477 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20478 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20479 if (r->in.buffer) {
20480 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
20482 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
20484 if (flags & NDR_OUT) {
20485 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
20488 struct ndr_push *_ndr_info;
20489 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
20490 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
20491 NDR_CHECK(ndr_push_spoolss_JobInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
20492 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
20495 if (r->out.needed == NULL) {
20496 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20498 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
20499 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20501 return NDR_ERR_SUCCESS;
20504 static enum ndr_err_code ndr_pull_spoolss_GetJob(struct ndr_pull *ndr, int flags, struct spoolss_GetJob *r)
20506 uint32_t _ptr_buffer;
20507 uint32_t _ptr_info;
20508 TALLOC_CTX *_mem_save_handle_0;
20509 TALLOC_CTX *_mem_save_buffer_0;
20510 TALLOC_CTX *_mem_save_info_0;
20511 TALLOC_CTX *_mem_save_needed_0;
20512 if (flags & NDR_IN) {
20513 ZERO_STRUCT(r->out);
20515 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20516 NDR_PULL_ALLOC(ndr, r->in.handle);
20518 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20519 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20520 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20521 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20522 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.job_id));
20523 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20524 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20526 NDR_PULL_ALLOC(ndr, r->in.buffer);
20528 r->in.buffer = NULL;
20530 if (r->in.buffer) {
20531 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
20532 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20533 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
20534 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20536 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
20537 NDR_PULL_ALLOC(ndr, r->out.needed);
20538 ZERO_STRUCTP(r->out.needed);
20540 if (flags & NDR_OUT) {
20541 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
20543 NDR_PULL_ALLOC(ndr, r->out.info);
20545 r->out.info = NULL;
20548 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20549 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20551 struct ndr_pull *_ndr_info;
20552 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
20553 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
20554 NDR_CHECK(ndr_pull_spoolss_JobInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
20555 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
20557 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20559 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20560 NDR_PULL_ALLOC(ndr, r->out.needed);
20562 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
20563 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
20564 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
20565 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
20566 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20568 return NDR_ERR_SUCCESS;
20571 _PUBLIC_ void ndr_print_spoolss_GetJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetJob *r)
20573 ndr_print_struct(ndr, name, "spoolss_GetJob");
20575 if (flags & NDR_SET_VALUES) {
20576 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20578 if (flags & NDR_IN) {
20579 ndr_print_struct(ndr, "in", "spoolss_GetJob");
20581 ndr_print_ptr(ndr, "handle", r->in.handle);
20583 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20585 ndr_print_uint32(ndr, "job_id", r->in.job_id);
20586 ndr_print_uint32(ndr, "level", r->in.level);
20587 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20589 if (r->in.buffer) {
20590 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
20593 ndr_print_uint32(ndr, "offered", r->in.offered);
20596 if (flags & NDR_OUT) {
20597 ndr_print_struct(ndr, "out", "spoolss_GetJob");
20599 ndr_print_ptr(ndr, "info", r->out.info);
20602 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
20603 ndr_print_spoolss_JobInfo(ndr, "info", r->out.info);
20606 ndr_print_ptr(ndr, "needed", r->out.needed);
20608 ndr_print_uint32(ndr, "needed", *r->out.needed);
20610 ndr_print_WERROR(ndr, "result", r->out.result);
20616 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumJobs(struct ndr_push *ndr, int flags, const struct _spoolss_EnumJobs *r)
20618 if (flags & NDR_IN) {
20619 if (r->in.handle == NULL) {
20620 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20622 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20623 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.firstjob));
20624 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.numjobs));
20625 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20626 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20627 if (r->in.buffer) {
20628 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
20630 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
20632 if (flags & NDR_OUT) {
20633 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
20635 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
20637 if (r->out.needed == NULL) {
20638 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20640 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
20641 if (r->out.count == NULL) {
20642 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20644 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
20645 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20647 return NDR_ERR_SUCCESS;
20650 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumJobs(struct ndr_pull *ndr, int flags, struct _spoolss_EnumJobs *r)
20652 uint32_t _ptr_buffer;
20653 uint32_t _ptr_info;
20654 TALLOC_CTX *_mem_save_handle_0;
20655 TALLOC_CTX *_mem_save_buffer_0;
20656 TALLOC_CTX *_mem_save_info_0;
20657 TALLOC_CTX *_mem_save_needed_0;
20658 TALLOC_CTX *_mem_save_count_0;
20659 if (flags & NDR_IN) {
20660 ZERO_STRUCT(r->out);
20662 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20663 NDR_PULL_ALLOC(ndr, r->in.handle);
20665 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20666 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20667 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20668 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20669 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.firstjob));
20670 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.numjobs));
20671 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20672 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20674 NDR_PULL_ALLOC(ndr, r->in.buffer);
20676 r->in.buffer = NULL;
20678 if (r->in.buffer) {
20679 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
20680 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20681 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
20682 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20684 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
20685 NDR_PULL_ALLOC(ndr, r->out.needed);
20686 ZERO_STRUCTP(r->out.needed);
20687 NDR_PULL_ALLOC(ndr, r->out.count);
20688 ZERO_STRUCTP(r->out.count);
20690 if (flags & NDR_OUT) {
20691 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
20693 NDR_PULL_ALLOC(ndr, r->out.info);
20695 r->out.info = NULL;
20698 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20699 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20700 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
20701 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20703 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20704 NDR_PULL_ALLOC(ndr, r->out.needed);
20706 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
20707 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
20708 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
20709 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
20710 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20711 NDR_PULL_ALLOC(ndr, r->out.count);
20713 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
20714 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
20715 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
20716 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
20717 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20719 return NDR_ERR_SUCCESS;
20722 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumJobs(struct ndr_push *ndr, int flags, const struct __spoolss_EnumJobs *r)
20724 uint32_t cntr_info_0;
20725 if (flags & NDR_IN) {
20726 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20727 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
20729 if (flags & NDR_OUT) {
20730 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20731 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
20732 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
20734 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20735 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
20738 return NDR_ERR_SUCCESS;
20741 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumJobs(struct ndr_pull *ndr, int flags, struct __spoolss_EnumJobs *r)
20743 uint32_t cntr_info_0;
20744 TALLOC_CTX *_mem_save_info_0;
20745 if (flags & NDR_IN) {
20746 ZERO_STRUCT(r->out);
20748 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20749 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
20751 if (flags & NDR_OUT) {
20752 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
20753 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20754 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20755 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20756 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
20757 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
20759 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20760 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
20762 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20764 return NDR_ERR_SUCCESS;
20767 _PUBLIC_ void ndr_print_spoolss_EnumJobs(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumJobs *r)
20769 uint32_t cntr_info_2;
20770 ndr_print_struct(ndr, name, "spoolss_EnumJobs");
20772 if (flags & NDR_SET_VALUES) {
20773 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20775 if (flags & NDR_IN) {
20776 ndr_print_struct(ndr, "in", "spoolss_EnumJobs");
20778 ndr_print_ptr(ndr, "handle", r->in.handle);
20780 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20782 ndr_print_uint32(ndr, "firstjob", r->in.firstjob);
20783 ndr_print_uint32(ndr, "numjobs", r->in.numjobs);
20784 ndr_print_uint32(ndr, "level", r->in.level);
20785 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20787 if (r->in.buffer) {
20788 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
20791 ndr_print_uint32(ndr, "offered", r->in.offered);
20794 if (flags & NDR_OUT) {
20795 ndr_print_struct(ndr, "out", "spoolss_EnumJobs");
20797 ndr_print_ptr(ndr, "count", r->out.count);
20799 ndr_print_uint32(ndr, "count", *r->out.count);
20801 ndr_print_ptr(ndr, "info", r->out.info);
20803 ndr_print_ptr(ndr, "info", *r->out.info);
20805 if (*r->out.info) {
20806 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
20808 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
20810 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
20811 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
20812 ndr_print_spoolss_JobInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
20820 ndr_print_ptr(ndr, "needed", r->out.needed);
20822 ndr_print_uint32(ndr, "needed", *r->out.needed);
20824 ndr_print_WERROR(ndr, "result", r->out.result);
20830 static enum ndr_err_code ndr_push_spoolss_AddPrinter(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinter *r)
20832 if (flags & NDR_IN) {
20833 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
20834 if (r->in.server) {
20835 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20836 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
20837 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20838 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20840 if (r->in.info_ctr == NULL) {
20841 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20843 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
20844 if (r->in.devmode_ctr == NULL) {
20845 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20847 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
20848 if (r->in.secdesc_ctr == NULL) {
20849 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20851 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
20853 if (flags & NDR_OUT) {
20854 if (r->out.handle == NULL) {
20855 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20857 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
20858 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20860 return NDR_ERR_SUCCESS;
20863 static enum ndr_err_code ndr_pull_spoolss_AddPrinter(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinter *r)
20865 uint32_t _ptr_server;
20866 TALLOC_CTX *_mem_save_server_0;
20867 TALLOC_CTX *_mem_save_info_ctr_0;
20868 TALLOC_CTX *_mem_save_devmode_ctr_0;
20869 TALLOC_CTX *_mem_save_secdesc_ctr_0;
20870 TALLOC_CTX *_mem_save_handle_0;
20871 if (flags & NDR_IN) {
20872 ZERO_STRUCT(r->out);
20874 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
20876 NDR_PULL_ALLOC(ndr, r->in.server);
20878 r->in.server = NULL;
20880 if (r->in.server) {
20881 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
20882 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
20883 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
20884 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
20885 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
20886 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));
20888 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
20889 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
20890 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
20892 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20893 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
20895 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20896 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
20897 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
20898 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
20899 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20900 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
20902 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20903 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
20904 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
20905 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
20906 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20907 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
20909 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20910 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
20911 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
20912 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
20913 NDR_PULL_ALLOC(ndr, r->out.handle);
20914 ZERO_STRUCTP(r->out.handle);
20916 if (flags & NDR_OUT) {
20917 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20918 NDR_PULL_ALLOC(ndr, r->out.handle);
20920 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20921 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
20922 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
20923 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20924 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20926 return NDR_ERR_SUCCESS;
20929 _PUBLIC_ void ndr_print_spoolss_AddPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinter *r)
20931 ndr_print_struct(ndr, name, "spoolss_AddPrinter");
20933 if (flags & NDR_SET_VALUES) {
20934 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20936 if (flags & NDR_IN) {
20937 ndr_print_struct(ndr, "in", "spoolss_AddPrinter");
20939 ndr_print_ptr(ndr, "server", r->in.server);
20941 if (r->in.server) {
20942 ndr_print_string(ndr, "server", r->in.server);
20945 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
20947 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
20949 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
20951 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
20953 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
20955 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
20959 if (flags & NDR_OUT) {
20960 ndr_print_struct(ndr, "out", "spoolss_AddPrinter");
20962 ndr_print_ptr(ndr, "handle", r->out.handle);
20964 ndr_print_policy_handle(ndr, "handle", r->out.handle);
20966 ndr_print_WERROR(ndr, "result", r->out.result);
20972 static enum ndr_err_code ndr_push_spoolss_DeletePrinter(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinter *r)
20974 if (flags & NDR_IN) {
20975 if (r->in.handle == NULL) {
20976 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20978 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20980 if (flags & NDR_OUT) {
20981 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20983 return NDR_ERR_SUCCESS;
20986 static enum ndr_err_code ndr_pull_spoolss_DeletePrinter(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinter *r)
20988 TALLOC_CTX *_mem_save_handle_0;
20989 if (flags & NDR_IN) {
20990 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20991 NDR_PULL_ALLOC(ndr, r->in.handle);
20993 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20994 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20995 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20996 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20998 if (flags & NDR_OUT) {
20999 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21001 return NDR_ERR_SUCCESS;
21004 _PUBLIC_ void ndr_print_spoolss_DeletePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinter *r)
21006 ndr_print_struct(ndr, name, "spoolss_DeletePrinter");
21008 if (flags & NDR_SET_VALUES) {
21009 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21011 if (flags & NDR_IN) {
21012 ndr_print_struct(ndr, "in", "spoolss_DeletePrinter");
21014 ndr_print_ptr(ndr, "handle", r->in.handle);
21016 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21020 if (flags & NDR_OUT) {
21021 ndr_print_struct(ndr, "out", "spoolss_DeletePrinter");
21023 ndr_print_WERROR(ndr, "result", r->out.result);
21029 static enum ndr_err_code ndr_push_spoolss_SetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_SetPrinter *r)
21031 if (flags & NDR_IN) {
21032 if (r->in.handle == NULL) {
21033 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21035 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21036 if (r->in.info_ctr == NULL) {
21037 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21039 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
21040 if (r->in.devmode_ctr == NULL) {
21041 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21043 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
21044 if (r->in.secdesc_ctr == NULL) {
21045 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21047 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
21048 NDR_CHECK(ndr_push_spoolss_PrinterControl(ndr, NDR_SCALARS, r->in.command));
21050 if (flags & NDR_OUT) {
21051 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21053 return NDR_ERR_SUCCESS;
21056 static enum ndr_err_code ndr_pull_spoolss_SetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinter *r)
21058 TALLOC_CTX *_mem_save_handle_0;
21059 TALLOC_CTX *_mem_save_info_ctr_0;
21060 TALLOC_CTX *_mem_save_devmode_ctr_0;
21061 TALLOC_CTX *_mem_save_secdesc_ctr_0;
21062 if (flags & NDR_IN) {
21063 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21064 NDR_PULL_ALLOC(ndr, r->in.handle);
21066 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21067 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21068 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21069 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21070 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21071 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
21073 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
21074 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
21075 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
21076 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
21077 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21078 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
21080 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
21081 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
21082 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
21083 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
21084 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21085 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
21087 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
21088 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
21089 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
21090 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
21091 NDR_CHECK(ndr_pull_spoolss_PrinterControl(ndr, NDR_SCALARS, &r->in.command));
21093 if (flags & NDR_OUT) {
21094 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21096 return NDR_ERR_SUCCESS;
21099 _PUBLIC_ void ndr_print_spoolss_SetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinter *r)
21101 ndr_print_struct(ndr, name, "spoolss_SetPrinter");
21103 if (flags & NDR_SET_VALUES) {
21104 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21106 if (flags & NDR_IN) {
21107 ndr_print_struct(ndr, "in", "spoolss_SetPrinter");
21109 ndr_print_ptr(ndr, "handle", r->in.handle);
21111 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21113 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
21115 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
21117 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
21119 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
21121 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
21123 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
21125 ndr_print_spoolss_PrinterControl(ndr, "command", r->in.command);
21128 if (flags & NDR_OUT) {
21129 ndr_print_struct(ndr, "out", "spoolss_SetPrinter");
21131 ndr_print_WERROR(ndr, "result", r->out.result);
21137 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinter *r)
21139 if (flags & NDR_IN) {
21140 if (r->in.handle == NULL) {
21141 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21143 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21144 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21145 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
21146 if (r->in.buffer) {
21147 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
21149 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21151 if (flags & NDR_OUT) {
21152 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
21155 struct ndr_push *_ndr_info;
21156 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21157 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
21158 NDR_CHECK(ndr_push_spoolss_PrinterInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
21159 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21162 if (r->out.needed == NULL) {
21163 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21165 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21166 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21168 return NDR_ERR_SUCCESS;
21171 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinter *r)
21173 uint32_t _ptr_buffer;
21174 uint32_t _ptr_info;
21175 TALLOC_CTX *_mem_save_handle_0;
21176 TALLOC_CTX *_mem_save_buffer_0;
21177 TALLOC_CTX *_mem_save_info_0;
21178 TALLOC_CTX *_mem_save_needed_0;
21179 if (flags & NDR_IN) {
21180 ZERO_STRUCT(r->out);
21182 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21183 NDR_PULL_ALLOC(ndr, r->in.handle);
21185 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21186 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21187 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21188 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21189 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21190 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
21192 NDR_PULL_ALLOC(ndr, r->in.buffer);
21194 r->in.buffer = NULL;
21196 if (r->in.buffer) {
21197 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21198 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
21199 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
21200 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
21202 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21203 NDR_PULL_ALLOC(ndr, r->out.needed);
21204 ZERO_STRUCTP(r->out.needed);
21206 if (flags & NDR_OUT) {
21207 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
21209 NDR_PULL_ALLOC(ndr, r->out.info);
21211 r->out.info = NULL;
21214 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21215 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21217 struct ndr_pull *_ndr_info;
21218 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21219 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
21220 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
21221 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21223 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21225 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21226 NDR_PULL_ALLOC(ndr, r->out.needed);
21228 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21229 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21230 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21231 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21232 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21234 return NDR_ERR_SUCCESS;
21237 _PUBLIC_ void ndr_print_spoolss_GetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinter *r)
21239 ndr_print_struct(ndr, name, "spoolss_GetPrinter");
21241 if (flags & NDR_SET_VALUES) {
21242 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21244 if (flags & NDR_IN) {
21245 ndr_print_struct(ndr, "in", "spoolss_GetPrinter");
21247 ndr_print_ptr(ndr, "handle", r->in.handle);
21249 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21251 ndr_print_uint32(ndr, "level", r->in.level);
21252 ndr_print_ptr(ndr, "buffer", r->in.buffer);
21254 if (r->in.buffer) {
21255 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
21258 ndr_print_uint32(ndr, "offered", r->in.offered);
21261 if (flags & NDR_OUT) {
21262 ndr_print_struct(ndr, "out", "spoolss_GetPrinter");
21264 ndr_print_ptr(ndr, "info", r->out.info);
21267 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
21268 ndr_print_spoolss_PrinterInfo(ndr, "info", r->out.info);
21271 ndr_print_ptr(ndr, "needed", r->out.needed);
21273 ndr_print_uint32(ndr, "needed", *r->out.needed);
21275 ndr_print_WERROR(ndr, "result", r->out.result);
21281 static enum ndr_err_code ndr_push_spoolss_AddPrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterDriver *r)
21283 if (flags & NDR_IN) {
21284 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
21285 if (r->in.servername) {
21286 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
21287 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21288 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
21289 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21291 if (r->in.info_ctr == NULL) {
21292 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21294 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
21296 if (flags & NDR_OUT) {
21297 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21299 return NDR_ERR_SUCCESS;
21302 static enum ndr_err_code ndr_pull_spoolss_AddPrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterDriver *r)
21304 uint32_t _ptr_servername;
21305 TALLOC_CTX *_mem_save_servername_0;
21306 TALLOC_CTX *_mem_save_info_ctr_0;
21307 if (flags & NDR_IN) {
21308 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
21309 if (_ptr_servername) {
21310 NDR_PULL_ALLOC(ndr, r->in.servername);
21312 r->in.servername = NULL;
21314 if (r->in.servername) {
21315 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
21316 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
21317 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
21318 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
21319 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
21320 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));
21322 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
21323 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
21324 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
21326 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21327 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
21329 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
21330 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
21331 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
21332 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
21334 if (flags & NDR_OUT) {
21335 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21337 return NDR_ERR_SUCCESS;
21340 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterDriver *r)
21342 ndr_print_struct(ndr, name, "spoolss_AddPrinterDriver");
21344 if (flags & NDR_SET_VALUES) {
21345 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21347 if (flags & NDR_IN) {
21348 ndr_print_struct(ndr, "in", "spoolss_AddPrinterDriver");
21350 ndr_print_ptr(ndr, "servername", r->in.servername);
21352 if (r->in.servername) {
21353 ndr_print_string(ndr, "servername", r->in.servername);
21356 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
21358 ndr_print_spoolss_AddDriverInfoCtr(ndr, "info_ctr", r->in.info_ctr);
21362 if (flags & NDR_OUT) {
21363 ndr_print_struct(ndr, "out", "spoolss_AddPrinterDriver");
21365 ndr_print_WERROR(ndr, "result", r->out.result);
21371 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinterDrivers(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinterDrivers *r)
21373 if (flags & NDR_IN) {
21374 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
21375 if (r->in.server) {
21376 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21377 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21378 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21379 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21381 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
21382 if (r->in.environment) {
21383 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
21384 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21385 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
21386 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21388 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21389 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
21390 if (r->in.buffer) {
21391 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
21393 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21395 if (flags & NDR_OUT) {
21396 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
21398 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
21400 if (r->out.needed == NULL) {
21401 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21403 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21404 if (r->out.count == NULL) {
21405 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21407 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
21408 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21410 return NDR_ERR_SUCCESS;
21413 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinterDrivers *r)
21415 uint32_t _ptr_server;
21416 uint32_t _ptr_environment;
21417 uint32_t _ptr_buffer;
21418 uint32_t _ptr_info;
21419 TALLOC_CTX *_mem_save_server_0;
21420 TALLOC_CTX *_mem_save_environment_0;
21421 TALLOC_CTX *_mem_save_buffer_0;
21422 TALLOC_CTX *_mem_save_info_0;
21423 TALLOC_CTX *_mem_save_needed_0;
21424 TALLOC_CTX *_mem_save_count_0;
21425 if (flags & NDR_IN) {
21426 ZERO_STRUCT(r->out);
21428 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
21430 NDR_PULL_ALLOC(ndr, r->in.server);
21432 r->in.server = NULL;
21434 if (r->in.server) {
21435 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
21436 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
21437 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
21438 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
21439 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
21440 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));
21442 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
21443 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
21444 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
21446 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
21447 if (_ptr_environment) {
21448 NDR_PULL_ALLOC(ndr, r->in.environment);
21450 r->in.environment = NULL;
21452 if (r->in.environment) {
21453 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
21454 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
21455 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
21456 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
21457 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
21458 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));
21460 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
21461 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
21462 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
21464 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21465 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
21467 NDR_PULL_ALLOC(ndr, r->in.buffer);
21469 r->in.buffer = NULL;
21471 if (r->in.buffer) {
21472 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21473 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
21474 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
21475 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
21477 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21478 NDR_PULL_ALLOC(ndr, r->out.needed);
21479 ZERO_STRUCTP(r->out.needed);
21480 NDR_PULL_ALLOC(ndr, r->out.count);
21481 ZERO_STRUCTP(r->out.count);
21483 if (flags & NDR_OUT) {
21484 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
21486 NDR_PULL_ALLOC(ndr, r->out.info);
21488 r->out.info = NULL;
21491 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21492 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21493 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
21494 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21496 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21497 NDR_PULL_ALLOC(ndr, r->out.needed);
21499 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21500 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21501 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21502 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21503 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21504 NDR_PULL_ALLOC(ndr, r->out.count);
21506 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
21507 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
21508 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
21509 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
21510 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21512 return NDR_ERR_SUCCESS;
21515 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinterDrivers(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinterDrivers *r)
21517 uint32_t cntr_info_0;
21518 if (flags & NDR_IN) {
21519 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21520 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
21522 if (flags & NDR_OUT) {
21523 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21524 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
21525 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
21527 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21528 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
21531 return NDR_ERR_SUCCESS;
21534 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinterDrivers *r)
21536 uint32_t cntr_info_0;
21537 TALLOC_CTX *_mem_save_info_0;
21538 if (flags & NDR_IN) {
21539 ZERO_STRUCT(r->out);
21541 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21542 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
21544 if (flags & NDR_OUT) {
21545 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
21546 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21547 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21548 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21549 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
21550 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
21552 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21553 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
21555 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21557 return NDR_ERR_SUCCESS;
21560 _PUBLIC_ void ndr_print_spoolss_EnumPrinterDrivers(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterDrivers *r)
21562 uint32_t cntr_info_2;
21563 ndr_print_struct(ndr, name, "spoolss_EnumPrinterDrivers");
21565 if (flags & NDR_SET_VALUES) {
21566 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21568 if (flags & NDR_IN) {
21569 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterDrivers");
21571 ndr_print_ptr(ndr, "server", r->in.server);
21573 if (r->in.server) {
21574 ndr_print_string(ndr, "server", r->in.server);
21577 ndr_print_ptr(ndr, "environment", r->in.environment);
21579 if (r->in.environment) {
21580 ndr_print_string(ndr, "environment", r->in.environment);
21583 ndr_print_uint32(ndr, "level", r->in.level);
21584 ndr_print_ptr(ndr, "buffer", r->in.buffer);
21586 if (r->in.buffer) {
21587 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
21590 ndr_print_uint32(ndr, "offered", r->in.offered);
21593 if (flags & NDR_OUT) {
21594 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterDrivers");
21596 ndr_print_ptr(ndr, "count", r->out.count);
21598 ndr_print_uint32(ndr, "count", *r->out.count);
21600 ndr_print_ptr(ndr, "info", r->out.info);
21602 ndr_print_ptr(ndr, "info", *r->out.info);
21604 if (*r->out.info) {
21605 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
21607 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
21609 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
21610 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
21611 ndr_print_spoolss_DriverInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
21619 ndr_print_ptr(ndr, "needed", r->out.needed);
21621 ndr_print_uint32(ndr, "needed", *r->out.needed);
21623 ndr_print_WERROR(ndr, "result", r->out.result);
21629 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriver *r)
21631 if (flags & NDR_IN) {
21632 if (r->in.handle == NULL) {
21633 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21635 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21636 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.architecture));
21637 if (r->in.architecture) {
21638 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
21639 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21640 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
21641 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21643 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21644 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
21645 if (r->in.buffer) {
21646 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
21648 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21650 if (flags & NDR_OUT) {
21651 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
21654 struct ndr_push *_ndr_info;
21655 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21656 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
21657 NDR_CHECK(ndr_push_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
21658 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21661 if (r->out.needed == NULL) {
21662 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21664 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21665 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21667 return NDR_ERR_SUCCESS;
21670 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriver *r)
21672 uint32_t _ptr_architecture;
21673 uint32_t _ptr_buffer;
21674 uint32_t _ptr_info;
21675 TALLOC_CTX *_mem_save_handle_0;
21676 TALLOC_CTX *_mem_save_architecture_0;
21677 TALLOC_CTX *_mem_save_buffer_0;
21678 TALLOC_CTX *_mem_save_info_0;
21679 TALLOC_CTX *_mem_save_needed_0;
21680 if (flags & NDR_IN) {
21681 ZERO_STRUCT(r->out);
21683 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21684 NDR_PULL_ALLOC(ndr, r->in.handle);
21686 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21687 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21688 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21689 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21690 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
21691 if (_ptr_architecture) {
21692 NDR_PULL_ALLOC(ndr, r->in.architecture);
21694 r->in.architecture = NULL;
21696 if (r->in.architecture) {
21697 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
21698 NDR_PULL_SET_MEM_CTX(ndr, r->in.architecture, 0);
21699 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
21700 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
21701 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
21702 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));
21704 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
21705 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
21706 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
21708 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21709 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
21711 NDR_PULL_ALLOC(ndr, r->in.buffer);
21713 r->in.buffer = NULL;
21715 if (r->in.buffer) {
21716 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21717 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
21718 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
21719 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
21721 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21722 NDR_PULL_ALLOC(ndr, r->out.needed);
21723 ZERO_STRUCTP(r->out.needed);
21725 if (flags & NDR_OUT) {
21726 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
21728 NDR_PULL_ALLOC(ndr, r->out.info);
21730 r->out.info = NULL;
21733 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21734 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21736 struct ndr_pull *_ndr_info;
21737 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21738 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
21739 NDR_CHECK(ndr_pull_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
21740 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21742 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21744 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21745 NDR_PULL_ALLOC(ndr, r->out.needed);
21747 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21748 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21749 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21750 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21751 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21753 return NDR_ERR_SUCCESS;
21756 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriver *r)
21758 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriver");
21760 if (flags & NDR_SET_VALUES) {
21761 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21763 if (flags & NDR_IN) {
21764 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriver");
21766 ndr_print_ptr(ndr, "handle", r->in.handle);
21768 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21770 ndr_print_ptr(ndr, "architecture", r->in.architecture);
21772 if (r->in.architecture) {
21773 ndr_print_string(ndr, "architecture", r->in.architecture);
21776 ndr_print_uint32(ndr, "level", r->in.level);
21777 ndr_print_ptr(ndr, "buffer", r->in.buffer);
21779 if (r->in.buffer) {
21780 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
21783 ndr_print_uint32(ndr, "offered", r->in.offered);
21786 if (flags & NDR_OUT) {
21787 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriver");
21789 ndr_print_ptr(ndr, "info", r->out.info);
21792 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
21793 ndr_print_spoolss_DriverInfo(ndr, "info", r->out.info);
21796 ndr_print_ptr(ndr, "needed", r->out.needed);
21798 ndr_print_uint32(ndr, "needed", *r->out.needed);
21800 ndr_print_WERROR(ndr, "result", r->out.result);
21806 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinterDriverDirectory(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriverDirectory *r)
21808 if (flags & NDR_IN) {
21809 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
21810 if (r->in.server) {
21811 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21812 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21813 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21814 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21816 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
21817 if (r->in.environment) {
21818 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
21819 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21820 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
21821 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21823 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21824 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
21825 if (r->in.buffer) {
21826 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
21828 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21830 if (flags & NDR_OUT) {
21831 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
21834 struct ndr_push *_ndr_info;
21835 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21836 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
21837 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
21838 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21841 if (r->out.needed == NULL) {
21842 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21844 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21845 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21847 return NDR_ERR_SUCCESS;
21850 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinterDriverDirectory(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriverDirectory *r)
21852 uint32_t _ptr_server;
21853 uint32_t _ptr_environment;
21854 uint32_t _ptr_buffer;
21855 uint32_t _ptr_info;
21856 TALLOC_CTX *_mem_save_server_0;
21857 TALLOC_CTX *_mem_save_environment_0;
21858 TALLOC_CTX *_mem_save_buffer_0;
21859 TALLOC_CTX *_mem_save_info_0;
21860 TALLOC_CTX *_mem_save_needed_0;
21861 if (flags & NDR_IN) {
21862 ZERO_STRUCT(r->out);
21864 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
21866 NDR_PULL_ALLOC(ndr, r->in.server);
21868 r->in.server = NULL;
21870 if (r->in.server) {
21871 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
21872 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
21873 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
21874 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
21875 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
21876 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));
21878 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
21879 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
21880 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
21882 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
21883 if (_ptr_environment) {
21884 NDR_PULL_ALLOC(ndr, r->in.environment);
21886 r->in.environment = NULL;
21888 if (r->in.environment) {
21889 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
21890 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
21891 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
21892 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
21893 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
21894 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));
21896 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
21897 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
21898 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
21900 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21901 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
21903 NDR_PULL_ALLOC(ndr, r->in.buffer);
21905 r->in.buffer = NULL;
21907 if (r->in.buffer) {
21908 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21909 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
21910 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
21911 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
21913 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21914 NDR_PULL_ALLOC(ndr, r->out.needed);
21915 ZERO_STRUCTP(r->out.needed);
21917 if (flags & NDR_OUT) {
21918 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
21920 NDR_PULL_ALLOC(ndr, r->out.info);
21922 r->out.info = NULL;
21925 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21926 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21928 struct ndr_pull *_ndr_info;
21929 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21930 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
21931 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
21932 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21934 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21936 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21937 NDR_PULL_ALLOC(ndr, r->out.needed);
21939 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21940 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21941 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21942 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21943 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21945 return NDR_ERR_SUCCESS;
21948 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriverDirectory(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriverDirectory *r)
21950 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriverDirectory");
21952 if (flags & NDR_SET_VALUES) {
21953 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21955 if (flags & NDR_IN) {
21956 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriverDirectory");
21958 ndr_print_ptr(ndr, "server", r->in.server);
21960 if (r->in.server) {
21961 ndr_print_string(ndr, "server", r->in.server);
21964 ndr_print_ptr(ndr, "environment", r->in.environment);
21966 if (r->in.environment) {
21967 ndr_print_string(ndr, "environment", r->in.environment);
21970 ndr_print_uint32(ndr, "level", r->in.level);
21971 ndr_print_ptr(ndr, "buffer", r->in.buffer);
21973 if (r->in.buffer) {
21974 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
21977 ndr_print_uint32(ndr, "offered", r->in.offered);
21980 if (flags & NDR_OUT) {
21981 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriverDirectory");
21983 ndr_print_ptr(ndr, "info", r->out.info);
21986 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
21987 ndr_print_spoolss_DriverDirectoryInfo(ndr, "info", r->out.info);
21990 ndr_print_ptr(ndr, "needed", r->out.needed);
21992 ndr_print_uint32(ndr, "needed", *r->out.needed);
21994 ndr_print_WERROR(ndr, "result", r->out.result);
22000 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDriver *r)
22002 if (flags & NDR_IN) {
22003 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
22004 if (r->in.server) {
22005 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22006 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22007 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22008 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22010 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
22011 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22012 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
22013 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22014 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
22015 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22016 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
22017 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver, ndr_charset_length(r->in.driver, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22019 if (flags & NDR_OUT) {
22020 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22022 return NDR_ERR_SUCCESS;
22025 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDriver *r)
22027 uint32_t _ptr_server;
22028 TALLOC_CTX *_mem_save_server_0;
22029 if (flags & NDR_IN) {
22030 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
22032 NDR_PULL_ALLOC(ndr, r->in.server);
22034 r->in.server = NULL;
22036 if (r->in.server) {
22037 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
22038 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
22039 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
22040 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
22041 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
22042 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));
22044 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
22045 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
22046 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
22048 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
22049 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
22050 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
22051 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));
22053 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
22054 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
22055 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver));
22056 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.driver));
22057 if (ndr_get_array_length(ndr, &r->in.driver) > ndr_get_array_size(ndr, &r->in.driver)) {
22058 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));
22060 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t)));
22061 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t), CH_UTF16));
22063 if (flags & NDR_OUT) {
22064 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22066 return NDR_ERR_SUCCESS;
22069 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDriver *r)
22071 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDriver");
22073 if (flags & NDR_SET_VALUES) {
22074 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22076 if (flags & NDR_IN) {
22077 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDriver");
22079 ndr_print_ptr(ndr, "server", r->in.server);
22081 if (r->in.server) {
22082 ndr_print_string(ndr, "server", r->in.server);
22085 ndr_print_string(ndr, "architecture", r->in.architecture);
22086 ndr_print_string(ndr, "driver", r->in.driver);
22089 if (flags & NDR_OUT) {
22090 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDriver");
22092 ndr_print_WERROR(ndr, "result", r->out.result);
22098 static enum ndr_err_code ndr_push_spoolss_AddPrintProcessor(struct ndr_push *ndr, int flags, const struct spoolss_AddPrintProcessor *r)
22100 if (flags & NDR_IN) {
22101 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
22102 if (r->in.server) {
22103 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22104 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22105 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22106 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22108 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
22109 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22110 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
22111 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22112 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.path_name, CH_UTF16)));
22113 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22114 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.path_name, CH_UTF16)));
22115 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));
22116 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
22117 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22118 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
22119 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));
22121 if (flags & NDR_OUT) {
22122 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22124 return NDR_ERR_SUCCESS;
22127 static enum ndr_err_code ndr_pull_spoolss_AddPrintProcessor(struct ndr_pull *ndr, int flags, struct spoolss_AddPrintProcessor *r)
22129 uint32_t _ptr_server;
22130 TALLOC_CTX *_mem_save_server_0;
22131 if (flags & NDR_IN) {
22132 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
22134 NDR_PULL_ALLOC(ndr, r->in.server);
22136 r->in.server = NULL;
22138 if (r->in.server) {
22139 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
22140 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
22141 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
22142 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
22143 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
22144 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));
22146 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
22147 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
22148 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
22150 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
22151 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
22152 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
22153 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));
22155 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
22156 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
22157 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.path_name));
22158 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.path_name));
22159 if (ndr_get_array_length(ndr, &r->in.path_name) > ndr_get_array_size(ndr, &r->in.path_name)) {
22160 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));
22162 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.path_name), sizeof(uint16_t)));
22163 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));
22164 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.print_processor_name));
22165 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.print_processor_name));
22166 if (ndr_get_array_length(ndr, &r->in.print_processor_name) > ndr_get_array_size(ndr, &r->in.print_processor_name)) {
22167 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));
22169 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.print_processor_name), sizeof(uint16_t)));
22170 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));
22172 if (flags & NDR_OUT) {
22173 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22175 return NDR_ERR_SUCCESS;
22178 _PUBLIC_ void ndr_print_spoolss_AddPrintProcessor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrintProcessor *r)
22180 ndr_print_struct(ndr, name, "spoolss_AddPrintProcessor");
22182 if (flags & NDR_SET_VALUES) {
22183 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22185 if (flags & NDR_IN) {
22186 ndr_print_struct(ndr, "in", "spoolss_AddPrintProcessor");
22188 ndr_print_ptr(ndr, "server", r->in.server);
22190 if (r->in.server) {
22191 ndr_print_string(ndr, "server", r->in.server);
22194 ndr_print_string(ndr, "architecture", r->in.architecture);
22195 ndr_print_string(ndr, "path_name", r->in.path_name);
22196 ndr_print_string(ndr, "print_processor_name", r->in.print_processor_name);
22199 if (flags & NDR_OUT) {
22200 ndr_print_struct(ndr, "out", "spoolss_AddPrintProcessor");
22202 ndr_print_WERROR(ndr, "result", r->out.result);
22208 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrintProcessors(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrintProcessors *r)
22210 if (flags & NDR_IN) {
22211 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
22212 if (r->in.servername) {
22213 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
22214 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22215 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
22216 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22218 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
22219 if (r->in.environment) {
22220 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
22221 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22222 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
22223 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22225 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22226 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
22227 if (r->in.buffer) {
22228 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
22230 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22232 if (flags & NDR_OUT) {
22233 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
22235 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
22237 if (r->out.needed == NULL) {
22238 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22240 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22241 if (r->out.count == NULL) {
22242 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22244 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
22245 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22247 return NDR_ERR_SUCCESS;
22250 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrintProcessors(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrintProcessors *r)
22252 uint32_t _ptr_servername;
22253 uint32_t _ptr_environment;
22254 uint32_t _ptr_buffer;
22255 uint32_t _ptr_info;
22256 TALLOC_CTX *_mem_save_servername_0;
22257 TALLOC_CTX *_mem_save_environment_0;
22258 TALLOC_CTX *_mem_save_buffer_0;
22259 TALLOC_CTX *_mem_save_info_0;
22260 TALLOC_CTX *_mem_save_needed_0;
22261 TALLOC_CTX *_mem_save_count_0;
22262 if (flags & NDR_IN) {
22263 ZERO_STRUCT(r->out);
22265 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
22266 if (_ptr_servername) {
22267 NDR_PULL_ALLOC(ndr, r->in.servername);
22269 r->in.servername = NULL;
22271 if (r->in.servername) {
22272 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
22273 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
22274 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
22275 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
22276 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
22277 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));
22279 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
22280 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
22281 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
22283 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
22284 if (_ptr_environment) {
22285 NDR_PULL_ALLOC(ndr, r->in.environment);
22287 r->in.environment = NULL;
22289 if (r->in.environment) {
22290 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
22291 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
22292 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
22293 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
22294 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
22295 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));
22297 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
22298 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
22299 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
22301 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22302 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
22304 NDR_PULL_ALLOC(ndr, r->in.buffer);
22306 r->in.buffer = NULL;
22308 if (r->in.buffer) {
22309 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
22310 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
22311 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
22312 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22314 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22315 NDR_PULL_ALLOC(ndr, r->out.needed);
22316 ZERO_STRUCTP(r->out.needed);
22317 NDR_PULL_ALLOC(ndr, r->out.count);
22318 ZERO_STRUCTP(r->out.count);
22320 if (flags & NDR_OUT) {
22321 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
22323 NDR_PULL_ALLOC(ndr, r->out.info);
22325 r->out.info = NULL;
22328 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22329 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22330 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
22331 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22333 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22334 NDR_PULL_ALLOC(ndr, r->out.needed);
22336 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22337 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22338 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22339 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22340 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22341 NDR_PULL_ALLOC(ndr, r->out.count);
22343 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
22344 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
22345 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
22346 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
22347 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22349 return NDR_ERR_SUCCESS;
22352 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrintProcessors(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrintProcessors *r)
22354 uint32_t cntr_info_0;
22355 if (flags & NDR_IN) {
22356 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22357 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
22359 if (flags & NDR_OUT) {
22360 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22361 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
22362 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
22364 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22365 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
22368 return NDR_ERR_SUCCESS;
22371 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrintProcessors(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrintProcessors *r)
22373 uint32_t cntr_info_0;
22374 TALLOC_CTX *_mem_save_info_0;
22375 if (flags & NDR_IN) {
22376 ZERO_STRUCT(r->out);
22378 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22379 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
22381 if (flags & NDR_OUT) {
22382 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
22383 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22384 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22385 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22386 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
22387 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
22389 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22390 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
22392 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22394 return NDR_ERR_SUCCESS;
22397 _PUBLIC_ void ndr_print_spoolss_EnumPrintProcessors(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrintProcessors *r)
22399 uint32_t cntr_info_2;
22400 ndr_print_struct(ndr, name, "spoolss_EnumPrintProcessors");
22402 if (flags & NDR_SET_VALUES) {
22403 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22405 if (flags & NDR_IN) {
22406 ndr_print_struct(ndr, "in", "spoolss_EnumPrintProcessors");
22408 ndr_print_ptr(ndr, "servername", r->in.servername);
22410 if (r->in.servername) {
22411 ndr_print_string(ndr, "servername", r->in.servername);
22414 ndr_print_ptr(ndr, "environment", r->in.environment);
22416 if (r->in.environment) {
22417 ndr_print_string(ndr, "environment", r->in.environment);
22420 ndr_print_uint32(ndr, "level", r->in.level);
22421 ndr_print_ptr(ndr, "buffer", r->in.buffer);
22423 if (r->in.buffer) {
22424 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
22427 ndr_print_uint32(ndr, "offered", r->in.offered);
22430 if (flags & NDR_OUT) {
22431 ndr_print_struct(ndr, "out", "spoolss_EnumPrintProcessors");
22433 ndr_print_ptr(ndr, "count", r->out.count);
22435 ndr_print_uint32(ndr, "count", *r->out.count);
22437 ndr_print_ptr(ndr, "info", r->out.info);
22439 ndr_print_ptr(ndr, "info", *r->out.info);
22441 if (*r->out.info) {
22442 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
22444 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
22446 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
22447 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
22448 ndr_print_spoolss_PrintProcessorInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
22456 ndr_print_ptr(ndr, "needed", r->out.needed);
22458 ndr_print_uint32(ndr, "needed", *r->out.needed);
22460 ndr_print_WERROR(ndr, "result", r->out.result);
22466 static enum ndr_err_code ndr_push_spoolss_GetPrintProcessorDirectory(struct ndr_push *ndr, int flags, const struct spoolss_GetPrintProcessorDirectory *r)
22468 if (flags & NDR_IN) {
22469 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
22470 if (r->in.server) {
22471 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22472 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22473 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22474 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22476 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
22477 if (r->in.environment) {
22478 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
22479 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22480 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
22481 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22483 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22484 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
22485 if (r->in.buffer) {
22486 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
22488 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22490 if (flags & NDR_OUT) {
22491 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
22494 struct ndr_push *_ndr_info;
22495 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
22496 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
22497 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
22498 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
22501 if (r->out.needed == NULL) {
22502 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22504 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22505 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22507 return NDR_ERR_SUCCESS;
22510 static enum ndr_err_code ndr_pull_spoolss_GetPrintProcessorDirectory(struct ndr_pull *ndr, int flags, struct spoolss_GetPrintProcessorDirectory *r)
22512 uint32_t _ptr_server;
22513 uint32_t _ptr_environment;
22514 uint32_t _ptr_buffer;
22515 uint32_t _ptr_info;
22516 TALLOC_CTX *_mem_save_server_0;
22517 TALLOC_CTX *_mem_save_environment_0;
22518 TALLOC_CTX *_mem_save_buffer_0;
22519 TALLOC_CTX *_mem_save_info_0;
22520 TALLOC_CTX *_mem_save_needed_0;
22521 if (flags & NDR_IN) {
22522 ZERO_STRUCT(r->out);
22524 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
22526 NDR_PULL_ALLOC(ndr, r->in.server);
22528 r->in.server = NULL;
22530 if (r->in.server) {
22531 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
22532 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
22533 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
22534 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
22535 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
22536 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));
22538 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
22539 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
22540 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
22542 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
22543 if (_ptr_environment) {
22544 NDR_PULL_ALLOC(ndr, r->in.environment);
22546 r->in.environment = NULL;
22548 if (r->in.environment) {
22549 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
22550 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
22551 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
22552 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
22553 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
22554 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));
22556 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
22557 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
22558 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
22560 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22561 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
22563 NDR_PULL_ALLOC(ndr, r->in.buffer);
22565 r->in.buffer = NULL;
22567 if (r->in.buffer) {
22568 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
22569 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
22570 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
22571 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22573 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22574 NDR_PULL_ALLOC(ndr, r->out.needed);
22575 ZERO_STRUCTP(r->out.needed);
22577 if (flags & NDR_OUT) {
22578 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
22580 NDR_PULL_ALLOC(ndr, r->out.info);
22582 r->out.info = NULL;
22585 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22586 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22588 struct ndr_pull *_ndr_info;
22589 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
22590 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
22591 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
22592 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
22594 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22596 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22597 NDR_PULL_ALLOC(ndr, r->out.needed);
22599 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22600 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22601 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22602 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22603 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22605 return NDR_ERR_SUCCESS;
22608 _PUBLIC_ void ndr_print_spoolss_GetPrintProcessorDirectory(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrintProcessorDirectory *r)
22610 ndr_print_struct(ndr, name, "spoolss_GetPrintProcessorDirectory");
22612 if (flags & NDR_SET_VALUES) {
22613 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22615 if (flags & NDR_IN) {
22616 ndr_print_struct(ndr, "in", "spoolss_GetPrintProcessorDirectory");
22618 ndr_print_ptr(ndr, "server", r->in.server);
22620 if (r->in.server) {
22621 ndr_print_string(ndr, "server", r->in.server);
22624 ndr_print_ptr(ndr, "environment", r->in.environment);
22626 if (r->in.environment) {
22627 ndr_print_string(ndr, "environment", r->in.environment);
22630 ndr_print_uint32(ndr, "level", r->in.level);
22631 ndr_print_ptr(ndr, "buffer", r->in.buffer);
22633 if (r->in.buffer) {
22634 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
22637 ndr_print_uint32(ndr, "offered", r->in.offered);
22640 if (flags & NDR_OUT) {
22641 ndr_print_struct(ndr, "out", "spoolss_GetPrintProcessorDirectory");
22643 ndr_print_ptr(ndr, "info", r->out.info);
22646 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
22647 ndr_print_spoolss_PrintProcessorDirectoryInfo(ndr, "info", r->out.info);
22650 ndr_print_ptr(ndr, "needed", r->out.needed);
22652 ndr_print_uint32(ndr, "needed", *r->out.needed);
22654 ndr_print_WERROR(ndr, "result", r->out.result);
22660 static enum ndr_err_code ndr_push_spoolss_StartDocPrinter(struct ndr_push *ndr, int flags, const struct spoolss_StartDocPrinter *r)
22662 if (flags & NDR_IN) {
22663 if (r->in.handle == NULL) {
22664 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22666 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22667 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22668 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
22669 NDR_CHECK(ndr_push_spoolss_DocumentInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
22671 if (flags & NDR_OUT) {
22672 if (r->out.job_id == NULL) {
22673 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22675 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.job_id));
22676 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22678 return NDR_ERR_SUCCESS;
22681 static enum ndr_err_code ndr_pull_spoolss_StartDocPrinter(struct ndr_pull *ndr, int flags, struct spoolss_StartDocPrinter *r)
22683 TALLOC_CTX *_mem_save_handle_0;
22684 TALLOC_CTX *_mem_save_job_id_0;
22685 if (flags & NDR_IN) {
22686 ZERO_STRUCT(r->out);
22688 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22689 NDR_PULL_ALLOC(ndr, r->in.handle);
22691 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22692 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22693 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22694 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22695 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22696 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
22697 NDR_CHECK(ndr_pull_spoolss_DocumentInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
22698 NDR_PULL_ALLOC(ndr, r->out.job_id);
22699 ZERO_STRUCTP(r->out.job_id);
22701 if (flags & NDR_OUT) {
22702 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22703 NDR_PULL_ALLOC(ndr, r->out.job_id);
22705 _mem_save_job_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
22706 NDR_PULL_SET_MEM_CTX(ndr, r->out.job_id, LIBNDR_FLAG_REF_ALLOC);
22707 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.job_id));
22708 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_job_id_0, LIBNDR_FLAG_REF_ALLOC);
22709 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22711 return NDR_ERR_SUCCESS;
22714 _PUBLIC_ void ndr_print_spoolss_StartDocPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_StartDocPrinter *r)
22716 ndr_print_struct(ndr, name, "spoolss_StartDocPrinter");
22718 if (flags & NDR_SET_VALUES) {
22719 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22721 if (flags & NDR_IN) {
22722 ndr_print_struct(ndr, "in", "spoolss_StartDocPrinter");
22724 ndr_print_ptr(ndr, "handle", r->in.handle);
22726 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22728 ndr_print_uint32(ndr, "level", r->in.level);
22729 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
22730 ndr_print_spoolss_DocumentInfo(ndr, "info", &r->in.info);
22733 if (flags & NDR_OUT) {
22734 ndr_print_struct(ndr, "out", "spoolss_StartDocPrinter");
22736 ndr_print_ptr(ndr, "job_id", r->out.job_id);
22738 ndr_print_uint32(ndr, "job_id", *r->out.job_id);
22740 ndr_print_WERROR(ndr, "result", r->out.result);
22746 static enum ndr_err_code ndr_push_spoolss_StartPagePrinter(struct ndr_push *ndr, int flags, const struct spoolss_StartPagePrinter *r)
22748 if (flags & NDR_IN) {
22749 if (r->in.handle == NULL) {
22750 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22752 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22754 if (flags & NDR_OUT) {
22755 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22757 return NDR_ERR_SUCCESS;
22760 static enum ndr_err_code ndr_pull_spoolss_StartPagePrinter(struct ndr_pull *ndr, int flags, struct spoolss_StartPagePrinter *r)
22762 TALLOC_CTX *_mem_save_handle_0;
22763 if (flags & NDR_IN) {
22764 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22765 NDR_PULL_ALLOC(ndr, r->in.handle);
22767 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22768 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22769 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22770 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22772 if (flags & NDR_OUT) {
22773 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22775 return NDR_ERR_SUCCESS;
22778 _PUBLIC_ void ndr_print_spoolss_StartPagePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_StartPagePrinter *r)
22780 ndr_print_struct(ndr, name, "spoolss_StartPagePrinter");
22782 if (flags & NDR_SET_VALUES) {
22783 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22785 if (flags & NDR_IN) {
22786 ndr_print_struct(ndr, "in", "spoolss_StartPagePrinter");
22788 ndr_print_ptr(ndr, "handle", r->in.handle);
22790 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22794 if (flags & NDR_OUT) {
22795 ndr_print_struct(ndr, "out", "spoolss_StartPagePrinter");
22797 ndr_print_WERROR(ndr, "result", r->out.result);
22803 static enum ndr_err_code ndr_push_spoolss_WritePrinter(struct ndr_push *ndr, int flags, const struct spoolss_WritePrinter *r)
22805 if (flags & NDR_IN) {
22806 if (r->in.handle == NULL) {
22807 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22809 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22810 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
22811 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data.length));
22813 if (flags & NDR_OUT) {
22814 if (r->out.num_written == NULL) {
22815 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22817 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.num_written));
22818 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22820 return NDR_ERR_SUCCESS;
22823 static enum ndr_err_code ndr_pull_spoolss_WritePrinter(struct ndr_pull *ndr, int flags, struct spoolss_WritePrinter *r)
22825 TALLOC_CTX *_mem_save_handle_0;
22826 TALLOC_CTX *_mem_save_num_written_0;
22827 if (flags & NDR_IN) {
22828 ZERO_STRUCT(r->out);
22830 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22831 NDR_PULL_ALLOC(ndr, r->in.handle);
22833 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22834 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22835 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22836 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22837 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->in.data));
22838 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._data_size));
22839 NDR_PULL_ALLOC(ndr, r->out.num_written);
22840 ZERO_STRUCTP(r->out.num_written);
22842 if (flags & NDR_OUT) {
22843 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22844 NDR_PULL_ALLOC(ndr, r->out.num_written);
22846 _mem_save_num_written_0 = NDR_PULL_GET_MEM_CTX(ndr);
22847 NDR_PULL_SET_MEM_CTX(ndr, r->out.num_written, LIBNDR_FLAG_REF_ALLOC);
22848 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.num_written));
22849 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_num_written_0, LIBNDR_FLAG_REF_ALLOC);
22850 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22852 return NDR_ERR_SUCCESS;
22855 _PUBLIC_ void ndr_print_spoolss_WritePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_WritePrinter *r)
22857 ndr_print_struct(ndr, name, "spoolss_WritePrinter");
22859 if (flags & NDR_SET_VALUES) {
22860 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22862 if (flags & NDR_IN) {
22863 ndr_print_struct(ndr, "in", "spoolss_WritePrinter");
22865 ndr_print_ptr(ndr, "handle", r->in.handle);
22867 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22869 ndr_print_DATA_BLOB(ndr, "data", r->in.data);
22870 ndr_print_uint32(ndr, "_data_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->in.data.length:r->in._data_size);
22873 if (flags & NDR_OUT) {
22874 ndr_print_struct(ndr, "out", "spoolss_WritePrinter");
22876 ndr_print_ptr(ndr, "num_written", r->out.num_written);
22878 ndr_print_uint32(ndr, "num_written", *r->out.num_written);
22880 ndr_print_WERROR(ndr, "result", r->out.result);
22886 static enum ndr_err_code ndr_push_spoolss_EndPagePrinter(struct ndr_push *ndr, int flags, const struct spoolss_EndPagePrinter *r)
22888 if (flags & NDR_IN) {
22889 if (r->in.handle == NULL) {
22890 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22892 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22894 if (flags & NDR_OUT) {
22895 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22897 return NDR_ERR_SUCCESS;
22900 static enum ndr_err_code ndr_pull_spoolss_EndPagePrinter(struct ndr_pull *ndr, int flags, struct spoolss_EndPagePrinter *r)
22902 TALLOC_CTX *_mem_save_handle_0;
22903 if (flags & NDR_IN) {
22904 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22905 NDR_PULL_ALLOC(ndr, r->in.handle);
22907 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22908 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22909 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22910 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22912 if (flags & NDR_OUT) {
22913 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22915 return NDR_ERR_SUCCESS;
22918 _PUBLIC_ void ndr_print_spoolss_EndPagePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EndPagePrinter *r)
22920 ndr_print_struct(ndr, name, "spoolss_EndPagePrinter");
22922 if (flags & NDR_SET_VALUES) {
22923 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22925 if (flags & NDR_IN) {
22926 ndr_print_struct(ndr, "in", "spoolss_EndPagePrinter");
22928 ndr_print_ptr(ndr, "handle", r->in.handle);
22930 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22934 if (flags & NDR_OUT) {
22935 ndr_print_struct(ndr, "out", "spoolss_EndPagePrinter");
22937 ndr_print_WERROR(ndr, "result", r->out.result);
22943 static enum ndr_err_code ndr_push_spoolss_AbortPrinter(struct ndr_push *ndr, int flags, const struct spoolss_AbortPrinter *r)
22945 if (flags & NDR_IN) {
22946 if (r->in.handle == NULL) {
22947 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22949 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22951 if (flags & NDR_OUT) {
22952 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22954 return NDR_ERR_SUCCESS;
22957 static enum ndr_err_code ndr_pull_spoolss_AbortPrinter(struct ndr_pull *ndr, int flags, struct spoolss_AbortPrinter *r)
22959 TALLOC_CTX *_mem_save_handle_0;
22960 if (flags & NDR_IN) {
22961 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22962 NDR_PULL_ALLOC(ndr, r->in.handle);
22964 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22965 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22966 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22967 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22969 if (flags & NDR_OUT) {
22970 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22972 return NDR_ERR_SUCCESS;
22975 _PUBLIC_ void ndr_print_spoolss_AbortPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AbortPrinter *r)
22977 ndr_print_struct(ndr, name, "spoolss_AbortPrinter");
22979 if (flags & NDR_SET_VALUES) {
22980 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22982 if (flags & NDR_IN) {
22983 ndr_print_struct(ndr, "in", "spoolss_AbortPrinter");
22985 ndr_print_ptr(ndr, "handle", r->in.handle);
22987 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22991 if (flags & NDR_OUT) {
22992 ndr_print_struct(ndr, "out", "spoolss_AbortPrinter");
22994 ndr_print_WERROR(ndr, "result", r->out.result);
23000 static enum ndr_err_code ndr_push_spoolss_ReadPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReadPrinter *r)
23002 if (flags & NDR_IN) {
23003 if (r->in.handle == NULL) {
23004 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23006 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23007 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_size));
23009 if (flags & NDR_OUT) {
23010 if (r->out.data == NULL) {
23011 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23013 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.data_size));
23014 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->in.data_size));
23015 if (r->out._data_size == NULL) {
23016 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23018 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out._data_size));
23019 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23021 return NDR_ERR_SUCCESS;
23024 static enum ndr_err_code ndr_pull_spoolss_ReadPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReadPrinter *r)
23026 TALLOC_CTX *_mem_save_handle_0;
23027 TALLOC_CTX *_mem_save__data_size_0;
23028 if (flags & NDR_IN) {
23029 ZERO_STRUCT(r->out);
23031 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23032 NDR_PULL_ALLOC(ndr, r->in.handle);
23034 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23035 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23036 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23037 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23038 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_size));
23039 NDR_PULL_ALLOC_N(ndr, r->out.data, r->in.data_size);
23040 memset(r->out.data, 0, (r->in.data_size) * sizeof(*r->out.data));
23041 NDR_PULL_ALLOC(ndr, r->out._data_size);
23042 ZERO_STRUCTP(r->out._data_size);
23044 if (flags & NDR_OUT) {
23045 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
23046 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23047 NDR_PULL_ALLOC_N(ndr, r->out.data, ndr_get_array_size(ndr, &r->out.data));
23049 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, ndr_get_array_size(ndr, &r->out.data)));
23050 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23051 NDR_PULL_ALLOC(ndr, r->out._data_size);
23053 _mem_save__data_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
23054 NDR_PULL_SET_MEM_CTX(ndr, r->out._data_size, LIBNDR_FLAG_REF_ALLOC);
23055 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out._data_size));
23056 NDR_PULL_SET_MEM_CTX(ndr, _mem_save__data_size_0, LIBNDR_FLAG_REF_ALLOC);
23057 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23059 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, r->in.data_size));
23062 return NDR_ERR_SUCCESS;
23065 _PUBLIC_ void ndr_print_spoolss_ReadPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReadPrinter *r)
23067 ndr_print_struct(ndr, name, "spoolss_ReadPrinter");
23069 if (flags & NDR_SET_VALUES) {
23070 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23072 if (flags & NDR_IN) {
23073 ndr_print_struct(ndr, "in", "spoolss_ReadPrinter");
23075 ndr_print_ptr(ndr, "handle", r->in.handle);
23077 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23079 ndr_print_uint32(ndr, "data_size", r->in.data_size);
23082 if (flags & NDR_OUT) {
23083 ndr_print_struct(ndr, "out", "spoolss_ReadPrinter");
23085 ndr_print_ptr(ndr, "data", r->out.data);
23087 ndr_print_array_uint8(ndr, "data", r->out.data, r->in.data_size);
23089 ndr_print_ptr(ndr, "_data_size", r->out._data_size);
23091 ndr_print_uint32(ndr, "_data_size", *r->out._data_size);
23093 ndr_print_WERROR(ndr, "result", r->out.result);
23099 static enum ndr_err_code ndr_push_spoolss_EndDocPrinter(struct ndr_push *ndr, int flags, const struct spoolss_EndDocPrinter *r)
23101 if (flags & NDR_IN) {
23102 if (r->in.handle == NULL) {
23103 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23105 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23107 if (flags & NDR_OUT) {
23108 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23110 return NDR_ERR_SUCCESS;
23113 static enum ndr_err_code ndr_pull_spoolss_EndDocPrinter(struct ndr_pull *ndr, int flags, struct spoolss_EndDocPrinter *r)
23115 TALLOC_CTX *_mem_save_handle_0;
23116 if (flags & NDR_IN) {
23117 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23118 NDR_PULL_ALLOC(ndr, r->in.handle);
23120 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23121 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23122 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23123 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23125 if (flags & NDR_OUT) {
23126 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23128 return NDR_ERR_SUCCESS;
23131 _PUBLIC_ void ndr_print_spoolss_EndDocPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EndDocPrinter *r)
23133 ndr_print_struct(ndr, name, "spoolss_EndDocPrinter");
23135 if (flags & NDR_SET_VALUES) {
23136 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23138 if (flags & NDR_IN) {
23139 ndr_print_struct(ndr, "in", "spoolss_EndDocPrinter");
23141 ndr_print_ptr(ndr, "handle", r->in.handle);
23143 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23147 if (flags & NDR_OUT) {
23148 ndr_print_struct(ndr, "out", "spoolss_EndDocPrinter");
23150 ndr_print_WERROR(ndr, "result", r->out.result);
23156 static enum ndr_err_code ndr_push_spoolss_AddJob(struct ndr_push *ndr, int flags, const struct spoolss_AddJob *r)
23158 if (flags & NDR_IN) {
23159 if (r->in.handle == NULL) {
23160 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23162 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23163 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23164 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
23165 if (r->in.buffer) {
23166 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.offered));
23167 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.offered));
23169 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
23171 if (flags & NDR_OUT) {
23172 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.buffer));
23173 if (r->out.buffer) {
23174 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.offered));
23175 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
23177 if (r->out.needed == NULL) {
23178 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23180 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
23181 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23183 return NDR_ERR_SUCCESS;
23186 static enum ndr_err_code ndr_pull_spoolss_AddJob(struct ndr_pull *ndr, int flags, struct spoolss_AddJob *r)
23188 uint32_t _ptr_buffer;
23189 TALLOC_CTX *_mem_save_handle_0;
23190 TALLOC_CTX *_mem_save_buffer_0;
23191 TALLOC_CTX *_mem_save_needed_0;
23192 if (flags & NDR_IN) {
23193 ZERO_STRUCT(r->out);
23195 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23196 NDR_PULL_ALLOC(ndr, r->in.handle);
23198 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23199 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23200 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23201 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23202 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23203 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
23205 NDR_PULL_ALLOC(ndr, r->in.buffer);
23207 r->in.buffer = NULL;
23209 if (r->in.buffer) {
23210 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
23211 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
23212 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
23213 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
23214 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
23215 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
23217 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
23218 NDR_PULL_ALLOC(ndr, r->out.needed);
23219 ZERO_STRUCTP(r->out.needed);
23220 if (r->in.buffer) {
23221 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.offered));
23224 if (flags & NDR_OUT) {
23225 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
23227 NDR_PULL_ALLOC(ndr, r->out.buffer);
23229 r->out.buffer = NULL;
23231 if (r->out.buffer) {
23232 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
23233 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, 0);
23234 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
23235 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
23236 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)));
23237 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
23239 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23240 NDR_PULL_ALLOC(ndr, r->out.needed);
23242 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
23243 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
23244 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
23245 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
23246 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23247 if (r->out.buffer) {
23248 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
23251 return NDR_ERR_SUCCESS;
23254 _PUBLIC_ void ndr_print_spoolss_AddJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddJob *r)
23256 ndr_print_struct(ndr, name, "spoolss_AddJob");
23258 if (flags & NDR_SET_VALUES) {
23259 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23261 if (flags & NDR_IN) {
23262 ndr_print_struct(ndr, "in", "spoolss_AddJob");
23264 ndr_print_ptr(ndr, "handle", r->in.handle);
23266 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23268 ndr_print_uint32(ndr, "level", r->in.level);
23269 ndr_print_ptr(ndr, "buffer", r->in.buffer);
23271 if (r->in.buffer) {
23272 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.offered);
23275 ndr_print_uint32(ndr, "offered", r->in.offered);
23278 if (flags & NDR_OUT) {
23279 ndr_print_struct(ndr, "out", "spoolss_AddJob");
23281 ndr_print_ptr(ndr, "buffer", r->out.buffer);
23283 if (r->out.buffer) {
23284 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
23287 ndr_print_ptr(ndr, "needed", r->out.needed);
23289 ndr_print_uint32(ndr, "needed", *r->out.needed);
23291 ndr_print_WERROR(ndr, "result", r->out.result);
23297 static enum ndr_err_code ndr_push_spoolss_ScheduleJob(struct ndr_push *ndr, int flags, const struct spoolss_ScheduleJob *r)
23299 if (flags & NDR_IN) {
23300 if (r->in.handle == NULL) {
23301 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23303 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23304 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.jobid));
23306 if (flags & NDR_OUT) {
23307 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23309 return NDR_ERR_SUCCESS;
23312 static enum ndr_err_code ndr_pull_spoolss_ScheduleJob(struct ndr_pull *ndr, int flags, struct spoolss_ScheduleJob *r)
23314 TALLOC_CTX *_mem_save_handle_0;
23315 if (flags & NDR_IN) {
23316 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23317 NDR_PULL_ALLOC(ndr, r->in.handle);
23319 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23320 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23321 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23322 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23323 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.jobid));
23325 if (flags & NDR_OUT) {
23326 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23328 return NDR_ERR_SUCCESS;
23331 _PUBLIC_ void ndr_print_spoolss_ScheduleJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ScheduleJob *r)
23333 ndr_print_struct(ndr, name, "spoolss_ScheduleJob");
23335 if (flags & NDR_SET_VALUES) {
23336 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23338 if (flags & NDR_IN) {
23339 ndr_print_struct(ndr, "in", "spoolss_ScheduleJob");
23341 ndr_print_ptr(ndr, "handle", r->in.handle);
23343 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23345 ndr_print_uint32(ndr, "jobid", r->in.jobid);
23348 if (flags & NDR_OUT) {
23349 ndr_print_struct(ndr, "out", "spoolss_ScheduleJob");
23351 ndr_print_WERROR(ndr, "result", r->out.result);
23357 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct _spoolss_GetPrinterData *r)
23359 if (flags & NDR_IN) {
23360 if (r->in.handle == NULL) {
23361 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23363 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23364 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
23365 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
23366 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
23367 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));
23368 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
23370 if (flags & NDR_OUT) {
23371 if (r->out.type == NULL) {
23372 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23374 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
23375 if (r->out.data == NULL) {
23376 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23378 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.data));
23379 if (r->out.needed == NULL) {
23380 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23382 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
23383 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23385 return NDR_ERR_SUCCESS;
23388 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct _spoolss_GetPrinterData *r)
23390 TALLOC_CTX *_mem_save_handle_0;
23391 TALLOC_CTX *_mem_save_type_0;
23392 TALLOC_CTX *_mem_save_data_0;
23393 TALLOC_CTX *_mem_save_needed_0;
23394 if (flags & NDR_IN) {
23395 ZERO_STRUCT(r->out);
23397 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23398 NDR_PULL_ALLOC(ndr, r->in.handle);
23400 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23401 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23402 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23403 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23404 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
23405 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
23406 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
23407 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));
23409 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
23410 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));
23411 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
23412 NDR_PULL_ALLOC(ndr, r->out.type);
23413 ZERO_STRUCTP(r->out.type);
23414 NDR_PULL_ALLOC(ndr, r->out.data);
23415 ZERO_STRUCTP(r->out.data);
23416 NDR_PULL_ALLOC(ndr, r->out.needed);
23417 ZERO_STRUCTP(r->out.needed);
23419 if (flags & NDR_OUT) {
23420 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23421 NDR_PULL_ALLOC(ndr, r->out.type);
23423 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
23424 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
23425 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
23426 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
23427 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23428 NDR_PULL_ALLOC(ndr, r->out.data);
23430 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
23431 NDR_PULL_SET_MEM_CTX(ndr, r->out.data, LIBNDR_FLAG_REF_ALLOC);
23432 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.data));
23433 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
23434 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23435 NDR_PULL_ALLOC(ndr, r->out.needed);
23437 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
23438 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
23439 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
23440 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
23441 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23443 return NDR_ERR_SUCCESS;
23446 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct __spoolss_GetPrinterData *r)
23448 if (flags & NDR_IN) {
23449 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
23451 if (flags & NDR_OUT) {
23452 if (r->out.data == NULL) {
23453 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23455 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.data, r->in.type));
23456 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
23458 return NDR_ERR_SUCCESS;
23461 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct __spoolss_GetPrinterData *r)
23463 TALLOC_CTX *_mem_save_data_0;
23464 if (flags & NDR_IN) {
23465 ZERO_STRUCT(r->out);
23467 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
23468 NDR_PULL_ALLOC(ndr, r->out.data);
23469 ZERO_STRUCTP(r->out.data);
23471 if (flags & NDR_OUT) {
23472 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23473 NDR_PULL_ALLOC(ndr, r->out.data);
23475 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
23476 NDR_PULL_SET_MEM_CTX(ndr, r->out.data, LIBNDR_FLAG_REF_ALLOC);
23477 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.data, r->in.type));
23478 NDR_CHECK(ndr_pull_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
23479 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
23481 return NDR_ERR_SUCCESS;
23484 _PUBLIC_ void ndr_print_spoolss_GetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterData *r)
23486 ndr_print_struct(ndr, name, "spoolss_GetPrinterData");
23488 if (flags & NDR_SET_VALUES) {
23489 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23491 if (flags & NDR_IN) {
23492 ndr_print_struct(ndr, "in", "spoolss_GetPrinterData");
23494 ndr_print_ptr(ndr, "handle", r->in.handle);
23496 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23498 ndr_print_string(ndr, "value_name", r->in.value_name);
23499 ndr_print_uint32(ndr, "offered", r->in.offered);
23502 if (flags & NDR_OUT) {
23503 ndr_print_struct(ndr, "out", "spoolss_GetPrinterData");
23505 ndr_print_ptr(ndr, "type", r->out.type);
23507 ndr_print_winreg_Type(ndr, "type", *r->out.type);
23509 ndr_print_ptr(ndr, "data", r->out.data);
23511 ndr_print_set_switch_value(ndr, r->out.data, *r->out.type);
23512 ndr_print_spoolss_PrinterData(ndr, "data", r->out.data);
23514 ndr_print_ptr(ndr, "needed", r->out.needed);
23516 ndr_print_uint32(ndr, "needed", *r->out.needed);
23518 ndr_print_WERROR(ndr, "result", r->out.result);
23524 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct _spoolss_SetPrinterData *r)
23526 if (flags & NDR_IN) {
23527 if (r->in.handle == NULL) {
23528 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23530 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23531 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
23532 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
23533 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
23534 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));
23535 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
23536 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
23537 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in._offered));
23539 if (flags & NDR_OUT) {
23540 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23542 return NDR_ERR_SUCCESS;
23545 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct __spoolss_SetPrinterData *r)
23547 if (flags & NDR_IN) {
23548 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
23550 if (flags & NDR_OUT) {
23551 if (r->out.data == NULL) {
23552 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23554 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.data, r->in.type));
23555 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
23557 return NDR_ERR_SUCCESS;
23560 static enum ndr_err_code ndr_pull_spoolss_SetPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinterData *r)
23562 TALLOC_CTX *_mem_save_handle_0;
23563 if (flags & NDR_IN) {
23564 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23565 NDR_PULL_ALLOC(ndr, r->in.handle);
23567 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23568 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23569 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23570 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23571 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
23572 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
23573 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
23574 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));
23576 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
23577 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));
23578 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
23580 struct ndr_pull *_ndr_data;
23581 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_data, 4, -1));
23582 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data, &r->in.data, r->in.type));
23583 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
23584 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_data, 4, -1));
23586 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._offered));
23588 if (flags & NDR_OUT) {
23589 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23591 return NDR_ERR_SUCCESS;
23594 _PUBLIC_ void ndr_print_spoolss_SetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinterData *r)
23596 ndr_print_struct(ndr, name, "spoolss_SetPrinterData");
23598 if (flags & NDR_SET_VALUES) {
23599 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23601 if (flags & NDR_IN) {
23602 ndr_print_struct(ndr, "in", "spoolss_SetPrinterData");
23604 ndr_print_ptr(ndr, "handle", r->in.handle);
23606 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23608 ndr_print_string(ndr, "value_name", r->in.value_name);
23609 ndr_print_winreg_Type(ndr, "type", r->in.type);
23610 ndr_print_set_switch_value(ndr, &r->in.data, r->in.type);
23611 ndr_print_spoolss_PrinterData(ndr, "data", &r->in.data);
23612 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);
23615 if (flags & NDR_OUT) {
23616 ndr_print_struct(ndr, "out", "spoolss_SetPrinterData");
23618 ndr_print_WERROR(ndr, "result", r->out.result);
23624 static enum ndr_err_code ndr_push_spoolss_WaitForPrinterChange(struct ndr_push *ndr, int flags, const struct spoolss_WaitForPrinterChange *r)
23626 if (flags & NDR_IN) {
23628 if (flags & NDR_OUT) {
23629 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23631 return NDR_ERR_SUCCESS;
23634 static enum ndr_err_code ndr_pull_spoolss_WaitForPrinterChange(struct ndr_pull *ndr, int flags, struct spoolss_WaitForPrinterChange *r)
23636 if (flags & NDR_IN) {
23638 if (flags & NDR_OUT) {
23639 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23641 return NDR_ERR_SUCCESS;
23644 _PUBLIC_ void ndr_print_spoolss_WaitForPrinterChange(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_WaitForPrinterChange *r)
23646 ndr_print_struct(ndr, name, "spoolss_WaitForPrinterChange");
23648 if (flags & NDR_SET_VALUES) {
23649 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23651 if (flags & NDR_IN) {
23652 ndr_print_struct(ndr, "in", "spoolss_WaitForPrinterChange");
23656 if (flags & NDR_OUT) {
23657 ndr_print_struct(ndr, "out", "spoolss_WaitForPrinterChange");
23659 ndr_print_WERROR(ndr, "result", r->out.result);
23665 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ClosePrinter(struct ndr_push *ndr, int flags, const struct spoolss_ClosePrinter *r)
23667 if (flags & NDR_IN) {
23668 if (r->in.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->in.handle));
23673 if (flags & NDR_OUT) {
23674 if (r->out.handle == NULL) {
23675 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23677 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
23678 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23680 return NDR_ERR_SUCCESS;
23683 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ClosePrinter(struct ndr_pull *ndr, int flags, struct spoolss_ClosePrinter *r)
23685 TALLOC_CTX *_mem_save_handle_0;
23686 if (flags & NDR_IN) {
23687 ZERO_STRUCT(r->out);
23689 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23690 NDR_PULL_ALLOC(ndr, r->in.handle);
23692 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23693 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23694 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23695 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23696 NDR_PULL_ALLOC(ndr, r->out.handle);
23697 *r->out.handle = *r->in.handle;
23699 if (flags & NDR_OUT) {
23700 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23701 NDR_PULL_ALLOC(ndr, r->out.handle);
23703 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23704 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
23705 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
23706 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23707 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23709 return NDR_ERR_SUCCESS;
23712 _PUBLIC_ void ndr_print_spoolss_ClosePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ClosePrinter *r)
23714 ndr_print_struct(ndr, name, "spoolss_ClosePrinter");
23716 if (flags & NDR_SET_VALUES) {
23717 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23719 if (flags & NDR_IN) {
23720 ndr_print_struct(ndr, "in", "spoolss_ClosePrinter");
23722 ndr_print_ptr(ndr, "handle", r->in.handle);
23724 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23728 if (flags & NDR_OUT) {
23729 ndr_print_struct(ndr, "out", "spoolss_ClosePrinter");
23731 ndr_print_ptr(ndr, "handle", r->out.handle);
23733 ndr_print_policy_handle(ndr, "handle", r->out.handle);
23735 ndr_print_WERROR(ndr, "result", r->out.result);
23741 static enum ndr_err_code ndr_push_spoolss_AddForm(struct ndr_push *ndr, int flags, const struct spoolss_AddForm *r)
23743 if (flags & NDR_IN) {
23744 if (r->in.handle == NULL) {
23745 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23747 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23748 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23749 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
23750 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
23752 if (flags & NDR_OUT) {
23753 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23755 return NDR_ERR_SUCCESS;
23758 static enum ndr_err_code ndr_pull_spoolss_AddForm(struct ndr_pull *ndr, int flags, struct spoolss_AddForm *r)
23760 TALLOC_CTX *_mem_save_handle_0;
23761 if (flags & NDR_IN) {
23762 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23763 NDR_PULL_ALLOC(ndr, r->in.handle);
23765 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23766 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23767 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23768 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23769 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23770 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
23771 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
23773 if (flags & NDR_OUT) {
23774 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23776 return NDR_ERR_SUCCESS;
23779 _PUBLIC_ void ndr_print_spoolss_AddForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddForm *r)
23781 ndr_print_struct(ndr, name, "spoolss_AddForm");
23783 if (flags & NDR_SET_VALUES) {
23784 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23786 if (flags & NDR_IN) {
23787 ndr_print_struct(ndr, "in", "spoolss_AddForm");
23789 ndr_print_ptr(ndr, "handle", r->in.handle);
23791 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23793 ndr_print_uint32(ndr, "level", r->in.level);
23794 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
23795 ndr_print_spoolss_AddFormInfo(ndr, "info", &r->in.info);
23798 if (flags & NDR_OUT) {
23799 ndr_print_struct(ndr, "out", "spoolss_AddForm");
23801 ndr_print_WERROR(ndr, "result", r->out.result);
23807 static enum ndr_err_code ndr_push_spoolss_DeleteForm(struct ndr_push *ndr, int flags, const struct spoolss_DeleteForm *r)
23809 if (flags & NDR_IN) {
23810 if (r->in.handle == NULL) {
23811 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23813 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23814 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
23815 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
23816 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
23817 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));
23819 if (flags & NDR_OUT) {
23820 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23822 return NDR_ERR_SUCCESS;
23825 static enum ndr_err_code ndr_pull_spoolss_DeleteForm(struct ndr_pull *ndr, int flags, struct spoolss_DeleteForm *r)
23827 TALLOC_CTX *_mem_save_handle_0;
23828 if (flags & NDR_IN) {
23829 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23830 NDR_PULL_ALLOC(ndr, r->in.handle);
23832 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23833 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23834 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23835 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23836 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
23837 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
23838 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
23839 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));
23841 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
23842 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));
23844 if (flags & NDR_OUT) {
23845 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23847 return NDR_ERR_SUCCESS;
23850 _PUBLIC_ void ndr_print_spoolss_DeleteForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeleteForm *r)
23852 ndr_print_struct(ndr, name, "spoolss_DeleteForm");
23854 if (flags & NDR_SET_VALUES) {
23855 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23857 if (flags & NDR_IN) {
23858 ndr_print_struct(ndr, "in", "spoolss_DeleteForm");
23860 ndr_print_ptr(ndr, "handle", r->in.handle);
23862 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23864 ndr_print_string(ndr, "form_name", r->in.form_name);
23867 if (flags & NDR_OUT) {
23868 ndr_print_struct(ndr, "out", "spoolss_DeleteForm");
23870 ndr_print_WERROR(ndr, "result", r->out.result);
23876 static enum ndr_err_code ndr_push_spoolss_GetForm(struct ndr_push *ndr, int flags, const struct spoolss_GetForm *r)
23878 if (flags & NDR_IN) {
23879 if (r->in.handle == NULL) {
23880 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23882 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23883 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
23884 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
23885 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
23886 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));
23887 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23888 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
23889 if (r->in.buffer) {
23890 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
23892 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
23894 if (flags & NDR_OUT) {
23895 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
23898 struct ndr_push *_ndr_info;
23899 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
23900 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
23901 NDR_CHECK(ndr_push_spoolss_FormInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
23902 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
23905 if (r->out.needed == NULL) {
23906 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23908 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
23909 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23911 return NDR_ERR_SUCCESS;
23914 static enum ndr_err_code ndr_pull_spoolss_GetForm(struct ndr_pull *ndr, int flags, struct spoolss_GetForm *r)
23916 uint32_t _ptr_buffer;
23917 uint32_t _ptr_info;
23918 TALLOC_CTX *_mem_save_handle_0;
23919 TALLOC_CTX *_mem_save_buffer_0;
23920 TALLOC_CTX *_mem_save_info_0;
23921 TALLOC_CTX *_mem_save_needed_0;
23922 if (flags & NDR_IN) {
23923 ZERO_STRUCT(r->out);
23925 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23926 NDR_PULL_ALLOC(ndr, r->in.handle);
23928 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23929 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23930 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23931 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23932 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
23933 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
23934 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
23935 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));
23937 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
23938 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));
23939 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23940 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
23942 NDR_PULL_ALLOC(ndr, r->in.buffer);
23944 r->in.buffer = NULL;
23946 if (r->in.buffer) {
23947 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
23948 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
23949 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
23950 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
23952 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
23953 NDR_PULL_ALLOC(ndr, r->out.needed);
23954 ZERO_STRUCTP(r->out.needed);
23956 if (flags & NDR_OUT) {
23957 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
23959 NDR_PULL_ALLOC(ndr, r->out.info);
23961 r->out.info = NULL;
23964 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
23965 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
23967 struct ndr_pull *_ndr_info;
23968 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
23969 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
23970 NDR_CHECK(ndr_pull_spoolss_FormInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
23971 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
23973 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
23975 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23976 NDR_PULL_ALLOC(ndr, r->out.needed);
23978 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
23979 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
23980 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
23981 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
23982 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23984 return NDR_ERR_SUCCESS;
23987 _PUBLIC_ void ndr_print_spoolss_GetForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetForm *r)
23989 ndr_print_struct(ndr, name, "spoolss_GetForm");
23991 if (flags & NDR_SET_VALUES) {
23992 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23994 if (flags & NDR_IN) {
23995 ndr_print_struct(ndr, "in", "spoolss_GetForm");
23997 ndr_print_ptr(ndr, "handle", r->in.handle);
23999 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24001 ndr_print_string(ndr, "form_name", r->in.form_name);
24002 ndr_print_uint32(ndr, "level", r->in.level);
24003 ndr_print_ptr(ndr, "buffer", r->in.buffer);
24005 if (r->in.buffer) {
24006 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
24009 ndr_print_uint32(ndr, "offered", r->in.offered);
24012 if (flags & NDR_OUT) {
24013 ndr_print_struct(ndr, "out", "spoolss_GetForm");
24015 ndr_print_ptr(ndr, "info", r->out.info);
24018 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
24019 ndr_print_spoolss_FormInfo(ndr, "info", r->out.info);
24022 ndr_print_ptr(ndr, "needed", r->out.needed);
24024 ndr_print_uint32(ndr, "needed", *r->out.needed);
24026 ndr_print_WERROR(ndr, "result", r->out.result);
24032 static enum ndr_err_code ndr_push_spoolss_SetForm(struct ndr_push *ndr, int flags, const struct spoolss_SetForm *r)
24034 if (flags & NDR_IN) {
24035 if (r->in.handle == NULL) {
24036 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24038 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24039 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
24040 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24041 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
24042 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));
24043 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24044 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
24045 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
24047 if (flags & NDR_OUT) {
24048 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24050 return NDR_ERR_SUCCESS;
24053 static enum ndr_err_code ndr_pull_spoolss_SetForm(struct ndr_pull *ndr, int flags, struct spoolss_SetForm *r)
24055 TALLOC_CTX *_mem_save_handle_0;
24056 if (flags & NDR_IN) {
24057 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24058 NDR_PULL_ALLOC(ndr, r->in.handle);
24060 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24061 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24062 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24063 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24064 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
24065 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
24066 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
24067 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));
24069 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
24070 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));
24071 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24072 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
24073 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
24075 if (flags & NDR_OUT) {
24076 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24078 return NDR_ERR_SUCCESS;
24081 _PUBLIC_ void ndr_print_spoolss_SetForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetForm *r)
24083 ndr_print_struct(ndr, name, "spoolss_SetForm");
24085 if (flags & NDR_SET_VALUES) {
24086 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24088 if (flags & NDR_IN) {
24089 ndr_print_struct(ndr, "in", "spoolss_SetForm");
24091 ndr_print_ptr(ndr, "handle", r->in.handle);
24093 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24095 ndr_print_string(ndr, "form_name", r->in.form_name);
24096 ndr_print_uint32(ndr, "level", r->in.level);
24097 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
24098 ndr_print_spoolss_AddFormInfo(ndr, "info", &r->in.info);
24101 if (flags & NDR_OUT) {
24102 ndr_print_struct(ndr, "out", "spoolss_SetForm");
24104 ndr_print_WERROR(ndr, "result", r->out.result);
24110 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumForms(struct ndr_push *ndr, int flags, const struct _spoolss_EnumForms *r)
24112 if (flags & NDR_IN) {
24113 if (r->in.handle == NULL) {
24114 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24116 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24117 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24118 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
24119 if (r->in.buffer) {
24120 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
24122 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
24124 if (flags & NDR_OUT) {
24125 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
24127 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
24129 if (r->out.needed == NULL) {
24130 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24132 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
24133 if (r->out.count == NULL) {
24134 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24136 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
24137 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24139 return NDR_ERR_SUCCESS;
24142 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumForms(struct ndr_pull *ndr, int flags, struct _spoolss_EnumForms *r)
24144 uint32_t _ptr_buffer;
24145 uint32_t _ptr_info;
24146 TALLOC_CTX *_mem_save_handle_0;
24147 TALLOC_CTX *_mem_save_buffer_0;
24148 TALLOC_CTX *_mem_save_info_0;
24149 TALLOC_CTX *_mem_save_needed_0;
24150 TALLOC_CTX *_mem_save_count_0;
24151 if (flags & NDR_IN) {
24152 ZERO_STRUCT(r->out);
24154 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24155 NDR_PULL_ALLOC(ndr, r->in.handle);
24157 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24158 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24159 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24160 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24161 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24162 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
24164 NDR_PULL_ALLOC(ndr, r->in.buffer);
24166 r->in.buffer = NULL;
24168 if (r->in.buffer) {
24169 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
24170 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
24171 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
24172 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
24174 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
24175 NDR_PULL_ALLOC(ndr, r->out.needed);
24176 ZERO_STRUCTP(r->out.needed);
24177 NDR_PULL_ALLOC(ndr, r->out.count);
24178 ZERO_STRUCTP(r->out.count);
24180 if (flags & NDR_OUT) {
24181 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
24183 NDR_PULL_ALLOC(ndr, r->out.info);
24185 r->out.info = NULL;
24188 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24189 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24190 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
24191 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24193 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24194 NDR_PULL_ALLOC(ndr, r->out.needed);
24196 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
24197 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
24198 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
24199 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
24200 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24201 NDR_PULL_ALLOC(ndr, r->out.count);
24203 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
24204 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
24205 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
24206 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
24207 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24209 return NDR_ERR_SUCCESS;
24212 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumForms(struct ndr_push *ndr, int flags, const struct __spoolss_EnumForms *r)
24214 uint32_t cntr_info_0;
24215 if (flags & NDR_IN) {
24216 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24217 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
24219 if (flags & NDR_OUT) {
24220 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24221 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
24222 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
24224 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24225 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
24228 return NDR_ERR_SUCCESS;
24231 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumForms(struct ndr_pull *ndr, int flags, struct __spoolss_EnumForms *r)
24233 uint32_t cntr_info_0;
24234 TALLOC_CTX *_mem_save_info_0;
24235 if (flags & NDR_IN) {
24236 ZERO_STRUCT(r->out);
24238 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24239 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
24241 if (flags & NDR_OUT) {
24242 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
24243 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24244 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24245 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24246 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
24247 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
24249 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24250 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
24252 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24254 return NDR_ERR_SUCCESS;
24257 _PUBLIC_ void ndr_print_spoolss_EnumForms(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumForms *r)
24259 uint32_t cntr_info_2;
24260 ndr_print_struct(ndr, name, "spoolss_EnumForms");
24262 if (flags & NDR_SET_VALUES) {
24263 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24265 if (flags & NDR_IN) {
24266 ndr_print_struct(ndr, "in", "spoolss_EnumForms");
24268 ndr_print_ptr(ndr, "handle", r->in.handle);
24270 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24272 ndr_print_uint32(ndr, "level", r->in.level);
24273 ndr_print_ptr(ndr, "buffer", r->in.buffer);
24275 if (r->in.buffer) {
24276 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
24279 ndr_print_uint32(ndr, "offered", r->in.offered);
24282 if (flags & NDR_OUT) {
24283 ndr_print_struct(ndr, "out", "spoolss_EnumForms");
24285 ndr_print_ptr(ndr, "count", r->out.count);
24287 ndr_print_uint32(ndr, "count", *r->out.count);
24289 ndr_print_ptr(ndr, "info", r->out.info);
24291 ndr_print_ptr(ndr, "info", *r->out.info);
24293 if (*r->out.info) {
24294 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
24296 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
24298 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
24299 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
24300 ndr_print_spoolss_FormInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
24308 ndr_print_ptr(ndr, "needed", r->out.needed);
24310 ndr_print_uint32(ndr, "needed", *r->out.needed);
24312 ndr_print_WERROR(ndr, "result", r->out.result);
24318 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPorts(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPorts *r)
24320 if (flags & NDR_IN) {
24321 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
24322 if (r->in.servername) {
24323 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
24324 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24325 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
24326 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
24328 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24329 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
24330 if (r->in.buffer) {
24331 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
24333 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
24335 if (flags & NDR_OUT) {
24336 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
24338 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
24340 if (r->out.needed == NULL) {
24341 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24343 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
24344 if (r->out.count == NULL) {
24345 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24347 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
24348 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24350 return NDR_ERR_SUCCESS;
24353 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPorts(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPorts *r)
24355 uint32_t _ptr_servername;
24356 uint32_t _ptr_buffer;
24357 uint32_t _ptr_info;
24358 TALLOC_CTX *_mem_save_servername_0;
24359 TALLOC_CTX *_mem_save_buffer_0;
24360 TALLOC_CTX *_mem_save_info_0;
24361 TALLOC_CTX *_mem_save_needed_0;
24362 TALLOC_CTX *_mem_save_count_0;
24363 if (flags & NDR_IN) {
24364 ZERO_STRUCT(r->out);
24366 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
24367 if (_ptr_servername) {
24368 NDR_PULL_ALLOC(ndr, r->in.servername);
24370 r->in.servername = NULL;
24372 if (r->in.servername) {
24373 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
24374 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
24375 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
24376 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
24377 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
24378 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));
24380 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
24381 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
24382 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
24384 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24385 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
24387 NDR_PULL_ALLOC(ndr, r->in.buffer);
24389 r->in.buffer = NULL;
24391 if (r->in.buffer) {
24392 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
24393 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
24394 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
24395 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
24397 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
24398 NDR_PULL_ALLOC(ndr, r->out.needed);
24399 ZERO_STRUCTP(r->out.needed);
24400 NDR_PULL_ALLOC(ndr, r->out.count);
24401 ZERO_STRUCTP(r->out.count);
24403 if (flags & NDR_OUT) {
24404 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
24406 NDR_PULL_ALLOC(ndr, r->out.info);
24408 r->out.info = NULL;
24411 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24412 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24413 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
24414 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24416 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24417 NDR_PULL_ALLOC(ndr, r->out.needed);
24419 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
24420 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
24421 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
24422 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
24423 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24424 NDR_PULL_ALLOC(ndr, r->out.count);
24426 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
24427 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
24428 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
24429 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
24430 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24432 return NDR_ERR_SUCCESS;
24435 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPorts(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPorts *r)
24437 uint32_t cntr_info_0;
24438 if (flags & NDR_IN) {
24439 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24440 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
24442 if (flags & NDR_OUT) {
24443 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24444 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
24445 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
24447 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24448 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
24451 return NDR_ERR_SUCCESS;
24454 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPorts(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPorts *r)
24456 uint32_t cntr_info_0;
24457 TALLOC_CTX *_mem_save_info_0;
24458 if (flags & NDR_IN) {
24459 ZERO_STRUCT(r->out);
24461 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24462 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
24464 if (flags & NDR_OUT) {
24465 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
24466 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24467 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24468 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24469 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
24470 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
24472 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24473 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
24475 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24477 return NDR_ERR_SUCCESS;
24480 _PUBLIC_ void ndr_print_spoolss_EnumPorts(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPorts *r)
24482 uint32_t cntr_info_2;
24483 ndr_print_struct(ndr, name, "spoolss_EnumPorts");
24485 if (flags & NDR_SET_VALUES) {
24486 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24488 if (flags & NDR_IN) {
24489 ndr_print_struct(ndr, "in", "spoolss_EnumPorts");
24491 ndr_print_ptr(ndr, "servername", r->in.servername);
24493 if (r->in.servername) {
24494 ndr_print_string(ndr, "servername", r->in.servername);
24497 ndr_print_uint32(ndr, "level", r->in.level);
24498 ndr_print_ptr(ndr, "buffer", r->in.buffer);
24500 if (r->in.buffer) {
24501 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
24504 ndr_print_uint32(ndr, "offered", r->in.offered);
24507 if (flags & NDR_OUT) {
24508 ndr_print_struct(ndr, "out", "spoolss_EnumPorts");
24510 ndr_print_ptr(ndr, "count", r->out.count);
24512 ndr_print_uint32(ndr, "count", *r->out.count);
24514 ndr_print_ptr(ndr, "info", r->out.info);
24516 ndr_print_ptr(ndr, "info", *r->out.info);
24518 if (*r->out.info) {
24519 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
24521 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
24523 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
24524 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
24525 ndr_print_spoolss_PortInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
24533 ndr_print_ptr(ndr, "needed", r->out.needed);
24535 ndr_print_uint32(ndr, "needed", *r->out.needed);
24537 ndr_print_WERROR(ndr, "result", r->out.result);
24543 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumMonitors(struct ndr_push *ndr, int flags, const struct _spoolss_EnumMonitors *r)
24545 if (flags & NDR_IN) {
24546 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
24547 if (r->in.servername) {
24548 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
24549 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24550 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
24551 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
24553 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24554 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
24555 if (r->in.buffer) {
24556 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
24558 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
24560 if (flags & NDR_OUT) {
24561 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
24563 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
24565 if (r->out.needed == NULL) {
24566 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24568 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
24569 if (r->out.count == NULL) {
24570 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24572 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
24573 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24575 return NDR_ERR_SUCCESS;
24578 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumMonitors(struct ndr_pull *ndr, int flags, struct _spoolss_EnumMonitors *r)
24580 uint32_t _ptr_servername;
24581 uint32_t _ptr_buffer;
24582 uint32_t _ptr_info;
24583 TALLOC_CTX *_mem_save_servername_0;
24584 TALLOC_CTX *_mem_save_buffer_0;
24585 TALLOC_CTX *_mem_save_info_0;
24586 TALLOC_CTX *_mem_save_needed_0;
24587 TALLOC_CTX *_mem_save_count_0;
24588 if (flags & NDR_IN) {
24589 ZERO_STRUCT(r->out);
24591 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
24592 if (_ptr_servername) {
24593 NDR_PULL_ALLOC(ndr, r->in.servername);
24595 r->in.servername = NULL;
24597 if (r->in.servername) {
24598 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
24599 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
24600 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
24601 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
24602 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
24603 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));
24605 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
24606 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
24607 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
24609 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24610 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
24612 NDR_PULL_ALLOC(ndr, r->in.buffer);
24614 r->in.buffer = NULL;
24616 if (r->in.buffer) {
24617 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
24618 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
24619 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
24620 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
24622 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
24623 NDR_PULL_ALLOC(ndr, r->out.needed);
24624 ZERO_STRUCTP(r->out.needed);
24625 NDR_PULL_ALLOC(ndr, r->out.count);
24626 ZERO_STRUCTP(r->out.count);
24628 if (flags & NDR_OUT) {
24629 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
24631 NDR_PULL_ALLOC(ndr, r->out.info);
24633 r->out.info = NULL;
24636 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24637 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24638 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
24639 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24641 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24642 NDR_PULL_ALLOC(ndr, r->out.needed);
24644 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
24645 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
24646 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
24647 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
24648 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24649 NDR_PULL_ALLOC(ndr, r->out.count);
24651 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
24652 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
24653 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
24654 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
24655 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24657 return NDR_ERR_SUCCESS;
24660 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumMonitors(struct ndr_push *ndr, int flags, const struct __spoolss_EnumMonitors *r)
24662 uint32_t cntr_info_0;
24663 if (flags & NDR_IN) {
24664 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24665 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
24667 if (flags & NDR_OUT) {
24668 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24669 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
24670 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
24672 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24673 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
24676 return NDR_ERR_SUCCESS;
24679 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumMonitors(struct ndr_pull *ndr, int flags, struct __spoolss_EnumMonitors *r)
24681 uint32_t cntr_info_0;
24682 TALLOC_CTX *_mem_save_info_0;
24683 if (flags & NDR_IN) {
24684 ZERO_STRUCT(r->out);
24686 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24687 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
24689 if (flags & NDR_OUT) {
24690 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
24691 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24692 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24693 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24694 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
24695 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
24697 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24698 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
24700 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24702 return NDR_ERR_SUCCESS;
24705 _PUBLIC_ void ndr_print_spoolss_EnumMonitors(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumMonitors *r)
24707 uint32_t cntr_info_2;
24708 ndr_print_struct(ndr, name, "spoolss_EnumMonitors");
24710 if (flags & NDR_SET_VALUES) {
24711 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24713 if (flags & NDR_IN) {
24714 ndr_print_struct(ndr, "in", "spoolss_EnumMonitors");
24716 ndr_print_ptr(ndr, "servername", r->in.servername);
24718 if (r->in.servername) {
24719 ndr_print_string(ndr, "servername", r->in.servername);
24722 ndr_print_uint32(ndr, "level", r->in.level);
24723 ndr_print_ptr(ndr, "buffer", r->in.buffer);
24725 if (r->in.buffer) {
24726 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
24729 ndr_print_uint32(ndr, "offered", r->in.offered);
24732 if (flags & NDR_OUT) {
24733 ndr_print_struct(ndr, "out", "spoolss_EnumMonitors");
24735 ndr_print_ptr(ndr, "count", r->out.count);
24737 ndr_print_uint32(ndr, "count", *r->out.count);
24739 ndr_print_ptr(ndr, "info", r->out.info);
24741 ndr_print_ptr(ndr, "info", *r->out.info);
24743 if (*r->out.info) {
24744 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
24746 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
24748 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
24749 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
24750 ndr_print_spoolss_MonitorInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
24758 ndr_print_ptr(ndr, "needed", r->out.needed);
24760 ndr_print_uint32(ndr, "needed", *r->out.needed);
24762 ndr_print_WERROR(ndr, "result", r->out.result);
24768 static enum ndr_err_code ndr_push_spoolss_AddPort(struct ndr_push *ndr, int flags, const struct spoolss_AddPort *r)
24770 if (flags & NDR_IN) {
24771 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
24772 if (r->in.server_name) {
24773 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_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.server_name, CH_UTF16)));
24776 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));
24778 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown));
24779 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
24780 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24781 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
24782 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));
24784 if (flags & NDR_OUT) {
24785 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24787 return NDR_ERR_SUCCESS;
24790 static enum ndr_err_code ndr_pull_spoolss_AddPort(struct ndr_pull *ndr, int flags, struct spoolss_AddPort *r)
24792 uint32_t _ptr_server_name;
24793 TALLOC_CTX *_mem_save_server_name_0;
24794 if (flags & NDR_IN) {
24795 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
24796 if (_ptr_server_name) {
24797 NDR_PULL_ALLOC(ndr, r->in.server_name);
24799 r->in.server_name = NULL;
24801 if (r->in.server_name) {
24802 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
24803 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
24804 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
24805 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
24806 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
24807 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));
24809 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
24810 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));
24811 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
24813 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown));
24814 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.monitor_name));
24815 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.monitor_name));
24816 if (ndr_get_array_length(ndr, &r->in.monitor_name) > ndr_get_array_size(ndr, &r->in.monitor_name)) {
24817 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));
24819 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.monitor_name), sizeof(uint16_t)));
24820 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));
24822 if (flags & NDR_OUT) {
24823 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24825 return NDR_ERR_SUCCESS;
24828 _PUBLIC_ void ndr_print_spoolss_AddPort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPort *r)
24830 ndr_print_struct(ndr, name, "spoolss_AddPort");
24832 if (flags & NDR_SET_VALUES) {
24833 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24835 if (flags & NDR_IN) {
24836 ndr_print_struct(ndr, "in", "spoolss_AddPort");
24838 ndr_print_ptr(ndr, "server_name", r->in.server_name);
24840 if (r->in.server_name) {
24841 ndr_print_string(ndr, "server_name", r->in.server_name);
24844 ndr_print_uint32(ndr, "unknown", r->in.unknown);
24845 ndr_print_string(ndr, "monitor_name", r->in.monitor_name);
24848 if (flags & NDR_OUT) {
24849 ndr_print_struct(ndr, "out", "spoolss_AddPort");
24851 ndr_print_WERROR(ndr, "result", r->out.result);
24857 static enum ndr_err_code ndr_push_spoolss_ConfigurePort(struct ndr_push *ndr, int flags, const struct spoolss_ConfigurePort *r)
24859 if (flags & NDR_IN) {
24861 if (flags & NDR_OUT) {
24862 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24864 return NDR_ERR_SUCCESS;
24867 static enum ndr_err_code ndr_pull_spoolss_ConfigurePort(struct ndr_pull *ndr, int flags, struct spoolss_ConfigurePort *r)
24869 if (flags & NDR_IN) {
24871 if (flags & NDR_OUT) {
24872 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24874 return NDR_ERR_SUCCESS;
24877 _PUBLIC_ void ndr_print_spoolss_ConfigurePort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ConfigurePort *r)
24879 ndr_print_struct(ndr, name, "spoolss_ConfigurePort");
24881 if (flags & NDR_SET_VALUES) {
24882 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24884 if (flags & NDR_IN) {
24885 ndr_print_struct(ndr, "in", "spoolss_ConfigurePort");
24889 if (flags & NDR_OUT) {
24890 ndr_print_struct(ndr, "out", "spoolss_ConfigurePort");
24892 ndr_print_WERROR(ndr, "result", r->out.result);
24898 static enum ndr_err_code ndr_push_spoolss_DeletePort(struct ndr_push *ndr, int flags, const struct spoolss_DeletePort *r)
24900 if (flags & NDR_IN) {
24902 if (flags & NDR_OUT) {
24903 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24905 return NDR_ERR_SUCCESS;
24908 static enum ndr_err_code ndr_pull_spoolss_DeletePort(struct ndr_pull *ndr, int flags, struct spoolss_DeletePort *r)
24910 if (flags & NDR_IN) {
24912 if (flags & NDR_OUT) {
24913 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24915 return NDR_ERR_SUCCESS;
24918 _PUBLIC_ void ndr_print_spoolss_DeletePort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePort *r)
24920 ndr_print_struct(ndr, name, "spoolss_DeletePort");
24922 if (flags & NDR_SET_VALUES) {
24923 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24925 if (flags & NDR_IN) {
24926 ndr_print_struct(ndr, "in", "spoolss_DeletePort");
24930 if (flags & NDR_OUT) {
24931 ndr_print_struct(ndr, "out", "spoolss_DeletePort");
24933 ndr_print_WERROR(ndr, "result", r->out.result);
24939 static enum ndr_err_code ndr_push_spoolss_CreatePrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_CreatePrinterIC *r)
24941 if (flags & NDR_IN) {
24942 if (r->in.handle == NULL) {
24943 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24945 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24946 if (r->in.devmode_ctr == NULL) {
24947 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24949 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
24951 if (flags & NDR_OUT) {
24952 if (r->out.gdi_handle == NULL) {
24953 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24955 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.gdi_handle));
24956 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24958 return NDR_ERR_SUCCESS;
24961 static enum ndr_err_code ndr_pull_spoolss_CreatePrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_CreatePrinterIC *r)
24963 TALLOC_CTX *_mem_save_handle_0;
24964 TALLOC_CTX *_mem_save_gdi_handle_0;
24965 TALLOC_CTX *_mem_save_devmode_ctr_0;
24966 if (flags & NDR_IN) {
24967 ZERO_STRUCT(r->out);
24969 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24970 NDR_PULL_ALLOC(ndr, r->in.handle);
24972 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24973 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24974 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24975 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24976 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24977 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
24979 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
24980 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
24981 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
24982 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
24983 NDR_PULL_ALLOC(ndr, r->out.gdi_handle);
24984 ZERO_STRUCTP(r->out.gdi_handle);
24986 if (flags & NDR_OUT) {
24987 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24988 NDR_PULL_ALLOC(ndr, r->out.gdi_handle);
24990 _mem_save_gdi_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24991 NDR_PULL_SET_MEM_CTX(ndr, r->out.gdi_handle, LIBNDR_FLAG_REF_ALLOC);
24992 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.gdi_handle));
24993 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_gdi_handle_0, LIBNDR_FLAG_REF_ALLOC);
24994 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24996 return NDR_ERR_SUCCESS;
24999 _PUBLIC_ void ndr_print_spoolss_CreatePrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_CreatePrinterIC *r)
25001 ndr_print_struct(ndr, name, "spoolss_CreatePrinterIC");
25003 if (flags & NDR_SET_VALUES) {
25004 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25006 if (flags & NDR_IN) {
25007 ndr_print_struct(ndr, "in", "spoolss_CreatePrinterIC");
25009 ndr_print_ptr(ndr, "handle", r->in.handle);
25011 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25013 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
25015 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
25019 if (flags & NDR_OUT) {
25020 ndr_print_struct(ndr, "out", "spoolss_CreatePrinterIC");
25022 ndr_print_ptr(ndr, "gdi_handle", r->out.gdi_handle);
25024 ndr_print_policy_handle(ndr, "gdi_handle", r->out.gdi_handle);
25026 ndr_print_WERROR(ndr, "result", r->out.result);
25032 static enum ndr_err_code ndr_push_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_PlayGDIScriptOnPrinterIC *r)
25034 if (flags & NDR_IN) {
25036 if (flags & NDR_OUT) {
25037 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25039 return NDR_ERR_SUCCESS;
25042 static enum ndr_err_code ndr_pull_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_PlayGDIScriptOnPrinterIC *r)
25044 if (flags & NDR_IN) {
25046 if (flags & NDR_OUT) {
25047 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25049 return NDR_ERR_SUCCESS;
25052 _PUBLIC_ void ndr_print_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_PlayGDIScriptOnPrinterIC *r)
25054 ndr_print_struct(ndr, name, "spoolss_PlayGDIScriptOnPrinterIC");
25056 if (flags & NDR_SET_VALUES) {
25057 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25059 if (flags & NDR_IN) {
25060 ndr_print_struct(ndr, "in", "spoolss_PlayGDIScriptOnPrinterIC");
25064 if (flags & NDR_OUT) {
25065 ndr_print_struct(ndr, "out", "spoolss_PlayGDIScriptOnPrinterIC");
25067 ndr_print_WERROR(ndr, "result", r->out.result);
25073 static enum ndr_err_code ndr_push_spoolss_DeletePrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterIC *r)
25075 if (flags & NDR_IN) {
25076 if (r->in.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->in.gdi_handle));
25081 if (flags & NDR_OUT) {
25082 if (r->out.gdi_handle == NULL) {
25083 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25085 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.gdi_handle));
25086 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25088 return NDR_ERR_SUCCESS;
25091 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterIC *r)
25093 TALLOC_CTX *_mem_save_gdi_handle_0;
25094 if (flags & NDR_IN) {
25095 ZERO_STRUCT(r->out);
25097 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25098 NDR_PULL_ALLOC(ndr, r->in.gdi_handle);
25100 _mem_save_gdi_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25101 NDR_PULL_SET_MEM_CTX(ndr, r->in.gdi_handle, LIBNDR_FLAG_REF_ALLOC);
25102 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.gdi_handle));
25103 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_gdi_handle_0, LIBNDR_FLAG_REF_ALLOC);
25104 NDR_PULL_ALLOC(ndr, r->out.gdi_handle);
25105 *r->out.gdi_handle = *r->in.gdi_handle;
25107 if (flags & NDR_OUT) {
25108 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25109 NDR_PULL_ALLOC(ndr, r->out.gdi_handle);
25111 _mem_save_gdi_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25112 NDR_PULL_SET_MEM_CTX(ndr, r->out.gdi_handle, LIBNDR_FLAG_REF_ALLOC);
25113 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.gdi_handle));
25114 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_gdi_handle_0, LIBNDR_FLAG_REF_ALLOC);
25115 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25117 return NDR_ERR_SUCCESS;
25120 _PUBLIC_ void ndr_print_spoolss_DeletePrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterIC *r)
25122 ndr_print_struct(ndr, name, "spoolss_DeletePrinterIC");
25124 if (flags & NDR_SET_VALUES) {
25125 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25127 if (flags & NDR_IN) {
25128 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterIC");
25130 ndr_print_ptr(ndr, "gdi_handle", r->in.gdi_handle);
25132 ndr_print_policy_handle(ndr, "gdi_handle", r->in.gdi_handle);
25136 if (flags & NDR_OUT) {
25137 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterIC");
25139 ndr_print_ptr(ndr, "gdi_handle", r->out.gdi_handle);
25141 ndr_print_policy_handle(ndr, "gdi_handle", r->out.gdi_handle);
25143 ndr_print_WERROR(ndr, "result", r->out.result);
25149 static enum ndr_err_code ndr_push_spoolss_AddPrinterConnection(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterConnection *r)
25151 if (flags & NDR_IN) {
25153 if (flags & NDR_OUT) {
25154 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25156 return NDR_ERR_SUCCESS;
25159 static enum ndr_err_code ndr_pull_spoolss_AddPrinterConnection(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterConnection *r)
25161 if (flags & NDR_IN) {
25163 if (flags & NDR_OUT) {
25164 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25166 return NDR_ERR_SUCCESS;
25169 _PUBLIC_ void ndr_print_spoolss_AddPrinterConnection(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterConnection *r)
25171 ndr_print_struct(ndr, name, "spoolss_AddPrinterConnection");
25173 if (flags & NDR_SET_VALUES) {
25174 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25176 if (flags & NDR_IN) {
25177 ndr_print_struct(ndr, "in", "spoolss_AddPrinterConnection");
25181 if (flags & NDR_OUT) {
25182 ndr_print_struct(ndr, "out", "spoolss_AddPrinterConnection");
25184 ndr_print_WERROR(ndr, "result", r->out.result);
25190 static enum ndr_err_code ndr_push_spoolss_DeletePrinterConnection(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterConnection *r)
25192 if (flags & NDR_IN) {
25194 if (flags & NDR_OUT) {
25195 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25197 return NDR_ERR_SUCCESS;
25200 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterConnection(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterConnection *r)
25202 if (flags & NDR_IN) {
25204 if (flags & NDR_OUT) {
25205 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25207 return NDR_ERR_SUCCESS;
25210 _PUBLIC_ void ndr_print_spoolss_DeletePrinterConnection(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterConnection *r)
25212 ndr_print_struct(ndr, name, "spoolss_DeletePrinterConnection");
25214 if (flags & NDR_SET_VALUES) {
25215 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25217 if (flags & NDR_IN) {
25218 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterConnection");
25222 if (flags & NDR_OUT) {
25223 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterConnection");
25225 ndr_print_WERROR(ndr, "result", r->out.result);
25231 static enum ndr_err_code ndr_push_spoolss_PrinterMessageBox(struct ndr_push *ndr, int flags, const struct spoolss_PrinterMessageBox *r)
25233 if (flags & NDR_IN) {
25235 if (flags & NDR_OUT) {
25236 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25238 return NDR_ERR_SUCCESS;
25241 static enum ndr_err_code ndr_pull_spoolss_PrinterMessageBox(struct ndr_pull *ndr, int flags, struct spoolss_PrinterMessageBox *r)
25243 if (flags & NDR_IN) {
25245 if (flags & NDR_OUT) {
25246 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25248 return NDR_ERR_SUCCESS;
25251 _PUBLIC_ void ndr_print_spoolss_PrinterMessageBox(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_PrinterMessageBox *r)
25253 ndr_print_struct(ndr, name, "spoolss_PrinterMessageBox");
25255 if (flags & NDR_SET_VALUES) {
25256 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25258 if (flags & NDR_IN) {
25259 ndr_print_struct(ndr, "in", "spoolss_PrinterMessageBox");
25263 if (flags & NDR_OUT) {
25264 ndr_print_struct(ndr, "out", "spoolss_PrinterMessageBox");
25266 ndr_print_WERROR(ndr, "result", r->out.result);
25272 static enum ndr_err_code ndr_push_spoolss_AddMonitor(struct ndr_push *ndr, int flags, const struct spoolss_AddMonitor *r)
25274 if (flags & NDR_IN) {
25276 if (flags & NDR_OUT) {
25277 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25279 return NDR_ERR_SUCCESS;
25282 static enum ndr_err_code ndr_pull_spoolss_AddMonitor(struct ndr_pull *ndr, int flags, struct spoolss_AddMonitor *r)
25284 if (flags & NDR_IN) {
25286 if (flags & NDR_OUT) {
25287 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25289 return NDR_ERR_SUCCESS;
25292 _PUBLIC_ void ndr_print_spoolss_AddMonitor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddMonitor *r)
25294 ndr_print_struct(ndr, name, "spoolss_AddMonitor");
25296 if (flags & NDR_SET_VALUES) {
25297 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25299 if (flags & NDR_IN) {
25300 ndr_print_struct(ndr, "in", "spoolss_AddMonitor");
25304 if (flags & NDR_OUT) {
25305 ndr_print_struct(ndr, "out", "spoolss_AddMonitor");
25307 ndr_print_WERROR(ndr, "result", r->out.result);
25313 static enum ndr_err_code ndr_push_spoolss_DeleteMonitor(struct ndr_push *ndr, int flags, const struct spoolss_DeleteMonitor *r)
25315 if (flags & NDR_IN) {
25317 if (flags & NDR_OUT) {
25318 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25320 return NDR_ERR_SUCCESS;
25323 static enum ndr_err_code ndr_pull_spoolss_DeleteMonitor(struct ndr_pull *ndr, int flags, struct spoolss_DeleteMonitor *r)
25325 if (flags & NDR_IN) {
25327 if (flags & NDR_OUT) {
25328 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25330 return NDR_ERR_SUCCESS;
25333 _PUBLIC_ void ndr_print_spoolss_DeleteMonitor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeleteMonitor *r)
25335 ndr_print_struct(ndr, name, "spoolss_DeleteMonitor");
25337 if (flags & NDR_SET_VALUES) {
25338 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25340 if (flags & NDR_IN) {
25341 ndr_print_struct(ndr, "in", "spoolss_DeleteMonitor");
25345 if (flags & NDR_OUT) {
25346 ndr_print_struct(ndr, "out", "spoolss_DeleteMonitor");
25348 ndr_print_WERROR(ndr, "result", r->out.result);
25354 static enum ndr_err_code ndr_push_spoolss_DeletePrintProcessor(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrintProcessor *r)
25356 if (flags & NDR_IN) {
25358 if (flags & NDR_OUT) {
25359 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25361 return NDR_ERR_SUCCESS;
25364 static enum ndr_err_code ndr_pull_spoolss_DeletePrintProcessor(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrintProcessor *r)
25366 if (flags & NDR_IN) {
25368 if (flags & NDR_OUT) {
25369 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25371 return NDR_ERR_SUCCESS;
25374 _PUBLIC_ void ndr_print_spoolss_DeletePrintProcessor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrintProcessor *r)
25376 ndr_print_struct(ndr, name, "spoolss_DeletePrintProcessor");
25378 if (flags & NDR_SET_VALUES) {
25379 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25381 if (flags & NDR_IN) {
25382 ndr_print_struct(ndr, "in", "spoolss_DeletePrintProcessor");
25386 if (flags & NDR_OUT) {
25387 ndr_print_struct(ndr, "out", "spoolss_DeletePrintProcessor");
25389 ndr_print_WERROR(ndr, "result", r->out.result);
25395 static enum ndr_err_code ndr_push_spoolss_AddPrintProvidor(struct ndr_push *ndr, int flags, const struct spoolss_AddPrintProvidor *r)
25397 if (flags & NDR_IN) {
25399 if (flags & NDR_OUT) {
25400 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25402 return NDR_ERR_SUCCESS;
25405 static enum ndr_err_code ndr_pull_spoolss_AddPrintProvidor(struct ndr_pull *ndr, int flags, struct spoolss_AddPrintProvidor *r)
25407 if (flags & NDR_IN) {
25409 if (flags & NDR_OUT) {
25410 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25412 return NDR_ERR_SUCCESS;
25415 _PUBLIC_ void ndr_print_spoolss_AddPrintProvidor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrintProvidor *r)
25417 ndr_print_struct(ndr, name, "spoolss_AddPrintProvidor");
25419 if (flags & NDR_SET_VALUES) {
25420 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25422 if (flags & NDR_IN) {
25423 ndr_print_struct(ndr, "in", "spoolss_AddPrintProvidor");
25427 if (flags & NDR_OUT) {
25428 ndr_print_struct(ndr, "out", "spoolss_AddPrintProvidor");
25430 ndr_print_WERROR(ndr, "result", r->out.result);
25436 static enum ndr_err_code ndr_push_spoolss_DeletePrintProvidor(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrintProvidor *r)
25438 if (flags & NDR_IN) {
25440 if (flags & NDR_OUT) {
25441 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25443 return NDR_ERR_SUCCESS;
25446 static enum ndr_err_code ndr_pull_spoolss_DeletePrintProvidor(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrintProvidor *r)
25448 if (flags & NDR_IN) {
25450 if (flags & NDR_OUT) {
25451 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25453 return NDR_ERR_SUCCESS;
25456 _PUBLIC_ void ndr_print_spoolss_DeletePrintProvidor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrintProvidor *r)
25458 ndr_print_struct(ndr, name, "spoolss_DeletePrintProvidor");
25460 if (flags & NDR_SET_VALUES) {
25461 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25463 if (flags & NDR_IN) {
25464 ndr_print_struct(ndr, "in", "spoolss_DeletePrintProvidor");
25468 if (flags & NDR_OUT) {
25469 ndr_print_struct(ndr, "out", "spoolss_DeletePrintProvidor");
25471 ndr_print_WERROR(ndr, "result", r->out.result);
25477 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrintProcDataTypes(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrintProcDataTypes *r)
25479 if (flags & NDR_IN) {
25480 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
25481 if (r->in.servername) {
25482 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
25483 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
25484 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
25485 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
25487 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.print_processor_name));
25488 if (r->in.print_processor_name) {
25489 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
25490 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
25491 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
25492 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));
25494 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
25495 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
25496 if (r->in.buffer) {
25497 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
25499 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
25501 if (flags & NDR_OUT) {
25502 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
25504 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
25506 if (r->out.needed == NULL) {
25507 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25509 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
25510 if (r->out.count == NULL) {
25511 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25513 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
25514 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25516 return NDR_ERR_SUCCESS;
25519 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrintProcDataTypes(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrintProcDataTypes *r)
25521 uint32_t _ptr_servername;
25522 uint32_t _ptr_print_processor_name;
25523 uint32_t _ptr_buffer;
25524 uint32_t _ptr_info;
25525 TALLOC_CTX *_mem_save_servername_0;
25526 TALLOC_CTX *_mem_save_print_processor_name_0;
25527 TALLOC_CTX *_mem_save_buffer_0;
25528 TALLOC_CTX *_mem_save_info_0;
25529 TALLOC_CTX *_mem_save_needed_0;
25530 TALLOC_CTX *_mem_save_count_0;
25531 if (flags & NDR_IN) {
25532 ZERO_STRUCT(r->out);
25534 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
25535 if (_ptr_servername) {
25536 NDR_PULL_ALLOC(ndr, r->in.servername);
25538 r->in.servername = NULL;
25540 if (r->in.servername) {
25541 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
25542 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
25543 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
25544 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
25545 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
25546 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));
25548 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
25549 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
25550 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
25552 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor_name));
25553 if (_ptr_print_processor_name) {
25554 NDR_PULL_ALLOC(ndr, r->in.print_processor_name);
25556 r->in.print_processor_name = NULL;
25558 if (r->in.print_processor_name) {
25559 _mem_save_print_processor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
25560 NDR_PULL_SET_MEM_CTX(ndr, r->in.print_processor_name, 0);
25561 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.print_processor_name));
25562 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.print_processor_name));
25563 if (ndr_get_array_length(ndr, &r->in.print_processor_name) > ndr_get_array_size(ndr, &r->in.print_processor_name)) {
25564 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));
25566 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.print_processor_name), sizeof(uint16_t)));
25567 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));
25568 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_name_0, 0);
25570 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
25571 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
25573 NDR_PULL_ALLOC(ndr, r->in.buffer);
25575 r->in.buffer = NULL;
25577 if (r->in.buffer) {
25578 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
25579 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
25580 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
25581 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
25583 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
25584 NDR_PULL_ALLOC(ndr, r->out.needed);
25585 ZERO_STRUCTP(r->out.needed);
25586 NDR_PULL_ALLOC(ndr, r->out.count);
25587 ZERO_STRUCTP(r->out.count);
25589 if (flags & NDR_OUT) {
25590 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
25592 NDR_PULL_ALLOC(ndr, r->out.info);
25594 r->out.info = NULL;
25597 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
25598 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
25599 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
25600 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
25602 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25603 NDR_PULL_ALLOC(ndr, r->out.needed);
25605 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
25606 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
25607 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
25608 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
25609 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25610 NDR_PULL_ALLOC(ndr, r->out.count);
25612 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
25613 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
25614 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
25615 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
25616 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25618 return NDR_ERR_SUCCESS;
25621 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrintProcDataTypes(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrintProcDataTypes *r)
25623 uint32_t cntr_info_0;
25624 if (flags & NDR_IN) {
25625 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
25626 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
25628 if (flags & NDR_OUT) {
25629 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
25630 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
25631 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
25633 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
25634 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
25637 return NDR_ERR_SUCCESS;
25640 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrintProcDataTypes(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrintProcDataTypes *r)
25642 uint32_t cntr_info_0;
25643 TALLOC_CTX *_mem_save_info_0;
25644 if (flags & NDR_IN) {
25645 ZERO_STRUCT(r->out);
25647 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
25648 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
25650 if (flags & NDR_OUT) {
25651 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
25652 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
25653 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
25654 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
25655 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
25656 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
25658 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
25659 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
25661 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
25663 return NDR_ERR_SUCCESS;
25666 _PUBLIC_ void ndr_print_spoolss_EnumPrintProcDataTypes(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrintProcDataTypes *r)
25668 uint32_t cntr_info_2;
25669 ndr_print_struct(ndr, name, "spoolss_EnumPrintProcDataTypes");
25671 if (flags & NDR_SET_VALUES) {
25672 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25674 if (flags & NDR_IN) {
25675 ndr_print_struct(ndr, "in", "spoolss_EnumPrintProcDataTypes");
25677 ndr_print_ptr(ndr, "servername", r->in.servername);
25679 if (r->in.servername) {
25680 ndr_print_string(ndr, "servername", r->in.servername);
25683 ndr_print_ptr(ndr, "print_processor_name", r->in.print_processor_name);
25685 if (r->in.print_processor_name) {
25686 ndr_print_string(ndr, "print_processor_name", r->in.print_processor_name);
25689 ndr_print_uint32(ndr, "level", r->in.level);
25690 ndr_print_ptr(ndr, "buffer", r->in.buffer);
25692 if (r->in.buffer) {
25693 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
25696 ndr_print_uint32(ndr, "offered", r->in.offered);
25699 if (flags & NDR_OUT) {
25700 ndr_print_struct(ndr, "out", "spoolss_EnumPrintProcDataTypes");
25702 ndr_print_ptr(ndr, "count", r->out.count);
25704 ndr_print_uint32(ndr, "count", *r->out.count);
25706 ndr_print_ptr(ndr, "info", r->out.info);
25708 ndr_print_ptr(ndr, "info", *r->out.info);
25710 if (*r->out.info) {
25711 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
25713 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
25715 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
25716 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
25717 ndr_print_spoolss_PrintProcDataTypesInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
25725 ndr_print_ptr(ndr, "needed", r->out.needed);
25727 ndr_print_uint32(ndr, "needed", *r->out.needed);
25729 ndr_print_WERROR(ndr, "result", r->out.result);
25735 static enum ndr_err_code ndr_push_spoolss_ResetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ResetPrinter *r)
25737 if (flags & NDR_IN) {
25738 if (r->in.handle == NULL) {
25739 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25741 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25742 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.data_type));
25743 if (r->in.data_type) {
25744 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.data_type, CH_UTF16)));
25745 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
25746 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.data_type, CH_UTF16)));
25747 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));
25749 if (r->in.devmode_ctr == NULL) {
25750 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25752 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
25754 if (flags & NDR_OUT) {
25755 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25757 return NDR_ERR_SUCCESS;
25760 static enum ndr_err_code ndr_pull_spoolss_ResetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ResetPrinter *r)
25762 uint32_t _ptr_data_type;
25763 TALLOC_CTX *_mem_save_handle_0;
25764 TALLOC_CTX *_mem_save_data_type_0;
25765 TALLOC_CTX *_mem_save_devmode_ctr_0;
25766 if (flags & NDR_IN) {
25767 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25768 NDR_PULL_ALLOC(ndr, r->in.handle);
25770 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25771 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25772 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25773 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25774 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
25775 if (_ptr_data_type) {
25776 NDR_PULL_ALLOC(ndr, r->in.data_type);
25778 r->in.data_type = NULL;
25780 if (r->in.data_type) {
25781 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
25782 NDR_PULL_SET_MEM_CTX(ndr, r->in.data_type, 0);
25783 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.data_type));
25784 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.data_type));
25785 if (ndr_get_array_length(ndr, &r->in.data_type) > ndr_get_array_size(ndr, &r->in.data_type)) {
25786 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));
25788 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.data_type), sizeof(uint16_t)));
25789 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));
25790 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
25792 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25793 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
25795 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
25796 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
25797 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
25798 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
25800 if (flags & NDR_OUT) {
25801 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25803 return NDR_ERR_SUCCESS;
25806 _PUBLIC_ void ndr_print_spoolss_ResetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ResetPrinter *r)
25808 ndr_print_struct(ndr, name, "spoolss_ResetPrinter");
25810 if (flags & NDR_SET_VALUES) {
25811 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25813 if (flags & NDR_IN) {
25814 ndr_print_struct(ndr, "in", "spoolss_ResetPrinter");
25816 ndr_print_ptr(ndr, "handle", r->in.handle);
25818 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25820 ndr_print_ptr(ndr, "data_type", r->in.data_type);
25822 if (r->in.data_type) {
25823 ndr_print_string(ndr, "data_type", r->in.data_type);
25826 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
25828 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
25832 if (flags & NDR_OUT) {
25833 ndr_print_struct(ndr, "out", "spoolss_ResetPrinter");
25835 ndr_print_WERROR(ndr, "result", r->out.result);
25841 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriver2(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriver2 *r)
25843 if (flags & NDR_IN) {
25844 if (r->in.handle == NULL) {
25845 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25847 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25848 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.architecture));
25849 if (r->in.architecture) {
25850 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
25851 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
25852 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
25853 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
25855 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
25856 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
25857 if (r->in.buffer) {
25858 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
25860 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
25861 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_major_version));
25862 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_minor_version));
25864 if (flags & NDR_OUT) {
25865 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
25868 struct ndr_push *_ndr_info;
25869 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
25870 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
25871 NDR_CHECK(ndr_push_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
25872 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
25875 if (r->out.needed == NULL) {
25876 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25878 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
25879 if (r->out.server_major_version == NULL) {
25880 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25882 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.server_major_version));
25883 if (r->out.server_minor_version == NULL) {
25884 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25886 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.server_minor_version));
25887 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25889 return NDR_ERR_SUCCESS;
25892 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriver2(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriver2 *r)
25894 uint32_t _ptr_architecture;
25895 uint32_t _ptr_buffer;
25896 uint32_t _ptr_info;
25897 TALLOC_CTX *_mem_save_handle_0;
25898 TALLOC_CTX *_mem_save_architecture_0;
25899 TALLOC_CTX *_mem_save_buffer_0;
25900 TALLOC_CTX *_mem_save_info_0;
25901 TALLOC_CTX *_mem_save_needed_0;
25902 TALLOC_CTX *_mem_save_server_major_version_0;
25903 TALLOC_CTX *_mem_save_server_minor_version_0;
25904 if (flags & NDR_IN) {
25905 ZERO_STRUCT(r->out);
25907 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25908 NDR_PULL_ALLOC(ndr, r->in.handle);
25910 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25911 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25912 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25913 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25914 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
25915 if (_ptr_architecture) {
25916 NDR_PULL_ALLOC(ndr, r->in.architecture);
25918 r->in.architecture = NULL;
25920 if (r->in.architecture) {
25921 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
25922 NDR_PULL_SET_MEM_CTX(ndr, r->in.architecture, 0);
25923 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
25924 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
25925 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
25926 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));
25928 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
25929 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
25930 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
25932 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
25933 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
25935 NDR_PULL_ALLOC(ndr, r->in.buffer);
25937 r->in.buffer = NULL;
25939 if (r->in.buffer) {
25940 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
25941 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
25942 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
25943 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
25945 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
25946 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_major_version));
25947 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_minor_version));
25948 NDR_PULL_ALLOC(ndr, r->out.needed);
25949 ZERO_STRUCTP(r->out.needed);
25950 NDR_PULL_ALLOC(ndr, r->out.server_major_version);
25951 ZERO_STRUCTP(r->out.server_major_version);
25952 NDR_PULL_ALLOC(ndr, r->out.server_minor_version);
25953 ZERO_STRUCTP(r->out.server_minor_version);
25955 if (flags & NDR_OUT) {
25956 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
25958 NDR_PULL_ALLOC(ndr, r->out.info);
25960 r->out.info = NULL;
25963 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
25964 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
25966 struct ndr_pull *_ndr_info;
25967 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
25968 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
25969 NDR_CHECK(ndr_pull_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
25970 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
25972 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
25974 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25975 NDR_PULL_ALLOC(ndr, r->out.needed);
25977 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
25978 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
25979 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
25980 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
25981 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25982 NDR_PULL_ALLOC(ndr, r->out.server_major_version);
25984 _mem_save_server_major_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
25985 NDR_PULL_SET_MEM_CTX(ndr, r->out.server_major_version, LIBNDR_FLAG_REF_ALLOC);
25986 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.server_major_version));
25987 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_major_version_0, LIBNDR_FLAG_REF_ALLOC);
25988 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25989 NDR_PULL_ALLOC(ndr, r->out.server_minor_version);
25991 _mem_save_server_minor_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
25992 NDR_PULL_SET_MEM_CTX(ndr, r->out.server_minor_version, LIBNDR_FLAG_REF_ALLOC);
25993 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.server_minor_version));
25994 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_minor_version_0, LIBNDR_FLAG_REF_ALLOC);
25995 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25997 return NDR_ERR_SUCCESS;
26000 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriver2(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriver2 *r)
26002 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriver2");
26004 if (flags & NDR_SET_VALUES) {
26005 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26007 if (flags & NDR_IN) {
26008 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriver2");
26010 ndr_print_ptr(ndr, "handle", r->in.handle);
26012 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26014 ndr_print_ptr(ndr, "architecture", r->in.architecture);
26016 if (r->in.architecture) {
26017 ndr_print_string(ndr, "architecture", r->in.architecture);
26020 ndr_print_uint32(ndr, "level", r->in.level);
26021 ndr_print_ptr(ndr, "buffer", r->in.buffer);
26023 if (r->in.buffer) {
26024 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
26027 ndr_print_uint32(ndr, "offered", r->in.offered);
26028 ndr_print_uint32(ndr, "client_major_version", r->in.client_major_version);
26029 ndr_print_uint32(ndr, "client_minor_version", r->in.client_minor_version);
26032 if (flags & NDR_OUT) {
26033 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriver2");
26035 ndr_print_ptr(ndr, "info", r->out.info);
26038 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
26039 ndr_print_spoolss_DriverInfo(ndr, "info", r->out.info);
26042 ndr_print_ptr(ndr, "needed", r->out.needed);
26044 ndr_print_uint32(ndr, "needed", *r->out.needed);
26046 ndr_print_ptr(ndr, "server_major_version", r->out.server_major_version);
26048 ndr_print_uint32(ndr, "server_major_version", *r->out.server_major_version);
26050 ndr_print_ptr(ndr, "server_minor_version", r->out.server_minor_version);
26052 ndr_print_uint32(ndr, "server_minor_version", *r->out.server_minor_version);
26054 ndr_print_WERROR(ndr, "result", r->out.result);
26060 static enum ndr_err_code ndr_push_spoolss_FindFirstPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_FindFirstPrinterChangeNotification *r)
26062 if (flags & NDR_IN) {
26064 if (flags & NDR_OUT) {
26065 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26067 return NDR_ERR_SUCCESS;
26070 static enum ndr_err_code ndr_pull_spoolss_FindFirstPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_FindFirstPrinterChangeNotification *r)
26072 if (flags & NDR_IN) {
26074 if (flags & NDR_OUT) {
26075 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26077 return NDR_ERR_SUCCESS;
26080 _PUBLIC_ void ndr_print_spoolss_FindFirstPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindFirstPrinterChangeNotification *r)
26082 ndr_print_struct(ndr, name, "spoolss_FindFirstPrinterChangeNotification");
26084 if (flags & NDR_SET_VALUES) {
26085 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26087 if (flags & NDR_IN) {
26088 ndr_print_struct(ndr, "in", "spoolss_FindFirstPrinterChangeNotification");
26092 if (flags & NDR_OUT) {
26093 ndr_print_struct(ndr, "out", "spoolss_FindFirstPrinterChangeNotification");
26095 ndr_print_WERROR(ndr, "result", r->out.result);
26101 static enum ndr_err_code ndr_push_spoolss_FindNextPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_FindNextPrinterChangeNotification *r)
26103 if (flags & NDR_IN) {
26105 if (flags & NDR_OUT) {
26106 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26108 return NDR_ERR_SUCCESS;
26111 static enum ndr_err_code ndr_pull_spoolss_FindNextPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_FindNextPrinterChangeNotification *r)
26113 if (flags & NDR_IN) {
26115 if (flags & NDR_OUT) {
26116 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26118 return NDR_ERR_SUCCESS;
26121 _PUBLIC_ void ndr_print_spoolss_FindNextPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindNextPrinterChangeNotification *r)
26123 ndr_print_struct(ndr, name, "spoolss_FindNextPrinterChangeNotification");
26125 if (flags & NDR_SET_VALUES) {
26126 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26128 if (flags & NDR_IN) {
26129 ndr_print_struct(ndr, "in", "spoolss_FindNextPrinterChangeNotification");
26133 if (flags & NDR_OUT) {
26134 ndr_print_struct(ndr, "out", "spoolss_FindNextPrinterChangeNotification");
26136 ndr_print_WERROR(ndr, "result", r->out.result);
26142 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FindClosePrinterNotify(struct ndr_push *ndr, int flags, const struct spoolss_FindClosePrinterNotify *r)
26144 if (flags & NDR_IN) {
26145 if (r->in.handle == NULL) {
26146 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26148 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26150 if (flags & NDR_OUT) {
26151 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26153 return NDR_ERR_SUCCESS;
26156 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FindClosePrinterNotify(struct ndr_pull *ndr, int flags, struct spoolss_FindClosePrinterNotify *r)
26158 TALLOC_CTX *_mem_save_handle_0;
26159 if (flags & NDR_IN) {
26160 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26161 NDR_PULL_ALLOC(ndr, r->in.handle);
26163 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26164 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26165 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26166 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26168 if (flags & NDR_OUT) {
26169 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26171 return NDR_ERR_SUCCESS;
26174 _PUBLIC_ void ndr_print_spoolss_FindClosePrinterNotify(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindClosePrinterNotify *r)
26176 ndr_print_struct(ndr, name, "spoolss_FindClosePrinterNotify");
26178 if (flags & NDR_SET_VALUES) {
26179 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26181 if (flags & NDR_IN) {
26182 ndr_print_struct(ndr, "in", "spoolss_FindClosePrinterNotify");
26184 ndr_print_ptr(ndr, "handle", r->in.handle);
26186 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26190 if (flags & NDR_OUT) {
26191 ndr_print_struct(ndr, "out", "spoolss_FindClosePrinterNotify");
26193 ndr_print_WERROR(ndr, "result", r->out.result);
26199 static enum ndr_err_code ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_push *ndr, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
26201 if (flags & NDR_IN) {
26203 if (flags & NDR_OUT) {
26204 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26206 return NDR_ERR_SUCCESS;
26209 static enum ndr_err_code ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_pull *ndr, int flags, struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
26211 if (flags & NDR_IN) {
26213 if (flags & NDR_OUT) {
26214 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26216 return NDR_ERR_SUCCESS;
26219 _PUBLIC_ void ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
26221 ndr_print_struct(ndr, name, "spoolss_RouterFindFirstPrinterChangeNotificationOld");
26223 if (flags & NDR_SET_VALUES) {
26224 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26226 if (flags & NDR_IN) {
26227 ndr_print_struct(ndr, "in", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
26231 if (flags & NDR_OUT) {
26232 ndr_print_struct(ndr, "out", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
26234 ndr_print_WERROR(ndr, "result", r->out.result);
26240 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ReplyOpenPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReplyOpenPrinter *r)
26242 if (flags & NDR_IN) {
26243 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
26244 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
26245 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
26246 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));
26247 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.printer_local));
26248 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
26249 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
26250 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
26251 if (r->in.buffer) {
26252 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.bufsize));
26253 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.bufsize));
26256 if (flags & NDR_OUT) {
26257 if (r->out.handle == NULL) {
26258 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26260 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
26261 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26263 return NDR_ERR_SUCCESS;
26266 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ReplyOpenPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReplyOpenPrinter *r)
26268 uint32_t _ptr_buffer;
26269 TALLOC_CTX *_mem_save_buffer_0;
26270 TALLOC_CTX *_mem_save_handle_0;
26271 if (flags & NDR_IN) {
26272 ZERO_STRUCT(r->out);
26274 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
26275 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
26276 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
26277 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));
26279 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
26280 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));
26281 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.printer_local));
26282 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
26283 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.bufsize));
26284 if (r->in.bufsize > 512) {
26285 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
26287 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
26289 NDR_PULL_ALLOC(ndr, r->in.buffer);
26291 r->in.buffer = NULL;
26293 if (r->in.buffer) {
26294 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
26295 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
26296 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
26297 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
26298 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
26299 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
26301 NDR_PULL_ALLOC(ndr, r->out.handle);
26302 ZERO_STRUCTP(r->out.handle);
26303 if (r->in.buffer) {
26304 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.bufsize));
26307 if (flags & NDR_OUT) {
26308 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26309 NDR_PULL_ALLOC(ndr, r->out.handle);
26311 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26312 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
26313 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
26314 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26315 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26317 return NDR_ERR_SUCCESS;
26320 _PUBLIC_ void ndr_print_spoolss_ReplyOpenPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReplyOpenPrinter *r)
26322 ndr_print_struct(ndr, name, "spoolss_ReplyOpenPrinter");
26324 if (flags & NDR_SET_VALUES) {
26325 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26327 if (flags & NDR_IN) {
26328 ndr_print_struct(ndr, "in", "spoolss_ReplyOpenPrinter");
26330 ndr_print_string(ndr, "server_name", r->in.server_name);
26331 ndr_print_uint32(ndr, "printer_local", r->in.printer_local);
26332 ndr_print_winreg_Type(ndr, "type", r->in.type);
26333 ndr_print_uint32(ndr, "bufsize", r->in.bufsize);
26334 ndr_print_ptr(ndr, "buffer", r->in.buffer);
26336 if (r->in.buffer) {
26337 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.bufsize);
26342 if (flags & NDR_OUT) {
26343 ndr_print_struct(ndr, "out", "spoolss_ReplyOpenPrinter");
26345 ndr_print_ptr(ndr, "handle", r->out.handle);
26347 ndr_print_policy_handle(ndr, "handle", r->out.handle);
26349 ndr_print_WERROR(ndr, "result", r->out.result);
26355 static enum ndr_err_code ndr_push_spoolss_RouterReplyPrinter(struct ndr_push *ndr, int flags, const struct spoolss_RouterReplyPrinter *r)
26357 if (flags & NDR_IN) {
26358 if (r->in.handle == NULL) {
26359 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26361 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26362 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
26363 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
26364 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
26365 if (r->in.buffer) {
26366 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.bufsize));
26367 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.bufsize));
26370 if (flags & NDR_OUT) {
26371 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26373 return NDR_ERR_SUCCESS;
26376 static enum ndr_err_code ndr_pull_spoolss_RouterReplyPrinter(struct ndr_pull *ndr, int flags, struct spoolss_RouterReplyPrinter *r)
26378 uint32_t _ptr_buffer;
26379 TALLOC_CTX *_mem_save_handle_0;
26380 TALLOC_CTX *_mem_save_buffer_0;
26381 if (flags & NDR_IN) {
26382 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26383 NDR_PULL_ALLOC(ndr, r->in.handle);
26385 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26386 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26387 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26388 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26389 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
26390 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.bufsize));
26391 if (r->in.bufsize > 512) {
26392 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
26394 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
26396 NDR_PULL_ALLOC(ndr, r->in.buffer);
26398 r->in.buffer = NULL;
26400 if (r->in.buffer) {
26401 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
26402 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
26403 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
26404 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
26405 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
26406 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
26408 if (r->in.buffer) {
26409 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.bufsize));
26412 if (flags & NDR_OUT) {
26413 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26415 return NDR_ERR_SUCCESS;
26418 _PUBLIC_ void ndr_print_spoolss_RouterReplyPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterReplyPrinter *r)
26420 ndr_print_struct(ndr, name, "spoolss_RouterReplyPrinter");
26422 if (flags & NDR_SET_VALUES) {
26423 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26425 if (flags & NDR_IN) {
26426 ndr_print_struct(ndr, "in", "spoolss_RouterReplyPrinter");
26428 ndr_print_ptr(ndr, "handle", r->in.handle);
26430 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26432 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
26433 ndr_print_uint32(ndr, "bufsize", r->in.bufsize);
26434 ndr_print_ptr(ndr, "buffer", r->in.buffer);
26436 if (r->in.buffer) {
26437 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.bufsize);
26442 if (flags & NDR_OUT) {
26443 ndr_print_struct(ndr, "out", "spoolss_RouterReplyPrinter");
26445 ndr_print_WERROR(ndr, "result", r->out.result);
26451 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ReplyClosePrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReplyClosePrinter *r)
26453 if (flags & NDR_IN) {
26454 if (r->in.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->in.handle));
26459 if (flags & NDR_OUT) {
26460 if (r->out.handle == NULL) {
26461 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26463 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
26464 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26466 return NDR_ERR_SUCCESS;
26469 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ReplyClosePrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReplyClosePrinter *r)
26471 TALLOC_CTX *_mem_save_handle_0;
26472 if (flags & NDR_IN) {
26473 ZERO_STRUCT(r->out);
26475 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26476 NDR_PULL_ALLOC(ndr, r->in.handle);
26478 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26479 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26480 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26481 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26482 NDR_PULL_ALLOC(ndr, r->out.handle);
26483 *r->out.handle = *r->in.handle;
26485 if (flags & NDR_OUT) {
26486 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26487 NDR_PULL_ALLOC(ndr, r->out.handle);
26489 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26490 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
26491 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
26492 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26493 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26495 return NDR_ERR_SUCCESS;
26498 _PUBLIC_ void ndr_print_spoolss_ReplyClosePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReplyClosePrinter *r)
26500 ndr_print_struct(ndr, name, "spoolss_ReplyClosePrinter");
26502 if (flags & NDR_SET_VALUES) {
26503 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26505 if (flags & NDR_IN) {
26506 ndr_print_struct(ndr, "in", "spoolss_ReplyClosePrinter");
26508 ndr_print_ptr(ndr, "handle", r->in.handle);
26510 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26514 if (flags & NDR_OUT) {
26515 ndr_print_struct(ndr, "out", "spoolss_ReplyClosePrinter");
26517 ndr_print_ptr(ndr, "handle", r->out.handle);
26519 ndr_print_policy_handle(ndr, "handle", r->out.handle);
26521 ndr_print_WERROR(ndr, "result", r->out.result);
26527 static enum ndr_err_code ndr_push_spoolss_AddPortEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPortEx *r)
26529 if (flags & NDR_IN) {
26531 if (flags & NDR_OUT) {
26532 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26534 return NDR_ERR_SUCCESS;
26537 static enum ndr_err_code ndr_pull_spoolss_AddPortEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPortEx *r)
26539 if (flags & NDR_IN) {
26541 if (flags & NDR_OUT) {
26542 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26544 return NDR_ERR_SUCCESS;
26547 _PUBLIC_ void ndr_print_spoolss_AddPortEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPortEx *r)
26549 ndr_print_struct(ndr, name, "spoolss_AddPortEx");
26551 if (flags & NDR_SET_VALUES) {
26552 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26554 if (flags & NDR_IN) {
26555 ndr_print_struct(ndr, "in", "spoolss_AddPortEx");
26559 if (flags & NDR_OUT) {
26560 ndr_print_struct(ndr, "out", "spoolss_AddPortEx");
26562 ndr_print_WERROR(ndr, "result", r->out.result);
26568 static enum ndr_err_code ndr_push_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotification *r)
26570 if (flags & NDR_IN) {
26572 if (flags & NDR_OUT) {
26573 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26575 return NDR_ERR_SUCCESS;
26578 static enum ndr_err_code ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_RouterFindFirstPrinterChangeNotification *r)
26580 if (flags & NDR_IN) {
26582 if (flags & NDR_OUT) {
26583 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26585 return NDR_ERR_SUCCESS;
26588 _PUBLIC_ void ndr_print_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotification *r)
26590 ndr_print_struct(ndr, name, "spoolss_RouterFindFirstPrinterChangeNotification");
26592 if (flags & NDR_SET_VALUES) {
26593 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26595 if (flags & NDR_IN) {
26596 ndr_print_struct(ndr, "in", "spoolss_RouterFindFirstPrinterChangeNotification");
26600 if (flags & NDR_OUT) {
26601 ndr_print_struct(ndr, "out", "spoolss_RouterFindFirstPrinterChangeNotification");
26603 ndr_print_WERROR(ndr, "result", r->out.result);
26609 static enum ndr_err_code ndr_push_spoolss_SpoolerInit(struct ndr_push *ndr, int flags, const struct spoolss_SpoolerInit *r)
26611 if (flags & NDR_IN) {
26613 if (flags & NDR_OUT) {
26614 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26616 return NDR_ERR_SUCCESS;
26619 static enum ndr_err_code ndr_pull_spoolss_SpoolerInit(struct ndr_pull *ndr, int flags, struct spoolss_SpoolerInit *r)
26621 if (flags & NDR_IN) {
26623 if (flags & NDR_OUT) {
26624 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26626 return NDR_ERR_SUCCESS;
26629 _PUBLIC_ void ndr_print_spoolss_SpoolerInit(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SpoolerInit *r)
26631 ndr_print_struct(ndr, name, "spoolss_SpoolerInit");
26633 if (flags & NDR_SET_VALUES) {
26634 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26636 if (flags & NDR_IN) {
26637 ndr_print_struct(ndr, "in", "spoolss_SpoolerInit");
26641 if (flags & NDR_OUT) {
26642 ndr_print_struct(ndr, "out", "spoolss_SpoolerInit");
26644 ndr_print_WERROR(ndr, "result", r->out.result);
26650 static enum ndr_err_code ndr_push_spoolss_ResetPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_ResetPrinterEx *r)
26652 if (flags & NDR_IN) {
26654 if (flags & NDR_OUT) {
26655 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26657 return NDR_ERR_SUCCESS;
26660 static enum ndr_err_code ndr_pull_spoolss_ResetPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_ResetPrinterEx *r)
26662 if (flags & NDR_IN) {
26664 if (flags & NDR_OUT) {
26665 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26667 return NDR_ERR_SUCCESS;
26670 _PUBLIC_ void ndr_print_spoolss_ResetPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ResetPrinterEx *r)
26672 ndr_print_struct(ndr, name, "spoolss_ResetPrinterEx");
26674 if (flags & NDR_SET_VALUES) {
26675 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26677 if (flags & NDR_IN) {
26678 ndr_print_struct(ndr, "in", "spoolss_ResetPrinterEx");
26682 if (flags & NDR_OUT) {
26683 ndr_print_struct(ndr, "out", "spoolss_ResetPrinterEx");
26685 ndr_print_WERROR(ndr, "result", r->out.result);
26691 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_push *ndr, int flags, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
26693 if (flags & NDR_IN) {
26694 if (r->in.handle == NULL) {
26695 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26697 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26698 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
26699 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.options));
26700 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.local_machine));
26701 if (r->in.local_machine) {
26702 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.local_machine, CH_UTF16)));
26703 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
26704 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.local_machine, CH_UTF16)));
26705 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));
26707 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.printer_local));
26708 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.notify_options));
26709 if (r->in.notify_options) {
26710 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.notify_options));
26713 if (flags & NDR_OUT) {
26714 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26716 return NDR_ERR_SUCCESS;
26719 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_pull *ndr, int flags, struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
26721 uint32_t _ptr_local_machine;
26722 uint32_t _ptr_notify_options;
26723 TALLOC_CTX *_mem_save_handle_0;
26724 TALLOC_CTX *_mem_save_local_machine_0;
26725 TALLOC_CTX *_mem_save_notify_options_0;
26726 if (flags & NDR_IN) {
26727 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26728 NDR_PULL_ALLOC(ndr, r->in.handle);
26730 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26731 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26732 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26733 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26734 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
26735 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.options));
26736 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_local_machine));
26737 if (_ptr_local_machine) {
26738 NDR_PULL_ALLOC(ndr, r->in.local_machine);
26740 r->in.local_machine = NULL;
26742 if (r->in.local_machine) {
26743 _mem_save_local_machine_0 = NDR_PULL_GET_MEM_CTX(ndr);
26744 NDR_PULL_SET_MEM_CTX(ndr, r->in.local_machine, 0);
26745 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.local_machine));
26746 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.local_machine));
26747 if (ndr_get_array_length(ndr, &r->in.local_machine) > ndr_get_array_size(ndr, &r->in.local_machine)) {
26748 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));
26750 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.local_machine), sizeof(uint16_t)));
26751 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));
26752 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_local_machine_0, 0);
26754 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.printer_local));
26755 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_options));
26756 if (_ptr_notify_options) {
26757 NDR_PULL_ALLOC(ndr, r->in.notify_options);
26759 r->in.notify_options = NULL;
26761 if (r->in.notify_options) {
26762 _mem_save_notify_options_0 = NDR_PULL_GET_MEM_CTX(ndr);
26763 NDR_PULL_SET_MEM_CTX(ndr, r->in.notify_options, 0);
26764 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.notify_options));
26765 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_options_0, 0);
26768 if (flags & NDR_OUT) {
26769 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26771 return NDR_ERR_SUCCESS;
26774 _PUBLIC_ void ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
26776 ndr_print_struct(ndr, name, "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
26778 if (flags & NDR_SET_VALUES) {
26779 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26781 if (flags & NDR_IN) {
26782 ndr_print_struct(ndr, "in", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
26784 ndr_print_ptr(ndr, "handle", r->in.handle);
26786 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26788 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
26789 ndr_print_uint32(ndr, "options", r->in.options);
26790 ndr_print_ptr(ndr, "local_machine", r->in.local_machine);
26792 if (r->in.local_machine) {
26793 ndr_print_string(ndr, "local_machine", r->in.local_machine);
26796 ndr_print_uint32(ndr, "printer_local", r->in.printer_local);
26797 ndr_print_ptr(ndr, "notify_options", r->in.notify_options);
26799 if (r->in.notify_options) {
26800 ndr_print_spoolss_NotifyOption(ndr, "notify_options", r->in.notify_options);
26805 if (flags & NDR_OUT) {
26806 ndr_print_struct(ndr, "out", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
26808 ndr_print_WERROR(ndr, "result", r->out.result);
26814 static enum ndr_err_code ndr_push_spoolss_RouterReplyPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_RouterReplyPrinterEx *r)
26816 if (flags & NDR_IN) {
26817 if (r->in.handle == NULL) {
26818 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26820 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26821 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.color));
26822 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
26823 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.reply_type));
26824 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.reply_type));
26825 NDR_CHECK(ndr_push_spoolss_ReplyPrinterInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
26827 if (flags & NDR_OUT) {
26828 if (r->out.reply_result == NULL) {
26829 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26831 NDR_CHECK(ndr_push_spoolss_PrinterNotifyFlags(ndr, NDR_SCALARS, *r->out.reply_result));
26832 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26834 return NDR_ERR_SUCCESS;
26837 static enum ndr_err_code ndr_pull_spoolss_RouterReplyPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_RouterReplyPrinterEx *r)
26839 TALLOC_CTX *_mem_save_handle_0;
26840 TALLOC_CTX *_mem_save_reply_result_0;
26841 if (flags & NDR_IN) {
26842 ZERO_STRUCT(r->out);
26844 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26845 NDR_PULL_ALLOC(ndr, r->in.handle);
26847 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26848 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26849 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26850 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26851 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.color));
26852 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
26853 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.reply_type));
26854 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.reply_type));
26855 NDR_CHECK(ndr_pull_spoolss_ReplyPrinterInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
26856 NDR_PULL_ALLOC(ndr, r->out.reply_result);
26857 ZERO_STRUCTP(r->out.reply_result);
26859 if (flags & NDR_OUT) {
26860 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26861 NDR_PULL_ALLOC(ndr, r->out.reply_result);
26863 _mem_save_reply_result_0 = NDR_PULL_GET_MEM_CTX(ndr);
26864 NDR_PULL_SET_MEM_CTX(ndr, r->out.reply_result, LIBNDR_FLAG_REF_ALLOC);
26865 NDR_CHECK(ndr_pull_spoolss_PrinterNotifyFlags(ndr, NDR_SCALARS, r->out.reply_result));
26866 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_reply_result_0, LIBNDR_FLAG_REF_ALLOC);
26867 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26869 return NDR_ERR_SUCCESS;
26872 _PUBLIC_ void ndr_print_spoolss_RouterReplyPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterReplyPrinterEx *r)
26874 ndr_print_struct(ndr, name, "spoolss_RouterReplyPrinterEx");
26876 if (flags & NDR_SET_VALUES) {
26877 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26879 if (flags & NDR_IN) {
26880 ndr_print_struct(ndr, "in", "spoolss_RouterReplyPrinterEx");
26882 ndr_print_ptr(ndr, "handle", r->in.handle);
26884 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26886 ndr_print_uint32(ndr, "color", r->in.color);
26887 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
26888 ndr_print_uint32(ndr, "reply_type", r->in.reply_type);
26889 ndr_print_set_switch_value(ndr, &r->in.info, r->in.reply_type);
26890 ndr_print_spoolss_ReplyPrinterInfo(ndr, "info", &r->in.info);
26893 if (flags & NDR_OUT) {
26894 ndr_print_struct(ndr, "out", "spoolss_RouterReplyPrinterEx");
26896 ndr_print_ptr(ndr, "reply_result", r->out.reply_result);
26898 ndr_print_spoolss_PrinterNotifyFlags(ndr, "reply_result", *r->out.reply_result);
26900 ndr_print_WERROR(ndr, "result", r->out.result);
26906 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_push *ndr, int flags, const struct spoolss_RouterRefreshPrinterChangeNotify *r)
26908 if (flags & NDR_IN) {
26909 if (r->in.handle == NULL) {
26910 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26912 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26913 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.change_low));
26914 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.options));
26915 if (r->in.options) {
26916 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.options));
26919 if (flags & NDR_OUT) {
26920 if (r->out.info == NULL) {
26921 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26923 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
26924 if (*r->out.info) {
26925 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
26927 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26929 return NDR_ERR_SUCCESS;
26932 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_pull *ndr, int flags, struct spoolss_RouterRefreshPrinterChangeNotify *r)
26934 uint32_t _ptr_options;
26935 uint32_t _ptr_info;
26936 TALLOC_CTX *_mem_save_handle_0;
26937 TALLOC_CTX *_mem_save_options_0;
26938 TALLOC_CTX *_mem_save_info_0;
26939 TALLOC_CTX *_mem_save_info_1;
26940 if (flags & NDR_IN) {
26941 ZERO_STRUCT(r->out);
26943 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26944 NDR_PULL_ALLOC(ndr, r->in.handle);
26946 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26947 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26948 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26949 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26950 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.change_low));
26951 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_options));
26952 if (_ptr_options) {
26953 NDR_PULL_ALLOC(ndr, r->in.options);
26955 r->in.options = NULL;
26957 if (r->in.options) {
26958 _mem_save_options_0 = NDR_PULL_GET_MEM_CTX(ndr);
26959 NDR_PULL_SET_MEM_CTX(ndr, r->in.options, 0);
26960 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.options));
26961 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_options_0, 0);
26963 NDR_PULL_ALLOC(ndr, r->out.info);
26964 ZERO_STRUCTP(r->out.info);
26966 if (flags & NDR_OUT) {
26967 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26968 NDR_PULL_ALLOC(ndr, r->out.info);
26970 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
26971 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
26972 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
26974 NDR_PULL_ALLOC(ndr, *r->out.info);
26976 *r->out.info = NULL;
26978 if (*r->out.info) {
26979 _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
26980 NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
26981 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
26982 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
26984 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
26985 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26987 return NDR_ERR_SUCCESS;
26990 _PUBLIC_ void ndr_print_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterRefreshPrinterChangeNotify *r)
26992 ndr_print_struct(ndr, name, "spoolss_RouterRefreshPrinterChangeNotify");
26994 if (flags & NDR_SET_VALUES) {
26995 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26997 if (flags & NDR_IN) {
26998 ndr_print_struct(ndr, "in", "spoolss_RouterRefreshPrinterChangeNotify");
27000 ndr_print_ptr(ndr, "handle", r->in.handle);
27002 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27004 ndr_print_uint32(ndr, "change_low", r->in.change_low);
27005 ndr_print_ptr(ndr, "options", r->in.options);
27007 if (r->in.options) {
27008 ndr_print_spoolss_NotifyOption(ndr, "options", r->in.options);
27013 if (flags & NDR_OUT) {
27014 ndr_print_struct(ndr, "out", "spoolss_RouterRefreshPrinterChangeNotify");
27016 ndr_print_ptr(ndr, "info", r->out.info);
27018 ndr_print_ptr(ndr, "info", *r->out.info);
27020 if (*r->out.info) {
27021 ndr_print_spoolss_NotifyInfo(ndr, "info", *r->out.info);
27025 ndr_print_WERROR(ndr, "result", r->out.result);
27031 static enum ndr_err_code ndr_push_spoolss_44(struct ndr_push *ndr, int flags, const struct spoolss_44 *r)
27033 if (flags & NDR_IN) {
27035 if (flags & NDR_OUT) {
27036 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27038 return NDR_ERR_SUCCESS;
27041 static enum ndr_err_code ndr_pull_spoolss_44(struct ndr_pull *ndr, int flags, struct spoolss_44 *r)
27043 if (flags & NDR_IN) {
27045 if (flags & NDR_OUT) {
27046 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27048 return NDR_ERR_SUCCESS;
27051 _PUBLIC_ void ndr_print_spoolss_44(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_44 *r)
27053 ndr_print_struct(ndr, name, "spoolss_44");
27055 if (flags & NDR_SET_VALUES) {
27056 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27058 if (flags & NDR_IN) {
27059 ndr_print_struct(ndr, "in", "spoolss_44");
27063 if (flags & NDR_OUT) {
27064 ndr_print_struct(ndr, "out", "spoolss_44");
27066 ndr_print_WERROR(ndr, "result", r->out.result);
27072 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OpenPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_OpenPrinterEx *r)
27074 if (flags & NDR_IN) {
27075 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.printername));
27076 if (r->in.printername) {
27077 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
27078 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27079 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
27080 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
27082 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.datatype));
27083 if (r->in.datatype) {
27084 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
27085 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27086 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
27087 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.datatype, ndr_charset_length(r->in.datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
27089 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
27090 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr, NDR_SCALARS, r->in.access_mask));
27091 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
27092 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.userlevel, r->in.level));
27093 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.userlevel));
27095 if (flags & NDR_OUT) {
27096 if (r->out.handle == NULL) {
27097 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27099 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
27100 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27102 return NDR_ERR_SUCCESS;
27105 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OpenPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_OpenPrinterEx *r)
27107 uint32_t _ptr_printername;
27108 uint32_t _ptr_datatype;
27109 TALLOC_CTX *_mem_save_printername_0;
27110 TALLOC_CTX *_mem_save_datatype_0;
27111 TALLOC_CTX *_mem_save_handle_0;
27112 if (flags & NDR_IN) {
27113 ZERO_STRUCT(r->out);
27115 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
27116 if (_ptr_printername) {
27117 NDR_PULL_ALLOC(ndr, r->in.printername);
27119 r->in.printername = NULL;
27121 if (r->in.printername) {
27122 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
27123 NDR_PULL_SET_MEM_CTX(ndr, r->in.printername, 0);
27124 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
27125 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
27126 if (ndr_get_array_length(ndr, &r->in.printername) > ndr_get_array_size(ndr, &r->in.printername)) {
27127 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));
27129 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t)));
27130 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t), CH_UTF16));
27131 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
27133 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
27134 if (_ptr_datatype) {
27135 NDR_PULL_ALLOC(ndr, r->in.datatype);
27137 r->in.datatype = NULL;
27139 if (r->in.datatype) {
27140 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
27141 NDR_PULL_SET_MEM_CTX(ndr, r->in.datatype, 0);
27142 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.datatype));
27143 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.datatype));
27144 if (ndr_get_array_length(ndr, &r->in.datatype) > ndr_get_array_size(ndr, &r->in.datatype)) {
27145 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));
27147 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t)));
27148 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t), CH_UTF16));
27149 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
27151 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
27152 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr, NDR_SCALARS, &r->in.access_mask));
27153 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
27154 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.userlevel, r->in.level));
27155 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.userlevel));
27156 NDR_PULL_ALLOC(ndr, r->out.handle);
27157 ZERO_STRUCTP(r->out.handle);
27159 if (flags & NDR_OUT) {
27160 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27161 NDR_PULL_ALLOC(ndr, r->out.handle);
27163 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27164 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
27165 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
27166 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27167 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27169 return NDR_ERR_SUCCESS;
27172 _PUBLIC_ void ndr_print_spoolss_OpenPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_OpenPrinterEx *r)
27174 ndr_print_struct(ndr, name, "spoolss_OpenPrinterEx");
27176 if (flags & NDR_SET_VALUES) {
27177 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27179 if (flags & NDR_IN) {
27180 ndr_print_struct(ndr, "in", "spoolss_OpenPrinterEx");
27182 ndr_print_ptr(ndr, "printername", r->in.printername);
27184 if (r->in.printername) {
27185 ndr_print_string(ndr, "printername", r->in.printername);
27188 ndr_print_ptr(ndr, "datatype", r->in.datatype);
27190 if (r->in.datatype) {
27191 ndr_print_string(ndr, "datatype", r->in.datatype);
27194 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", &r->in.devmode_ctr);
27195 ndr_print_spoolss_AccessRights(ndr, "access_mask", r->in.access_mask);
27196 ndr_print_uint32(ndr, "level", r->in.level);
27197 ndr_print_set_switch_value(ndr, &r->in.userlevel, r->in.level);
27198 ndr_print_spoolss_UserLevel(ndr, "userlevel", &r->in.userlevel);
27201 if (flags & NDR_OUT) {
27202 ndr_print_struct(ndr, "out", "spoolss_OpenPrinterEx");
27204 ndr_print_ptr(ndr, "handle", r->out.handle);
27206 ndr_print_policy_handle(ndr, "handle", r->out.handle);
27208 ndr_print_WERROR(ndr, "result", r->out.result);
27214 static enum ndr_err_code ndr_push_spoolss_AddPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterEx *r)
27216 if (flags & NDR_IN) {
27217 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
27218 if (r->in.server) {
27219 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
27220 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27221 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
27222 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
27224 if (r->in.info_ctr == NULL) {
27225 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27227 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
27228 if (r->in.devmode_ctr == NULL) {
27229 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27231 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
27232 if (r->in.secdesc_ctr == NULL) {
27233 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27235 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
27236 if (r->in.userlevel_ctr == NULL) {
27237 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27239 NDR_CHECK(ndr_push_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.userlevel_ctr));
27241 if (flags & NDR_OUT) {
27242 if (r->out.handle == NULL) {
27243 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27245 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
27246 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27248 return NDR_ERR_SUCCESS;
27251 static enum ndr_err_code ndr_pull_spoolss_AddPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterEx *r)
27253 uint32_t _ptr_server;
27254 TALLOC_CTX *_mem_save_server_0;
27255 TALLOC_CTX *_mem_save_info_ctr_0;
27256 TALLOC_CTX *_mem_save_devmode_ctr_0;
27257 TALLOC_CTX *_mem_save_secdesc_ctr_0;
27258 TALLOC_CTX *_mem_save_userlevel_ctr_0;
27259 TALLOC_CTX *_mem_save_handle_0;
27260 if (flags & NDR_IN) {
27261 ZERO_STRUCT(r->out);
27263 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
27265 NDR_PULL_ALLOC(ndr, r->in.server);
27267 r->in.server = NULL;
27269 if (r->in.server) {
27270 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
27271 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
27272 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
27273 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
27274 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
27275 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));
27277 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
27278 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
27279 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
27281 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27282 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
27284 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
27285 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
27286 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
27287 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
27288 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27289 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
27291 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
27292 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
27293 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
27294 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
27295 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27296 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
27298 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
27299 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
27300 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
27301 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
27302 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27303 NDR_PULL_ALLOC(ndr, r->in.userlevel_ctr);
27305 _mem_save_userlevel_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
27306 NDR_PULL_SET_MEM_CTX(ndr, r->in.userlevel_ctr, LIBNDR_FLAG_REF_ALLOC);
27307 NDR_CHECK(ndr_pull_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.userlevel_ctr));
27308 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_userlevel_ctr_0, LIBNDR_FLAG_REF_ALLOC);
27309 NDR_PULL_ALLOC(ndr, r->out.handle);
27310 ZERO_STRUCTP(r->out.handle);
27312 if (flags & NDR_OUT) {
27313 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27314 NDR_PULL_ALLOC(ndr, r->out.handle);
27316 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27317 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
27318 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
27319 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27320 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27322 return NDR_ERR_SUCCESS;
27325 _PUBLIC_ void ndr_print_spoolss_AddPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterEx *r)
27327 ndr_print_struct(ndr, name, "spoolss_AddPrinterEx");
27329 if (flags & NDR_SET_VALUES) {
27330 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27332 if (flags & NDR_IN) {
27333 ndr_print_struct(ndr, "in", "spoolss_AddPrinterEx");
27335 ndr_print_ptr(ndr, "server", r->in.server);
27337 if (r->in.server) {
27338 ndr_print_string(ndr, "server", r->in.server);
27341 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
27343 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
27345 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
27347 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
27349 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
27351 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
27353 ndr_print_ptr(ndr, "userlevel_ctr", r->in.userlevel_ctr);
27355 ndr_print_spoolss_UserLevelCtr(ndr, "userlevel_ctr", r->in.userlevel_ctr);
27359 if (flags & NDR_OUT) {
27360 ndr_print_struct(ndr, "out", "spoolss_AddPrinterEx");
27362 ndr_print_ptr(ndr, "handle", r->out.handle);
27364 ndr_print_policy_handle(ndr, "handle", r->out.handle);
27366 ndr_print_WERROR(ndr, "result", r->out.result);
27372 static enum ndr_err_code ndr_push_spoolss_47(struct ndr_push *ndr, int flags, const struct spoolss_47 *r)
27374 if (flags & NDR_IN) {
27376 if (flags & NDR_OUT) {
27377 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27379 return NDR_ERR_SUCCESS;
27382 static enum ndr_err_code ndr_pull_spoolss_47(struct ndr_pull *ndr, int flags, struct spoolss_47 *r)
27384 if (flags & NDR_IN) {
27386 if (flags & NDR_OUT) {
27387 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27389 return NDR_ERR_SUCCESS;
27392 _PUBLIC_ void ndr_print_spoolss_47(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_47 *r)
27394 ndr_print_struct(ndr, name, "spoolss_47");
27396 if (flags & NDR_SET_VALUES) {
27397 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27399 if (flags & NDR_IN) {
27400 ndr_print_struct(ndr, "in", "spoolss_47");
27404 if (flags & NDR_OUT) {
27405 ndr_print_struct(ndr, "out", "spoolss_47");
27407 ndr_print_WERROR(ndr, "result", r->out.result);
27413 static enum ndr_err_code ndr_push_spoolss_EnumPrinterData(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterData *r)
27415 if (flags & NDR_IN) {
27416 if (r->in.handle == NULL) {
27417 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27419 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27420 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.enum_index));
27421 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.value_offered));
27422 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_offered));
27424 if (flags & NDR_OUT) {
27425 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.value_offered / 2));
27426 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->out.value_name, r->in.value_offered / 2, sizeof(uint16_t), CH_UTF16));
27427 if (r->out.value_needed == NULL) {
27428 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27430 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.value_needed));
27431 if (r->out.type == NULL) {
27432 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27434 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
27436 uint32_t _flags_save_uint8 = ndr->flags;
27437 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
27438 if (r->out.data == NULL) {
27439 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27441 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.data_offered));
27442 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->in.data_offered));
27443 ndr->flags = _flags_save_uint8;
27445 if (r->out.data_needed == NULL) {
27446 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27448 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.data_needed));
27449 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27451 return NDR_ERR_SUCCESS;
27454 static enum ndr_err_code ndr_pull_spoolss_EnumPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterData *r)
27456 TALLOC_CTX *_mem_save_handle_0;
27457 TALLOC_CTX *_mem_save_value_needed_0;
27458 TALLOC_CTX *_mem_save_type_0;
27459 TALLOC_CTX *_mem_save_data_needed_0;
27460 if (flags & NDR_IN) {
27461 ZERO_STRUCT(r->out);
27463 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27464 NDR_PULL_ALLOC(ndr, r->in.handle);
27466 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27467 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27468 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27469 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27470 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.enum_index));
27471 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.value_offered));
27472 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_offered));
27473 NDR_PULL_ALLOC(ndr, r->out.value_needed);
27474 ZERO_STRUCTP(r->out.value_needed);
27475 NDR_PULL_ALLOC(ndr, r->out.type);
27476 ZERO_STRUCTP(r->out.type);
27477 NDR_PULL_ALLOC_N(ndr, r->out.data, r->in.data_offered);
27478 memset(r->out.data, 0, (r->in.data_offered) * sizeof(*r->out.data));
27479 NDR_PULL_ALLOC(ndr, r->out.data_needed);
27480 ZERO_STRUCTP(r->out.data_needed);
27482 if (flags & NDR_OUT) {
27483 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.value_name));
27484 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));
27485 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27486 NDR_PULL_ALLOC(ndr, r->out.value_needed);
27488 _mem_save_value_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
27489 NDR_PULL_SET_MEM_CTX(ndr, r->out.value_needed, LIBNDR_FLAG_REF_ALLOC);
27490 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.value_needed));
27491 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_needed_0, LIBNDR_FLAG_REF_ALLOC);
27492 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27493 NDR_PULL_ALLOC(ndr, r->out.type);
27495 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
27496 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
27497 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
27498 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
27500 uint32_t _flags_save_uint8 = ndr->flags;
27501 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
27502 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
27503 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27504 NDR_PULL_ALLOC_N(ndr, r->out.data, ndr_get_array_size(ndr, &r->out.data));
27506 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, ndr_get_array_size(ndr, &r->out.data)));
27507 ndr->flags = _flags_save_uint8;
27509 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27510 NDR_PULL_ALLOC(ndr, r->out.data_needed);
27512 _mem_save_data_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
27513 NDR_PULL_SET_MEM_CTX(ndr, r->out.data_needed, LIBNDR_FLAG_REF_ALLOC);
27514 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.data_needed));
27515 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_needed_0, LIBNDR_FLAG_REF_ALLOC);
27516 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27517 if (r->out.value_name) {
27518 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.value_name, r->in.value_offered / 2));
27521 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, r->in.data_offered));
27524 return NDR_ERR_SUCCESS;
27527 _PUBLIC_ void ndr_print_spoolss_EnumPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterData *r)
27529 ndr_print_struct(ndr, name, "spoolss_EnumPrinterData");
27531 if (flags & NDR_SET_VALUES) {
27532 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27534 if (flags & NDR_IN) {
27535 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterData");
27537 ndr_print_ptr(ndr, "handle", r->in.handle);
27539 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27541 ndr_print_uint32(ndr, "enum_index", r->in.enum_index);
27542 ndr_print_uint32(ndr, "value_offered", r->in.value_offered);
27543 ndr_print_uint32(ndr, "data_offered", r->in.data_offered);
27546 if (flags & NDR_OUT) {
27547 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterData");
27549 ndr_print_string(ndr, "value_name", r->out.value_name);
27550 ndr_print_ptr(ndr, "value_needed", r->out.value_needed);
27552 ndr_print_uint32(ndr, "value_needed", *r->out.value_needed);
27554 ndr_print_ptr(ndr, "type", r->out.type);
27556 ndr_print_winreg_Type(ndr, "type", *r->out.type);
27558 ndr_print_ptr(ndr, "data", r->out.data);
27560 ndr_print_array_uint8(ndr, "data", r->out.data, r->in.data_offered);
27562 ndr_print_ptr(ndr, "data_needed", r->out.data_needed);
27564 ndr_print_uint32(ndr, "data_needed", *r->out.data_needed);
27566 ndr_print_WERROR(ndr, "result", r->out.result);
27572 static enum ndr_err_code ndr_push_spoolss_DeletePrinterData(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterData *r)
27574 if (flags & NDR_IN) {
27575 if (r->in.handle == NULL) {
27576 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27578 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27579 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
27580 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27581 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
27582 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));
27584 if (flags & NDR_OUT) {
27585 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27587 return NDR_ERR_SUCCESS;
27590 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterData(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterData *r)
27592 TALLOC_CTX *_mem_save_handle_0;
27593 if (flags & NDR_IN) {
27594 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27595 NDR_PULL_ALLOC(ndr, r->in.handle);
27597 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27598 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27599 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27600 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27601 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
27602 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
27603 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
27604 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));
27606 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
27607 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));
27609 if (flags & NDR_OUT) {
27610 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27612 return NDR_ERR_SUCCESS;
27615 _PUBLIC_ void ndr_print_spoolss_DeletePrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterData *r)
27617 ndr_print_struct(ndr, name, "spoolss_DeletePrinterData");
27619 if (flags & NDR_SET_VALUES) {
27620 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27622 if (flags & NDR_IN) {
27623 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterData");
27625 ndr_print_ptr(ndr, "handle", r->in.handle);
27627 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27629 ndr_print_string(ndr, "value_name", r->in.value_name);
27632 if (flags & NDR_OUT) {
27633 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterData");
27635 ndr_print_WERROR(ndr, "result", r->out.result);
27641 static enum ndr_err_code ndr_push_spoolss_4a(struct ndr_push *ndr, int flags, const struct spoolss_4a *r)
27643 if (flags & NDR_IN) {
27645 if (flags & NDR_OUT) {
27646 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27648 return NDR_ERR_SUCCESS;
27651 static enum ndr_err_code ndr_pull_spoolss_4a(struct ndr_pull *ndr, int flags, struct spoolss_4a *r)
27653 if (flags & NDR_IN) {
27655 if (flags & NDR_OUT) {
27656 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27658 return NDR_ERR_SUCCESS;
27661 _PUBLIC_ void ndr_print_spoolss_4a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4a *r)
27663 ndr_print_struct(ndr, name, "spoolss_4a");
27665 if (flags & NDR_SET_VALUES) {
27666 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27668 if (flags & NDR_IN) {
27669 ndr_print_struct(ndr, "in", "spoolss_4a");
27673 if (flags & NDR_OUT) {
27674 ndr_print_struct(ndr, "out", "spoolss_4a");
27676 ndr_print_WERROR(ndr, "result", r->out.result);
27682 static enum ndr_err_code ndr_push_spoolss_4b(struct ndr_push *ndr, int flags, const struct spoolss_4b *r)
27684 if (flags & NDR_IN) {
27686 if (flags & NDR_OUT) {
27687 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27689 return NDR_ERR_SUCCESS;
27692 static enum ndr_err_code ndr_pull_spoolss_4b(struct ndr_pull *ndr, int flags, struct spoolss_4b *r)
27694 if (flags & NDR_IN) {
27696 if (flags & NDR_OUT) {
27697 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27699 return NDR_ERR_SUCCESS;
27702 _PUBLIC_ void ndr_print_spoolss_4b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4b *r)
27704 ndr_print_struct(ndr, name, "spoolss_4b");
27706 if (flags & NDR_SET_VALUES) {
27707 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27709 if (flags & NDR_IN) {
27710 ndr_print_struct(ndr, "in", "spoolss_4b");
27714 if (flags & NDR_OUT) {
27715 ndr_print_struct(ndr, "out", "spoolss_4b");
27717 ndr_print_WERROR(ndr, "result", r->out.result);
27723 static enum ndr_err_code ndr_push_spoolss_4c(struct ndr_push *ndr, int flags, const struct spoolss_4c *r)
27725 if (flags & NDR_IN) {
27727 if (flags & NDR_OUT) {
27728 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27730 return NDR_ERR_SUCCESS;
27733 static enum ndr_err_code ndr_pull_spoolss_4c(struct ndr_pull *ndr, int flags, struct spoolss_4c *r)
27735 if (flags & NDR_IN) {
27737 if (flags & NDR_OUT) {
27738 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27740 return NDR_ERR_SUCCESS;
27743 _PUBLIC_ void ndr_print_spoolss_4c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4c *r)
27745 ndr_print_struct(ndr, name, "spoolss_4c");
27747 if (flags & NDR_SET_VALUES) {
27748 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27750 if (flags & NDR_IN) {
27751 ndr_print_struct(ndr, "in", "spoolss_4c");
27755 if (flags & NDR_OUT) {
27756 ndr_print_struct(ndr, "out", "spoolss_4c");
27758 ndr_print_WERROR(ndr, "result", r->out.result);
27764 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_SetPrinterDataEx(struct ndr_push *ndr, int flags, const struct _spoolss_SetPrinterDataEx *r)
27766 if (flags & NDR_IN) {
27767 if (r->in.handle == NULL) {
27768 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27770 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27771 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27772 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27773 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27774 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));
27775 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
27776 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27777 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
27778 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));
27779 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
27780 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
27781 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in._offered));
27783 if (flags & NDR_OUT) {
27784 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27786 return NDR_ERR_SUCCESS;
27789 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_SetPrinterDataEx(struct ndr_push *ndr, int flags, const struct __spoolss_SetPrinterDataEx *r)
27791 if (flags & NDR_IN) {
27792 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
27794 if (flags & NDR_OUT) {
27795 if (r->out.data == NULL) {
27796 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27798 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.data, r->in.type));
27799 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
27801 return NDR_ERR_SUCCESS;
27804 static enum ndr_err_code ndr_pull_spoolss_SetPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinterDataEx *r)
27806 TALLOC_CTX *_mem_save_handle_0;
27807 if (flags & NDR_IN) {
27808 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27809 NDR_PULL_ALLOC(ndr, r->in.handle);
27811 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27812 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27813 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27814 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27815 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
27816 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
27817 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
27818 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));
27820 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
27821 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));
27822 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
27823 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
27824 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
27825 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));
27827 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
27828 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));
27829 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
27831 struct ndr_pull *_ndr_data;
27832 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_data, 4, -1));
27833 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data, &r->in.data, r->in.type));
27834 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
27835 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_data, 4, -1));
27837 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._offered));
27839 if (flags & NDR_OUT) {
27840 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27842 return NDR_ERR_SUCCESS;
27845 _PUBLIC_ void ndr_print_spoolss_SetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinterDataEx *r)
27847 ndr_print_struct(ndr, name, "spoolss_SetPrinterDataEx");
27849 if (flags & NDR_SET_VALUES) {
27850 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27852 if (flags & NDR_IN) {
27853 ndr_print_struct(ndr, "in", "spoolss_SetPrinterDataEx");
27855 ndr_print_ptr(ndr, "handle", r->in.handle);
27857 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27859 ndr_print_string(ndr, "key_name", r->in.key_name);
27860 ndr_print_string(ndr, "value_name", r->in.value_name);
27861 ndr_print_winreg_Type(ndr, "type", r->in.type);
27862 ndr_print_set_switch_value(ndr, &r->in.data, r->in.type);
27863 ndr_print_spoolss_PrinterData(ndr, "data", &r->in.data);
27864 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);
27867 if (flags & NDR_OUT) {
27868 ndr_print_struct(ndr, "out", "spoolss_SetPrinterDataEx");
27870 ndr_print_WERROR(ndr, "result", r->out.result);
27876 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_GetPrinterDataEx(struct ndr_push *ndr, int flags, const struct _spoolss_GetPrinterDataEx *r)
27878 if (flags & NDR_IN) {
27879 if (r->in.handle == NULL) {
27880 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27882 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27883 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27884 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27885 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27886 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));
27887 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
27888 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27889 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
27890 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));
27891 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
27893 if (flags & NDR_OUT) {
27894 if (r->out.type == NULL) {
27895 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27897 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
27898 if (r->out.data == NULL) {
27899 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27901 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.data));
27902 if (r->out.needed == NULL) {
27903 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27905 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
27906 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27908 return NDR_ERR_SUCCESS;
27911 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_GetPrinterDataEx(struct ndr_pull *ndr, int flags, struct _spoolss_GetPrinterDataEx *r)
27913 TALLOC_CTX *_mem_save_handle_0;
27914 TALLOC_CTX *_mem_save_type_0;
27915 TALLOC_CTX *_mem_save_data_0;
27916 TALLOC_CTX *_mem_save_needed_0;
27917 if (flags & NDR_IN) {
27918 ZERO_STRUCT(r->out);
27920 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27921 NDR_PULL_ALLOC(ndr, r->in.handle);
27923 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27924 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27925 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27926 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27927 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
27928 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
27929 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
27930 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));
27932 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
27933 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));
27934 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
27935 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
27936 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
27937 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));
27939 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
27940 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));
27941 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
27942 NDR_PULL_ALLOC(ndr, r->out.type);
27943 ZERO_STRUCTP(r->out.type);
27944 NDR_PULL_ALLOC(ndr, r->out.data);
27945 ZERO_STRUCTP(r->out.data);
27946 NDR_PULL_ALLOC(ndr, r->out.needed);
27947 ZERO_STRUCTP(r->out.needed);
27949 if (flags & NDR_OUT) {
27950 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27951 NDR_PULL_ALLOC(ndr, r->out.type);
27953 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
27954 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
27955 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
27956 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
27957 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27958 NDR_PULL_ALLOC(ndr, r->out.data);
27960 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
27961 NDR_PULL_SET_MEM_CTX(ndr, r->out.data, LIBNDR_FLAG_REF_ALLOC);
27962 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.data));
27963 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
27964 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27965 NDR_PULL_ALLOC(ndr, r->out.needed);
27967 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
27968 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
27969 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
27970 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
27971 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27973 return NDR_ERR_SUCCESS;
27976 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_GetPrinterDataEx(struct ndr_push *ndr, int flags, const struct __spoolss_GetPrinterDataEx *r)
27978 if (flags & NDR_IN) {
27979 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
27981 if (flags & NDR_OUT) {
27982 if (r->out.data == NULL) {
27983 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27985 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.data, r->in.type));
27986 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
27988 return NDR_ERR_SUCCESS;
27991 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_GetPrinterDataEx(struct ndr_pull *ndr, int flags, struct __spoolss_GetPrinterDataEx *r)
27993 TALLOC_CTX *_mem_save_data_0;
27994 if (flags & NDR_IN) {
27995 ZERO_STRUCT(r->out);
27997 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
27998 NDR_PULL_ALLOC(ndr, r->out.data);
27999 ZERO_STRUCTP(r->out.data);
28001 if (flags & NDR_OUT) {
28002 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28003 NDR_PULL_ALLOC(ndr, r->out.data);
28005 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
28006 NDR_PULL_SET_MEM_CTX(ndr, r->out.data, LIBNDR_FLAG_REF_ALLOC);
28007 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.data, r->in.type));
28008 NDR_CHECK(ndr_pull_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
28009 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
28011 return NDR_ERR_SUCCESS;
28014 _PUBLIC_ void ndr_print_spoolss_GetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDataEx *r)
28016 ndr_print_struct(ndr, name, "spoolss_GetPrinterDataEx");
28018 if (flags & NDR_SET_VALUES) {
28019 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28021 if (flags & NDR_IN) {
28022 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDataEx");
28024 ndr_print_ptr(ndr, "handle", r->in.handle);
28026 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28028 ndr_print_string(ndr, "key_name", r->in.key_name);
28029 ndr_print_string(ndr, "value_name", r->in.value_name);
28030 ndr_print_uint32(ndr, "offered", r->in.offered);
28033 if (flags & NDR_OUT) {
28034 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDataEx");
28036 ndr_print_ptr(ndr, "type", r->out.type);
28038 ndr_print_winreg_Type(ndr, "type", *r->out.type);
28040 ndr_print_ptr(ndr, "data", r->out.data);
28042 ndr_print_set_switch_value(ndr, r->out.data, *r->out.type);
28043 ndr_print_spoolss_PrinterData(ndr, "data", r->out.data);
28045 ndr_print_ptr(ndr, "needed", r->out.needed);
28047 ndr_print_uint32(ndr, "needed", *r->out.needed);
28049 ndr_print_WERROR(ndr, "result", r->out.result);
28055 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinterDataEx(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinterDataEx *r)
28057 if (flags & NDR_IN) {
28058 if (r->in.handle == NULL) {
28059 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28061 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28062 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28063 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28064 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28065 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));
28066 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
28068 if (flags & NDR_OUT) {
28069 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
28070 if (r->out.needed == NULL) {
28071 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28073 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
28074 if (r->out.count == NULL) {
28075 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28077 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
28078 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28080 return NDR_ERR_SUCCESS;
28083 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinterDataEx(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinterDataEx *r)
28085 TALLOC_CTX *_mem_save_handle_0;
28086 TALLOC_CTX *_mem_save_needed_0;
28087 TALLOC_CTX *_mem_save_count_0;
28088 if (flags & NDR_IN) {
28089 ZERO_STRUCT(r->out);
28091 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28092 NDR_PULL_ALLOC(ndr, r->in.handle);
28094 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28095 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
28096 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28097 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28098 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
28099 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
28100 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
28101 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));
28103 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
28104 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));
28105 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
28106 NDR_PULL_ALLOC(ndr, r->out.needed);
28107 ZERO_STRUCTP(r->out.needed);
28108 NDR_PULL_ALLOC(ndr, r->out.count);
28109 ZERO_STRUCTP(r->out.count);
28111 if (flags & NDR_OUT) {
28112 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->out.info));
28113 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28114 NDR_PULL_ALLOC(ndr, r->out.needed);
28116 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
28117 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
28118 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
28119 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
28120 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28121 NDR_PULL_ALLOC(ndr, r->out.count);
28123 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
28124 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
28125 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
28126 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
28127 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28129 return NDR_ERR_SUCCESS;
28132 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinterDataEx(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinterDataEx *r)
28134 uint32_t cntr_info_0;
28135 if (flags & NDR_IN) {
28136 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
28138 if (flags & NDR_OUT) {
28139 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
28140 NDR_CHECK(ndr_push_spoolss_PrinterEnumValues(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
28142 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
28143 NDR_CHECK(ndr_push_spoolss_PrinterEnumValues(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
28146 return NDR_ERR_SUCCESS;
28149 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinterDataEx(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinterDataEx *r)
28151 uint32_t cntr_info_0;
28152 TALLOC_CTX *_mem_save_info_0;
28153 if (flags & NDR_IN) {
28154 ZERO_STRUCT(r->out);
28156 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
28158 if (flags & NDR_OUT) {
28159 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
28160 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
28161 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
28162 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
28163 NDR_CHECK(ndr_pull_spoolss_PrinterEnumValues(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
28165 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
28166 NDR_CHECK(ndr_pull_spoolss_PrinterEnumValues(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
28168 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
28170 return NDR_ERR_SUCCESS;
28173 _PUBLIC_ void ndr_print_spoolss_EnumPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterDataEx *r)
28175 uint32_t cntr_info_2;
28176 ndr_print_struct(ndr, name, "spoolss_EnumPrinterDataEx");
28178 if (flags & NDR_SET_VALUES) {
28179 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28181 if (flags & NDR_IN) {
28182 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterDataEx");
28184 ndr_print_ptr(ndr, "handle", r->in.handle);
28186 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28188 ndr_print_string(ndr, "key_name", r->in.key_name);
28189 ndr_print_uint32(ndr, "offered", r->in.offered);
28192 if (flags & NDR_OUT) {
28193 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterDataEx");
28195 ndr_print_ptr(ndr, "count", r->out.count);
28197 ndr_print_uint32(ndr, "count", *r->out.count);
28199 ndr_print_ptr(ndr, "info", r->out.info);
28201 ndr_print_ptr(ndr, "info", *r->out.info);
28203 if (*r->out.info) {
28204 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
28206 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
28208 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
28209 ndr_print_spoolss_PrinterEnumValues(ndr, "info", &(*r->out.info)[cntr_info_2]);
28217 ndr_print_ptr(ndr, "needed", r->out.needed);
28219 ndr_print_uint32(ndr, "needed", *r->out.needed);
28221 ndr_print_WERROR(ndr, "result", r->out.result);
28227 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterKey(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterKey *r)
28229 if (flags & NDR_IN) {
28230 if (r->in.handle == NULL) {
28231 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28233 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28234 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28235 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28236 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28237 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));
28238 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
28240 if (flags & NDR_OUT) {
28241 if (r->out._ndr_size == NULL) {
28242 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28244 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out._ndr_size));
28245 if (r->out.key_buffer == NULL) {
28246 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28249 struct ndr_push *_ndr_key_buffer;
28250 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_key_buffer, 0, *r->out._ndr_size * 2));
28251 NDR_CHECK(ndr_push_set_switch_value(_ndr_key_buffer, r->out.key_buffer, *r->out._ndr_size));
28252 NDR_CHECK(ndr_push_spoolss_KeyNames(_ndr_key_buffer, NDR_SCALARS|NDR_BUFFERS, r->out.key_buffer));
28253 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_key_buffer, 0, *r->out._ndr_size * 2));
28255 if (r->out.needed == NULL) {
28256 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28258 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
28259 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28261 return NDR_ERR_SUCCESS;
28264 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterKey(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterKey *r)
28266 TALLOC_CTX *_mem_save_handle_0;
28267 TALLOC_CTX *_mem_save__ndr_size_0;
28268 TALLOC_CTX *_mem_save_key_buffer_0;
28269 TALLOC_CTX *_mem_save_needed_0;
28270 if (flags & NDR_IN) {
28271 ZERO_STRUCT(r->out);
28273 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28274 NDR_PULL_ALLOC(ndr, r->in.handle);
28276 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28277 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
28278 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28279 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28280 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
28281 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
28282 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
28283 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));
28285 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
28286 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));
28287 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
28288 NDR_PULL_ALLOC(ndr, r->out._ndr_size);
28289 ZERO_STRUCTP(r->out._ndr_size);
28290 NDR_PULL_ALLOC(ndr, r->out.key_buffer);
28291 ZERO_STRUCTP(r->out.key_buffer);
28292 NDR_PULL_ALLOC(ndr, r->out.needed);
28293 ZERO_STRUCTP(r->out.needed);
28295 if (flags & NDR_OUT) {
28296 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28297 NDR_PULL_ALLOC(ndr, r->out._ndr_size);
28299 _mem_save__ndr_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
28300 NDR_PULL_SET_MEM_CTX(ndr, r->out._ndr_size, LIBNDR_FLAG_REF_ALLOC);
28301 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out._ndr_size));
28302 NDR_PULL_SET_MEM_CTX(ndr, _mem_save__ndr_size_0, LIBNDR_FLAG_REF_ALLOC);
28303 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28304 NDR_PULL_ALLOC(ndr, r->out.key_buffer);
28306 _mem_save_key_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
28307 NDR_PULL_SET_MEM_CTX(ndr, r->out.key_buffer, LIBNDR_FLAG_REF_ALLOC);
28309 struct ndr_pull *_ndr_key_buffer;
28310 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_key_buffer, 0, *r->out._ndr_size * 2));
28311 NDR_CHECK(ndr_pull_set_switch_value(_ndr_key_buffer, r->out.key_buffer, *r->out._ndr_size));
28312 NDR_CHECK(ndr_pull_spoolss_KeyNames(_ndr_key_buffer, NDR_SCALARS|NDR_BUFFERS, r->out.key_buffer));
28313 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_key_buffer, 0, *r->out._ndr_size * 2));
28315 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_key_buffer_0, LIBNDR_FLAG_REF_ALLOC);
28316 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28317 NDR_PULL_ALLOC(ndr, r->out.needed);
28319 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
28320 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
28321 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
28322 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
28323 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28325 return NDR_ERR_SUCCESS;
28328 _PUBLIC_ void ndr_print_spoolss_EnumPrinterKey(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterKey *r)
28330 ndr_print_struct(ndr, name, "spoolss_EnumPrinterKey");
28332 if (flags & NDR_SET_VALUES) {
28333 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28335 if (flags & NDR_IN) {
28336 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterKey");
28338 ndr_print_ptr(ndr, "handle", r->in.handle);
28340 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28342 ndr_print_string(ndr, "key_name", r->in.key_name);
28343 ndr_print_uint32(ndr, "offered", r->in.offered);
28346 if (flags & NDR_OUT) {
28347 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterKey");
28349 ndr_print_ptr(ndr, "_ndr_size", r->out._ndr_size);
28351 ndr_print_uint32(ndr, "_ndr_size", *r->out._ndr_size);
28353 ndr_print_ptr(ndr, "key_buffer", r->out.key_buffer);
28355 ndr_print_set_switch_value(ndr, r->out.key_buffer, *r->out._ndr_size);
28356 ndr_print_spoolss_KeyNames(ndr, "key_buffer", r->out.key_buffer);
28358 ndr_print_ptr(ndr, "needed", r->out.needed);
28360 ndr_print_uint32(ndr, "needed", *r->out.needed);
28362 ndr_print_WERROR(ndr, "result", r->out.result);
28368 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDataEx *r)
28370 if (flags & NDR_IN) {
28371 if (r->in.handle == NULL) {
28372 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28374 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28375 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28376 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28377 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28378 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));
28379 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
28380 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28381 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
28382 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));
28384 if (flags & NDR_OUT) {
28385 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28387 return NDR_ERR_SUCCESS;
28390 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDataEx *r)
28392 TALLOC_CTX *_mem_save_handle_0;
28393 if (flags & NDR_IN) {
28394 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28395 NDR_PULL_ALLOC(ndr, r->in.handle);
28397 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28398 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
28399 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28400 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28401 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
28402 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
28403 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
28404 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.key_name), ndr_get_array_length(ndr, &r->in.key_name));
28406 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
28407 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.key_name, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t), CH_UTF16));
28408 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
28409 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
28410 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
28411 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.value_name), ndr_get_array_length(ndr, &r->in.value_name));
28413 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
28414 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.value_name, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t), CH_UTF16));
28416 if (flags & NDR_OUT) {
28417 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28419 return NDR_ERR_SUCCESS;
28422 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDataEx *r)
28424 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDataEx");
28426 if (flags & NDR_SET_VALUES) {
28427 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28429 if (flags & NDR_IN) {
28430 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDataEx");
28432 ndr_print_ptr(ndr, "handle", r->in.handle);
28434 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28436 ndr_print_string(ndr, "key_name", r->in.key_name);
28437 ndr_print_string(ndr, "value_name", r->in.value_name);
28440 if (flags & NDR_OUT) {
28441 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDataEx");
28443 ndr_print_WERROR(ndr, "result", r->out.result);
28449 static enum ndr_err_code ndr_push_spoolss_DeletePrinterKey(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterKey *r)
28451 if (flags & NDR_IN) {
28452 if (r->in.handle == NULL) {
28453 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28455 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28456 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28457 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28458 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28459 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));
28461 if (flags & NDR_OUT) {
28462 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28464 return NDR_ERR_SUCCESS;
28467 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterKey(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterKey *r)
28469 TALLOC_CTX *_mem_save_handle_0;
28470 if (flags & NDR_IN) {
28471 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28472 NDR_PULL_ALLOC(ndr, r->in.handle);
28474 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28475 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
28476 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28477 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28478 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
28479 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
28480 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
28481 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));
28483 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
28484 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));
28486 if (flags & NDR_OUT) {
28487 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28489 return NDR_ERR_SUCCESS;
28492 _PUBLIC_ void ndr_print_spoolss_DeletePrinterKey(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterKey *r)
28494 ndr_print_struct(ndr, name, "spoolss_DeletePrinterKey");
28496 if (flags & NDR_SET_VALUES) {
28497 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28499 if (flags & NDR_IN) {
28500 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterKey");
28502 ndr_print_ptr(ndr, "handle", r->in.handle);
28504 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28506 ndr_print_string(ndr, "key_name", r->in.key_name);
28509 if (flags & NDR_OUT) {
28510 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterKey");
28512 ndr_print_WERROR(ndr, "result", r->out.result);
28518 static enum ndr_err_code ndr_push_spoolss_53(struct ndr_push *ndr, int flags, const struct spoolss_53 *r)
28520 if (flags & NDR_IN) {
28522 if (flags & NDR_OUT) {
28523 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28525 return NDR_ERR_SUCCESS;
28528 static enum ndr_err_code ndr_pull_spoolss_53(struct ndr_pull *ndr, int flags, struct spoolss_53 *r)
28530 if (flags & NDR_IN) {
28532 if (flags & NDR_OUT) {
28533 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28535 return NDR_ERR_SUCCESS;
28538 _PUBLIC_ void ndr_print_spoolss_53(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_53 *r)
28540 ndr_print_struct(ndr, name, "spoolss_53");
28542 if (flags & NDR_SET_VALUES) {
28543 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28545 if (flags & NDR_IN) {
28546 ndr_print_struct(ndr, "in", "spoolss_53");
28550 if (flags & NDR_OUT) {
28551 ndr_print_struct(ndr, "out", "spoolss_53");
28553 ndr_print_WERROR(ndr, "result", r->out.result);
28559 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDriverEx(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDriverEx *r)
28561 if (flags & NDR_IN) {
28562 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
28563 if (r->in.server) {
28564 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
28565 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28566 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
28567 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
28569 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
28570 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28571 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
28572 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
28573 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
28574 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28575 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
28576 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver, ndr_charset_length(r->in.driver, CH_UTF16), sizeof(uint16_t), CH_UTF16));
28577 NDR_CHECK(ndr_push_spoolss_DeleteDriverFlags(ndr, NDR_SCALARS, r->in.delete_flags));
28578 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.version));
28580 if (flags & NDR_OUT) {
28581 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28583 return NDR_ERR_SUCCESS;
28586 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDriverEx(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDriverEx *r)
28588 uint32_t _ptr_server;
28589 TALLOC_CTX *_mem_save_server_0;
28590 if (flags & NDR_IN) {
28591 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
28593 NDR_PULL_ALLOC(ndr, r->in.server);
28595 r->in.server = NULL;
28597 if (r->in.server) {
28598 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
28599 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
28600 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
28601 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
28602 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
28603 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));
28605 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
28606 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
28607 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
28609 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
28610 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
28611 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
28612 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));
28614 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
28615 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
28616 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver));
28617 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.driver));
28618 if (ndr_get_array_length(ndr, &r->in.driver) > ndr_get_array_size(ndr, &r->in.driver)) {
28619 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));
28621 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t)));
28622 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t), CH_UTF16));
28623 NDR_CHECK(ndr_pull_spoolss_DeleteDriverFlags(ndr, NDR_SCALARS, &r->in.delete_flags));
28624 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.version));
28626 if (flags & NDR_OUT) {
28627 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28629 return NDR_ERR_SUCCESS;
28632 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDriverEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDriverEx *r)
28634 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDriverEx");
28636 if (flags & NDR_SET_VALUES) {
28637 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28639 if (flags & NDR_IN) {
28640 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDriverEx");
28642 ndr_print_ptr(ndr, "server", r->in.server);
28644 if (r->in.server) {
28645 ndr_print_string(ndr, "server", r->in.server);
28648 ndr_print_string(ndr, "architecture", r->in.architecture);
28649 ndr_print_string(ndr, "driver", r->in.driver);
28650 ndr_print_spoolss_DeleteDriverFlags(ndr, "delete_flags", r->in.delete_flags);
28651 ndr_print_uint32(ndr, "version", r->in.version);
28654 if (flags & NDR_OUT) {
28655 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDriverEx");
28657 ndr_print_WERROR(ndr, "result", r->out.result);
28663 static enum ndr_err_code ndr_push_spoolss_55(struct ndr_push *ndr, int flags, const struct spoolss_55 *r)
28665 if (flags & NDR_IN) {
28667 if (flags & NDR_OUT) {
28668 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28670 return NDR_ERR_SUCCESS;
28673 static enum ndr_err_code ndr_pull_spoolss_55(struct ndr_pull *ndr, int flags, struct spoolss_55 *r)
28675 if (flags & NDR_IN) {
28677 if (flags & NDR_OUT) {
28678 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28680 return NDR_ERR_SUCCESS;
28683 _PUBLIC_ void ndr_print_spoolss_55(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_55 *r)
28685 ndr_print_struct(ndr, name, "spoolss_55");
28687 if (flags & NDR_SET_VALUES) {
28688 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28690 if (flags & NDR_IN) {
28691 ndr_print_struct(ndr, "in", "spoolss_55");
28695 if (flags & NDR_OUT) {
28696 ndr_print_struct(ndr, "out", "spoolss_55");
28698 ndr_print_WERROR(ndr, "result", r->out.result);
28704 static enum ndr_err_code ndr_push_spoolss_56(struct ndr_push *ndr, int flags, const struct spoolss_56 *r)
28706 if (flags & NDR_IN) {
28708 if (flags & NDR_OUT) {
28709 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28711 return NDR_ERR_SUCCESS;
28714 static enum ndr_err_code ndr_pull_spoolss_56(struct ndr_pull *ndr, int flags, struct spoolss_56 *r)
28716 if (flags & NDR_IN) {
28718 if (flags & NDR_OUT) {
28719 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28721 return NDR_ERR_SUCCESS;
28724 _PUBLIC_ void ndr_print_spoolss_56(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_56 *r)
28726 ndr_print_struct(ndr, name, "spoolss_56");
28728 if (flags & NDR_SET_VALUES) {
28729 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28731 if (flags & NDR_IN) {
28732 ndr_print_struct(ndr, "in", "spoolss_56");
28736 if (flags & NDR_OUT) {
28737 ndr_print_struct(ndr, "out", "spoolss_56");
28739 ndr_print_WERROR(ndr, "result", r->out.result);
28745 static enum ndr_err_code ndr_push_spoolss_57(struct ndr_push *ndr, int flags, const struct spoolss_57 *r)
28747 if (flags & NDR_IN) {
28749 if (flags & NDR_OUT) {
28750 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28752 return NDR_ERR_SUCCESS;
28755 static enum ndr_err_code ndr_pull_spoolss_57(struct ndr_pull *ndr, int flags, struct spoolss_57 *r)
28757 if (flags & NDR_IN) {
28759 if (flags & NDR_OUT) {
28760 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28762 return NDR_ERR_SUCCESS;
28765 _PUBLIC_ void ndr_print_spoolss_57(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_57 *r)
28767 ndr_print_struct(ndr, name, "spoolss_57");
28769 if (flags & NDR_SET_VALUES) {
28770 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28772 if (flags & NDR_IN) {
28773 ndr_print_struct(ndr, "in", "spoolss_57");
28777 if (flags & NDR_OUT) {
28778 ndr_print_struct(ndr, "out", "spoolss_57");
28780 ndr_print_WERROR(ndr, "result", r->out.result);
28786 static enum ndr_err_code ndr_push_spoolss_XcvData(struct ndr_push *ndr, int flags, const struct spoolss_XcvData *r)
28788 if (flags & NDR_IN) {
28789 if (r->in.handle == NULL) {
28790 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28792 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28793 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.function_name, CH_UTF16)));
28794 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28795 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.function_name, CH_UTF16)));
28796 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));
28797 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.in_data));
28798 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.in_data.length));
28799 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.out_data_size));
28800 if (r->in.status_code == NULL) {
28801 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28803 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.status_code));
28805 if (flags & NDR_OUT) {
28806 if (r->out.out_data == NULL) {
28807 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28809 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.out_data_size));
28810 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.out_data, r->in.out_data_size));
28811 if (r->out.needed == NULL) {
28812 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28814 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
28815 if (r->out.status_code == NULL) {
28816 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28818 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.status_code));
28819 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28821 return NDR_ERR_SUCCESS;
28824 static enum ndr_err_code ndr_pull_spoolss_XcvData(struct ndr_pull *ndr, int flags, struct spoolss_XcvData *r)
28826 TALLOC_CTX *_mem_save_handle_0;
28827 TALLOC_CTX *_mem_save_needed_0;
28828 TALLOC_CTX *_mem_save_status_code_0;
28829 if (flags & NDR_IN) {
28830 ZERO_STRUCT(r->out);
28832 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28833 NDR_PULL_ALLOC(ndr, r->in.handle);
28835 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28836 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
28837 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28838 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28839 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.function_name));
28840 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.function_name));
28841 if (ndr_get_array_length(ndr, &r->in.function_name) > ndr_get_array_size(ndr, &r->in.function_name)) {
28842 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));
28844 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.function_name), sizeof(uint16_t)));
28845 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));
28846 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->in.in_data));
28847 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._in_data_length));
28848 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.out_data_size));
28849 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28850 NDR_PULL_ALLOC(ndr, r->in.status_code);
28852 _mem_save_status_code_0 = NDR_PULL_GET_MEM_CTX(ndr);
28853 NDR_PULL_SET_MEM_CTX(ndr, r->in.status_code, LIBNDR_FLAG_REF_ALLOC);
28854 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.status_code));
28855 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_code_0, LIBNDR_FLAG_REF_ALLOC);
28856 NDR_PULL_ALLOC_N(ndr, r->out.out_data, r->in.out_data_size);
28857 memset(r->out.out_data, 0, (r->in.out_data_size) * sizeof(*r->out.out_data));
28858 NDR_PULL_ALLOC(ndr, r->out.needed);
28859 ZERO_STRUCTP(r->out.needed);
28860 NDR_PULL_ALLOC(ndr, r->out.status_code);
28861 *r->out.status_code = *r->in.status_code;
28863 if (flags & NDR_OUT) {
28864 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.out_data));
28865 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28866 NDR_PULL_ALLOC_N(ndr, r->out.out_data, ndr_get_array_size(ndr, &r->out.out_data));
28868 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.out_data, ndr_get_array_size(ndr, &r->out.out_data)));
28869 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28870 NDR_PULL_ALLOC(ndr, r->out.needed);
28872 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
28873 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
28874 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
28875 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
28876 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28877 NDR_PULL_ALLOC(ndr, r->out.status_code);
28879 _mem_save_status_code_0 = NDR_PULL_GET_MEM_CTX(ndr);
28880 NDR_PULL_SET_MEM_CTX(ndr, r->out.status_code, LIBNDR_FLAG_REF_ALLOC);
28881 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.status_code));
28882 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_code_0, LIBNDR_FLAG_REF_ALLOC);
28883 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28884 if (r->out.out_data) {
28885 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.out_data, r->in.out_data_size));
28888 return NDR_ERR_SUCCESS;
28891 _PUBLIC_ void ndr_print_spoolss_XcvData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_XcvData *r)
28893 ndr_print_struct(ndr, name, "spoolss_XcvData");
28895 if (flags & NDR_SET_VALUES) {
28896 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28898 if (flags & NDR_IN) {
28899 ndr_print_struct(ndr, "in", "spoolss_XcvData");
28901 ndr_print_ptr(ndr, "handle", r->in.handle);
28903 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28905 ndr_print_string(ndr, "function_name", r->in.function_name);
28906 ndr_print_DATA_BLOB(ndr, "in_data", r->in.in_data);
28907 ndr_print_uint32(ndr, "_in_data_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->in.in_data.length:r->in._in_data_length);
28908 ndr_print_uint32(ndr, "out_data_size", r->in.out_data_size);
28909 ndr_print_ptr(ndr, "status_code", r->in.status_code);
28911 ndr_print_uint32(ndr, "status_code", *r->in.status_code);
28915 if (flags & NDR_OUT) {
28916 ndr_print_struct(ndr, "out", "spoolss_XcvData");
28918 ndr_print_ptr(ndr, "out_data", r->out.out_data);
28920 ndr_print_array_uint8(ndr, "out_data", r->out.out_data, r->in.out_data_size);
28922 ndr_print_ptr(ndr, "needed", r->out.needed);
28924 ndr_print_uint32(ndr, "needed", *r->out.needed);
28926 ndr_print_ptr(ndr, "status_code", r->out.status_code);
28928 ndr_print_uint32(ndr, "status_code", *r->out.status_code);
28930 ndr_print_WERROR(ndr, "result", r->out.result);
28936 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_AddPrinterDriverEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterDriverEx *r)
28938 if (flags & NDR_IN) {
28939 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
28940 if (r->in.servername) {
28941 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
28942 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28943 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
28944 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
28946 if (r->in.info_ctr == NULL) {
28947 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28949 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
28950 NDR_CHECK(ndr_push_spoolss_AddPrinterDriverExFlags(ndr, NDR_SCALARS, r->in.flags));
28952 if (flags & NDR_OUT) {
28953 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28955 return NDR_ERR_SUCCESS;
28958 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_AddPrinterDriverEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterDriverEx *r)
28960 uint32_t _ptr_servername;
28961 TALLOC_CTX *_mem_save_servername_0;
28962 TALLOC_CTX *_mem_save_info_ctr_0;
28963 if (flags & NDR_IN) {
28964 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
28965 if (_ptr_servername) {
28966 NDR_PULL_ALLOC(ndr, r->in.servername);
28968 r->in.servername = NULL;
28970 if (r->in.servername) {
28971 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
28972 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
28973 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
28974 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
28975 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
28976 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));
28978 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
28979 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
28980 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
28982 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28983 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
28985 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
28986 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
28987 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
28988 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
28989 NDR_CHECK(ndr_pull_spoolss_AddPrinterDriverExFlags(ndr, NDR_SCALARS, &r->in.flags));
28991 if (flags & NDR_OUT) {
28992 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28994 return NDR_ERR_SUCCESS;
28997 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriverEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterDriverEx *r)
28999 ndr_print_struct(ndr, name, "spoolss_AddPrinterDriverEx");
29001 if (flags & NDR_SET_VALUES) {
29002 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29004 if (flags & NDR_IN) {
29005 ndr_print_struct(ndr, "in", "spoolss_AddPrinterDriverEx");
29007 ndr_print_ptr(ndr, "servername", r->in.servername);
29009 if (r->in.servername) {
29010 ndr_print_string(ndr, "servername", r->in.servername);
29013 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
29015 ndr_print_spoolss_AddDriverInfoCtr(ndr, "info_ctr", r->in.info_ctr);
29017 ndr_print_spoolss_AddPrinterDriverExFlags(ndr, "flags", r->in.flags);
29020 if (flags & NDR_OUT) {
29021 ndr_print_struct(ndr, "out", "spoolss_AddPrinterDriverEx");
29023 ndr_print_WERROR(ndr, "result", r->out.result);
29029 static enum ndr_err_code ndr_push_spoolss_5a(struct ndr_push *ndr, int flags, const struct spoolss_5a *r)
29031 if (flags & NDR_IN) {
29033 if (flags & NDR_OUT) {
29034 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29036 return NDR_ERR_SUCCESS;
29039 static enum ndr_err_code ndr_pull_spoolss_5a(struct ndr_pull *ndr, int flags, struct spoolss_5a *r)
29041 if (flags & NDR_IN) {
29043 if (flags & NDR_OUT) {
29044 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29046 return NDR_ERR_SUCCESS;
29049 _PUBLIC_ void ndr_print_spoolss_5a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5a *r)
29051 ndr_print_struct(ndr, name, "spoolss_5a");
29053 if (flags & NDR_SET_VALUES) {
29054 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29056 if (flags & NDR_IN) {
29057 ndr_print_struct(ndr, "in", "spoolss_5a");
29061 if (flags & NDR_OUT) {
29062 ndr_print_struct(ndr, "out", "spoolss_5a");
29064 ndr_print_WERROR(ndr, "result", r->out.result);
29070 static enum ndr_err_code ndr_push_spoolss_5b(struct ndr_push *ndr, int flags, const struct spoolss_5b *r)
29072 if (flags & NDR_IN) {
29074 if (flags & NDR_OUT) {
29075 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29077 return NDR_ERR_SUCCESS;
29080 static enum ndr_err_code ndr_pull_spoolss_5b(struct ndr_pull *ndr, int flags, struct spoolss_5b *r)
29082 if (flags & NDR_IN) {
29084 if (flags & NDR_OUT) {
29085 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29087 return NDR_ERR_SUCCESS;
29090 _PUBLIC_ void ndr_print_spoolss_5b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5b *r)
29092 ndr_print_struct(ndr, name, "spoolss_5b");
29094 if (flags & NDR_SET_VALUES) {
29095 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29097 if (flags & NDR_IN) {
29098 ndr_print_struct(ndr, "in", "spoolss_5b");
29102 if (flags & NDR_OUT) {
29103 ndr_print_struct(ndr, "out", "spoolss_5b");
29105 ndr_print_WERROR(ndr, "result", r->out.result);
29111 static enum ndr_err_code ndr_push_spoolss_5c(struct ndr_push *ndr, int flags, const struct spoolss_5c *r)
29113 if (flags & NDR_IN) {
29115 if (flags & NDR_OUT) {
29116 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29118 return NDR_ERR_SUCCESS;
29121 static enum ndr_err_code ndr_pull_spoolss_5c(struct ndr_pull *ndr, int flags, struct spoolss_5c *r)
29123 if (flags & NDR_IN) {
29125 if (flags & NDR_OUT) {
29126 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29128 return NDR_ERR_SUCCESS;
29131 _PUBLIC_ void ndr_print_spoolss_5c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5c *r)
29133 ndr_print_struct(ndr, name, "spoolss_5c");
29135 if (flags & NDR_SET_VALUES) {
29136 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29138 if (flags & NDR_IN) {
29139 ndr_print_struct(ndr, "in", "spoolss_5c");
29143 if (flags & NDR_OUT) {
29144 ndr_print_struct(ndr, "out", "spoolss_5c");
29146 ndr_print_WERROR(ndr, "result", r->out.result);
29152 static enum ndr_err_code ndr_push_spoolss_5d(struct ndr_push *ndr, int flags, const struct spoolss_5d *r)
29154 if (flags & NDR_IN) {
29156 if (flags & NDR_OUT) {
29157 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29159 return NDR_ERR_SUCCESS;
29162 static enum ndr_err_code ndr_pull_spoolss_5d(struct ndr_pull *ndr, int flags, struct spoolss_5d *r)
29164 if (flags & NDR_IN) {
29166 if (flags & NDR_OUT) {
29167 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29169 return NDR_ERR_SUCCESS;
29172 _PUBLIC_ void ndr_print_spoolss_5d(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5d *r)
29174 ndr_print_struct(ndr, name, "spoolss_5d");
29176 if (flags & NDR_SET_VALUES) {
29177 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29179 if (flags & NDR_IN) {
29180 ndr_print_struct(ndr, "in", "spoolss_5d");
29184 if (flags & NDR_OUT) {
29185 ndr_print_struct(ndr, "out", "spoolss_5d");
29187 ndr_print_WERROR(ndr, "result", r->out.result);
29193 static enum ndr_err_code ndr_push_spoolss_5e(struct ndr_push *ndr, int flags, const struct spoolss_5e *r)
29195 if (flags & NDR_IN) {
29197 if (flags & NDR_OUT) {
29198 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29200 return NDR_ERR_SUCCESS;
29203 static enum ndr_err_code ndr_pull_spoolss_5e(struct ndr_pull *ndr, int flags, struct spoolss_5e *r)
29205 if (flags & NDR_IN) {
29207 if (flags & NDR_OUT) {
29208 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29210 return NDR_ERR_SUCCESS;
29213 _PUBLIC_ void ndr_print_spoolss_5e(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5e *r)
29215 ndr_print_struct(ndr, name, "spoolss_5e");
29217 if (flags & NDR_SET_VALUES) {
29218 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29220 if (flags & NDR_IN) {
29221 ndr_print_struct(ndr, "in", "spoolss_5e");
29225 if (flags & NDR_OUT) {
29226 ndr_print_struct(ndr, "out", "spoolss_5e");
29228 ndr_print_WERROR(ndr, "result", r->out.result);
29234 static enum ndr_err_code ndr_push_spoolss_5f(struct ndr_push *ndr, int flags, const struct spoolss_5f *r)
29236 if (flags & NDR_IN) {
29238 if (flags & NDR_OUT) {
29239 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29241 return NDR_ERR_SUCCESS;
29244 static enum ndr_err_code ndr_pull_spoolss_5f(struct ndr_pull *ndr, int flags, struct spoolss_5f *r)
29246 if (flags & NDR_IN) {
29248 if (flags & NDR_OUT) {
29249 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29251 return NDR_ERR_SUCCESS;
29254 _PUBLIC_ void ndr_print_spoolss_5f(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5f *r)
29256 ndr_print_struct(ndr, name, "spoolss_5f");
29258 if (flags & NDR_SET_VALUES) {
29259 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29261 if (flags & NDR_IN) {
29262 ndr_print_struct(ndr, "in", "spoolss_5f");
29266 if (flags & NDR_OUT) {
29267 ndr_print_struct(ndr, "out", "spoolss_5f");
29269 ndr_print_WERROR(ndr, "result", r->out.result);
29275 static enum ndr_err_code ndr_push_spoolss_60(struct ndr_push *ndr, int flags, const struct spoolss_60 *r)
29277 if (flags & NDR_IN) {
29279 if (flags & NDR_OUT) {
29280 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29282 return NDR_ERR_SUCCESS;
29285 static enum ndr_err_code ndr_pull_spoolss_60(struct ndr_pull *ndr, int flags, struct spoolss_60 *r)
29287 if (flags & NDR_IN) {
29289 if (flags & NDR_OUT) {
29290 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29292 return NDR_ERR_SUCCESS;
29295 _PUBLIC_ void ndr_print_spoolss_60(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_60 *r)
29297 ndr_print_struct(ndr, name, "spoolss_60");
29299 if (flags & NDR_SET_VALUES) {
29300 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29302 if (flags & NDR_IN) {
29303 ndr_print_struct(ndr, "in", "spoolss_60");
29307 if (flags & NDR_OUT) {
29308 ndr_print_struct(ndr, "out", "spoolss_60");
29310 ndr_print_WERROR(ndr, "result", r->out.result);
29316 static enum ndr_err_code ndr_push_spoolss_61(struct ndr_push *ndr, int flags, const struct spoolss_61 *r)
29318 if (flags & NDR_IN) {
29320 if (flags & NDR_OUT) {
29321 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29323 return NDR_ERR_SUCCESS;
29326 static enum ndr_err_code ndr_pull_spoolss_61(struct ndr_pull *ndr, int flags, struct spoolss_61 *r)
29328 if (flags & NDR_IN) {
29330 if (flags & NDR_OUT) {
29331 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29333 return NDR_ERR_SUCCESS;
29336 _PUBLIC_ void ndr_print_spoolss_61(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_61 *r)
29338 ndr_print_struct(ndr, name, "spoolss_61");
29340 if (flags & NDR_SET_VALUES) {
29341 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29343 if (flags & NDR_IN) {
29344 ndr_print_struct(ndr, "in", "spoolss_61");
29348 if (flags & NDR_OUT) {
29349 ndr_print_struct(ndr, "out", "spoolss_61");
29351 ndr_print_WERROR(ndr, "result", r->out.result);
29357 static enum ndr_err_code ndr_push_spoolss_62(struct ndr_push *ndr, int flags, const struct spoolss_62 *r)
29359 if (flags & NDR_IN) {
29361 if (flags & NDR_OUT) {
29362 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29364 return NDR_ERR_SUCCESS;
29367 static enum ndr_err_code ndr_pull_spoolss_62(struct ndr_pull *ndr, int flags, struct spoolss_62 *r)
29369 if (flags & NDR_IN) {
29371 if (flags & NDR_OUT) {
29372 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29374 return NDR_ERR_SUCCESS;
29377 _PUBLIC_ void ndr_print_spoolss_62(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_62 *r)
29379 ndr_print_struct(ndr, name, "spoolss_62");
29381 if (flags & NDR_SET_VALUES) {
29382 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29384 if (flags & NDR_IN) {
29385 ndr_print_struct(ndr, "in", "spoolss_62");
29389 if (flags & NDR_OUT) {
29390 ndr_print_struct(ndr, "out", "spoolss_62");
29392 ndr_print_WERROR(ndr, "result", r->out.result);
29398 static enum ndr_err_code ndr_push_spoolss_63(struct ndr_push *ndr, int flags, const struct spoolss_63 *r)
29400 if (flags & NDR_IN) {
29402 if (flags & NDR_OUT) {
29403 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29405 return NDR_ERR_SUCCESS;
29408 static enum ndr_err_code ndr_pull_spoolss_63(struct ndr_pull *ndr, int flags, struct spoolss_63 *r)
29410 if (flags & NDR_IN) {
29412 if (flags & NDR_OUT) {
29413 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29415 return NDR_ERR_SUCCESS;
29418 _PUBLIC_ void ndr_print_spoolss_63(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_63 *r)
29420 ndr_print_struct(ndr, name, "spoolss_63");
29422 if (flags & NDR_SET_VALUES) {
29423 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29425 if (flags & NDR_IN) {
29426 ndr_print_struct(ndr, "in", "spoolss_63");
29430 if (flags & NDR_OUT) {
29431 ndr_print_struct(ndr, "out", "spoolss_63");
29433 ndr_print_WERROR(ndr, "result", r->out.result);
29439 static enum ndr_err_code ndr_push_spoolss_64(struct ndr_push *ndr, int flags, const struct spoolss_64 *r)
29441 if (flags & NDR_IN) {
29443 if (flags & NDR_OUT) {
29444 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29446 return NDR_ERR_SUCCESS;
29449 static enum ndr_err_code ndr_pull_spoolss_64(struct ndr_pull *ndr, int flags, struct spoolss_64 *r)
29451 if (flags & NDR_IN) {
29453 if (flags & NDR_OUT) {
29454 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29456 return NDR_ERR_SUCCESS;
29459 _PUBLIC_ void ndr_print_spoolss_64(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_64 *r)
29461 ndr_print_struct(ndr, name, "spoolss_64");
29463 if (flags & NDR_SET_VALUES) {
29464 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29466 if (flags & NDR_IN) {
29467 ndr_print_struct(ndr, "in", "spoolss_64");
29471 if (flags & NDR_OUT) {
29472 ndr_print_struct(ndr, "out", "spoolss_64");
29474 ndr_print_WERROR(ndr, "result", r->out.result);
29480 static enum ndr_err_code ndr_push_spoolss_65(struct ndr_push *ndr, int flags, const struct spoolss_65 *r)
29482 if (flags & NDR_IN) {
29484 if (flags & NDR_OUT) {
29485 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29487 return NDR_ERR_SUCCESS;
29490 static enum ndr_err_code ndr_pull_spoolss_65(struct ndr_pull *ndr, int flags, struct spoolss_65 *r)
29492 if (flags & NDR_IN) {
29494 if (flags & NDR_OUT) {
29495 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29497 return NDR_ERR_SUCCESS;
29500 _PUBLIC_ void ndr_print_spoolss_65(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_65 *r)
29502 ndr_print_struct(ndr, name, "spoolss_65");
29504 if (flags & NDR_SET_VALUES) {
29505 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29507 if (flags & NDR_IN) {
29508 ndr_print_struct(ndr, "in", "spoolss_65");
29512 if (flags & NDR_OUT) {
29513 ndr_print_struct(ndr, "out", "spoolss_65");
29515 ndr_print_WERROR(ndr, "result", r->out.result);
29521 static enum ndr_err_code ndr_push_spoolss_GetCorePrinterDrivers(struct ndr_push *ndr, int flags, const struct spoolss_GetCorePrinterDrivers *r)
29523 uint32_t cntr_core_printer_drivers_1;
29524 if (flags & NDR_IN) {
29525 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
29526 if (r->in.servername) {
29527 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
29528 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29529 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
29530 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
29532 if (r->in.architecture == NULL) {
29533 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29535 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
29536 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29537 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
29538 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
29539 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.core_driver_size));
29540 if (r->in.core_driver_dependencies == NULL) {
29541 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29543 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.core_driver_size));
29544 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.core_driver_dependencies, r->in.core_driver_size, sizeof(uint16_t), CH_UTF16));
29545 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.core_printer_driver_count));
29547 if (flags & NDR_OUT) {
29548 if (r->out.core_printer_drivers == NULL) {
29549 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29551 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.core_printer_driver_count));
29552 for (cntr_core_printer_drivers_1 = 0; cntr_core_printer_drivers_1 < r->in.core_printer_driver_count; cntr_core_printer_drivers_1++) {
29553 NDR_CHECK(ndr_push_spoolss_CorePrinterDriver(ndr, NDR_SCALARS, &r->out.core_printer_drivers[cntr_core_printer_drivers_1]));
29555 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29557 return NDR_ERR_SUCCESS;
29560 static enum ndr_err_code ndr_pull_spoolss_GetCorePrinterDrivers(struct ndr_pull *ndr, int flags, struct spoolss_GetCorePrinterDrivers *r)
29562 uint32_t _ptr_servername;
29563 uint32_t cntr_core_printer_drivers_1;
29564 TALLOC_CTX *_mem_save_servername_0;
29565 TALLOC_CTX *_mem_save_core_printer_drivers_1;
29566 if (flags & NDR_IN) {
29567 ZERO_STRUCT(r->out);
29569 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
29570 if (_ptr_servername) {
29571 NDR_PULL_ALLOC(ndr, r->in.servername);
29573 r->in.servername = NULL;
29575 if (r->in.servername) {
29576 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
29577 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
29578 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
29579 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
29580 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
29581 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));
29583 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
29584 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
29585 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
29587 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
29588 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
29589 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
29590 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));
29592 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
29593 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
29594 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.core_driver_size));
29595 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.core_driver_dependencies));
29596 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));
29597 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.core_printer_driver_count));
29598 NDR_PULL_ALLOC_N(ndr, r->out.core_printer_drivers, r->in.core_printer_driver_count);
29599 memset(r->out.core_printer_drivers, 0, (r->in.core_printer_driver_count) * sizeof(*r->out.core_printer_drivers));
29600 if (r->in.core_driver_dependencies) {
29601 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.core_driver_dependencies, r->in.core_driver_size));
29604 if (flags & NDR_OUT) {
29605 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.core_printer_drivers));
29606 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29607 NDR_PULL_ALLOC_N(ndr, r->out.core_printer_drivers, ndr_get_array_size(ndr, &r->out.core_printer_drivers));
29609 _mem_save_core_printer_drivers_1 = NDR_PULL_GET_MEM_CTX(ndr);
29610 NDR_PULL_SET_MEM_CTX(ndr, r->out.core_printer_drivers, 0);
29611 for (cntr_core_printer_drivers_1 = 0; cntr_core_printer_drivers_1 < r->in.core_printer_driver_count; cntr_core_printer_drivers_1++) {
29612 NDR_CHECK(ndr_pull_spoolss_CorePrinterDriver(ndr, NDR_SCALARS, &r->out.core_printer_drivers[cntr_core_printer_drivers_1]));
29614 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_printer_drivers_1, 0);
29615 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29616 if (r->out.core_printer_drivers) {
29617 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.core_printer_drivers, r->in.core_printer_driver_count));
29620 return NDR_ERR_SUCCESS;
29623 _PUBLIC_ void ndr_print_spoolss_GetCorePrinterDrivers(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetCorePrinterDrivers *r)
29625 uint32_t cntr_core_printer_drivers_1;
29626 ndr_print_struct(ndr, name, "spoolss_GetCorePrinterDrivers");
29628 if (flags & NDR_SET_VALUES) {
29629 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29631 if (flags & NDR_IN) {
29632 ndr_print_struct(ndr, "in", "spoolss_GetCorePrinterDrivers");
29634 ndr_print_ptr(ndr, "servername", r->in.servername);
29636 if (r->in.servername) {
29637 ndr_print_string(ndr, "servername", r->in.servername);
29640 ndr_print_ptr(ndr, "architecture", r->in.architecture);
29642 ndr_print_string(ndr, "architecture", r->in.architecture);
29644 ndr_print_uint32(ndr, "core_driver_size", r->in.core_driver_size);
29645 ndr_print_ptr(ndr, "core_driver_dependencies", r->in.core_driver_dependencies);
29647 ndr_print_string(ndr, "core_driver_dependencies", r->in.core_driver_dependencies);
29649 ndr_print_uint32(ndr, "core_printer_driver_count", r->in.core_printer_driver_count);
29652 if (flags & NDR_OUT) {
29653 ndr_print_struct(ndr, "out", "spoolss_GetCorePrinterDrivers");
29655 ndr_print_ptr(ndr, "core_printer_drivers", r->out.core_printer_drivers);
29657 ndr->print(ndr, "%s: ARRAY(%d)", "core_printer_drivers", (int)r->in.core_printer_driver_count);
29659 for (cntr_core_printer_drivers_1=0;cntr_core_printer_drivers_1<r->in.core_printer_driver_count;cntr_core_printer_drivers_1++) {
29661 if (asprintf(&idx_1, "[%d]", cntr_core_printer_drivers_1) != -1) {
29662 ndr_print_spoolss_CorePrinterDriver(ndr, "core_printer_drivers", &r->out.core_printer_drivers[cntr_core_printer_drivers_1]);
29668 ndr_print_WERROR(ndr, "result", r->out.result);
29674 static enum ndr_err_code ndr_push_spoolss_67(struct ndr_push *ndr, int flags, const struct spoolss_67 *r)
29676 if (flags & NDR_IN) {
29678 if (flags & NDR_OUT) {
29679 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29681 return NDR_ERR_SUCCESS;
29684 static enum ndr_err_code ndr_pull_spoolss_67(struct ndr_pull *ndr, int flags, struct spoolss_67 *r)
29686 if (flags & NDR_IN) {
29688 if (flags & NDR_OUT) {
29689 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29691 return NDR_ERR_SUCCESS;
29694 _PUBLIC_ void ndr_print_spoolss_67(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_67 *r)
29696 ndr_print_struct(ndr, name, "spoolss_67");
29698 if (flags & NDR_SET_VALUES) {
29699 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29701 if (flags & NDR_IN) {
29702 ndr_print_struct(ndr, "in", "spoolss_67");
29706 if (flags & NDR_OUT) {
29707 ndr_print_struct(ndr, "out", "spoolss_67");
29709 ndr_print_WERROR(ndr, "result", r->out.result);
29715 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriverPackagePath(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriverPackagePath *r)
29717 if (flags & NDR_IN) {
29718 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
29719 if (r->in.servername) {
29720 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
29721 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29722 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
29723 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
29725 if (r->in.architecture == NULL) {
29726 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29728 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, 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.architecture, CH_UTF16)));
29731 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
29732 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.language));
29733 if (r->in.language) {
29734 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.language, CH_UTF16)));
29735 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29736 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.language, CH_UTF16)));
29737 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.language, ndr_charset_length(r->in.language, CH_UTF16), sizeof(uint16_t), CH_UTF16));
29739 if (r->in.package_id == NULL) {
29740 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29742 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.package_id, CH_UTF16)));
29743 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29744 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.package_id, CH_UTF16)));
29745 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));
29746 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.driver_package_cab));
29747 if (r->in.driver_package_cab) {
29748 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.driver_package_cab_size));
29749 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver_package_cab, r->in.driver_package_cab_size, sizeof(uint16_t), CH_UTF16));
29751 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.driver_package_cab_size));
29753 if (flags & NDR_OUT) {
29754 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.driver_package_cab));
29755 if (r->out.driver_package_cab) {
29756 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.driver_package_cab_size));
29757 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->out.driver_package_cab, r->in.driver_package_cab_size, sizeof(uint16_t), CH_UTF16));
29759 if (r->out.required == NULL) {
29760 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29762 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.required));
29763 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29765 return NDR_ERR_SUCCESS;
29768 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriverPackagePath(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriverPackagePath *r)
29770 uint32_t _ptr_servername;
29771 uint32_t _ptr_language;
29772 uint32_t _ptr_driver_package_cab;
29773 TALLOC_CTX *_mem_save_servername_0;
29774 TALLOC_CTX *_mem_save_language_0;
29775 TALLOC_CTX *_mem_save_driver_package_cab_0;
29776 TALLOC_CTX *_mem_save_required_0;
29777 if (flags & NDR_IN) {
29778 ZERO_STRUCT(r->out);
29780 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
29781 if (_ptr_servername) {
29782 NDR_PULL_ALLOC(ndr, r->in.servername);
29784 r->in.servername = NULL;
29786 if (r->in.servername) {
29787 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
29788 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
29789 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
29790 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
29791 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
29792 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));
29794 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
29795 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
29796 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
29798 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
29799 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
29800 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
29801 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));
29803 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
29804 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
29805 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_language));
29806 if (_ptr_language) {
29807 NDR_PULL_ALLOC(ndr, r->in.language);
29809 r->in.language = NULL;
29811 if (r->in.language) {
29812 _mem_save_language_0 = NDR_PULL_GET_MEM_CTX(ndr);
29813 NDR_PULL_SET_MEM_CTX(ndr, r->in.language, 0);
29814 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.language));
29815 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.language));
29816 if (ndr_get_array_length(ndr, &r->in.language) > ndr_get_array_size(ndr, &r->in.language)) {
29817 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));
29819 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.language), sizeof(uint16_t)));
29820 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.language, ndr_get_array_length(ndr, &r->in.language), sizeof(uint16_t), CH_UTF16));
29821 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_language_0, 0);
29823 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.package_id));
29824 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.package_id));
29825 if (ndr_get_array_length(ndr, &r->in.package_id) > ndr_get_array_size(ndr, &r->in.package_id)) {
29826 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));
29828 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.package_id), sizeof(uint16_t)));
29829 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));
29830 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_package_cab));
29831 if (_ptr_driver_package_cab) {
29832 NDR_PULL_ALLOC(ndr, r->in.driver_package_cab);
29834 r->in.driver_package_cab = NULL;
29836 if (r->in.driver_package_cab) {
29837 _mem_save_driver_package_cab_0 = NDR_PULL_GET_MEM_CTX(ndr);
29838 NDR_PULL_SET_MEM_CTX(ndr, r->in.driver_package_cab, 0);
29839 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver_package_cab));
29840 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));
29841 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_package_cab_0, 0);
29843 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.driver_package_cab_size));
29844 NDR_PULL_ALLOC(ndr, r->out.required);
29845 ZERO_STRUCTP(r->out.required);
29846 if (r->in.driver_package_cab) {
29847 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.driver_package_cab, r->in.driver_package_cab_size));
29850 if (flags & NDR_OUT) {
29851 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_package_cab));
29852 if (_ptr_driver_package_cab) {
29853 NDR_PULL_ALLOC(ndr, r->out.driver_package_cab);
29855 r->out.driver_package_cab = NULL;
29857 if (r->out.driver_package_cab) {
29858 _mem_save_driver_package_cab_0 = NDR_PULL_GET_MEM_CTX(ndr);
29859 NDR_PULL_SET_MEM_CTX(ndr, r->out.driver_package_cab, 0);
29860 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.driver_package_cab));
29861 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));
29862 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_package_cab_0, 0);
29864 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29865 NDR_PULL_ALLOC(ndr, r->out.required);
29867 _mem_save_required_0 = NDR_PULL_GET_MEM_CTX(ndr);
29868 NDR_PULL_SET_MEM_CTX(ndr, r->out.required, LIBNDR_FLAG_REF_ALLOC);
29869 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.required));
29870 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_required_0, LIBNDR_FLAG_REF_ALLOC);
29871 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29872 if (r->out.driver_package_cab) {
29873 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.driver_package_cab, r->in.driver_package_cab_size));
29876 return NDR_ERR_SUCCESS;
29879 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriverPackagePath(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriverPackagePath *r)
29881 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriverPackagePath");
29883 if (flags & NDR_SET_VALUES) {
29884 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29886 if (flags & NDR_IN) {
29887 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriverPackagePath");
29889 ndr_print_ptr(ndr, "servername", r->in.servername);
29891 if (r->in.servername) {
29892 ndr_print_string(ndr, "servername", r->in.servername);
29895 ndr_print_ptr(ndr, "architecture", r->in.architecture);
29897 ndr_print_string(ndr, "architecture", r->in.architecture);
29899 ndr_print_ptr(ndr, "language", r->in.language);
29901 if (r->in.language) {
29902 ndr_print_string(ndr, "language", r->in.language);
29905 ndr_print_ptr(ndr, "package_id", r->in.package_id);
29907 ndr_print_string(ndr, "package_id", r->in.package_id);
29909 ndr_print_ptr(ndr, "driver_package_cab", r->in.driver_package_cab);
29911 if (r->in.driver_package_cab) {
29912 ndr_print_string(ndr, "driver_package_cab", r->in.driver_package_cab);
29915 ndr_print_uint32(ndr, "driver_package_cab_size", r->in.driver_package_cab_size);
29918 if (flags & NDR_OUT) {
29919 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriverPackagePath");
29921 ndr_print_ptr(ndr, "driver_package_cab", r->out.driver_package_cab);
29923 if (r->out.driver_package_cab) {
29924 ndr_print_string(ndr, "driver_package_cab", r->out.driver_package_cab);
29927 ndr_print_ptr(ndr, "required", r->out.required);
29929 ndr_print_uint32(ndr, "required", *r->out.required);
29931 ndr_print_WERROR(ndr, "result", r->out.result);
29937 static enum ndr_err_code ndr_push_spoolss_69(struct ndr_push *ndr, int flags, const struct spoolss_69 *r)
29939 if (flags & NDR_IN) {
29941 if (flags & NDR_OUT) {
29942 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29944 return NDR_ERR_SUCCESS;
29947 static enum ndr_err_code ndr_pull_spoolss_69(struct ndr_pull *ndr, int flags, struct spoolss_69 *r)
29949 if (flags & NDR_IN) {
29951 if (flags & NDR_OUT) {
29952 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29954 return NDR_ERR_SUCCESS;
29957 _PUBLIC_ void ndr_print_spoolss_69(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_69 *r)
29959 ndr_print_struct(ndr, name, "spoolss_69");
29961 if (flags & NDR_SET_VALUES) {
29962 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29964 if (flags & NDR_IN) {
29965 ndr_print_struct(ndr, "in", "spoolss_69");
29969 if (flags & NDR_OUT) {
29970 ndr_print_struct(ndr, "out", "spoolss_69");
29972 ndr_print_WERROR(ndr, "result", r->out.result);
29978 static enum ndr_err_code ndr_push_spoolss_6a(struct ndr_push *ndr, int flags, const struct spoolss_6a *r)
29980 if (flags & NDR_IN) {
29982 if (flags & NDR_OUT) {
29983 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29985 return NDR_ERR_SUCCESS;
29988 static enum ndr_err_code ndr_pull_spoolss_6a(struct ndr_pull *ndr, int flags, struct spoolss_6a *r)
29990 if (flags & NDR_IN) {
29992 if (flags & NDR_OUT) {
29993 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29995 return NDR_ERR_SUCCESS;
29998 _PUBLIC_ void ndr_print_spoolss_6a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_6a *r)
30000 ndr_print_struct(ndr, name, "spoolss_6a");
30002 if (flags & NDR_SET_VALUES) {
30003 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30005 if (flags & NDR_IN) {
30006 ndr_print_struct(ndr, "in", "spoolss_6a");
30010 if (flags & NDR_OUT) {
30011 ndr_print_struct(ndr, "out", "spoolss_6a");
30013 ndr_print_WERROR(ndr, "result", r->out.result);
30019 static enum ndr_err_code ndr_push_spoolss_6b(struct ndr_push *ndr, int flags, const struct spoolss_6b *r)
30021 if (flags & NDR_IN) {
30023 if (flags & NDR_OUT) {
30024 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30026 return NDR_ERR_SUCCESS;
30029 static enum ndr_err_code ndr_pull_spoolss_6b(struct ndr_pull *ndr, int flags, struct spoolss_6b *r)
30031 if (flags & NDR_IN) {
30033 if (flags & NDR_OUT) {
30034 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30036 return NDR_ERR_SUCCESS;
30039 _PUBLIC_ void ndr_print_spoolss_6b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_6b *r)
30041 ndr_print_struct(ndr, name, "spoolss_6b");
30043 if (flags & NDR_SET_VALUES) {
30044 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30046 if (flags & NDR_IN) {
30047 ndr_print_struct(ndr, "in", "spoolss_6b");
30051 if (flags & NDR_OUT) {
30052 ndr_print_struct(ndr, "out", "spoolss_6b");
30054 ndr_print_WERROR(ndr, "result", r->out.result);
30060 static enum ndr_err_code ndr_push_spoolss_6c(struct ndr_push *ndr, int flags, const struct spoolss_6c *r)
30062 if (flags & NDR_IN) {
30064 if (flags & NDR_OUT) {
30065 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30067 return NDR_ERR_SUCCESS;
30070 static enum ndr_err_code ndr_pull_spoolss_6c(struct ndr_pull *ndr, int flags, struct spoolss_6c *r)
30072 if (flags & NDR_IN) {
30074 if (flags & NDR_OUT) {
30075 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30077 return NDR_ERR_SUCCESS;
30080 _PUBLIC_ void ndr_print_spoolss_6c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_6c *r)
30082 ndr_print_struct(ndr, name, "spoolss_6c");
30084 if (flags & NDR_SET_VALUES) {
30085 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30087 if (flags & NDR_IN) {
30088 ndr_print_struct(ndr, "in", "spoolss_6c");
30092 if (flags & NDR_OUT) {
30093 ndr_print_struct(ndr, "out", "spoolss_6c");
30095 ndr_print_WERROR(ndr, "result", r->out.result);
30101 static enum ndr_err_code ndr_push_spoolss_6d(struct ndr_push *ndr, int flags, const struct spoolss_6d *r)
30103 if (flags & NDR_IN) {
30105 if (flags & NDR_OUT) {
30106 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30108 return NDR_ERR_SUCCESS;
30111 static enum ndr_err_code ndr_pull_spoolss_6d(struct ndr_pull *ndr, int flags, struct spoolss_6d *r)
30113 if (flags & NDR_IN) {
30115 if (flags & NDR_OUT) {
30116 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30118 return NDR_ERR_SUCCESS;
30121 _PUBLIC_ void ndr_print_spoolss_6d(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_6d *r)
30123 ndr_print_struct(ndr, name, "spoolss_6d");
30125 if (flags & NDR_SET_VALUES) {
30126 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30128 if (flags & NDR_IN) {
30129 ndr_print_struct(ndr, "in", "spoolss_6d");
30133 if (flags & NDR_OUT) {
30134 ndr_print_struct(ndr, "out", "spoolss_6d");
30136 ndr_print_WERROR(ndr, "result", r->out.result);
30142 static const struct ndr_interface_call spoolss_calls[] = {
30144 "spoolss_EnumPrinters",
30145 sizeof(struct spoolss_EnumPrinters),
30146 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinters,
30147 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinters,
30148 (ndr_print_function_t) ndr_print_spoolss_EnumPrinters,
30152 "spoolss_OpenPrinter",
30153 sizeof(struct spoolss_OpenPrinter),
30154 (ndr_push_flags_fn_t) ndr_push_spoolss_OpenPrinter,
30155 (ndr_pull_flags_fn_t) ndr_pull_spoolss_OpenPrinter,
30156 (ndr_print_function_t) ndr_print_spoolss_OpenPrinter,
30161 sizeof(struct spoolss_SetJob),
30162 (ndr_push_flags_fn_t) ndr_push_spoolss_SetJob,
30163 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetJob,
30164 (ndr_print_function_t) ndr_print_spoolss_SetJob,
30169 sizeof(struct spoolss_GetJob),
30170 (ndr_push_flags_fn_t) ndr_push_spoolss_GetJob,
30171 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetJob,
30172 (ndr_print_function_t) ndr_print_spoolss_GetJob,
30176 "spoolss_EnumJobs",
30177 sizeof(struct spoolss_EnumJobs),
30178 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumJobs,
30179 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumJobs,
30180 (ndr_print_function_t) ndr_print_spoolss_EnumJobs,
30184 "spoolss_AddPrinter",
30185 sizeof(struct spoolss_AddPrinter),
30186 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinter,
30187 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinter,
30188 (ndr_print_function_t) ndr_print_spoolss_AddPrinter,
30192 "spoolss_DeletePrinter",
30193 sizeof(struct spoolss_DeletePrinter),
30194 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinter,
30195 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinter,
30196 (ndr_print_function_t) ndr_print_spoolss_DeletePrinter,
30200 "spoolss_SetPrinter",
30201 sizeof(struct spoolss_SetPrinter),
30202 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinter,
30203 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinter,
30204 (ndr_print_function_t) ndr_print_spoolss_SetPrinter,
30208 "spoolss_GetPrinter",
30209 sizeof(struct spoolss_GetPrinter),
30210 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinter,
30211 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinter,
30212 (ndr_print_function_t) ndr_print_spoolss_GetPrinter,
30216 "spoolss_AddPrinterDriver",
30217 sizeof(struct spoolss_AddPrinterDriver),
30218 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterDriver,
30219 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterDriver,
30220 (ndr_print_function_t) ndr_print_spoolss_AddPrinterDriver,
30224 "spoolss_EnumPrinterDrivers",
30225 sizeof(struct spoolss_EnumPrinterDrivers),
30226 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterDrivers,
30227 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterDrivers,
30228 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterDrivers,
30232 "spoolss_GetPrinterDriver",
30233 sizeof(struct spoolss_GetPrinterDriver),
30234 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriver,
30235 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriver,
30236 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriver,
30240 "spoolss_GetPrinterDriverDirectory",
30241 sizeof(struct spoolss_GetPrinterDriverDirectory),
30242 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriverDirectory,
30243 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriverDirectory,
30244 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriverDirectory,
30248 "spoolss_DeletePrinterDriver",
30249 sizeof(struct spoolss_DeletePrinterDriver),
30250 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDriver,
30251 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDriver,
30252 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDriver,
30256 "spoolss_AddPrintProcessor",
30257 sizeof(struct spoolss_AddPrintProcessor),
30258 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrintProcessor,
30259 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrintProcessor,
30260 (ndr_print_function_t) ndr_print_spoolss_AddPrintProcessor,
30264 "spoolss_EnumPrintProcessors",
30265 sizeof(struct spoolss_EnumPrintProcessors),
30266 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrintProcessors,
30267 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrintProcessors,
30268 (ndr_print_function_t) ndr_print_spoolss_EnumPrintProcessors,
30272 "spoolss_GetPrintProcessorDirectory",
30273 sizeof(struct spoolss_GetPrintProcessorDirectory),
30274 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrintProcessorDirectory,
30275 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrintProcessorDirectory,
30276 (ndr_print_function_t) ndr_print_spoolss_GetPrintProcessorDirectory,
30280 "spoolss_StartDocPrinter",
30281 sizeof(struct spoolss_StartDocPrinter),
30282 (ndr_push_flags_fn_t) ndr_push_spoolss_StartDocPrinter,
30283 (ndr_pull_flags_fn_t) ndr_pull_spoolss_StartDocPrinter,
30284 (ndr_print_function_t) ndr_print_spoolss_StartDocPrinter,
30288 "spoolss_StartPagePrinter",
30289 sizeof(struct spoolss_StartPagePrinter),
30290 (ndr_push_flags_fn_t) ndr_push_spoolss_StartPagePrinter,
30291 (ndr_pull_flags_fn_t) ndr_pull_spoolss_StartPagePrinter,
30292 (ndr_print_function_t) ndr_print_spoolss_StartPagePrinter,
30296 "spoolss_WritePrinter",
30297 sizeof(struct spoolss_WritePrinter),
30298 (ndr_push_flags_fn_t) ndr_push_spoolss_WritePrinter,
30299 (ndr_pull_flags_fn_t) ndr_pull_spoolss_WritePrinter,
30300 (ndr_print_function_t) ndr_print_spoolss_WritePrinter,
30304 "spoolss_EndPagePrinter",
30305 sizeof(struct spoolss_EndPagePrinter),
30306 (ndr_push_flags_fn_t) ndr_push_spoolss_EndPagePrinter,
30307 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EndPagePrinter,
30308 (ndr_print_function_t) ndr_print_spoolss_EndPagePrinter,
30312 "spoolss_AbortPrinter",
30313 sizeof(struct spoolss_AbortPrinter),
30314 (ndr_push_flags_fn_t) ndr_push_spoolss_AbortPrinter,
30315 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AbortPrinter,
30316 (ndr_print_function_t) ndr_print_spoolss_AbortPrinter,
30320 "spoolss_ReadPrinter",
30321 sizeof(struct spoolss_ReadPrinter),
30322 (ndr_push_flags_fn_t) ndr_push_spoolss_ReadPrinter,
30323 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReadPrinter,
30324 (ndr_print_function_t) ndr_print_spoolss_ReadPrinter,
30328 "spoolss_EndDocPrinter",
30329 sizeof(struct spoolss_EndDocPrinter),
30330 (ndr_push_flags_fn_t) ndr_push_spoolss_EndDocPrinter,
30331 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EndDocPrinter,
30332 (ndr_print_function_t) ndr_print_spoolss_EndDocPrinter,
30337 sizeof(struct spoolss_AddJob),
30338 (ndr_push_flags_fn_t) ndr_push_spoolss_AddJob,
30339 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddJob,
30340 (ndr_print_function_t) ndr_print_spoolss_AddJob,
30344 "spoolss_ScheduleJob",
30345 sizeof(struct spoolss_ScheduleJob),
30346 (ndr_push_flags_fn_t) ndr_push_spoolss_ScheduleJob,
30347 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ScheduleJob,
30348 (ndr_print_function_t) ndr_print_spoolss_ScheduleJob,
30352 "spoolss_GetPrinterData",
30353 sizeof(struct spoolss_GetPrinterData),
30354 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterData,
30355 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterData,
30356 (ndr_print_function_t) ndr_print_spoolss_GetPrinterData,
30360 "spoolss_SetPrinterData",
30361 sizeof(struct spoolss_SetPrinterData),
30362 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinterData,
30363 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinterData,
30364 (ndr_print_function_t) ndr_print_spoolss_SetPrinterData,
30368 "spoolss_WaitForPrinterChange",
30369 sizeof(struct spoolss_WaitForPrinterChange),
30370 (ndr_push_flags_fn_t) ndr_push_spoolss_WaitForPrinterChange,
30371 (ndr_pull_flags_fn_t) ndr_pull_spoolss_WaitForPrinterChange,
30372 (ndr_print_function_t) ndr_print_spoolss_WaitForPrinterChange,
30376 "spoolss_ClosePrinter",
30377 sizeof(struct spoolss_ClosePrinter),
30378 (ndr_push_flags_fn_t) ndr_push_spoolss_ClosePrinter,
30379 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ClosePrinter,
30380 (ndr_print_function_t) ndr_print_spoolss_ClosePrinter,
30385 sizeof(struct spoolss_AddForm),
30386 (ndr_push_flags_fn_t) ndr_push_spoolss_AddForm,
30387 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddForm,
30388 (ndr_print_function_t) ndr_print_spoolss_AddForm,
30392 "spoolss_DeleteForm",
30393 sizeof(struct spoolss_DeleteForm),
30394 (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteForm,
30395 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteForm,
30396 (ndr_print_function_t) ndr_print_spoolss_DeleteForm,
30401 sizeof(struct spoolss_GetForm),
30402 (ndr_push_flags_fn_t) ndr_push_spoolss_GetForm,
30403 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetForm,
30404 (ndr_print_function_t) ndr_print_spoolss_GetForm,
30409 sizeof(struct spoolss_SetForm),
30410 (ndr_push_flags_fn_t) ndr_push_spoolss_SetForm,
30411 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetForm,
30412 (ndr_print_function_t) ndr_print_spoolss_SetForm,
30416 "spoolss_EnumForms",
30417 sizeof(struct spoolss_EnumForms),
30418 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumForms,
30419 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumForms,
30420 (ndr_print_function_t) ndr_print_spoolss_EnumForms,
30424 "spoolss_EnumPorts",
30425 sizeof(struct spoolss_EnumPorts),
30426 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPorts,
30427 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPorts,
30428 (ndr_print_function_t) ndr_print_spoolss_EnumPorts,
30432 "spoolss_EnumMonitors",
30433 sizeof(struct spoolss_EnumMonitors),
30434 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumMonitors,
30435 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumMonitors,
30436 (ndr_print_function_t) ndr_print_spoolss_EnumMonitors,
30441 sizeof(struct spoolss_AddPort),
30442 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPort,
30443 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPort,
30444 (ndr_print_function_t) ndr_print_spoolss_AddPort,
30448 "spoolss_ConfigurePort",
30449 sizeof(struct spoolss_ConfigurePort),
30450 (ndr_push_flags_fn_t) ndr_push_spoolss_ConfigurePort,
30451 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ConfigurePort,
30452 (ndr_print_function_t) ndr_print_spoolss_ConfigurePort,
30456 "spoolss_DeletePort",
30457 sizeof(struct spoolss_DeletePort),
30458 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePort,
30459 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePort,
30460 (ndr_print_function_t) ndr_print_spoolss_DeletePort,
30464 "spoolss_CreatePrinterIC",
30465 sizeof(struct spoolss_CreatePrinterIC),
30466 (ndr_push_flags_fn_t) ndr_push_spoolss_CreatePrinterIC,
30467 (ndr_pull_flags_fn_t) ndr_pull_spoolss_CreatePrinterIC,
30468 (ndr_print_function_t) ndr_print_spoolss_CreatePrinterIC,
30472 "spoolss_PlayGDIScriptOnPrinterIC",
30473 sizeof(struct spoolss_PlayGDIScriptOnPrinterIC),
30474 (ndr_push_flags_fn_t) ndr_push_spoolss_PlayGDIScriptOnPrinterIC,
30475 (ndr_pull_flags_fn_t) ndr_pull_spoolss_PlayGDIScriptOnPrinterIC,
30476 (ndr_print_function_t) ndr_print_spoolss_PlayGDIScriptOnPrinterIC,
30480 "spoolss_DeletePrinterIC",
30481 sizeof(struct spoolss_DeletePrinterIC),
30482 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterIC,
30483 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterIC,
30484 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterIC,
30488 "spoolss_AddPrinterConnection",
30489 sizeof(struct spoolss_AddPrinterConnection),
30490 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterConnection,
30491 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterConnection,
30492 (ndr_print_function_t) ndr_print_spoolss_AddPrinterConnection,
30496 "spoolss_DeletePrinterConnection",
30497 sizeof(struct spoolss_DeletePrinterConnection),
30498 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterConnection,
30499 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterConnection,
30500 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterConnection,
30504 "spoolss_PrinterMessageBox",
30505 sizeof(struct spoolss_PrinterMessageBox),
30506 (ndr_push_flags_fn_t) ndr_push_spoolss_PrinterMessageBox,
30507 (ndr_pull_flags_fn_t) ndr_pull_spoolss_PrinterMessageBox,
30508 (ndr_print_function_t) ndr_print_spoolss_PrinterMessageBox,
30512 "spoolss_AddMonitor",
30513 sizeof(struct spoolss_AddMonitor),
30514 (ndr_push_flags_fn_t) ndr_push_spoolss_AddMonitor,
30515 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddMonitor,
30516 (ndr_print_function_t) ndr_print_spoolss_AddMonitor,
30520 "spoolss_DeleteMonitor",
30521 sizeof(struct spoolss_DeleteMonitor),
30522 (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteMonitor,
30523 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteMonitor,
30524 (ndr_print_function_t) ndr_print_spoolss_DeleteMonitor,
30528 "spoolss_DeletePrintProcessor",
30529 sizeof(struct spoolss_DeletePrintProcessor),
30530 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrintProcessor,
30531 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrintProcessor,
30532 (ndr_print_function_t) ndr_print_spoolss_DeletePrintProcessor,
30536 "spoolss_AddPrintProvidor",
30537 sizeof(struct spoolss_AddPrintProvidor),
30538 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrintProvidor,
30539 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrintProvidor,
30540 (ndr_print_function_t) ndr_print_spoolss_AddPrintProvidor,
30544 "spoolss_DeletePrintProvidor",
30545 sizeof(struct spoolss_DeletePrintProvidor),
30546 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrintProvidor,
30547 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrintProvidor,
30548 (ndr_print_function_t) ndr_print_spoolss_DeletePrintProvidor,
30552 "spoolss_EnumPrintProcDataTypes",
30553 sizeof(struct spoolss_EnumPrintProcDataTypes),
30554 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrintProcDataTypes,
30555 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrintProcDataTypes,
30556 (ndr_print_function_t) ndr_print_spoolss_EnumPrintProcDataTypes,
30560 "spoolss_ResetPrinter",
30561 sizeof(struct spoolss_ResetPrinter),
30562 (ndr_push_flags_fn_t) ndr_push_spoolss_ResetPrinter,
30563 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ResetPrinter,
30564 (ndr_print_function_t) ndr_print_spoolss_ResetPrinter,
30568 "spoolss_GetPrinterDriver2",
30569 sizeof(struct spoolss_GetPrinterDriver2),
30570 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriver2,
30571 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriver2,
30572 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriver2,
30576 "spoolss_FindFirstPrinterChangeNotification",
30577 sizeof(struct spoolss_FindFirstPrinterChangeNotification),
30578 (ndr_push_flags_fn_t) ndr_push_spoolss_FindFirstPrinterChangeNotification,
30579 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindFirstPrinterChangeNotification,
30580 (ndr_print_function_t) ndr_print_spoolss_FindFirstPrinterChangeNotification,
30584 "spoolss_FindNextPrinterChangeNotification",
30585 sizeof(struct spoolss_FindNextPrinterChangeNotification),
30586 (ndr_push_flags_fn_t) ndr_push_spoolss_FindNextPrinterChangeNotification,
30587 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindNextPrinterChangeNotification,
30588 (ndr_print_function_t) ndr_print_spoolss_FindNextPrinterChangeNotification,
30592 "spoolss_FindClosePrinterNotify",
30593 sizeof(struct spoolss_FindClosePrinterNotify),
30594 (ndr_push_flags_fn_t) ndr_push_spoolss_FindClosePrinterNotify,
30595 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindClosePrinterNotify,
30596 (ndr_print_function_t) ndr_print_spoolss_FindClosePrinterNotify,
30600 "spoolss_RouterFindFirstPrinterChangeNotificationOld",
30601 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotificationOld),
30602 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld,
30603 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld,
30604 (ndr_print_function_t) ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld,
30608 "spoolss_ReplyOpenPrinter",
30609 sizeof(struct spoolss_ReplyOpenPrinter),
30610 (ndr_push_flags_fn_t) ndr_push_spoolss_ReplyOpenPrinter,
30611 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReplyOpenPrinter,
30612 (ndr_print_function_t) ndr_print_spoolss_ReplyOpenPrinter,
30616 "spoolss_RouterReplyPrinter",
30617 sizeof(struct spoolss_RouterReplyPrinter),
30618 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterReplyPrinter,
30619 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterReplyPrinter,
30620 (ndr_print_function_t) ndr_print_spoolss_RouterReplyPrinter,
30624 "spoolss_ReplyClosePrinter",
30625 sizeof(struct spoolss_ReplyClosePrinter),
30626 (ndr_push_flags_fn_t) ndr_push_spoolss_ReplyClosePrinter,
30627 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReplyClosePrinter,
30628 (ndr_print_function_t) ndr_print_spoolss_ReplyClosePrinter,
30632 "spoolss_AddPortEx",
30633 sizeof(struct spoolss_AddPortEx),
30634 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPortEx,
30635 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPortEx,
30636 (ndr_print_function_t) ndr_print_spoolss_AddPortEx,
30640 "spoolss_RouterFindFirstPrinterChangeNotification",
30641 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotification),
30642 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterFindFirstPrinterChangeNotification,
30643 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification,
30644 (ndr_print_function_t) ndr_print_spoolss_RouterFindFirstPrinterChangeNotification,
30648 "spoolss_SpoolerInit",
30649 sizeof(struct spoolss_SpoolerInit),
30650 (ndr_push_flags_fn_t) ndr_push_spoolss_SpoolerInit,
30651 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SpoolerInit,
30652 (ndr_print_function_t) ndr_print_spoolss_SpoolerInit,
30656 "spoolss_ResetPrinterEx",
30657 sizeof(struct spoolss_ResetPrinterEx),
30658 (ndr_push_flags_fn_t) ndr_push_spoolss_ResetPrinterEx,
30659 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ResetPrinterEx,
30660 (ndr_print_function_t) ndr_print_spoolss_ResetPrinterEx,
30664 "spoolss_RemoteFindFirstPrinterChangeNotifyEx",
30665 sizeof(struct spoolss_RemoteFindFirstPrinterChangeNotifyEx),
30666 (ndr_push_flags_fn_t) ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
30667 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
30668 (ndr_print_function_t) ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
30672 "spoolss_RouterReplyPrinterEx",
30673 sizeof(struct spoolss_RouterReplyPrinterEx),
30674 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterReplyPrinterEx,
30675 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterReplyPrinterEx,
30676 (ndr_print_function_t) ndr_print_spoolss_RouterReplyPrinterEx,
30680 "spoolss_RouterRefreshPrinterChangeNotify",
30681 sizeof(struct spoolss_RouterRefreshPrinterChangeNotify),
30682 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterRefreshPrinterChangeNotify,
30683 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterRefreshPrinterChangeNotify,
30684 (ndr_print_function_t) ndr_print_spoolss_RouterRefreshPrinterChangeNotify,
30689 sizeof(struct spoolss_44),
30690 (ndr_push_flags_fn_t) ndr_push_spoolss_44,
30691 (ndr_pull_flags_fn_t) ndr_pull_spoolss_44,
30692 (ndr_print_function_t) ndr_print_spoolss_44,
30696 "spoolss_OpenPrinterEx",
30697 sizeof(struct spoolss_OpenPrinterEx),
30698 (ndr_push_flags_fn_t) ndr_push_spoolss_OpenPrinterEx,
30699 (ndr_pull_flags_fn_t) ndr_pull_spoolss_OpenPrinterEx,
30700 (ndr_print_function_t) ndr_print_spoolss_OpenPrinterEx,
30704 "spoolss_AddPrinterEx",
30705 sizeof(struct spoolss_AddPrinterEx),
30706 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterEx,
30707 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterEx,
30708 (ndr_print_function_t) ndr_print_spoolss_AddPrinterEx,
30713 sizeof(struct spoolss_47),
30714 (ndr_push_flags_fn_t) ndr_push_spoolss_47,
30715 (ndr_pull_flags_fn_t) ndr_pull_spoolss_47,
30716 (ndr_print_function_t) ndr_print_spoolss_47,
30720 "spoolss_EnumPrinterData",
30721 sizeof(struct spoolss_EnumPrinterData),
30722 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterData,
30723 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterData,
30724 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterData,
30728 "spoolss_DeletePrinterData",
30729 sizeof(struct spoolss_DeletePrinterData),
30730 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterData,
30731 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterData,
30732 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterData,
30737 sizeof(struct spoolss_4a),
30738 (ndr_push_flags_fn_t) ndr_push_spoolss_4a,
30739 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4a,
30740 (ndr_print_function_t) ndr_print_spoolss_4a,
30745 sizeof(struct spoolss_4b),
30746 (ndr_push_flags_fn_t) ndr_push_spoolss_4b,
30747 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4b,
30748 (ndr_print_function_t) ndr_print_spoolss_4b,
30753 sizeof(struct spoolss_4c),
30754 (ndr_push_flags_fn_t) ndr_push_spoolss_4c,
30755 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4c,
30756 (ndr_print_function_t) ndr_print_spoolss_4c,
30760 "spoolss_SetPrinterDataEx",
30761 sizeof(struct spoolss_SetPrinterDataEx),
30762 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinterDataEx,
30763 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinterDataEx,
30764 (ndr_print_function_t) ndr_print_spoolss_SetPrinterDataEx,
30768 "spoolss_GetPrinterDataEx",
30769 sizeof(struct spoolss_GetPrinterDataEx),
30770 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDataEx,
30771 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDataEx,
30772 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDataEx,
30776 "spoolss_EnumPrinterDataEx",
30777 sizeof(struct spoolss_EnumPrinterDataEx),
30778 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterDataEx,
30779 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterDataEx,
30780 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterDataEx,
30784 "spoolss_EnumPrinterKey",
30785 sizeof(struct spoolss_EnumPrinterKey),
30786 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterKey,
30787 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterKey,
30788 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterKey,
30792 "spoolss_DeletePrinterDataEx",
30793 sizeof(struct spoolss_DeletePrinterDataEx),
30794 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDataEx,
30795 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDataEx,
30796 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDataEx,
30800 "spoolss_DeletePrinterKey",
30801 sizeof(struct spoolss_DeletePrinterKey),
30802 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterKey,
30803 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterKey,
30804 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterKey,
30809 sizeof(struct spoolss_53),
30810 (ndr_push_flags_fn_t) ndr_push_spoolss_53,
30811 (ndr_pull_flags_fn_t) ndr_pull_spoolss_53,
30812 (ndr_print_function_t) ndr_print_spoolss_53,
30816 "spoolss_DeletePrinterDriverEx",
30817 sizeof(struct spoolss_DeletePrinterDriverEx),
30818 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDriverEx,
30819 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDriverEx,
30820 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDriverEx,
30825 sizeof(struct spoolss_55),
30826 (ndr_push_flags_fn_t) ndr_push_spoolss_55,
30827 (ndr_pull_flags_fn_t) ndr_pull_spoolss_55,
30828 (ndr_print_function_t) ndr_print_spoolss_55,
30833 sizeof(struct spoolss_56),
30834 (ndr_push_flags_fn_t) ndr_push_spoolss_56,
30835 (ndr_pull_flags_fn_t) ndr_pull_spoolss_56,
30836 (ndr_print_function_t) ndr_print_spoolss_56,
30841 sizeof(struct spoolss_57),
30842 (ndr_push_flags_fn_t) ndr_push_spoolss_57,
30843 (ndr_pull_flags_fn_t) ndr_pull_spoolss_57,
30844 (ndr_print_function_t) ndr_print_spoolss_57,
30849 sizeof(struct spoolss_XcvData),
30850 (ndr_push_flags_fn_t) ndr_push_spoolss_XcvData,
30851 (ndr_pull_flags_fn_t) ndr_pull_spoolss_XcvData,
30852 (ndr_print_function_t) ndr_print_spoolss_XcvData,
30856 "spoolss_AddPrinterDriverEx",
30857 sizeof(struct spoolss_AddPrinterDriverEx),
30858 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterDriverEx,
30859 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterDriverEx,
30860 (ndr_print_function_t) ndr_print_spoolss_AddPrinterDriverEx,
30865 sizeof(struct spoolss_5a),
30866 (ndr_push_flags_fn_t) ndr_push_spoolss_5a,
30867 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5a,
30868 (ndr_print_function_t) ndr_print_spoolss_5a,
30873 sizeof(struct spoolss_5b),
30874 (ndr_push_flags_fn_t) ndr_push_spoolss_5b,
30875 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5b,
30876 (ndr_print_function_t) ndr_print_spoolss_5b,
30881 sizeof(struct spoolss_5c),
30882 (ndr_push_flags_fn_t) ndr_push_spoolss_5c,
30883 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5c,
30884 (ndr_print_function_t) ndr_print_spoolss_5c,
30889 sizeof(struct spoolss_5d),
30890 (ndr_push_flags_fn_t) ndr_push_spoolss_5d,
30891 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5d,
30892 (ndr_print_function_t) ndr_print_spoolss_5d,
30897 sizeof(struct spoolss_5e),
30898 (ndr_push_flags_fn_t) ndr_push_spoolss_5e,
30899 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5e,
30900 (ndr_print_function_t) ndr_print_spoolss_5e,
30905 sizeof(struct spoolss_5f),
30906 (ndr_push_flags_fn_t) ndr_push_spoolss_5f,
30907 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5f,
30908 (ndr_print_function_t) ndr_print_spoolss_5f,
30913 sizeof(struct spoolss_60),
30914 (ndr_push_flags_fn_t) ndr_push_spoolss_60,
30915 (ndr_pull_flags_fn_t) ndr_pull_spoolss_60,
30916 (ndr_print_function_t) ndr_print_spoolss_60,
30921 sizeof(struct spoolss_61),
30922 (ndr_push_flags_fn_t) ndr_push_spoolss_61,
30923 (ndr_pull_flags_fn_t) ndr_pull_spoolss_61,
30924 (ndr_print_function_t) ndr_print_spoolss_61,
30929 sizeof(struct spoolss_62),
30930 (ndr_push_flags_fn_t) ndr_push_spoolss_62,
30931 (ndr_pull_flags_fn_t) ndr_pull_spoolss_62,
30932 (ndr_print_function_t) ndr_print_spoolss_62,
30937 sizeof(struct spoolss_63),
30938 (ndr_push_flags_fn_t) ndr_push_spoolss_63,
30939 (ndr_pull_flags_fn_t) ndr_pull_spoolss_63,
30940 (ndr_print_function_t) ndr_print_spoolss_63,
30945 sizeof(struct spoolss_64),
30946 (ndr_push_flags_fn_t) ndr_push_spoolss_64,
30947 (ndr_pull_flags_fn_t) ndr_pull_spoolss_64,
30948 (ndr_print_function_t) ndr_print_spoolss_64,
30953 sizeof(struct spoolss_65),
30954 (ndr_push_flags_fn_t) ndr_push_spoolss_65,
30955 (ndr_pull_flags_fn_t) ndr_pull_spoolss_65,
30956 (ndr_print_function_t) ndr_print_spoolss_65,
30960 "spoolss_GetCorePrinterDrivers",
30961 sizeof(struct spoolss_GetCorePrinterDrivers),
30962 (ndr_push_flags_fn_t) ndr_push_spoolss_GetCorePrinterDrivers,
30963 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetCorePrinterDrivers,
30964 (ndr_print_function_t) ndr_print_spoolss_GetCorePrinterDrivers,
30969 sizeof(struct spoolss_67),
30970 (ndr_push_flags_fn_t) ndr_push_spoolss_67,
30971 (ndr_pull_flags_fn_t) ndr_pull_spoolss_67,
30972 (ndr_print_function_t) ndr_print_spoolss_67,
30976 "spoolss_GetPrinterDriverPackagePath",
30977 sizeof(struct spoolss_GetPrinterDriverPackagePath),
30978 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriverPackagePath,
30979 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriverPackagePath,
30980 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriverPackagePath,
30985 sizeof(struct spoolss_69),
30986 (ndr_push_flags_fn_t) ndr_push_spoolss_69,
30987 (ndr_pull_flags_fn_t) ndr_pull_spoolss_69,
30988 (ndr_print_function_t) ndr_print_spoolss_69,
30993 sizeof(struct spoolss_6a),
30994 (ndr_push_flags_fn_t) ndr_push_spoolss_6a,
30995 (ndr_pull_flags_fn_t) ndr_pull_spoolss_6a,
30996 (ndr_print_function_t) ndr_print_spoolss_6a,
31001 sizeof(struct spoolss_6b),
31002 (ndr_push_flags_fn_t) ndr_push_spoolss_6b,
31003 (ndr_pull_flags_fn_t) ndr_pull_spoolss_6b,
31004 (ndr_print_function_t) ndr_print_spoolss_6b,
31009 sizeof(struct spoolss_6c),
31010 (ndr_push_flags_fn_t) ndr_push_spoolss_6c,
31011 (ndr_pull_flags_fn_t) ndr_pull_spoolss_6c,
31012 (ndr_print_function_t) ndr_print_spoolss_6c,
31017 sizeof(struct spoolss_6d),
31018 (ndr_push_flags_fn_t) ndr_push_spoolss_6d,
31019 (ndr_pull_flags_fn_t) ndr_pull_spoolss_6d,
31020 (ndr_print_function_t) ndr_print_spoolss_6d,
31023 { NULL, 0, NULL, NULL, NULL, false }
31026 static const char * const spoolss_endpoint_strings[] = {
31027 "ncacn_np:[\\pipe\\spoolss]",
31030 static const struct ndr_interface_string_array spoolss_endpoints = {
31032 .names = spoolss_endpoint_strings
31035 static const char * const spoolss_authservice_strings[] = {
31039 static const struct ndr_interface_string_array spoolss_authservices = {
31041 .names = spoolss_authservice_strings
31045 const struct ndr_interface_table ndr_table_spoolss = {
31048 {0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0x89,0xab}},
31049 NDR_SPOOLSS_VERSION
31051 .helpstring = NDR_SPOOLSS_HELPSTRING,
31053 .calls = spoolss_calls,
31054 .endpoints = &spoolss_endpoints,
31055 .authservices = &spoolss_authservices