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_ enum ndr_err_code ndr_push_spoolss_StringArray2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_StringArray2 *r)
8130 if (ndr_flags & NDR_SCALARS) {
8131 NDR_CHECK(ndr_push_align(ndr, 4));
8132 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, (ndr_size_spoolss_StringArray2(r, ndr->iconv_convenience, ndr->flags) - 4) / 2));
8134 uint32_t _flags_save_string_array = ndr->flags;
8135 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8137 struct ndr_push *_ndr_string;
8138 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_string, 0, (ndr_size_spoolss_StringArray2(r, ndr->iconv_convenience, ndr->flags) - 4) / 2 * 2));
8139 NDR_CHECK(ndr_push_string_array(_ndr_string, NDR_SCALARS, r->string));
8140 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_string, 0, (ndr_size_spoolss_StringArray2(r, ndr->iconv_convenience, ndr->flags) - 4) / 2 * 2));
8142 ndr->flags = _flags_save_string_array;
8144 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
8146 if (ndr_flags & NDR_BUFFERS) {
8148 return NDR_ERR_SUCCESS;
8151 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_StringArray2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_StringArray2 *r)
8153 if (ndr_flags & NDR_SCALARS) {
8154 NDR_CHECK(ndr_pull_align(ndr, 4));
8155 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
8157 uint32_t _flags_save_string_array = ndr->flags;
8158 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8160 struct ndr_pull *_ndr_string;
8161 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_string, 0, r->_ndr_size * 2));
8162 NDR_CHECK(ndr_pull_string_array(_ndr_string, NDR_SCALARS, &r->string));
8163 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_string, 0, r->_ndr_size * 2));
8165 ndr->flags = _flags_save_string_array;
8167 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
8169 if (ndr_flags & NDR_BUFFERS) {
8171 return NDR_ERR_SUCCESS;
8174 _PUBLIC_ void ndr_print_spoolss_StringArray2(struct ndr_print *ndr, const char *name, const struct spoolss_StringArray2 *r)
8176 ndr_print_struct(ndr, name, "spoolss_StringArray2");
8178 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);
8179 ndr_print_string_array(ndr, "string", r->string);
8183 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo1 *r)
8185 if (ndr_flags & NDR_SCALARS) {
8186 NDR_CHECK(ndr_push_align(ndr, 5));
8187 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
8188 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8190 if (ndr_flags & NDR_BUFFERS) {
8191 if (r->driver_name) {
8192 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8193 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8194 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8195 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8198 return NDR_ERR_SUCCESS;
8201 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo1 *r)
8203 uint32_t _ptr_driver_name;
8204 TALLOC_CTX *_mem_save_driver_name_0;
8205 if (ndr_flags & NDR_SCALARS) {
8206 NDR_CHECK(ndr_pull_align(ndr, 5));
8207 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8208 if (_ptr_driver_name) {
8209 NDR_PULL_ALLOC(ndr, r->driver_name);
8211 r->driver_name = NULL;
8213 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8215 if (ndr_flags & NDR_BUFFERS) {
8216 if (r->driver_name) {
8217 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8218 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8219 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
8220 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
8221 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
8222 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));
8224 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
8225 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
8226 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8229 return NDR_ERR_SUCCESS;
8232 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo1 *r)
8234 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo1");
8236 ndr_print_ptr(ndr, "driver_name", r->driver_name);
8238 if (r->driver_name) {
8239 ndr_print_string(ndr, "driver_name", r->driver_name);
8245 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverOSVersion(struct ndr_push *ndr, int ndr_flags, enum spoolss_DriverOSVersion r)
8247 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
8248 return NDR_ERR_SUCCESS;
8251 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverOSVersion(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DriverOSVersion *r)
8254 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
8256 return NDR_ERR_SUCCESS;
8259 _PUBLIC_ void ndr_print_spoolss_DriverOSVersion(struct ndr_print *ndr, const char *name, enum spoolss_DriverOSVersion r)
8261 const char *val = NULL;
8264 case SPOOLSS_DRIVER_VERSION_9X: val = "SPOOLSS_DRIVER_VERSION_9X"; break;
8265 case SPOOLSS_DRIVER_VERSION_NT35: val = "SPOOLSS_DRIVER_VERSION_NT35"; break;
8266 case SPOOLSS_DRIVER_VERSION_NT4: val = "SPOOLSS_DRIVER_VERSION_NT4"; break;
8267 case SPOOLSS_DRIVER_VERSION_200X: val = "SPOOLSS_DRIVER_VERSION_200X"; break;
8269 ndr_print_enum(ndr, name, "ENUM", val, r);
8272 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo2 *r)
8274 if (ndr_flags & NDR_SCALARS) {
8275 NDR_CHECK(ndr_push_align(ndr, 5));
8276 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
8277 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
8278 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
8279 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
8280 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
8281 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
8282 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8284 if (ndr_flags & NDR_BUFFERS) {
8285 if (r->driver_name) {
8286 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8287 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8288 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8289 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8291 if (r->architecture) {
8292 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8293 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8294 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8295 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8297 if (r->driver_path) {
8298 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8299 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8300 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8301 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8304 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8305 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8306 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8307 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8309 if (r->config_file) {
8310 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8311 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8312 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8313 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8316 return NDR_ERR_SUCCESS;
8319 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo2 *r)
8321 uint32_t _ptr_driver_name;
8322 TALLOC_CTX *_mem_save_driver_name_0;
8323 uint32_t _ptr_architecture;
8324 TALLOC_CTX *_mem_save_architecture_0;
8325 uint32_t _ptr_driver_path;
8326 TALLOC_CTX *_mem_save_driver_path_0;
8327 uint32_t _ptr_data_file;
8328 TALLOC_CTX *_mem_save_data_file_0;
8329 uint32_t _ptr_config_file;
8330 TALLOC_CTX *_mem_save_config_file_0;
8331 if (ndr_flags & NDR_SCALARS) {
8332 NDR_CHECK(ndr_pull_align(ndr, 5));
8333 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
8334 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8335 if (_ptr_driver_name) {
8336 NDR_PULL_ALLOC(ndr, r->driver_name);
8338 r->driver_name = NULL;
8340 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
8341 if (_ptr_architecture) {
8342 NDR_PULL_ALLOC(ndr, r->architecture);
8344 r->architecture = NULL;
8346 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
8347 if (_ptr_driver_path) {
8348 NDR_PULL_ALLOC(ndr, r->driver_path);
8350 r->driver_path = NULL;
8352 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
8353 if (_ptr_data_file) {
8354 NDR_PULL_ALLOC(ndr, r->data_file);
8356 r->data_file = NULL;
8358 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
8359 if (_ptr_config_file) {
8360 NDR_PULL_ALLOC(ndr, r->config_file);
8362 r->config_file = NULL;
8364 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8366 if (ndr_flags & NDR_BUFFERS) {
8367 if (r->driver_name) {
8368 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8369 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8370 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
8371 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
8372 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
8373 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));
8375 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
8376 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
8377 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8379 if (r->architecture) {
8380 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
8381 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
8382 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
8383 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
8384 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
8385 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));
8387 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
8388 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
8389 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
8391 if (r->driver_path) {
8392 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
8393 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
8394 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
8395 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
8396 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
8397 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));
8399 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
8400 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
8401 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
8404 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8405 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
8406 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
8407 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
8408 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
8409 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));
8411 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
8412 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
8413 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
8415 if (r->config_file) {
8416 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8417 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
8418 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
8419 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
8420 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
8421 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));
8423 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
8424 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
8425 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
8428 return NDR_ERR_SUCCESS;
8431 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo2 *r)
8433 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo2");
8435 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
8436 ndr_print_ptr(ndr, "driver_name", r->driver_name);
8438 if (r->driver_name) {
8439 ndr_print_string(ndr, "driver_name", r->driver_name);
8442 ndr_print_ptr(ndr, "architecture", r->architecture);
8444 if (r->architecture) {
8445 ndr_print_string(ndr, "architecture", r->architecture);
8448 ndr_print_ptr(ndr, "driver_path", r->driver_path);
8450 if (r->driver_path) {
8451 ndr_print_string(ndr, "driver_path", r->driver_path);
8454 ndr_print_ptr(ndr, "data_file", r->data_file);
8457 ndr_print_string(ndr, "data_file", r->data_file);
8460 ndr_print_ptr(ndr, "config_file", r->config_file);
8462 if (r->config_file) {
8463 ndr_print_string(ndr, "config_file", r->config_file);
8469 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo3 *r)
8471 if (ndr_flags & NDR_SCALARS) {
8472 NDR_CHECK(ndr_push_align(ndr, 5));
8473 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
8474 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
8475 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
8476 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
8477 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
8478 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
8479 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
8480 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
8481 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
8482 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8483 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
8484 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8486 if (ndr_flags & NDR_BUFFERS) {
8487 if (r->driver_name) {
8488 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8489 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8490 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8491 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8493 if (r->architecture) {
8494 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8495 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8496 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8497 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8499 if (r->driver_path) {
8500 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8501 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8502 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8503 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8506 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8507 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8508 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8509 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8511 if (r->config_file) {
8512 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8513 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8514 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8515 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8518 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8519 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8520 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8521 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8523 if (r->monitor_name) {
8524 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8525 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8526 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8527 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8529 if (r->default_datatype) {
8530 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8531 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8532 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8533 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8535 if (r->dependent_files) {
8536 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8539 return NDR_ERR_SUCCESS;
8542 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo3 *r)
8544 uint32_t _ptr_driver_name;
8545 TALLOC_CTX *_mem_save_driver_name_0;
8546 uint32_t _ptr_architecture;
8547 TALLOC_CTX *_mem_save_architecture_0;
8548 uint32_t _ptr_driver_path;
8549 TALLOC_CTX *_mem_save_driver_path_0;
8550 uint32_t _ptr_data_file;
8551 TALLOC_CTX *_mem_save_data_file_0;
8552 uint32_t _ptr_config_file;
8553 TALLOC_CTX *_mem_save_config_file_0;
8554 uint32_t _ptr_help_file;
8555 TALLOC_CTX *_mem_save_help_file_0;
8556 uint32_t _ptr_monitor_name;
8557 TALLOC_CTX *_mem_save_monitor_name_0;
8558 uint32_t _ptr_default_datatype;
8559 TALLOC_CTX *_mem_save_default_datatype_0;
8560 uint32_t _ptr_dependent_files;
8561 TALLOC_CTX *_mem_save_dependent_files_0;
8562 if (ndr_flags & NDR_SCALARS) {
8563 NDR_CHECK(ndr_pull_align(ndr, 5));
8564 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
8565 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8566 if (_ptr_driver_name) {
8567 NDR_PULL_ALLOC(ndr, r->driver_name);
8569 r->driver_name = NULL;
8571 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
8572 if (_ptr_architecture) {
8573 NDR_PULL_ALLOC(ndr, r->architecture);
8575 r->architecture = NULL;
8577 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
8578 if (_ptr_driver_path) {
8579 NDR_PULL_ALLOC(ndr, r->driver_path);
8581 r->driver_path = NULL;
8583 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
8584 if (_ptr_data_file) {
8585 NDR_PULL_ALLOC(ndr, r->data_file);
8587 r->data_file = NULL;
8589 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
8590 if (_ptr_config_file) {
8591 NDR_PULL_ALLOC(ndr, r->config_file);
8593 r->config_file = NULL;
8595 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
8596 if (_ptr_help_file) {
8597 NDR_PULL_ALLOC(ndr, r->help_file);
8599 r->help_file = NULL;
8601 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
8602 if (_ptr_monitor_name) {
8603 NDR_PULL_ALLOC(ndr, r->monitor_name);
8605 r->monitor_name = NULL;
8607 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
8608 if (_ptr_default_datatype) {
8609 NDR_PULL_ALLOC(ndr, r->default_datatype);
8611 r->default_datatype = NULL;
8613 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
8614 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
8615 if (_ptr_dependent_files) {
8616 NDR_PULL_ALLOC(ndr, r->dependent_files);
8618 r->dependent_files = NULL;
8620 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8622 if (ndr_flags & NDR_BUFFERS) {
8623 if (r->driver_name) {
8624 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8625 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8626 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
8627 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
8628 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
8629 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));
8631 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
8632 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
8633 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8635 if (r->architecture) {
8636 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
8637 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
8638 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
8639 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
8640 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
8641 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));
8643 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
8644 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
8645 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
8647 if (r->driver_path) {
8648 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
8649 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
8650 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
8651 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
8652 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
8653 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));
8655 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
8656 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
8657 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
8660 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8661 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
8662 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
8663 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
8664 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
8665 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));
8667 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
8668 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
8669 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
8671 if (r->config_file) {
8672 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8673 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
8674 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
8675 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
8676 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
8677 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));
8679 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
8680 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
8681 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
8684 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8685 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
8686 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
8687 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
8688 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
8689 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));
8691 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
8692 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
8693 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
8695 if (r->monitor_name) {
8696 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8697 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
8698 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
8699 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
8700 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
8701 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));
8703 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
8704 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
8705 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
8707 if (r->default_datatype) {
8708 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
8709 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
8710 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
8711 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
8712 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
8713 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));
8715 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
8716 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
8717 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
8719 if (r->dependent_files) {
8720 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
8721 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
8722 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8723 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
8726 return NDR_ERR_SUCCESS;
8729 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo3 *r)
8731 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo3");
8733 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
8734 ndr_print_ptr(ndr, "driver_name", r->driver_name);
8736 if (r->driver_name) {
8737 ndr_print_string(ndr, "driver_name", r->driver_name);
8740 ndr_print_ptr(ndr, "architecture", r->architecture);
8742 if (r->architecture) {
8743 ndr_print_string(ndr, "architecture", r->architecture);
8746 ndr_print_ptr(ndr, "driver_path", r->driver_path);
8748 if (r->driver_path) {
8749 ndr_print_string(ndr, "driver_path", r->driver_path);
8752 ndr_print_ptr(ndr, "data_file", r->data_file);
8755 ndr_print_string(ndr, "data_file", r->data_file);
8758 ndr_print_ptr(ndr, "config_file", r->config_file);
8760 if (r->config_file) {
8761 ndr_print_string(ndr, "config_file", r->config_file);
8764 ndr_print_ptr(ndr, "help_file", r->help_file);
8767 ndr_print_string(ndr, "help_file", r->help_file);
8770 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
8772 if (r->monitor_name) {
8773 ndr_print_string(ndr, "monitor_name", r->monitor_name);
8776 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
8778 if (r->default_datatype) {
8779 ndr_print_string(ndr, "default_datatype", r->default_datatype);
8782 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);
8783 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
8785 if (r->dependent_files) {
8786 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
8792 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo4 *r)
8794 if (ndr_flags & NDR_SCALARS) {
8795 NDR_CHECK(ndr_push_align(ndr, 5));
8796 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
8797 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
8798 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
8799 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
8800 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
8801 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
8802 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
8803 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
8804 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
8805 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8806 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
8807 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8808 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
8809 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8811 if (ndr_flags & NDR_BUFFERS) {
8812 if (r->driver_name) {
8813 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8814 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8815 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8816 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8818 if (r->architecture) {
8819 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8820 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8821 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8822 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8824 if (r->driver_path) {
8825 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8826 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8827 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8828 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8831 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8832 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8833 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8834 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8836 if (r->config_file) {
8837 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8838 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8839 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8840 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8843 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8844 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8845 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8846 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8848 if (r->monitor_name) {
8849 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8850 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8851 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8852 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8854 if (r->default_datatype) {
8855 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8856 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8857 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8858 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8860 if (r->dependent_files) {
8861 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8863 if (r->previous_names) {
8864 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
8867 return NDR_ERR_SUCCESS;
8870 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo4 *r)
8872 uint32_t _ptr_driver_name;
8873 TALLOC_CTX *_mem_save_driver_name_0;
8874 uint32_t _ptr_architecture;
8875 TALLOC_CTX *_mem_save_architecture_0;
8876 uint32_t _ptr_driver_path;
8877 TALLOC_CTX *_mem_save_driver_path_0;
8878 uint32_t _ptr_data_file;
8879 TALLOC_CTX *_mem_save_data_file_0;
8880 uint32_t _ptr_config_file;
8881 TALLOC_CTX *_mem_save_config_file_0;
8882 uint32_t _ptr_help_file;
8883 TALLOC_CTX *_mem_save_help_file_0;
8884 uint32_t _ptr_monitor_name;
8885 TALLOC_CTX *_mem_save_monitor_name_0;
8886 uint32_t _ptr_default_datatype;
8887 TALLOC_CTX *_mem_save_default_datatype_0;
8888 uint32_t _ptr_dependent_files;
8889 TALLOC_CTX *_mem_save_dependent_files_0;
8890 uint32_t _ptr_previous_names;
8891 TALLOC_CTX *_mem_save_previous_names_0;
8892 if (ndr_flags & NDR_SCALARS) {
8893 NDR_CHECK(ndr_pull_align(ndr, 5));
8894 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
8895 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8896 if (_ptr_driver_name) {
8897 NDR_PULL_ALLOC(ndr, r->driver_name);
8899 r->driver_name = NULL;
8901 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
8902 if (_ptr_architecture) {
8903 NDR_PULL_ALLOC(ndr, r->architecture);
8905 r->architecture = NULL;
8907 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
8908 if (_ptr_driver_path) {
8909 NDR_PULL_ALLOC(ndr, r->driver_path);
8911 r->driver_path = NULL;
8913 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
8914 if (_ptr_data_file) {
8915 NDR_PULL_ALLOC(ndr, r->data_file);
8917 r->data_file = NULL;
8919 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
8920 if (_ptr_config_file) {
8921 NDR_PULL_ALLOC(ndr, r->config_file);
8923 r->config_file = NULL;
8925 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
8926 if (_ptr_help_file) {
8927 NDR_PULL_ALLOC(ndr, r->help_file);
8929 r->help_file = NULL;
8931 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
8932 if (_ptr_monitor_name) {
8933 NDR_PULL_ALLOC(ndr, r->monitor_name);
8935 r->monitor_name = NULL;
8937 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
8938 if (_ptr_default_datatype) {
8939 NDR_PULL_ALLOC(ndr, r->default_datatype);
8941 r->default_datatype = NULL;
8943 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
8944 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
8945 if (_ptr_dependent_files) {
8946 NDR_PULL_ALLOC(ndr, r->dependent_files);
8948 r->dependent_files = NULL;
8950 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
8951 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
8952 if (_ptr_previous_names) {
8953 NDR_PULL_ALLOC(ndr, r->previous_names);
8955 r->previous_names = NULL;
8957 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8959 if (ndr_flags & NDR_BUFFERS) {
8960 if (r->driver_name) {
8961 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8962 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8963 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
8964 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
8965 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
8966 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));
8968 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
8969 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
8970 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8972 if (r->architecture) {
8973 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
8974 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
8975 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
8976 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
8977 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
8978 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));
8980 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
8981 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
8982 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
8984 if (r->driver_path) {
8985 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
8986 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
8987 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
8988 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
8989 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
8990 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));
8992 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
8993 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
8994 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
8997 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8998 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
8999 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
9000 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
9001 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
9002 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));
9004 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
9005 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
9006 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
9008 if (r->config_file) {
9009 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9010 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
9011 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
9012 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
9013 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
9014 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));
9016 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
9017 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
9018 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
9021 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9022 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
9023 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
9024 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
9025 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
9026 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));
9028 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
9029 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
9030 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
9032 if (r->monitor_name) {
9033 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9034 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
9035 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
9036 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
9037 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
9038 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));
9040 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
9041 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
9042 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
9044 if (r->default_datatype) {
9045 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
9046 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
9047 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
9048 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
9049 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
9050 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));
9052 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
9053 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
9054 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
9056 if (r->dependent_files) {
9057 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
9058 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
9059 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
9060 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
9062 if (r->previous_names) {
9063 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
9064 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
9065 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
9066 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
9069 return NDR_ERR_SUCCESS;
9072 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo4 *r)
9074 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo4");
9076 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
9077 ndr_print_ptr(ndr, "driver_name", r->driver_name);
9079 if (r->driver_name) {
9080 ndr_print_string(ndr, "driver_name", r->driver_name);
9083 ndr_print_ptr(ndr, "architecture", r->architecture);
9085 if (r->architecture) {
9086 ndr_print_string(ndr, "architecture", r->architecture);
9089 ndr_print_ptr(ndr, "driver_path", r->driver_path);
9091 if (r->driver_path) {
9092 ndr_print_string(ndr, "driver_path", r->driver_path);
9095 ndr_print_ptr(ndr, "data_file", r->data_file);
9098 ndr_print_string(ndr, "data_file", r->data_file);
9101 ndr_print_ptr(ndr, "config_file", r->config_file);
9103 if (r->config_file) {
9104 ndr_print_string(ndr, "config_file", r->config_file);
9107 ndr_print_ptr(ndr, "help_file", r->help_file);
9110 ndr_print_string(ndr, "help_file", r->help_file);
9113 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
9115 if (r->monitor_name) {
9116 ndr_print_string(ndr, "monitor_name", r->monitor_name);
9119 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
9121 if (r->default_datatype) {
9122 ndr_print_string(ndr, "default_datatype", r->default_datatype);
9125 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);
9126 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
9128 if (r->dependent_files) {
9129 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
9132 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);
9133 ndr_print_ptr(ndr, "previous_names", r->previous_names);
9135 if (r->previous_names) {
9136 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
9142 static enum ndr_err_code ndr_push_spoolss_DriverAttributes(struct ndr_push *ndr, int ndr_flags, uint32_t r)
9144 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
9145 return NDR_ERR_SUCCESS;
9148 static enum ndr_err_code ndr_pull_spoolss_DriverAttributes(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
9151 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
9153 return NDR_ERR_SUCCESS;
9156 _PUBLIC_ void ndr_print_spoolss_DriverAttributes(struct ndr_print *ndr, const char *name, uint32_t r)
9158 ndr_print_uint32(ndr, name, r);
9160 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_DRIVER_PACKAGE_AWARE", PRINTER_DRIVER_PACKAGE_AWARE, r);
9164 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo6 *r)
9166 if (ndr_flags & NDR_SCALARS) {
9167 NDR_CHECK(ndr_push_align(ndr, 8));
9168 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
9169 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
9170 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
9171 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
9172 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
9173 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
9174 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
9175 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
9176 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
9177 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9178 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
9179 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9180 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
9181 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
9182 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
9183 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_name));
9184 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_url));
9185 NDR_CHECK(ndr_push_unique_ptr(ndr, r->hardware_id));
9186 NDR_CHECK(ndr_push_unique_ptr(ndr, r->provider));
9187 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
9189 if (ndr_flags & NDR_BUFFERS) {
9190 if (r->driver_name) {
9191 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
9192 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9193 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
9194 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9196 if (r->architecture) {
9197 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
9198 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9199 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
9200 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9202 if (r->driver_path) {
9203 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
9204 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9205 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
9206 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9209 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
9210 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9211 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
9212 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9214 if (r->config_file) {
9215 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
9216 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9217 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
9218 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9221 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
9222 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9223 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
9224 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9226 if (r->monitor_name) {
9227 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
9228 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9229 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
9230 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9232 if (r->default_datatype) {
9233 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
9234 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9235 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
9236 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9238 if (r->dependent_files) {
9239 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
9241 if (r->previous_names) {
9242 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
9244 if (r->manufacturer_name) {
9245 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
9246 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9247 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
9248 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_name, ndr_charset_length(r->manufacturer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9250 if (r->manufacturer_url) {
9251 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
9252 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9253 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
9254 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_url, ndr_charset_length(r->manufacturer_url, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9256 if (r->hardware_id) {
9257 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
9258 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9259 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
9260 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_id, ndr_charset_length(r->hardware_id, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9263 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
9264 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9265 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
9266 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->provider, ndr_charset_length(r->provider, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9269 return NDR_ERR_SUCCESS;
9272 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo6 *r)
9274 uint32_t _ptr_driver_name;
9275 TALLOC_CTX *_mem_save_driver_name_0;
9276 uint32_t _ptr_architecture;
9277 TALLOC_CTX *_mem_save_architecture_0;
9278 uint32_t _ptr_driver_path;
9279 TALLOC_CTX *_mem_save_driver_path_0;
9280 uint32_t _ptr_data_file;
9281 TALLOC_CTX *_mem_save_data_file_0;
9282 uint32_t _ptr_config_file;
9283 TALLOC_CTX *_mem_save_config_file_0;
9284 uint32_t _ptr_help_file;
9285 TALLOC_CTX *_mem_save_help_file_0;
9286 uint32_t _ptr_monitor_name;
9287 TALLOC_CTX *_mem_save_monitor_name_0;
9288 uint32_t _ptr_default_datatype;
9289 TALLOC_CTX *_mem_save_default_datatype_0;
9290 uint32_t _ptr_dependent_files;
9291 TALLOC_CTX *_mem_save_dependent_files_0;
9292 uint32_t _ptr_previous_names;
9293 TALLOC_CTX *_mem_save_previous_names_0;
9294 uint32_t _ptr_manufacturer_name;
9295 TALLOC_CTX *_mem_save_manufacturer_name_0;
9296 uint32_t _ptr_manufacturer_url;
9297 TALLOC_CTX *_mem_save_manufacturer_url_0;
9298 uint32_t _ptr_hardware_id;
9299 TALLOC_CTX *_mem_save_hardware_id_0;
9300 uint32_t _ptr_provider;
9301 TALLOC_CTX *_mem_save_provider_0;
9302 if (ndr_flags & NDR_SCALARS) {
9303 NDR_CHECK(ndr_pull_align(ndr, 8));
9304 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
9305 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
9306 if (_ptr_driver_name) {
9307 NDR_PULL_ALLOC(ndr, r->driver_name);
9309 r->driver_name = NULL;
9311 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
9312 if (_ptr_architecture) {
9313 NDR_PULL_ALLOC(ndr, r->architecture);
9315 r->architecture = NULL;
9317 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
9318 if (_ptr_driver_path) {
9319 NDR_PULL_ALLOC(ndr, r->driver_path);
9321 r->driver_path = NULL;
9323 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
9324 if (_ptr_data_file) {
9325 NDR_PULL_ALLOC(ndr, r->data_file);
9327 r->data_file = NULL;
9329 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
9330 if (_ptr_config_file) {
9331 NDR_PULL_ALLOC(ndr, r->config_file);
9333 r->config_file = NULL;
9335 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
9336 if (_ptr_help_file) {
9337 NDR_PULL_ALLOC(ndr, r->help_file);
9339 r->help_file = NULL;
9341 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
9342 if (_ptr_monitor_name) {
9343 NDR_PULL_ALLOC(ndr, r->monitor_name);
9345 r->monitor_name = NULL;
9347 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
9348 if (_ptr_default_datatype) {
9349 NDR_PULL_ALLOC(ndr, r->default_datatype);
9351 r->default_datatype = NULL;
9353 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
9354 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
9355 if (_ptr_dependent_files) {
9356 NDR_PULL_ALLOC(ndr, r->dependent_files);
9358 r->dependent_files = NULL;
9360 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
9361 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
9362 if (_ptr_previous_names) {
9363 NDR_PULL_ALLOC(ndr, r->previous_names);
9365 r->previous_names = NULL;
9367 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
9368 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
9369 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
9370 if (_ptr_manufacturer_name) {
9371 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
9373 r->manufacturer_name = NULL;
9375 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
9376 if (_ptr_manufacturer_url) {
9377 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
9379 r->manufacturer_url = NULL;
9381 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
9382 if (_ptr_hardware_id) {
9383 NDR_PULL_ALLOC(ndr, r->hardware_id);
9385 r->hardware_id = NULL;
9387 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
9388 if (_ptr_provider) {
9389 NDR_PULL_ALLOC(ndr, r->provider);
9393 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
9395 if (ndr_flags & NDR_BUFFERS) {
9396 if (r->driver_name) {
9397 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9398 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
9399 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
9400 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
9401 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
9402 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));
9404 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
9405 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
9406 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
9408 if (r->architecture) {
9409 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
9410 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
9411 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
9412 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
9413 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
9414 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));
9416 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
9417 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
9418 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
9420 if (r->driver_path) {
9421 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
9422 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
9423 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
9424 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
9425 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
9426 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));
9428 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
9429 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
9430 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
9433 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9434 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
9435 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
9436 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
9437 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
9438 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));
9440 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
9441 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
9442 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
9444 if (r->config_file) {
9445 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9446 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
9447 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
9448 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
9449 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
9450 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));
9452 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
9453 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
9454 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
9457 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9458 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
9459 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
9460 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
9461 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
9462 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));
9464 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
9465 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
9466 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
9468 if (r->monitor_name) {
9469 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9470 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
9471 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
9472 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
9473 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
9474 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));
9476 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
9477 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
9478 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
9480 if (r->default_datatype) {
9481 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
9482 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
9483 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
9484 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
9485 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
9486 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));
9488 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
9489 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
9490 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
9492 if (r->dependent_files) {
9493 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
9494 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
9495 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
9496 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
9498 if (r->previous_names) {
9499 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
9500 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
9501 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
9502 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
9504 if (r->manufacturer_name) {
9505 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9506 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
9507 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_name));
9508 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_name));
9509 if (ndr_get_array_length(ndr, &r->manufacturer_name) > ndr_get_array_size(ndr, &r->manufacturer_name)) {
9510 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));
9512 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t)));
9513 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_name, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t), CH_UTF16));
9514 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
9516 if (r->manufacturer_url) {
9517 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
9518 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
9519 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_url));
9520 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_url));
9521 if (ndr_get_array_length(ndr, &r->manufacturer_url) > ndr_get_array_size(ndr, &r->manufacturer_url)) {
9522 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));
9524 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t)));
9525 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_url, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t), CH_UTF16));
9526 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
9528 if (r->hardware_id) {
9529 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
9530 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
9531 NDR_CHECK(ndr_pull_array_size(ndr, &r->hardware_id));
9532 NDR_CHECK(ndr_pull_array_length(ndr, &r->hardware_id));
9533 if (ndr_get_array_length(ndr, &r->hardware_id) > ndr_get_array_size(ndr, &r->hardware_id)) {
9534 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));
9536 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t)));
9537 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_id, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t), CH_UTF16));
9538 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
9541 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
9542 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
9543 NDR_CHECK(ndr_pull_array_size(ndr, &r->provider));
9544 NDR_CHECK(ndr_pull_array_length(ndr, &r->provider));
9545 if (ndr_get_array_length(ndr, &r->provider) > ndr_get_array_size(ndr, &r->provider)) {
9546 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));
9548 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t)));
9549 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->provider, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t), CH_UTF16));
9550 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
9553 return NDR_ERR_SUCCESS;
9556 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo6 *r)
9558 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo6");
9560 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
9561 ndr_print_ptr(ndr, "driver_name", r->driver_name);
9563 if (r->driver_name) {
9564 ndr_print_string(ndr, "driver_name", r->driver_name);
9567 ndr_print_ptr(ndr, "architecture", r->architecture);
9569 if (r->architecture) {
9570 ndr_print_string(ndr, "architecture", r->architecture);
9573 ndr_print_ptr(ndr, "driver_path", r->driver_path);
9575 if (r->driver_path) {
9576 ndr_print_string(ndr, "driver_path", r->driver_path);
9579 ndr_print_ptr(ndr, "data_file", r->data_file);
9582 ndr_print_string(ndr, "data_file", r->data_file);
9585 ndr_print_ptr(ndr, "config_file", r->config_file);
9587 if (r->config_file) {
9588 ndr_print_string(ndr, "config_file", r->config_file);
9591 ndr_print_ptr(ndr, "help_file", r->help_file);
9594 ndr_print_string(ndr, "help_file", r->help_file);
9597 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
9599 if (r->monitor_name) {
9600 ndr_print_string(ndr, "monitor_name", r->monitor_name);
9603 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
9605 if (r->default_datatype) {
9606 ndr_print_string(ndr, "default_datatype", r->default_datatype);
9609 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);
9610 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
9612 if (r->dependent_files) {
9613 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
9616 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);
9617 ndr_print_ptr(ndr, "previous_names", r->previous_names);
9619 if (r->previous_names) {
9620 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
9623 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
9624 ndr_print_hyper(ndr, "driver_version", r->driver_version);
9625 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
9627 if (r->manufacturer_name) {
9628 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
9631 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
9633 if (r->manufacturer_url) {
9634 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
9637 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
9639 if (r->hardware_id) {
9640 ndr_print_string(ndr, "hardware_id", r->hardware_id);
9643 ndr_print_ptr(ndr, "provider", r->provider);
9646 ndr_print_string(ndr, "provider", r->provider);
9652 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo8(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo8 *r)
9654 if (ndr_flags & NDR_SCALARS) {
9655 NDR_CHECK(ndr_push_align(ndr, 8));
9656 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
9657 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
9658 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
9659 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
9660 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
9661 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
9662 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
9663 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
9664 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
9665 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9666 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
9667 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9668 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
9669 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
9670 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
9671 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_name));
9672 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_url));
9673 NDR_CHECK(ndr_push_unique_ptr(ndr, r->hardware_id));
9674 NDR_CHECK(ndr_push_unique_ptr(ndr, r->provider));
9675 NDR_CHECK(ndr_push_unique_ptr(ndr, r->print_processor));
9676 NDR_CHECK(ndr_push_unique_ptr(ndr, r->vendor_setup));
9677 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->color_profiles, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9678 NDR_CHECK(ndr_push_unique_ptr(ndr, r->color_profiles));
9679 NDR_CHECK(ndr_push_unique_ptr(ndr, r->inf_path));
9680 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->printer_driver_attributes));
9681 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->core_driver_dependencies, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9682 NDR_CHECK(ndr_push_unique_ptr(ndr, r->core_driver_dependencies));
9683 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->min_inbox_driver_ver_date));
9684 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->min_inbox_driver_ver_version));
9685 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
9687 if (ndr_flags & NDR_BUFFERS) {
9688 if (r->driver_name) {
9689 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
9690 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9691 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
9692 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9694 if (r->architecture) {
9695 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
9696 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9697 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
9698 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9700 if (r->driver_path) {
9701 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
9702 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9703 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
9704 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9707 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
9708 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9709 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
9710 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9712 if (r->config_file) {
9713 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
9714 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9715 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
9716 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9719 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
9720 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9721 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
9722 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9724 if (r->monitor_name) {
9725 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
9726 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9727 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
9728 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9730 if (r->default_datatype) {
9731 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
9732 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9733 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
9734 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9736 if (r->dependent_files) {
9737 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
9739 if (r->previous_names) {
9740 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
9742 if (r->manufacturer_name) {
9743 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
9744 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9745 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
9746 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_name, ndr_charset_length(r->manufacturer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9748 if (r->manufacturer_url) {
9749 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
9750 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9751 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
9752 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_url, ndr_charset_length(r->manufacturer_url, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9754 if (r->hardware_id) {
9755 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
9756 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9757 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
9758 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_id, ndr_charset_length(r->hardware_id, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9761 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
9762 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9763 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
9764 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->provider, ndr_charset_length(r->provider, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9766 if (r->print_processor) {
9767 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
9768 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9769 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
9770 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->print_processor, ndr_charset_length(r->print_processor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9772 if (r->vendor_setup) {
9773 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->vendor_setup, CH_UTF16)));
9774 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9775 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->vendor_setup, CH_UTF16)));
9776 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->vendor_setup, ndr_charset_length(r->vendor_setup, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9778 if (r->color_profiles) {
9779 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->color_profiles));
9782 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->inf_path, CH_UTF16)));
9783 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9784 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->inf_path, CH_UTF16)));
9785 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->inf_path, ndr_charset_length(r->inf_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9787 if (r->core_driver_dependencies) {
9788 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->core_driver_dependencies));
9791 return NDR_ERR_SUCCESS;
9794 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo8(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo8 *r)
9796 uint32_t _ptr_driver_name;
9797 TALLOC_CTX *_mem_save_driver_name_0;
9798 uint32_t _ptr_architecture;
9799 TALLOC_CTX *_mem_save_architecture_0;
9800 uint32_t _ptr_driver_path;
9801 TALLOC_CTX *_mem_save_driver_path_0;
9802 uint32_t _ptr_data_file;
9803 TALLOC_CTX *_mem_save_data_file_0;
9804 uint32_t _ptr_config_file;
9805 TALLOC_CTX *_mem_save_config_file_0;
9806 uint32_t _ptr_help_file;
9807 TALLOC_CTX *_mem_save_help_file_0;
9808 uint32_t _ptr_monitor_name;
9809 TALLOC_CTX *_mem_save_monitor_name_0;
9810 uint32_t _ptr_default_datatype;
9811 TALLOC_CTX *_mem_save_default_datatype_0;
9812 uint32_t _ptr_dependent_files;
9813 TALLOC_CTX *_mem_save_dependent_files_0;
9814 uint32_t _ptr_previous_names;
9815 TALLOC_CTX *_mem_save_previous_names_0;
9816 uint32_t _ptr_manufacturer_name;
9817 TALLOC_CTX *_mem_save_manufacturer_name_0;
9818 uint32_t _ptr_manufacturer_url;
9819 TALLOC_CTX *_mem_save_manufacturer_url_0;
9820 uint32_t _ptr_hardware_id;
9821 TALLOC_CTX *_mem_save_hardware_id_0;
9822 uint32_t _ptr_provider;
9823 TALLOC_CTX *_mem_save_provider_0;
9824 uint32_t _ptr_print_processor;
9825 TALLOC_CTX *_mem_save_print_processor_0;
9826 uint32_t _ptr_vendor_setup;
9827 TALLOC_CTX *_mem_save_vendor_setup_0;
9828 uint32_t _ptr_color_profiles;
9829 TALLOC_CTX *_mem_save_color_profiles_0;
9830 uint32_t _ptr_inf_path;
9831 TALLOC_CTX *_mem_save_inf_path_0;
9832 uint32_t _ptr_core_driver_dependencies;
9833 TALLOC_CTX *_mem_save_core_driver_dependencies_0;
9834 if (ndr_flags & NDR_SCALARS) {
9835 NDR_CHECK(ndr_pull_align(ndr, 8));
9836 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
9837 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
9838 if (_ptr_driver_name) {
9839 NDR_PULL_ALLOC(ndr, r->driver_name);
9841 r->driver_name = NULL;
9843 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
9844 if (_ptr_architecture) {
9845 NDR_PULL_ALLOC(ndr, r->architecture);
9847 r->architecture = NULL;
9849 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
9850 if (_ptr_driver_path) {
9851 NDR_PULL_ALLOC(ndr, r->driver_path);
9853 r->driver_path = NULL;
9855 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
9856 if (_ptr_data_file) {
9857 NDR_PULL_ALLOC(ndr, r->data_file);
9859 r->data_file = NULL;
9861 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
9862 if (_ptr_config_file) {
9863 NDR_PULL_ALLOC(ndr, r->config_file);
9865 r->config_file = NULL;
9867 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
9868 if (_ptr_help_file) {
9869 NDR_PULL_ALLOC(ndr, r->help_file);
9871 r->help_file = NULL;
9873 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
9874 if (_ptr_monitor_name) {
9875 NDR_PULL_ALLOC(ndr, r->monitor_name);
9877 r->monitor_name = NULL;
9879 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
9880 if (_ptr_default_datatype) {
9881 NDR_PULL_ALLOC(ndr, r->default_datatype);
9883 r->default_datatype = NULL;
9885 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
9886 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
9887 if (_ptr_dependent_files) {
9888 NDR_PULL_ALLOC(ndr, r->dependent_files);
9890 r->dependent_files = NULL;
9892 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
9893 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
9894 if (_ptr_previous_names) {
9895 NDR_PULL_ALLOC(ndr, r->previous_names);
9897 r->previous_names = NULL;
9899 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
9900 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
9901 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
9902 if (_ptr_manufacturer_name) {
9903 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
9905 r->manufacturer_name = NULL;
9907 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
9908 if (_ptr_manufacturer_url) {
9909 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
9911 r->manufacturer_url = NULL;
9913 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
9914 if (_ptr_hardware_id) {
9915 NDR_PULL_ALLOC(ndr, r->hardware_id);
9917 r->hardware_id = NULL;
9919 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
9920 if (_ptr_provider) {
9921 NDR_PULL_ALLOC(ndr, r->provider);
9925 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
9926 if (_ptr_print_processor) {
9927 NDR_PULL_ALLOC(ndr, r->print_processor);
9929 r->print_processor = NULL;
9931 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_vendor_setup));
9932 if (_ptr_vendor_setup) {
9933 NDR_PULL_ALLOC(ndr, r->vendor_setup);
9935 r->vendor_setup = NULL;
9937 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_color_profiles));
9938 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_color_profiles));
9939 if (_ptr_color_profiles) {
9940 NDR_PULL_ALLOC(ndr, r->color_profiles);
9942 r->color_profiles = NULL;
9944 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_inf_path));
9945 if (_ptr_inf_path) {
9946 NDR_PULL_ALLOC(ndr, r->inf_path);
9950 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->printer_driver_attributes));
9951 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_core_driver_dependencies));
9952 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_core_driver_dependencies));
9953 if (_ptr_core_driver_dependencies) {
9954 NDR_PULL_ALLOC(ndr, r->core_driver_dependencies);
9956 r->core_driver_dependencies = NULL;
9958 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_date));
9959 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_version));
9960 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
9962 if (ndr_flags & NDR_BUFFERS) {
9963 if (r->driver_name) {
9964 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9965 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
9966 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
9967 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
9968 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
9969 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));
9971 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
9972 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
9973 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
9975 if (r->architecture) {
9976 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
9977 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
9978 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
9979 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
9980 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
9981 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));
9983 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
9984 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
9985 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
9987 if (r->driver_path) {
9988 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
9989 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
9990 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
9991 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
9992 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
9993 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));
9995 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
9996 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
9997 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
10000 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10001 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
10002 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
10003 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
10004 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
10005 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));
10007 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
10008 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
10009 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
10011 if (r->config_file) {
10012 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10013 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
10014 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
10015 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
10016 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
10017 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));
10019 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
10020 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
10021 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
10023 if (r->help_file) {
10024 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10025 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
10026 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
10027 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
10028 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
10029 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));
10031 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
10032 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
10033 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
10035 if (r->monitor_name) {
10036 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10037 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
10038 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
10039 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
10040 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
10041 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));
10043 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
10044 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
10045 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
10047 if (r->default_datatype) {
10048 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
10049 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
10050 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
10051 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
10052 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
10053 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));
10055 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
10056 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
10057 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
10059 if (r->dependent_files) {
10060 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
10061 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
10062 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
10063 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
10065 if (r->previous_names) {
10066 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
10067 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
10068 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
10069 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
10071 if (r->manufacturer_name) {
10072 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10073 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
10074 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_name));
10075 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_name));
10076 if (ndr_get_array_length(ndr, &r->manufacturer_name) > ndr_get_array_size(ndr, &r->manufacturer_name)) {
10077 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));
10079 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t)));
10080 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_name, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t), CH_UTF16));
10081 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
10083 if (r->manufacturer_url) {
10084 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
10085 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
10086 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_url));
10087 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_url));
10088 if (ndr_get_array_length(ndr, &r->manufacturer_url) > ndr_get_array_size(ndr, &r->manufacturer_url)) {
10089 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));
10091 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t)));
10092 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_url, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t), CH_UTF16));
10093 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
10095 if (r->hardware_id) {
10096 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
10097 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
10098 NDR_CHECK(ndr_pull_array_size(ndr, &r->hardware_id));
10099 NDR_CHECK(ndr_pull_array_length(ndr, &r->hardware_id));
10100 if (ndr_get_array_length(ndr, &r->hardware_id) > ndr_get_array_size(ndr, &r->hardware_id)) {
10101 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));
10103 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t)));
10104 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_id, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t), CH_UTF16));
10105 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
10108 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
10109 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
10110 NDR_CHECK(ndr_pull_array_size(ndr, &r->provider));
10111 NDR_CHECK(ndr_pull_array_length(ndr, &r->provider));
10112 if (ndr_get_array_length(ndr, &r->provider) > ndr_get_array_size(ndr, &r->provider)) {
10113 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));
10115 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t)));
10116 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->provider, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t), CH_UTF16));
10117 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
10119 if (r->print_processor) {
10120 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
10121 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
10122 NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
10123 NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
10124 if (ndr_get_array_length(ndr, &r->print_processor) > ndr_get_array_size(ndr, &r->print_processor)) {
10125 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));
10127 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t)));
10128 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t), CH_UTF16));
10129 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
10131 if (r->vendor_setup) {
10132 _mem_save_vendor_setup_0 = NDR_PULL_GET_MEM_CTX(ndr);
10133 NDR_PULL_SET_MEM_CTX(ndr, r->vendor_setup, 0);
10134 NDR_CHECK(ndr_pull_array_size(ndr, &r->vendor_setup));
10135 NDR_CHECK(ndr_pull_array_length(ndr, &r->vendor_setup));
10136 if (ndr_get_array_length(ndr, &r->vendor_setup) > ndr_get_array_size(ndr, &r->vendor_setup)) {
10137 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));
10139 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->vendor_setup), sizeof(uint16_t)));
10140 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->vendor_setup, ndr_get_array_length(ndr, &r->vendor_setup), sizeof(uint16_t), CH_UTF16));
10141 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vendor_setup_0, 0);
10143 if (r->color_profiles) {
10144 _mem_save_color_profiles_0 = NDR_PULL_GET_MEM_CTX(ndr);
10145 NDR_PULL_SET_MEM_CTX(ndr, r->color_profiles, 0);
10146 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->color_profiles));
10147 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_color_profiles_0, 0);
10150 _mem_save_inf_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
10151 NDR_PULL_SET_MEM_CTX(ndr, r->inf_path, 0);
10152 NDR_CHECK(ndr_pull_array_size(ndr, &r->inf_path));
10153 NDR_CHECK(ndr_pull_array_length(ndr, &r->inf_path));
10154 if (ndr_get_array_length(ndr, &r->inf_path) > ndr_get_array_size(ndr, &r->inf_path)) {
10155 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));
10157 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->inf_path), sizeof(uint16_t)));
10158 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->inf_path, ndr_get_array_length(ndr, &r->inf_path), sizeof(uint16_t), CH_UTF16));
10159 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_inf_path_0, 0);
10161 if (r->core_driver_dependencies) {
10162 _mem_save_core_driver_dependencies_0 = NDR_PULL_GET_MEM_CTX(ndr);
10163 NDR_PULL_SET_MEM_CTX(ndr, r->core_driver_dependencies, 0);
10164 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->core_driver_dependencies));
10165 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_driver_dependencies_0, 0);
10168 return NDR_ERR_SUCCESS;
10171 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo8(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo8 *r)
10173 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo8");
10175 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
10176 ndr_print_ptr(ndr, "driver_name", r->driver_name);
10178 if (r->driver_name) {
10179 ndr_print_string(ndr, "driver_name", r->driver_name);
10182 ndr_print_ptr(ndr, "architecture", r->architecture);
10184 if (r->architecture) {
10185 ndr_print_string(ndr, "architecture", r->architecture);
10188 ndr_print_ptr(ndr, "driver_path", r->driver_path);
10190 if (r->driver_path) {
10191 ndr_print_string(ndr, "driver_path", r->driver_path);
10194 ndr_print_ptr(ndr, "data_file", r->data_file);
10196 if (r->data_file) {
10197 ndr_print_string(ndr, "data_file", r->data_file);
10200 ndr_print_ptr(ndr, "config_file", r->config_file);
10202 if (r->config_file) {
10203 ndr_print_string(ndr, "config_file", r->config_file);
10206 ndr_print_ptr(ndr, "help_file", r->help_file);
10208 if (r->help_file) {
10209 ndr_print_string(ndr, "help_file", r->help_file);
10212 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
10214 if (r->monitor_name) {
10215 ndr_print_string(ndr, "monitor_name", r->monitor_name);
10218 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
10220 if (r->default_datatype) {
10221 ndr_print_string(ndr, "default_datatype", r->default_datatype);
10224 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);
10225 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
10227 if (r->dependent_files) {
10228 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
10231 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);
10232 ndr_print_ptr(ndr, "previous_names", r->previous_names);
10234 if (r->previous_names) {
10235 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
10238 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
10239 ndr_print_hyper(ndr, "driver_version", r->driver_version);
10240 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
10242 if (r->manufacturer_name) {
10243 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
10246 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
10248 if (r->manufacturer_url) {
10249 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
10252 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
10254 if (r->hardware_id) {
10255 ndr_print_string(ndr, "hardware_id", r->hardware_id);
10258 ndr_print_ptr(ndr, "provider", r->provider);
10261 ndr_print_string(ndr, "provider", r->provider);
10264 ndr_print_ptr(ndr, "print_processor", r->print_processor);
10266 if (r->print_processor) {
10267 ndr_print_string(ndr, "print_processor", r->print_processor);
10270 ndr_print_ptr(ndr, "vendor_setup", r->vendor_setup);
10272 if (r->vendor_setup) {
10273 ndr_print_string(ndr, "vendor_setup", r->vendor_setup);
10276 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);
10277 ndr_print_ptr(ndr, "color_profiles", r->color_profiles);
10279 if (r->color_profiles) {
10280 ndr_print_spoolss_StringArray(ndr, "color_profiles", r->color_profiles);
10283 ndr_print_ptr(ndr, "inf_path", r->inf_path);
10286 ndr_print_string(ndr, "inf_path", r->inf_path);
10289 ndr_print_uint32(ndr, "printer_driver_attributes", r->printer_driver_attributes);
10290 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);
10291 ndr_print_ptr(ndr, "core_driver_dependencies", r->core_driver_dependencies);
10293 if (r->core_driver_dependencies) {
10294 ndr_print_spoolss_StringArray(ndr, "core_driver_dependencies", r->core_driver_dependencies);
10297 ndr_print_NTTIME(ndr, "min_inbox_driver_ver_date", r->min_inbox_driver_ver_date);
10298 ndr_print_hyper(ndr, "min_inbox_driver_ver_version", r->min_inbox_driver_ver_version);
10302 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_AddDriverInfo *r)
10304 if (ndr_flags & NDR_SCALARS) {
10305 int level = ndr_push_get_switch_value(ndr, r);
10306 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
10307 NDR_CHECK(ndr_push_union_align(ndr, 5));
10310 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
10314 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
10318 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
10322 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
10326 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info6));
10330 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info8));
10334 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
10337 if (ndr_flags & NDR_BUFFERS) {
10338 int level = ndr_push_get_switch_value(ndr, r);
10342 NDR_CHECK(ndr_push_spoolss_AddDriverInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
10348 NDR_CHECK(ndr_push_spoolss_AddDriverInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
10354 NDR_CHECK(ndr_push_spoolss_AddDriverInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3));
10360 NDR_CHECK(ndr_push_spoolss_AddDriverInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
10366 NDR_CHECK(ndr_push_spoolss_AddDriverInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->info6));
10372 NDR_CHECK(ndr_push_spoolss_AddDriverInfo8(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
10377 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
10380 return NDR_ERR_SUCCESS;
10383 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_AddDriverInfo *r)
10387 TALLOC_CTX *_mem_save_info1_0;
10388 TALLOC_CTX *_mem_save_info2_0;
10389 TALLOC_CTX *_mem_save_info3_0;
10390 TALLOC_CTX *_mem_save_info4_0;
10391 TALLOC_CTX *_mem_save_info6_0;
10392 TALLOC_CTX *_mem_save_info8_0;
10393 level = ndr_pull_get_switch_value(ndr, r);
10394 if (ndr_flags & NDR_SCALARS) {
10395 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
10396 if (_level != level) {
10397 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
10399 NDR_CHECK(ndr_pull_union_align(ndr, 5));
10402 uint32_t _ptr_info1;
10403 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
10405 NDR_PULL_ALLOC(ndr, r->info1);
10412 uint32_t _ptr_info2;
10413 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
10415 NDR_PULL_ALLOC(ndr, r->info2);
10422 uint32_t _ptr_info3;
10423 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
10425 NDR_PULL_ALLOC(ndr, r->info3);
10432 uint32_t _ptr_info4;
10433 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
10435 NDR_PULL_ALLOC(ndr, r->info4);
10442 uint32_t _ptr_info6;
10443 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info6));
10445 NDR_PULL_ALLOC(ndr, r->info6);
10452 uint32_t _ptr_info8;
10453 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info8));
10455 NDR_PULL_ALLOC(ndr, r->info8);
10462 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
10465 if (ndr_flags & NDR_BUFFERS) {
10469 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
10470 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
10471 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
10472 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
10478 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
10479 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
10480 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
10481 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
10487 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
10488 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
10489 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3));
10490 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
10496 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
10497 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
10498 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
10499 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
10505 _mem_save_info6_0 = NDR_PULL_GET_MEM_CTX(ndr);
10506 NDR_PULL_SET_MEM_CTX(ndr, r->info6, 0);
10507 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->info6));
10508 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info6_0, 0);
10514 _mem_save_info8_0 = NDR_PULL_GET_MEM_CTX(ndr);
10515 NDR_PULL_SET_MEM_CTX(ndr, r->info8, 0);
10516 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo8(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
10517 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info8_0, 0);
10522 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
10525 return NDR_ERR_SUCCESS;
10528 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo(struct ndr_print *ndr, const char *name, const union spoolss_AddDriverInfo *r)
10531 level = ndr_print_get_switch_value(ndr, r);
10532 ndr_print_union(ndr, name, level, "spoolss_AddDriverInfo");
10535 ndr_print_ptr(ndr, "info1", r->info1);
10538 ndr_print_spoolss_AddDriverInfo1(ndr, "info1", r->info1);
10544 ndr_print_ptr(ndr, "info2", r->info2);
10547 ndr_print_spoolss_AddDriverInfo2(ndr, "info2", r->info2);
10553 ndr_print_ptr(ndr, "info3", r->info3);
10556 ndr_print_spoolss_AddDriverInfo3(ndr, "info3", r->info3);
10562 ndr_print_ptr(ndr, "info4", r->info4);
10565 ndr_print_spoolss_AddDriverInfo4(ndr, "info4", r->info4);
10571 ndr_print_ptr(ndr, "info6", r->info6);
10574 ndr_print_spoolss_AddDriverInfo6(ndr, "info6", r->info6);
10580 ndr_print_ptr(ndr, "info8", r->info8);
10583 ndr_print_spoolss_AddDriverInfo8(ndr, "info8", r->info8);
10589 ndr_print_bad_level(ndr, name, level);
10593 static enum ndr_err_code ndr_push_spoolss_AddDriverInfoCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfoCtr *r)
10595 if (ndr_flags & NDR_SCALARS) {
10596 NDR_CHECK(ndr_push_align(ndr, 5));
10597 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
10598 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
10599 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr, NDR_SCALARS, &r->info));
10600 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
10602 if (ndr_flags & NDR_BUFFERS) {
10603 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr, NDR_BUFFERS, &r->info));
10605 return NDR_ERR_SUCCESS;
10608 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfoCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfoCtr *r)
10610 if (ndr_flags & NDR_SCALARS) {
10611 NDR_CHECK(ndr_pull_align(ndr, 5));
10612 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
10613 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
10614 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr, NDR_SCALARS, &r->info));
10615 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
10617 if (ndr_flags & NDR_BUFFERS) {
10618 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr, NDR_BUFFERS, &r->info));
10620 return NDR_ERR_SUCCESS;
10623 _PUBLIC_ void ndr_print_spoolss_AddDriverInfoCtr(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfoCtr *r)
10625 ndr_print_struct(ndr, name, "spoolss_AddDriverInfoCtr");
10627 ndr_print_uint32(ndr, "level", r->level);
10628 ndr_print_set_switch_value(ndr, &r->info, r->level);
10629 ndr_print_spoolss_AddDriverInfo(ndr, "info", &r->info);
10633 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo1 *r)
10635 if (ndr_flags & NDR_SCALARS) {
10636 NDR_CHECK(ndr_push_align(ndr, 5));
10638 uint32_t _flags_save_string = ndr->flags;
10639 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10640 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
10641 ndr->flags = _flags_save_string;
10643 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
10645 if (ndr_flags & NDR_BUFFERS) {
10647 uint32_t _flags_save_string = ndr->flags;
10648 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10649 if (r->driver_name) {
10650 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
10651 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
10653 ndr->flags = _flags_save_string;
10656 return NDR_ERR_SUCCESS;
10659 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo1 *r)
10661 uint32_t _ptr_driver_name;
10662 TALLOC_CTX *_mem_save_driver_name_0;
10663 if (ndr_flags & NDR_SCALARS) {
10664 NDR_CHECK(ndr_pull_align(ndr, 5));
10666 uint32_t _flags_save_string = ndr->flags;
10667 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10668 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
10669 if (_ptr_driver_name) {
10670 NDR_PULL_ALLOC(ndr, r->driver_name);
10671 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
10673 r->driver_name = NULL;
10675 ndr->flags = _flags_save_string;
10677 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
10679 if (ndr_flags & NDR_BUFFERS) {
10681 uint32_t _flags_save_string = ndr->flags;
10682 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10683 if (r->driver_name) {
10684 uint32_t _relative_save_offset;
10685 _relative_save_offset = ndr->offset;
10686 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
10687 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10688 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
10689 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
10690 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
10691 if (ndr->offset > ndr->relative_highest_offset) {
10692 ndr->relative_highest_offset = ndr->offset;
10694 ndr->offset = _relative_save_offset;
10696 ndr->flags = _flags_save_string;
10699 return NDR_ERR_SUCCESS;
10702 _PUBLIC_ void ndr_print_spoolss_DriverInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo1 *r)
10704 ndr_print_struct(ndr, name, "spoolss_DriverInfo1");
10706 ndr_print_ptr(ndr, "driver_name", r->driver_name);
10708 if (r->driver_name) {
10709 ndr_print_string(ndr, "driver_name", r->driver_name);
10715 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo1(const struct spoolss_DriverInfo1 *r, struct smb_iconv_convenience *ic, int flags)
10717 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo1, ic);
10720 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo2 *r)
10722 if (ndr_flags & NDR_SCALARS) {
10723 NDR_CHECK(ndr_push_align(ndr, 5));
10724 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
10726 uint32_t _flags_save_string = ndr->flags;
10727 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10728 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
10729 ndr->flags = _flags_save_string;
10732 uint32_t _flags_save_string = ndr->flags;
10733 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10734 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
10735 ndr->flags = _flags_save_string;
10738 uint32_t _flags_save_string = ndr->flags;
10739 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10740 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
10741 ndr->flags = _flags_save_string;
10744 uint32_t _flags_save_string = ndr->flags;
10745 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10746 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
10747 ndr->flags = _flags_save_string;
10750 uint32_t _flags_save_string = ndr->flags;
10751 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10752 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
10753 ndr->flags = _flags_save_string;
10755 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
10757 if (ndr_flags & NDR_BUFFERS) {
10759 uint32_t _flags_save_string = ndr->flags;
10760 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10761 if (r->driver_name) {
10762 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
10763 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
10765 ndr->flags = _flags_save_string;
10768 uint32_t _flags_save_string = ndr->flags;
10769 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10770 if (r->architecture) {
10771 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
10772 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
10774 ndr->flags = _flags_save_string;
10777 uint32_t _flags_save_string = ndr->flags;
10778 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10779 if (r->driver_path) {
10780 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
10781 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
10783 ndr->flags = _flags_save_string;
10786 uint32_t _flags_save_string = ndr->flags;
10787 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10788 if (r->data_file) {
10789 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
10790 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
10792 ndr->flags = _flags_save_string;
10795 uint32_t _flags_save_string = ndr->flags;
10796 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10797 if (r->config_file) {
10798 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
10799 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
10801 ndr->flags = _flags_save_string;
10804 return NDR_ERR_SUCCESS;
10807 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo2 *r)
10809 uint32_t _ptr_driver_name;
10810 TALLOC_CTX *_mem_save_driver_name_0;
10811 uint32_t _ptr_architecture;
10812 TALLOC_CTX *_mem_save_architecture_0;
10813 uint32_t _ptr_driver_path;
10814 TALLOC_CTX *_mem_save_driver_path_0;
10815 uint32_t _ptr_data_file;
10816 TALLOC_CTX *_mem_save_data_file_0;
10817 uint32_t _ptr_config_file;
10818 TALLOC_CTX *_mem_save_config_file_0;
10819 if (ndr_flags & NDR_SCALARS) {
10820 NDR_CHECK(ndr_pull_align(ndr, 5));
10821 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
10823 uint32_t _flags_save_string = ndr->flags;
10824 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10825 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
10826 if (_ptr_driver_name) {
10827 NDR_PULL_ALLOC(ndr, r->driver_name);
10828 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
10830 r->driver_name = NULL;
10832 ndr->flags = _flags_save_string;
10835 uint32_t _flags_save_string = ndr->flags;
10836 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10837 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
10838 if (_ptr_architecture) {
10839 NDR_PULL_ALLOC(ndr, r->architecture);
10840 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
10842 r->architecture = NULL;
10844 ndr->flags = _flags_save_string;
10847 uint32_t _flags_save_string = ndr->flags;
10848 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10849 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
10850 if (_ptr_driver_path) {
10851 NDR_PULL_ALLOC(ndr, r->driver_path);
10852 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
10854 r->driver_path = NULL;
10856 ndr->flags = _flags_save_string;
10859 uint32_t _flags_save_string = ndr->flags;
10860 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10861 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
10862 if (_ptr_data_file) {
10863 NDR_PULL_ALLOC(ndr, r->data_file);
10864 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
10866 r->data_file = NULL;
10868 ndr->flags = _flags_save_string;
10871 uint32_t _flags_save_string = ndr->flags;
10872 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10873 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
10874 if (_ptr_config_file) {
10875 NDR_PULL_ALLOC(ndr, r->config_file);
10876 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
10878 r->config_file = NULL;
10880 ndr->flags = _flags_save_string;
10882 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
10884 if (ndr_flags & NDR_BUFFERS) {
10886 uint32_t _flags_save_string = ndr->flags;
10887 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10888 if (r->driver_name) {
10889 uint32_t _relative_save_offset;
10890 _relative_save_offset = ndr->offset;
10891 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
10892 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10893 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
10894 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
10895 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
10896 if (ndr->offset > ndr->relative_highest_offset) {
10897 ndr->relative_highest_offset = ndr->offset;
10899 ndr->offset = _relative_save_offset;
10901 ndr->flags = _flags_save_string;
10904 uint32_t _flags_save_string = ndr->flags;
10905 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10906 if (r->architecture) {
10907 uint32_t _relative_save_offset;
10908 _relative_save_offset = ndr->offset;
10909 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
10910 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
10911 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
10912 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
10913 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
10914 if (ndr->offset > ndr->relative_highest_offset) {
10915 ndr->relative_highest_offset = ndr->offset;
10917 ndr->offset = _relative_save_offset;
10919 ndr->flags = _flags_save_string;
10922 uint32_t _flags_save_string = ndr->flags;
10923 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10924 if (r->driver_path) {
10925 uint32_t _relative_save_offset;
10926 _relative_save_offset = ndr->offset;
10927 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
10928 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
10929 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
10930 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
10931 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
10932 if (ndr->offset > ndr->relative_highest_offset) {
10933 ndr->relative_highest_offset = ndr->offset;
10935 ndr->offset = _relative_save_offset;
10937 ndr->flags = _flags_save_string;
10940 uint32_t _flags_save_string = ndr->flags;
10941 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10942 if (r->data_file) {
10943 uint32_t _relative_save_offset;
10944 _relative_save_offset = ndr->offset;
10945 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
10946 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10947 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
10948 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
10949 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
10950 if (ndr->offset > ndr->relative_highest_offset) {
10951 ndr->relative_highest_offset = ndr->offset;
10953 ndr->offset = _relative_save_offset;
10955 ndr->flags = _flags_save_string;
10958 uint32_t _flags_save_string = ndr->flags;
10959 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10960 if (r->config_file) {
10961 uint32_t _relative_save_offset;
10962 _relative_save_offset = ndr->offset;
10963 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
10964 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10965 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
10966 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
10967 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
10968 if (ndr->offset > ndr->relative_highest_offset) {
10969 ndr->relative_highest_offset = ndr->offset;
10971 ndr->offset = _relative_save_offset;
10973 ndr->flags = _flags_save_string;
10976 return NDR_ERR_SUCCESS;
10979 _PUBLIC_ void ndr_print_spoolss_DriverInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo2 *r)
10981 ndr_print_struct(ndr, name, "spoolss_DriverInfo2");
10983 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
10984 ndr_print_ptr(ndr, "driver_name", r->driver_name);
10986 if (r->driver_name) {
10987 ndr_print_string(ndr, "driver_name", r->driver_name);
10990 ndr_print_ptr(ndr, "architecture", r->architecture);
10992 if (r->architecture) {
10993 ndr_print_string(ndr, "architecture", r->architecture);
10996 ndr_print_ptr(ndr, "driver_path", r->driver_path);
10998 if (r->driver_path) {
10999 ndr_print_string(ndr, "driver_path", r->driver_path);
11002 ndr_print_ptr(ndr, "data_file", r->data_file);
11004 if (r->data_file) {
11005 ndr_print_string(ndr, "data_file", r->data_file);
11008 ndr_print_ptr(ndr, "config_file", r->config_file);
11010 if (r->config_file) {
11011 ndr_print_string(ndr, "config_file", r->config_file);
11017 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo2(const struct spoolss_DriverInfo2 *r, struct smb_iconv_convenience *ic, int flags)
11019 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo2, ic);
11022 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo3 *r)
11024 if (ndr_flags & NDR_SCALARS) {
11025 NDR_CHECK(ndr_push_align(ndr, 5));
11026 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
11028 uint32_t _flags_save_string = ndr->flags;
11029 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11030 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
11031 ndr->flags = _flags_save_string;
11034 uint32_t _flags_save_string = ndr->flags;
11035 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11036 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
11037 ndr->flags = _flags_save_string;
11040 uint32_t _flags_save_string = ndr->flags;
11041 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11042 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
11043 ndr->flags = _flags_save_string;
11046 uint32_t _flags_save_string = ndr->flags;
11047 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11048 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
11049 ndr->flags = _flags_save_string;
11052 uint32_t _flags_save_string = ndr->flags;
11053 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11054 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
11055 ndr->flags = _flags_save_string;
11058 uint32_t _flags_save_string = ndr->flags;
11059 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11060 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
11061 ndr->flags = _flags_save_string;
11064 uint32_t _flags_save_string_array = ndr->flags;
11065 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11066 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
11067 ndr->flags = _flags_save_string_array;
11070 uint32_t _flags_save_string = ndr->flags;
11071 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11072 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
11073 ndr->flags = _flags_save_string;
11076 uint32_t _flags_save_string = ndr->flags;
11077 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11078 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
11079 ndr->flags = _flags_save_string;
11081 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
11083 if (ndr_flags & NDR_BUFFERS) {
11085 uint32_t _flags_save_string = ndr->flags;
11086 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11087 if (r->driver_name) {
11088 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
11089 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
11091 ndr->flags = _flags_save_string;
11094 uint32_t _flags_save_string = ndr->flags;
11095 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11096 if (r->architecture) {
11097 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
11098 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
11100 ndr->flags = _flags_save_string;
11103 uint32_t _flags_save_string = ndr->flags;
11104 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11105 if (r->driver_path) {
11106 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
11107 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
11109 ndr->flags = _flags_save_string;
11112 uint32_t _flags_save_string = ndr->flags;
11113 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11114 if (r->data_file) {
11115 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
11116 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
11118 ndr->flags = _flags_save_string;
11121 uint32_t _flags_save_string = ndr->flags;
11122 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11123 if (r->config_file) {
11124 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
11125 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
11127 ndr->flags = _flags_save_string;
11130 uint32_t _flags_save_string = ndr->flags;
11131 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11132 if (r->help_file) {
11133 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
11134 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
11136 ndr->flags = _flags_save_string;
11139 uint32_t _flags_save_string_array = ndr->flags;
11140 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11141 if (r->dependent_files) {
11142 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
11143 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
11145 ndr->flags = _flags_save_string_array;
11148 uint32_t _flags_save_string = ndr->flags;
11149 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11150 if (r->monitor_name) {
11151 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
11152 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
11154 ndr->flags = _flags_save_string;
11157 uint32_t _flags_save_string = ndr->flags;
11158 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11159 if (r->default_datatype) {
11160 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
11161 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
11163 ndr->flags = _flags_save_string;
11166 return NDR_ERR_SUCCESS;
11169 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo3 *r)
11171 uint32_t _ptr_driver_name;
11172 TALLOC_CTX *_mem_save_driver_name_0;
11173 uint32_t _ptr_architecture;
11174 TALLOC_CTX *_mem_save_architecture_0;
11175 uint32_t _ptr_driver_path;
11176 TALLOC_CTX *_mem_save_driver_path_0;
11177 uint32_t _ptr_data_file;
11178 TALLOC_CTX *_mem_save_data_file_0;
11179 uint32_t _ptr_config_file;
11180 TALLOC_CTX *_mem_save_config_file_0;
11181 uint32_t _ptr_help_file;
11182 TALLOC_CTX *_mem_save_help_file_0;
11183 uint32_t _ptr_dependent_files;
11184 TALLOC_CTX *_mem_save_dependent_files_0;
11185 uint32_t _ptr_monitor_name;
11186 TALLOC_CTX *_mem_save_monitor_name_0;
11187 uint32_t _ptr_default_datatype;
11188 TALLOC_CTX *_mem_save_default_datatype_0;
11189 if (ndr_flags & NDR_SCALARS) {
11190 NDR_CHECK(ndr_pull_align(ndr, 5));
11191 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
11193 uint32_t _flags_save_string = ndr->flags;
11194 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11195 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
11196 if (_ptr_driver_name) {
11197 NDR_PULL_ALLOC(ndr, r->driver_name);
11198 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
11200 r->driver_name = NULL;
11202 ndr->flags = _flags_save_string;
11205 uint32_t _flags_save_string = ndr->flags;
11206 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11207 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
11208 if (_ptr_architecture) {
11209 NDR_PULL_ALLOC(ndr, r->architecture);
11210 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
11212 r->architecture = NULL;
11214 ndr->flags = _flags_save_string;
11217 uint32_t _flags_save_string = ndr->flags;
11218 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11219 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
11220 if (_ptr_driver_path) {
11221 NDR_PULL_ALLOC(ndr, r->driver_path);
11222 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
11224 r->driver_path = NULL;
11226 ndr->flags = _flags_save_string;
11229 uint32_t _flags_save_string = ndr->flags;
11230 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11231 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
11232 if (_ptr_data_file) {
11233 NDR_PULL_ALLOC(ndr, r->data_file);
11234 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
11236 r->data_file = NULL;
11238 ndr->flags = _flags_save_string;
11241 uint32_t _flags_save_string = ndr->flags;
11242 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11243 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
11244 if (_ptr_config_file) {
11245 NDR_PULL_ALLOC(ndr, r->config_file);
11246 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
11248 r->config_file = NULL;
11250 ndr->flags = _flags_save_string;
11253 uint32_t _flags_save_string = ndr->flags;
11254 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11255 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
11256 if (_ptr_help_file) {
11257 NDR_PULL_ALLOC(ndr, r->help_file);
11258 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
11260 r->help_file = NULL;
11262 ndr->flags = _flags_save_string;
11265 uint32_t _flags_save_string_array = ndr->flags;
11266 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11267 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
11268 if (_ptr_dependent_files) {
11269 NDR_PULL_ALLOC(ndr, r->dependent_files);
11270 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
11272 r->dependent_files = NULL;
11274 ndr->flags = _flags_save_string_array;
11277 uint32_t _flags_save_string = ndr->flags;
11278 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11279 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
11280 if (_ptr_monitor_name) {
11281 NDR_PULL_ALLOC(ndr, r->monitor_name);
11282 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
11284 r->monitor_name = NULL;
11286 ndr->flags = _flags_save_string;
11289 uint32_t _flags_save_string = ndr->flags;
11290 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11291 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
11292 if (_ptr_default_datatype) {
11293 NDR_PULL_ALLOC(ndr, r->default_datatype);
11294 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
11296 r->default_datatype = NULL;
11298 ndr->flags = _flags_save_string;
11300 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
11302 if (ndr_flags & NDR_BUFFERS) {
11304 uint32_t _flags_save_string = ndr->flags;
11305 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11306 if (r->driver_name) {
11307 uint32_t _relative_save_offset;
11308 _relative_save_offset = ndr->offset;
11309 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
11310 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11311 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
11312 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
11313 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
11314 if (ndr->offset > ndr->relative_highest_offset) {
11315 ndr->relative_highest_offset = ndr->offset;
11317 ndr->offset = _relative_save_offset;
11319 ndr->flags = _flags_save_string;
11322 uint32_t _flags_save_string = ndr->flags;
11323 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11324 if (r->architecture) {
11325 uint32_t _relative_save_offset;
11326 _relative_save_offset = ndr->offset;
11327 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
11328 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
11329 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
11330 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
11331 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
11332 if (ndr->offset > ndr->relative_highest_offset) {
11333 ndr->relative_highest_offset = ndr->offset;
11335 ndr->offset = _relative_save_offset;
11337 ndr->flags = _flags_save_string;
11340 uint32_t _flags_save_string = ndr->flags;
11341 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11342 if (r->driver_path) {
11343 uint32_t _relative_save_offset;
11344 _relative_save_offset = ndr->offset;
11345 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
11346 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
11347 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
11348 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
11349 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
11350 if (ndr->offset > ndr->relative_highest_offset) {
11351 ndr->relative_highest_offset = ndr->offset;
11353 ndr->offset = _relative_save_offset;
11355 ndr->flags = _flags_save_string;
11358 uint32_t _flags_save_string = ndr->flags;
11359 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11360 if (r->data_file) {
11361 uint32_t _relative_save_offset;
11362 _relative_save_offset = ndr->offset;
11363 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
11364 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11365 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
11366 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
11367 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
11368 if (ndr->offset > ndr->relative_highest_offset) {
11369 ndr->relative_highest_offset = ndr->offset;
11371 ndr->offset = _relative_save_offset;
11373 ndr->flags = _flags_save_string;
11376 uint32_t _flags_save_string = ndr->flags;
11377 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11378 if (r->config_file) {
11379 uint32_t _relative_save_offset;
11380 _relative_save_offset = ndr->offset;
11381 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
11382 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11383 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
11384 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
11385 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
11386 if (ndr->offset > ndr->relative_highest_offset) {
11387 ndr->relative_highest_offset = ndr->offset;
11389 ndr->offset = _relative_save_offset;
11391 ndr->flags = _flags_save_string;
11394 uint32_t _flags_save_string = ndr->flags;
11395 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11396 if (r->help_file) {
11397 uint32_t _relative_save_offset;
11398 _relative_save_offset = ndr->offset;
11399 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
11400 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11401 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
11402 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
11403 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
11404 if (ndr->offset > ndr->relative_highest_offset) {
11405 ndr->relative_highest_offset = ndr->offset;
11407 ndr->offset = _relative_save_offset;
11409 ndr->flags = _flags_save_string;
11412 uint32_t _flags_save_string_array = ndr->flags;
11413 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11414 if (r->dependent_files) {
11415 uint32_t _relative_save_offset;
11416 _relative_save_offset = ndr->offset;
11417 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
11418 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
11419 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
11420 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
11421 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
11422 if (ndr->offset > ndr->relative_highest_offset) {
11423 ndr->relative_highest_offset = ndr->offset;
11425 ndr->offset = _relative_save_offset;
11427 ndr->flags = _flags_save_string_array;
11430 uint32_t _flags_save_string = ndr->flags;
11431 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11432 if (r->monitor_name) {
11433 uint32_t _relative_save_offset;
11434 _relative_save_offset = ndr->offset;
11435 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
11436 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11437 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
11438 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
11439 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
11440 if (ndr->offset > ndr->relative_highest_offset) {
11441 ndr->relative_highest_offset = ndr->offset;
11443 ndr->offset = _relative_save_offset;
11445 ndr->flags = _flags_save_string;
11448 uint32_t _flags_save_string = ndr->flags;
11449 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11450 if (r->default_datatype) {
11451 uint32_t _relative_save_offset;
11452 _relative_save_offset = ndr->offset;
11453 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
11454 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
11455 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
11456 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
11457 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
11458 if (ndr->offset > ndr->relative_highest_offset) {
11459 ndr->relative_highest_offset = ndr->offset;
11461 ndr->offset = _relative_save_offset;
11463 ndr->flags = _flags_save_string;
11466 return NDR_ERR_SUCCESS;
11469 _PUBLIC_ void ndr_print_spoolss_DriverInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo3 *r)
11471 ndr_print_struct(ndr, name, "spoolss_DriverInfo3");
11473 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
11474 ndr_print_ptr(ndr, "driver_name", r->driver_name);
11476 if (r->driver_name) {
11477 ndr_print_string(ndr, "driver_name", r->driver_name);
11480 ndr_print_ptr(ndr, "architecture", r->architecture);
11482 if (r->architecture) {
11483 ndr_print_string(ndr, "architecture", r->architecture);
11486 ndr_print_ptr(ndr, "driver_path", r->driver_path);
11488 if (r->driver_path) {
11489 ndr_print_string(ndr, "driver_path", r->driver_path);
11492 ndr_print_ptr(ndr, "data_file", r->data_file);
11494 if (r->data_file) {
11495 ndr_print_string(ndr, "data_file", r->data_file);
11498 ndr_print_ptr(ndr, "config_file", r->config_file);
11500 if (r->config_file) {
11501 ndr_print_string(ndr, "config_file", r->config_file);
11504 ndr_print_ptr(ndr, "help_file", r->help_file);
11506 if (r->help_file) {
11507 ndr_print_string(ndr, "help_file", r->help_file);
11510 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
11512 if (r->dependent_files) {
11513 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
11516 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
11518 if (r->monitor_name) {
11519 ndr_print_string(ndr, "monitor_name", r->monitor_name);
11522 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
11524 if (r->default_datatype) {
11525 ndr_print_string(ndr, "default_datatype", r->default_datatype);
11531 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo3(const struct spoolss_DriverInfo3 *r, struct smb_iconv_convenience *ic, int flags)
11533 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo3, ic);
11536 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo4 *r)
11538 if (ndr_flags & NDR_SCALARS) {
11539 NDR_CHECK(ndr_push_align(ndr, 5));
11540 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
11542 uint32_t _flags_save_string = ndr->flags;
11543 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11544 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
11545 ndr->flags = _flags_save_string;
11548 uint32_t _flags_save_string = ndr->flags;
11549 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11550 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
11551 ndr->flags = _flags_save_string;
11554 uint32_t _flags_save_string = ndr->flags;
11555 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11556 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
11557 ndr->flags = _flags_save_string;
11560 uint32_t _flags_save_string = ndr->flags;
11561 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11562 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
11563 ndr->flags = _flags_save_string;
11566 uint32_t _flags_save_string = ndr->flags;
11567 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11568 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
11569 ndr->flags = _flags_save_string;
11572 uint32_t _flags_save_string = ndr->flags;
11573 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11574 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
11575 ndr->flags = _flags_save_string;
11578 uint32_t _flags_save_string_array = ndr->flags;
11579 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11580 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
11581 ndr->flags = _flags_save_string_array;
11584 uint32_t _flags_save_string = ndr->flags;
11585 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11586 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
11587 ndr->flags = _flags_save_string;
11590 uint32_t _flags_save_string = ndr->flags;
11591 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11592 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
11593 ndr->flags = _flags_save_string;
11596 uint32_t _flags_save_string_array = ndr->flags;
11597 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11598 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
11599 ndr->flags = _flags_save_string_array;
11601 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
11603 if (ndr_flags & NDR_BUFFERS) {
11605 uint32_t _flags_save_string = ndr->flags;
11606 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11607 if (r->driver_name) {
11608 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
11609 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
11611 ndr->flags = _flags_save_string;
11614 uint32_t _flags_save_string = ndr->flags;
11615 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11616 if (r->architecture) {
11617 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
11618 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
11620 ndr->flags = _flags_save_string;
11623 uint32_t _flags_save_string = ndr->flags;
11624 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11625 if (r->driver_path) {
11626 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
11627 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
11629 ndr->flags = _flags_save_string;
11632 uint32_t _flags_save_string = ndr->flags;
11633 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11634 if (r->data_file) {
11635 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
11636 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
11638 ndr->flags = _flags_save_string;
11641 uint32_t _flags_save_string = ndr->flags;
11642 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11643 if (r->config_file) {
11644 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
11645 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
11647 ndr->flags = _flags_save_string;
11650 uint32_t _flags_save_string = ndr->flags;
11651 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11652 if (r->help_file) {
11653 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
11654 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
11656 ndr->flags = _flags_save_string;
11659 uint32_t _flags_save_string_array = ndr->flags;
11660 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11661 if (r->dependent_files) {
11662 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
11663 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
11665 ndr->flags = _flags_save_string_array;
11668 uint32_t _flags_save_string = ndr->flags;
11669 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11670 if (r->monitor_name) {
11671 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
11672 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
11674 ndr->flags = _flags_save_string;
11677 uint32_t _flags_save_string = ndr->flags;
11678 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11679 if (r->default_datatype) {
11680 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
11681 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
11683 ndr->flags = _flags_save_string;
11686 uint32_t _flags_save_string_array = ndr->flags;
11687 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11688 if (r->previous_names) {
11689 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->previous_names));
11690 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
11692 ndr->flags = _flags_save_string_array;
11695 return NDR_ERR_SUCCESS;
11698 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo4 *r)
11700 uint32_t _ptr_driver_name;
11701 TALLOC_CTX *_mem_save_driver_name_0;
11702 uint32_t _ptr_architecture;
11703 TALLOC_CTX *_mem_save_architecture_0;
11704 uint32_t _ptr_driver_path;
11705 TALLOC_CTX *_mem_save_driver_path_0;
11706 uint32_t _ptr_data_file;
11707 TALLOC_CTX *_mem_save_data_file_0;
11708 uint32_t _ptr_config_file;
11709 TALLOC_CTX *_mem_save_config_file_0;
11710 uint32_t _ptr_help_file;
11711 TALLOC_CTX *_mem_save_help_file_0;
11712 uint32_t _ptr_dependent_files;
11713 TALLOC_CTX *_mem_save_dependent_files_0;
11714 uint32_t _ptr_monitor_name;
11715 TALLOC_CTX *_mem_save_monitor_name_0;
11716 uint32_t _ptr_default_datatype;
11717 TALLOC_CTX *_mem_save_default_datatype_0;
11718 uint32_t _ptr_previous_names;
11719 TALLOC_CTX *_mem_save_previous_names_0;
11720 if (ndr_flags & NDR_SCALARS) {
11721 NDR_CHECK(ndr_pull_align(ndr, 5));
11722 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
11724 uint32_t _flags_save_string = ndr->flags;
11725 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11726 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
11727 if (_ptr_driver_name) {
11728 NDR_PULL_ALLOC(ndr, r->driver_name);
11729 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
11731 r->driver_name = NULL;
11733 ndr->flags = _flags_save_string;
11736 uint32_t _flags_save_string = ndr->flags;
11737 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11738 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
11739 if (_ptr_architecture) {
11740 NDR_PULL_ALLOC(ndr, r->architecture);
11741 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
11743 r->architecture = NULL;
11745 ndr->flags = _flags_save_string;
11748 uint32_t _flags_save_string = ndr->flags;
11749 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11750 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
11751 if (_ptr_driver_path) {
11752 NDR_PULL_ALLOC(ndr, r->driver_path);
11753 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
11755 r->driver_path = NULL;
11757 ndr->flags = _flags_save_string;
11760 uint32_t _flags_save_string = ndr->flags;
11761 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11762 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
11763 if (_ptr_data_file) {
11764 NDR_PULL_ALLOC(ndr, r->data_file);
11765 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
11767 r->data_file = NULL;
11769 ndr->flags = _flags_save_string;
11772 uint32_t _flags_save_string = ndr->flags;
11773 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11774 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
11775 if (_ptr_config_file) {
11776 NDR_PULL_ALLOC(ndr, r->config_file);
11777 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
11779 r->config_file = NULL;
11781 ndr->flags = _flags_save_string;
11784 uint32_t _flags_save_string = ndr->flags;
11785 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11786 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
11787 if (_ptr_help_file) {
11788 NDR_PULL_ALLOC(ndr, r->help_file);
11789 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
11791 r->help_file = NULL;
11793 ndr->flags = _flags_save_string;
11796 uint32_t _flags_save_string_array = ndr->flags;
11797 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11798 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
11799 if (_ptr_dependent_files) {
11800 NDR_PULL_ALLOC(ndr, r->dependent_files);
11801 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
11803 r->dependent_files = NULL;
11805 ndr->flags = _flags_save_string_array;
11808 uint32_t _flags_save_string = ndr->flags;
11809 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11810 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
11811 if (_ptr_monitor_name) {
11812 NDR_PULL_ALLOC(ndr, r->monitor_name);
11813 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
11815 r->monitor_name = NULL;
11817 ndr->flags = _flags_save_string;
11820 uint32_t _flags_save_string = ndr->flags;
11821 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11822 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
11823 if (_ptr_default_datatype) {
11824 NDR_PULL_ALLOC(ndr, r->default_datatype);
11825 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
11827 r->default_datatype = NULL;
11829 ndr->flags = _flags_save_string;
11832 uint32_t _flags_save_string_array = ndr->flags;
11833 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11834 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
11835 if (_ptr_previous_names) {
11836 NDR_PULL_ALLOC(ndr, r->previous_names);
11837 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
11839 r->previous_names = NULL;
11841 ndr->flags = _flags_save_string_array;
11843 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
11845 if (ndr_flags & NDR_BUFFERS) {
11847 uint32_t _flags_save_string = ndr->flags;
11848 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11849 if (r->driver_name) {
11850 uint32_t _relative_save_offset;
11851 _relative_save_offset = ndr->offset;
11852 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
11853 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11854 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
11855 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
11856 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
11857 if (ndr->offset > ndr->relative_highest_offset) {
11858 ndr->relative_highest_offset = ndr->offset;
11860 ndr->offset = _relative_save_offset;
11862 ndr->flags = _flags_save_string;
11865 uint32_t _flags_save_string = ndr->flags;
11866 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11867 if (r->architecture) {
11868 uint32_t _relative_save_offset;
11869 _relative_save_offset = ndr->offset;
11870 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
11871 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
11872 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
11873 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
11874 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
11875 if (ndr->offset > ndr->relative_highest_offset) {
11876 ndr->relative_highest_offset = ndr->offset;
11878 ndr->offset = _relative_save_offset;
11880 ndr->flags = _flags_save_string;
11883 uint32_t _flags_save_string = ndr->flags;
11884 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11885 if (r->driver_path) {
11886 uint32_t _relative_save_offset;
11887 _relative_save_offset = ndr->offset;
11888 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
11889 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
11890 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
11891 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
11892 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
11893 if (ndr->offset > ndr->relative_highest_offset) {
11894 ndr->relative_highest_offset = ndr->offset;
11896 ndr->offset = _relative_save_offset;
11898 ndr->flags = _flags_save_string;
11901 uint32_t _flags_save_string = ndr->flags;
11902 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11903 if (r->data_file) {
11904 uint32_t _relative_save_offset;
11905 _relative_save_offset = ndr->offset;
11906 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
11907 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11908 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
11909 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
11910 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
11911 if (ndr->offset > ndr->relative_highest_offset) {
11912 ndr->relative_highest_offset = ndr->offset;
11914 ndr->offset = _relative_save_offset;
11916 ndr->flags = _flags_save_string;
11919 uint32_t _flags_save_string = ndr->flags;
11920 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11921 if (r->config_file) {
11922 uint32_t _relative_save_offset;
11923 _relative_save_offset = ndr->offset;
11924 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
11925 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11926 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
11927 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
11928 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
11929 if (ndr->offset > ndr->relative_highest_offset) {
11930 ndr->relative_highest_offset = ndr->offset;
11932 ndr->offset = _relative_save_offset;
11934 ndr->flags = _flags_save_string;
11937 uint32_t _flags_save_string = ndr->flags;
11938 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11939 if (r->help_file) {
11940 uint32_t _relative_save_offset;
11941 _relative_save_offset = ndr->offset;
11942 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
11943 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11944 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
11945 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
11946 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
11947 if (ndr->offset > ndr->relative_highest_offset) {
11948 ndr->relative_highest_offset = ndr->offset;
11950 ndr->offset = _relative_save_offset;
11952 ndr->flags = _flags_save_string;
11955 uint32_t _flags_save_string_array = ndr->flags;
11956 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11957 if (r->dependent_files) {
11958 uint32_t _relative_save_offset;
11959 _relative_save_offset = ndr->offset;
11960 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
11961 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
11962 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
11963 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
11964 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
11965 if (ndr->offset > ndr->relative_highest_offset) {
11966 ndr->relative_highest_offset = ndr->offset;
11968 ndr->offset = _relative_save_offset;
11970 ndr->flags = _flags_save_string_array;
11973 uint32_t _flags_save_string = ndr->flags;
11974 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11975 if (r->monitor_name) {
11976 uint32_t _relative_save_offset;
11977 _relative_save_offset = ndr->offset;
11978 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
11979 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11980 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
11981 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
11982 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
11983 if (ndr->offset > ndr->relative_highest_offset) {
11984 ndr->relative_highest_offset = ndr->offset;
11986 ndr->offset = _relative_save_offset;
11988 ndr->flags = _flags_save_string;
11991 uint32_t _flags_save_string = ndr->flags;
11992 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11993 if (r->default_datatype) {
11994 uint32_t _relative_save_offset;
11995 _relative_save_offset = ndr->offset;
11996 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
11997 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
11998 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
11999 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
12000 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
12001 if (ndr->offset > ndr->relative_highest_offset) {
12002 ndr->relative_highest_offset = ndr->offset;
12004 ndr->offset = _relative_save_offset;
12006 ndr->flags = _flags_save_string;
12009 uint32_t _flags_save_string_array = ndr->flags;
12010 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12011 if (r->previous_names) {
12012 uint32_t _relative_save_offset;
12013 _relative_save_offset = ndr->offset;
12014 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
12015 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
12016 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
12017 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
12018 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
12019 if (ndr->offset > ndr->relative_highest_offset) {
12020 ndr->relative_highest_offset = ndr->offset;
12022 ndr->offset = _relative_save_offset;
12024 ndr->flags = _flags_save_string_array;
12027 return NDR_ERR_SUCCESS;
12030 _PUBLIC_ void ndr_print_spoolss_DriverInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo4 *r)
12032 ndr_print_struct(ndr, name, "spoolss_DriverInfo4");
12034 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
12035 ndr_print_ptr(ndr, "driver_name", r->driver_name);
12037 if (r->driver_name) {
12038 ndr_print_string(ndr, "driver_name", r->driver_name);
12041 ndr_print_ptr(ndr, "architecture", r->architecture);
12043 if (r->architecture) {
12044 ndr_print_string(ndr, "architecture", r->architecture);
12047 ndr_print_ptr(ndr, "driver_path", r->driver_path);
12049 if (r->driver_path) {
12050 ndr_print_string(ndr, "driver_path", r->driver_path);
12053 ndr_print_ptr(ndr, "data_file", r->data_file);
12055 if (r->data_file) {
12056 ndr_print_string(ndr, "data_file", r->data_file);
12059 ndr_print_ptr(ndr, "config_file", r->config_file);
12061 if (r->config_file) {
12062 ndr_print_string(ndr, "config_file", r->config_file);
12065 ndr_print_ptr(ndr, "help_file", r->help_file);
12067 if (r->help_file) {
12068 ndr_print_string(ndr, "help_file", r->help_file);
12071 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
12073 if (r->dependent_files) {
12074 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
12077 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
12079 if (r->monitor_name) {
12080 ndr_print_string(ndr, "monitor_name", r->monitor_name);
12083 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
12085 if (r->default_datatype) {
12086 ndr_print_string(ndr, "default_datatype", r->default_datatype);
12089 ndr_print_ptr(ndr, "previous_names", r->previous_names);
12091 if (r->previous_names) {
12092 ndr_print_string_array(ndr, "previous_names", r->previous_names);
12098 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo4(const struct spoolss_DriverInfo4 *r, struct smb_iconv_convenience *ic, int flags)
12100 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo4, ic);
12103 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo5 *r)
12105 if (ndr_flags & NDR_SCALARS) {
12106 NDR_CHECK(ndr_push_align(ndr, 5));
12107 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
12109 uint32_t _flags_save_string = ndr->flags;
12110 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12111 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
12112 ndr->flags = _flags_save_string;
12115 uint32_t _flags_save_string = ndr->flags;
12116 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12117 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
12118 ndr->flags = _flags_save_string;
12121 uint32_t _flags_save_string = ndr->flags;
12122 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12123 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
12124 ndr->flags = _flags_save_string;
12127 uint32_t _flags_save_string = ndr->flags;
12128 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12129 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
12130 ndr->flags = _flags_save_string;
12133 uint32_t _flags_save_string = ndr->flags;
12134 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12135 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
12136 ndr->flags = _flags_save_string;
12138 NDR_CHECK(ndr_push_spoolss_DriverAttributes(ndr, NDR_SCALARS, r->driver_attributes));
12139 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->config_version));
12140 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->driver_version));
12141 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
12143 if (ndr_flags & NDR_BUFFERS) {
12145 uint32_t _flags_save_string = ndr->flags;
12146 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12147 if (r->driver_name) {
12148 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
12149 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
12151 ndr->flags = _flags_save_string;
12154 uint32_t _flags_save_string = ndr->flags;
12155 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12156 if (r->architecture) {
12157 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
12158 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
12160 ndr->flags = _flags_save_string;
12163 uint32_t _flags_save_string = ndr->flags;
12164 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12165 if (r->driver_path) {
12166 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
12167 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
12169 ndr->flags = _flags_save_string;
12172 uint32_t _flags_save_string = ndr->flags;
12173 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12174 if (r->data_file) {
12175 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
12176 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
12178 ndr->flags = _flags_save_string;
12181 uint32_t _flags_save_string = ndr->flags;
12182 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12183 if (r->config_file) {
12184 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
12185 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
12187 ndr->flags = _flags_save_string;
12190 return NDR_ERR_SUCCESS;
12193 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo5 *r)
12195 uint32_t _ptr_driver_name;
12196 TALLOC_CTX *_mem_save_driver_name_0;
12197 uint32_t _ptr_architecture;
12198 TALLOC_CTX *_mem_save_architecture_0;
12199 uint32_t _ptr_driver_path;
12200 TALLOC_CTX *_mem_save_driver_path_0;
12201 uint32_t _ptr_data_file;
12202 TALLOC_CTX *_mem_save_data_file_0;
12203 uint32_t _ptr_config_file;
12204 TALLOC_CTX *_mem_save_config_file_0;
12205 if (ndr_flags & NDR_SCALARS) {
12206 NDR_CHECK(ndr_pull_align(ndr, 5));
12207 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
12209 uint32_t _flags_save_string = ndr->flags;
12210 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12211 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
12212 if (_ptr_driver_name) {
12213 NDR_PULL_ALLOC(ndr, r->driver_name);
12214 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
12216 r->driver_name = NULL;
12218 ndr->flags = _flags_save_string;
12221 uint32_t _flags_save_string = ndr->flags;
12222 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12223 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
12224 if (_ptr_architecture) {
12225 NDR_PULL_ALLOC(ndr, r->architecture);
12226 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
12228 r->architecture = NULL;
12230 ndr->flags = _flags_save_string;
12233 uint32_t _flags_save_string = ndr->flags;
12234 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12235 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
12236 if (_ptr_driver_path) {
12237 NDR_PULL_ALLOC(ndr, r->driver_path);
12238 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
12240 r->driver_path = NULL;
12242 ndr->flags = _flags_save_string;
12245 uint32_t _flags_save_string = ndr->flags;
12246 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12247 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
12248 if (_ptr_data_file) {
12249 NDR_PULL_ALLOC(ndr, r->data_file);
12250 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
12252 r->data_file = NULL;
12254 ndr->flags = _flags_save_string;
12257 uint32_t _flags_save_string = ndr->flags;
12258 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12259 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
12260 if (_ptr_config_file) {
12261 NDR_PULL_ALLOC(ndr, r->config_file);
12262 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
12264 r->config_file = NULL;
12266 ndr->flags = _flags_save_string;
12268 NDR_CHECK(ndr_pull_spoolss_DriverAttributes(ndr, NDR_SCALARS, &r->driver_attributes));
12269 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->config_version));
12270 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->driver_version));
12271 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
12273 if (ndr_flags & NDR_BUFFERS) {
12275 uint32_t _flags_save_string = ndr->flags;
12276 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12277 if (r->driver_name) {
12278 uint32_t _relative_save_offset;
12279 _relative_save_offset = ndr->offset;
12280 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
12281 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12282 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
12283 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
12284 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
12285 if (ndr->offset > ndr->relative_highest_offset) {
12286 ndr->relative_highest_offset = ndr->offset;
12288 ndr->offset = _relative_save_offset;
12290 ndr->flags = _flags_save_string;
12293 uint32_t _flags_save_string = ndr->flags;
12294 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12295 if (r->architecture) {
12296 uint32_t _relative_save_offset;
12297 _relative_save_offset = ndr->offset;
12298 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
12299 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
12300 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
12301 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
12302 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
12303 if (ndr->offset > ndr->relative_highest_offset) {
12304 ndr->relative_highest_offset = ndr->offset;
12306 ndr->offset = _relative_save_offset;
12308 ndr->flags = _flags_save_string;
12311 uint32_t _flags_save_string = ndr->flags;
12312 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12313 if (r->driver_path) {
12314 uint32_t _relative_save_offset;
12315 _relative_save_offset = ndr->offset;
12316 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
12317 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
12318 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
12319 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
12320 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
12321 if (ndr->offset > ndr->relative_highest_offset) {
12322 ndr->relative_highest_offset = ndr->offset;
12324 ndr->offset = _relative_save_offset;
12326 ndr->flags = _flags_save_string;
12329 uint32_t _flags_save_string = ndr->flags;
12330 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12331 if (r->data_file) {
12332 uint32_t _relative_save_offset;
12333 _relative_save_offset = ndr->offset;
12334 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
12335 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12336 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
12337 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
12338 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
12339 if (ndr->offset > ndr->relative_highest_offset) {
12340 ndr->relative_highest_offset = ndr->offset;
12342 ndr->offset = _relative_save_offset;
12344 ndr->flags = _flags_save_string;
12347 uint32_t _flags_save_string = ndr->flags;
12348 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12349 if (r->config_file) {
12350 uint32_t _relative_save_offset;
12351 _relative_save_offset = ndr->offset;
12352 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
12353 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12354 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
12355 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
12356 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
12357 if (ndr->offset > ndr->relative_highest_offset) {
12358 ndr->relative_highest_offset = ndr->offset;
12360 ndr->offset = _relative_save_offset;
12362 ndr->flags = _flags_save_string;
12365 return NDR_ERR_SUCCESS;
12368 _PUBLIC_ void ndr_print_spoolss_DriverInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo5 *r)
12370 ndr_print_struct(ndr, name, "spoolss_DriverInfo5");
12372 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
12373 ndr_print_ptr(ndr, "driver_name", r->driver_name);
12375 if (r->driver_name) {
12376 ndr_print_string(ndr, "driver_name", r->driver_name);
12379 ndr_print_ptr(ndr, "architecture", r->architecture);
12381 if (r->architecture) {
12382 ndr_print_string(ndr, "architecture", r->architecture);
12385 ndr_print_ptr(ndr, "driver_path", r->driver_path);
12387 if (r->driver_path) {
12388 ndr_print_string(ndr, "driver_path", r->driver_path);
12391 ndr_print_ptr(ndr, "data_file", r->data_file);
12393 if (r->data_file) {
12394 ndr_print_string(ndr, "data_file", r->data_file);
12397 ndr_print_ptr(ndr, "config_file", r->config_file);
12399 if (r->config_file) {
12400 ndr_print_string(ndr, "config_file", r->config_file);
12403 ndr_print_spoolss_DriverAttributes(ndr, "driver_attributes", r->driver_attributes);
12404 ndr_print_uint32(ndr, "config_version", r->config_version);
12405 ndr_print_uint32(ndr, "driver_version", r->driver_version);
12409 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo5(const struct spoolss_DriverInfo5 *r, struct smb_iconv_convenience *ic, int flags)
12411 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo5, ic);
12414 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo6 *r)
12416 if (ndr_flags & NDR_SCALARS) {
12417 NDR_CHECK(ndr_push_align(ndr, 8));
12418 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
12420 uint32_t _flags_save_string = ndr->flags;
12421 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12422 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
12423 ndr->flags = _flags_save_string;
12426 uint32_t _flags_save_string = ndr->flags;
12427 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12428 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
12429 ndr->flags = _flags_save_string;
12432 uint32_t _flags_save_string = ndr->flags;
12433 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12434 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
12435 ndr->flags = _flags_save_string;
12438 uint32_t _flags_save_string = ndr->flags;
12439 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12440 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
12441 ndr->flags = _flags_save_string;
12444 uint32_t _flags_save_string = ndr->flags;
12445 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12446 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
12447 ndr->flags = _flags_save_string;
12450 uint32_t _flags_save_string = ndr->flags;
12451 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12452 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
12453 ndr->flags = _flags_save_string;
12456 uint32_t _flags_save_string_array = ndr->flags;
12457 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12458 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
12459 ndr->flags = _flags_save_string_array;
12462 uint32_t _flags_save_string = ndr->flags;
12463 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12464 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
12465 ndr->flags = _flags_save_string;
12468 uint32_t _flags_save_string = ndr->flags;
12469 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12470 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
12471 ndr->flags = _flags_save_string;
12474 uint32_t _flags_save_string_array = ndr->flags;
12475 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12476 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
12477 ndr->flags = _flags_save_string_array;
12479 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
12480 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
12482 uint32_t _flags_save_string = ndr->flags;
12483 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12484 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_name));
12485 ndr->flags = _flags_save_string;
12488 uint32_t _flags_save_string = ndr->flags;
12489 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12490 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_url));
12491 ndr->flags = _flags_save_string;
12494 uint32_t _flags_save_string = ndr->flags;
12495 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12496 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->hardware_id));
12497 ndr->flags = _flags_save_string;
12500 uint32_t _flags_save_string = ndr->flags;
12501 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12502 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->provider));
12503 ndr->flags = _flags_save_string;
12505 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
12507 if (ndr_flags & NDR_BUFFERS) {
12509 uint32_t _flags_save_string = ndr->flags;
12510 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12511 if (r->driver_name) {
12512 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
12513 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
12515 ndr->flags = _flags_save_string;
12518 uint32_t _flags_save_string = ndr->flags;
12519 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12520 if (r->architecture) {
12521 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
12522 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
12524 ndr->flags = _flags_save_string;
12527 uint32_t _flags_save_string = ndr->flags;
12528 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12529 if (r->driver_path) {
12530 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
12531 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
12533 ndr->flags = _flags_save_string;
12536 uint32_t _flags_save_string = ndr->flags;
12537 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12538 if (r->data_file) {
12539 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
12540 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
12542 ndr->flags = _flags_save_string;
12545 uint32_t _flags_save_string = ndr->flags;
12546 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12547 if (r->config_file) {
12548 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
12549 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
12551 ndr->flags = _flags_save_string;
12554 uint32_t _flags_save_string = ndr->flags;
12555 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12556 if (r->help_file) {
12557 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
12558 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
12560 ndr->flags = _flags_save_string;
12563 uint32_t _flags_save_string_array = ndr->flags;
12564 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12565 if (r->dependent_files) {
12566 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
12567 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
12569 ndr->flags = _flags_save_string_array;
12572 uint32_t _flags_save_string = ndr->flags;
12573 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12574 if (r->monitor_name) {
12575 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
12576 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
12578 ndr->flags = _flags_save_string;
12581 uint32_t _flags_save_string = ndr->flags;
12582 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12583 if (r->default_datatype) {
12584 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
12585 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
12587 ndr->flags = _flags_save_string;
12590 uint32_t _flags_save_string_array = ndr->flags;
12591 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12592 if (r->previous_names) {
12593 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->previous_names));
12594 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
12596 ndr->flags = _flags_save_string_array;
12599 uint32_t _flags_save_string = ndr->flags;
12600 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12601 if (r->manufacturer_name) {
12602 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_name));
12603 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_name));
12605 ndr->flags = _flags_save_string;
12608 uint32_t _flags_save_string = ndr->flags;
12609 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12610 if (r->manufacturer_url) {
12611 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_url));
12612 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_url));
12614 ndr->flags = _flags_save_string;
12617 uint32_t _flags_save_string = ndr->flags;
12618 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12619 if (r->hardware_id) {
12620 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->hardware_id));
12621 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->hardware_id));
12623 ndr->flags = _flags_save_string;
12626 uint32_t _flags_save_string = ndr->flags;
12627 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12629 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->provider));
12630 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->provider));
12632 ndr->flags = _flags_save_string;
12635 return NDR_ERR_SUCCESS;
12638 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo6 *r)
12640 uint32_t _ptr_driver_name;
12641 TALLOC_CTX *_mem_save_driver_name_0;
12642 uint32_t _ptr_architecture;
12643 TALLOC_CTX *_mem_save_architecture_0;
12644 uint32_t _ptr_driver_path;
12645 TALLOC_CTX *_mem_save_driver_path_0;
12646 uint32_t _ptr_data_file;
12647 TALLOC_CTX *_mem_save_data_file_0;
12648 uint32_t _ptr_config_file;
12649 TALLOC_CTX *_mem_save_config_file_0;
12650 uint32_t _ptr_help_file;
12651 TALLOC_CTX *_mem_save_help_file_0;
12652 uint32_t _ptr_dependent_files;
12653 TALLOC_CTX *_mem_save_dependent_files_0;
12654 uint32_t _ptr_monitor_name;
12655 TALLOC_CTX *_mem_save_monitor_name_0;
12656 uint32_t _ptr_default_datatype;
12657 TALLOC_CTX *_mem_save_default_datatype_0;
12658 uint32_t _ptr_previous_names;
12659 TALLOC_CTX *_mem_save_previous_names_0;
12660 uint32_t _ptr_manufacturer_name;
12661 TALLOC_CTX *_mem_save_manufacturer_name_0;
12662 uint32_t _ptr_manufacturer_url;
12663 TALLOC_CTX *_mem_save_manufacturer_url_0;
12664 uint32_t _ptr_hardware_id;
12665 TALLOC_CTX *_mem_save_hardware_id_0;
12666 uint32_t _ptr_provider;
12667 TALLOC_CTX *_mem_save_provider_0;
12668 if (ndr_flags & NDR_SCALARS) {
12669 NDR_CHECK(ndr_pull_align(ndr, 8));
12670 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
12672 uint32_t _flags_save_string = ndr->flags;
12673 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12674 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
12675 if (_ptr_driver_name) {
12676 NDR_PULL_ALLOC(ndr, r->driver_name);
12677 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
12679 r->driver_name = NULL;
12681 ndr->flags = _flags_save_string;
12684 uint32_t _flags_save_string = ndr->flags;
12685 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12686 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
12687 if (_ptr_architecture) {
12688 NDR_PULL_ALLOC(ndr, r->architecture);
12689 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
12691 r->architecture = NULL;
12693 ndr->flags = _flags_save_string;
12696 uint32_t _flags_save_string = ndr->flags;
12697 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12698 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
12699 if (_ptr_driver_path) {
12700 NDR_PULL_ALLOC(ndr, r->driver_path);
12701 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
12703 r->driver_path = NULL;
12705 ndr->flags = _flags_save_string;
12708 uint32_t _flags_save_string = ndr->flags;
12709 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12710 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
12711 if (_ptr_data_file) {
12712 NDR_PULL_ALLOC(ndr, r->data_file);
12713 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
12715 r->data_file = NULL;
12717 ndr->flags = _flags_save_string;
12720 uint32_t _flags_save_string = ndr->flags;
12721 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12722 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
12723 if (_ptr_config_file) {
12724 NDR_PULL_ALLOC(ndr, r->config_file);
12725 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
12727 r->config_file = NULL;
12729 ndr->flags = _flags_save_string;
12732 uint32_t _flags_save_string = ndr->flags;
12733 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12734 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
12735 if (_ptr_help_file) {
12736 NDR_PULL_ALLOC(ndr, r->help_file);
12737 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
12739 r->help_file = NULL;
12741 ndr->flags = _flags_save_string;
12744 uint32_t _flags_save_string_array = ndr->flags;
12745 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12746 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
12747 if (_ptr_dependent_files) {
12748 NDR_PULL_ALLOC(ndr, r->dependent_files);
12749 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
12751 r->dependent_files = NULL;
12753 ndr->flags = _flags_save_string_array;
12756 uint32_t _flags_save_string = ndr->flags;
12757 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12758 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
12759 if (_ptr_monitor_name) {
12760 NDR_PULL_ALLOC(ndr, r->monitor_name);
12761 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
12763 r->monitor_name = NULL;
12765 ndr->flags = _flags_save_string;
12768 uint32_t _flags_save_string = ndr->flags;
12769 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12770 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
12771 if (_ptr_default_datatype) {
12772 NDR_PULL_ALLOC(ndr, r->default_datatype);
12773 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
12775 r->default_datatype = NULL;
12777 ndr->flags = _flags_save_string;
12780 uint32_t _flags_save_string_array = ndr->flags;
12781 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12782 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
12783 if (_ptr_previous_names) {
12784 NDR_PULL_ALLOC(ndr, r->previous_names);
12785 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
12787 r->previous_names = NULL;
12789 ndr->flags = _flags_save_string_array;
12791 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
12792 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
12794 uint32_t _flags_save_string = ndr->flags;
12795 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12796 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
12797 if (_ptr_manufacturer_name) {
12798 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
12799 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_name, _ptr_manufacturer_name));
12801 r->manufacturer_name = NULL;
12803 ndr->flags = _flags_save_string;
12806 uint32_t _flags_save_string = ndr->flags;
12807 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12808 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
12809 if (_ptr_manufacturer_url) {
12810 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
12811 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_url, _ptr_manufacturer_url));
12813 r->manufacturer_url = NULL;
12815 ndr->flags = _flags_save_string;
12818 uint32_t _flags_save_string = ndr->flags;
12819 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12820 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
12821 if (_ptr_hardware_id) {
12822 NDR_PULL_ALLOC(ndr, r->hardware_id);
12823 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->hardware_id, _ptr_hardware_id));
12825 r->hardware_id = NULL;
12827 ndr->flags = _flags_save_string;
12830 uint32_t _flags_save_string = ndr->flags;
12831 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12832 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
12833 if (_ptr_provider) {
12834 NDR_PULL_ALLOC(ndr, r->provider);
12835 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->provider, _ptr_provider));
12837 r->provider = NULL;
12839 ndr->flags = _flags_save_string;
12841 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
12843 if (ndr_flags & NDR_BUFFERS) {
12845 uint32_t _flags_save_string = ndr->flags;
12846 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12847 if (r->driver_name) {
12848 uint32_t _relative_save_offset;
12849 _relative_save_offset = ndr->offset;
12850 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
12851 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12852 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
12853 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
12854 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
12855 if (ndr->offset > ndr->relative_highest_offset) {
12856 ndr->relative_highest_offset = ndr->offset;
12858 ndr->offset = _relative_save_offset;
12860 ndr->flags = _flags_save_string;
12863 uint32_t _flags_save_string = ndr->flags;
12864 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12865 if (r->architecture) {
12866 uint32_t _relative_save_offset;
12867 _relative_save_offset = ndr->offset;
12868 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
12869 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
12870 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
12871 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
12872 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
12873 if (ndr->offset > ndr->relative_highest_offset) {
12874 ndr->relative_highest_offset = ndr->offset;
12876 ndr->offset = _relative_save_offset;
12878 ndr->flags = _flags_save_string;
12881 uint32_t _flags_save_string = ndr->flags;
12882 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12883 if (r->driver_path) {
12884 uint32_t _relative_save_offset;
12885 _relative_save_offset = ndr->offset;
12886 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
12887 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
12888 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
12889 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
12890 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
12891 if (ndr->offset > ndr->relative_highest_offset) {
12892 ndr->relative_highest_offset = ndr->offset;
12894 ndr->offset = _relative_save_offset;
12896 ndr->flags = _flags_save_string;
12899 uint32_t _flags_save_string = ndr->flags;
12900 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12901 if (r->data_file) {
12902 uint32_t _relative_save_offset;
12903 _relative_save_offset = ndr->offset;
12904 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
12905 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12906 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
12907 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
12908 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
12909 if (ndr->offset > ndr->relative_highest_offset) {
12910 ndr->relative_highest_offset = ndr->offset;
12912 ndr->offset = _relative_save_offset;
12914 ndr->flags = _flags_save_string;
12917 uint32_t _flags_save_string = ndr->flags;
12918 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12919 if (r->config_file) {
12920 uint32_t _relative_save_offset;
12921 _relative_save_offset = ndr->offset;
12922 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
12923 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12924 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
12925 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
12926 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
12927 if (ndr->offset > ndr->relative_highest_offset) {
12928 ndr->relative_highest_offset = ndr->offset;
12930 ndr->offset = _relative_save_offset;
12932 ndr->flags = _flags_save_string;
12935 uint32_t _flags_save_string = ndr->flags;
12936 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12937 if (r->help_file) {
12938 uint32_t _relative_save_offset;
12939 _relative_save_offset = ndr->offset;
12940 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
12941 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12942 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
12943 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
12944 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
12945 if (ndr->offset > ndr->relative_highest_offset) {
12946 ndr->relative_highest_offset = ndr->offset;
12948 ndr->offset = _relative_save_offset;
12950 ndr->flags = _flags_save_string;
12953 uint32_t _flags_save_string_array = ndr->flags;
12954 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12955 if (r->dependent_files) {
12956 uint32_t _relative_save_offset;
12957 _relative_save_offset = ndr->offset;
12958 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
12959 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
12960 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
12961 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
12962 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
12963 if (ndr->offset > ndr->relative_highest_offset) {
12964 ndr->relative_highest_offset = ndr->offset;
12966 ndr->offset = _relative_save_offset;
12968 ndr->flags = _flags_save_string_array;
12971 uint32_t _flags_save_string = ndr->flags;
12972 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12973 if (r->monitor_name) {
12974 uint32_t _relative_save_offset;
12975 _relative_save_offset = ndr->offset;
12976 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
12977 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12978 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
12979 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
12980 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
12981 if (ndr->offset > ndr->relative_highest_offset) {
12982 ndr->relative_highest_offset = ndr->offset;
12984 ndr->offset = _relative_save_offset;
12986 ndr->flags = _flags_save_string;
12989 uint32_t _flags_save_string = ndr->flags;
12990 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12991 if (r->default_datatype) {
12992 uint32_t _relative_save_offset;
12993 _relative_save_offset = ndr->offset;
12994 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
12995 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
12996 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
12997 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
12998 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
12999 if (ndr->offset > ndr->relative_highest_offset) {
13000 ndr->relative_highest_offset = ndr->offset;
13002 ndr->offset = _relative_save_offset;
13004 ndr->flags = _flags_save_string;
13007 uint32_t _flags_save_string_array = ndr->flags;
13008 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13009 if (r->previous_names) {
13010 uint32_t _relative_save_offset;
13011 _relative_save_offset = ndr->offset;
13012 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
13013 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
13014 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
13015 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
13016 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
13017 if (ndr->offset > ndr->relative_highest_offset) {
13018 ndr->relative_highest_offset = ndr->offset;
13020 ndr->offset = _relative_save_offset;
13022 ndr->flags = _flags_save_string_array;
13025 uint32_t _flags_save_string = ndr->flags;
13026 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13027 if (r->manufacturer_name) {
13028 uint32_t _relative_save_offset;
13029 _relative_save_offset = ndr->offset;
13030 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_name));
13031 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13032 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
13033 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_name));
13034 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
13035 if (ndr->offset > ndr->relative_highest_offset) {
13036 ndr->relative_highest_offset = ndr->offset;
13038 ndr->offset = _relative_save_offset;
13040 ndr->flags = _flags_save_string;
13043 uint32_t _flags_save_string = ndr->flags;
13044 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13045 if (r->manufacturer_url) {
13046 uint32_t _relative_save_offset;
13047 _relative_save_offset = ndr->offset;
13048 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_url));
13049 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
13050 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
13051 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_url));
13052 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
13053 if (ndr->offset > ndr->relative_highest_offset) {
13054 ndr->relative_highest_offset = ndr->offset;
13056 ndr->offset = _relative_save_offset;
13058 ndr->flags = _flags_save_string;
13061 uint32_t _flags_save_string = ndr->flags;
13062 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13063 if (r->hardware_id) {
13064 uint32_t _relative_save_offset;
13065 _relative_save_offset = ndr->offset;
13066 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->hardware_id));
13067 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
13068 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
13069 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->hardware_id));
13070 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
13071 if (ndr->offset > ndr->relative_highest_offset) {
13072 ndr->relative_highest_offset = ndr->offset;
13074 ndr->offset = _relative_save_offset;
13076 ndr->flags = _flags_save_string;
13079 uint32_t _flags_save_string = ndr->flags;
13080 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13082 uint32_t _relative_save_offset;
13083 _relative_save_offset = ndr->offset;
13084 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->provider));
13085 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
13086 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
13087 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->provider));
13088 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
13089 if (ndr->offset > ndr->relative_highest_offset) {
13090 ndr->relative_highest_offset = ndr->offset;
13092 ndr->offset = _relative_save_offset;
13094 ndr->flags = _flags_save_string;
13097 return NDR_ERR_SUCCESS;
13100 _PUBLIC_ void ndr_print_spoolss_DriverInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo6 *r)
13102 ndr_print_struct(ndr, name, "spoolss_DriverInfo6");
13104 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
13105 ndr_print_ptr(ndr, "driver_name", r->driver_name);
13107 if (r->driver_name) {
13108 ndr_print_string(ndr, "driver_name", r->driver_name);
13111 ndr_print_ptr(ndr, "architecture", r->architecture);
13113 if (r->architecture) {
13114 ndr_print_string(ndr, "architecture", r->architecture);
13117 ndr_print_ptr(ndr, "driver_path", r->driver_path);
13119 if (r->driver_path) {
13120 ndr_print_string(ndr, "driver_path", r->driver_path);
13123 ndr_print_ptr(ndr, "data_file", r->data_file);
13125 if (r->data_file) {
13126 ndr_print_string(ndr, "data_file", r->data_file);
13129 ndr_print_ptr(ndr, "config_file", r->config_file);
13131 if (r->config_file) {
13132 ndr_print_string(ndr, "config_file", r->config_file);
13135 ndr_print_ptr(ndr, "help_file", r->help_file);
13137 if (r->help_file) {
13138 ndr_print_string(ndr, "help_file", r->help_file);
13141 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
13143 if (r->dependent_files) {
13144 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
13147 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
13149 if (r->monitor_name) {
13150 ndr_print_string(ndr, "monitor_name", r->monitor_name);
13153 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
13155 if (r->default_datatype) {
13156 ndr_print_string(ndr, "default_datatype", r->default_datatype);
13159 ndr_print_ptr(ndr, "previous_names", r->previous_names);
13161 if (r->previous_names) {
13162 ndr_print_string_array(ndr, "previous_names", r->previous_names);
13165 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
13166 ndr_print_hyper(ndr, "driver_version", r->driver_version);
13167 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
13169 if (r->manufacturer_name) {
13170 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
13173 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
13175 if (r->manufacturer_url) {
13176 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
13179 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
13181 if (r->hardware_id) {
13182 ndr_print_string(ndr, "hardware_id", r->hardware_id);
13185 ndr_print_ptr(ndr, "provider", r->provider);
13188 ndr_print_string(ndr, "provider", r->provider);
13194 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo6(const struct spoolss_DriverInfo6 *r, struct smb_iconv_convenience *ic, int flags)
13196 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo6, ic);
13199 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo8(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo8 *r)
13201 if (ndr_flags & NDR_SCALARS) {
13202 NDR_CHECK(ndr_push_align(ndr, 8));
13203 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
13205 uint32_t _flags_save_string = ndr->flags;
13206 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13207 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
13208 ndr->flags = _flags_save_string;
13211 uint32_t _flags_save_string = ndr->flags;
13212 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13213 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
13214 ndr->flags = _flags_save_string;
13217 uint32_t _flags_save_string = ndr->flags;
13218 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13219 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
13220 ndr->flags = _flags_save_string;
13223 uint32_t _flags_save_string = ndr->flags;
13224 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13225 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
13226 ndr->flags = _flags_save_string;
13229 uint32_t _flags_save_string = ndr->flags;
13230 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13231 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
13232 ndr->flags = _flags_save_string;
13235 uint32_t _flags_save_string = ndr->flags;
13236 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13237 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
13238 ndr->flags = _flags_save_string;
13241 uint32_t _flags_save_string = ndr->flags;
13242 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13243 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
13244 ndr->flags = _flags_save_string;
13247 uint32_t _flags_save_string = ndr->flags;
13248 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13249 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
13250 ndr->flags = _flags_save_string;
13253 uint32_t _flags_save_string_array = ndr->flags;
13254 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13255 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
13256 ndr->flags = _flags_save_string_array;
13259 uint32_t _flags_save_string_array = ndr->flags;
13260 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13261 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
13262 ndr->flags = _flags_save_string_array;
13264 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
13265 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
13267 uint32_t _flags_save_string = ndr->flags;
13268 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13269 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_name));
13270 ndr->flags = _flags_save_string;
13273 uint32_t _flags_save_string = ndr->flags;
13274 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13275 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_url));
13276 ndr->flags = _flags_save_string;
13279 uint32_t _flags_save_string = ndr->flags;
13280 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13281 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->hardware_id));
13282 ndr->flags = _flags_save_string;
13285 uint32_t _flags_save_string = ndr->flags;
13286 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13287 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->provider));
13288 ndr->flags = _flags_save_string;
13291 uint32_t _flags_save_string = ndr->flags;
13292 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13293 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor));
13294 ndr->flags = _flags_save_string;
13297 uint32_t _flags_save_string = ndr->flags;
13298 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13299 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->vendor_setup));
13300 ndr->flags = _flags_save_string;
13303 uint32_t _flags_save_string_array = ndr->flags;
13304 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13305 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->color_profiles));
13306 ndr->flags = _flags_save_string_array;
13309 uint32_t _flags_save_string = ndr->flags;
13310 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13311 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->inf_path));
13312 ndr->flags = _flags_save_string;
13314 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->printer_driver_attributes));
13316 uint32_t _flags_save_string_array = ndr->flags;
13317 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13318 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->core_driver_dependencies));
13319 ndr->flags = _flags_save_string_array;
13321 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->min_inbox_driver_ver_date));
13322 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->min_inbox_driver_ver_version));
13323 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
13325 if (ndr_flags & NDR_BUFFERS) {
13327 uint32_t _flags_save_string = ndr->flags;
13328 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13329 if (r->driver_name) {
13330 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
13331 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
13333 ndr->flags = _flags_save_string;
13336 uint32_t _flags_save_string = ndr->flags;
13337 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13338 if (r->architecture) {
13339 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
13340 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
13342 ndr->flags = _flags_save_string;
13345 uint32_t _flags_save_string = ndr->flags;
13346 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13347 if (r->driver_path) {
13348 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
13349 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
13351 ndr->flags = _flags_save_string;
13354 uint32_t _flags_save_string = ndr->flags;
13355 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13356 if (r->data_file) {
13357 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
13358 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
13360 ndr->flags = _flags_save_string;
13363 uint32_t _flags_save_string = ndr->flags;
13364 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13365 if (r->config_file) {
13366 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
13367 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
13369 ndr->flags = _flags_save_string;
13372 uint32_t _flags_save_string = ndr->flags;
13373 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13374 if (r->help_file) {
13375 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
13376 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
13378 ndr->flags = _flags_save_string;
13381 uint32_t _flags_save_string = ndr->flags;
13382 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13383 if (r->monitor_name) {
13384 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
13385 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
13387 ndr->flags = _flags_save_string;
13390 uint32_t _flags_save_string = ndr->flags;
13391 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13392 if (r->default_datatype) {
13393 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
13394 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
13396 ndr->flags = _flags_save_string;
13399 uint32_t _flags_save_string_array = ndr->flags;
13400 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13401 if (r->dependent_files) {
13402 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
13403 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
13405 ndr->flags = _flags_save_string_array;
13408 uint32_t _flags_save_string_array = ndr->flags;
13409 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13410 if (r->previous_names) {
13411 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->previous_names));
13412 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
13414 ndr->flags = _flags_save_string_array;
13417 uint32_t _flags_save_string = ndr->flags;
13418 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13419 if (r->manufacturer_name) {
13420 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_name));
13421 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_name));
13423 ndr->flags = _flags_save_string;
13426 uint32_t _flags_save_string = ndr->flags;
13427 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13428 if (r->manufacturer_url) {
13429 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_url));
13430 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_url));
13432 ndr->flags = _flags_save_string;
13435 uint32_t _flags_save_string = ndr->flags;
13436 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13437 if (r->hardware_id) {
13438 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->hardware_id));
13439 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->hardware_id));
13441 ndr->flags = _flags_save_string;
13444 uint32_t _flags_save_string = ndr->flags;
13445 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13447 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->provider));
13448 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->provider));
13450 ndr->flags = _flags_save_string;
13453 uint32_t _flags_save_string = ndr->flags;
13454 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13455 if (r->print_processor) {
13456 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->print_processor));
13457 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor));
13459 ndr->flags = _flags_save_string;
13462 uint32_t _flags_save_string = ndr->flags;
13463 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13464 if (r->vendor_setup) {
13465 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->vendor_setup));
13466 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->vendor_setup));
13468 ndr->flags = _flags_save_string;
13471 uint32_t _flags_save_string_array = ndr->flags;
13472 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13473 if (r->color_profiles) {
13474 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->color_profiles));
13475 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->color_profiles));
13477 ndr->flags = _flags_save_string_array;
13480 uint32_t _flags_save_string = ndr->flags;
13481 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13483 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->inf_path));
13484 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->inf_path));
13486 ndr->flags = _flags_save_string;
13489 uint32_t _flags_save_string_array = ndr->flags;
13490 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13491 if (r->core_driver_dependencies) {
13492 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->core_driver_dependencies));
13493 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->core_driver_dependencies));
13495 ndr->flags = _flags_save_string_array;
13498 return NDR_ERR_SUCCESS;
13501 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo8(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo8 *r)
13503 uint32_t _ptr_driver_name;
13504 TALLOC_CTX *_mem_save_driver_name_0;
13505 uint32_t _ptr_architecture;
13506 TALLOC_CTX *_mem_save_architecture_0;
13507 uint32_t _ptr_driver_path;
13508 TALLOC_CTX *_mem_save_driver_path_0;
13509 uint32_t _ptr_data_file;
13510 TALLOC_CTX *_mem_save_data_file_0;
13511 uint32_t _ptr_config_file;
13512 TALLOC_CTX *_mem_save_config_file_0;
13513 uint32_t _ptr_help_file;
13514 TALLOC_CTX *_mem_save_help_file_0;
13515 uint32_t _ptr_monitor_name;
13516 TALLOC_CTX *_mem_save_monitor_name_0;
13517 uint32_t _ptr_default_datatype;
13518 TALLOC_CTX *_mem_save_default_datatype_0;
13519 uint32_t _ptr_dependent_files;
13520 TALLOC_CTX *_mem_save_dependent_files_0;
13521 uint32_t _ptr_previous_names;
13522 TALLOC_CTX *_mem_save_previous_names_0;
13523 uint32_t _ptr_manufacturer_name;
13524 TALLOC_CTX *_mem_save_manufacturer_name_0;
13525 uint32_t _ptr_manufacturer_url;
13526 TALLOC_CTX *_mem_save_manufacturer_url_0;
13527 uint32_t _ptr_hardware_id;
13528 TALLOC_CTX *_mem_save_hardware_id_0;
13529 uint32_t _ptr_provider;
13530 TALLOC_CTX *_mem_save_provider_0;
13531 uint32_t _ptr_print_processor;
13532 TALLOC_CTX *_mem_save_print_processor_0;
13533 uint32_t _ptr_vendor_setup;
13534 TALLOC_CTX *_mem_save_vendor_setup_0;
13535 uint32_t _ptr_color_profiles;
13536 TALLOC_CTX *_mem_save_color_profiles_0;
13537 uint32_t _ptr_inf_path;
13538 TALLOC_CTX *_mem_save_inf_path_0;
13539 uint32_t _ptr_core_driver_dependencies;
13540 TALLOC_CTX *_mem_save_core_driver_dependencies_0;
13541 if (ndr_flags & NDR_SCALARS) {
13542 NDR_CHECK(ndr_pull_align(ndr, 8));
13543 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
13545 uint32_t _flags_save_string = ndr->flags;
13546 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13547 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
13548 if (_ptr_driver_name) {
13549 NDR_PULL_ALLOC(ndr, r->driver_name);
13550 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
13552 r->driver_name = NULL;
13554 ndr->flags = _flags_save_string;
13557 uint32_t _flags_save_string = ndr->flags;
13558 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13559 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
13560 if (_ptr_architecture) {
13561 NDR_PULL_ALLOC(ndr, r->architecture);
13562 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
13564 r->architecture = NULL;
13566 ndr->flags = _flags_save_string;
13569 uint32_t _flags_save_string = ndr->flags;
13570 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13571 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
13572 if (_ptr_driver_path) {
13573 NDR_PULL_ALLOC(ndr, r->driver_path);
13574 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
13576 r->driver_path = NULL;
13578 ndr->flags = _flags_save_string;
13581 uint32_t _flags_save_string = ndr->flags;
13582 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13583 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
13584 if (_ptr_data_file) {
13585 NDR_PULL_ALLOC(ndr, r->data_file);
13586 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
13588 r->data_file = NULL;
13590 ndr->flags = _flags_save_string;
13593 uint32_t _flags_save_string = ndr->flags;
13594 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13595 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
13596 if (_ptr_config_file) {
13597 NDR_PULL_ALLOC(ndr, r->config_file);
13598 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
13600 r->config_file = NULL;
13602 ndr->flags = _flags_save_string;
13605 uint32_t _flags_save_string = ndr->flags;
13606 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13607 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
13608 if (_ptr_help_file) {
13609 NDR_PULL_ALLOC(ndr, r->help_file);
13610 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
13612 r->help_file = NULL;
13614 ndr->flags = _flags_save_string;
13617 uint32_t _flags_save_string = ndr->flags;
13618 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13619 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
13620 if (_ptr_monitor_name) {
13621 NDR_PULL_ALLOC(ndr, r->monitor_name);
13622 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
13624 r->monitor_name = NULL;
13626 ndr->flags = _flags_save_string;
13629 uint32_t _flags_save_string = ndr->flags;
13630 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13631 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
13632 if (_ptr_default_datatype) {
13633 NDR_PULL_ALLOC(ndr, r->default_datatype);
13634 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
13636 r->default_datatype = NULL;
13638 ndr->flags = _flags_save_string;
13641 uint32_t _flags_save_string_array = ndr->flags;
13642 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13643 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
13644 if (_ptr_dependent_files) {
13645 NDR_PULL_ALLOC(ndr, r->dependent_files);
13646 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
13648 r->dependent_files = NULL;
13650 ndr->flags = _flags_save_string_array;
13653 uint32_t _flags_save_string_array = ndr->flags;
13654 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13655 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
13656 if (_ptr_previous_names) {
13657 NDR_PULL_ALLOC(ndr, r->previous_names);
13658 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
13660 r->previous_names = NULL;
13662 ndr->flags = _flags_save_string_array;
13664 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
13665 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
13667 uint32_t _flags_save_string = ndr->flags;
13668 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13669 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
13670 if (_ptr_manufacturer_name) {
13671 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
13672 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_name, _ptr_manufacturer_name));
13674 r->manufacturer_name = NULL;
13676 ndr->flags = _flags_save_string;
13679 uint32_t _flags_save_string = ndr->flags;
13680 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13681 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
13682 if (_ptr_manufacturer_url) {
13683 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
13684 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_url, _ptr_manufacturer_url));
13686 r->manufacturer_url = NULL;
13688 ndr->flags = _flags_save_string;
13691 uint32_t _flags_save_string = ndr->flags;
13692 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13693 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
13694 if (_ptr_hardware_id) {
13695 NDR_PULL_ALLOC(ndr, r->hardware_id);
13696 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->hardware_id, _ptr_hardware_id));
13698 r->hardware_id = NULL;
13700 ndr->flags = _flags_save_string;
13703 uint32_t _flags_save_string = ndr->flags;
13704 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13705 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
13706 if (_ptr_provider) {
13707 NDR_PULL_ALLOC(ndr, r->provider);
13708 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->provider, _ptr_provider));
13710 r->provider = NULL;
13712 ndr->flags = _flags_save_string;
13715 uint32_t _flags_save_string = ndr->flags;
13716 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13717 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
13718 if (_ptr_print_processor) {
13719 NDR_PULL_ALLOC(ndr, r->print_processor);
13720 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor, _ptr_print_processor));
13722 r->print_processor = NULL;
13724 ndr->flags = _flags_save_string;
13727 uint32_t _flags_save_string = ndr->flags;
13728 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13729 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_vendor_setup));
13730 if (_ptr_vendor_setup) {
13731 NDR_PULL_ALLOC(ndr, r->vendor_setup);
13732 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->vendor_setup, _ptr_vendor_setup));
13734 r->vendor_setup = NULL;
13736 ndr->flags = _flags_save_string;
13739 uint32_t _flags_save_string_array = ndr->flags;
13740 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13741 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_color_profiles));
13742 if (_ptr_color_profiles) {
13743 NDR_PULL_ALLOC(ndr, r->color_profiles);
13744 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->color_profiles, _ptr_color_profiles));
13746 r->color_profiles = NULL;
13748 ndr->flags = _flags_save_string_array;
13751 uint32_t _flags_save_string = ndr->flags;
13752 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13753 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_inf_path));
13754 if (_ptr_inf_path) {
13755 NDR_PULL_ALLOC(ndr, r->inf_path);
13756 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->inf_path, _ptr_inf_path));
13758 r->inf_path = NULL;
13760 ndr->flags = _flags_save_string;
13762 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->printer_driver_attributes));
13764 uint32_t _flags_save_string_array = ndr->flags;
13765 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13766 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_core_driver_dependencies));
13767 if (_ptr_core_driver_dependencies) {
13768 NDR_PULL_ALLOC(ndr, r->core_driver_dependencies);
13769 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->core_driver_dependencies, _ptr_core_driver_dependencies));
13771 r->core_driver_dependencies = NULL;
13773 ndr->flags = _flags_save_string_array;
13775 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_date));
13776 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_version));
13777 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
13779 if (ndr_flags & NDR_BUFFERS) {
13781 uint32_t _flags_save_string = ndr->flags;
13782 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13783 if (r->driver_name) {
13784 uint32_t _relative_save_offset;
13785 _relative_save_offset = ndr->offset;
13786 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
13787 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13788 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
13789 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
13790 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
13791 if (ndr->offset > ndr->relative_highest_offset) {
13792 ndr->relative_highest_offset = ndr->offset;
13794 ndr->offset = _relative_save_offset;
13796 ndr->flags = _flags_save_string;
13799 uint32_t _flags_save_string = ndr->flags;
13800 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13801 if (r->architecture) {
13802 uint32_t _relative_save_offset;
13803 _relative_save_offset = ndr->offset;
13804 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
13805 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
13806 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
13807 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
13808 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
13809 if (ndr->offset > ndr->relative_highest_offset) {
13810 ndr->relative_highest_offset = ndr->offset;
13812 ndr->offset = _relative_save_offset;
13814 ndr->flags = _flags_save_string;
13817 uint32_t _flags_save_string = ndr->flags;
13818 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13819 if (r->driver_path) {
13820 uint32_t _relative_save_offset;
13821 _relative_save_offset = ndr->offset;
13822 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
13823 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
13824 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
13825 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
13826 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
13827 if (ndr->offset > ndr->relative_highest_offset) {
13828 ndr->relative_highest_offset = ndr->offset;
13830 ndr->offset = _relative_save_offset;
13832 ndr->flags = _flags_save_string;
13835 uint32_t _flags_save_string = ndr->flags;
13836 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13837 if (r->data_file) {
13838 uint32_t _relative_save_offset;
13839 _relative_save_offset = ndr->offset;
13840 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
13841 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
13842 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
13843 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
13844 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
13845 if (ndr->offset > ndr->relative_highest_offset) {
13846 ndr->relative_highest_offset = ndr->offset;
13848 ndr->offset = _relative_save_offset;
13850 ndr->flags = _flags_save_string;
13853 uint32_t _flags_save_string = ndr->flags;
13854 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13855 if (r->config_file) {
13856 uint32_t _relative_save_offset;
13857 _relative_save_offset = ndr->offset;
13858 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
13859 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
13860 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
13861 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
13862 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
13863 if (ndr->offset > ndr->relative_highest_offset) {
13864 ndr->relative_highest_offset = ndr->offset;
13866 ndr->offset = _relative_save_offset;
13868 ndr->flags = _flags_save_string;
13871 uint32_t _flags_save_string = ndr->flags;
13872 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13873 if (r->help_file) {
13874 uint32_t _relative_save_offset;
13875 _relative_save_offset = ndr->offset;
13876 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
13877 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
13878 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
13879 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
13880 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
13881 if (ndr->offset > ndr->relative_highest_offset) {
13882 ndr->relative_highest_offset = ndr->offset;
13884 ndr->offset = _relative_save_offset;
13886 ndr->flags = _flags_save_string;
13889 uint32_t _flags_save_string = ndr->flags;
13890 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13891 if (r->monitor_name) {
13892 uint32_t _relative_save_offset;
13893 _relative_save_offset = ndr->offset;
13894 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
13895 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13896 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
13897 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
13898 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
13899 if (ndr->offset > ndr->relative_highest_offset) {
13900 ndr->relative_highest_offset = ndr->offset;
13902 ndr->offset = _relative_save_offset;
13904 ndr->flags = _flags_save_string;
13907 uint32_t _flags_save_string = ndr->flags;
13908 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13909 if (r->default_datatype) {
13910 uint32_t _relative_save_offset;
13911 _relative_save_offset = ndr->offset;
13912 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
13913 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
13914 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
13915 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
13916 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
13917 if (ndr->offset > ndr->relative_highest_offset) {
13918 ndr->relative_highest_offset = ndr->offset;
13920 ndr->offset = _relative_save_offset;
13922 ndr->flags = _flags_save_string;
13925 uint32_t _flags_save_string_array = ndr->flags;
13926 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13927 if (r->dependent_files) {
13928 uint32_t _relative_save_offset;
13929 _relative_save_offset = ndr->offset;
13930 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
13931 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
13932 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
13933 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
13934 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
13935 if (ndr->offset > ndr->relative_highest_offset) {
13936 ndr->relative_highest_offset = ndr->offset;
13938 ndr->offset = _relative_save_offset;
13940 ndr->flags = _flags_save_string_array;
13943 uint32_t _flags_save_string_array = ndr->flags;
13944 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13945 if (r->previous_names) {
13946 uint32_t _relative_save_offset;
13947 _relative_save_offset = ndr->offset;
13948 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
13949 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
13950 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
13951 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
13952 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
13953 if (ndr->offset > ndr->relative_highest_offset) {
13954 ndr->relative_highest_offset = ndr->offset;
13956 ndr->offset = _relative_save_offset;
13958 ndr->flags = _flags_save_string_array;
13961 uint32_t _flags_save_string = ndr->flags;
13962 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13963 if (r->manufacturer_name) {
13964 uint32_t _relative_save_offset;
13965 _relative_save_offset = ndr->offset;
13966 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_name));
13967 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13968 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
13969 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_name));
13970 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
13971 if (ndr->offset > ndr->relative_highest_offset) {
13972 ndr->relative_highest_offset = ndr->offset;
13974 ndr->offset = _relative_save_offset;
13976 ndr->flags = _flags_save_string;
13979 uint32_t _flags_save_string = ndr->flags;
13980 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13981 if (r->manufacturer_url) {
13982 uint32_t _relative_save_offset;
13983 _relative_save_offset = ndr->offset;
13984 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_url));
13985 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
13986 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
13987 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_url));
13988 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
13989 if (ndr->offset > ndr->relative_highest_offset) {
13990 ndr->relative_highest_offset = ndr->offset;
13992 ndr->offset = _relative_save_offset;
13994 ndr->flags = _flags_save_string;
13997 uint32_t _flags_save_string = ndr->flags;
13998 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13999 if (r->hardware_id) {
14000 uint32_t _relative_save_offset;
14001 _relative_save_offset = ndr->offset;
14002 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->hardware_id));
14003 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
14004 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
14005 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->hardware_id));
14006 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
14007 if (ndr->offset > ndr->relative_highest_offset) {
14008 ndr->relative_highest_offset = ndr->offset;
14010 ndr->offset = _relative_save_offset;
14012 ndr->flags = _flags_save_string;
14015 uint32_t _flags_save_string = ndr->flags;
14016 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14018 uint32_t _relative_save_offset;
14019 _relative_save_offset = ndr->offset;
14020 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->provider));
14021 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
14022 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
14023 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->provider));
14024 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
14025 if (ndr->offset > ndr->relative_highest_offset) {
14026 ndr->relative_highest_offset = ndr->offset;
14028 ndr->offset = _relative_save_offset;
14030 ndr->flags = _flags_save_string;
14033 uint32_t _flags_save_string = ndr->flags;
14034 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14035 if (r->print_processor) {
14036 uint32_t _relative_save_offset;
14037 _relative_save_offset = ndr->offset;
14038 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor));
14039 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
14040 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
14041 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor));
14042 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
14043 if (ndr->offset > ndr->relative_highest_offset) {
14044 ndr->relative_highest_offset = ndr->offset;
14046 ndr->offset = _relative_save_offset;
14048 ndr->flags = _flags_save_string;
14051 uint32_t _flags_save_string = ndr->flags;
14052 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14053 if (r->vendor_setup) {
14054 uint32_t _relative_save_offset;
14055 _relative_save_offset = ndr->offset;
14056 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->vendor_setup));
14057 _mem_save_vendor_setup_0 = NDR_PULL_GET_MEM_CTX(ndr);
14058 NDR_PULL_SET_MEM_CTX(ndr, r->vendor_setup, 0);
14059 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->vendor_setup));
14060 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vendor_setup_0, 0);
14061 if (ndr->offset > ndr->relative_highest_offset) {
14062 ndr->relative_highest_offset = ndr->offset;
14064 ndr->offset = _relative_save_offset;
14066 ndr->flags = _flags_save_string;
14069 uint32_t _flags_save_string_array = ndr->flags;
14070 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14071 if (r->color_profiles) {
14072 uint32_t _relative_save_offset;
14073 _relative_save_offset = ndr->offset;
14074 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->color_profiles));
14075 _mem_save_color_profiles_0 = NDR_PULL_GET_MEM_CTX(ndr);
14076 NDR_PULL_SET_MEM_CTX(ndr, r->color_profiles, 0);
14077 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->color_profiles));
14078 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_color_profiles_0, 0);
14079 if (ndr->offset > ndr->relative_highest_offset) {
14080 ndr->relative_highest_offset = ndr->offset;
14082 ndr->offset = _relative_save_offset;
14084 ndr->flags = _flags_save_string_array;
14087 uint32_t _flags_save_string = ndr->flags;
14088 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14090 uint32_t _relative_save_offset;
14091 _relative_save_offset = ndr->offset;
14092 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->inf_path));
14093 _mem_save_inf_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
14094 NDR_PULL_SET_MEM_CTX(ndr, r->inf_path, 0);
14095 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->inf_path));
14096 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_inf_path_0, 0);
14097 if (ndr->offset > ndr->relative_highest_offset) {
14098 ndr->relative_highest_offset = ndr->offset;
14100 ndr->offset = _relative_save_offset;
14102 ndr->flags = _flags_save_string;
14105 uint32_t _flags_save_string_array = ndr->flags;
14106 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14107 if (r->core_driver_dependencies) {
14108 uint32_t _relative_save_offset;
14109 _relative_save_offset = ndr->offset;
14110 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->core_driver_dependencies));
14111 _mem_save_core_driver_dependencies_0 = NDR_PULL_GET_MEM_CTX(ndr);
14112 NDR_PULL_SET_MEM_CTX(ndr, r->core_driver_dependencies, 0);
14113 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->core_driver_dependencies));
14114 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_driver_dependencies_0, 0);
14115 if (ndr->offset > ndr->relative_highest_offset) {
14116 ndr->relative_highest_offset = ndr->offset;
14118 ndr->offset = _relative_save_offset;
14120 ndr->flags = _flags_save_string_array;
14123 return NDR_ERR_SUCCESS;
14126 _PUBLIC_ void ndr_print_spoolss_DriverInfo8(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo8 *r)
14128 ndr_print_struct(ndr, name, "spoolss_DriverInfo8");
14130 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
14131 ndr_print_ptr(ndr, "driver_name", r->driver_name);
14133 if (r->driver_name) {
14134 ndr_print_string(ndr, "driver_name", r->driver_name);
14137 ndr_print_ptr(ndr, "architecture", r->architecture);
14139 if (r->architecture) {
14140 ndr_print_string(ndr, "architecture", r->architecture);
14143 ndr_print_ptr(ndr, "driver_path", r->driver_path);
14145 if (r->driver_path) {
14146 ndr_print_string(ndr, "driver_path", r->driver_path);
14149 ndr_print_ptr(ndr, "data_file", r->data_file);
14151 if (r->data_file) {
14152 ndr_print_string(ndr, "data_file", r->data_file);
14155 ndr_print_ptr(ndr, "config_file", r->config_file);
14157 if (r->config_file) {
14158 ndr_print_string(ndr, "config_file", r->config_file);
14161 ndr_print_ptr(ndr, "help_file", r->help_file);
14163 if (r->help_file) {
14164 ndr_print_string(ndr, "help_file", r->help_file);
14167 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
14169 if (r->monitor_name) {
14170 ndr_print_string(ndr, "monitor_name", r->monitor_name);
14173 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
14175 if (r->default_datatype) {
14176 ndr_print_string(ndr, "default_datatype", r->default_datatype);
14179 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
14181 if (r->dependent_files) {
14182 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
14185 ndr_print_ptr(ndr, "previous_names", r->previous_names);
14187 if (r->previous_names) {
14188 ndr_print_string_array(ndr, "previous_names", r->previous_names);
14191 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
14192 ndr_print_hyper(ndr, "driver_version", r->driver_version);
14193 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
14195 if (r->manufacturer_name) {
14196 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
14199 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
14201 if (r->manufacturer_url) {
14202 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
14205 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
14207 if (r->hardware_id) {
14208 ndr_print_string(ndr, "hardware_id", r->hardware_id);
14211 ndr_print_ptr(ndr, "provider", r->provider);
14214 ndr_print_string(ndr, "provider", r->provider);
14217 ndr_print_ptr(ndr, "print_processor", r->print_processor);
14219 if (r->print_processor) {
14220 ndr_print_string(ndr, "print_processor", r->print_processor);
14223 ndr_print_ptr(ndr, "vendor_setup", r->vendor_setup);
14225 if (r->vendor_setup) {
14226 ndr_print_string(ndr, "vendor_setup", r->vendor_setup);
14229 ndr_print_ptr(ndr, "color_profiles", r->color_profiles);
14231 if (r->color_profiles) {
14232 ndr_print_string_array(ndr, "color_profiles", r->color_profiles);
14235 ndr_print_ptr(ndr, "inf_path", r->inf_path);
14238 ndr_print_string(ndr, "inf_path", r->inf_path);
14241 ndr_print_uint32(ndr, "printer_driver_attributes", r->printer_driver_attributes);
14242 ndr_print_ptr(ndr, "core_driver_dependencies", r->core_driver_dependencies);
14244 if (r->core_driver_dependencies) {
14245 ndr_print_string_array(ndr, "core_driver_dependencies", r->core_driver_dependencies);
14248 ndr_print_NTTIME(ndr, "min_inbox_driver_ver_date", r->min_inbox_driver_ver_date);
14249 ndr_print_hyper(ndr, "min_inbox_driver_ver_version", r->min_inbox_driver_ver_version);
14253 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo8(const struct spoolss_DriverInfo8 *r, struct smb_iconv_convenience *ic, int flags)
14255 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo8, ic);
14258 static enum ndr_err_code ndr_push_spoolss_DriverFileType(struct ndr_push *ndr, int ndr_flags, enum spoolss_DriverFileType r)
14260 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
14261 return NDR_ERR_SUCCESS;
14264 static enum ndr_err_code ndr_pull_spoolss_DriverFileType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DriverFileType *r)
14267 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
14269 return NDR_ERR_SUCCESS;
14272 _PUBLIC_ void ndr_print_spoolss_DriverFileType(struct ndr_print *ndr, const char *name, enum spoolss_DriverFileType r)
14274 const char *val = NULL;
14277 case SPOOLSS_DRIVER_FILE_TYPE_RENDERING: val = "SPOOLSS_DRIVER_FILE_TYPE_RENDERING"; break;
14278 case SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION: val = "SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION"; break;
14279 case SPOOLSS_DRIVER_FILE_TYPE_DATA: val = "SPOOLSS_DRIVER_FILE_TYPE_DATA"; break;
14280 case SPOOLSS_DRIVER_FILE_TYPE_HELP: val = "SPOOLSS_DRIVER_FILE_TYPE_HELP"; break;
14281 case SPOOLSS_DRIVER_FILE_TYPE_OTHER: val = "SPOOLSS_DRIVER_FILE_TYPE_OTHER"; break;
14283 ndr_print_enum(ndr, name, "ENUM", val, r);
14286 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverFileInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverFileInfo *r)
14288 if (ndr_flags & NDR_SCALARS) {
14289 NDR_CHECK(ndr_push_align(ndr, 5));
14291 uint32_t _flags_save_string = ndr->flags;
14292 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14293 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->file_name));
14294 ndr->flags = _flags_save_string;
14296 NDR_CHECK(ndr_push_spoolss_DriverFileType(ndr, NDR_SCALARS, r->file_type));
14297 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->file_version));
14298 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
14300 if (ndr_flags & NDR_BUFFERS) {
14302 uint32_t _flags_save_string = ndr->flags;
14303 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14304 if (r->file_name) {
14305 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->file_name));
14306 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->file_name));
14308 ndr->flags = _flags_save_string;
14311 return NDR_ERR_SUCCESS;
14314 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverFileInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverFileInfo *r)
14316 uint32_t _ptr_file_name;
14317 TALLOC_CTX *_mem_save_file_name_0;
14318 if (ndr_flags & NDR_SCALARS) {
14319 NDR_CHECK(ndr_pull_align(ndr, 5));
14321 uint32_t _flags_save_string = ndr->flags;
14322 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14323 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_file_name));
14324 if (_ptr_file_name) {
14325 NDR_PULL_ALLOC(ndr, r->file_name);
14326 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->file_name, _ptr_file_name));
14328 r->file_name = NULL;
14330 ndr->flags = _flags_save_string;
14332 NDR_CHECK(ndr_pull_spoolss_DriverFileType(ndr, NDR_SCALARS, &r->file_type));
14333 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->file_version));
14334 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
14336 if (ndr_flags & NDR_BUFFERS) {
14338 uint32_t _flags_save_string = ndr->flags;
14339 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14340 if (r->file_name) {
14341 uint32_t _relative_save_offset;
14342 _relative_save_offset = ndr->offset;
14343 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->file_name));
14344 _mem_save_file_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14345 NDR_PULL_SET_MEM_CTX(ndr, r->file_name, 0);
14346 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->file_name));
14347 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_file_name_0, 0);
14348 if (ndr->offset > ndr->relative_highest_offset) {
14349 ndr->relative_highest_offset = ndr->offset;
14351 ndr->offset = _relative_save_offset;
14353 ndr->flags = _flags_save_string;
14356 return NDR_ERR_SUCCESS;
14359 _PUBLIC_ void ndr_print_spoolss_DriverFileInfo(struct ndr_print *ndr, const char *name, const struct spoolss_DriverFileInfo *r)
14361 ndr_print_struct(ndr, name, "spoolss_DriverFileInfo");
14363 ndr_print_ptr(ndr, "file_name", r->file_name);
14365 if (r->file_name) {
14366 ndr_print_string(ndr, "file_name", r->file_name);
14369 ndr_print_spoolss_DriverFileType(ndr, "file_type", r->file_type);
14370 ndr_print_uint32(ndr, "file_version", r->file_version);
14374 _PUBLIC_ void ndr_print_spoolss_DriverInfo101(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo101 *r)
14376 uint32_t cntr_file_info_1;
14377 ndr_print_struct(ndr, name, "spoolss_DriverInfo101");
14379 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
14380 ndr_print_ptr(ndr, "driver_name", r->driver_name);
14382 if (r->driver_name) {
14383 ndr_print_string(ndr, "driver_name", r->driver_name);
14386 ndr_print_ptr(ndr, "architecture", r->architecture);
14388 if (r->architecture) {
14389 ndr_print_string(ndr, "architecture", r->architecture);
14392 ndr_print_ptr(ndr, "file_info", r->file_info);
14394 if (r->file_info) {
14395 ndr->print(ndr, "%s: ARRAY(%d)", "file_info", (int)r->file_count);
14397 for (cntr_file_info_1=0;cntr_file_info_1<r->file_count;cntr_file_info_1++) {
14399 if (asprintf(&idx_1, "[%d]", cntr_file_info_1) != -1) {
14400 ndr_print_spoolss_DriverFileInfo(ndr, "file_info", &r->file_info[cntr_file_info_1]);
14407 ndr_print_uint32(ndr, "file_count", r->file_count);
14408 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
14410 if (r->monitor_name) {
14411 ndr_print_string(ndr, "monitor_name", r->monitor_name);
14414 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
14416 if (r->default_datatype) {
14417 ndr_print_string(ndr, "default_datatype", r->default_datatype);
14420 ndr_print_ptr(ndr, "previous_names", r->previous_names);
14422 if (r->previous_names) {
14423 ndr_print_string_array(ndr, "previous_names", r->previous_names);
14426 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
14427 ndr_print_hyper(ndr, "driver_version", r->driver_version);
14428 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
14430 if (r->manufacturer_name) {
14431 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
14434 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
14436 if (r->manufacturer_url) {
14437 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
14440 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
14442 if (r->hardware_id) {
14443 ndr_print_string(ndr, "hardware_id", r->hardware_id);
14446 ndr_print_ptr(ndr, "provider", r->provider);
14449 ndr_print_string(ndr, "provider", r->provider);
14455 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo101(const struct spoolss_DriverInfo101 *r, struct smb_iconv_convenience *ic, int flags)
14457 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo101, ic);
14460 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DriverInfo *r)
14462 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
14463 if (ndr_flags & NDR_SCALARS) {
14464 int level = ndr_push_get_switch_value(ndr, r);
14465 NDR_CHECK(ndr_push_union_align(ndr, 8));
14468 NDR_CHECK(ndr_push_align(ndr, 5));
14469 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14470 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr, NDR_SCALARS, &r->info1));
14474 NDR_CHECK(ndr_push_align(ndr, 5));
14475 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14476 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr, NDR_SCALARS, &r->info2));
14480 NDR_CHECK(ndr_push_align(ndr, 5));
14481 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14482 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr, NDR_SCALARS, &r->info3));
14486 NDR_CHECK(ndr_push_align(ndr, 5));
14487 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14488 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr, NDR_SCALARS, &r->info4));
14492 NDR_CHECK(ndr_push_align(ndr, 5));
14493 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14494 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr, NDR_SCALARS, &r->info5));
14498 NDR_CHECK(ndr_push_align(ndr, 8));
14499 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14500 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr, NDR_SCALARS, &r->info6));
14504 NDR_CHECK(ndr_push_align(ndr, 8));
14505 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14506 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr, NDR_SCALARS, &r->info8));
14510 NDR_CHECK(ndr_push_align(ndr, 8));
14511 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14512 NDR_CHECK(ndr_push_spoolss_DriverInfo101(ndr, NDR_SCALARS, &r->info101));
14520 if (ndr_flags & NDR_BUFFERS) {
14521 int level = ndr_push_get_switch_value(ndr, r);
14522 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
14525 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr, NDR_BUFFERS, &r->info1));
14529 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr, NDR_BUFFERS, &r->info2));
14533 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr, NDR_BUFFERS, &r->info3));
14537 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr, NDR_BUFFERS, &r->info4));
14541 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr, NDR_BUFFERS, &r->info5));
14545 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr, NDR_BUFFERS, &r->info6));
14549 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr, NDR_BUFFERS, &r->info8));
14553 NDR_CHECK(ndr_push_spoolss_DriverInfo101(ndr, NDR_BUFFERS, &r->info101));
14561 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
14562 return NDR_ERR_SUCCESS;
14565 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DriverInfo *r)
14567 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
14569 level = ndr_pull_get_switch_value(ndr, r);
14570 if (ndr_flags & NDR_SCALARS) {
14571 NDR_CHECK(ndr_pull_union_align(ndr, 8));
14574 NDR_CHECK(ndr_pull_align(ndr, 5));
14575 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14576 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr, NDR_SCALARS, &r->info1));
14580 NDR_CHECK(ndr_pull_align(ndr, 5));
14581 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14582 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr, NDR_SCALARS, &r->info2));
14586 NDR_CHECK(ndr_pull_align(ndr, 5));
14587 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14588 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr, NDR_SCALARS, &r->info3));
14592 NDR_CHECK(ndr_pull_align(ndr, 5));
14593 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14594 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr, NDR_SCALARS, &r->info4));
14598 NDR_CHECK(ndr_pull_align(ndr, 5));
14599 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14600 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr, NDR_SCALARS, &r->info5));
14604 NDR_CHECK(ndr_pull_align(ndr, 8));
14605 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14606 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr, NDR_SCALARS, &r->info6));
14610 NDR_CHECK(ndr_pull_align(ndr, 8));
14611 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14612 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr, NDR_SCALARS, &r->info8));
14616 NDR_CHECK(ndr_pull_align(ndr, 8));
14617 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14618 NDR_CHECK(ndr_pull_spoolss_DriverInfo101(ndr, NDR_SCALARS, &r->info101));
14626 if (ndr_flags & NDR_BUFFERS) {
14627 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
14630 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr, NDR_BUFFERS, &r->info1));
14634 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr, NDR_BUFFERS, &r->info2));
14638 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr, NDR_BUFFERS, &r->info3));
14642 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr, NDR_BUFFERS, &r->info4));
14646 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr, NDR_BUFFERS, &r->info5));
14650 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr, NDR_BUFFERS, &r->info6));
14654 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr, NDR_BUFFERS, &r->info8));
14658 NDR_CHECK(ndr_pull_spoolss_DriverInfo101(ndr, NDR_BUFFERS, &r->info101));
14666 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
14667 return NDR_ERR_SUCCESS;
14670 _PUBLIC_ void ndr_print_spoolss_DriverInfo(struct ndr_print *ndr, const char *name, const union spoolss_DriverInfo *r)
14673 level = ndr_print_get_switch_value(ndr, r);
14674 ndr_print_union(ndr, name, level, "spoolss_DriverInfo");
14677 ndr_print_spoolss_DriverInfo1(ndr, "info1", &r->info1);
14681 ndr_print_spoolss_DriverInfo2(ndr, "info2", &r->info2);
14685 ndr_print_spoolss_DriverInfo3(ndr, "info3", &r->info3);
14689 ndr_print_spoolss_DriverInfo4(ndr, "info4", &r->info4);
14693 ndr_print_spoolss_DriverInfo5(ndr, "info5", &r->info5);
14697 ndr_print_spoolss_DriverInfo6(ndr, "info6", &r->info6);
14701 ndr_print_spoolss_DriverInfo8(ndr, "info8", &r->info8);
14705 ndr_print_spoolss_DriverInfo101(ndr, "info101", &r->info101);
14714 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo(const union spoolss_DriverInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
14716 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo, ic);
14719 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverDirectoryInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverDirectoryInfo1 *r)
14721 if (ndr_flags & NDR_SCALARS) {
14722 NDR_CHECK(ndr_push_align(ndr, 4));
14724 uint32_t _flags_save_string = ndr->flags;
14725 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14726 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->directory_name));
14727 ndr->flags = _flags_save_string;
14729 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
14731 if (ndr_flags & NDR_BUFFERS) {
14733 return NDR_ERR_SUCCESS;
14736 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverDirectoryInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverDirectoryInfo1 *r)
14738 if (ndr_flags & NDR_SCALARS) {
14739 NDR_CHECK(ndr_pull_align(ndr, 4));
14741 uint32_t _flags_save_string = ndr->flags;
14742 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14743 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->directory_name));
14744 ndr->flags = _flags_save_string;
14746 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
14748 if (ndr_flags & NDR_BUFFERS) {
14750 return NDR_ERR_SUCCESS;
14753 _PUBLIC_ void ndr_print_spoolss_DriverDirectoryInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DriverDirectoryInfo1 *r)
14755 ndr_print_struct(ndr, name, "spoolss_DriverDirectoryInfo1");
14757 ndr_print_string(ndr, "directory_name", r->directory_name);
14761 _PUBLIC_ size_t ndr_size_spoolss_DriverDirectoryInfo1(const struct spoolss_DriverDirectoryInfo1 *r, struct smb_iconv_convenience *ic, int flags)
14763 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverDirectoryInfo1, ic);
14766 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverDirectoryInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DriverDirectoryInfo *r)
14768 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
14769 if (ndr_flags & NDR_SCALARS) {
14770 int level = ndr_push_get_switch_value(ndr, r);
14771 NDR_CHECK(ndr_push_union_align(ndr, 4));
14774 NDR_CHECK(ndr_push_align(ndr, 4));
14775 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14776 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14780 NDR_CHECK(ndr_push_align(ndr, 4));
14781 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14782 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14787 if (ndr_flags & NDR_BUFFERS) {
14788 int level = ndr_push_get_switch_value(ndr, r);
14789 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
14799 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
14800 return NDR_ERR_SUCCESS;
14803 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverDirectoryInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DriverDirectoryInfo *r)
14805 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
14807 level = ndr_pull_get_switch_value(ndr, r);
14808 if (ndr_flags & NDR_SCALARS) {
14809 NDR_CHECK(ndr_pull_union_align(ndr, 4));
14812 NDR_CHECK(ndr_pull_align(ndr, 4));
14813 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14814 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14818 NDR_CHECK(ndr_pull_align(ndr, 4));
14819 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14820 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14825 if (ndr_flags & NDR_BUFFERS) {
14826 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
14836 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
14837 return NDR_ERR_SUCCESS;
14840 _PUBLIC_ void ndr_print_spoolss_DriverDirectoryInfo(struct ndr_print *ndr, const char *name, const union spoolss_DriverDirectoryInfo *r)
14843 level = ndr_print_get_switch_value(ndr, r);
14844 ndr_print_union(ndr, name, level, "spoolss_DriverDirectoryInfo");
14847 ndr_print_spoolss_DriverDirectoryInfo1(ndr, "info1", &r->info1);
14851 ndr_print_spoolss_DriverDirectoryInfo1(ndr, "info1", &r->info1);
14857 _PUBLIC_ size_t ndr_size_spoolss_DriverDirectoryInfo(const union spoolss_DriverDirectoryInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
14859 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverDirectoryInfo, ic);
14862 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcessorInfo1 *r)
14864 if (ndr_flags & NDR_SCALARS) {
14865 NDR_CHECK(ndr_push_align(ndr, 5));
14867 uint32_t _flags_save_string = ndr->flags;
14868 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14869 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor_name));
14870 ndr->flags = _flags_save_string;
14872 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
14874 if (ndr_flags & NDR_BUFFERS) {
14876 uint32_t _flags_save_string = ndr->flags;
14877 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14878 if (r->print_processor_name) {
14879 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->print_processor_name));
14880 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor_name));
14882 ndr->flags = _flags_save_string;
14885 return NDR_ERR_SUCCESS;
14888 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcessorInfo1 *r)
14890 uint32_t _ptr_print_processor_name;
14891 TALLOC_CTX *_mem_save_print_processor_name_0;
14892 if (ndr_flags & NDR_SCALARS) {
14893 NDR_CHECK(ndr_pull_align(ndr, 5));
14895 uint32_t _flags_save_string = ndr->flags;
14896 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14897 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor_name));
14898 if (_ptr_print_processor_name) {
14899 NDR_PULL_ALLOC(ndr, r->print_processor_name);
14900 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor_name, _ptr_print_processor_name));
14902 r->print_processor_name = NULL;
14904 ndr->flags = _flags_save_string;
14906 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
14908 if (ndr_flags & NDR_BUFFERS) {
14910 uint32_t _flags_save_string = ndr->flags;
14911 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14912 if (r->print_processor_name) {
14913 uint32_t _relative_save_offset;
14914 _relative_save_offset = ndr->offset;
14915 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor_name));
14916 _mem_save_print_processor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14917 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor_name, 0);
14918 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor_name));
14919 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_name_0, 0);
14920 if (ndr->offset > ndr->relative_highest_offset) {
14921 ndr->relative_highest_offset = ndr->offset;
14923 ndr->offset = _relative_save_offset;
14925 ndr->flags = _flags_save_string;
14928 return NDR_ERR_SUCCESS;
14931 _PUBLIC_ void ndr_print_spoolss_PrintProcessorInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcessorInfo1 *r)
14933 ndr_print_struct(ndr, name, "spoolss_PrintProcessorInfo1");
14935 ndr_print_ptr(ndr, "print_processor_name", r->print_processor_name);
14937 if (r->print_processor_name) {
14938 ndr_print_string(ndr, "print_processor_name", r->print_processor_name);
14944 _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorInfo1(const struct spoolss_PrintProcessorInfo1 *r, struct smb_iconv_convenience *ic, int flags)
14946 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorInfo1, ic);
14949 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcessorInfo *r)
14951 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
14952 if (ndr_flags & NDR_SCALARS) {
14953 int level = ndr_push_get_switch_value(ndr, r);
14954 NDR_CHECK(ndr_push_union_align(ndr, 5));
14957 NDR_CHECK(ndr_push_align(ndr, 5));
14958 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14959 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr, NDR_SCALARS, &r->info1));
14967 if (ndr_flags & NDR_BUFFERS) {
14968 int level = ndr_push_get_switch_value(ndr, r);
14969 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
14972 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr, NDR_BUFFERS, &r->info1));
14980 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
14981 return NDR_ERR_SUCCESS;
14984 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcessorInfo *r)
14986 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
14988 level = ndr_pull_get_switch_value(ndr, r);
14989 if (ndr_flags & NDR_SCALARS) {
14990 NDR_CHECK(ndr_pull_union_align(ndr, 5));
14993 NDR_CHECK(ndr_pull_align(ndr, 5));
14994 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14995 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr, NDR_SCALARS, &r->info1));
15003 if (ndr_flags & NDR_BUFFERS) {
15004 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
15007 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr, NDR_BUFFERS, &r->info1));
15015 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
15016 return NDR_ERR_SUCCESS;
15019 _PUBLIC_ void ndr_print_spoolss_PrintProcessorInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcessorInfo *r)
15022 level = ndr_print_get_switch_value(ndr, r);
15023 ndr_print_union(ndr, name, level, "spoolss_PrintProcessorInfo");
15026 ndr_print_spoolss_PrintProcessorInfo1(ndr, "info1", &r->info1);
15035 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorDirectoryInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcessorDirectoryInfo1 *r)
15037 if (ndr_flags & NDR_SCALARS) {
15038 NDR_CHECK(ndr_push_align(ndr, 4));
15040 uint32_t _flags_save_string = ndr->flags;
15041 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15042 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->directory_name));
15043 ndr->flags = _flags_save_string;
15045 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
15047 if (ndr_flags & NDR_BUFFERS) {
15049 return NDR_ERR_SUCCESS;
15052 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorDirectoryInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcessorDirectoryInfo1 *r)
15054 if (ndr_flags & NDR_SCALARS) {
15055 NDR_CHECK(ndr_pull_align(ndr, 4));
15057 uint32_t _flags_save_string = ndr->flags;
15058 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15059 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->directory_name));
15060 ndr->flags = _flags_save_string;
15062 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
15064 if (ndr_flags & NDR_BUFFERS) {
15066 return NDR_ERR_SUCCESS;
15069 _PUBLIC_ void ndr_print_spoolss_PrintProcessorDirectoryInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcessorDirectoryInfo1 *r)
15071 ndr_print_struct(ndr, name, "spoolss_PrintProcessorDirectoryInfo1");
15073 ndr_print_string(ndr, "directory_name", r->directory_name);
15077 _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorDirectoryInfo1(const struct spoolss_PrintProcessorDirectoryInfo1 *r, struct smb_iconv_convenience *ic, int flags)
15079 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorDirectoryInfo1, ic);
15082 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorDirectoryInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcessorDirectoryInfo *r)
15084 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
15085 if (ndr_flags & NDR_SCALARS) {
15086 int level = ndr_push_get_switch_value(ndr, r);
15087 NDR_CHECK(ndr_push_union_align(ndr, 4));
15090 NDR_CHECK(ndr_push_align(ndr, 4));
15091 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15092 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
15096 NDR_CHECK(ndr_push_align(ndr, 4));
15097 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15098 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
15103 if (ndr_flags & NDR_BUFFERS) {
15104 int level = ndr_push_get_switch_value(ndr, r);
15105 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
15115 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
15116 return NDR_ERR_SUCCESS;
15119 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorDirectoryInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcessorDirectoryInfo *r)
15121 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
15123 level = ndr_pull_get_switch_value(ndr, r);
15124 if (ndr_flags & NDR_SCALARS) {
15125 NDR_CHECK(ndr_pull_union_align(ndr, 4));
15128 NDR_CHECK(ndr_pull_align(ndr, 4));
15129 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15130 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
15134 NDR_CHECK(ndr_pull_align(ndr, 4));
15135 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15136 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
15141 if (ndr_flags & NDR_BUFFERS) {
15142 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
15152 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
15153 return NDR_ERR_SUCCESS;
15156 _PUBLIC_ void ndr_print_spoolss_PrintProcessorDirectoryInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcessorDirectoryInfo *r)
15159 level = ndr_print_get_switch_value(ndr, r);
15160 ndr_print_union(ndr, name, level, "spoolss_PrintProcessorDirectoryInfo");
15163 ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr, "info1", &r->info1);
15167 ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr, "info1", &r->info1);
15173 _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorDirectoryInfo(const union spoolss_PrintProcessorDirectoryInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
15175 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorDirectoryInfo, ic);
15178 static enum ndr_err_code ndr_push_spoolss_DocumentInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DocumentInfo1 *r)
15180 if (ndr_flags & NDR_SCALARS) {
15181 NDR_CHECK(ndr_push_align(ndr, 5));
15182 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
15183 NDR_CHECK(ndr_push_unique_ptr(ndr, r->output_file));
15184 NDR_CHECK(ndr_push_unique_ptr(ndr, r->datatype));
15185 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
15187 if (ndr_flags & NDR_BUFFERS) {
15188 if (r->document_name) {
15189 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
15190 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
15191 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
15192 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15194 if (r->output_file) {
15195 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->output_file, CH_UTF16)));
15196 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
15197 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->output_file, CH_UTF16)));
15198 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->output_file, ndr_charset_length(r->output_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15201 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
15202 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
15203 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
15204 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->datatype, ndr_charset_length(r->datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15207 return NDR_ERR_SUCCESS;
15210 static enum ndr_err_code ndr_pull_spoolss_DocumentInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DocumentInfo1 *r)
15212 uint32_t _ptr_document_name;
15213 TALLOC_CTX *_mem_save_document_name_0;
15214 uint32_t _ptr_output_file;
15215 TALLOC_CTX *_mem_save_output_file_0;
15216 uint32_t _ptr_datatype;
15217 TALLOC_CTX *_mem_save_datatype_0;
15218 if (ndr_flags & NDR_SCALARS) {
15219 NDR_CHECK(ndr_pull_align(ndr, 5));
15220 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
15221 if (_ptr_document_name) {
15222 NDR_PULL_ALLOC(ndr, r->document_name);
15224 r->document_name = NULL;
15226 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_output_file));
15227 if (_ptr_output_file) {
15228 NDR_PULL_ALLOC(ndr, r->output_file);
15230 r->output_file = NULL;
15232 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
15233 if (_ptr_datatype) {
15234 NDR_PULL_ALLOC(ndr, r->datatype);
15236 r->datatype = NULL;
15238 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
15240 if (ndr_flags & NDR_BUFFERS) {
15241 if (r->document_name) {
15242 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15243 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
15244 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
15245 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
15246 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
15247 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));
15249 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
15250 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
15251 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
15253 if (r->output_file) {
15254 _mem_save_output_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
15255 NDR_PULL_SET_MEM_CTX(ndr, r->output_file, 0);
15256 NDR_CHECK(ndr_pull_array_size(ndr, &r->output_file));
15257 NDR_CHECK(ndr_pull_array_length(ndr, &r->output_file));
15258 if (ndr_get_array_length(ndr, &r->output_file) > ndr_get_array_size(ndr, &r->output_file)) {
15259 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));
15261 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->output_file), sizeof(uint16_t)));
15262 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->output_file, ndr_get_array_length(ndr, &r->output_file), sizeof(uint16_t), CH_UTF16));
15263 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_output_file_0, 0);
15266 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
15267 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
15268 NDR_CHECK(ndr_pull_array_size(ndr, &r->datatype));
15269 NDR_CHECK(ndr_pull_array_length(ndr, &r->datatype));
15270 if (ndr_get_array_length(ndr, &r->datatype) > ndr_get_array_size(ndr, &r->datatype)) {
15271 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));
15273 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t)));
15274 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->datatype, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t), CH_UTF16));
15275 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
15278 return NDR_ERR_SUCCESS;
15281 _PUBLIC_ void ndr_print_spoolss_DocumentInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DocumentInfo1 *r)
15283 ndr_print_struct(ndr, name, "spoolss_DocumentInfo1");
15285 ndr_print_ptr(ndr, "document_name", r->document_name);
15287 if (r->document_name) {
15288 ndr_print_string(ndr, "document_name", r->document_name);
15291 ndr_print_ptr(ndr, "output_file", r->output_file);
15293 if (r->output_file) {
15294 ndr_print_string(ndr, "output_file", r->output_file);
15297 ndr_print_ptr(ndr, "datatype", r->datatype);
15300 ndr_print_string(ndr, "datatype", r->datatype);
15306 static enum ndr_err_code ndr_push_spoolss_DocumentInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DocumentInfo *r)
15308 if (ndr_flags & NDR_SCALARS) {
15309 int level = ndr_push_get_switch_value(ndr, r);
15310 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
15311 NDR_CHECK(ndr_push_union_align(ndr, 5));
15314 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
15328 if (ndr_flags & NDR_BUFFERS) {
15329 int level = ndr_push_get_switch_value(ndr, r);
15333 NDR_CHECK(ndr_push_spoolss_DocumentInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
15348 return NDR_ERR_SUCCESS;
15351 static enum ndr_err_code ndr_pull_spoolss_DocumentInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DocumentInfo *r)
15355 TALLOC_CTX *_mem_save_info1_0;
15356 level = ndr_pull_get_switch_value(ndr, r);
15357 if (ndr_flags & NDR_SCALARS) {
15358 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
15359 if (_level != level) {
15360 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
15362 NDR_CHECK(ndr_pull_union_align(ndr, 5));
15365 uint32_t _ptr_info1;
15366 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
15368 NDR_PULL_ALLOC(ndr, r->info1);
15385 if (ndr_flags & NDR_BUFFERS) {
15389 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
15390 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
15391 NDR_CHECK(ndr_pull_spoolss_DocumentInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
15392 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
15407 return NDR_ERR_SUCCESS;
15410 _PUBLIC_ void ndr_print_spoolss_DocumentInfo(struct ndr_print *ndr, const char *name, const union spoolss_DocumentInfo *r)
15413 level = ndr_print_get_switch_value(ndr, r);
15414 ndr_print_union(ndr, name, level, "spoolss_DocumentInfo");
15417 ndr_print_ptr(ndr, "info1", r->info1);
15420 ndr_print_spoolss_DocumentInfo1(ndr, "info1", r->info1);
15437 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OSVersion(struct ndr_push *ndr, int ndr_flags, const struct spoolss_OSVersion *r)
15439 if (ndr_flags & NDR_SCALARS) {
15440 NDR_CHECK(ndr_push_align(ndr, 4));
15441 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_OSVersion(r, ndr->iconv_convenience, ndr->flags)));
15442 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->major));
15443 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minor));
15444 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
15445 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
15447 uint32_t _flags_save_string = ndr->flags;
15448 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15450 struct ndr_push *_ndr_extra_string;
15451 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
15452 NDR_CHECK(ndr_push_string(_ndr_extra_string, NDR_SCALARS, r->extra_string));
15453 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_extra_string, 0, 256));
15455 ndr->flags = _flags_save_string;
15457 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
15459 if (ndr_flags & NDR_BUFFERS) {
15461 return NDR_ERR_SUCCESS;
15464 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OSVersion(struct ndr_pull *ndr, int ndr_flags, struct spoolss_OSVersion *r)
15466 if (ndr_flags & NDR_SCALARS) {
15467 NDR_CHECK(ndr_pull_align(ndr, 4));
15468 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
15469 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->major));
15470 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minor));
15471 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
15472 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->platform_id));
15474 uint32_t _flags_save_string = ndr->flags;
15475 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15477 struct ndr_pull *_ndr_extra_string;
15478 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
15479 NDR_CHECK(ndr_pull_string(_ndr_extra_string, NDR_SCALARS, &r->extra_string));
15480 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_extra_string, 0, 256));
15482 ndr->flags = _flags_save_string;
15484 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
15486 if (ndr_flags & NDR_BUFFERS) {
15488 return NDR_ERR_SUCCESS;
15491 _PUBLIC_ void ndr_print_spoolss_OSVersion(struct ndr_print *ndr, const char *name, const struct spoolss_OSVersion *r)
15493 ndr_print_struct(ndr, name, "spoolss_OSVersion");
15495 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);
15496 ndr_print_uint32(ndr, "major", r->major);
15497 ndr_print_uint32(ndr, "minor", r->minor);
15498 ndr_print_uint32(ndr, "build", r->build);
15499 ndr_print_uint32(ndr, "platform_id", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->platform_id);
15500 ndr_print_string(ndr, "extra_string", r->extra_string);
15504 _PUBLIC_ size_t ndr_size_spoolss_OSVersion(const struct spoolss_OSVersion *r, struct smb_iconv_convenience *ic, int flags)
15506 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_OSVersion, ic);
15509 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OSVersionEx(struct ndr_push *ndr, int ndr_flags, const struct spoolss_OSVersionEx *r)
15511 if (ndr_flags & NDR_SCALARS) {
15512 NDR_CHECK(ndr_push_align(ndr, 4));
15513 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_OSVersionEx(r, ndr->iconv_convenience, ndr->flags)));
15514 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->major));
15515 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minor));
15516 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
15517 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
15519 uint32_t _flags_save_string = ndr->flags;
15520 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15522 struct ndr_push *_ndr_extra_string;
15523 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
15524 NDR_CHECK(ndr_push_string(_ndr_extra_string, NDR_SCALARS, r->extra_string));
15525 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_extra_string, 0, 256));
15527 ndr->flags = _flags_save_string;
15529 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->service_pack_major));
15530 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->service_pack_minor));
15531 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->suite_mask));
15532 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->product_type));
15533 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->reserved));
15534 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
15536 if (ndr_flags & NDR_BUFFERS) {
15538 return NDR_ERR_SUCCESS;
15541 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OSVersionEx(struct ndr_pull *ndr, int ndr_flags, struct spoolss_OSVersionEx *r)
15543 if (ndr_flags & NDR_SCALARS) {
15544 NDR_CHECK(ndr_pull_align(ndr, 4));
15545 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
15546 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->major));
15547 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minor));
15548 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
15549 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->platform_id));
15551 uint32_t _flags_save_string = ndr->flags;
15552 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15554 struct ndr_pull *_ndr_extra_string;
15555 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
15556 NDR_CHECK(ndr_pull_string(_ndr_extra_string, NDR_SCALARS, &r->extra_string));
15557 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_extra_string, 0, 256));
15559 ndr->flags = _flags_save_string;
15561 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->service_pack_major));
15562 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->service_pack_minor));
15563 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->suite_mask));
15564 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->product_type));
15565 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->reserved));
15566 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
15568 if (ndr_flags & NDR_BUFFERS) {
15570 return NDR_ERR_SUCCESS;
15573 _PUBLIC_ void ndr_print_spoolss_OSVersionEx(struct ndr_print *ndr, const char *name, const struct spoolss_OSVersionEx *r)
15575 ndr_print_struct(ndr, name, "spoolss_OSVersionEx");
15577 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);
15578 ndr_print_uint32(ndr, "major", r->major);
15579 ndr_print_uint32(ndr, "minor", r->minor);
15580 ndr_print_uint32(ndr, "build", r->build);
15581 ndr_print_uint32(ndr, "platform_id", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->platform_id);
15582 ndr_print_string(ndr, "extra_string", r->extra_string);
15583 ndr_print_uint16(ndr, "service_pack_major", r->service_pack_major);
15584 ndr_print_uint16(ndr, "service_pack_minor", r->service_pack_minor);
15585 ndr_print_uint16(ndr, "suite_mask", r->suite_mask);
15586 ndr_print_uint8(ndr, "product_type", r->product_type);
15587 ndr_print_uint8(ndr, "reserved", r->reserved);
15591 _PUBLIC_ size_t ndr_size_spoolss_OSVersionEx(const struct spoolss_OSVersionEx *r, struct smb_iconv_convenience *ic, int flags)
15593 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_OSVersionEx, ic);
15596 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterData(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrinterData *r)
15598 if (ndr_flags & NDR_SCALARS) {
15599 int level = ndr_push_get_switch_value(ndr, r);
15600 NDR_CHECK(ndr_push_union_align(ndr, 4));
15607 uint32_t _flags_save_string = ndr->flags;
15608 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15609 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->string));
15610 ndr->flags = _flags_save_string;
15616 uint32_t _flags_save_DATA_BLOB = ndr->flags;
15617 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
15618 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->binary));
15619 ndr->flags = _flags_save_DATA_BLOB;
15624 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->value));
15627 case REG_MULTI_SZ: {
15629 uint32_t _flags_save_string_array = ndr->flags;
15630 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15631 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string_array));
15632 ndr->flags = _flags_save_string_array;
15638 uint32_t _flags_save_DATA_BLOB = ndr->flags;
15639 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
15640 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->data));
15641 ndr->flags = _flags_save_DATA_BLOB;
15647 if (ndr_flags & NDR_BUFFERS) {
15648 int level = ndr_push_get_switch_value(ndr, r);
15670 return NDR_ERR_SUCCESS;
15673 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterData(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrinterData *r)
15676 level = ndr_pull_get_switch_value(ndr, r);
15677 if (ndr_flags & NDR_SCALARS) {
15678 NDR_CHECK(ndr_pull_union_align(ndr, 4));
15685 uint32_t _flags_save_string = ndr->flags;
15686 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15687 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->string));
15688 ndr->flags = _flags_save_string;
15694 uint32_t _flags_save_DATA_BLOB = ndr->flags;
15695 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
15696 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->binary));
15697 ndr->flags = _flags_save_DATA_BLOB;
15702 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->value));
15705 case REG_MULTI_SZ: {
15707 uint32_t _flags_save_string_array = ndr->flags;
15708 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15709 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string_array));
15710 ndr->flags = _flags_save_string_array;
15716 uint32_t _flags_save_DATA_BLOB = ndr->flags;
15717 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
15718 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->data));
15719 ndr->flags = _flags_save_DATA_BLOB;
15725 if (ndr_flags & NDR_BUFFERS) {
15747 return NDR_ERR_SUCCESS;
15750 _PUBLIC_ void ndr_print_spoolss_PrinterData(struct ndr_print *ndr, const char *name, const union spoolss_PrinterData *r)
15753 level = ndr_print_get_switch_value(ndr, r);
15754 ndr_print_union(ndr, name, level, "spoolss_PrinterData");
15760 ndr_print_string(ndr, "string", r->string);
15764 ndr_print_DATA_BLOB(ndr, "binary", r->binary);
15768 ndr_print_uint32(ndr, "value", r->value);
15772 ndr_print_string_array(ndr, "string_array", r->string_array);
15776 ndr_print_DATA_BLOB(ndr, "data", r->data);
15782 _PUBLIC_ size_t ndr_size_spoolss_PrinterData(const union spoolss_PrinterData *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
15784 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterData, ic);
15787 static enum ndr_err_code ndr_push_spoolss_FormFlags(struct ndr_push *ndr, int ndr_flags, enum spoolss_FormFlags r)
15789 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
15790 return NDR_ERR_SUCCESS;
15793 static enum ndr_err_code ndr_pull_spoolss_FormFlags(struct ndr_pull *ndr, int ndr_flags, enum spoolss_FormFlags *r)
15796 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
15798 return NDR_ERR_SUCCESS;
15801 _PUBLIC_ void ndr_print_spoolss_FormFlags(struct ndr_print *ndr, const char *name, enum spoolss_FormFlags r)
15803 const char *val = NULL;
15806 case SPOOLSS_FORM_USER: val = "SPOOLSS_FORM_USER"; break;
15807 case SPOOLSS_FORM_BUILTIN: val = "SPOOLSS_FORM_BUILTIN"; break;
15808 case SPOOLSS_FORM_PRINTER: val = "SPOOLSS_FORM_PRINTER"; break;
15810 ndr_print_enum(ndr, name, "ENUM", val, r);
15813 static enum ndr_err_code ndr_push_spoolss_FormSize(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormSize *r)
15815 if (ndr_flags & NDR_SCALARS) {
15816 NDR_CHECK(ndr_push_align(ndr, 4));
15817 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->width));
15818 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->height));
15819 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
15821 if (ndr_flags & NDR_BUFFERS) {
15823 return NDR_ERR_SUCCESS;
15826 static enum ndr_err_code ndr_pull_spoolss_FormSize(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormSize *r)
15828 if (ndr_flags & NDR_SCALARS) {
15829 NDR_CHECK(ndr_pull_align(ndr, 4));
15830 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->width));
15831 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->height));
15832 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
15834 if (ndr_flags & NDR_BUFFERS) {
15836 return NDR_ERR_SUCCESS;
15839 _PUBLIC_ void ndr_print_spoolss_FormSize(struct ndr_print *ndr, const char *name, const struct spoolss_FormSize *r)
15841 ndr_print_struct(ndr, name, "spoolss_FormSize");
15843 ndr_print_uint32(ndr, "width", r->width);
15844 ndr_print_uint32(ndr, "height", r->height);
15848 static enum ndr_err_code ndr_push_spoolss_FormArea(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormArea *r)
15850 if (ndr_flags & NDR_SCALARS) {
15851 NDR_CHECK(ndr_push_align(ndr, 4));
15852 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->left));
15853 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->top));
15854 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->right));
15855 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bottom));
15856 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
15858 if (ndr_flags & NDR_BUFFERS) {
15860 return NDR_ERR_SUCCESS;
15863 static enum ndr_err_code ndr_pull_spoolss_FormArea(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormArea *r)
15865 if (ndr_flags & NDR_SCALARS) {
15866 NDR_CHECK(ndr_pull_align(ndr, 4));
15867 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->left));
15868 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->top));
15869 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->right));
15870 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bottom));
15871 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
15873 if (ndr_flags & NDR_BUFFERS) {
15875 return NDR_ERR_SUCCESS;
15878 _PUBLIC_ void ndr_print_spoolss_FormArea(struct ndr_print *ndr, const char *name, const struct spoolss_FormArea *r)
15880 ndr_print_struct(ndr, name, "spoolss_FormArea");
15882 ndr_print_uint32(ndr, "left", r->left);
15883 ndr_print_uint32(ndr, "top", r->top);
15884 ndr_print_uint32(ndr, "right", r->right);
15885 ndr_print_uint32(ndr, "bottom", r->bottom);
15889 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormInfo1 *r)
15891 if (ndr_flags & NDR_SCALARS) {
15892 NDR_CHECK(ndr_push_align(ndr, 5));
15893 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
15895 uint32_t _flags_save_string = ndr->flags;
15896 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15897 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->form_name));
15898 ndr->flags = _flags_save_string;
15900 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15901 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15902 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
15904 if (ndr_flags & NDR_BUFFERS) {
15906 uint32_t _flags_save_string = ndr->flags;
15907 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15908 if (r->form_name) {
15909 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->form_name));
15910 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->form_name));
15912 ndr->flags = _flags_save_string;
15915 return NDR_ERR_SUCCESS;
15918 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormInfo1 *r)
15920 uint32_t _ptr_form_name;
15921 TALLOC_CTX *_mem_save_form_name_0;
15922 if (ndr_flags & NDR_SCALARS) {
15923 NDR_CHECK(ndr_pull_align(ndr, 5));
15924 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
15926 uint32_t _flags_save_string = ndr->flags;
15927 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15928 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
15929 if (_ptr_form_name) {
15930 NDR_PULL_ALLOC(ndr, r->form_name);
15931 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->form_name, _ptr_form_name));
15933 r->form_name = NULL;
15935 ndr->flags = _flags_save_string;
15937 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15938 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15939 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
15941 if (ndr_flags & NDR_BUFFERS) {
15943 uint32_t _flags_save_string = ndr->flags;
15944 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15945 if (r->form_name) {
15946 uint32_t _relative_save_offset;
15947 _relative_save_offset = ndr->offset;
15948 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->form_name));
15949 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15950 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
15951 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->form_name));
15952 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
15953 if (ndr->offset > ndr->relative_highest_offset) {
15954 ndr->relative_highest_offset = ndr->offset;
15956 ndr->offset = _relative_save_offset;
15958 ndr->flags = _flags_save_string;
15961 return NDR_ERR_SUCCESS;
15964 _PUBLIC_ void ndr_print_spoolss_FormInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_FormInfo1 *r)
15966 ndr_print_struct(ndr, name, "spoolss_FormInfo1");
15968 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
15969 ndr_print_ptr(ndr, "form_name", r->form_name);
15971 if (r->form_name) {
15972 ndr_print_string(ndr, "form_name", r->form_name);
15975 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
15976 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
15980 _PUBLIC_ size_t ndr_size_spoolss_FormInfo1(const struct spoolss_FormInfo1 *r, struct smb_iconv_convenience *ic, int flags)
15982 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo1, ic);
15985 static enum ndr_err_code ndr_push_spoolss_FormStringType(struct ndr_push *ndr, int ndr_flags, uint32_t r)
15987 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
15988 return NDR_ERR_SUCCESS;
15991 static enum ndr_err_code ndr_pull_spoolss_FormStringType(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
15994 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
15996 return NDR_ERR_SUCCESS;
15999 _PUBLIC_ void ndr_print_spoolss_FormStringType(struct ndr_print *ndr, const char *name, uint32_t r)
16001 ndr_print_uint32(ndr, name, r);
16003 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_NONE", SPOOLSS_FORM_STRING_TYPE_NONE, r);
16004 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_MUI_DLL", SPOOLSS_FORM_STRING_TYPE_MUI_DLL, r);
16005 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_LANG_PAIR", SPOOLSS_FORM_STRING_TYPE_LANG_PAIR, r);
16009 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormInfo2 *r)
16011 if (ndr_flags & NDR_SCALARS) {
16012 NDR_CHECK(ndr_push_align(ndr, 5));
16013 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
16015 uint32_t _flags_save_string = ndr->flags;
16016 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16017 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->form_name));
16018 ndr->flags = _flags_save_string;
16020 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
16021 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
16023 uint32_t _flags_save_string = ndr->flags;
16024 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
16025 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->keyword));
16026 ndr->flags = _flags_save_string;
16028 NDR_CHECK(ndr_push_spoolss_FormStringType(ndr, NDR_SCALARS, r->string_type));
16030 uint32_t _flags_save_string = ndr->flags;
16031 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16032 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->mui_dll));
16033 ndr->flags = _flags_save_string;
16035 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ressource_id));
16037 uint32_t _flags_save_string = ndr->flags;
16038 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16039 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->display_name));
16040 ndr->flags = _flags_save_string;
16042 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->lang_id));
16043 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
16045 if (ndr_flags & NDR_BUFFERS) {
16047 uint32_t _flags_save_string = ndr->flags;
16048 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16049 if (r->form_name) {
16050 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->form_name));
16051 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->form_name));
16053 ndr->flags = _flags_save_string;
16056 uint32_t _flags_save_string = ndr->flags;
16057 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
16059 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->keyword));
16060 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->keyword));
16062 ndr->flags = _flags_save_string;
16065 uint32_t _flags_save_string = ndr->flags;
16066 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16068 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->mui_dll));
16069 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->mui_dll));
16071 ndr->flags = _flags_save_string;
16074 uint32_t _flags_save_string = ndr->flags;
16075 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16076 if (r->display_name) {
16077 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->display_name));
16078 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->display_name));
16080 ndr->flags = _flags_save_string;
16083 return NDR_ERR_SUCCESS;
16086 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormInfo2 *r)
16088 uint32_t _ptr_form_name;
16089 TALLOC_CTX *_mem_save_form_name_0;
16090 uint32_t _ptr_keyword;
16091 TALLOC_CTX *_mem_save_keyword_0;
16092 uint32_t _ptr_mui_dll;
16093 TALLOC_CTX *_mem_save_mui_dll_0;
16094 uint32_t _ptr_display_name;
16095 TALLOC_CTX *_mem_save_display_name_0;
16096 if (ndr_flags & NDR_SCALARS) {
16097 NDR_CHECK(ndr_pull_align(ndr, 5));
16098 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
16100 uint32_t _flags_save_string = ndr->flags;
16101 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16102 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
16103 if (_ptr_form_name) {
16104 NDR_PULL_ALLOC(ndr, r->form_name);
16105 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->form_name, _ptr_form_name));
16107 r->form_name = NULL;
16109 ndr->flags = _flags_save_string;
16111 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
16112 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
16114 uint32_t _flags_save_string = ndr->flags;
16115 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
16116 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyword));
16117 if (_ptr_keyword) {
16118 NDR_PULL_ALLOC(ndr, r->keyword);
16119 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->keyword, _ptr_keyword));
16123 ndr->flags = _flags_save_string;
16125 NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr, NDR_SCALARS, &r->string_type));
16127 uint32_t _flags_save_string = ndr->flags;
16128 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16129 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_mui_dll));
16130 if (_ptr_mui_dll) {
16131 NDR_PULL_ALLOC(ndr, r->mui_dll);
16132 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->mui_dll, _ptr_mui_dll));
16136 ndr->flags = _flags_save_string;
16138 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ressource_id));
16140 uint32_t _flags_save_string = ndr->flags;
16141 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16142 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_display_name));
16143 if (_ptr_display_name) {
16144 NDR_PULL_ALLOC(ndr, r->display_name);
16145 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->display_name, _ptr_display_name));
16147 r->display_name = NULL;
16149 ndr->flags = _flags_save_string;
16151 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->lang_id));
16152 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
16154 if (ndr_flags & NDR_BUFFERS) {
16156 uint32_t _flags_save_string = ndr->flags;
16157 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16158 if (r->form_name) {
16159 uint32_t _relative_save_offset;
16160 _relative_save_offset = ndr->offset;
16161 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->form_name));
16162 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16163 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
16164 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->form_name));
16165 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
16166 if (ndr->offset > ndr->relative_highest_offset) {
16167 ndr->relative_highest_offset = ndr->offset;
16169 ndr->offset = _relative_save_offset;
16171 ndr->flags = _flags_save_string;
16174 uint32_t _flags_save_string = ndr->flags;
16175 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
16177 uint32_t _relative_save_offset;
16178 _relative_save_offset = ndr->offset;
16179 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->keyword));
16180 _mem_save_keyword_0 = NDR_PULL_GET_MEM_CTX(ndr);
16181 NDR_PULL_SET_MEM_CTX(ndr, r->keyword, 0);
16182 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->keyword));
16183 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyword_0, 0);
16184 if (ndr->offset > ndr->relative_highest_offset) {
16185 ndr->relative_highest_offset = ndr->offset;
16187 ndr->offset = _relative_save_offset;
16189 ndr->flags = _flags_save_string;
16192 uint32_t _flags_save_string = ndr->flags;
16193 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16195 uint32_t _relative_save_offset;
16196 _relative_save_offset = ndr->offset;
16197 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->mui_dll));
16198 _mem_save_mui_dll_0 = NDR_PULL_GET_MEM_CTX(ndr);
16199 NDR_PULL_SET_MEM_CTX(ndr, r->mui_dll, 0);
16200 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->mui_dll));
16201 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_mui_dll_0, 0);
16202 if (ndr->offset > ndr->relative_highest_offset) {
16203 ndr->relative_highest_offset = ndr->offset;
16205 ndr->offset = _relative_save_offset;
16207 ndr->flags = _flags_save_string;
16210 uint32_t _flags_save_string = ndr->flags;
16211 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16212 if (r->display_name) {
16213 uint32_t _relative_save_offset;
16214 _relative_save_offset = ndr->offset;
16215 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->display_name));
16216 _mem_save_display_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16217 NDR_PULL_SET_MEM_CTX(ndr, r->display_name, 0);
16218 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->display_name));
16219 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_display_name_0, 0);
16220 if (ndr->offset > ndr->relative_highest_offset) {
16221 ndr->relative_highest_offset = ndr->offset;
16223 ndr->offset = _relative_save_offset;
16225 ndr->flags = _flags_save_string;
16228 return NDR_ERR_SUCCESS;
16231 _PUBLIC_ void ndr_print_spoolss_FormInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_FormInfo2 *r)
16233 ndr_print_struct(ndr, name, "spoolss_FormInfo2");
16235 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
16236 ndr_print_ptr(ndr, "form_name", r->form_name);
16238 if (r->form_name) {
16239 ndr_print_string(ndr, "form_name", r->form_name);
16242 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
16243 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
16244 ndr_print_ptr(ndr, "keyword", r->keyword);
16247 ndr_print_string(ndr, "keyword", r->keyword);
16250 ndr_print_spoolss_FormStringType(ndr, "string_type", r->string_type);
16251 ndr_print_ptr(ndr, "mui_dll", r->mui_dll);
16254 ndr_print_string(ndr, "mui_dll", r->mui_dll);
16257 ndr_print_uint32(ndr, "ressource_id", r->ressource_id);
16258 ndr_print_ptr(ndr, "display_name", r->display_name);
16260 if (r->display_name) {
16261 ndr_print_string(ndr, "display_name", r->display_name);
16264 ndr_print_uint32(ndr, "lang_id", r->lang_id);
16268 _PUBLIC_ size_t ndr_size_spoolss_FormInfo2(const struct spoolss_FormInfo2 *r, struct smb_iconv_convenience *ic, int flags)
16270 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo2, ic);
16273 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_FormInfo *r)
16275 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
16276 if (ndr_flags & NDR_SCALARS) {
16277 int level = ndr_push_get_switch_value(ndr, r);
16278 NDR_CHECK(ndr_push_union_align(ndr, 5));
16281 NDR_CHECK(ndr_push_align(ndr, 5));
16282 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16283 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr, NDR_SCALARS, &r->info1));
16287 NDR_CHECK(ndr_push_align(ndr, 5));
16288 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16289 NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr, NDR_SCALARS, &r->info2));
16297 if (ndr_flags & NDR_BUFFERS) {
16298 int level = ndr_push_get_switch_value(ndr, r);
16299 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
16302 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr, NDR_BUFFERS, &r->info1));
16306 NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr, NDR_BUFFERS, &r->info2));
16314 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
16315 return NDR_ERR_SUCCESS;
16318 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_FormInfo *r)
16320 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
16322 level = ndr_pull_get_switch_value(ndr, r);
16323 if (ndr_flags & NDR_SCALARS) {
16324 NDR_CHECK(ndr_pull_union_align(ndr, 5));
16327 NDR_CHECK(ndr_pull_align(ndr, 5));
16328 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16329 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr, NDR_SCALARS, &r->info1));
16333 NDR_CHECK(ndr_pull_align(ndr, 5));
16334 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16335 NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr, NDR_SCALARS, &r->info2));
16343 if (ndr_flags & NDR_BUFFERS) {
16344 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
16347 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr, NDR_BUFFERS, &r->info1));
16351 NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr, NDR_BUFFERS, &r->info2));
16359 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
16360 return NDR_ERR_SUCCESS;
16363 _PUBLIC_ void ndr_print_spoolss_FormInfo(struct ndr_print *ndr, const char *name, const union spoolss_FormInfo *r)
16366 level = ndr_print_get_switch_value(ndr, r);
16367 ndr_print_union(ndr, name, level, "spoolss_FormInfo");
16370 ndr_print_spoolss_FormInfo1(ndr, "info1", &r->info1);
16374 ndr_print_spoolss_FormInfo2(ndr, "info2", &r->info2);
16383 _PUBLIC_ size_t ndr_size_spoolss_FormInfo(const union spoolss_FormInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
16385 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo, ic);
16388 static enum ndr_err_code ndr_push_spoolss_AddFormInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddFormInfo1 *r)
16390 if (ndr_flags & NDR_SCALARS) {
16391 NDR_CHECK(ndr_push_align(ndr, 5));
16392 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
16393 NDR_CHECK(ndr_push_unique_ptr(ndr, r->form_name));
16394 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
16395 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
16396 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
16398 if (ndr_flags & NDR_BUFFERS) {
16399 if (r->form_name) {
16400 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
16401 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
16402 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
16403 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->form_name, ndr_charset_length(r->form_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16406 return NDR_ERR_SUCCESS;
16409 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddFormInfo1 *r)
16411 uint32_t _ptr_form_name;
16412 TALLOC_CTX *_mem_save_form_name_0;
16413 if (ndr_flags & NDR_SCALARS) {
16414 NDR_CHECK(ndr_pull_align(ndr, 5));
16415 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
16416 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
16417 if (_ptr_form_name) {
16418 NDR_PULL_ALLOC(ndr, r->form_name);
16420 r->form_name = NULL;
16422 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
16423 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
16424 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
16426 if (ndr_flags & NDR_BUFFERS) {
16427 if (r->form_name) {
16428 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16429 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
16430 NDR_CHECK(ndr_pull_array_size(ndr, &r->form_name));
16431 NDR_CHECK(ndr_pull_array_length(ndr, &r->form_name));
16432 if (ndr_get_array_length(ndr, &r->form_name) > ndr_get_array_size(ndr, &r->form_name)) {
16433 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));
16435 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t)));
16436 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->form_name, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t), CH_UTF16));
16437 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
16440 return NDR_ERR_SUCCESS;
16443 _PUBLIC_ void ndr_print_spoolss_AddFormInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_AddFormInfo1 *r)
16445 ndr_print_struct(ndr, name, "spoolss_AddFormInfo1");
16447 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
16448 ndr_print_ptr(ndr, "form_name", r->form_name);
16450 if (r->form_name) {
16451 ndr_print_string(ndr, "form_name", r->form_name);
16454 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
16455 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
16459 static enum ndr_err_code ndr_push_spoolss_AddFormInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddFormInfo2 *r)
16461 if (ndr_flags & NDR_SCALARS) {
16462 NDR_CHECK(ndr_push_align(ndr, 5));
16463 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
16464 NDR_CHECK(ndr_push_unique_ptr(ndr, r->form_name));
16465 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
16466 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
16467 NDR_CHECK(ndr_push_unique_ptr(ndr, r->keyword));
16468 NDR_CHECK(ndr_push_spoolss_FormStringType(ndr, NDR_SCALARS, r->string_type));
16469 NDR_CHECK(ndr_push_unique_ptr(ndr, r->mui_dll));
16470 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ressource_id));
16471 NDR_CHECK(ndr_push_unique_ptr(ndr, r->display_name));
16472 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->lang_id));
16473 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
16475 if (ndr_flags & NDR_BUFFERS) {
16476 if (r->form_name) {
16477 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
16478 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
16479 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
16480 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->form_name, ndr_charset_length(r->form_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16483 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->keyword, CH_DOS)));
16484 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
16485 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->keyword, CH_DOS)));
16486 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->keyword, ndr_charset_length(r->keyword, CH_DOS), sizeof(uint8_t), CH_DOS));
16489 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->mui_dll, CH_UTF16)));
16490 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
16491 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->mui_dll, CH_UTF16)));
16492 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->mui_dll, ndr_charset_length(r->mui_dll, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16494 if (r->display_name) {
16495 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->display_name, CH_UTF16)));
16496 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
16497 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->display_name, CH_UTF16)));
16498 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->display_name, ndr_charset_length(r->display_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16501 return NDR_ERR_SUCCESS;
16504 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddFormInfo2 *r)
16506 uint32_t _ptr_form_name;
16507 TALLOC_CTX *_mem_save_form_name_0;
16508 uint32_t _ptr_keyword;
16509 TALLOC_CTX *_mem_save_keyword_0;
16510 uint32_t _ptr_mui_dll;
16511 TALLOC_CTX *_mem_save_mui_dll_0;
16512 uint32_t _ptr_display_name;
16513 TALLOC_CTX *_mem_save_display_name_0;
16514 if (ndr_flags & NDR_SCALARS) {
16515 NDR_CHECK(ndr_pull_align(ndr, 5));
16516 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
16517 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
16518 if (_ptr_form_name) {
16519 NDR_PULL_ALLOC(ndr, r->form_name);
16521 r->form_name = NULL;
16523 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
16524 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
16525 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyword));
16526 if (_ptr_keyword) {
16527 NDR_PULL_ALLOC(ndr, r->keyword);
16531 NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr, NDR_SCALARS, &r->string_type));
16532 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_mui_dll));
16533 if (_ptr_mui_dll) {
16534 NDR_PULL_ALLOC(ndr, r->mui_dll);
16538 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ressource_id));
16539 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_display_name));
16540 if (_ptr_display_name) {
16541 NDR_PULL_ALLOC(ndr, r->display_name);
16543 r->display_name = NULL;
16545 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->lang_id));
16546 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
16548 if (ndr_flags & NDR_BUFFERS) {
16549 if (r->form_name) {
16550 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16551 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
16552 NDR_CHECK(ndr_pull_array_size(ndr, &r->form_name));
16553 NDR_CHECK(ndr_pull_array_length(ndr, &r->form_name));
16554 if (ndr_get_array_length(ndr, &r->form_name) > ndr_get_array_size(ndr, &r->form_name)) {
16555 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));
16557 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t)));
16558 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->form_name, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t), CH_UTF16));
16559 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
16562 _mem_save_keyword_0 = NDR_PULL_GET_MEM_CTX(ndr);
16563 NDR_PULL_SET_MEM_CTX(ndr, r->keyword, 0);
16564 NDR_CHECK(ndr_pull_array_size(ndr, &r->keyword));
16565 NDR_CHECK(ndr_pull_array_length(ndr, &r->keyword));
16566 if (ndr_get_array_length(ndr, &r->keyword) > ndr_get_array_size(ndr, &r->keyword)) {
16567 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));
16569 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->keyword), sizeof(uint8_t)));
16570 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->keyword, ndr_get_array_length(ndr, &r->keyword), sizeof(uint8_t), CH_DOS));
16571 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyword_0, 0);
16574 _mem_save_mui_dll_0 = NDR_PULL_GET_MEM_CTX(ndr);
16575 NDR_PULL_SET_MEM_CTX(ndr, r->mui_dll, 0);
16576 NDR_CHECK(ndr_pull_array_size(ndr, &r->mui_dll));
16577 NDR_CHECK(ndr_pull_array_length(ndr, &r->mui_dll));
16578 if (ndr_get_array_length(ndr, &r->mui_dll) > ndr_get_array_size(ndr, &r->mui_dll)) {
16579 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));
16581 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->mui_dll), sizeof(uint16_t)));
16582 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->mui_dll, ndr_get_array_length(ndr, &r->mui_dll), sizeof(uint16_t), CH_UTF16));
16583 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_mui_dll_0, 0);
16585 if (r->display_name) {
16586 _mem_save_display_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16587 NDR_PULL_SET_MEM_CTX(ndr, r->display_name, 0);
16588 NDR_CHECK(ndr_pull_array_size(ndr, &r->display_name));
16589 NDR_CHECK(ndr_pull_array_length(ndr, &r->display_name));
16590 if (ndr_get_array_length(ndr, &r->display_name) > ndr_get_array_size(ndr, &r->display_name)) {
16591 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));
16593 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->display_name), sizeof(uint16_t)));
16594 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->display_name, ndr_get_array_length(ndr, &r->display_name), sizeof(uint16_t), CH_UTF16));
16595 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_display_name_0, 0);
16598 return NDR_ERR_SUCCESS;
16601 _PUBLIC_ void ndr_print_spoolss_AddFormInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_AddFormInfo2 *r)
16603 ndr_print_struct(ndr, name, "spoolss_AddFormInfo2");
16605 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
16606 ndr_print_ptr(ndr, "form_name", r->form_name);
16608 if (r->form_name) {
16609 ndr_print_string(ndr, "form_name", r->form_name);
16612 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
16613 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
16614 ndr_print_ptr(ndr, "keyword", r->keyword);
16617 ndr_print_string(ndr, "keyword", r->keyword);
16620 ndr_print_spoolss_FormStringType(ndr, "string_type", r->string_type);
16621 ndr_print_ptr(ndr, "mui_dll", r->mui_dll);
16624 ndr_print_string(ndr, "mui_dll", r->mui_dll);
16627 ndr_print_uint32(ndr, "ressource_id", r->ressource_id);
16628 ndr_print_ptr(ndr, "display_name", r->display_name);
16630 if (r->display_name) {
16631 ndr_print_string(ndr, "display_name", r->display_name);
16634 ndr_print_uint32(ndr, "lang_id", r->lang_id);
16638 static enum ndr_err_code ndr_push_spoolss_AddFormInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_AddFormInfo *r)
16640 if (ndr_flags & NDR_SCALARS) {
16641 int level = ndr_push_get_switch_value(ndr, r);
16642 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
16643 NDR_CHECK(ndr_push_union_align(ndr, 5));
16646 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
16650 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
16654 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
16657 if (ndr_flags & NDR_BUFFERS) {
16658 int level = ndr_push_get_switch_value(ndr, r);
16662 NDR_CHECK(ndr_push_spoolss_AddFormInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
16668 NDR_CHECK(ndr_push_spoolss_AddFormInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
16673 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
16676 return NDR_ERR_SUCCESS;
16679 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_AddFormInfo *r)
16683 TALLOC_CTX *_mem_save_info1_0;
16684 TALLOC_CTX *_mem_save_info2_0;
16685 level = ndr_pull_get_switch_value(ndr, r);
16686 if (ndr_flags & NDR_SCALARS) {
16687 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
16688 if (_level != level) {
16689 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
16691 NDR_CHECK(ndr_pull_union_align(ndr, 5));
16694 uint32_t _ptr_info1;
16695 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
16697 NDR_PULL_ALLOC(ndr, r->info1);
16704 uint32_t _ptr_info2;
16705 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
16707 NDR_PULL_ALLOC(ndr, r->info2);
16714 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
16717 if (ndr_flags & NDR_BUFFERS) {
16721 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
16722 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
16723 NDR_CHECK(ndr_pull_spoolss_AddFormInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
16724 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
16730 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
16731 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
16732 NDR_CHECK(ndr_pull_spoolss_AddFormInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
16733 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
16738 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
16741 return NDR_ERR_SUCCESS;
16744 _PUBLIC_ void ndr_print_spoolss_AddFormInfo(struct ndr_print *ndr, const char *name, const union spoolss_AddFormInfo *r)
16747 level = ndr_print_get_switch_value(ndr, r);
16748 ndr_print_union(ndr, name, level, "spoolss_AddFormInfo");
16751 ndr_print_ptr(ndr, "info1", r->info1);
16754 ndr_print_spoolss_AddFormInfo1(ndr, "info1", r->info1);
16760 ndr_print_ptr(ndr, "info2", r->info2);
16763 ndr_print_spoolss_AddFormInfo2(ndr, "info2", r->info2);
16769 ndr_print_bad_level(ndr, name, level);
16773 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo1 *r)
16775 if (ndr_flags & NDR_SCALARS) {
16776 NDR_CHECK(ndr_push_align(ndr, 5));
16778 uint32_t _flags_save_string = ndr->flags;
16779 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16780 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
16781 ndr->flags = _flags_save_string;
16783 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
16785 if (ndr_flags & NDR_BUFFERS) {
16787 uint32_t _flags_save_string = ndr->flags;
16788 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16789 if (r->port_name) {
16790 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->port_name));
16791 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
16793 ndr->flags = _flags_save_string;
16796 return NDR_ERR_SUCCESS;
16799 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo1 *r)
16801 uint32_t _ptr_port_name;
16802 TALLOC_CTX *_mem_save_port_name_0;
16803 if (ndr_flags & NDR_SCALARS) {
16804 NDR_CHECK(ndr_pull_align(ndr, 5));
16806 uint32_t _flags_save_string = ndr->flags;
16807 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16808 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
16809 if (_ptr_port_name) {
16810 NDR_PULL_ALLOC(ndr, r->port_name);
16811 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
16813 r->port_name = NULL;
16815 ndr->flags = _flags_save_string;
16817 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
16819 if (ndr_flags & NDR_BUFFERS) {
16821 uint32_t _flags_save_string = ndr->flags;
16822 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16823 if (r->port_name) {
16824 uint32_t _relative_save_offset;
16825 _relative_save_offset = ndr->offset;
16826 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
16827 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16828 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
16829 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
16830 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
16831 if (ndr->offset > ndr->relative_highest_offset) {
16832 ndr->relative_highest_offset = ndr->offset;
16834 ndr->offset = _relative_save_offset;
16836 ndr->flags = _flags_save_string;
16839 return NDR_ERR_SUCCESS;
16842 _PUBLIC_ void ndr_print_spoolss_PortInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo1 *r)
16844 ndr_print_struct(ndr, name, "spoolss_PortInfo1");
16846 ndr_print_ptr(ndr, "port_name", r->port_name);
16848 if (r->port_name) {
16849 ndr_print_string(ndr, "port_name", r->port_name);
16855 _PUBLIC_ size_t ndr_size_spoolss_PortInfo1(const struct spoolss_PortInfo1 *r, struct smb_iconv_convenience *ic, int flags)
16857 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfo1, ic);
16860 static enum ndr_err_code ndr_push_spoolss_PortType(struct ndr_push *ndr, int ndr_flags, uint32_t r)
16862 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
16863 return NDR_ERR_SUCCESS;
16866 static enum ndr_err_code ndr_pull_spoolss_PortType(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
16869 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
16871 return NDR_ERR_SUCCESS;
16874 _PUBLIC_ void ndr_print_spoolss_PortType(struct ndr_print *ndr, const char *name, uint32_t r)
16876 ndr_print_uint32(ndr, name, r);
16878 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_WRITE", SPOOLSS_PORT_TYPE_WRITE, r);
16879 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_READ", SPOOLSS_PORT_TYPE_READ, r);
16880 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_REDIRECTED", SPOOLSS_PORT_TYPE_REDIRECTED, r);
16881 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_NET_ATTACHED", SPOOLSS_PORT_TYPE_NET_ATTACHED, r);
16885 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo2 *r)
16887 if (ndr_flags & NDR_SCALARS) {
16888 NDR_CHECK(ndr_push_align(ndr, 5));
16890 uint32_t _flags_save_string = ndr->flags;
16891 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16892 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
16893 ndr->flags = _flags_save_string;
16896 uint32_t _flags_save_string = ndr->flags;
16897 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16898 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
16899 ndr->flags = _flags_save_string;
16902 uint32_t _flags_save_string = ndr->flags;
16903 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16904 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->description));
16905 ndr->flags = _flags_save_string;
16907 NDR_CHECK(ndr_push_spoolss_PortType(ndr, NDR_SCALARS, r->port_type));
16908 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
16909 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
16911 if (ndr_flags & NDR_BUFFERS) {
16913 uint32_t _flags_save_string = ndr->flags;
16914 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16915 if (r->port_name) {
16916 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->port_name));
16917 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
16919 ndr->flags = _flags_save_string;
16922 uint32_t _flags_save_string = ndr->flags;
16923 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16924 if (r->monitor_name) {
16925 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
16926 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
16928 ndr->flags = _flags_save_string;
16931 uint32_t _flags_save_string = ndr->flags;
16932 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16933 if (r->description) {
16934 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->description));
16935 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->description));
16937 ndr->flags = _flags_save_string;
16940 return NDR_ERR_SUCCESS;
16943 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo2 *r)
16945 uint32_t _ptr_port_name;
16946 TALLOC_CTX *_mem_save_port_name_0;
16947 uint32_t _ptr_monitor_name;
16948 TALLOC_CTX *_mem_save_monitor_name_0;
16949 uint32_t _ptr_description;
16950 TALLOC_CTX *_mem_save_description_0;
16951 if (ndr_flags & NDR_SCALARS) {
16952 NDR_CHECK(ndr_pull_align(ndr, 5));
16954 uint32_t _flags_save_string = ndr->flags;
16955 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16956 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
16957 if (_ptr_port_name) {
16958 NDR_PULL_ALLOC(ndr, r->port_name);
16959 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
16961 r->port_name = NULL;
16963 ndr->flags = _flags_save_string;
16966 uint32_t _flags_save_string = ndr->flags;
16967 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16968 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
16969 if (_ptr_monitor_name) {
16970 NDR_PULL_ALLOC(ndr, r->monitor_name);
16971 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
16973 r->monitor_name = NULL;
16975 ndr->flags = _flags_save_string;
16978 uint32_t _flags_save_string = ndr->flags;
16979 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16980 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
16981 if (_ptr_description) {
16982 NDR_PULL_ALLOC(ndr, r->description);
16983 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->description, _ptr_description));
16985 r->description = NULL;
16987 ndr->flags = _flags_save_string;
16989 NDR_CHECK(ndr_pull_spoolss_PortType(ndr, NDR_SCALARS, &r->port_type));
16990 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
16991 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
16993 if (ndr_flags & NDR_BUFFERS) {
16995 uint32_t _flags_save_string = ndr->flags;
16996 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16997 if (r->port_name) {
16998 uint32_t _relative_save_offset;
16999 _relative_save_offset = ndr->offset;
17000 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
17001 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17002 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
17003 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
17004 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
17005 if (ndr->offset > ndr->relative_highest_offset) {
17006 ndr->relative_highest_offset = ndr->offset;
17008 ndr->offset = _relative_save_offset;
17010 ndr->flags = _flags_save_string;
17013 uint32_t _flags_save_string = ndr->flags;
17014 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17015 if (r->monitor_name) {
17016 uint32_t _relative_save_offset;
17017 _relative_save_offset = ndr->offset;
17018 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
17019 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17020 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
17021 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
17022 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
17023 if (ndr->offset > ndr->relative_highest_offset) {
17024 ndr->relative_highest_offset = ndr->offset;
17026 ndr->offset = _relative_save_offset;
17028 ndr->flags = _flags_save_string;
17031 uint32_t _flags_save_string = ndr->flags;
17032 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17033 if (r->description) {
17034 uint32_t _relative_save_offset;
17035 _relative_save_offset = ndr->offset;
17036 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->description));
17037 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
17038 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
17039 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->description));
17040 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
17041 if (ndr->offset > ndr->relative_highest_offset) {
17042 ndr->relative_highest_offset = ndr->offset;
17044 ndr->offset = _relative_save_offset;
17046 ndr->flags = _flags_save_string;
17049 return NDR_ERR_SUCCESS;
17052 _PUBLIC_ void ndr_print_spoolss_PortInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo2 *r)
17054 ndr_print_struct(ndr, name, "spoolss_PortInfo2");
17056 ndr_print_ptr(ndr, "port_name", r->port_name);
17058 if (r->port_name) {
17059 ndr_print_string(ndr, "port_name", r->port_name);
17062 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
17064 if (r->monitor_name) {
17065 ndr_print_string(ndr, "monitor_name", r->monitor_name);
17068 ndr_print_ptr(ndr, "description", r->description);
17070 if (r->description) {
17071 ndr_print_string(ndr, "description", r->description);
17074 ndr_print_spoolss_PortType(ndr, "port_type", r->port_type);
17075 ndr_print_uint32(ndr, "reserved", r->reserved);
17079 _PUBLIC_ size_t ndr_size_spoolss_PortInfo2(const struct spoolss_PortInfo2 *r, struct smb_iconv_convenience *ic, int flags)
17081 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfo2, ic);
17084 static enum ndr_err_code ndr_push_spoolss_PortStatus(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortStatus r)
17086 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
17087 return NDR_ERR_SUCCESS;
17090 static enum ndr_err_code ndr_pull_spoolss_PortStatus(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortStatus *r)
17093 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
17095 return NDR_ERR_SUCCESS;
17098 _PUBLIC_ void ndr_print_spoolss_PortStatus(struct ndr_print *ndr, const char *name, enum spoolss_PortStatus r)
17100 const char *val = NULL;
17103 case PORT_STATUS_CLEAR: val = "PORT_STATUS_CLEAR"; break;
17104 case PORT_STATUS_OFFLINE: val = "PORT_STATUS_OFFLINE"; break;
17105 case PORT_STATUS_PAPER_JAM: val = "PORT_STATUS_PAPER_JAM"; break;
17106 case PORT_STATUS_PAPER_OUT: val = "PORT_STATUS_PAPER_OUT"; break;
17107 case PORT_STATUS_OUTPUT_BIN_FULL: val = "PORT_STATUS_OUTPUT_BIN_FULL"; break;
17108 case PORT_STATUS_PAPER_PROBLEM: val = "PORT_STATUS_PAPER_PROBLEM"; break;
17109 case PORT_STATUS_NO_TONER: val = "PORT_STATUS_NO_TONER"; break;
17110 case PORT_STATUS_DOOR_OPEN: val = "PORT_STATUS_DOOR_OPEN"; break;
17111 case PORT_STATUS_USER_INTERVENTION: val = "PORT_STATUS_USER_INTERVENTION"; break;
17112 case PORT_STATUS_OUT_OF_MEMORY: val = "PORT_STATUS_OUT_OF_MEMORY"; break;
17113 case PORT_STATUS_TONER_LOW: val = "PORT_STATUS_TONER_LOW"; break;
17114 case PORT_STATUS_WARMING_UP: val = "PORT_STATUS_WARMING_UP"; break;
17115 case PORT_STATUS_POWER_SAVE: val = "PORT_STATUS_POWER_SAVE"; break;
17117 ndr_print_enum(ndr, name, "ENUM", val, r);
17120 static enum ndr_err_code ndr_push_spoolss_PortSeverity(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortSeverity r)
17122 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
17123 return NDR_ERR_SUCCESS;
17126 static enum ndr_err_code ndr_pull_spoolss_PortSeverity(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortSeverity *r)
17129 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
17131 return NDR_ERR_SUCCESS;
17134 _PUBLIC_ void ndr_print_spoolss_PortSeverity(struct ndr_print *ndr, const char *name, enum spoolss_PortSeverity r)
17136 const char *val = NULL;
17139 case PORT_STATUS_TYPE_ERROR: val = "PORT_STATUS_TYPE_ERROR"; break;
17140 case PORT_STATUS_TYPE_WARNING: val = "PORT_STATUS_TYPE_WARNING"; break;
17141 case PORT_STATUS_TYPE_INFO: val = "PORT_STATUS_TYPE_INFO"; break;
17143 ndr_print_enum(ndr, name, "ENUM", val, r);
17146 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo3 *r)
17148 if (ndr_flags & NDR_SCALARS) {
17149 NDR_CHECK(ndr_push_align(ndr, 5));
17150 NDR_CHECK(ndr_push_spoolss_PortStatus(ndr, NDR_SCALARS, r->status));
17152 uint32_t _flags_save_string = ndr->flags;
17153 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17154 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->status_string));
17155 ndr->flags = _flags_save_string;
17157 NDR_CHECK(ndr_push_spoolss_PortSeverity(ndr, NDR_SCALARS, r->severity));
17158 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17160 if (ndr_flags & NDR_BUFFERS) {
17162 uint32_t _flags_save_string = ndr->flags;
17163 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17164 if (r->status_string) {
17165 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->status_string));
17166 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->status_string));
17168 ndr->flags = _flags_save_string;
17171 return NDR_ERR_SUCCESS;
17174 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo3 *r)
17176 uint32_t _ptr_status_string;
17177 TALLOC_CTX *_mem_save_status_string_0;
17178 if (ndr_flags & NDR_SCALARS) {
17179 NDR_CHECK(ndr_pull_align(ndr, 5));
17180 NDR_CHECK(ndr_pull_spoolss_PortStatus(ndr, NDR_SCALARS, &r->status));
17182 uint32_t _flags_save_string = ndr->flags;
17183 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17184 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_status_string));
17185 if (_ptr_status_string) {
17186 NDR_PULL_ALLOC(ndr, r->status_string);
17187 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->status_string, _ptr_status_string));
17189 r->status_string = NULL;
17191 ndr->flags = _flags_save_string;
17193 NDR_CHECK(ndr_pull_spoolss_PortSeverity(ndr, NDR_SCALARS, &r->severity));
17194 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17196 if (ndr_flags & NDR_BUFFERS) {
17198 uint32_t _flags_save_string = ndr->flags;
17199 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17200 if (r->status_string) {
17201 uint32_t _relative_save_offset;
17202 _relative_save_offset = ndr->offset;
17203 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->status_string));
17204 _mem_save_status_string_0 = NDR_PULL_GET_MEM_CTX(ndr);
17205 NDR_PULL_SET_MEM_CTX(ndr, r->status_string, 0);
17206 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->status_string));
17207 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_string_0, 0);
17208 if (ndr->offset > ndr->relative_highest_offset) {
17209 ndr->relative_highest_offset = ndr->offset;
17211 ndr->offset = _relative_save_offset;
17213 ndr->flags = _flags_save_string;
17216 return NDR_ERR_SUCCESS;
17219 _PUBLIC_ void ndr_print_spoolss_PortInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo3 *r)
17221 ndr_print_struct(ndr, name, "spoolss_PortInfo3");
17223 ndr_print_spoolss_PortStatus(ndr, "status", r->status);
17224 ndr_print_ptr(ndr, "status_string", r->status_string);
17226 if (r->status_string) {
17227 ndr_print_string(ndr, "status_string", r->status_string);
17230 ndr_print_spoolss_PortSeverity(ndr, "severity", r->severity);
17234 _PUBLIC_ size_t ndr_size_spoolss_PortInfo3(const struct spoolss_PortInfo3 *r, struct smb_iconv_convenience *ic, int flags)
17236 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfo3, ic);
17239 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfoFF(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfoFF *r)
17241 if (ndr_flags & NDR_SCALARS) {
17242 NDR_CHECK(ndr_push_align(ndr, 5));
17244 uint32_t _flags_save_string = ndr->flags;
17245 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17246 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
17247 ndr->flags = _flags_save_string;
17249 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->monitor_data));
17250 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17252 if (ndr_flags & NDR_BUFFERS) {
17254 uint32_t _flags_save_string = ndr->flags;
17255 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17256 if (r->port_name) {
17257 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->port_name));
17258 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
17260 ndr->flags = _flags_save_string;
17263 return NDR_ERR_SUCCESS;
17266 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfoFF(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfoFF *r)
17268 uint32_t _ptr_port_name;
17269 TALLOC_CTX *_mem_save_port_name_0;
17270 if (ndr_flags & NDR_SCALARS) {
17271 NDR_CHECK(ndr_pull_align(ndr, 5));
17273 uint32_t _flags_save_string = ndr->flags;
17274 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17275 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
17276 if (_ptr_port_name) {
17277 NDR_PULL_ALLOC(ndr, r->port_name);
17278 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
17280 r->port_name = NULL;
17282 ndr->flags = _flags_save_string;
17284 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->monitor_data));
17285 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17287 if (ndr_flags & NDR_BUFFERS) {
17289 uint32_t _flags_save_string = ndr->flags;
17290 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17291 if (r->port_name) {
17292 uint32_t _relative_save_offset;
17293 _relative_save_offset = ndr->offset;
17294 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
17295 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17296 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
17297 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
17298 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
17299 if (ndr->offset > ndr->relative_highest_offset) {
17300 ndr->relative_highest_offset = ndr->offset;
17302 ndr->offset = _relative_save_offset;
17304 ndr->flags = _flags_save_string;
17307 return NDR_ERR_SUCCESS;
17310 _PUBLIC_ void ndr_print_spoolss_PortInfoFF(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfoFF *r)
17312 ndr_print_struct(ndr, name, "spoolss_PortInfoFF");
17314 ndr_print_ptr(ndr, "port_name", r->port_name);
17316 if (r->port_name) {
17317 ndr_print_string(ndr, "port_name", r->port_name);
17320 ndr_print_DATA_BLOB(ndr, "monitor_data", r->monitor_data);
17324 _PUBLIC_ size_t ndr_size_spoolss_PortInfoFF(const struct spoolss_PortInfoFF *r, struct smb_iconv_convenience *ic, int flags)
17326 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfoFF, ic);
17329 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PortInfo *r)
17331 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
17332 if (ndr_flags & NDR_SCALARS) {
17333 int level = ndr_push_get_switch_value(ndr, r);
17334 NDR_CHECK(ndr_push_union_align(ndr, 5));
17337 NDR_CHECK(ndr_push_align(ndr, 5));
17338 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
17339 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr, NDR_SCALARS, &r->info1));
17343 NDR_CHECK(ndr_push_align(ndr, 5));
17344 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
17345 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr, NDR_SCALARS, &r->info2));
17349 NDR_CHECK(ndr_push_align(ndr, 5));
17350 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
17351 NDR_CHECK(ndr_push_spoolss_PortInfo3(ndr, NDR_SCALARS, &r->info3));
17355 NDR_CHECK(ndr_push_align(ndr, 5));
17356 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
17357 NDR_CHECK(ndr_push_spoolss_PortInfoFF(ndr, NDR_SCALARS, &r->infoFF));
17365 if (ndr_flags & NDR_BUFFERS) {
17366 int level = ndr_push_get_switch_value(ndr, r);
17367 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
17370 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr, NDR_BUFFERS, &r->info1));
17374 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr, NDR_BUFFERS, &r->info2));
17378 NDR_CHECK(ndr_push_spoolss_PortInfo3(ndr, NDR_BUFFERS, &r->info3));
17382 NDR_CHECK(ndr_push_spoolss_PortInfoFF(ndr, NDR_BUFFERS, &r->infoFF));
17390 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
17391 return NDR_ERR_SUCCESS;
17394 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PortInfo *r)
17396 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
17398 level = ndr_pull_get_switch_value(ndr, r);
17399 if (ndr_flags & NDR_SCALARS) {
17400 NDR_CHECK(ndr_pull_union_align(ndr, 5));
17403 NDR_CHECK(ndr_pull_align(ndr, 5));
17404 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
17405 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr, NDR_SCALARS, &r->info1));
17409 NDR_CHECK(ndr_pull_align(ndr, 5));
17410 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
17411 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr, NDR_SCALARS, &r->info2));
17415 NDR_CHECK(ndr_pull_align(ndr, 5));
17416 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
17417 NDR_CHECK(ndr_pull_spoolss_PortInfo3(ndr, NDR_SCALARS, &r->info3));
17421 NDR_CHECK(ndr_pull_align(ndr, 5));
17422 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
17423 NDR_CHECK(ndr_pull_spoolss_PortInfoFF(ndr, NDR_SCALARS, &r->infoFF));
17431 if (ndr_flags & NDR_BUFFERS) {
17432 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
17435 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr, NDR_BUFFERS, &r->info1));
17439 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr, NDR_BUFFERS, &r->info2));
17443 NDR_CHECK(ndr_pull_spoolss_PortInfo3(ndr, NDR_BUFFERS, &r->info3));
17447 NDR_CHECK(ndr_pull_spoolss_PortInfoFF(ndr, NDR_BUFFERS, &r->infoFF));
17455 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
17456 return NDR_ERR_SUCCESS;
17459 _PUBLIC_ void ndr_print_spoolss_PortInfo(struct ndr_print *ndr, const char *name, const union spoolss_PortInfo *r)
17462 level = ndr_print_get_switch_value(ndr, r);
17463 ndr_print_union(ndr, name, level, "spoolss_PortInfo");
17466 ndr_print_spoolss_PortInfo1(ndr, "info1", &r->info1);
17470 ndr_print_spoolss_PortInfo2(ndr, "info2", &r->info2);
17474 ndr_print_spoolss_PortInfo3(ndr, "info3", &r->info3);
17478 ndr_print_spoolss_PortInfoFF(ndr, "infoFF", &r->infoFF);
17487 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorInfo1 *r)
17489 if (ndr_flags & NDR_SCALARS) {
17490 NDR_CHECK(ndr_push_align(ndr, 5));
17492 uint32_t _flags_save_string = ndr->flags;
17493 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17494 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
17495 ndr->flags = _flags_save_string;
17497 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17499 if (ndr_flags & NDR_BUFFERS) {
17501 uint32_t _flags_save_string = ndr->flags;
17502 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17503 if (r->monitor_name) {
17504 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
17505 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
17507 ndr->flags = _flags_save_string;
17510 return NDR_ERR_SUCCESS;
17513 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorInfo1 *r)
17515 uint32_t _ptr_monitor_name;
17516 TALLOC_CTX *_mem_save_monitor_name_0;
17517 if (ndr_flags & NDR_SCALARS) {
17518 NDR_CHECK(ndr_pull_align(ndr, 5));
17520 uint32_t _flags_save_string = ndr->flags;
17521 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17522 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
17523 if (_ptr_monitor_name) {
17524 NDR_PULL_ALLOC(ndr, r->monitor_name);
17525 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
17527 r->monitor_name = NULL;
17529 ndr->flags = _flags_save_string;
17531 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17533 if (ndr_flags & NDR_BUFFERS) {
17535 uint32_t _flags_save_string = ndr->flags;
17536 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17537 if (r->monitor_name) {
17538 uint32_t _relative_save_offset;
17539 _relative_save_offset = ndr->offset;
17540 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
17541 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17542 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
17543 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
17544 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
17545 if (ndr->offset > ndr->relative_highest_offset) {
17546 ndr->relative_highest_offset = ndr->offset;
17548 ndr->offset = _relative_save_offset;
17550 ndr->flags = _flags_save_string;
17553 return NDR_ERR_SUCCESS;
17556 _PUBLIC_ void ndr_print_spoolss_MonitorInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorInfo1 *r)
17558 ndr_print_struct(ndr, name, "spoolss_MonitorInfo1");
17560 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
17562 if (r->monitor_name) {
17563 ndr_print_string(ndr, "monitor_name", r->monitor_name);
17569 _PUBLIC_ size_t ndr_size_spoolss_MonitorInfo1(const struct spoolss_MonitorInfo1 *r, struct smb_iconv_convenience *ic, int flags)
17571 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_MonitorInfo1, ic);
17574 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorInfo2 *r)
17576 if (ndr_flags & NDR_SCALARS) {
17577 NDR_CHECK(ndr_push_align(ndr, 5));
17579 uint32_t _flags_save_string = ndr->flags;
17580 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17581 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
17582 ndr->flags = _flags_save_string;
17585 uint32_t _flags_save_string = ndr->flags;
17586 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17587 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->environment));
17588 ndr->flags = _flags_save_string;
17591 uint32_t _flags_save_string = ndr->flags;
17592 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17593 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dll_name));
17594 ndr->flags = _flags_save_string;
17596 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17598 if (ndr_flags & NDR_BUFFERS) {
17600 uint32_t _flags_save_string = ndr->flags;
17601 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17602 if (r->monitor_name) {
17603 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
17604 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
17606 ndr->flags = _flags_save_string;
17609 uint32_t _flags_save_string = ndr->flags;
17610 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17611 if (r->environment) {
17612 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->environment));
17613 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->environment));
17615 ndr->flags = _flags_save_string;
17618 uint32_t _flags_save_string = ndr->flags;
17619 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17621 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dll_name));
17622 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dll_name));
17624 ndr->flags = _flags_save_string;
17627 return NDR_ERR_SUCCESS;
17630 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorInfo2 *r)
17632 uint32_t _ptr_monitor_name;
17633 TALLOC_CTX *_mem_save_monitor_name_0;
17634 uint32_t _ptr_environment;
17635 TALLOC_CTX *_mem_save_environment_0;
17636 uint32_t _ptr_dll_name;
17637 TALLOC_CTX *_mem_save_dll_name_0;
17638 if (ndr_flags & NDR_SCALARS) {
17639 NDR_CHECK(ndr_pull_align(ndr, 5));
17641 uint32_t _flags_save_string = ndr->flags;
17642 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17643 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
17644 if (_ptr_monitor_name) {
17645 NDR_PULL_ALLOC(ndr, r->monitor_name);
17646 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
17648 r->monitor_name = NULL;
17650 ndr->flags = _flags_save_string;
17653 uint32_t _flags_save_string = ndr->flags;
17654 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17655 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
17656 if (_ptr_environment) {
17657 NDR_PULL_ALLOC(ndr, r->environment);
17658 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->environment, _ptr_environment));
17660 r->environment = NULL;
17662 ndr->flags = _flags_save_string;
17665 uint32_t _flags_save_string = ndr->flags;
17666 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17667 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dll_name));
17668 if (_ptr_dll_name) {
17669 NDR_PULL_ALLOC(ndr, r->dll_name);
17670 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dll_name, _ptr_dll_name));
17672 r->dll_name = NULL;
17674 ndr->flags = _flags_save_string;
17676 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17678 if (ndr_flags & NDR_BUFFERS) {
17680 uint32_t _flags_save_string = ndr->flags;
17681 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17682 if (r->monitor_name) {
17683 uint32_t _relative_save_offset;
17684 _relative_save_offset = ndr->offset;
17685 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
17686 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17687 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
17688 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
17689 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
17690 if (ndr->offset > ndr->relative_highest_offset) {
17691 ndr->relative_highest_offset = ndr->offset;
17693 ndr->offset = _relative_save_offset;
17695 ndr->flags = _flags_save_string;
17698 uint32_t _flags_save_string = ndr->flags;
17699 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17700 if (r->environment) {
17701 uint32_t _relative_save_offset;
17702 _relative_save_offset = ndr->offset;
17703 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->environment));
17704 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
17705 NDR_PULL_SET_MEM_CTX(ndr, r->environment, 0);
17706 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->environment));
17707 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
17708 if (ndr->offset > ndr->relative_highest_offset) {
17709 ndr->relative_highest_offset = ndr->offset;
17711 ndr->offset = _relative_save_offset;
17713 ndr->flags = _flags_save_string;
17716 uint32_t _flags_save_string = ndr->flags;
17717 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17719 uint32_t _relative_save_offset;
17720 _relative_save_offset = ndr->offset;
17721 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dll_name));
17722 _mem_save_dll_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17723 NDR_PULL_SET_MEM_CTX(ndr, r->dll_name, 0);
17724 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->dll_name));
17725 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dll_name_0, 0);
17726 if (ndr->offset > ndr->relative_highest_offset) {
17727 ndr->relative_highest_offset = ndr->offset;
17729 ndr->offset = _relative_save_offset;
17731 ndr->flags = _flags_save_string;
17734 return NDR_ERR_SUCCESS;
17737 _PUBLIC_ void ndr_print_spoolss_MonitorInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorInfo2 *r)
17739 ndr_print_struct(ndr, name, "spoolss_MonitorInfo2");
17741 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
17743 if (r->monitor_name) {
17744 ndr_print_string(ndr, "monitor_name", r->monitor_name);
17747 ndr_print_ptr(ndr, "environment", r->environment);
17749 if (r->environment) {
17750 ndr_print_string(ndr, "environment", r->environment);
17753 ndr_print_ptr(ndr, "dll_name", r->dll_name);
17756 ndr_print_string(ndr, "dll_name", r->dll_name);
17762 _PUBLIC_ size_t ndr_size_spoolss_MonitorInfo2(const struct spoolss_MonitorInfo2 *r, struct smb_iconv_convenience *ic, int flags)
17764 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_MonitorInfo2, ic);
17767 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_MonitorInfo *r)
17769 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
17770 if (ndr_flags & NDR_SCALARS) {
17771 int level = ndr_push_get_switch_value(ndr, r);
17772 NDR_CHECK(ndr_push_union_align(ndr, 5));
17775 NDR_CHECK(ndr_push_align(ndr, 5));
17776 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
17777 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr, NDR_SCALARS, &r->info1));
17781 NDR_CHECK(ndr_push_align(ndr, 5));
17782 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
17783 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr, NDR_SCALARS, &r->info2));
17791 if (ndr_flags & NDR_BUFFERS) {
17792 int level = ndr_push_get_switch_value(ndr, r);
17793 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
17796 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr, NDR_BUFFERS, &r->info1));
17800 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr, NDR_BUFFERS, &r->info2));
17808 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
17809 return NDR_ERR_SUCCESS;
17812 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_MonitorInfo *r)
17814 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
17816 level = ndr_pull_get_switch_value(ndr, r);
17817 if (ndr_flags & NDR_SCALARS) {
17818 NDR_CHECK(ndr_pull_union_align(ndr, 5));
17821 NDR_CHECK(ndr_pull_align(ndr, 5));
17822 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
17823 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr, NDR_SCALARS, &r->info1));
17827 NDR_CHECK(ndr_pull_align(ndr, 5));
17828 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
17829 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr, NDR_SCALARS, &r->info2));
17837 if (ndr_flags & NDR_BUFFERS) {
17838 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
17841 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr, NDR_BUFFERS, &r->info1));
17845 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr, NDR_BUFFERS, &r->info2));
17853 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
17854 return NDR_ERR_SUCCESS;
17857 _PUBLIC_ void ndr_print_spoolss_MonitorInfo(struct ndr_print *ndr, const char *name, const union spoolss_MonitorInfo *r)
17860 level = ndr_print_get_switch_value(ndr, r);
17861 ndr_print_union(ndr, name, level, "spoolss_MonitorInfo");
17864 ndr_print_spoolss_MonitorInfo1(ndr, "info1", &r->info1);
17868 ndr_print_spoolss_MonitorInfo2(ndr, "info2", &r->info2);
17877 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcDataTypesInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcDataTypesInfo1 *r)
17879 if (ndr_flags & NDR_SCALARS) {
17880 NDR_CHECK(ndr_push_align(ndr, 5));
17882 uint32_t _flags_save_string = ndr->flags;
17883 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17884 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->name_array));
17885 ndr->flags = _flags_save_string;
17887 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17889 if (ndr_flags & NDR_BUFFERS) {
17891 uint32_t _flags_save_string = ndr->flags;
17892 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17893 if (r->name_array) {
17894 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->name_array));
17895 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->name_array));
17897 ndr->flags = _flags_save_string;
17900 return NDR_ERR_SUCCESS;
17903 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcDataTypesInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcDataTypesInfo1 *r)
17905 uint32_t _ptr_name_array;
17906 TALLOC_CTX *_mem_save_name_array_0;
17907 if (ndr_flags & NDR_SCALARS) {
17908 NDR_CHECK(ndr_pull_align(ndr, 5));
17910 uint32_t _flags_save_string = ndr->flags;
17911 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17912 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name_array));
17913 if (_ptr_name_array) {
17914 NDR_PULL_ALLOC(ndr, r->name_array);
17915 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->name_array, _ptr_name_array));
17917 r->name_array = NULL;
17919 ndr->flags = _flags_save_string;
17921 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17923 if (ndr_flags & NDR_BUFFERS) {
17925 uint32_t _flags_save_string = ndr->flags;
17926 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17927 if (r->name_array) {
17928 uint32_t _relative_save_offset;
17929 _relative_save_offset = ndr->offset;
17930 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->name_array));
17931 _mem_save_name_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
17932 NDR_PULL_SET_MEM_CTX(ndr, r->name_array, 0);
17933 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->name_array));
17934 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_array_0, 0);
17935 if (ndr->offset > ndr->relative_highest_offset) {
17936 ndr->relative_highest_offset = ndr->offset;
17938 ndr->offset = _relative_save_offset;
17940 ndr->flags = _flags_save_string;
17943 return NDR_ERR_SUCCESS;
17946 _PUBLIC_ void ndr_print_spoolss_PrintProcDataTypesInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcDataTypesInfo1 *r)
17948 ndr_print_struct(ndr, name, "spoolss_PrintProcDataTypesInfo1");
17950 ndr_print_ptr(ndr, "name_array", r->name_array);
17952 if (r->name_array) {
17953 ndr_print_string(ndr, "name_array", r->name_array);
17959 _PUBLIC_ size_t ndr_size_spoolss_PrintProcDataTypesInfo1(const struct spoolss_PrintProcDataTypesInfo1 *r, struct smb_iconv_convenience *ic, int flags)
17961 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcDataTypesInfo1, ic);
17964 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcDataTypesInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcDataTypesInfo *r)
17966 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
17967 if (ndr_flags & NDR_SCALARS) {
17968 int level = ndr_push_get_switch_value(ndr, r);
17969 NDR_CHECK(ndr_push_union_align(ndr, 5));
17972 NDR_CHECK(ndr_push_align(ndr, 5));
17973 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
17974 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo1(ndr, NDR_SCALARS, &r->info1));
17982 if (ndr_flags & NDR_BUFFERS) {
17983 int level = ndr_push_get_switch_value(ndr, r);
17984 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
17987 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo1(ndr, NDR_BUFFERS, &r->info1));
17995 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
17996 return NDR_ERR_SUCCESS;
17999 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcDataTypesInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcDataTypesInfo *r)
18001 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
18003 level = ndr_pull_get_switch_value(ndr, r);
18004 if (ndr_flags & NDR_SCALARS) {
18005 NDR_CHECK(ndr_pull_union_align(ndr, 5));
18008 NDR_CHECK(ndr_pull_align(ndr, 5));
18009 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
18010 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo1(ndr, NDR_SCALARS, &r->info1));
18018 if (ndr_flags & NDR_BUFFERS) {
18019 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
18022 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo1(ndr, NDR_BUFFERS, &r->info1));
18030 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
18031 return NDR_ERR_SUCCESS;
18034 _PUBLIC_ void ndr_print_spoolss_PrintProcDataTypesInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcDataTypesInfo *r)
18037 level = ndr_print_get_switch_value(ndr, r);
18038 ndr_print_union(ndr, name, level, "spoolss_PrintProcDataTypesInfo");
18041 ndr_print_spoolss_PrintProcDataTypesInfo1(ndr, "info1", &r->info1);
18050 static enum ndr_err_code ndr_push_spoolss_PrinterChangeFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
18052 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
18053 return NDR_ERR_SUCCESS;
18056 static enum ndr_err_code ndr_pull_spoolss_PrinterChangeFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
18059 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
18061 return NDR_ERR_SUCCESS;
18064 _PUBLIC_ void ndr_print_spoolss_PrinterChangeFlags(struct ndr_print *ndr, const char *name, uint32_t r)
18066 ndr_print_uint32(ndr, name, r);
18068 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER", PRINTER_CHANGE_ADD_PRINTER, r);
18069 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER", PRINTER_CHANGE_SET_PRINTER, r);
18070 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER", PRINTER_CHANGE_DELETE_PRINTER, r);
18071 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_FAILED_CONNECTION_PRINTER", PRINTER_CHANGE_FAILED_CONNECTION_PRINTER, r);
18072 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_JOB", PRINTER_CHANGE_ADD_JOB, r);
18073 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_JOB", PRINTER_CHANGE_SET_JOB, r);
18074 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_JOB", PRINTER_CHANGE_DELETE_JOB, r);
18075 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_WRITE_JOB", PRINTER_CHANGE_WRITE_JOB, r);
18076 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_FORM", PRINTER_CHANGE_ADD_FORM, r);
18077 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_FORM", PRINTER_CHANGE_SET_FORM, r);
18078 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_FORM", PRINTER_CHANGE_DELETE_FORM, r);
18079 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PORT", PRINTER_CHANGE_ADD_PORT, r);
18080 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_CONFIGURE_PORT", PRINTER_CHANGE_CONFIGURE_PORT, r);
18081 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PORT", PRINTER_CHANGE_DELETE_PORT, r);
18082 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINT_PROCESSOR", PRINTER_CHANGE_ADD_PRINT_PROCESSOR, r);
18083 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINT_PROCESSOR", PRINTER_CHANGE_DELETE_PRINT_PROCESSOR, r);
18084 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SERVER", PRINTER_CHANGE_SERVER, r);
18085 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER_DRIVER", PRINTER_CHANGE_ADD_PRINTER_DRIVER, r);
18086 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER_DRIVER", PRINTER_CHANGE_SET_PRINTER_DRIVER, r);
18087 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER_DRIVER", PRINTER_CHANGE_DELETE_PRINTER_DRIVER, r);
18088 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_TIMEOUT", PRINTER_CHANGE_TIMEOUT, r);
18092 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobNotifyField(struct ndr_push *ndr, int ndr_flags, enum spoolss_JobNotifyField r)
18094 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
18095 return NDR_ERR_SUCCESS;
18098 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobNotifyField(struct ndr_pull *ndr, int ndr_flags, enum spoolss_JobNotifyField *r)
18101 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
18103 return NDR_ERR_SUCCESS;
18106 _PUBLIC_ void ndr_print_spoolss_JobNotifyField(struct ndr_print *ndr, const char *name, enum spoolss_JobNotifyField r)
18108 const char *val = NULL;
18111 case JOB_NOTIFY_FIELD_PRINTER_NAME: val = "JOB_NOTIFY_FIELD_PRINTER_NAME"; break;
18112 case JOB_NOTIFY_FIELD_MACHINE_NAME: val = "JOB_NOTIFY_FIELD_MACHINE_NAME"; break;
18113 case JOB_NOTIFY_FIELD_PORT_NAME: val = "JOB_NOTIFY_FIELD_PORT_NAME"; break;
18114 case JOB_NOTIFY_FIELD_USER_NAME: val = "JOB_NOTIFY_FIELD_USER_NAME"; break;
18115 case JOB_NOTIFY_FIELD_NOTIFY_NAME: val = "JOB_NOTIFY_FIELD_NOTIFY_NAME"; break;
18116 case JOB_NOTIFY_FIELD_DATATYPE: val = "JOB_NOTIFY_FIELD_DATATYPE"; break;
18117 case JOB_NOTIFY_FIELD_PRINT_PROCESSOR: val = "JOB_NOTIFY_FIELD_PRINT_PROCESSOR"; break;
18118 case JOB_NOTIFY_FIELD_PARAMETERS: val = "JOB_NOTIFY_FIELD_PARAMETERS"; break;
18119 case JOB_NOTIFY_FIELD_DRIVER_NAME: val = "JOB_NOTIFY_FIELD_DRIVER_NAME"; break;
18120 case JOB_NOTIFY_FIELD_DEVMODE: val = "JOB_NOTIFY_FIELD_DEVMODE"; break;
18121 case JOB_NOTIFY_FIELD_STATUS: val = "JOB_NOTIFY_FIELD_STATUS"; break;
18122 case JOB_NOTIFY_FIELD_STATUS_STRING: val = "JOB_NOTIFY_FIELD_STATUS_STRING"; break;
18123 case JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR: val = "JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR"; break;
18124 case JOB_NOTIFY_FIELD_DOCUMENT: val = "JOB_NOTIFY_FIELD_DOCUMENT"; break;
18125 case JOB_NOTIFY_FIELD_PRIORITY: val = "JOB_NOTIFY_FIELD_PRIORITY"; break;
18126 case JOB_NOTIFY_FIELD_POSITION: val = "JOB_NOTIFY_FIELD_POSITION"; break;
18127 case JOB_NOTIFY_FIELD_SUBMITTED: val = "JOB_NOTIFY_FIELD_SUBMITTED"; break;
18128 case JOB_NOTIFY_FIELD_START_TIME: val = "JOB_NOTIFY_FIELD_START_TIME"; break;
18129 case JOB_NOTIFY_FIELD_UNTIL_TIME: val = "JOB_NOTIFY_FIELD_UNTIL_TIME"; break;
18130 case JOB_NOTIFY_FIELD_TIME: val = "JOB_NOTIFY_FIELD_TIME"; break;
18131 case JOB_NOTIFY_FIELD_TOTAL_PAGES: val = "JOB_NOTIFY_FIELD_TOTAL_PAGES"; break;
18132 case JOB_NOTIFY_FIELD_PAGES_PRINTED: val = "JOB_NOTIFY_FIELD_PAGES_PRINTED"; break;
18133 case JOB_NOTIFY_FIELD_TOTAL_BYTES: val = "JOB_NOTIFY_FIELD_TOTAL_BYTES"; break;
18134 case JOB_NOTIFY_FIELD_BYTES_PRINTED: val = "JOB_NOTIFY_FIELD_BYTES_PRINTED"; break;
18136 ndr_print_enum(ndr, name, "ENUM", val, r);
18139 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintNotifyField(struct ndr_push *ndr, int ndr_flags, enum spoolss_PrintNotifyField r)
18141 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
18142 return NDR_ERR_SUCCESS;
18145 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintNotifyField(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PrintNotifyField *r)
18148 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
18150 return NDR_ERR_SUCCESS;
18153 _PUBLIC_ void ndr_print_spoolss_PrintNotifyField(struct ndr_print *ndr, const char *name, enum spoolss_PrintNotifyField r)
18155 const char *val = NULL;
18158 case PRINTER_NOTIFY_FIELD_SERVER_NAME: val = "PRINTER_NOTIFY_FIELD_SERVER_NAME"; break;
18159 case PRINTER_NOTIFY_FIELD_PRINTER_NAME: val = "PRINTER_NOTIFY_FIELD_PRINTER_NAME"; break;
18160 case PRINTER_NOTIFY_FIELD_SHARE_NAME: val = "PRINTER_NOTIFY_FIELD_SHARE_NAME"; break;
18161 case PRINTER_NOTIFY_FIELD_PORT_NAME: val = "PRINTER_NOTIFY_FIELD_PORT_NAME"; break;
18162 case PRINTER_NOTIFY_FIELD_DRIVER_NAME: val = "PRINTER_NOTIFY_FIELD_DRIVER_NAME"; break;
18163 case PRINTER_NOTIFY_FIELD_COMMENT: val = "PRINTER_NOTIFY_FIELD_COMMENT"; break;
18164 case PRINTER_NOTIFY_FIELD_LOCATION: val = "PRINTER_NOTIFY_FIELD_LOCATION"; break;
18165 case PRINTER_NOTIFY_FIELD_DEVMODE: val = "PRINTER_NOTIFY_FIELD_DEVMODE"; break;
18166 case PRINTER_NOTIFY_FIELD_SEPFILE: val = "PRINTER_NOTIFY_FIELD_SEPFILE"; break;
18167 case PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR: val = "PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR"; break;
18168 case PRINTER_NOTIFY_FIELD_PARAMETERS: val = "PRINTER_NOTIFY_FIELD_PARAMETERS"; break;
18169 case PRINTER_NOTIFY_FIELD_DATATYPE: val = "PRINTER_NOTIFY_FIELD_DATATYPE"; break;
18170 case PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR: val = "PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR"; break;
18171 case PRINTER_NOTIFY_FIELD_ATTRIBUTES: val = "PRINTER_NOTIFY_FIELD_ATTRIBUTES"; break;
18172 case PRINTER_NOTIFY_FIELD_PRIORITY: val = "PRINTER_NOTIFY_FIELD_PRIORITY"; break;
18173 case PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY: val = "PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY"; break;
18174 case PRINTER_NOTIFY_FIELD_START_TIME: val = "PRINTER_NOTIFY_FIELD_START_TIME"; break;
18175 case PRINTER_NOTIFY_FIELD_UNTIL_TIME: val = "PRINTER_NOTIFY_FIELD_UNTIL_TIME"; break;
18176 case PRINTER_NOTIFY_FIELD_STATUS: val = "PRINTER_NOTIFY_FIELD_STATUS"; break;
18177 case PRINTER_NOTIFY_FIELD_STATUS_STRING: val = "PRINTER_NOTIFY_FIELD_STATUS_STRING"; break;
18178 case PRINTER_NOTIFY_FIELD_CJOBS: val = "PRINTER_NOTIFY_FIELD_CJOBS"; break;
18179 case PRINTER_NOTIFY_FIELD_AVERAGE_PPM: val = "PRINTER_NOTIFY_FIELD_AVERAGE_PPM"; break;
18180 case PRINTER_NOTIFY_FIELD_TOTAL_PAGES: val = "PRINTER_NOTIFY_FIELD_TOTAL_PAGES"; break;
18181 case PRINTER_NOTIFY_FIELD_PAGES_PRINTED: val = "PRINTER_NOTIFY_FIELD_PAGES_PRINTED"; break;
18182 case PRINTER_NOTIFY_FIELD_TOTAL_BYTES: val = "PRINTER_NOTIFY_FIELD_TOTAL_BYTES"; break;
18183 case PRINTER_NOTIFY_FIELD_BYTES_PRINTED: val = "PRINTER_NOTIFY_FIELD_BYTES_PRINTED"; break;
18184 case PRINTER_NOTIFY_FIELD_OBJECT_GUID: val = "PRINTER_NOTIFY_FIELD_OBJECT_GUID"; break;
18185 case PRINTER_NOTIFY_FIELD_FRIENDLY_NAME: val = "PRINTER_NOTIFY_FIELD_FRIENDLY_NAME"; break;
18187 ndr_print_enum(ndr, name, "ENUM", val, r);
18190 static enum ndr_err_code ndr_push_spoolss_NotifyType(struct ndr_push *ndr, int ndr_flags, enum spoolss_NotifyType r)
18192 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
18193 return NDR_ERR_SUCCESS;
18196 static enum ndr_err_code ndr_pull_spoolss_NotifyType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_NotifyType *r)
18199 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
18201 return NDR_ERR_SUCCESS;
18204 _PUBLIC_ void ndr_print_spoolss_NotifyType(struct ndr_print *ndr, const char *name, enum spoolss_NotifyType r)
18206 const char *val = NULL;
18209 case PRINTER_NOTIFY_TYPE: val = "PRINTER_NOTIFY_TYPE"; break;
18210 case JOB_NOTIFY_TYPE: val = "JOB_NOTIFY_TYPE"; break;
18212 ndr_print_enum(ndr, name, "ENUM", val, r);
18215 static enum ndr_err_code ndr_push_spoolss_Field(struct ndr_push *ndr, int ndr_flags, const union spoolss_Field *r)
18217 if (ndr_flags & NDR_SCALARS) {
18218 int level = ndr_push_get_switch_value(ndr, r);
18219 NDR_CHECK(ndr_push_union_align(ndr, 2));
18221 case PRINTER_NOTIFY_TYPE: {
18222 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->field));
18225 case JOB_NOTIFY_TYPE: {
18226 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->field));
18230 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->field));
18235 if (ndr_flags & NDR_BUFFERS) {
18236 int level = ndr_push_get_switch_value(ndr, r);
18238 case PRINTER_NOTIFY_TYPE:
18241 case JOB_NOTIFY_TYPE:
18249 return NDR_ERR_SUCCESS;
18252 static enum ndr_err_code ndr_pull_spoolss_Field(struct ndr_pull *ndr, int ndr_flags, union spoolss_Field *r)
18255 level = ndr_pull_get_switch_value(ndr, r);
18256 if (ndr_flags & NDR_SCALARS) {
18257 NDR_CHECK(ndr_pull_union_align(ndr, 2));
18259 case PRINTER_NOTIFY_TYPE: {
18260 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->field));
18263 case JOB_NOTIFY_TYPE: {
18264 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->field));
18268 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->field));
18273 if (ndr_flags & NDR_BUFFERS) {
18275 case PRINTER_NOTIFY_TYPE:
18278 case JOB_NOTIFY_TYPE:
18286 return NDR_ERR_SUCCESS;
18289 static enum ndr_err_code ndr_push_spoolss_NotifyOptionType(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyOptionType *r)
18291 uint32_t cntr_fields_1;
18292 if (ndr_flags & NDR_SCALARS) {
18293 NDR_CHECK(ndr_push_align(ndr, 5));
18294 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr, NDR_SCALARS, r->type));
18295 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->u1));
18296 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u2));
18297 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u3));
18298 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
18299 NDR_CHECK(ndr_push_unique_ptr(ndr, r->fields));
18300 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18302 if (ndr_flags & NDR_BUFFERS) {
18304 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
18305 for (cntr_fields_1 = 0; cntr_fields_1 < r->count; cntr_fields_1++) {
18306 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->fields[cntr_fields_1], r->type));
18307 NDR_CHECK(ndr_push_spoolss_Field(ndr, NDR_SCALARS, &r->fields[cntr_fields_1]));
18311 return NDR_ERR_SUCCESS;
18314 static enum ndr_err_code ndr_pull_spoolss_NotifyOptionType(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyOptionType *r)
18316 uint32_t _ptr_fields;
18317 uint32_t cntr_fields_1;
18318 TALLOC_CTX *_mem_save_fields_0;
18319 TALLOC_CTX *_mem_save_fields_1;
18320 if (ndr_flags & NDR_SCALARS) {
18321 NDR_CHECK(ndr_pull_align(ndr, 5));
18322 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr, NDR_SCALARS, &r->type));
18323 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->u1));
18324 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u2));
18325 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u3));
18326 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
18327 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_fields));
18329 NDR_PULL_ALLOC(ndr, r->fields);
18333 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
18335 if (ndr_flags & NDR_BUFFERS) {
18337 _mem_save_fields_0 = NDR_PULL_GET_MEM_CTX(ndr);
18338 NDR_PULL_SET_MEM_CTX(ndr, r->fields, 0);
18339 NDR_CHECK(ndr_pull_array_size(ndr, &r->fields));
18340 NDR_PULL_ALLOC_N(ndr, r->fields, ndr_get_array_size(ndr, &r->fields));
18341 _mem_save_fields_1 = NDR_PULL_GET_MEM_CTX(ndr);
18342 NDR_PULL_SET_MEM_CTX(ndr, r->fields, 0);
18343 for (cntr_fields_1 = 0; cntr_fields_1 < r->count; cntr_fields_1++) {
18344 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->fields[cntr_fields_1], r->type));
18345 NDR_CHECK(ndr_pull_spoolss_Field(ndr, NDR_SCALARS, &r->fields[cntr_fields_1]));
18347 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fields_1, 0);
18348 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fields_0, 0);
18351 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->fields, r->count));
18354 return NDR_ERR_SUCCESS;
18357 _PUBLIC_ void ndr_print_spoolss_NotifyOptionType(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyOptionType *r)
18359 uint32_t cntr_fields_1;
18360 ndr_print_struct(ndr, name, "spoolss_NotifyOptionType");
18362 ndr_print_spoolss_NotifyType(ndr, "type", r->type);
18363 ndr_print_uint16(ndr, "u1", r->u1);
18364 ndr_print_uint32(ndr, "u2", r->u2);
18365 ndr_print_uint32(ndr, "u3", r->u3);
18366 ndr_print_uint32(ndr, "count", r->count);
18367 ndr_print_ptr(ndr, "fields", r->fields);
18370 ndr->print(ndr, "%s: ARRAY(%d)", "fields", (int)r->count);
18372 for (cntr_fields_1=0;cntr_fields_1<r->count;cntr_fields_1++) {
18374 if (asprintf(&idx_1, "[%d]", cntr_fields_1) != -1) {
18375 ndr_print_set_switch_value(ndr, &r->fields[cntr_fields_1], r->type);
18376 ndr_print_spoolss_Field(ndr, "fields", &r->fields[cntr_fields_1]);
18386 static enum ndr_err_code ndr_push_spoolssNotifyOptionFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
18388 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
18389 return NDR_ERR_SUCCESS;
18392 static enum ndr_err_code ndr_pull_spoolssNotifyOptionFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
18395 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
18397 return NDR_ERR_SUCCESS;
18400 _PUBLIC_ void ndr_print_spoolssNotifyOptionFlags(struct ndr_print *ndr, const char *name, uint32_t r)
18402 ndr_print_uint32(ndr, name, r);
18404 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_OPTIONS_REFRESH", PRINTER_NOTIFY_OPTIONS_REFRESH, r);
18408 static enum ndr_err_code ndr_push_spoolss_NotifyOption(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyOption *r)
18410 uint32_t cntr_types_1;
18411 if (ndr_flags & NDR_SCALARS) {
18412 NDR_CHECK(ndr_push_align(ndr, 5));
18413 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
18414 NDR_CHECK(ndr_push_spoolssNotifyOptionFlags(ndr, NDR_SCALARS, r->flags));
18415 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
18416 NDR_CHECK(ndr_push_unique_ptr(ndr, r->types));
18417 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18419 if (ndr_flags & NDR_BUFFERS) {
18421 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
18422 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
18423 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr, NDR_SCALARS, &r->types[cntr_types_1]));
18425 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
18426 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr, NDR_BUFFERS, &r->types[cntr_types_1]));
18430 return NDR_ERR_SUCCESS;
18433 static enum ndr_err_code ndr_pull_spoolss_NotifyOption(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyOption *r)
18435 uint32_t _ptr_types;
18436 uint32_t cntr_types_1;
18437 TALLOC_CTX *_mem_save_types_0;
18438 TALLOC_CTX *_mem_save_types_1;
18439 if (ndr_flags & NDR_SCALARS) {
18440 NDR_CHECK(ndr_pull_align(ndr, 5));
18441 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
18442 NDR_CHECK(ndr_pull_spoolssNotifyOptionFlags(ndr, NDR_SCALARS, &r->flags));
18443 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
18444 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_types));
18446 NDR_PULL_ALLOC(ndr, r->types);
18450 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
18452 if (ndr_flags & NDR_BUFFERS) {
18454 _mem_save_types_0 = NDR_PULL_GET_MEM_CTX(ndr);
18455 NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
18456 NDR_CHECK(ndr_pull_array_size(ndr, &r->types));
18457 NDR_PULL_ALLOC_N(ndr, r->types, ndr_get_array_size(ndr, &r->types));
18458 _mem_save_types_1 = NDR_PULL_GET_MEM_CTX(ndr);
18459 NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
18460 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
18461 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr, NDR_SCALARS, &r->types[cntr_types_1]));
18463 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
18464 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr, NDR_BUFFERS, &r->types[cntr_types_1]));
18466 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_1, 0);
18467 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_0, 0);
18470 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->types, r->count));
18473 return NDR_ERR_SUCCESS;
18476 _PUBLIC_ void ndr_print_spoolss_NotifyOption(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyOption *r)
18478 uint32_t cntr_types_1;
18479 ndr_print_struct(ndr, name, "spoolss_NotifyOption");
18481 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
18482 ndr_print_spoolssNotifyOptionFlags(ndr, "flags", r->flags);
18483 ndr_print_uint32(ndr, "count", r->count);
18484 ndr_print_ptr(ndr, "types", r->types);
18487 ndr->print(ndr, "%s: ARRAY(%d)", "types", (int)r->count);
18489 for (cntr_types_1=0;cntr_types_1<r->count;cntr_types_1++) {
18491 if (asprintf(&idx_1, "[%d]", cntr_types_1) != -1) {
18492 ndr_print_spoolss_NotifyOptionType(ndr, "types", &r->types[cntr_types_1]);
18502 static enum ndr_err_code ndr_push_spoolss_NotifyString(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyString *r)
18504 if (ndr_flags & NDR_SCALARS) {
18505 NDR_CHECK(ndr_push_align(ndr, 5));
18506 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
18507 NDR_CHECK(ndr_push_unique_ptr(ndr, r->string));
18508 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18510 if (ndr_flags & NDR_BUFFERS) {
18512 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->size / 2));
18513 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->string, r->size / 2, sizeof(uint16_t), CH_UTF16));
18516 return NDR_ERR_SUCCESS;
18519 static enum ndr_err_code ndr_pull_spoolss_NotifyString(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyString *r)
18521 uint32_t _ptr_string;
18522 TALLOC_CTX *_mem_save_string_0;
18523 if (ndr_flags & NDR_SCALARS) {
18524 NDR_CHECK(ndr_pull_align(ndr, 5));
18525 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
18526 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_string));
18528 NDR_PULL_ALLOC(ndr, r->string);
18532 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
18534 if (ndr_flags & NDR_BUFFERS) {
18536 _mem_save_string_0 = NDR_PULL_GET_MEM_CTX(ndr);
18537 NDR_PULL_SET_MEM_CTX(ndr, r->string, 0);
18538 NDR_CHECK(ndr_pull_array_size(ndr, &r->string));
18539 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->string, ndr_get_array_size(ndr, &r->string), sizeof(uint16_t), CH_UTF16));
18540 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_string_0, 0);
18543 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->string, r->size / 2));
18546 return NDR_ERR_SUCCESS;
18549 _PUBLIC_ void ndr_print_spoolss_NotifyString(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyString *r)
18551 ndr_print_struct(ndr, name, "spoolss_NotifyString");
18553 ndr_print_uint32(ndr, "size", r->size);
18554 ndr_print_ptr(ndr, "string", r->string);
18557 ndr_print_string(ndr, "string", r->string);
18563 static enum ndr_err_code ndr_push_spoolss_NotifyTable(struct ndr_push *ndr, int ndr_flags, enum spoolss_NotifyTable r)
18565 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
18566 return NDR_ERR_SUCCESS;
18569 static enum ndr_err_code ndr_pull_spoolss_NotifyTable(struct ndr_pull *ndr, int ndr_flags, enum spoolss_NotifyTable *r)
18572 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
18574 return NDR_ERR_SUCCESS;
18577 _PUBLIC_ void ndr_print_spoolss_NotifyTable(struct ndr_print *ndr, const char *name, enum spoolss_NotifyTable r)
18579 const char *val = NULL;
18582 case NOTIFY_TABLE_DWORD: val = "NOTIFY_TABLE_DWORD"; break;
18583 case NOTIFY_TABLE_STRING: val = "NOTIFY_TABLE_STRING"; break;
18584 case NOTIFY_TABLE_DEVMODE: val = "NOTIFY_TABLE_DEVMODE"; break;
18585 case NOTIFY_TABLE_TIME: val = "NOTIFY_TABLE_TIME"; break;
18586 case NOTIFY_TABLE_SECURITYDESCRIPTOR: val = "NOTIFY_TABLE_SECURITYDESCRIPTOR"; break;
18588 ndr_print_enum(ndr, name, "ENUM", val, r);
18591 static enum ndr_err_code ndr_push_spoolss_NotifyData(struct ndr_push *ndr, int ndr_flags, const union spoolss_NotifyData *r)
18593 if (ndr_flags & NDR_SCALARS) {
18594 int level = ndr_push_get_switch_value(ndr, r);
18595 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
18596 NDR_CHECK(ndr_push_union_align(ndr, 5));
18599 uint32_t cntr_integer_0;
18600 for (cntr_integer_0 = 0; cntr_integer_0 < 2; cntr_integer_0++) {
18601 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->integer[cntr_integer_0]));
18606 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr, NDR_SCALARS, &r->string));
18610 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS, &r->devmode));
18614 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr, NDR_SCALARS, &r->time));
18618 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sd));
18622 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18625 if (ndr_flags & NDR_BUFFERS) {
18626 int level = ndr_push_get_switch_value(ndr, r);
18632 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr, NDR_BUFFERS, &r->string));
18636 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_BUFFERS, &r->devmode));
18640 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr, NDR_BUFFERS, &r->time));
18644 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd));
18648 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18651 return NDR_ERR_SUCCESS;
18654 static enum ndr_err_code ndr_pull_spoolss_NotifyData(struct ndr_pull *ndr, int ndr_flags, union spoolss_NotifyData *r)
18658 level = ndr_pull_get_switch_value(ndr, r);
18659 if (ndr_flags & NDR_SCALARS) {
18660 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
18661 if (_level != level) {
18662 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
18664 NDR_CHECK(ndr_pull_union_align(ndr, 5));
18667 uint32_t cntr_integer_0;
18668 for (cntr_integer_0 = 0; cntr_integer_0 < 2; cntr_integer_0++) {
18669 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->integer[cntr_integer_0]));
18674 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr, NDR_SCALARS, &r->string));
18678 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS, &r->devmode));
18682 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr, NDR_SCALARS, &r->time));
18686 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sd));
18690 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18693 if (ndr_flags & NDR_BUFFERS) {
18699 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr, NDR_BUFFERS, &r->string));
18703 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_BUFFERS, &r->devmode));
18707 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr, NDR_BUFFERS, &r->time));
18711 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd));
18715 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18718 return NDR_ERR_SUCCESS;
18721 _PUBLIC_ void ndr_print_spoolss_NotifyData(struct ndr_print *ndr, const char *name, const union spoolss_NotifyData *r)
18724 uint32_t cntr_integer_0;
18725 level = ndr_print_get_switch_value(ndr, r);
18726 ndr_print_union(ndr, name, level, "spoolss_NotifyData");
18729 ndr->print(ndr, "%s: ARRAY(%d)", "integer", (int)2);
18731 for (cntr_integer_0=0;cntr_integer_0<2;cntr_integer_0++) {
18733 if (asprintf(&idx_0, "[%d]", cntr_integer_0) != -1) {
18734 ndr_print_uint32(ndr, "integer", r->integer[cntr_integer_0]);
18742 ndr_print_spoolss_NotifyString(ndr, "string", &r->string);
18746 ndr_print_spoolss_DevmodeContainer(ndr, "devmode", &r->devmode);
18750 ndr_print_spoolss_TimeCtr(ndr, "time", &r->time);
18754 ndr_print_sec_desc_buf(ndr, "sd", &r->sd);
18758 ndr_print_bad_level(ndr, name, level);
18762 static enum ndr_err_code ndr_push_spoolss_Notify(struct ndr_push *ndr, int ndr_flags, const struct spoolss_Notify *r)
18764 if (ndr_flags & NDR_SCALARS) {
18765 NDR_CHECK(ndr_push_align(ndr, 5));
18766 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr, NDR_SCALARS, r->type));
18767 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->field, r->type));
18768 NDR_CHECK(ndr_push_spoolss_Field(ndr, NDR_SCALARS, &r->field));
18769 NDR_CHECK(ndr_push_spoolss_NotifyTable(ndr, NDR_SCALARS, r->variable_type));
18770 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
18771 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->data, r->variable_type));
18772 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr, NDR_SCALARS, &r->data));
18773 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18775 if (ndr_flags & NDR_BUFFERS) {
18776 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr, NDR_BUFFERS, &r->data));
18778 return NDR_ERR_SUCCESS;
18781 static enum ndr_err_code ndr_pull_spoolss_Notify(struct ndr_pull *ndr, int ndr_flags, struct spoolss_Notify *r)
18783 if (ndr_flags & NDR_SCALARS) {
18784 NDR_CHECK(ndr_pull_align(ndr, 5));
18785 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr, NDR_SCALARS, &r->type));
18786 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->field, r->type));
18787 NDR_CHECK(ndr_pull_spoolss_Field(ndr, NDR_SCALARS, &r->field));
18788 NDR_CHECK(ndr_pull_spoolss_NotifyTable(ndr, NDR_SCALARS, &r->variable_type));
18789 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
18790 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->data, r->variable_type));
18791 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr, NDR_SCALARS, &r->data));
18792 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
18794 if (ndr_flags & NDR_BUFFERS) {
18795 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr, NDR_BUFFERS, &r->data));
18797 return NDR_ERR_SUCCESS;
18800 _PUBLIC_ void ndr_print_spoolss_Notify(struct ndr_print *ndr, const char *name, const struct spoolss_Notify *r)
18802 ndr_print_struct(ndr, name, "spoolss_Notify");
18804 ndr_print_spoolss_NotifyType(ndr, "type", r->type);
18805 ndr_print_set_switch_value(ndr, &r->field, r->type);
18806 ndr_print_spoolss_Field(ndr, "field", &r->field);
18807 ndr_print_spoolss_NotifyTable(ndr, "variable_type", r->variable_type);
18808 ndr_print_uint32(ndr, "job_id", r->job_id);
18809 ndr_print_set_switch_value(ndr, &r->data, r->variable_type);
18810 ndr_print_spoolss_NotifyData(ndr, "data", &r->data);
18814 static enum ndr_err_code ndr_push_spoolss_NotifyInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyInfo *r)
18816 uint32_t cntr_notifies_0;
18817 if (ndr_flags & NDR_SCALARS) {
18818 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
18819 NDR_CHECK(ndr_push_align(ndr, 5));
18820 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
18821 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
18822 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
18823 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
18824 NDR_CHECK(ndr_push_spoolss_Notify(ndr, NDR_SCALARS, &r->notifies[cntr_notifies_0]));
18826 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18828 if (ndr_flags & NDR_BUFFERS) {
18829 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
18830 NDR_CHECK(ndr_push_spoolss_Notify(ndr, NDR_BUFFERS, &r->notifies[cntr_notifies_0]));
18833 return NDR_ERR_SUCCESS;
18836 static enum ndr_err_code ndr_pull_spoolss_NotifyInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyInfo *r)
18838 uint32_t cntr_notifies_0;
18839 TALLOC_CTX *_mem_save_notifies_0;
18840 if (ndr_flags & NDR_SCALARS) {
18841 NDR_CHECK(ndr_pull_array_size(ndr, &r->notifies));
18842 NDR_CHECK(ndr_pull_align(ndr, 5));
18843 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
18844 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
18845 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
18846 NDR_PULL_ALLOC_N(ndr, r->notifies, ndr_get_array_size(ndr, &r->notifies));
18847 _mem_save_notifies_0 = NDR_PULL_GET_MEM_CTX(ndr);
18848 NDR_PULL_SET_MEM_CTX(ndr, r->notifies, 0);
18849 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
18850 NDR_CHECK(ndr_pull_spoolss_Notify(ndr, NDR_SCALARS, &r->notifies[cntr_notifies_0]));
18852 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notifies_0, 0);
18854 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->notifies, r->count));
18856 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
18858 if (ndr_flags & NDR_BUFFERS) {
18859 _mem_save_notifies_0 = NDR_PULL_GET_MEM_CTX(ndr);
18860 NDR_PULL_SET_MEM_CTX(ndr, r->notifies, 0);
18861 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
18862 NDR_CHECK(ndr_pull_spoolss_Notify(ndr, NDR_BUFFERS, &r->notifies[cntr_notifies_0]));
18864 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notifies_0, 0);
18866 return NDR_ERR_SUCCESS;
18869 _PUBLIC_ void ndr_print_spoolss_NotifyInfo(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyInfo *r)
18871 uint32_t cntr_notifies_0;
18872 ndr_print_struct(ndr, name, "spoolss_NotifyInfo");
18874 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
18875 ndr_print_uint32(ndr, "flags", r->flags);
18876 ndr_print_uint32(ndr, "count", r->count);
18877 ndr->print(ndr, "%s: ARRAY(%d)", "notifies", (int)r->count);
18879 for (cntr_notifies_0=0;cntr_notifies_0<r->count;cntr_notifies_0++) {
18881 if (asprintf(&idx_0, "[%d]", cntr_notifies_0) != -1) {
18882 ndr_print_spoolss_Notify(ndr, "notifies", &r->notifies[cntr_notifies_0]);
18890 static enum ndr_err_code ndr_push_spoolss_ReplyPrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_ReplyPrinterInfo *r)
18892 if (ndr_flags & NDR_SCALARS) {
18893 int level = ndr_push_get_switch_value(ndr, r);
18894 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
18895 NDR_CHECK(ndr_push_union_align(ndr, 5));
18898 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info0));
18902 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18905 if (ndr_flags & NDR_BUFFERS) {
18906 int level = ndr_push_get_switch_value(ndr, r);
18910 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
18915 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18918 return NDR_ERR_SUCCESS;
18921 static enum ndr_err_code ndr_pull_spoolss_ReplyPrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_ReplyPrinterInfo *r)
18925 TALLOC_CTX *_mem_save_info0_0;
18926 level = ndr_pull_get_switch_value(ndr, r);
18927 if (ndr_flags & NDR_SCALARS) {
18928 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
18929 if (_level != level) {
18930 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
18932 NDR_CHECK(ndr_pull_union_align(ndr, 5));
18935 uint32_t _ptr_info0;
18936 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0));
18938 NDR_PULL_ALLOC(ndr, r->info0);
18945 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18948 if (ndr_flags & NDR_BUFFERS) {
18952 _mem_save_info0_0 = NDR_PULL_GET_MEM_CTX(ndr);
18953 NDR_PULL_SET_MEM_CTX(ndr, r->info0, 0);
18954 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
18955 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info0_0, 0);
18960 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18963 return NDR_ERR_SUCCESS;
18966 _PUBLIC_ void ndr_print_spoolss_ReplyPrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_ReplyPrinterInfo *r)
18969 level = ndr_print_get_switch_value(ndr, r);
18970 ndr_print_union(ndr, name, level, "spoolss_ReplyPrinterInfo");
18973 ndr_print_ptr(ndr, "info0", r->info0);
18976 ndr_print_spoolss_NotifyInfo(ndr, "info0", r->info0);
18982 ndr_print_bad_level(ndr, name, level);
18986 static enum ndr_err_code ndr_push_spoolss_PrinterNotifyFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
18988 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
18989 return NDR_ERR_SUCCESS;
18992 static enum ndr_err_code ndr_pull_spoolss_PrinterNotifyFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
18995 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
18997 return NDR_ERR_SUCCESS;
19000 _PUBLIC_ void ndr_print_spoolss_PrinterNotifyFlags(struct ndr_print *ndr, const char *name, uint32_t r)
19002 ndr_print_uint32(ndr, name, r);
19004 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDED", PRINTER_NOTIFY_INFO_DISCARDED, r);
19005 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDNOTED", PRINTER_NOTIFY_INFO_DISCARDNOTED, r);
19006 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_COLOR_MISMATCH", PRINTER_NOTIFY_INFO_COLOR_MISMATCH, r);
19010 static enum ndr_err_code ndr_push_spoolss_UserLevel1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel1 *r)
19012 if (ndr_flags & NDR_SCALARS) {
19013 NDR_CHECK(ndr_push_align(ndr, 5));
19014 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
19015 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client));
19016 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
19017 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
19018 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr, NDR_SCALARS, r->major));
19019 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr, NDR_SCALARS, r->minor));
19020 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor));
19021 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
19023 if (ndr_flags & NDR_BUFFERS) {
19025 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
19026 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
19027 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
19028 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client, ndr_charset_length(r->client, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19031 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
19032 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
19033 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
19034 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19037 return NDR_ERR_SUCCESS;
19040 static enum ndr_err_code ndr_pull_spoolss_UserLevel1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel1 *r)
19042 uint32_t _ptr_client;
19043 TALLOC_CTX *_mem_save_client_0;
19044 uint32_t _ptr_user;
19045 TALLOC_CTX *_mem_save_user_0;
19046 if (ndr_flags & NDR_SCALARS) {
19047 NDR_CHECK(ndr_pull_align(ndr, 5));
19048 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
19049 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client));
19051 NDR_PULL_ALLOC(ndr, r->client);
19055 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
19057 NDR_PULL_ALLOC(ndr, r->user);
19061 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
19062 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr, NDR_SCALARS, &r->major));
19063 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr, NDR_SCALARS, &r->minor));
19064 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor));
19065 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
19067 if (ndr_flags & NDR_BUFFERS) {
19069 _mem_save_client_0 = NDR_PULL_GET_MEM_CTX(ndr);
19070 NDR_PULL_SET_MEM_CTX(ndr, r->client, 0);
19071 NDR_CHECK(ndr_pull_array_size(ndr, &r->client));
19072 NDR_CHECK(ndr_pull_array_length(ndr, &r->client));
19073 if (ndr_get_array_length(ndr, &r->client) > ndr_get_array_size(ndr, &r->client)) {
19074 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));
19076 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t)));
19077 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t), CH_UTF16));
19078 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0);
19081 _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
19082 NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
19083 NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
19084 NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
19085 if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) {
19086 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));
19088 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t)));
19089 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16));
19090 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
19093 return NDR_ERR_SUCCESS;
19096 _PUBLIC_ void ndr_print_spoolss_UserLevel1(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel1 *r)
19098 ndr_print_struct(ndr, name, "spoolss_UserLevel1");
19100 ndr_print_uint32(ndr, "size", r->size);
19101 ndr_print_ptr(ndr, "client", r->client);
19104 ndr_print_string(ndr, "client", r->client);
19107 ndr_print_ptr(ndr, "user", r->user);
19110 ndr_print_string(ndr, "user", r->user);
19113 ndr_print_uint32(ndr, "build", r->build);
19114 ndr_print_spoolss_MajorVersion(ndr, "major", r->major);
19115 ndr_print_spoolss_MinorVersion(ndr, "minor", r->minor);
19116 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor", r->processor);
19120 static enum ndr_err_code ndr_push_spoolss_UserLevel2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel2 *r)
19122 if (ndr_flags & NDR_SCALARS) {
19123 NDR_CHECK(ndr_push_align(ndr, 4));
19124 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->not_used));
19125 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
19127 if (ndr_flags & NDR_BUFFERS) {
19129 return NDR_ERR_SUCCESS;
19132 static enum ndr_err_code ndr_pull_spoolss_UserLevel2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel2 *r)
19134 if (ndr_flags & NDR_SCALARS) {
19135 NDR_CHECK(ndr_pull_align(ndr, 4));
19136 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->not_used));
19137 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
19139 if (ndr_flags & NDR_BUFFERS) {
19141 return NDR_ERR_SUCCESS;
19144 _PUBLIC_ void ndr_print_spoolss_UserLevel2(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel2 *r)
19146 ndr_print_struct(ndr, name, "spoolss_UserLevel2");
19148 ndr_print_uint32(ndr, "not_used", r->not_used);
19152 static enum ndr_err_code ndr_push_spoolss_UserLevel3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel3 *r)
19154 if (ndr_flags & NDR_SCALARS) {
19155 NDR_CHECK(ndr_push_align(ndr, 5));
19156 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
19157 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
19158 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size2));
19159 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client));
19160 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
19161 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
19162 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr, NDR_SCALARS, r->major));
19163 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr, NDR_SCALARS, r->minor));
19164 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor));
19165 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->reserved));
19166 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
19168 if (ndr_flags & NDR_BUFFERS) {
19170 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
19171 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
19172 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
19173 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client, ndr_charset_length(r->client, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19176 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
19177 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
19178 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
19179 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19182 return NDR_ERR_SUCCESS;
19185 static enum ndr_err_code ndr_pull_spoolss_UserLevel3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel3 *r)
19187 uint32_t _ptr_client;
19188 TALLOC_CTX *_mem_save_client_0;
19189 uint32_t _ptr_user;
19190 TALLOC_CTX *_mem_save_user_0;
19191 if (ndr_flags & NDR_SCALARS) {
19192 NDR_CHECK(ndr_pull_align(ndr, 5));
19193 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
19194 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
19195 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size2));
19196 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client));
19198 NDR_PULL_ALLOC(ndr, r->client);
19202 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
19204 NDR_PULL_ALLOC(ndr, r->user);
19208 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
19209 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr, NDR_SCALARS, &r->major));
19210 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr, NDR_SCALARS, &r->minor));
19211 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor));
19212 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->reserved));
19213 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
19215 if (ndr_flags & NDR_BUFFERS) {
19217 _mem_save_client_0 = NDR_PULL_GET_MEM_CTX(ndr);
19218 NDR_PULL_SET_MEM_CTX(ndr, r->client, 0);
19219 NDR_CHECK(ndr_pull_array_size(ndr, &r->client));
19220 NDR_CHECK(ndr_pull_array_length(ndr, &r->client));
19221 if (ndr_get_array_length(ndr, &r->client) > ndr_get_array_size(ndr, &r->client)) {
19222 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));
19224 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t)));
19225 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t), CH_UTF16));
19226 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0);
19229 _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
19230 NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
19231 NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
19232 NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
19233 if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) {
19234 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));
19236 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t)));
19237 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16));
19238 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
19241 return NDR_ERR_SUCCESS;
19244 _PUBLIC_ void ndr_print_spoolss_UserLevel3(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel3 *r)
19246 ndr_print_struct(ndr, name, "spoolss_UserLevel3");
19248 ndr_print_uint32(ndr, "size", r->size);
19249 ndr_print_uint32(ndr, "flags", r->flags);
19250 ndr_print_uint32(ndr, "size2", r->size2);
19251 ndr_print_ptr(ndr, "client", r->client);
19254 ndr_print_string(ndr, "client", r->client);
19257 ndr_print_ptr(ndr, "user", r->user);
19260 ndr_print_string(ndr, "user", r->user);
19263 ndr_print_uint32(ndr, "build", r->build);
19264 ndr_print_spoolss_MajorVersion(ndr, "major", r->major);
19265 ndr_print_spoolss_MinorVersion(ndr, "minor", r->minor);
19266 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor", r->processor);
19267 ndr_print_udlong(ndr, "reserved", r->reserved);
19271 static enum ndr_err_code ndr_push_spoolss_UserLevel(struct ndr_push *ndr, int ndr_flags, const union spoolss_UserLevel *r)
19273 if (ndr_flags & NDR_SCALARS) {
19274 int level = ndr_push_get_switch_value(ndr, r);
19275 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
19276 NDR_CHECK(ndr_push_union_align(ndr, 5));
19279 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level1));
19283 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level2));
19287 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level3));
19291 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19294 if (ndr_flags & NDR_BUFFERS) {
19295 int level = ndr_push_get_switch_value(ndr, r);
19299 NDR_CHECK(ndr_push_spoolss_UserLevel1(ndr, NDR_SCALARS|NDR_BUFFERS, r->level1));
19305 NDR_CHECK(ndr_push_spoolss_UserLevel2(ndr, NDR_SCALARS, r->level2));
19311 NDR_CHECK(ndr_push_spoolss_UserLevel3(ndr, NDR_SCALARS|NDR_BUFFERS, r->level3));
19316 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19319 return NDR_ERR_SUCCESS;
19322 static enum ndr_err_code ndr_pull_spoolss_UserLevel(struct ndr_pull *ndr, int ndr_flags, union spoolss_UserLevel *r)
19326 TALLOC_CTX *_mem_save_level1_0;
19327 TALLOC_CTX *_mem_save_level2_0;
19328 TALLOC_CTX *_mem_save_level3_0;
19329 level = ndr_pull_get_switch_value(ndr, r);
19330 if (ndr_flags & NDR_SCALARS) {
19331 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
19332 if (_level != level) {
19333 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
19335 NDR_CHECK(ndr_pull_union_align(ndr, 5));
19338 uint32_t _ptr_level1;
19339 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level1));
19341 NDR_PULL_ALLOC(ndr, r->level1);
19348 uint32_t _ptr_level2;
19349 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level2));
19351 NDR_PULL_ALLOC(ndr, r->level2);
19358 uint32_t _ptr_level3;
19359 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level3));
19361 NDR_PULL_ALLOC(ndr, r->level3);
19368 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19371 if (ndr_flags & NDR_BUFFERS) {
19375 _mem_save_level1_0 = NDR_PULL_GET_MEM_CTX(ndr);
19376 NDR_PULL_SET_MEM_CTX(ndr, r->level1, 0);
19377 NDR_CHECK(ndr_pull_spoolss_UserLevel1(ndr, NDR_SCALARS|NDR_BUFFERS, r->level1));
19378 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level1_0, 0);
19384 _mem_save_level2_0 = NDR_PULL_GET_MEM_CTX(ndr);
19385 NDR_PULL_SET_MEM_CTX(ndr, r->level2, 0);
19386 NDR_CHECK(ndr_pull_spoolss_UserLevel2(ndr, NDR_SCALARS, r->level2));
19387 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level2_0, 0);
19393 _mem_save_level3_0 = NDR_PULL_GET_MEM_CTX(ndr);
19394 NDR_PULL_SET_MEM_CTX(ndr, r->level3, 0);
19395 NDR_CHECK(ndr_pull_spoolss_UserLevel3(ndr, NDR_SCALARS|NDR_BUFFERS, r->level3));
19396 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level3_0, 0);
19401 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19404 return NDR_ERR_SUCCESS;
19407 _PUBLIC_ void ndr_print_spoolss_UserLevel(struct ndr_print *ndr, const char *name, const union spoolss_UserLevel *r)
19410 level = ndr_print_get_switch_value(ndr, r);
19411 ndr_print_union(ndr, name, level, "spoolss_UserLevel");
19414 ndr_print_ptr(ndr, "level1", r->level1);
19417 ndr_print_spoolss_UserLevel1(ndr, "level1", r->level1);
19423 ndr_print_ptr(ndr, "level2", r->level2);
19426 ndr_print_spoolss_UserLevel2(ndr, "level2", r->level2);
19432 ndr_print_ptr(ndr, "level3", r->level3);
19435 ndr_print_spoolss_UserLevel3(ndr, "level3", r->level3);
19441 ndr_print_bad_level(ndr, name, level);
19445 static enum ndr_err_code ndr_push_spoolss_UserLevelCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevelCtr *r)
19447 if (ndr_flags & NDR_SCALARS) {
19448 NDR_CHECK(ndr_push_align(ndr, 5));
19449 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
19450 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->user_info, r->level));
19451 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_SCALARS, &r->user_info));
19452 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
19454 if (ndr_flags & NDR_BUFFERS) {
19455 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_BUFFERS, &r->user_info));
19457 return NDR_ERR_SUCCESS;
19460 static enum ndr_err_code ndr_pull_spoolss_UserLevelCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevelCtr *r)
19462 if (ndr_flags & NDR_SCALARS) {
19463 NDR_CHECK(ndr_pull_align(ndr, 5));
19464 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
19465 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->user_info, r->level));
19466 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_SCALARS, &r->user_info));
19467 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
19469 if (ndr_flags & NDR_BUFFERS) {
19470 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_BUFFERS, &r->user_info));
19472 return NDR_ERR_SUCCESS;
19475 _PUBLIC_ void ndr_print_spoolss_UserLevelCtr(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevelCtr *r)
19477 ndr_print_struct(ndr, name, "spoolss_UserLevelCtr");
19479 ndr_print_uint32(ndr, "level", r->level);
19480 ndr_print_set_switch_value(ndr, &r->user_info, r->level);
19481 ndr_print_spoolss_UserLevel(ndr, "user_info", &r->user_info);
19485 static enum ndr_err_code ndr_push_spoolss_AccessRights(struct ndr_push *ndr, int ndr_flags, uint32_t r)
19487 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
19488 return NDR_ERR_SUCCESS;
19491 static enum ndr_err_code ndr_pull_spoolss_AccessRights(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
19494 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
19496 return NDR_ERR_SUCCESS;
19499 _PUBLIC_ void ndr_print_spoolss_AccessRights(struct ndr_print *ndr, const char *name, uint32_t r)
19501 ndr_print_uint32(ndr, name, r);
19503 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SERVER_ACCESS_ADMINISTER", SERVER_ACCESS_ADMINISTER, r);
19504 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SERVER_ACCESS_ENUMERATE", SERVER_ACCESS_ENUMERATE, r);
19505 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ACCESS_ADMINISTER", PRINTER_ACCESS_ADMINISTER, r);
19506 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ACCESS_USE", PRINTER_ACCESS_USE, r);
19507 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_ACCESS_ADMINISTER", JOB_ACCESS_ADMINISTER, r);
19508 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_ACCESS_READ", JOB_ACCESS_READ, r);
19512 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterEnumValues(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterEnumValues *r)
19514 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
19515 if (ndr_flags & NDR_SCALARS) {
19516 NDR_CHECK(ndr_push_align(ndr, 5));
19517 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
19519 uint32_t _flags_save_string = ndr->flags;
19520 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19521 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->value_name));
19522 ndr->flags = _flags_save_string;
19524 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2 * strlen_m_term(r->value_name)));
19525 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->type));
19526 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data));
19527 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_PrinterData(r->data, r->type, ndr->iconv_convenience, ndr->flags)));
19528 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
19530 if (ndr_flags & NDR_BUFFERS) {
19531 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
19533 uint32_t _flags_save_string = ndr->flags;
19534 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19535 if (r->value_name) {
19536 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->value_name));
19537 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->value_name));
19539 ndr->flags = _flags_save_string;
19542 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data));
19544 struct ndr_push *_ndr_data;
19545 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_data, 0, r->data_length));
19546 NDR_CHECK(ndr_push_set_switch_value(_ndr_data, r->data, r->type));
19547 NDR_CHECK(ndr_push_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, r->data));
19548 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_data, 0, r->data_length));
19552 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
19553 return NDR_ERR_SUCCESS;
19556 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterEnumValues(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterEnumValues *r)
19558 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
19559 uint32_t _ptr_value_name;
19560 TALLOC_CTX *_mem_save_value_name_0;
19561 uint32_t _ptr_data;
19562 TALLOC_CTX *_mem_save_data_0;
19563 if (ndr_flags & NDR_SCALARS) {
19564 NDR_CHECK(ndr_pull_align(ndr, 5));
19565 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
19567 uint32_t _flags_save_string = ndr->flags;
19568 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19569 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_value_name));
19570 if (_ptr_value_name) {
19571 NDR_PULL_ALLOC(ndr, r->value_name);
19572 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->value_name, _ptr_value_name));
19574 r->value_name = NULL;
19576 ndr->flags = _flags_save_string;
19578 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->value_name_len));
19579 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->type));
19580 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
19582 NDR_PULL_ALLOC(ndr, r->data);
19583 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data, _ptr_data));
19587 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->data_length));
19588 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
19590 if (ndr_flags & NDR_BUFFERS) {
19591 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
19593 uint32_t _flags_save_string = ndr->flags;
19594 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19595 if (r->value_name) {
19596 uint32_t _relative_save_offset;
19597 _relative_save_offset = ndr->offset;
19598 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->value_name));
19599 _mem_save_value_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
19600 NDR_PULL_SET_MEM_CTX(ndr, r->value_name, 0);
19601 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->value_name));
19602 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_name_0, 0);
19603 if (ndr->offset > ndr->relative_highest_offset) {
19604 ndr->relative_highest_offset = ndr->offset;
19606 ndr->offset = _relative_save_offset;
19608 ndr->flags = _flags_save_string;
19611 uint32_t _relative_save_offset;
19612 _relative_save_offset = ndr->offset;
19613 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data));
19614 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
19615 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
19617 struct ndr_pull *_ndr_data;
19618 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_data, 0, r->data_length));
19619 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data, r->data, r->type));
19620 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, r->data));
19621 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_data, 0, r->data_length));
19623 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
19624 if (ndr->offset > ndr->relative_highest_offset) {
19625 ndr->relative_highest_offset = ndr->offset;
19627 ndr->offset = _relative_save_offset;
19630 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
19631 return NDR_ERR_SUCCESS;
19634 _PUBLIC_ void ndr_print_spoolss_PrinterEnumValues(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterEnumValues *r)
19636 ndr_print_struct(ndr, name, "spoolss_PrinterEnumValues");
19638 ndr_print_ptr(ndr, "value_name", r->value_name);
19640 if (r->value_name) {
19641 ndr_print_string(ndr, "value_name", r->value_name);
19644 ndr_print_uint32(ndr, "value_name_len", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2 * strlen_m_term(r->value_name):r->value_name_len);
19645 ndr_print_winreg_Type(ndr, "type", r->type);
19646 ndr_print_ptr(ndr, "data", r->data);
19649 ndr_print_set_switch_value(ndr, r->data, r->type);
19650 ndr_print_spoolss_PrinterData(ndr, "data", r->data);
19653 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);
19657 _PUBLIC_ size_t ndr_size_spoolss_PrinterEnumValues(const struct spoolss_PrinterEnumValues *r, struct smb_iconv_convenience *ic, int flags)
19659 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterEnumValues, ic);
19662 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DeleteDriverFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
19664 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
19665 return NDR_ERR_SUCCESS;
19668 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DeleteDriverFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
19671 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
19673 return NDR_ERR_SUCCESS;
19676 _PUBLIC_ void ndr_print_spoolss_DeleteDriverFlags(struct ndr_print *ndr, const char *name, uint32_t r)
19678 ndr_print_uint32(ndr, name, r);
19680 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_UNUSED_FILES", DPD_DELETE_UNUSED_FILES, r);
19681 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_SPECIFIC_VERSION", DPD_DELETE_SPECIFIC_VERSION, r);
19682 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_ALL_FILES", DPD_DELETE_ALL_FILES, r);
19686 static enum ndr_err_code ndr_push_spoolss_PortProtocol(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortProtocol r)
19688 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
19689 return NDR_ERR_SUCCESS;
19692 static enum ndr_err_code ndr_pull_spoolss_PortProtocol(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortProtocol *r)
19695 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
19697 return NDR_ERR_SUCCESS;
19700 _PUBLIC_ void ndr_print_spoolss_PortProtocol(struct ndr_print *ndr, const char *name, enum spoolss_PortProtocol r)
19702 const char *val = NULL;
19705 case PROTOCOL_RAWTCP_TYPE: val = "PROTOCOL_RAWTCP_TYPE"; break;
19706 case PROTOCOL_LPR_TYPE: val = "PROTOCOL_LPR_TYPE"; break;
19708 ndr_print_enum(ndr, name, "ENUM", val, r);
19711 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortData1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortData1 *r)
19713 if (ndr_flags & NDR_SCALARS) {
19714 NDR_CHECK(ndr_push_align(ndr, 4));
19715 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, 64, sizeof(uint16_t), CH_UTF16));
19716 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0x00000001));
19717 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr, NDR_SCALARS, r->protocol));
19718 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, sizeof(r)));
19719 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
19720 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hostaddress, 49, sizeof(uint16_t), CH_UTF16));
19721 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
19722 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dblspool));
19723 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->queue, 33, sizeof(uint16_t), CH_UTF16));
19724 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->ip_address, 16, sizeof(uint16_t), CH_UTF16));
19725 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_address, 13, sizeof(uint16_t), CH_UTF16));
19726 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->device_type, 257, sizeof(uint16_t), CH_UTF16));
19727 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_number));
19728 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_enabled));
19729 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_dev_index));
19730 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
19732 if (ndr_flags & NDR_BUFFERS) {
19734 return NDR_ERR_SUCCESS;
19737 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortData1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortData1 *r)
19739 if (ndr_flags & NDR_SCALARS) {
19740 NDR_CHECK(ndr_pull_align(ndr, 4));
19741 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, 64, sizeof(uint16_t), CH_UTF16));
19742 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
19743 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr, NDR_SCALARS, &r->protocol));
19744 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
19745 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
19746 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hostaddress, 49, sizeof(uint16_t), CH_UTF16));
19747 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
19748 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dblspool));
19749 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->queue, 33, sizeof(uint16_t), CH_UTF16));
19750 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->ip_address, 16, sizeof(uint16_t), CH_UTF16));
19751 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_address, 13, sizeof(uint16_t), CH_UTF16));
19752 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device_type, 257, sizeof(uint16_t), CH_UTF16));
19753 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_number));
19754 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_enabled));
19755 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_dev_index));
19756 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
19758 if (ndr_flags & NDR_BUFFERS) {
19760 return NDR_ERR_SUCCESS;
19763 _PUBLIC_ void ndr_print_spoolss_PortData1(struct ndr_print *ndr, const char *name, const struct spoolss_PortData1 *r)
19765 ndr_print_struct(ndr, name, "spoolss_PortData1");
19767 ndr_print_string(ndr, "portname", r->portname);
19768 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x00000001:r->version);
19769 ndr_print_spoolss_PortProtocol(ndr, "protocol", r->protocol);
19770 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?sizeof(r):r->size);
19771 ndr_print_uint32(ndr, "reserved", r->reserved);
19772 ndr_print_string(ndr, "hostaddress", r->hostaddress);
19773 ndr_print_string(ndr, "snmpcommunity", r->snmpcommunity);
19774 ndr_print_uint32(ndr, "dblspool", r->dblspool);
19775 ndr_print_string(ndr, "queue", r->queue);
19776 ndr_print_string(ndr, "ip_address", r->ip_address);
19777 ndr_print_string(ndr, "hardware_address", r->hardware_address);
19778 ndr_print_string(ndr, "device_type", r->device_type);
19779 ndr_print_uint32(ndr, "port_number", r->port_number);
19780 ndr_print_uint32(ndr, "snmp_enabled", r->snmp_enabled);
19781 ndr_print_uint32(ndr, "snmp_dev_index", r->snmp_dev_index);
19785 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortData2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortData2 *r)
19787 if (ndr_flags & NDR_SCALARS) {
19788 NDR_CHECK(ndr_push_align(ndr, 4));
19789 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, 64, sizeof(uint16_t), CH_UTF16));
19790 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0x00000002));
19791 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr, NDR_SCALARS, r->protocol));
19792 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, sizeof(r)));
19793 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
19794 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hostaddress, 128, sizeof(uint16_t), CH_UTF16));
19795 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
19796 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dblspool));
19797 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->queue, 33, sizeof(uint16_t), CH_UTF16));
19798 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->device_type, 257, sizeof(uint16_t), CH_UTF16));
19799 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_number));
19800 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_enabled));
19801 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_dev_index));
19802 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_monitor_mib_index));
19803 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
19805 if (ndr_flags & NDR_BUFFERS) {
19807 return NDR_ERR_SUCCESS;
19810 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortData2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortData2 *r)
19812 if (ndr_flags & NDR_SCALARS) {
19813 NDR_CHECK(ndr_pull_align(ndr, 4));
19814 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, 64, sizeof(uint16_t), CH_UTF16));
19815 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
19816 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr, NDR_SCALARS, &r->protocol));
19817 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
19818 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
19819 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hostaddress, 128, sizeof(uint16_t), CH_UTF16));
19820 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
19821 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dblspool));
19822 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->queue, 33, sizeof(uint16_t), CH_UTF16));
19823 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device_type, 257, sizeof(uint16_t), CH_UTF16));
19824 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_number));
19825 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_enabled));
19826 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_dev_index));
19827 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_monitor_mib_index));
19828 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
19830 if (ndr_flags & NDR_BUFFERS) {
19832 return NDR_ERR_SUCCESS;
19835 _PUBLIC_ void ndr_print_spoolss_PortData2(struct ndr_print *ndr, const char *name, const struct spoolss_PortData2 *r)
19837 ndr_print_struct(ndr, name, "spoolss_PortData2");
19839 ndr_print_string(ndr, "portname", r->portname);
19840 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x00000002:r->version);
19841 ndr_print_spoolss_PortProtocol(ndr, "protocol", r->protocol);
19842 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?sizeof(r):r->size);
19843 ndr_print_uint32(ndr, "reserved", r->reserved);
19844 ndr_print_string(ndr, "hostaddress", r->hostaddress);
19845 ndr_print_string(ndr, "snmpcommunity", r->snmpcommunity);
19846 ndr_print_uint32(ndr, "dblspool", r->dblspool);
19847 ndr_print_string(ndr, "queue", r->queue);
19848 ndr_print_string(ndr, "device_type", r->device_type);
19849 ndr_print_uint32(ndr, "port_number", r->port_number);
19850 ndr_print_uint32(ndr, "snmp_enabled", r->snmp_enabled);
19851 ndr_print_uint32(ndr, "snmp_dev_index", r->snmp_dev_index);
19852 ndr_print_uint32(ndr, "port_monitor_mib_index", r->port_monitor_mib_index);
19856 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorUi(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorUi *r)
19858 if (ndr_flags & NDR_SCALARS) {
19859 NDR_CHECK(ndr_push_align(ndr, 4));
19861 uint32_t _flags_save_string = ndr->flags;
19862 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19863 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dll_name));
19864 ndr->flags = _flags_save_string;
19866 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
19868 if (ndr_flags & NDR_BUFFERS) {
19870 return NDR_ERR_SUCCESS;
19873 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorUi(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorUi *r)
19875 if (ndr_flags & NDR_SCALARS) {
19876 NDR_CHECK(ndr_pull_align(ndr, 4));
19878 uint32_t _flags_save_string = ndr->flags;
19879 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19880 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->dll_name));
19881 ndr->flags = _flags_save_string;
19883 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
19885 if (ndr_flags & NDR_BUFFERS) {
19887 return NDR_ERR_SUCCESS;
19890 _PUBLIC_ void ndr_print_spoolss_MonitorUi(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorUi *r)
19892 ndr_print_struct(ndr, name, "spoolss_MonitorUi");
19894 ndr_print_string(ndr, "dll_name", r->dll_name);
19898 static enum ndr_err_code ndr_push_spoolss_AddPrinterDriverExFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
19900 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
19901 return NDR_ERR_SUCCESS;
19904 static enum ndr_err_code ndr_pull_spoolss_AddPrinterDriverExFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
19907 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
19909 return NDR_ERR_SUCCESS;
19912 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriverExFlags(struct ndr_print *ndr, const char *name, uint32_t r)
19914 ndr_print_uint32(ndr, name, r);
19916 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_STRICT_UPGRADE", APD_STRICT_UPGRADE, r);
19917 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_STRICT_DOWNGRADE", APD_STRICT_DOWNGRADE, r);
19918 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_ALL_FILES", APD_COPY_ALL_FILES, r);
19919 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_NEW_FILES", APD_COPY_NEW_FILES, r);
19920 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_FROM_DIRECTORY", APD_COPY_FROM_DIRECTORY, r);
19921 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_DONT_COPY_FILES_TO_CLUSTER", APD_DONT_COPY_FILES_TO_CLUSTER, r);
19922 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_TO_ALL_SPOOLERS", APD_COPY_TO_ALL_SPOOLERS, r);
19923 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_RETURN_BLOCKING_STATUS_CODE", APD_RETURN_BLOCKING_STATUS_CODE, r);
19927 static enum ndr_err_code ndr_push_spoolss_CorePrinterDriver(struct ndr_push *ndr, int ndr_flags, const struct spoolss_CorePrinterDriver *r)
19929 if (ndr_flags & NDR_SCALARS) {
19930 NDR_CHECK(ndr_push_align(ndr, 8));
19931 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->core_driver_guid));
19932 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
19933 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
19934 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->formname, 520, sizeof(uint8_t), CH_UTF8));
19935 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
19937 if (ndr_flags & NDR_BUFFERS) {
19939 return NDR_ERR_SUCCESS;
19942 static enum ndr_err_code ndr_pull_spoolss_CorePrinterDriver(struct ndr_pull *ndr, int ndr_flags, struct spoolss_CorePrinterDriver *r)
19944 if (ndr_flags & NDR_SCALARS) {
19945 NDR_CHECK(ndr_pull_align(ndr, 8));
19946 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->core_driver_guid));
19947 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
19948 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
19949 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->formname, 520, sizeof(uint8_t), CH_UTF8));
19950 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
19952 if (ndr_flags & NDR_BUFFERS) {
19954 return NDR_ERR_SUCCESS;
19957 _PUBLIC_ void ndr_print_spoolss_CorePrinterDriver(struct ndr_print *ndr, const char *name, const struct spoolss_CorePrinterDriver *r)
19959 ndr_print_struct(ndr, name, "spoolss_CorePrinterDriver");
19961 ndr_print_GUID(ndr, "core_driver_guid", &r->core_driver_guid);
19962 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
19963 ndr_print_hyper(ndr, "driver_version", r->driver_version);
19964 ndr_print_string(ndr, "formname", r->formname);
19968 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinters(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinters *r)
19970 if (flags & NDR_IN) {
19971 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, r->in.flags));
19972 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
19973 if (r->in.server) {
19974 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
19975 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
19976 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
19977 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19979 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
19980 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
19981 if (r->in.buffer) {
19982 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
19984 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
19986 if (flags & NDR_OUT) {
19987 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
19989 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
19991 if (r->out.needed == NULL) {
19992 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19994 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
19995 if (r->out.count == NULL) {
19996 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19998 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
19999 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20001 return NDR_ERR_SUCCESS;
20004 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinters(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinters *r)
20006 uint32_t _ptr_server;
20007 uint32_t _ptr_buffer;
20008 uint32_t _ptr_info;
20009 TALLOC_CTX *_mem_save_server_0;
20010 TALLOC_CTX *_mem_save_buffer_0;
20011 TALLOC_CTX *_mem_save_info_0;
20012 TALLOC_CTX *_mem_save_needed_0;
20013 TALLOC_CTX *_mem_save_count_0;
20014 if (flags & NDR_IN) {
20015 ZERO_STRUCT(r->out);
20017 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, &r->in.flags));
20018 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
20020 NDR_PULL_ALLOC(ndr, r->in.server);
20022 r->in.server = NULL;
20024 if (r->in.server) {
20025 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
20026 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
20027 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
20028 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
20029 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
20030 return 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));
20032 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
20033 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
20034 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
20036 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20037 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20039 NDR_PULL_ALLOC(ndr, r->in.buffer);
20041 r->in.buffer = NULL;
20043 if (r->in.buffer) {
20044 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
20045 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20046 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
20047 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20049 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
20050 NDR_PULL_ALLOC(ndr, r->out.needed);
20051 ZERO_STRUCTP(r->out.needed);
20052 NDR_PULL_ALLOC(ndr, r->out.count);
20053 ZERO_STRUCTP(r->out.count);
20055 if (flags & NDR_OUT) {
20056 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
20058 NDR_PULL_ALLOC(ndr, r->out.info);
20060 r->out.info = NULL;
20063 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20064 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20065 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
20066 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20068 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20069 NDR_PULL_ALLOC(ndr, r->out.needed);
20071 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
20072 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
20073 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
20074 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
20075 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20076 NDR_PULL_ALLOC(ndr, r->out.count);
20078 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
20079 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
20080 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
20081 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
20082 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20084 return NDR_ERR_SUCCESS;
20087 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinters(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinters *r)
20089 uint32_t cntr_info_0;
20090 if (flags & NDR_IN) {
20091 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20092 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
20094 if (flags & NDR_OUT) {
20095 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20096 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
20097 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
20099 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20100 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
20103 return NDR_ERR_SUCCESS;
20106 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinters(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinters *r)
20108 uint32_t cntr_info_0;
20109 TALLOC_CTX *_mem_save_info_0;
20110 if (flags & NDR_IN) {
20111 ZERO_STRUCT(r->out);
20113 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20114 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
20116 if (flags & NDR_OUT) {
20117 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
20118 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20119 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20120 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20121 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
20122 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
20124 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20125 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
20127 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20129 return NDR_ERR_SUCCESS;
20132 _PUBLIC_ void ndr_print_spoolss_EnumPrinters(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinters *r)
20134 uint32_t cntr_info_2;
20135 ndr_print_struct(ndr, name, "spoolss_EnumPrinters");
20137 if (flags & NDR_SET_VALUES) {
20138 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20140 if (flags & NDR_IN) {
20141 ndr_print_struct(ndr, "in", "spoolss_EnumPrinters");
20143 ndr_print_spoolss_EnumPrinterFlags(ndr, "flags", r->in.flags);
20144 ndr_print_ptr(ndr, "server", r->in.server);
20146 if (r->in.server) {
20147 ndr_print_string(ndr, "server", r->in.server);
20150 ndr_print_uint32(ndr, "level", r->in.level);
20151 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20153 if (r->in.buffer) {
20154 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
20157 ndr_print_uint32(ndr, "offered", r->in.offered);
20160 if (flags & NDR_OUT) {
20161 ndr_print_struct(ndr, "out", "spoolss_EnumPrinters");
20163 ndr_print_ptr(ndr, "count", r->out.count);
20165 ndr_print_uint32(ndr, "count", *r->out.count);
20167 ndr_print_ptr(ndr, "info", r->out.info);
20169 ndr_print_ptr(ndr, "info", *r->out.info);
20171 if (*r->out.info) {
20172 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
20174 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
20176 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
20177 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
20178 ndr_print_spoolss_PrinterInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
20186 ndr_print_ptr(ndr, "needed", r->out.needed);
20188 ndr_print_uint32(ndr, "needed", *r->out.needed);
20190 ndr_print_WERROR(ndr, "result", r->out.result);
20196 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OpenPrinter(struct ndr_push *ndr, int flags, const struct spoolss_OpenPrinter *r)
20198 if (flags & NDR_IN) {
20199 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.printername));
20200 if (r->in.printername) {
20201 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
20202 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
20203 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
20204 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20206 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.datatype));
20207 if (r->in.datatype) {
20208 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
20209 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
20210 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
20211 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.datatype, ndr_charset_length(r->in.datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20213 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
20214 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr, NDR_SCALARS, r->in.access_mask));
20216 if (flags & NDR_OUT) {
20217 if (r->out.handle == NULL) {
20218 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20220 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
20221 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20223 return NDR_ERR_SUCCESS;
20226 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OpenPrinter(struct ndr_pull *ndr, int flags, struct spoolss_OpenPrinter *r)
20228 uint32_t _ptr_printername;
20229 uint32_t _ptr_datatype;
20230 TALLOC_CTX *_mem_save_printername_0;
20231 TALLOC_CTX *_mem_save_datatype_0;
20232 TALLOC_CTX *_mem_save_handle_0;
20233 if (flags & NDR_IN) {
20234 ZERO_STRUCT(r->out);
20236 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
20237 if (_ptr_printername) {
20238 NDR_PULL_ALLOC(ndr, r->in.printername);
20240 r->in.printername = NULL;
20242 if (r->in.printername) {
20243 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
20244 NDR_PULL_SET_MEM_CTX(ndr, r->in.printername, 0);
20245 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
20246 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
20247 if (ndr_get_array_length(ndr, &r->in.printername) > ndr_get_array_size(ndr, &r->in.printername)) {
20248 return 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));
20250 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t)));
20251 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t), CH_UTF16));
20252 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
20254 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
20255 if (_ptr_datatype) {
20256 NDR_PULL_ALLOC(ndr, r->in.datatype);
20258 r->in.datatype = NULL;
20260 if (r->in.datatype) {
20261 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
20262 NDR_PULL_SET_MEM_CTX(ndr, r->in.datatype, 0);
20263 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.datatype));
20264 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.datatype));
20265 if (ndr_get_array_length(ndr, &r->in.datatype) > ndr_get_array_size(ndr, &r->in.datatype)) {
20266 return 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));
20268 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t)));
20269 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t), CH_UTF16));
20270 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
20272 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
20273 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr, NDR_SCALARS, &r->in.access_mask));
20274 NDR_PULL_ALLOC(ndr, r->out.handle);
20275 ZERO_STRUCTP(r->out.handle);
20277 if (flags & NDR_OUT) {
20278 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20279 NDR_PULL_ALLOC(ndr, r->out.handle);
20281 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20282 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
20283 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
20284 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20285 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20287 return NDR_ERR_SUCCESS;
20290 _PUBLIC_ void ndr_print_spoolss_OpenPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_OpenPrinter *r)
20292 ndr_print_struct(ndr, name, "spoolss_OpenPrinter");
20294 if (flags & NDR_SET_VALUES) {
20295 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20297 if (flags & NDR_IN) {
20298 ndr_print_struct(ndr, "in", "spoolss_OpenPrinter");
20300 ndr_print_ptr(ndr, "printername", r->in.printername);
20302 if (r->in.printername) {
20303 ndr_print_string(ndr, "printername", r->in.printername);
20306 ndr_print_ptr(ndr, "datatype", r->in.datatype);
20308 if (r->in.datatype) {
20309 ndr_print_string(ndr, "datatype", r->in.datatype);
20312 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", &r->in.devmode_ctr);
20313 ndr_print_spoolss_AccessRights(ndr, "access_mask", r->in.access_mask);
20316 if (flags & NDR_OUT) {
20317 ndr_print_struct(ndr, "out", "spoolss_OpenPrinter");
20319 ndr_print_ptr(ndr, "handle", r->out.handle);
20321 ndr_print_policy_handle(ndr, "handle", r->out.handle);
20323 ndr_print_WERROR(ndr, "result", r->out.result);
20329 static enum ndr_err_code ndr_push_spoolss_SetJob(struct ndr_push *ndr, int flags, const struct spoolss_SetJob *r)
20331 if (flags & NDR_IN) {
20332 if (r->in.handle == NULL) {
20333 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20335 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20336 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.job_id));
20337 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.ctr));
20339 NDR_CHECK(ndr_push_spoolss_JobInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
20341 NDR_CHECK(ndr_push_spoolss_JobControl(ndr, NDR_SCALARS, r->in.command));
20343 if (flags & NDR_OUT) {
20344 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20346 return NDR_ERR_SUCCESS;
20349 static enum ndr_err_code ndr_pull_spoolss_SetJob(struct ndr_pull *ndr, int flags, struct spoolss_SetJob *r)
20352 TALLOC_CTX *_mem_save_handle_0;
20353 TALLOC_CTX *_mem_save_ctr_0;
20354 if (flags & NDR_IN) {
20355 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20356 NDR_PULL_ALLOC(ndr, r->in.handle);
20358 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20359 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20360 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20361 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20362 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.job_id));
20363 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr));
20365 NDR_PULL_ALLOC(ndr, r->in.ctr);
20370 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20371 NDR_PULL_SET_MEM_CTX(ndr, r->in.ctr, 0);
20372 NDR_CHECK(ndr_pull_spoolss_JobInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
20373 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, 0);
20375 NDR_CHECK(ndr_pull_spoolss_JobControl(ndr, NDR_SCALARS, &r->in.command));
20377 if (flags & NDR_OUT) {
20378 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20380 return NDR_ERR_SUCCESS;
20383 _PUBLIC_ void ndr_print_spoolss_SetJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetJob *r)
20385 ndr_print_struct(ndr, name, "spoolss_SetJob");
20387 if (flags & NDR_SET_VALUES) {
20388 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20390 if (flags & NDR_IN) {
20391 ndr_print_struct(ndr, "in", "spoolss_SetJob");
20393 ndr_print_ptr(ndr, "handle", r->in.handle);
20395 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20397 ndr_print_uint32(ndr, "job_id", r->in.job_id);
20398 ndr_print_ptr(ndr, "ctr", r->in.ctr);
20401 ndr_print_spoolss_JobInfoContainer(ndr, "ctr", r->in.ctr);
20404 ndr_print_spoolss_JobControl(ndr, "command", r->in.command);
20407 if (flags & NDR_OUT) {
20408 ndr_print_struct(ndr, "out", "spoolss_SetJob");
20410 ndr_print_WERROR(ndr, "result", r->out.result);
20416 static enum ndr_err_code ndr_push_spoolss_GetJob(struct ndr_push *ndr, int flags, const struct spoolss_GetJob *r)
20418 if (flags & NDR_IN) {
20419 if (r->in.handle == NULL) {
20420 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20422 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20423 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.job_id));
20424 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20425 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20426 if (r->in.buffer) {
20427 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
20429 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
20431 if (flags & NDR_OUT) {
20432 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
20435 struct ndr_push *_ndr_info;
20436 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
20437 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
20438 NDR_CHECK(ndr_push_spoolss_JobInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
20439 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
20442 if (r->out.needed == NULL) {
20443 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20445 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
20446 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20448 return NDR_ERR_SUCCESS;
20451 static enum ndr_err_code ndr_pull_spoolss_GetJob(struct ndr_pull *ndr, int flags, struct spoolss_GetJob *r)
20453 uint32_t _ptr_buffer;
20454 uint32_t _ptr_info;
20455 TALLOC_CTX *_mem_save_handle_0;
20456 TALLOC_CTX *_mem_save_buffer_0;
20457 TALLOC_CTX *_mem_save_info_0;
20458 TALLOC_CTX *_mem_save_needed_0;
20459 if (flags & NDR_IN) {
20460 ZERO_STRUCT(r->out);
20462 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20463 NDR_PULL_ALLOC(ndr, r->in.handle);
20465 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20466 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20467 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20468 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20469 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.job_id));
20470 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20471 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20473 NDR_PULL_ALLOC(ndr, r->in.buffer);
20475 r->in.buffer = NULL;
20477 if (r->in.buffer) {
20478 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
20479 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20480 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
20481 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20483 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
20484 NDR_PULL_ALLOC(ndr, r->out.needed);
20485 ZERO_STRUCTP(r->out.needed);
20487 if (flags & NDR_OUT) {
20488 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
20490 NDR_PULL_ALLOC(ndr, r->out.info);
20492 r->out.info = NULL;
20495 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20496 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20498 struct ndr_pull *_ndr_info;
20499 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
20500 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
20501 NDR_CHECK(ndr_pull_spoolss_JobInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
20502 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
20504 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20506 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20507 NDR_PULL_ALLOC(ndr, r->out.needed);
20509 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
20510 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
20511 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
20512 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
20513 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20515 return NDR_ERR_SUCCESS;
20518 _PUBLIC_ void ndr_print_spoolss_GetJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetJob *r)
20520 ndr_print_struct(ndr, name, "spoolss_GetJob");
20522 if (flags & NDR_SET_VALUES) {
20523 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20525 if (flags & NDR_IN) {
20526 ndr_print_struct(ndr, "in", "spoolss_GetJob");
20528 ndr_print_ptr(ndr, "handle", r->in.handle);
20530 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20532 ndr_print_uint32(ndr, "job_id", r->in.job_id);
20533 ndr_print_uint32(ndr, "level", r->in.level);
20534 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20536 if (r->in.buffer) {
20537 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
20540 ndr_print_uint32(ndr, "offered", r->in.offered);
20543 if (flags & NDR_OUT) {
20544 ndr_print_struct(ndr, "out", "spoolss_GetJob");
20546 ndr_print_ptr(ndr, "info", r->out.info);
20549 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
20550 ndr_print_spoolss_JobInfo(ndr, "info", r->out.info);
20553 ndr_print_ptr(ndr, "needed", r->out.needed);
20555 ndr_print_uint32(ndr, "needed", *r->out.needed);
20557 ndr_print_WERROR(ndr, "result", r->out.result);
20563 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumJobs(struct ndr_push *ndr, int flags, const struct _spoolss_EnumJobs *r)
20565 if (flags & NDR_IN) {
20566 if (r->in.handle == NULL) {
20567 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20569 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20570 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.firstjob));
20571 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.numjobs));
20572 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20573 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20574 if (r->in.buffer) {
20575 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
20577 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
20579 if (flags & NDR_OUT) {
20580 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
20582 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
20584 if (r->out.needed == NULL) {
20585 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20587 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
20588 if (r->out.count == NULL) {
20589 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20591 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
20592 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20594 return NDR_ERR_SUCCESS;
20597 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumJobs(struct ndr_pull *ndr, int flags, struct _spoolss_EnumJobs *r)
20599 uint32_t _ptr_buffer;
20600 uint32_t _ptr_info;
20601 TALLOC_CTX *_mem_save_handle_0;
20602 TALLOC_CTX *_mem_save_buffer_0;
20603 TALLOC_CTX *_mem_save_info_0;
20604 TALLOC_CTX *_mem_save_needed_0;
20605 TALLOC_CTX *_mem_save_count_0;
20606 if (flags & NDR_IN) {
20607 ZERO_STRUCT(r->out);
20609 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20610 NDR_PULL_ALLOC(ndr, r->in.handle);
20612 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20613 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20614 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20615 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20616 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.firstjob));
20617 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.numjobs));
20618 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20619 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20621 NDR_PULL_ALLOC(ndr, r->in.buffer);
20623 r->in.buffer = NULL;
20625 if (r->in.buffer) {
20626 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
20627 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20628 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
20629 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20631 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
20632 NDR_PULL_ALLOC(ndr, r->out.needed);
20633 ZERO_STRUCTP(r->out.needed);
20634 NDR_PULL_ALLOC(ndr, r->out.count);
20635 ZERO_STRUCTP(r->out.count);
20637 if (flags & NDR_OUT) {
20638 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
20640 NDR_PULL_ALLOC(ndr, r->out.info);
20642 r->out.info = NULL;
20645 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20646 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20647 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
20648 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20650 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20651 NDR_PULL_ALLOC(ndr, r->out.needed);
20653 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
20654 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
20655 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
20656 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
20657 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20658 NDR_PULL_ALLOC(ndr, r->out.count);
20660 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
20661 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
20662 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
20663 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
20664 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20666 return NDR_ERR_SUCCESS;
20669 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumJobs(struct ndr_push *ndr, int flags, const struct __spoolss_EnumJobs *r)
20671 uint32_t cntr_info_0;
20672 if (flags & NDR_IN) {
20673 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20674 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
20676 if (flags & NDR_OUT) {
20677 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20678 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
20679 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
20681 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20682 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
20685 return NDR_ERR_SUCCESS;
20688 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumJobs(struct ndr_pull *ndr, int flags, struct __spoolss_EnumJobs *r)
20690 uint32_t cntr_info_0;
20691 TALLOC_CTX *_mem_save_info_0;
20692 if (flags & NDR_IN) {
20693 ZERO_STRUCT(r->out);
20695 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20696 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
20698 if (flags & NDR_OUT) {
20699 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
20700 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20701 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20702 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20703 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
20704 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
20706 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20707 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
20709 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20711 return NDR_ERR_SUCCESS;
20714 _PUBLIC_ void ndr_print_spoolss_EnumJobs(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumJobs *r)
20716 uint32_t cntr_info_2;
20717 ndr_print_struct(ndr, name, "spoolss_EnumJobs");
20719 if (flags & NDR_SET_VALUES) {
20720 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20722 if (flags & NDR_IN) {
20723 ndr_print_struct(ndr, "in", "spoolss_EnumJobs");
20725 ndr_print_ptr(ndr, "handle", r->in.handle);
20727 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20729 ndr_print_uint32(ndr, "firstjob", r->in.firstjob);
20730 ndr_print_uint32(ndr, "numjobs", r->in.numjobs);
20731 ndr_print_uint32(ndr, "level", r->in.level);
20732 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20734 if (r->in.buffer) {
20735 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
20738 ndr_print_uint32(ndr, "offered", r->in.offered);
20741 if (flags & NDR_OUT) {
20742 ndr_print_struct(ndr, "out", "spoolss_EnumJobs");
20744 ndr_print_ptr(ndr, "count", r->out.count);
20746 ndr_print_uint32(ndr, "count", *r->out.count);
20748 ndr_print_ptr(ndr, "info", r->out.info);
20750 ndr_print_ptr(ndr, "info", *r->out.info);
20752 if (*r->out.info) {
20753 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
20755 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
20757 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
20758 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
20759 ndr_print_spoolss_JobInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
20767 ndr_print_ptr(ndr, "needed", r->out.needed);
20769 ndr_print_uint32(ndr, "needed", *r->out.needed);
20771 ndr_print_WERROR(ndr, "result", r->out.result);
20777 static enum ndr_err_code ndr_push_spoolss_AddPrinter(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinter *r)
20779 if (flags & NDR_IN) {
20780 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
20781 if (r->in.server) {
20782 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20783 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
20784 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20785 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20787 if (r->in.info_ctr == NULL) {
20788 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20790 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
20791 if (r->in.devmode_ctr == NULL) {
20792 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20794 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
20795 if (r->in.secdesc_ctr == NULL) {
20796 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20798 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
20800 if (flags & NDR_OUT) {
20801 if (r->out.handle == NULL) {
20802 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20804 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
20805 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20807 return NDR_ERR_SUCCESS;
20810 static enum ndr_err_code ndr_pull_spoolss_AddPrinter(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinter *r)
20812 uint32_t _ptr_server;
20813 TALLOC_CTX *_mem_save_server_0;
20814 TALLOC_CTX *_mem_save_info_ctr_0;
20815 TALLOC_CTX *_mem_save_devmode_ctr_0;
20816 TALLOC_CTX *_mem_save_secdesc_ctr_0;
20817 TALLOC_CTX *_mem_save_handle_0;
20818 if (flags & NDR_IN) {
20819 ZERO_STRUCT(r->out);
20821 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
20823 NDR_PULL_ALLOC(ndr, r->in.server);
20825 r->in.server = NULL;
20827 if (r->in.server) {
20828 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
20829 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
20830 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
20831 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
20832 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
20833 return 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));
20835 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
20836 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
20837 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
20839 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20840 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
20842 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20843 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
20844 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
20845 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
20846 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20847 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
20849 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20850 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
20851 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
20852 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
20853 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20854 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
20856 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20857 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
20858 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
20859 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
20860 NDR_PULL_ALLOC(ndr, r->out.handle);
20861 ZERO_STRUCTP(r->out.handle);
20863 if (flags & NDR_OUT) {
20864 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20865 NDR_PULL_ALLOC(ndr, r->out.handle);
20867 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20868 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
20869 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
20870 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20871 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20873 return NDR_ERR_SUCCESS;
20876 _PUBLIC_ void ndr_print_spoolss_AddPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinter *r)
20878 ndr_print_struct(ndr, name, "spoolss_AddPrinter");
20880 if (flags & NDR_SET_VALUES) {
20881 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20883 if (flags & NDR_IN) {
20884 ndr_print_struct(ndr, "in", "spoolss_AddPrinter");
20886 ndr_print_ptr(ndr, "server", r->in.server);
20888 if (r->in.server) {
20889 ndr_print_string(ndr, "server", r->in.server);
20892 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
20894 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
20896 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
20898 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
20900 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
20902 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
20906 if (flags & NDR_OUT) {
20907 ndr_print_struct(ndr, "out", "spoolss_AddPrinter");
20909 ndr_print_ptr(ndr, "handle", r->out.handle);
20911 ndr_print_policy_handle(ndr, "handle", r->out.handle);
20913 ndr_print_WERROR(ndr, "result", r->out.result);
20919 static enum ndr_err_code ndr_push_spoolss_DeletePrinter(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinter *r)
20921 if (flags & NDR_IN) {
20922 if (r->in.handle == NULL) {
20923 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20925 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20927 if (flags & NDR_OUT) {
20928 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20930 return NDR_ERR_SUCCESS;
20933 static enum ndr_err_code ndr_pull_spoolss_DeletePrinter(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinter *r)
20935 TALLOC_CTX *_mem_save_handle_0;
20936 if (flags & NDR_IN) {
20937 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20938 NDR_PULL_ALLOC(ndr, r->in.handle);
20940 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20941 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20942 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20943 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20945 if (flags & NDR_OUT) {
20946 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20948 return NDR_ERR_SUCCESS;
20951 _PUBLIC_ void ndr_print_spoolss_DeletePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinter *r)
20953 ndr_print_struct(ndr, name, "spoolss_DeletePrinter");
20955 if (flags & NDR_SET_VALUES) {
20956 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20958 if (flags & NDR_IN) {
20959 ndr_print_struct(ndr, "in", "spoolss_DeletePrinter");
20961 ndr_print_ptr(ndr, "handle", r->in.handle);
20963 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20967 if (flags & NDR_OUT) {
20968 ndr_print_struct(ndr, "out", "spoolss_DeletePrinter");
20970 ndr_print_WERROR(ndr, "result", r->out.result);
20976 static enum ndr_err_code ndr_push_spoolss_SetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_SetPrinter *r)
20978 if (flags & NDR_IN) {
20979 if (r->in.handle == NULL) {
20980 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20982 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20983 if (r->in.info_ctr == NULL) {
20984 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20986 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
20987 if (r->in.devmode_ctr == NULL) {
20988 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20990 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
20991 if (r->in.secdesc_ctr == NULL) {
20992 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20994 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
20995 NDR_CHECK(ndr_push_spoolss_PrinterControl(ndr, NDR_SCALARS, r->in.command));
20997 if (flags & NDR_OUT) {
20998 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21000 return NDR_ERR_SUCCESS;
21003 static enum ndr_err_code ndr_pull_spoolss_SetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinter *r)
21005 TALLOC_CTX *_mem_save_handle_0;
21006 TALLOC_CTX *_mem_save_info_ctr_0;
21007 TALLOC_CTX *_mem_save_devmode_ctr_0;
21008 TALLOC_CTX *_mem_save_secdesc_ctr_0;
21009 if (flags & NDR_IN) {
21010 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21011 NDR_PULL_ALLOC(ndr, r->in.handle);
21013 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21014 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21015 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21016 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21017 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21018 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
21020 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
21021 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
21022 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
21023 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
21024 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21025 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
21027 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
21028 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
21029 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
21030 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
21031 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21032 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
21034 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
21035 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
21036 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
21037 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
21038 NDR_CHECK(ndr_pull_spoolss_PrinterControl(ndr, NDR_SCALARS, &r->in.command));
21040 if (flags & NDR_OUT) {
21041 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21043 return NDR_ERR_SUCCESS;
21046 _PUBLIC_ void ndr_print_spoolss_SetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinter *r)
21048 ndr_print_struct(ndr, name, "spoolss_SetPrinter");
21050 if (flags & NDR_SET_VALUES) {
21051 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21053 if (flags & NDR_IN) {
21054 ndr_print_struct(ndr, "in", "spoolss_SetPrinter");
21056 ndr_print_ptr(ndr, "handle", r->in.handle);
21058 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21060 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
21062 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
21064 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
21066 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
21068 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
21070 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
21072 ndr_print_spoolss_PrinterControl(ndr, "command", r->in.command);
21075 if (flags & NDR_OUT) {
21076 ndr_print_struct(ndr, "out", "spoolss_SetPrinter");
21078 ndr_print_WERROR(ndr, "result", r->out.result);
21084 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinter *r)
21086 if (flags & NDR_IN) {
21087 if (r->in.handle == NULL) {
21088 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21090 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21091 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21092 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
21093 if (r->in.buffer) {
21094 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
21096 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21098 if (flags & NDR_OUT) {
21099 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
21102 struct ndr_push *_ndr_info;
21103 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21104 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
21105 NDR_CHECK(ndr_push_spoolss_PrinterInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
21106 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21109 if (r->out.needed == NULL) {
21110 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21112 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21113 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21115 return NDR_ERR_SUCCESS;
21118 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinter *r)
21120 uint32_t _ptr_buffer;
21121 uint32_t _ptr_info;
21122 TALLOC_CTX *_mem_save_handle_0;
21123 TALLOC_CTX *_mem_save_buffer_0;
21124 TALLOC_CTX *_mem_save_info_0;
21125 TALLOC_CTX *_mem_save_needed_0;
21126 if (flags & NDR_IN) {
21127 ZERO_STRUCT(r->out);
21129 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21130 NDR_PULL_ALLOC(ndr, r->in.handle);
21132 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21133 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21134 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21135 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21136 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21137 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
21139 NDR_PULL_ALLOC(ndr, r->in.buffer);
21141 r->in.buffer = NULL;
21143 if (r->in.buffer) {
21144 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21145 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
21146 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
21147 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
21149 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21150 NDR_PULL_ALLOC(ndr, r->out.needed);
21151 ZERO_STRUCTP(r->out.needed);
21153 if (flags & NDR_OUT) {
21154 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
21156 NDR_PULL_ALLOC(ndr, r->out.info);
21158 r->out.info = NULL;
21161 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21162 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21164 struct ndr_pull *_ndr_info;
21165 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21166 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
21167 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
21168 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21170 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21172 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21173 NDR_PULL_ALLOC(ndr, r->out.needed);
21175 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21176 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21177 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21178 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21179 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21181 return NDR_ERR_SUCCESS;
21184 _PUBLIC_ void ndr_print_spoolss_GetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinter *r)
21186 ndr_print_struct(ndr, name, "spoolss_GetPrinter");
21188 if (flags & NDR_SET_VALUES) {
21189 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21191 if (flags & NDR_IN) {
21192 ndr_print_struct(ndr, "in", "spoolss_GetPrinter");
21194 ndr_print_ptr(ndr, "handle", r->in.handle);
21196 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21198 ndr_print_uint32(ndr, "level", r->in.level);
21199 ndr_print_ptr(ndr, "buffer", r->in.buffer);
21201 if (r->in.buffer) {
21202 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
21205 ndr_print_uint32(ndr, "offered", r->in.offered);
21208 if (flags & NDR_OUT) {
21209 ndr_print_struct(ndr, "out", "spoolss_GetPrinter");
21211 ndr_print_ptr(ndr, "info", r->out.info);
21214 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
21215 ndr_print_spoolss_PrinterInfo(ndr, "info", r->out.info);
21218 ndr_print_ptr(ndr, "needed", r->out.needed);
21220 ndr_print_uint32(ndr, "needed", *r->out.needed);
21222 ndr_print_WERROR(ndr, "result", r->out.result);
21228 static enum ndr_err_code ndr_push_spoolss_AddPrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterDriver *r)
21230 if (flags & NDR_IN) {
21231 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
21232 if (r->in.servername) {
21233 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
21234 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21235 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
21236 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21238 if (r->in.info_ctr == NULL) {
21239 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21241 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
21243 if (flags & NDR_OUT) {
21244 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21246 return NDR_ERR_SUCCESS;
21249 static enum ndr_err_code ndr_pull_spoolss_AddPrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterDriver *r)
21251 uint32_t _ptr_servername;
21252 TALLOC_CTX *_mem_save_servername_0;
21253 TALLOC_CTX *_mem_save_info_ctr_0;
21254 if (flags & NDR_IN) {
21255 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
21256 if (_ptr_servername) {
21257 NDR_PULL_ALLOC(ndr, r->in.servername);
21259 r->in.servername = NULL;
21261 if (r->in.servername) {
21262 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
21263 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
21264 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
21265 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
21266 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
21267 return 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));
21269 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
21270 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
21271 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
21273 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21274 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
21276 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
21277 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
21278 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
21279 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
21281 if (flags & NDR_OUT) {
21282 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21284 return NDR_ERR_SUCCESS;
21287 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterDriver *r)
21289 ndr_print_struct(ndr, name, "spoolss_AddPrinterDriver");
21291 if (flags & NDR_SET_VALUES) {
21292 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21294 if (flags & NDR_IN) {
21295 ndr_print_struct(ndr, "in", "spoolss_AddPrinterDriver");
21297 ndr_print_ptr(ndr, "servername", r->in.servername);
21299 if (r->in.servername) {
21300 ndr_print_string(ndr, "servername", r->in.servername);
21303 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
21305 ndr_print_spoolss_AddDriverInfoCtr(ndr, "info_ctr", r->in.info_ctr);
21309 if (flags & NDR_OUT) {
21310 ndr_print_struct(ndr, "out", "spoolss_AddPrinterDriver");
21312 ndr_print_WERROR(ndr, "result", r->out.result);
21318 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinterDrivers(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinterDrivers *r)
21320 if (flags & NDR_IN) {
21321 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
21322 if (r->in.server) {
21323 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21324 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21325 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21326 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21328 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
21329 if (r->in.environment) {
21330 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
21331 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21332 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
21333 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21335 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21336 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
21337 if (r->in.buffer) {
21338 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
21340 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21342 if (flags & NDR_OUT) {
21343 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
21345 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
21347 if (r->out.needed == NULL) {
21348 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21350 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21351 if (r->out.count == NULL) {
21352 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21354 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
21355 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21357 return NDR_ERR_SUCCESS;
21360 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinterDrivers *r)
21362 uint32_t _ptr_server;
21363 uint32_t _ptr_environment;
21364 uint32_t _ptr_buffer;
21365 uint32_t _ptr_info;
21366 TALLOC_CTX *_mem_save_server_0;
21367 TALLOC_CTX *_mem_save_environment_0;
21368 TALLOC_CTX *_mem_save_buffer_0;
21369 TALLOC_CTX *_mem_save_info_0;
21370 TALLOC_CTX *_mem_save_needed_0;
21371 TALLOC_CTX *_mem_save_count_0;
21372 if (flags & NDR_IN) {
21373 ZERO_STRUCT(r->out);
21375 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
21377 NDR_PULL_ALLOC(ndr, r->in.server);
21379 r->in.server = NULL;
21381 if (r->in.server) {
21382 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
21383 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
21384 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
21385 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
21386 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
21387 return 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));
21389 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
21390 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
21391 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
21393 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
21394 if (_ptr_environment) {
21395 NDR_PULL_ALLOC(ndr, r->in.environment);
21397 r->in.environment = NULL;
21399 if (r->in.environment) {
21400 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
21401 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
21402 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
21403 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
21404 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
21405 return 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));
21407 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
21408 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
21409 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
21411 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21412 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
21414 NDR_PULL_ALLOC(ndr, r->in.buffer);
21416 r->in.buffer = NULL;
21418 if (r->in.buffer) {
21419 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21420 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
21421 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
21422 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
21424 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21425 NDR_PULL_ALLOC(ndr, r->out.needed);
21426 ZERO_STRUCTP(r->out.needed);
21427 NDR_PULL_ALLOC(ndr, r->out.count);
21428 ZERO_STRUCTP(r->out.count);
21430 if (flags & NDR_OUT) {
21431 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
21433 NDR_PULL_ALLOC(ndr, r->out.info);
21435 r->out.info = NULL;
21438 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21439 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21440 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
21441 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21443 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21444 NDR_PULL_ALLOC(ndr, r->out.needed);
21446 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21447 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21448 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21449 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21450 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21451 NDR_PULL_ALLOC(ndr, r->out.count);
21453 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
21454 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
21455 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
21456 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
21457 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21459 return NDR_ERR_SUCCESS;
21462 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinterDrivers(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinterDrivers *r)
21464 uint32_t cntr_info_0;
21465 if (flags & NDR_IN) {
21466 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21467 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
21469 if (flags & NDR_OUT) {
21470 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21471 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
21472 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
21474 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21475 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
21478 return NDR_ERR_SUCCESS;
21481 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinterDrivers *r)
21483 uint32_t cntr_info_0;
21484 TALLOC_CTX *_mem_save_info_0;
21485 if (flags & NDR_IN) {
21486 ZERO_STRUCT(r->out);
21488 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21489 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
21491 if (flags & NDR_OUT) {
21492 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
21493 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21494 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21495 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21496 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
21497 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
21499 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21500 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
21502 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21504 return NDR_ERR_SUCCESS;
21507 _PUBLIC_ void ndr_print_spoolss_EnumPrinterDrivers(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterDrivers *r)
21509 uint32_t cntr_info_2;
21510 ndr_print_struct(ndr, name, "spoolss_EnumPrinterDrivers");
21512 if (flags & NDR_SET_VALUES) {
21513 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21515 if (flags & NDR_IN) {
21516 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterDrivers");
21518 ndr_print_ptr(ndr, "server", r->in.server);
21520 if (r->in.server) {
21521 ndr_print_string(ndr, "server", r->in.server);
21524 ndr_print_ptr(ndr, "environment", r->in.environment);
21526 if (r->in.environment) {
21527 ndr_print_string(ndr, "environment", r->in.environment);
21530 ndr_print_uint32(ndr, "level", r->in.level);
21531 ndr_print_ptr(ndr, "buffer", r->in.buffer);
21533 if (r->in.buffer) {
21534 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
21537 ndr_print_uint32(ndr, "offered", r->in.offered);
21540 if (flags & NDR_OUT) {
21541 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterDrivers");
21543 ndr_print_ptr(ndr, "count", r->out.count);
21545 ndr_print_uint32(ndr, "count", *r->out.count);
21547 ndr_print_ptr(ndr, "info", r->out.info);
21549 ndr_print_ptr(ndr, "info", *r->out.info);
21551 if (*r->out.info) {
21552 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
21554 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
21556 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
21557 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
21558 ndr_print_spoolss_DriverInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
21566 ndr_print_ptr(ndr, "needed", r->out.needed);
21568 ndr_print_uint32(ndr, "needed", *r->out.needed);
21570 ndr_print_WERROR(ndr, "result", r->out.result);
21576 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriver *r)
21578 if (flags & NDR_IN) {
21579 if (r->in.handle == NULL) {
21580 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21582 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21583 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.architecture));
21584 if (r->in.architecture) {
21585 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
21586 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21587 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
21588 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21590 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21591 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
21592 if (r->in.buffer) {
21593 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
21595 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21597 if (flags & NDR_OUT) {
21598 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
21601 struct ndr_push *_ndr_info;
21602 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21603 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
21604 NDR_CHECK(ndr_push_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
21605 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21608 if (r->out.needed == NULL) {
21609 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21611 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21612 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21614 return NDR_ERR_SUCCESS;
21617 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriver *r)
21619 uint32_t _ptr_architecture;
21620 uint32_t _ptr_buffer;
21621 uint32_t _ptr_info;
21622 TALLOC_CTX *_mem_save_handle_0;
21623 TALLOC_CTX *_mem_save_architecture_0;
21624 TALLOC_CTX *_mem_save_buffer_0;
21625 TALLOC_CTX *_mem_save_info_0;
21626 TALLOC_CTX *_mem_save_needed_0;
21627 if (flags & NDR_IN) {
21628 ZERO_STRUCT(r->out);
21630 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21631 NDR_PULL_ALLOC(ndr, r->in.handle);
21633 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21634 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21635 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21636 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21637 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
21638 if (_ptr_architecture) {
21639 NDR_PULL_ALLOC(ndr, r->in.architecture);
21641 r->in.architecture = NULL;
21643 if (r->in.architecture) {
21644 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
21645 NDR_PULL_SET_MEM_CTX(ndr, r->in.architecture, 0);
21646 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
21647 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
21648 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
21649 return 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));
21651 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
21652 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
21653 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
21655 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21656 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
21658 NDR_PULL_ALLOC(ndr, r->in.buffer);
21660 r->in.buffer = NULL;
21662 if (r->in.buffer) {
21663 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21664 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
21665 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
21666 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
21668 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21669 NDR_PULL_ALLOC(ndr, r->out.needed);
21670 ZERO_STRUCTP(r->out.needed);
21672 if (flags & NDR_OUT) {
21673 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
21675 NDR_PULL_ALLOC(ndr, r->out.info);
21677 r->out.info = NULL;
21680 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21681 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21683 struct ndr_pull *_ndr_info;
21684 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21685 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
21686 NDR_CHECK(ndr_pull_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
21687 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21689 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21691 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21692 NDR_PULL_ALLOC(ndr, r->out.needed);
21694 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21695 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21696 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21697 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21698 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21700 return NDR_ERR_SUCCESS;
21703 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriver *r)
21705 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriver");
21707 if (flags & NDR_SET_VALUES) {
21708 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21710 if (flags & NDR_IN) {
21711 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriver");
21713 ndr_print_ptr(ndr, "handle", r->in.handle);
21715 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21717 ndr_print_ptr(ndr, "architecture", r->in.architecture);
21719 if (r->in.architecture) {
21720 ndr_print_string(ndr, "architecture", r->in.architecture);
21723 ndr_print_uint32(ndr, "level", r->in.level);
21724 ndr_print_ptr(ndr, "buffer", r->in.buffer);
21726 if (r->in.buffer) {
21727 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
21730 ndr_print_uint32(ndr, "offered", r->in.offered);
21733 if (flags & NDR_OUT) {
21734 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriver");
21736 ndr_print_ptr(ndr, "info", r->out.info);
21739 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
21740 ndr_print_spoolss_DriverInfo(ndr, "info", r->out.info);
21743 ndr_print_ptr(ndr, "needed", r->out.needed);
21745 ndr_print_uint32(ndr, "needed", *r->out.needed);
21747 ndr_print_WERROR(ndr, "result", r->out.result);
21753 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinterDriverDirectory(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriverDirectory *r)
21755 if (flags & NDR_IN) {
21756 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
21757 if (r->in.server) {
21758 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21759 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21760 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21761 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21763 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
21764 if (r->in.environment) {
21765 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
21766 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21767 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
21768 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21770 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21771 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
21772 if (r->in.buffer) {
21773 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
21775 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21777 if (flags & NDR_OUT) {
21778 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
21781 struct ndr_push *_ndr_info;
21782 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21783 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
21784 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
21785 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21788 if (r->out.needed == NULL) {
21789 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21791 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21792 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21794 return NDR_ERR_SUCCESS;
21797 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinterDriverDirectory(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriverDirectory *r)
21799 uint32_t _ptr_server;
21800 uint32_t _ptr_environment;
21801 uint32_t _ptr_buffer;
21802 uint32_t _ptr_info;
21803 TALLOC_CTX *_mem_save_server_0;
21804 TALLOC_CTX *_mem_save_environment_0;
21805 TALLOC_CTX *_mem_save_buffer_0;
21806 TALLOC_CTX *_mem_save_info_0;
21807 TALLOC_CTX *_mem_save_needed_0;
21808 if (flags & NDR_IN) {
21809 ZERO_STRUCT(r->out);
21811 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
21813 NDR_PULL_ALLOC(ndr, r->in.server);
21815 r->in.server = NULL;
21817 if (r->in.server) {
21818 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
21819 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
21820 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
21821 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
21822 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
21823 return 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));
21825 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
21826 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
21827 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
21829 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
21830 if (_ptr_environment) {
21831 NDR_PULL_ALLOC(ndr, r->in.environment);
21833 r->in.environment = NULL;
21835 if (r->in.environment) {
21836 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
21837 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
21838 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
21839 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
21840 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
21841 return 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));
21843 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
21844 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
21845 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
21847 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21848 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
21850 NDR_PULL_ALLOC(ndr, r->in.buffer);
21852 r->in.buffer = NULL;
21854 if (r->in.buffer) {
21855 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21856 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
21857 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
21858 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
21860 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21861 NDR_PULL_ALLOC(ndr, r->out.needed);
21862 ZERO_STRUCTP(r->out.needed);
21864 if (flags & NDR_OUT) {
21865 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
21867 NDR_PULL_ALLOC(ndr, r->out.info);
21869 r->out.info = NULL;
21872 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21873 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21875 struct ndr_pull *_ndr_info;
21876 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21877 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
21878 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
21879 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21881 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21883 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21884 NDR_PULL_ALLOC(ndr, r->out.needed);
21886 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21887 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21888 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21889 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21890 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21892 return NDR_ERR_SUCCESS;
21895 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriverDirectory(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriverDirectory *r)
21897 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriverDirectory");
21899 if (flags & NDR_SET_VALUES) {
21900 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21902 if (flags & NDR_IN) {
21903 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriverDirectory");
21905 ndr_print_ptr(ndr, "server", r->in.server);
21907 if (r->in.server) {
21908 ndr_print_string(ndr, "server", r->in.server);
21911 ndr_print_ptr(ndr, "environment", r->in.environment);
21913 if (r->in.environment) {
21914 ndr_print_string(ndr, "environment", r->in.environment);
21917 ndr_print_uint32(ndr, "level", r->in.level);
21918 ndr_print_ptr(ndr, "buffer", r->in.buffer);
21920 if (r->in.buffer) {
21921 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
21924 ndr_print_uint32(ndr, "offered", r->in.offered);
21927 if (flags & NDR_OUT) {
21928 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriverDirectory");
21930 ndr_print_ptr(ndr, "info", r->out.info);
21933 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
21934 ndr_print_spoolss_DriverDirectoryInfo(ndr, "info", r->out.info);
21937 ndr_print_ptr(ndr, "needed", r->out.needed);
21939 ndr_print_uint32(ndr, "needed", *r->out.needed);
21941 ndr_print_WERROR(ndr, "result", r->out.result);
21947 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDriver *r)
21949 if (flags & NDR_IN) {
21950 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
21951 if (r->in.server) {
21952 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21953 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21954 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21955 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21957 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
21958 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21959 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
21960 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21961 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
21962 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21963 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
21964 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver, ndr_charset_length(r->in.driver, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21966 if (flags & NDR_OUT) {
21967 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21969 return NDR_ERR_SUCCESS;
21972 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDriver *r)
21974 uint32_t _ptr_server;
21975 TALLOC_CTX *_mem_save_server_0;
21976 if (flags & NDR_IN) {
21977 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
21979 NDR_PULL_ALLOC(ndr, r->in.server);
21981 r->in.server = NULL;
21983 if (r->in.server) {
21984 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
21985 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
21986 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
21987 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
21988 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
21989 return 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));
21991 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
21992 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
21993 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
21995 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
21996 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
21997 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
21998 return 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));
22000 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
22001 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
22002 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver));
22003 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.driver));
22004 if (ndr_get_array_length(ndr, &r->in.driver) > ndr_get_array_size(ndr, &r->in.driver)) {
22005 return 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));
22007 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t)));
22008 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t), CH_UTF16));
22010 if (flags & NDR_OUT) {
22011 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22013 return NDR_ERR_SUCCESS;
22016 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDriver *r)
22018 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDriver");
22020 if (flags & NDR_SET_VALUES) {
22021 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22023 if (flags & NDR_IN) {
22024 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDriver");
22026 ndr_print_ptr(ndr, "server", r->in.server);
22028 if (r->in.server) {
22029 ndr_print_string(ndr, "server", r->in.server);
22032 ndr_print_string(ndr, "architecture", r->in.architecture);
22033 ndr_print_string(ndr, "driver", r->in.driver);
22036 if (flags & NDR_OUT) {
22037 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDriver");
22039 ndr_print_WERROR(ndr, "result", r->out.result);
22045 static enum ndr_err_code ndr_push_spoolss_AddPrintProcessor(struct ndr_push *ndr, int flags, const struct spoolss_AddPrintProcessor *r)
22047 if (flags & NDR_IN) {
22048 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
22049 if (r->in.server) {
22050 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22051 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22052 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22053 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22055 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
22056 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22057 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
22058 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22059 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.path_name, CH_UTF16)));
22060 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22061 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.path_name, CH_UTF16)));
22062 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));
22063 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
22064 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22065 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
22066 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));
22068 if (flags & NDR_OUT) {
22069 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22071 return NDR_ERR_SUCCESS;
22074 static enum ndr_err_code ndr_pull_spoolss_AddPrintProcessor(struct ndr_pull *ndr, int flags, struct spoolss_AddPrintProcessor *r)
22076 uint32_t _ptr_server;
22077 TALLOC_CTX *_mem_save_server_0;
22078 if (flags & NDR_IN) {
22079 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
22081 NDR_PULL_ALLOC(ndr, r->in.server);
22083 r->in.server = NULL;
22085 if (r->in.server) {
22086 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
22087 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
22088 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
22089 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
22090 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
22091 return 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));
22093 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
22094 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
22095 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
22097 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
22098 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
22099 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
22100 return 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));
22102 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
22103 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
22104 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.path_name));
22105 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.path_name));
22106 if (ndr_get_array_length(ndr, &r->in.path_name) > ndr_get_array_size(ndr, &r->in.path_name)) {
22107 return 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));
22109 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.path_name), sizeof(uint16_t)));
22110 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));
22111 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.print_processor_name));
22112 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.print_processor_name));
22113 if (ndr_get_array_length(ndr, &r->in.print_processor_name) > ndr_get_array_size(ndr, &r->in.print_processor_name)) {
22114 return 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));
22116 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.print_processor_name), sizeof(uint16_t)));
22117 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));
22119 if (flags & NDR_OUT) {
22120 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22122 return NDR_ERR_SUCCESS;
22125 _PUBLIC_ void ndr_print_spoolss_AddPrintProcessor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrintProcessor *r)
22127 ndr_print_struct(ndr, name, "spoolss_AddPrintProcessor");
22129 if (flags & NDR_SET_VALUES) {
22130 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22132 if (flags & NDR_IN) {
22133 ndr_print_struct(ndr, "in", "spoolss_AddPrintProcessor");
22135 ndr_print_ptr(ndr, "server", r->in.server);
22137 if (r->in.server) {
22138 ndr_print_string(ndr, "server", r->in.server);
22141 ndr_print_string(ndr, "architecture", r->in.architecture);
22142 ndr_print_string(ndr, "path_name", r->in.path_name);
22143 ndr_print_string(ndr, "print_processor_name", r->in.print_processor_name);
22146 if (flags & NDR_OUT) {
22147 ndr_print_struct(ndr, "out", "spoolss_AddPrintProcessor");
22149 ndr_print_WERROR(ndr, "result", r->out.result);
22155 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrintProcessors(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrintProcessors *r)
22157 if (flags & NDR_IN) {
22158 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
22159 if (r->in.servername) {
22160 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
22161 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22162 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
22163 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22165 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
22166 if (r->in.environment) {
22167 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
22168 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22169 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
22170 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22172 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22173 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
22174 if (r->in.buffer) {
22175 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
22177 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22179 if (flags & NDR_OUT) {
22180 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
22182 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
22184 if (r->out.needed == NULL) {
22185 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22187 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22188 if (r->out.count == NULL) {
22189 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22191 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
22192 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22194 return NDR_ERR_SUCCESS;
22197 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrintProcessors(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrintProcessors *r)
22199 uint32_t _ptr_servername;
22200 uint32_t _ptr_environment;
22201 uint32_t _ptr_buffer;
22202 uint32_t _ptr_info;
22203 TALLOC_CTX *_mem_save_servername_0;
22204 TALLOC_CTX *_mem_save_environment_0;
22205 TALLOC_CTX *_mem_save_buffer_0;
22206 TALLOC_CTX *_mem_save_info_0;
22207 TALLOC_CTX *_mem_save_needed_0;
22208 TALLOC_CTX *_mem_save_count_0;
22209 if (flags & NDR_IN) {
22210 ZERO_STRUCT(r->out);
22212 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
22213 if (_ptr_servername) {
22214 NDR_PULL_ALLOC(ndr, r->in.servername);
22216 r->in.servername = NULL;
22218 if (r->in.servername) {
22219 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
22220 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
22221 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
22222 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
22223 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
22224 return 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));
22226 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
22227 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
22228 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
22230 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
22231 if (_ptr_environment) {
22232 NDR_PULL_ALLOC(ndr, r->in.environment);
22234 r->in.environment = NULL;
22236 if (r->in.environment) {
22237 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
22238 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
22239 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
22240 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
22241 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
22242 return 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));
22244 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
22245 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
22246 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
22248 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22249 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
22251 NDR_PULL_ALLOC(ndr, r->in.buffer);
22253 r->in.buffer = NULL;
22255 if (r->in.buffer) {
22256 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
22257 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
22258 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
22259 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22261 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22262 NDR_PULL_ALLOC(ndr, r->out.needed);
22263 ZERO_STRUCTP(r->out.needed);
22264 NDR_PULL_ALLOC(ndr, r->out.count);
22265 ZERO_STRUCTP(r->out.count);
22267 if (flags & NDR_OUT) {
22268 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
22270 NDR_PULL_ALLOC(ndr, r->out.info);
22272 r->out.info = NULL;
22275 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22276 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22277 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
22278 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22280 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22281 NDR_PULL_ALLOC(ndr, r->out.needed);
22283 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22284 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22285 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22286 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22287 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22288 NDR_PULL_ALLOC(ndr, r->out.count);
22290 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
22291 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
22292 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
22293 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
22294 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22296 return NDR_ERR_SUCCESS;
22299 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrintProcessors(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrintProcessors *r)
22301 uint32_t cntr_info_0;
22302 if (flags & NDR_IN) {
22303 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22304 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
22306 if (flags & NDR_OUT) {
22307 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22308 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
22309 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
22311 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22312 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
22315 return NDR_ERR_SUCCESS;
22318 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrintProcessors(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrintProcessors *r)
22320 uint32_t cntr_info_0;
22321 TALLOC_CTX *_mem_save_info_0;
22322 if (flags & NDR_IN) {
22323 ZERO_STRUCT(r->out);
22325 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22326 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
22328 if (flags & NDR_OUT) {
22329 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
22330 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22331 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22332 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22333 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
22334 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
22336 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22337 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
22339 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22341 return NDR_ERR_SUCCESS;
22344 _PUBLIC_ void ndr_print_spoolss_EnumPrintProcessors(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrintProcessors *r)
22346 uint32_t cntr_info_2;
22347 ndr_print_struct(ndr, name, "spoolss_EnumPrintProcessors");
22349 if (flags & NDR_SET_VALUES) {
22350 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22352 if (flags & NDR_IN) {
22353 ndr_print_struct(ndr, "in", "spoolss_EnumPrintProcessors");
22355 ndr_print_ptr(ndr, "servername", r->in.servername);
22357 if (r->in.servername) {
22358 ndr_print_string(ndr, "servername", r->in.servername);
22361 ndr_print_ptr(ndr, "environment", r->in.environment);
22363 if (r->in.environment) {
22364 ndr_print_string(ndr, "environment", r->in.environment);
22367 ndr_print_uint32(ndr, "level", r->in.level);
22368 ndr_print_ptr(ndr, "buffer", r->in.buffer);
22370 if (r->in.buffer) {
22371 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
22374 ndr_print_uint32(ndr, "offered", r->in.offered);
22377 if (flags & NDR_OUT) {
22378 ndr_print_struct(ndr, "out", "spoolss_EnumPrintProcessors");
22380 ndr_print_ptr(ndr, "count", r->out.count);
22382 ndr_print_uint32(ndr, "count", *r->out.count);
22384 ndr_print_ptr(ndr, "info", r->out.info);
22386 ndr_print_ptr(ndr, "info", *r->out.info);
22388 if (*r->out.info) {
22389 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
22391 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
22393 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
22394 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
22395 ndr_print_spoolss_PrintProcessorInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
22403 ndr_print_ptr(ndr, "needed", r->out.needed);
22405 ndr_print_uint32(ndr, "needed", *r->out.needed);
22407 ndr_print_WERROR(ndr, "result", r->out.result);
22413 static enum ndr_err_code ndr_push_spoolss_GetPrintProcessorDirectory(struct ndr_push *ndr, int flags, const struct spoolss_GetPrintProcessorDirectory *r)
22415 if (flags & NDR_IN) {
22416 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
22417 if (r->in.server) {
22418 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22419 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22420 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22421 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22423 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
22424 if (r->in.environment) {
22425 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
22426 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22427 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
22428 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22430 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22431 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
22432 if (r->in.buffer) {
22433 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
22435 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22437 if (flags & NDR_OUT) {
22438 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
22441 struct ndr_push *_ndr_info;
22442 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
22443 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
22444 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
22445 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
22448 if (r->out.needed == NULL) {
22449 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22451 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22452 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22454 return NDR_ERR_SUCCESS;
22457 static enum ndr_err_code ndr_pull_spoolss_GetPrintProcessorDirectory(struct ndr_pull *ndr, int flags, struct spoolss_GetPrintProcessorDirectory *r)
22459 uint32_t _ptr_server;
22460 uint32_t _ptr_environment;
22461 uint32_t _ptr_buffer;
22462 uint32_t _ptr_info;
22463 TALLOC_CTX *_mem_save_server_0;
22464 TALLOC_CTX *_mem_save_environment_0;
22465 TALLOC_CTX *_mem_save_buffer_0;
22466 TALLOC_CTX *_mem_save_info_0;
22467 TALLOC_CTX *_mem_save_needed_0;
22468 if (flags & NDR_IN) {
22469 ZERO_STRUCT(r->out);
22471 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
22473 NDR_PULL_ALLOC(ndr, r->in.server);
22475 r->in.server = NULL;
22477 if (r->in.server) {
22478 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
22479 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
22480 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
22481 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
22482 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
22483 return 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));
22485 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
22486 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
22487 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
22489 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
22490 if (_ptr_environment) {
22491 NDR_PULL_ALLOC(ndr, r->in.environment);
22493 r->in.environment = NULL;
22495 if (r->in.environment) {
22496 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
22497 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
22498 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
22499 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
22500 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
22501 return 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));
22503 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
22504 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
22505 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
22507 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22508 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
22510 NDR_PULL_ALLOC(ndr, r->in.buffer);
22512 r->in.buffer = NULL;
22514 if (r->in.buffer) {
22515 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
22516 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
22517 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
22518 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22520 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22521 NDR_PULL_ALLOC(ndr, r->out.needed);
22522 ZERO_STRUCTP(r->out.needed);
22524 if (flags & NDR_OUT) {
22525 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
22527 NDR_PULL_ALLOC(ndr, r->out.info);
22529 r->out.info = NULL;
22532 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22533 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22535 struct ndr_pull *_ndr_info;
22536 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
22537 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
22538 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
22539 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
22541 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22543 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22544 NDR_PULL_ALLOC(ndr, r->out.needed);
22546 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22547 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22548 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22549 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22550 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22552 return NDR_ERR_SUCCESS;
22555 _PUBLIC_ void ndr_print_spoolss_GetPrintProcessorDirectory(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrintProcessorDirectory *r)
22557 ndr_print_struct(ndr, name, "spoolss_GetPrintProcessorDirectory");
22559 if (flags & NDR_SET_VALUES) {
22560 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22562 if (flags & NDR_IN) {
22563 ndr_print_struct(ndr, "in", "spoolss_GetPrintProcessorDirectory");
22565 ndr_print_ptr(ndr, "server", r->in.server);
22567 if (r->in.server) {
22568 ndr_print_string(ndr, "server", r->in.server);
22571 ndr_print_ptr(ndr, "environment", r->in.environment);
22573 if (r->in.environment) {
22574 ndr_print_string(ndr, "environment", r->in.environment);
22577 ndr_print_uint32(ndr, "level", r->in.level);
22578 ndr_print_ptr(ndr, "buffer", r->in.buffer);
22580 if (r->in.buffer) {
22581 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
22584 ndr_print_uint32(ndr, "offered", r->in.offered);
22587 if (flags & NDR_OUT) {
22588 ndr_print_struct(ndr, "out", "spoolss_GetPrintProcessorDirectory");
22590 ndr_print_ptr(ndr, "info", r->out.info);
22593 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
22594 ndr_print_spoolss_PrintProcessorDirectoryInfo(ndr, "info", r->out.info);
22597 ndr_print_ptr(ndr, "needed", r->out.needed);
22599 ndr_print_uint32(ndr, "needed", *r->out.needed);
22601 ndr_print_WERROR(ndr, "result", r->out.result);
22607 static enum ndr_err_code ndr_push_spoolss_StartDocPrinter(struct ndr_push *ndr, int flags, const struct spoolss_StartDocPrinter *r)
22609 if (flags & NDR_IN) {
22610 if (r->in.handle == NULL) {
22611 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22613 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22614 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22615 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
22616 NDR_CHECK(ndr_push_spoolss_DocumentInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
22618 if (flags & NDR_OUT) {
22619 if (r->out.job_id == NULL) {
22620 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22622 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.job_id));
22623 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22625 return NDR_ERR_SUCCESS;
22628 static enum ndr_err_code ndr_pull_spoolss_StartDocPrinter(struct ndr_pull *ndr, int flags, struct spoolss_StartDocPrinter *r)
22630 TALLOC_CTX *_mem_save_handle_0;
22631 TALLOC_CTX *_mem_save_job_id_0;
22632 if (flags & NDR_IN) {
22633 ZERO_STRUCT(r->out);
22635 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22636 NDR_PULL_ALLOC(ndr, r->in.handle);
22638 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22639 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22640 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22641 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22642 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22643 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
22644 NDR_CHECK(ndr_pull_spoolss_DocumentInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
22645 NDR_PULL_ALLOC(ndr, r->out.job_id);
22646 ZERO_STRUCTP(r->out.job_id);
22648 if (flags & NDR_OUT) {
22649 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22650 NDR_PULL_ALLOC(ndr, r->out.job_id);
22652 _mem_save_job_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
22653 NDR_PULL_SET_MEM_CTX(ndr, r->out.job_id, LIBNDR_FLAG_REF_ALLOC);
22654 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.job_id));
22655 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_job_id_0, LIBNDR_FLAG_REF_ALLOC);
22656 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22658 return NDR_ERR_SUCCESS;
22661 _PUBLIC_ void ndr_print_spoolss_StartDocPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_StartDocPrinter *r)
22663 ndr_print_struct(ndr, name, "spoolss_StartDocPrinter");
22665 if (flags & NDR_SET_VALUES) {
22666 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22668 if (flags & NDR_IN) {
22669 ndr_print_struct(ndr, "in", "spoolss_StartDocPrinter");
22671 ndr_print_ptr(ndr, "handle", r->in.handle);
22673 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22675 ndr_print_uint32(ndr, "level", r->in.level);
22676 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
22677 ndr_print_spoolss_DocumentInfo(ndr, "info", &r->in.info);
22680 if (flags & NDR_OUT) {
22681 ndr_print_struct(ndr, "out", "spoolss_StartDocPrinter");
22683 ndr_print_ptr(ndr, "job_id", r->out.job_id);
22685 ndr_print_uint32(ndr, "job_id", *r->out.job_id);
22687 ndr_print_WERROR(ndr, "result", r->out.result);
22693 static enum ndr_err_code ndr_push_spoolss_StartPagePrinter(struct ndr_push *ndr, int flags, const struct spoolss_StartPagePrinter *r)
22695 if (flags & NDR_IN) {
22696 if (r->in.handle == NULL) {
22697 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22699 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22701 if (flags & NDR_OUT) {
22702 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22704 return NDR_ERR_SUCCESS;
22707 static enum ndr_err_code ndr_pull_spoolss_StartPagePrinter(struct ndr_pull *ndr, int flags, struct spoolss_StartPagePrinter *r)
22709 TALLOC_CTX *_mem_save_handle_0;
22710 if (flags & NDR_IN) {
22711 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22712 NDR_PULL_ALLOC(ndr, r->in.handle);
22714 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22715 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22716 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22717 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22719 if (flags & NDR_OUT) {
22720 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22722 return NDR_ERR_SUCCESS;
22725 _PUBLIC_ void ndr_print_spoolss_StartPagePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_StartPagePrinter *r)
22727 ndr_print_struct(ndr, name, "spoolss_StartPagePrinter");
22729 if (flags & NDR_SET_VALUES) {
22730 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22732 if (flags & NDR_IN) {
22733 ndr_print_struct(ndr, "in", "spoolss_StartPagePrinter");
22735 ndr_print_ptr(ndr, "handle", r->in.handle);
22737 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22741 if (flags & NDR_OUT) {
22742 ndr_print_struct(ndr, "out", "spoolss_StartPagePrinter");
22744 ndr_print_WERROR(ndr, "result", r->out.result);
22750 static enum ndr_err_code ndr_push_spoolss_WritePrinter(struct ndr_push *ndr, int flags, const struct spoolss_WritePrinter *r)
22752 if (flags & NDR_IN) {
22753 if (r->in.handle == NULL) {
22754 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22756 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22757 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
22758 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data.length));
22760 if (flags & NDR_OUT) {
22761 if (r->out.num_written == NULL) {
22762 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22764 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.num_written));
22765 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22767 return NDR_ERR_SUCCESS;
22770 static enum ndr_err_code ndr_pull_spoolss_WritePrinter(struct ndr_pull *ndr, int flags, struct spoolss_WritePrinter *r)
22772 TALLOC_CTX *_mem_save_handle_0;
22773 TALLOC_CTX *_mem_save_num_written_0;
22774 if (flags & NDR_IN) {
22775 ZERO_STRUCT(r->out);
22777 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22778 NDR_PULL_ALLOC(ndr, r->in.handle);
22780 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22781 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22782 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22783 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22784 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->in.data));
22785 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._data_size));
22786 NDR_PULL_ALLOC(ndr, r->out.num_written);
22787 ZERO_STRUCTP(r->out.num_written);
22789 if (flags & NDR_OUT) {
22790 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22791 NDR_PULL_ALLOC(ndr, r->out.num_written);
22793 _mem_save_num_written_0 = NDR_PULL_GET_MEM_CTX(ndr);
22794 NDR_PULL_SET_MEM_CTX(ndr, r->out.num_written, LIBNDR_FLAG_REF_ALLOC);
22795 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.num_written));
22796 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_num_written_0, LIBNDR_FLAG_REF_ALLOC);
22797 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22799 return NDR_ERR_SUCCESS;
22802 _PUBLIC_ void ndr_print_spoolss_WritePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_WritePrinter *r)
22804 ndr_print_struct(ndr, name, "spoolss_WritePrinter");
22806 if (flags & NDR_SET_VALUES) {
22807 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22809 if (flags & NDR_IN) {
22810 ndr_print_struct(ndr, "in", "spoolss_WritePrinter");
22812 ndr_print_ptr(ndr, "handle", r->in.handle);
22814 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22816 ndr_print_DATA_BLOB(ndr, "data", r->in.data);
22817 ndr_print_uint32(ndr, "_data_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->in.data.length:r->in._data_size);
22820 if (flags & NDR_OUT) {
22821 ndr_print_struct(ndr, "out", "spoolss_WritePrinter");
22823 ndr_print_ptr(ndr, "num_written", r->out.num_written);
22825 ndr_print_uint32(ndr, "num_written", *r->out.num_written);
22827 ndr_print_WERROR(ndr, "result", r->out.result);
22833 static enum ndr_err_code ndr_push_spoolss_EndPagePrinter(struct ndr_push *ndr, int flags, const struct spoolss_EndPagePrinter *r)
22835 if (flags & NDR_IN) {
22836 if (r->in.handle == NULL) {
22837 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22839 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22841 if (flags & NDR_OUT) {
22842 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22844 return NDR_ERR_SUCCESS;
22847 static enum ndr_err_code ndr_pull_spoolss_EndPagePrinter(struct ndr_pull *ndr, int flags, struct spoolss_EndPagePrinter *r)
22849 TALLOC_CTX *_mem_save_handle_0;
22850 if (flags & NDR_IN) {
22851 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22852 NDR_PULL_ALLOC(ndr, r->in.handle);
22854 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22855 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22856 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22857 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22859 if (flags & NDR_OUT) {
22860 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22862 return NDR_ERR_SUCCESS;
22865 _PUBLIC_ void ndr_print_spoolss_EndPagePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EndPagePrinter *r)
22867 ndr_print_struct(ndr, name, "spoolss_EndPagePrinter");
22869 if (flags & NDR_SET_VALUES) {
22870 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22872 if (flags & NDR_IN) {
22873 ndr_print_struct(ndr, "in", "spoolss_EndPagePrinter");
22875 ndr_print_ptr(ndr, "handle", r->in.handle);
22877 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22881 if (flags & NDR_OUT) {
22882 ndr_print_struct(ndr, "out", "spoolss_EndPagePrinter");
22884 ndr_print_WERROR(ndr, "result", r->out.result);
22890 static enum ndr_err_code ndr_push_spoolss_AbortPrinter(struct ndr_push *ndr, int flags, const struct spoolss_AbortPrinter *r)
22892 if (flags & NDR_IN) {
22893 if (r->in.handle == NULL) {
22894 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22896 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22898 if (flags & NDR_OUT) {
22899 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22901 return NDR_ERR_SUCCESS;
22904 static enum ndr_err_code ndr_pull_spoolss_AbortPrinter(struct ndr_pull *ndr, int flags, struct spoolss_AbortPrinter *r)
22906 TALLOC_CTX *_mem_save_handle_0;
22907 if (flags & NDR_IN) {
22908 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22909 NDR_PULL_ALLOC(ndr, r->in.handle);
22911 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22912 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22913 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22914 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22916 if (flags & NDR_OUT) {
22917 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22919 return NDR_ERR_SUCCESS;
22922 _PUBLIC_ void ndr_print_spoolss_AbortPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AbortPrinter *r)
22924 ndr_print_struct(ndr, name, "spoolss_AbortPrinter");
22926 if (flags & NDR_SET_VALUES) {
22927 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22929 if (flags & NDR_IN) {
22930 ndr_print_struct(ndr, "in", "spoolss_AbortPrinter");
22932 ndr_print_ptr(ndr, "handle", r->in.handle);
22934 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22938 if (flags & NDR_OUT) {
22939 ndr_print_struct(ndr, "out", "spoolss_AbortPrinter");
22941 ndr_print_WERROR(ndr, "result", r->out.result);
22947 static enum ndr_err_code ndr_push_spoolss_ReadPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReadPrinter *r)
22949 if (flags & NDR_IN) {
22950 if (r->in.handle == NULL) {
22951 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22953 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22954 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_size));
22956 if (flags & NDR_OUT) {
22957 if (r->out.data == NULL) {
22958 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22960 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.data_size));
22961 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->in.data_size));
22962 if (r->out._data_size == NULL) {
22963 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22965 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out._data_size));
22966 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22968 return NDR_ERR_SUCCESS;
22971 static enum ndr_err_code ndr_pull_spoolss_ReadPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReadPrinter *r)
22973 TALLOC_CTX *_mem_save_handle_0;
22974 TALLOC_CTX *_mem_save__data_size_0;
22975 if (flags & NDR_IN) {
22976 ZERO_STRUCT(r->out);
22978 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22979 NDR_PULL_ALLOC(ndr, r->in.handle);
22981 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22982 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22983 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22984 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22985 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_size));
22986 NDR_PULL_ALLOC_N(ndr, r->out.data, r->in.data_size);
22987 memset(r->out.data, 0, (r->in.data_size) * sizeof(*r->out.data));
22988 NDR_PULL_ALLOC(ndr, r->out._data_size);
22989 ZERO_STRUCTP(r->out._data_size);
22991 if (flags & NDR_OUT) {
22992 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
22993 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22994 NDR_PULL_ALLOC_N(ndr, r->out.data, ndr_get_array_size(ndr, &r->out.data));
22996 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, ndr_get_array_size(ndr, &r->out.data)));
22997 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22998 NDR_PULL_ALLOC(ndr, r->out._data_size);
23000 _mem_save__data_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
23001 NDR_PULL_SET_MEM_CTX(ndr, r->out._data_size, LIBNDR_FLAG_REF_ALLOC);
23002 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out._data_size));
23003 NDR_PULL_SET_MEM_CTX(ndr, _mem_save__data_size_0, LIBNDR_FLAG_REF_ALLOC);
23004 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23006 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, r->in.data_size));
23009 return NDR_ERR_SUCCESS;
23012 _PUBLIC_ void ndr_print_spoolss_ReadPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReadPrinter *r)
23014 ndr_print_struct(ndr, name, "spoolss_ReadPrinter");
23016 if (flags & NDR_SET_VALUES) {
23017 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23019 if (flags & NDR_IN) {
23020 ndr_print_struct(ndr, "in", "spoolss_ReadPrinter");
23022 ndr_print_ptr(ndr, "handle", r->in.handle);
23024 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23026 ndr_print_uint32(ndr, "data_size", r->in.data_size);
23029 if (flags & NDR_OUT) {
23030 ndr_print_struct(ndr, "out", "spoolss_ReadPrinter");
23032 ndr_print_ptr(ndr, "data", r->out.data);
23034 ndr_print_array_uint8(ndr, "data", r->out.data, r->in.data_size);
23036 ndr_print_ptr(ndr, "_data_size", r->out._data_size);
23038 ndr_print_uint32(ndr, "_data_size", *r->out._data_size);
23040 ndr_print_WERROR(ndr, "result", r->out.result);
23046 static enum ndr_err_code ndr_push_spoolss_EndDocPrinter(struct ndr_push *ndr, int flags, const struct spoolss_EndDocPrinter *r)
23048 if (flags & NDR_IN) {
23049 if (r->in.handle == NULL) {
23050 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23052 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23054 if (flags & NDR_OUT) {
23055 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23057 return NDR_ERR_SUCCESS;
23060 static enum ndr_err_code ndr_pull_spoolss_EndDocPrinter(struct ndr_pull *ndr, int flags, struct spoolss_EndDocPrinter *r)
23062 TALLOC_CTX *_mem_save_handle_0;
23063 if (flags & NDR_IN) {
23064 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23065 NDR_PULL_ALLOC(ndr, r->in.handle);
23067 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23068 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23069 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23070 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23072 if (flags & NDR_OUT) {
23073 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23075 return NDR_ERR_SUCCESS;
23078 _PUBLIC_ void ndr_print_spoolss_EndDocPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EndDocPrinter *r)
23080 ndr_print_struct(ndr, name, "spoolss_EndDocPrinter");
23082 if (flags & NDR_SET_VALUES) {
23083 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23085 if (flags & NDR_IN) {
23086 ndr_print_struct(ndr, "in", "spoolss_EndDocPrinter");
23088 ndr_print_ptr(ndr, "handle", r->in.handle);
23090 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23094 if (flags & NDR_OUT) {
23095 ndr_print_struct(ndr, "out", "spoolss_EndDocPrinter");
23097 ndr_print_WERROR(ndr, "result", r->out.result);
23103 static enum ndr_err_code ndr_push_spoolss_AddJob(struct ndr_push *ndr, int flags, const struct spoolss_AddJob *r)
23105 if (flags & NDR_IN) {
23106 if (r->in.handle == NULL) {
23107 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23109 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23110 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23111 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
23112 if (r->in.buffer) {
23113 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.offered));
23114 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.offered));
23116 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
23118 if (flags & NDR_OUT) {
23119 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.buffer));
23120 if (r->out.buffer) {
23121 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.offered));
23122 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
23124 if (r->out.needed == NULL) {
23125 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23127 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
23128 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23130 return NDR_ERR_SUCCESS;
23133 static enum ndr_err_code ndr_pull_spoolss_AddJob(struct ndr_pull *ndr, int flags, struct spoolss_AddJob *r)
23135 uint32_t _ptr_buffer;
23136 TALLOC_CTX *_mem_save_handle_0;
23137 TALLOC_CTX *_mem_save_buffer_0;
23138 TALLOC_CTX *_mem_save_needed_0;
23139 if (flags & NDR_IN) {
23140 ZERO_STRUCT(r->out);
23142 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23143 NDR_PULL_ALLOC(ndr, r->in.handle);
23145 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23146 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23147 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23148 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23149 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23150 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
23152 NDR_PULL_ALLOC(ndr, r->in.buffer);
23154 r->in.buffer = NULL;
23156 if (r->in.buffer) {
23157 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
23158 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
23159 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
23160 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
23161 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
23162 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
23164 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
23165 NDR_PULL_ALLOC(ndr, r->out.needed);
23166 ZERO_STRUCTP(r->out.needed);
23167 if (r->in.buffer) {
23168 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.offered));
23171 if (flags & NDR_OUT) {
23172 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
23174 NDR_PULL_ALLOC(ndr, r->out.buffer);
23176 r->out.buffer = NULL;
23178 if (r->out.buffer) {
23179 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
23180 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, 0);
23181 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
23182 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
23183 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)));
23184 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
23186 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23187 NDR_PULL_ALLOC(ndr, r->out.needed);
23189 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
23190 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
23191 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
23192 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
23193 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23194 if (r->out.buffer) {
23195 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
23198 return NDR_ERR_SUCCESS;
23201 _PUBLIC_ void ndr_print_spoolss_AddJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddJob *r)
23203 ndr_print_struct(ndr, name, "spoolss_AddJob");
23205 if (flags & NDR_SET_VALUES) {
23206 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23208 if (flags & NDR_IN) {
23209 ndr_print_struct(ndr, "in", "spoolss_AddJob");
23211 ndr_print_ptr(ndr, "handle", r->in.handle);
23213 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23215 ndr_print_uint32(ndr, "level", r->in.level);
23216 ndr_print_ptr(ndr, "buffer", r->in.buffer);
23218 if (r->in.buffer) {
23219 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.offered);
23222 ndr_print_uint32(ndr, "offered", r->in.offered);
23225 if (flags & NDR_OUT) {
23226 ndr_print_struct(ndr, "out", "spoolss_AddJob");
23228 ndr_print_ptr(ndr, "buffer", r->out.buffer);
23230 if (r->out.buffer) {
23231 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
23234 ndr_print_ptr(ndr, "needed", r->out.needed);
23236 ndr_print_uint32(ndr, "needed", *r->out.needed);
23238 ndr_print_WERROR(ndr, "result", r->out.result);
23244 static enum ndr_err_code ndr_push_spoolss_ScheduleJob(struct ndr_push *ndr, int flags, const struct spoolss_ScheduleJob *r)
23246 if (flags & NDR_IN) {
23247 if (r->in.handle == NULL) {
23248 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23250 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23251 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.jobid));
23253 if (flags & NDR_OUT) {
23254 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23256 return NDR_ERR_SUCCESS;
23259 static enum ndr_err_code ndr_pull_spoolss_ScheduleJob(struct ndr_pull *ndr, int flags, struct spoolss_ScheduleJob *r)
23261 TALLOC_CTX *_mem_save_handle_0;
23262 if (flags & NDR_IN) {
23263 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23264 NDR_PULL_ALLOC(ndr, r->in.handle);
23266 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23267 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23268 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23269 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23270 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.jobid));
23272 if (flags & NDR_OUT) {
23273 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23275 return NDR_ERR_SUCCESS;
23278 _PUBLIC_ void ndr_print_spoolss_ScheduleJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ScheduleJob *r)
23280 ndr_print_struct(ndr, name, "spoolss_ScheduleJob");
23282 if (flags & NDR_SET_VALUES) {
23283 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23285 if (flags & NDR_IN) {
23286 ndr_print_struct(ndr, "in", "spoolss_ScheduleJob");
23288 ndr_print_ptr(ndr, "handle", r->in.handle);
23290 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23292 ndr_print_uint32(ndr, "jobid", r->in.jobid);
23295 if (flags & NDR_OUT) {
23296 ndr_print_struct(ndr, "out", "spoolss_ScheduleJob");
23298 ndr_print_WERROR(ndr, "result", r->out.result);
23304 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct _spoolss_GetPrinterData *r)
23306 if (flags & NDR_IN) {
23307 if (r->in.handle == NULL) {
23308 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23310 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23311 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
23312 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
23313 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
23314 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));
23315 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
23317 if (flags & NDR_OUT) {
23318 if (r->out.type == NULL) {
23319 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23321 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
23322 if (r->out.data == NULL) {
23323 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23325 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.data));
23326 if (r->out.needed == NULL) {
23327 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23329 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
23330 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23332 return NDR_ERR_SUCCESS;
23335 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct _spoolss_GetPrinterData *r)
23337 TALLOC_CTX *_mem_save_handle_0;
23338 TALLOC_CTX *_mem_save_type_0;
23339 TALLOC_CTX *_mem_save_data_0;
23340 TALLOC_CTX *_mem_save_needed_0;
23341 if (flags & NDR_IN) {
23342 ZERO_STRUCT(r->out);
23344 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23345 NDR_PULL_ALLOC(ndr, r->in.handle);
23347 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23348 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23349 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23350 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23351 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
23352 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
23353 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
23354 return 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));
23356 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
23357 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));
23358 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
23359 NDR_PULL_ALLOC(ndr, r->out.type);
23360 ZERO_STRUCTP(r->out.type);
23361 NDR_PULL_ALLOC(ndr, r->out.data);
23362 ZERO_STRUCTP(r->out.data);
23363 NDR_PULL_ALLOC(ndr, r->out.needed);
23364 ZERO_STRUCTP(r->out.needed);
23366 if (flags & NDR_OUT) {
23367 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23368 NDR_PULL_ALLOC(ndr, r->out.type);
23370 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
23371 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
23372 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
23373 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
23374 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23375 NDR_PULL_ALLOC(ndr, r->out.data);
23377 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
23378 NDR_PULL_SET_MEM_CTX(ndr, r->out.data, LIBNDR_FLAG_REF_ALLOC);
23379 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.data));
23380 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
23381 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23382 NDR_PULL_ALLOC(ndr, r->out.needed);
23384 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
23385 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
23386 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
23387 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
23388 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23390 return NDR_ERR_SUCCESS;
23393 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct __spoolss_GetPrinterData *r)
23395 if (flags & NDR_IN) {
23396 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
23398 if (flags & NDR_OUT) {
23399 if (r->out.data == NULL) {
23400 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23402 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.data, r->in.type));
23403 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
23405 return NDR_ERR_SUCCESS;
23408 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct __spoolss_GetPrinterData *r)
23410 TALLOC_CTX *_mem_save_data_0;
23411 if (flags & NDR_IN) {
23412 ZERO_STRUCT(r->out);
23414 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
23415 NDR_PULL_ALLOC(ndr, r->out.data);
23416 ZERO_STRUCTP(r->out.data);
23418 if (flags & NDR_OUT) {
23419 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23420 NDR_PULL_ALLOC(ndr, r->out.data);
23422 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
23423 NDR_PULL_SET_MEM_CTX(ndr, r->out.data, LIBNDR_FLAG_REF_ALLOC);
23424 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.data, r->in.type));
23425 NDR_CHECK(ndr_pull_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
23426 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
23428 return NDR_ERR_SUCCESS;
23431 _PUBLIC_ void ndr_print_spoolss_GetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterData *r)
23433 ndr_print_struct(ndr, name, "spoolss_GetPrinterData");
23435 if (flags & NDR_SET_VALUES) {
23436 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23438 if (flags & NDR_IN) {
23439 ndr_print_struct(ndr, "in", "spoolss_GetPrinterData");
23441 ndr_print_ptr(ndr, "handle", r->in.handle);
23443 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23445 ndr_print_string(ndr, "value_name", r->in.value_name);
23446 ndr_print_uint32(ndr, "offered", r->in.offered);
23449 if (flags & NDR_OUT) {
23450 ndr_print_struct(ndr, "out", "spoolss_GetPrinterData");
23452 ndr_print_ptr(ndr, "type", r->out.type);
23454 ndr_print_winreg_Type(ndr, "type", *r->out.type);
23456 ndr_print_ptr(ndr, "data", r->out.data);
23458 ndr_print_set_switch_value(ndr, r->out.data, *r->out.type);
23459 ndr_print_spoolss_PrinterData(ndr, "data", r->out.data);
23461 ndr_print_ptr(ndr, "needed", r->out.needed);
23463 ndr_print_uint32(ndr, "needed", *r->out.needed);
23465 ndr_print_WERROR(ndr, "result", r->out.result);
23471 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct _spoolss_SetPrinterData *r)
23473 if (flags & NDR_IN) {
23474 if (r->in.handle == NULL) {
23475 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23477 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23478 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
23479 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
23480 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
23481 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));
23482 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
23483 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
23484 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in._offered));
23486 if (flags & NDR_OUT) {
23487 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23489 return NDR_ERR_SUCCESS;
23492 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct __spoolss_SetPrinterData *r)
23494 if (flags & NDR_IN) {
23495 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
23497 if (flags & NDR_OUT) {
23498 if (r->out.data == NULL) {
23499 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23501 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.data, r->in.type));
23502 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
23504 return NDR_ERR_SUCCESS;
23507 static enum ndr_err_code ndr_pull_spoolss_SetPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinterData *r)
23509 TALLOC_CTX *_mem_save_handle_0;
23510 if (flags & NDR_IN) {
23511 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23512 NDR_PULL_ALLOC(ndr, r->in.handle);
23514 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23515 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23516 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23517 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23518 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
23519 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
23520 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
23521 return 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));
23523 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
23524 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));
23525 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
23527 struct ndr_pull *_ndr_data;
23528 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_data, 4, -1));
23529 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data, &r->in.data, r->in.type));
23530 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
23531 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_data, 4, -1));
23533 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._offered));
23535 if (flags & NDR_OUT) {
23536 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23538 return NDR_ERR_SUCCESS;
23541 _PUBLIC_ void ndr_print_spoolss_SetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinterData *r)
23543 ndr_print_struct(ndr, name, "spoolss_SetPrinterData");
23545 if (flags & NDR_SET_VALUES) {
23546 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23548 if (flags & NDR_IN) {
23549 ndr_print_struct(ndr, "in", "spoolss_SetPrinterData");
23551 ndr_print_ptr(ndr, "handle", r->in.handle);
23553 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23555 ndr_print_string(ndr, "value_name", r->in.value_name);
23556 ndr_print_winreg_Type(ndr, "type", r->in.type);
23557 ndr_print_set_switch_value(ndr, &r->in.data, r->in.type);
23558 ndr_print_spoolss_PrinterData(ndr, "data", &r->in.data);
23559 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);
23562 if (flags & NDR_OUT) {
23563 ndr_print_struct(ndr, "out", "spoolss_SetPrinterData");
23565 ndr_print_WERROR(ndr, "result", r->out.result);
23571 static enum ndr_err_code ndr_push_spoolss_WaitForPrinterChange(struct ndr_push *ndr, int flags, const struct spoolss_WaitForPrinterChange *r)
23573 if (flags & NDR_IN) {
23575 if (flags & NDR_OUT) {
23576 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23578 return NDR_ERR_SUCCESS;
23581 static enum ndr_err_code ndr_pull_spoolss_WaitForPrinterChange(struct ndr_pull *ndr, int flags, struct spoolss_WaitForPrinterChange *r)
23583 if (flags & NDR_IN) {
23585 if (flags & NDR_OUT) {
23586 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23588 return NDR_ERR_SUCCESS;
23591 _PUBLIC_ void ndr_print_spoolss_WaitForPrinterChange(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_WaitForPrinterChange *r)
23593 ndr_print_struct(ndr, name, "spoolss_WaitForPrinterChange");
23595 if (flags & NDR_SET_VALUES) {
23596 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23598 if (flags & NDR_IN) {
23599 ndr_print_struct(ndr, "in", "spoolss_WaitForPrinterChange");
23603 if (flags & NDR_OUT) {
23604 ndr_print_struct(ndr, "out", "spoolss_WaitForPrinterChange");
23606 ndr_print_WERROR(ndr, "result", r->out.result);
23612 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ClosePrinter(struct ndr_push *ndr, int flags, const struct spoolss_ClosePrinter *r)
23614 if (flags & NDR_IN) {
23615 if (r->in.handle == NULL) {
23616 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23618 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23620 if (flags & NDR_OUT) {
23621 if (r->out.handle == NULL) {
23622 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23624 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
23625 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23627 return NDR_ERR_SUCCESS;
23630 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ClosePrinter(struct ndr_pull *ndr, int flags, struct spoolss_ClosePrinter *r)
23632 TALLOC_CTX *_mem_save_handle_0;
23633 if (flags & NDR_IN) {
23634 ZERO_STRUCT(r->out);
23636 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23637 NDR_PULL_ALLOC(ndr, r->in.handle);
23639 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23640 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23641 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23642 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23643 NDR_PULL_ALLOC(ndr, r->out.handle);
23644 *r->out.handle = *r->in.handle;
23646 if (flags & NDR_OUT) {
23647 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23648 NDR_PULL_ALLOC(ndr, r->out.handle);
23650 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23651 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
23652 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
23653 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23654 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23656 return NDR_ERR_SUCCESS;
23659 _PUBLIC_ void ndr_print_spoolss_ClosePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ClosePrinter *r)
23661 ndr_print_struct(ndr, name, "spoolss_ClosePrinter");
23663 if (flags & NDR_SET_VALUES) {
23664 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23666 if (flags & NDR_IN) {
23667 ndr_print_struct(ndr, "in", "spoolss_ClosePrinter");
23669 ndr_print_ptr(ndr, "handle", r->in.handle);
23671 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23675 if (flags & NDR_OUT) {
23676 ndr_print_struct(ndr, "out", "spoolss_ClosePrinter");
23678 ndr_print_ptr(ndr, "handle", r->out.handle);
23680 ndr_print_policy_handle(ndr, "handle", r->out.handle);
23682 ndr_print_WERROR(ndr, "result", r->out.result);
23688 static enum ndr_err_code ndr_push_spoolss_AddForm(struct ndr_push *ndr, int flags, const struct spoolss_AddForm *r)
23690 if (flags & NDR_IN) {
23691 if (r->in.handle == NULL) {
23692 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23694 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23695 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23696 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
23697 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
23699 if (flags & NDR_OUT) {
23700 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23702 return NDR_ERR_SUCCESS;
23705 static enum ndr_err_code ndr_pull_spoolss_AddForm(struct ndr_pull *ndr, int flags, struct spoolss_AddForm *r)
23707 TALLOC_CTX *_mem_save_handle_0;
23708 if (flags & NDR_IN) {
23709 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23710 NDR_PULL_ALLOC(ndr, r->in.handle);
23712 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23713 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23714 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23715 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23716 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23717 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
23718 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
23720 if (flags & NDR_OUT) {
23721 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23723 return NDR_ERR_SUCCESS;
23726 _PUBLIC_ void ndr_print_spoolss_AddForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddForm *r)
23728 ndr_print_struct(ndr, name, "spoolss_AddForm");
23730 if (flags & NDR_SET_VALUES) {
23731 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23733 if (flags & NDR_IN) {
23734 ndr_print_struct(ndr, "in", "spoolss_AddForm");
23736 ndr_print_ptr(ndr, "handle", r->in.handle);
23738 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23740 ndr_print_uint32(ndr, "level", r->in.level);
23741 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
23742 ndr_print_spoolss_AddFormInfo(ndr, "info", &r->in.info);
23745 if (flags & NDR_OUT) {
23746 ndr_print_struct(ndr, "out", "spoolss_AddForm");
23748 ndr_print_WERROR(ndr, "result", r->out.result);
23754 static enum ndr_err_code ndr_push_spoolss_DeleteForm(struct ndr_push *ndr, int flags, const struct spoolss_DeleteForm *r)
23756 if (flags & NDR_IN) {
23757 if (r->in.handle == NULL) {
23758 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23760 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23761 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
23762 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
23763 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
23764 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));
23766 if (flags & NDR_OUT) {
23767 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23769 return NDR_ERR_SUCCESS;
23772 static enum ndr_err_code ndr_pull_spoolss_DeleteForm(struct ndr_pull *ndr, int flags, struct spoolss_DeleteForm *r)
23774 TALLOC_CTX *_mem_save_handle_0;
23775 if (flags & NDR_IN) {
23776 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23777 NDR_PULL_ALLOC(ndr, r->in.handle);
23779 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23780 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23781 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23782 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23783 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
23784 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
23785 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
23786 return 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));
23788 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
23789 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));
23791 if (flags & NDR_OUT) {
23792 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23794 return NDR_ERR_SUCCESS;
23797 _PUBLIC_ void ndr_print_spoolss_DeleteForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeleteForm *r)
23799 ndr_print_struct(ndr, name, "spoolss_DeleteForm");
23801 if (flags & NDR_SET_VALUES) {
23802 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23804 if (flags & NDR_IN) {
23805 ndr_print_struct(ndr, "in", "spoolss_DeleteForm");
23807 ndr_print_ptr(ndr, "handle", r->in.handle);
23809 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23811 ndr_print_string(ndr, "form_name", r->in.form_name);
23814 if (flags & NDR_OUT) {
23815 ndr_print_struct(ndr, "out", "spoolss_DeleteForm");
23817 ndr_print_WERROR(ndr, "result", r->out.result);
23823 static enum ndr_err_code ndr_push_spoolss_GetForm(struct ndr_push *ndr, int flags, const struct spoolss_GetForm *r)
23825 if (flags & NDR_IN) {
23826 if (r->in.handle == NULL) {
23827 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23829 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23830 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
23831 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
23832 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
23833 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.form_name, ndr_charset_length(r->in.form_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
23834 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23835 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
23836 if (r->in.buffer) {
23837 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
23839 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
23841 if (flags & NDR_OUT) {
23842 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
23845 struct ndr_push *_ndr_info;
23846 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
23847 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
23848 NDR_CHECK(ndr_push_spoolss_FormInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
23849 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
23852 if (r->out.needed == NULL) {
23853 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23855 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
23856 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23858 return NDR_ERR_SUCCESS;
23861 static enum ndr_err_code ndr_pull_spoolss_GetForm(struct ndr_pull *ndr, int flags, struct spoolss_GetForm *r)
23863 uint32_t _ptr_buffer;
23864 uint32_t _ptr_info;
23865 TALLOC_CTX *_mem_save_handle_0;
23866 TALLOC_CTX *_mem_save_buffer_0;
23867 TALLOC_CTX *_mem_save_info_0;
23868 TALLOC_CTX *_mem_save_needed_0;
23869 if (flags & NDR_IN) {
23870 ZERO_STRUCT(r->out);
23872 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23873 NDR_PULL_ALLOC(ndr, r->in.handle);
23875 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23876 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23877 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23878 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23879 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
23880 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
23881 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
23882 return 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));
23884 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
23885 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));
23886 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23887 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
23889 NDR_PULL_ALLOC(ndr, r->in.buffer);
23891 r->in.buffer = NULL;
23893 if (r->in.buffer) {
23894 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
23895 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
23896 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
23897 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
23899 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
23900 NDR_PULL_ALLOC(ndr, r->out.needed);
23901 ZERO_STRUCTP(r->out.needed);
23903 if (flags & NDR_OUT) {
23904 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
23906 NDR_PULL_ALLOC(ndr, r->out.info);
23908 r->out.info = NULL;
23911 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
23912 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
23914 struct ndr_pull *_ndr_info;
23915 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
23916 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
23917 NDR_CHECK(ndr_pull_spoolss_FormInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
23918 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
23920 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
23922 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23923 NDR_PULL_ALLOC(ndr, r->out.needed);
23925 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
23926 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
23927 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
23928 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
23929 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23931 return NDR_ERR_SUCCESS;
23934 _PUBLIC_ void ndr_print_spoolss_GetForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetForm *r)
23936 ndr_print_struct(ndr, name, "spoolss_GetForm");
23938 if (flags & NDR_SET_VALUES) {
23939 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23941 if (flags & NDR_IN) {
23942 ndr_print_struct(ndr, "in", "spoolss_GetForm");
23944 ndr_print_ptr(ndr, "handle", r->in.handle);
23946 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23948 ndr_print_string(ndr, "form_name", r->in.form_name);
23949 ndr_print_uint32(ndr, "level", r->in.level);
23950 ndr_print_ptr(ndr, "buffer", r->in.buffer);
23952 if (r->in.buffer) {
23953 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
23956 ndr_print_uint32(ndr, "offered", r->in.offered);
23959 if (flags & NDR_OUT) {
23960 ndr_print_struct(ndr, "out", "spoolss_GetForm");
23962 ndr_print_ptr(ndr, "info", r->out.info);
23965 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
23966 ndr_print_spoolss_FormInfo(ndr, "info", r->out.info);
23969 ndr_print_ptr(ndr, "needed", r->out.needed);
23971 ndr_print_uint32(ndr, "needed", *r->out.needed);
23973 ndr_print_WERROR(ndr, "result", r->out.result);
23979 static enum ndr_err_code ndr_push_spoolss_SetForm(struct ndr_push *ndr, int flags, const struct spoolss_SetForm *r)
23981 if (flags & NDR_IN) {
23982 if (r->in.handle == NULL) {
23983 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23985 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23986 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
23987 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
23988 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
23989 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));
23990 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23991 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
23992 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
23994 if (flags & NDR_OUT) {
23995 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23997 return NDR_ERR_SUCCESS;
24000 static enum ndr_err_code ndr_pull_spoolss_SetForm(struct ndr_pull *ndr, int flags, struct spoolss_SetForm *r)
24002 TALLOC_CTX *_mem_save_handle_0;
24003 if (flags & NDR_IN) {
24004 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24005 NDR_PULL_ALLOC(ndr, r->in.handle);
24007 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24008 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24009 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24010 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24011 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
24012 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
24013 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
24014 return 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));
24016 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
24017 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));
24018 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24019 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
24020 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
24022 if (flags & NDR_OUT) {
24023 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24025 return NDR_ERR_SUCCESS;
24028 _PUBLIC_ void ndr_print_spoolss_SetForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetForm *r)
24030 ndr_print_struct(ndr, name, "spoolss_SetForm");
24032 if (flags & NDR_SET_VALUES) {
24033 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24035 if (flags & NDR_IN) {
24036 ndr_print_struct(ndr, "in", "spoolss_SetForm");
24038 ndr_print_ptr(ndr, "handle", r->in.handle);
24040 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24042 ndr_print_string(ndr, "form_name", r->in.form_name);
24043 ndr_print_uint32(ndr, "level", r->in.level);
24044 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
24045 ndr_print_spoolss_AddFormInfo(ndr, "info", &r->in.info);
24048 if (flags & NDR_OUT) {
24049 ndr_print_struct(ndr, "out", "spoolss_SetForm");
24051 ndr_print_WERROR(ndr, "result", r->out.result);
24057 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumForms(struct ndr_push *ndr, int flags, const struct _spoolss_EnumForms *r)
24059 if (flags & NDR_IN) {
24060 if (r->in.handle == NULL) {
24061 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24063 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24064 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24065 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
24066 if (r->in.buffer) {
24067 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
24069 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
24071 if (flags & NDR_OUT) {
24072 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
24074 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
24076 if (r->out.needed == NULL) {
24077 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24079 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
24080 if (r->out.count == NULL) {
24081 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24083 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
24084 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24086 return NDR_ERR_SUCCESS;
24089 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumForms(struct ndr_pull *ndr, int flags, struct _spoolss_EnumForms *r)
24091 uint32_t _ptr_buffer;
24092 uint32_t _ptr_info;
24093 TALLOC_CTX *_mem_save_handle_0;
24094 TALLOC_CTX *_mem_save_buffer_0;
24095 TALLOC_CTX *_mem_save_info_0;
24096 TALLOC_CTX *_mem_save_needed_0;
24097 TALLOC_CTX *_mem_save_count_0;
24098 if (flags & NDR_IN) {
24099 ZERO_STRUCT(r->out);
24101 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24102 NDR_PULL_ALLOC(ndr, r->in.handle);
24104 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24105 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24106 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24107 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24108 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24109 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
24111 NDR_PULL_ALLOC(ndr, r->in.buffer);
24113 r->in.buffer = NULL;
24115 if (r->in.buffer) {
24116 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
24117 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
24118 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
24119 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
24121 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
24122 NDR_PULL_ALLOC(ndr, r->out.needed);
24123 ZERO_STRUCTP(r->out.needed);
24124 NDR_PULL_ALLOC(ndr, r->out.count);
24125 ZERO_STRUCTP(r->out.count);
24127 if (flags & NDR_OUT) {
24128 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
24130 NDR_PULL_ALLOC(ndr, r->out.info);
24132 r->out.info = NULL;
24135 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24136 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24137 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
24138 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24140 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24141 NDR_PULL_ALLOC(ndr, r->out.needed);
24143 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
24144 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
24145 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
24146 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
24147 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24148 NDR_PULL_ALLOC(ndr, r->out.count);
24150 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
24151 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
24152 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
24153 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
24154 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24156 return NDR_ERR_SUCCESS;
24159 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumForms(struct ndr_push *ndr, int flags, const struct __spoolss_EnumForms *r)
24161 uint32_t cntr_info_0;
24162 if (flags & NDR_IN) {
24163 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24164 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
24166 if (flags & NDR_OUT) {
24167 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24168 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
24169 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
24171 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24172 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
24175 return NDR_ERR_SUCCESS;
24178 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumForms(struct ndr_pull *ndr, int flags, struct __spoolss_EnumForms *r)
24180 uint32_t cntr_info_0;
24181 TALLOC_CTX *_mem_save_info_0;
24182 if (flags & NDR_IN) {
24183 ZERO_STRUCT(r->out);
24185 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24186 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
24188 if (flags & NDR_OUT) {
24189 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
24190 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24191 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24192 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24193 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
24194 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
24196 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24197 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
24199 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24201 return NDR_ERR_SUCCESS;
24204 _PUBLIC_ void ndr_print_spoolss_EnumForms(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumForms *r)
24206 uint32_t cntr_info_2;
24207 ndr_print_struct(ndr, name, "spoolss_EnumForms");
24209 if (flags & NDR_SET_VALUES) {
24210 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24212 if (flags & NDR_IN) {
24213 ndr_print_struct(ndr, "in", "spoolss_EnumForms");
24215 ndr_print_ptr(ndr, "handle", r->in.handle);
24217 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24219 ndr_print_uint32(ndr, "level", r->in.level);
24220 ndr_print_ptr(ndr, "buffer", r->in.buffer);
24222 if (r->in.buffer) {
24223 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
24226 ndr_print_uint32(ndr, "offered", r->in.offered);
24229 if (flags & NDR_OUT) {
24230 ndr_print_struct(ndr, "out", "spoolss_EnumForms");
24232 ndr_print_ptr(ndr, "count", r->out.count);
24234 ndr_print_uint32(ndr, "count", *r->out.count);
24236 ndr_print_ptr(ndr, "info", r->out.info);
24238 ndr_print_ptr(ndr, "info", *r->out.info);
24240 if (*r->out.info) {
24241 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
24243 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
24245 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
24246 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
24247 ndr_print_spoolss_FormInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
24255 ndr_print_ptr(ndr, "needed", r->out.needed);
24257 ndr_print_uint32(ndr, "needed", *r->out.needed);
24259 ndr_print_WERROR(ndr, "result", r->out.result);
24265 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPorts(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPorts *r)
24267 if (flags & NDR_IN) {
24268 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
24269 if (r->in.servername) {
24270 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
24271 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24272 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
24273 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
24275 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24276 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
24277 if (r->in.buffer) {
24278 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
24280 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
24282 if (flags & NDR_OUT) {
24283 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
24285 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
24287 if (r->out.needed == NULL) {
24288 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24290 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
24291 if (r->out.count == NULL) {
24292 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24294 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
24295 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24297 return NDR_ERR_SUCCESS;
24300 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPorts(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPorts *r)
24302 uint32_t _ptr_servername;
24303 uint32_t _ptr_buffer;
24304 uint32_t _ptr_info;
24305 TALLOC_CTX *_mem_save_servername_0;
24306 TALLOC_CTX *_mem_save_buffer_0;
24307 TALLOC_CTX *_mem_save_info_0;
24308 TALLOC_CTX *_mem_save_needed_0;
24309 TALLOC_CTX *_mem_save_count_0;
24310 if (flags & NDR_IN) {
24311 ZERO_STRUCT(r->out);
24313 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
24314 if (_ptr_servername) {
24315 NDR_PULL_ALLOC(ndr, r->in.servername);
24317 r->in.servername = NULL;
24319 if (r->in.servername) {
24320 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
24321 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
24322 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
24323 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
24324 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
24325 return 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));
24327 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
24328 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
24329 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
24331 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24332 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
24334 NDR_PULL_ALLOC(ndr, r->in.buffer);
24336 r->in.buffer = NULL;
24338 if (r->in.buffer) {
24339 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
24340 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
24341 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
24342 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
24344 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
24345 NDR_PULL_ALLOC(ndr, r->out.needed);
24346 ZERO_STRUCTP(r->out.needed);
24347 NDR_PULL_ALLOC(ndr, r->out.count);
24348 ZERO_STRUCTP(r->out.count);
24350 if (flags & NDR_OUT) {
24351 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
24353 NDR_PULL_ALLOC(ndr, r->out.info);
24355 r->out.info = NULL;
24358 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24359 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24360 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
24361 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24363 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24364 NDR_PULL_ALLOC(ndr, r->out.needed);
24366 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
24367 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
24368 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
24369 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
24370 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24371 NDR_PULL_ALLOC(ndr, r->out.count);
24373 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
24374 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
24375 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
24376 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
24377 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24379 return NDR_ERR_SUCCESS;
24382 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPorts(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPorts *r)
24384 uint32_t cntr_info_0;
24385 if (flags & NDR_IN) {
24386 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24387 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
24389 if (flags & NDR_OUT) {
24390 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24391 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
24392 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
24394 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24395 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
24398 return NDR_ERR_SUCCESS;
24401 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPorts(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPorts *r)
24403 uint32_t cntr_info_0;
24404 TALLOC_CTX *_mem_save_info_0;
24405 if (flags & NDR_IN) {
24406 ZERO_STRUCT(r->out);
24408 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24409 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
24411 if (flags & NDR_OUT) {
24412 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
24413 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24414 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24415 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24416 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
24417 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
24419 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24420 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
24422 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24424 return NDR_ERR_SUCCESS;
24427 _PUBLIC_ void ndr_print_spoolss_EnumPorts(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPorts *r)
24429 uint32_t cntr_info_2;
24430 ndr_print_struct(ndr, name, "spoolss_EnumPorts");
24432 if (flags & NDR_SET_VALUES) {
24433 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24435 if (flags & NDR_IN) {
24436 ndr_print_struct(ndr, "in", "spoolss_EnumPorts");
24438 ndr_print_ptr(ndr, "servername", r->in.servername);
24440 if (r->in.servername) {
24441 ndr_print_string(ndr, "servername", r->in.servername);
24444 ndr_print_uint32(ndr, "level", r->in.level);
24445 ndr_print_ptr(ndr, "buffer", r->in.buffer);
24447 if (r->in.buffer) {
24448 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
24451 ndr_print_uint32(ndr, "offered", r->in.offered);
24454 if (flags & NDR_OUT) {
24455 ndr_print_struct(ndr, "out", "spoolss_EnumPorts");
24457 ndr_print_ptr(ndr, "count", r->out.count);
24459 ndr_print_uint32(ndr, "count", *r->out.count);
24461 ndr_print_ptr(ndr, "info", r->out.info);
24463 ndr_print_ptr(ndr, "info", *r->out.info);
24465 if (*r->out.info) {
24466 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
24468 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
24470 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
24471 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
24472 ndr_print_spoolss_PortInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
24480 ndr_print_ptr(ndr, "needed", r->out.needed);
24482 ndr_print_uint32(ndr, "needed", *r->out.needed);
24484 ndr_print_WERROR(ndr, "result", r->out.result);
24490 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumMonitors(struct ndr_push *ndr, int flags, const struct _spoolss_EnumMonitors *r)
24492 if (flags & NDR_IN) {
24493 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
24494 if (r->in.servername) {
24495 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
24496 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24497 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
24498 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
24500 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24501 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
24502 if (r->in.buffer) {
24503 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
24505 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
24507 if (flags & NDR_OUT) {
24508 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
24510 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
24512 if (r->out.needed == NULL) {
24513 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24515 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
24516 if (r->out.count == NULL) {
24517 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24519 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
24520 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24522 return NDR_ERR_SUCCESS;
24525 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumMonitors(struct ndr_pull *ndr, int flags, struct _spoolss_EnumMonitors *r)
24527 uint32_t _ptr_servername;
24528 uint32_t _ptr_buffer;
24529 uint32_t _ptr_info;
24530 TALLOC_CTX *_mem_save_servername_0;
24531 TALLOC_CTX *_mem_save_buffer_0;
24532 TALLOC_CTX *_mem_save_info_0;
24533 TALLOC_CTX *_mem_save_needed_0;
24534 TALLOC_CTX *_mem_save_count_0;
24535 if (flags & NDR_IN) {
24536 ZERO_STRUCT(r->out);
24538 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
24539 if (_ptr_servername) {
24540 NDR_PULL_ALLOC(ndr, r->in.servername);
24542 r->in.servername = NULL;
24544 if (r->in.servername) {
24545 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
24546 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
24547 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
24548 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
24549 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
24550 return 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));
24552 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
24553 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
24554 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
24556 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24557 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
24559 NDR_PULL_ALLOC(ndr, r->in.buffer);
24561 r->in.buffer = NULL;
24563 if (r->in.buffer) {
24564 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
24565 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
24566 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
24567 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
24569 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
24570 NDR_PULL_ALLOC(ndr, r->out.needed);
24571 ZERO_STRUCTP(r->out.needed);
24572 NDR_PULL_ALLOC(ndr, r->out.count);
24573 ZERO_STRUCTP(r->out.count);
24575 if (flags & NDR_OUT) {
24576 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
24578 NDR_PULL_ALLOC(ndr, r->out.info);
24580 r->out.info = NULL;
24583 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24584 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24585 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
24586 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24588 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24589 NDR_PULL_ALLOC(ndr, r->out.needed);
24591 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
24592 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
24593 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
24594 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
24595 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24596 NDR_PULL_ALLOC(ndr, r->out.count);
24598 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
24599 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
24600 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
24601 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
24602 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24604 return NDR_ERR_SUCCESS;
24607 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumMonitors(struct ndr_push *ndr, int flags, const struct __spoolss_EnumMonitors *r)
24609 uint32_t cntr_info_0;
24610 if (flags & NDR_IN) {
24611 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24612 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
24614 if (flags & NDR_OUT) {
24615 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24616 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
24617 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
24619 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24620 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
24623 return NDR_ERR_SUCCESS;
24626 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumMonitors(struct ndr_pull *ndr, int flags, struct __spoolss_EnumMonitors *r)
24628 uint32_t cntr_info_0;
24629 TALLOC_CTX *_mem_save_info_0;
24630 if (flags & NDR_IN) {
24631 ZERO_STRUCT(r->out);
24633 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24634 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
24636 if (flags & NDR_OUT) {
24637 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
24638 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24639 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24640 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24641 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
24642 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
24644 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24645 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
24647 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24649 return NDR_ERR_SUCCESS;
24652 _PUBLIC_ void ndr_print_spoolss_EnumMonitors(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumMonitors *r)
24654 uint32_t cntr_info_2;
24655 ndr_print_struct(ndr, name, "spoolss_EnumMonitors");
24657 if (flags & NDR_SET_VALUES) {
24658 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24660 if (flags & NDR_IN) {
24661 ndr_print_struct(ndr, "in", "spoolss_EnumMonitors");
24663 ndr_print_ptr(ndr, "servername", r->in.servername);
24665 if (r->in.servername) {
24666 ndr_print_string(ndr, "servername", r->in.servername);
24669 ndr_print_uint32(ndr, "level", r->in.level);
24670 ndr_print_ptr(ndr, "buffer", r->in.buffer);
24672 if (r->in.buffer) {
24673 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
24676 ndr_print_uint32(ndr, "offered", r->in.offered);
24679 if (flags & NDR_OUT) {
24680 ndr_print_struct(ndr, "out", "spoolss_EnumMonitors");
24682 ndr_print_ptr(ndr, "count", r->out.count);
24684 ndr_print_uint32(ndr, "count", *r->out.count);
24686 ndr_print_ptr(ndr, "info", r->out.info);
24688 ndr_print_ptr(ndr, "info", *r->out.info);
24690 if (*r->out.info) {
24691 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
24693 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
24695 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
24696 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
24697 ndr_print_spoolss_MonitorInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
24705 ndr_print_ptr(ndr, "needed", r->out.needed);
24707 ndr_print_uint32(ndr, "needed", *r->out.needed);
24709 ndr_print_WERROR(ndr, "result", r->out.result);
24715 static enum ndr_err_code ndr_push_spoolss_AddPort(struct ndr_push *ndr, int flags, const struct spoolss_AddPort *r)
24717 if (flags & NDR_IN) {
24718 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
24719 if (r->in.server_name) {
24720 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
24721 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24722 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
24723 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));
24725 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown));
24726 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
24727 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24728 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
24729 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));
24731 if (flags & NDR_OUT) {
24732 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24734 return NDR_ERR_SUCCESS;
24737 static enum ndr_err_code ndr_pull_spoolss_AddPort(struct ndr_pull *ndr, int flags, struct spoolss_AddPort *r)
24739 uint32_t _ptr_server_name;
24740 TALLOC_CTX *_mem_save_server_name_0;
24741 if (flags & NDR_IN) {
24742 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
24743 if (_ptr_server_name) {
24744 NDR_PULL_ALLOC(ndr, r->in.server_name);
24746 r->in.server_name = NULL;
24748 if (r->in.server_name) {
24749 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
24750 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
24751 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
24752 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
24753 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
24754 return 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));
24756 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
24757 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));
24758 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
24760 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown));
24761 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.monitor_name));
24762 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.monitor_name));
24763 if (ndr_get_array_length(ndr, &r->in.monitor_name) > ndr_get_array_size(ndr, &r->in.monitor_name)) {
24764 return 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));
24766 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.monitor_name), sizeof(uint16_t)));
24767 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));
24769 if (flags & NDR_OUT) {
24770 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24772 return NDR_ERR_SUCCESS;
24775 _PUBLIC_ void ndr_print_spoolss_AddPort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPort *r)
24777 ndr_print_struct(ndr, name, "spoolss_AddPort");
24779 if (flags & NDR_SET_VALUES) {
24780 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24782 if (flags & NDR_IN) {
24783 ndr_print_struct(ndr, "in", "spoolss_AddPort");
24785 ndr_print_ptr(ndr, "server_name", r->in.server_name);
24787 if (r->in.server_name) {
24788 ndr_print_string(ndr, "server_name", r->in.server_name);
24791 ndr_print_uint32(ndr, "unknown", r->in.unknown);
24792 ndr_print_string(ndr, "monitor_name", r->in.monitor_name);
24795 if (flags & NDR_OUT) {
24796 ndr_print_struct(ndr, "out", "spoolss_AddPort");
24798 ndr_print_WERROR(ndr, "result", r->out.result);
24804 static enum ndr_err_code ndr_push_spoolss_ConfigurePort(struct ndr_push *ndr, int flags, const struct spoolss_ConfigurePort *r)
24806 if (flags & NDR_IN) {
24808 if (flags & NDR_OUT) {
24809 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24811 return NDR_ERR_SUCCESS;
24814 static enum ndr_err_code ndr_pull_spoolss_ConfigurePort(struct ndr_pull *ndr, int flags, struct spoolss_ConfigurePort *r)
24816 if (flags & NDR_IN) {
24818 if (flags & NDR_OUT) {
24819 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24821 return NDR_ERR_SUCCESS;
24824 _PUBLIC_ void ndr_print_spoolss_ConfigurePort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ConfigurePort *r)
24826 ndr_print_struct(ndr, name, "spoolss_ConfigurePort");
24828 if (flags & NDR_SET_VALUES) {
24829 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24831 if (flags & NDR_IN) {
24832 ndr_print_struct(ndr, "in", "spoolss_ConfigurePort");
24836 if (flags & NDR_OUT) {
24837 ndr_print_struct(ndr, "out", "spoolss_ConfigurePort");
24839 ndr_print_WERROR(ndr, "result", r->out.result);
24845 static enum ndr_err_code ndr_push_spoolss_DeletePort(struct ndr_push *ndr, int flags, const struct spoolss_DeletePort *r)
24847 if (flags & NDR_IN) {
24849 if (flags & NDR_OUT) {
24850 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24852 return NDR_ERR_SUCCESS;
24855 static enum ndr_err_code ndr_pull_spoolss_DeletePort(struct ndr_pull *ndr, int flags, struct spoolss_DeletePort *r)
24857 if (flags & NDR_IN) {
24859 if (flags & NDR_OUT) {
24860 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24862 return NDR_ERR_SUCCESS;
24865 _PUBLIC_ void ndr_print_spoolss_DeletePort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePort *r)
24867 ndr_print_struct(ndr, name, "spoolss_DeletePort");
24869 if (flags & NDR_SET_VALUES) {
24870 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24872 if (flags & NDR_IN) {
24873 ndr_print_struct(ndr, "in", "spoolss_DeletePort");
24877 if (flags & NDR_OUT) {
24878 ndr_print_struct(ndr, "out", "spoolss_DeletePort");
24880 ndr_print_WERROR(ndr, "result", r->out.result);
24886 static enum ndr_err_code ndr_push_spoolss_CreatePrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_CreatePrinterIC *r)
24888 if (flags & NDR_IN) {
24889 if (r->in.handle == NULL) {
24890 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24892 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24893 if (r->in.devmode_ctr == NULL) {
24894 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24896 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
24898 if (flags & NDR_OUT) {
24899 if (r->out.gdi_handle == NULL) {
24900 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24902 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.gdi_handle));
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_CreatePrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_CreatePrinterIC *r)
24910 TALLOC_CTX *_mem_save_handle_0;
24911 TALLOC_CTX *_mem_save_gdi_handle_0;
24912 TALLOC_CTX *_mem_save_devmode_ctr_0;
24913 if (flags & NDR_IN) {
24914 ZERO_STRUCT(r->out);
24916 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24917 NDR_PULL_ALLOC(ndr, r->in.handle);
24919 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24920 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24921 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24922 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24923 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24924 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
24926 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
24927 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
24928 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
24929 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
24930 NDR_PULL_ALLOC(ndr, r->out.gdi_handle);
24931 ZERO_STRUCTP(r->out.gdi_handle);
24933 if (flags & NDR_OUT) {
24934 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24935 NDR_PULL_ALLOC(ndr, r->out.gdi_handle);
24937 _mem_save_gdi_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24938 NDR_PULL_SET_MEM_CTX(ndr, r->out.gdi_handle, LIBNDR_FLAG_REF_ALLOC);
24939 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.gdi_handle));
24940 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_gdi_handle_0, LIBNDR_FLAG_REF_ALLOC);
24941 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24943 return NDR_ERR_SUCCESS;
24946 _PUBLIC_ void ndr_print_spoolss_CreatePrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_CreatePrinterIC *r)
24948 ndr_print_struct(ndr, name, "spoolss_CreatePrinterIC");
24950 if (flags & NDR_SET_VALUES) {
24951 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24953 if (flags & NDR_IN) {
24954 ndr_print_struct(ndr, "in", "spoolss_CreatePrinterIC");
24956 ndr_print_ptr(ndr, "handle", r->in.handle);
24958 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24960 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
24962 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
24966 if (flags & NDR_OUT) {
24967 ndr_print_struct(ndr, "out", "spoolss_CreatePrinterIC");
24969 ndr_print_ptr(ndr, "gdi_handle", r->out.gdi_handle);
24971 ndr_print_policy_handle(ndr, "gdi_handle", r->out.gdi_handle);
24973 ndr_print_WERROR(ndr, "result", r->out.result);
24979 static enum ndr_err_code ndr_push_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_PlayGDIScriptOnPrinterIC *r)
24981 if (flags & NDR_IN) {
24983 if (flags & NDR_OUT) {
24984 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24986 return NDR_ERR_SUCCESS;
24989 static enum ndr_err_code ndr_pull_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_PlayGDIScriptOnPrinterIC *r)
24991 if (flags & NDR_IN) {
24993 if (flags & NDR_OUT) {
24994 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24996 return NDR_ERR_SUCCESS;
24999 _PUBLIC_ void ndr_print_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_PlayGDIScriptOnPrinterIC *r)
25001 ndr_print_struct(ndr, name, "spoolss_PlayGDIScriptOnPrinterIC");
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_PlayGDIScriptOnPrinterIC");
25011 if (flags & NDR_OUT) {
25012 ndr_print_struct(ndr, "out", "spoolss_PlayGDIScriptOnPrinterIC");
25014 ndr_print_WERROR(ndr, "result", r->out.result);
25020 static enum ndr_err_code ndr_push_spoolss_DeletePrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterIC *r)
25022 if (flags & NDR_IN) {
25023 if (r->in.gdi_handle == NULL) {
25024 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25026 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.gdi_handle));
25028 if (flags & NDR_OUT) {
25029 if (r->out.gdi_handle == NULL) {
25030 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25032 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.gdi_handle));
25033 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25035 return NDR_ERR_SUCCESS;
25038 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterIC *r)
25040 TALLOC_CTX *_mem_save_gdi_handle_0;
25041 if (flags & NDR_IN) {
25042 ZERO_STRUCT(r->out);
25044 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25045 NDR_PULL_ALLOC(ndr, r->in.gdi_handle);
25047 _mem_save_gdi_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25048 NDR_PULL_SET_MEM_CTX(ndr, r->in.gdi_handle, LIBNDR_FLAG_REF_ALLOC);
25049 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.gdi_handle));
25050 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_gdi_handle_0, LIBNDR_FLAG_REF_ALLOC);
25051 NDR_PULL_ALLOC(ndr, r->out.gdi_handle);
25052 *r->out.gdi_handle = *r->in.gdi_handle;
25054 if (flags & NDR_OUT) {
25055 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25056 NDR_PULL_ALLOC(ndr, r->out.gdi_handle);
25058 _mem_save_gdi_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25059 NDR_PULL_SET_MEM_CTX(ndr, r->out.gdi_handle, LIBNDR_FLAG_REF_ALLOC);
25060 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.gdi_handle));
25061 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_gdi_handle_0, LIBNDR_FLAG_REF_ALLOC);
25062 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25064 return NDR_ERR_SUCCESS;
25067 _PUBLIC_ void ndr_print_spoolss_DeletePrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterIC *r)
25069 ndr_print_struct(ndr, name, "spoolss_DeletePrinterIC");
25071 if (flags & NDR_SET_VALUES) {
25072 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25074 if (flags & NDR_IN) {
25075 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterIC");
25077 ndr_print_ptr(ndr, "gdi_handle", r->in.gdi_handle);
25079 ndr_print_policy_handle(ndr, "gdi_handle", r->in.gdi_handle);
25083 if (flags & NDR_OUT) {
25084 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterIC");
25086 ndr_print_ptr(ndr, "gdi_handle", r->out.gdi_handle);
25088 ndr_print_policy_handle(ndr, "gdi_handle", r->out.gdi_handle);
25090 ndr_print_WERROR(ndr, "result", r->out.result);
25096 static enum ndr_err_code ndr_push_spoolss_AddPrinterConnection(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterConnection *r)
25098 if (flags & NDR_IN) {
25100 if (flags & NDR_OUT) {
25101 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25103 return NDR_ERR_SUCCESS;
25106 static enum ndr_err_code ndr_pull_spoolss_AddPrinterConnection(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterConnection *r)
25108 if (flags & NDR_IN) {
25110 if (flags & NDR_OUT) {
25111 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25113 return NDR_ERR_SUCCESS;
25116 _PUBLIC_ void ndr_print_spoolss_AddPrinterConnection(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterConnection *r)
25118 ndr_print_struct(ndr, name, "spoolss_AddPrinterConnection");
25120 if (flags & NDR_SET_VALUES) {
25121 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25123 if (flags & NDR_IN) {
25124 ndr_print_struct(ndr, "in", "spoolss_AddPrinterConnection");
25128 if (flags & NDR_OUT) {
25129 ndr_print_struct(ndr, "out", "spoolss_AddPrinterConnection");
25131 ndr_print_WERROR(ndr, "result", r->out.result);
25137 static enum ndr_err_code ndr_push_spoolss_DeletePrinterConnection(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterConnection *r)
25139 if (flags & NDR_IN) {
25141 if (flags & NDR_OUT) {
25142 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25144 return NDR_ERR_SUCCESS;
25147 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterConnection(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterConnection *r)
25149 if (flags & NDR_IN) {
25151 if (flags & NDR_OUT) {
25152 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25154 return NDR_ERR_SUCCESS;
25157 _PUBLIC_ void ndr_print_spoolss_DeletePrinterConnection(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterConnection *r)
25159 ndr_print_struct(ndr, name, "spoolss_DeletePrinterConnection");
25161 if (flags & NDR_SET_VALUES) {
25162 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25164 if (flags & NDR_IN) {
25165 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterConnection");
25169 if (flags & NDR_OUT) {
25170 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterConnection");
25172 ndr_print_WERROR(ndr, "result", r->out.result);
25178 static enum ndr_err_code ndr_push_spoolss_PrinterMessageBox(struct ndr_push *ndr, int flags, const struct spoolss_PrinterMessageBox *r)
25180 if (flags & NDR_IN) {
25182 if (flags & NDR_OUT) {
25183 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25185 return NDR_ERR_SUCCESS;
25188 static enum ndr_err_code ndr_pull_spoolss_PrinterMessageBox(struct ndr_pull *ndr, int flags, struct spoolss_PrinterMessageBox *r)
25190 if (flags & NDR_IN) {
25192 if (flags & NDR_OUT) {
25193 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25195 return NDR_ERR_SUCCESS;
25198 _PUBLIC_ void ndr_print_spoolss_PrinterMessageBox(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_PrinterMessageBox *r)
25200 ndr_print_struct(ndr, name, "spoolss_PrinterMessageBox");
25202 if (flags & NDR_SET_VALUES) {
25203 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25205 if (flags & NDR_IN) {
25206 ndr_print_struct(ndr, "in", "spoolss_PrinterMessageBox");
25210 if (flags & NDR_OUT) {
25211 ndr_print_struct(ndr, "out", "spoolss_PrinterMessageBox");
25213 ndr_print_WERROR(ndr, "result", r->out.result);
25219 static enum ndr_err_code ndr_push_spoolss_AddMonitor(struct ndr_push *ndr, int flags, const struct spoolss_AddMonitor *r)
25221 if (flags & NDR_IN) {
25223 if (flags & NDR_OUT) {
25224 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25226 return NDR_ERR_SUCCESS;
25229 static enum ndr_err_code ndr_pull_spoolss_AddMonitor(struct ndr_pull *ndr, int flags, struct spoolss_AddMonitor *r)
25231 if (flags & NDR_IN) {
25233 if (flags & NDR_OUT) {
25234 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25236 return NDR_ERR_SUCCESS;
25239 _PUBLIC_ void ndr_print_spoolss_AddMonitor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddMonitor *r)
25241 ndr_print_struct(ndr, name, "spoolss_AddMonitor");
25243 if (flags & NDR_SET_VALUES) {
25244 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25246 if (flags & NDR_IN) {
25247 ndr_print_struct(ndr, "in", "spoolss_AddMonitor");
25251 if (flags & NDR_OUT) {
25252 ndr_print_struct(ndr, "out", "spoolss_AddMonitor");
25254 ndr_print_WERROR(ndr, "result", r->out.result);
25260 static enum ndr_err_code ndr_push_spoolss_DeleteMonitor(struct ndr_push *ndr, int flags, const struct spoolss_DeleteMonitor *r)
25262 if (flags & NDR_IN) {
25264 if (flags & NDR_OUT) {
25265 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25267 return NDR_ERR_SUCCESS;
25270 static enum ndr_err_code ndr_pull_spoolss_DeleteMonitor(struct ndr_pull *ndr, int flags, struct spoolss_DeleteMonitor *r)
25272 if (flags & NDR_IN) {
25274 if (flags & NDR_OUT) {
25275 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25277 return NDR_ERR_SUCCESS;
25280 _PUBLIC_ void ndr_print_spoolss_DeleteMonitor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeleteMonitor *r)
25282 ndr_print_struct(ndr, name, "spoolss_DeleteMonitor");
25284 if (flags & NDR_SET_VALUES) {
25285 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25287 if (flags & NDR_IN) {
25288 ndr_print_struct(ndr, "in", "spoolss_DeleteMonitor");
25292 if (flags & NDR_OUT) {
25293 ndr_print_struct(ndr, "out", "spoolss_DeleteMonitor");
25295 ndr_print_WERROR(ndr, "result", r->out.result);
25301 static enum ndr_err_code ndr_push_spoolss_DeletePrintProcessor(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrintProcessor *r)
25303 if (flags & NDR_IN) {
25305 if (flags & NDR_OUT) {
25306 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25308 return NDR_ERR_SUCCESS;
25311 static enum ndr_err_code ndr_pull_spoolss_DeletePrintProcessor(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrintProcessor *r)
25313 if (flags & NDR_IN) {
25315 if (flags & NDR_OUT) {
25316 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25318 return NDR_ERR_SUCCESS;
25321 _PUBLIC_ void ndr_print_spoolss_DeletePrintProcessor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrintProcessor *r)
25323 ndr_print_struct(ndr, name, "spoolss_DeletePrintProcessor");
25325 if (flags & NDR_SET_VALUES) {
25326 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25328 if (flags & NDR_IN) {
25329 ndr_print_struct(ndr, "in", "spoolss_DeletePrintProcessor");
25333 if (flags & NDR_OUT) {
25334 ndr_print_struct(ndr, "out", "spoolss_DeletePrintProcessor");
25336 ndr_print_WERROR(ndr, "result", r->out.result);
25342 static enum ndr_err_code ndr_push_spoolss_AddPrintProvidor(struct ndr_push *ndr, int flags, const struct spoolss_AddPrintProvidor *r)
25344 if (flags & NDR_IN) {
25346 if (flags & NDR_OUT) {
25347 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25349 return NDR_ERR_SUCCESS;
25352 static enum ndr_err_code ndr_pull_spoolss_AddPrintProvidor(struct ndr_pull *ndr, int flags, struct spoolss_AddPrintProvidor *r)
25354 if (flags & NDR_IN) {
25356 if (flags & NDR_OUT) {
25357 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25359 return NDR_ERR_SUCCESS;
25362 _PUBLIC_ void ndr_print_spoolss_AddPrintProvidor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrintProvidor *r)
25364 ndr_print_struct(ndr, name, "spoolss_AddPrintProvidor");
25366 if (flags & NDR_SET_VALUES) {
25367 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25369 if (flags & NDR_IN) {
25370 ndr_print_struct(ndr, "in", "spoolss_AddPrintProvidor");
25374 if (flags & NDR_OUT) {
25375 ndr_print_struct(ndr, "out", "spoolss_AddPrintProvidor");
25377 ndr_print_WERROR(ndr, "result", r->out.result);
25383 static enum ndr_err_code ndr_push_spoolss_DeletePrintProvidor(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrintProvidor *r)
25385 if (flags & NDR_IN) {
25387 if (flags & NDR_OUT) {
25388 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25390 return NDR_ERR_SUCCESS;
25393 static enum ndr_err_code ndr_pull_spoolss_DeletePrintProvidor(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrintProvidor *r)
25395 if (flags & NDR_IN) {
25397 if (flags & NDR_OUT) {
25398 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25400 return NDR_ERR_SUCCESS;
25403 _PUBLIC_ void ndr_print_spoolss_DeletePrintProvidor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrintProvidor *r)
25405 ndr_print_struct(ndr, name, "spoolss_DeletePrintProvidor");
25407 if (flags & NDR_SET_VALUES) {
25408 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25410 if (flags & NDR_IN) {
25411 ndr_print_struct(ndr, "in", "spoolss_DeletePrintProvidor");
25415 if (flags & NDR_OUT) {
25416 ndr_print_struct(ndr, "out", "spoolss_DeletePrintProvidor");
25418 ndr_print_WERROR(ndr, "result", r->out.result);
25424 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrintProcDataTypes(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrintProcDataTypes *r)
25426 if (flags & NDR_IN) {
25427 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
25428 if (r->in.servername) {
25429 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
25430 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
25431 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
25432 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
25434 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.print_processor_name));
25435 if (r->in.print_processor_name) {
25436 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
25437 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
25438 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
25439 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));
25441 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
25442 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
25443 if (r->in.buffer) {
25444 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
25446 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
25448 if (flags & NDR_OUT) {
25449 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
25451 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
25453 if (r->out.needed == NULL) {
25454 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25456 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
25457 if (r->out.count == NULL) {
25458 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25460 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
25461 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25463 return NDR_ERR_SUCCESS;
25466 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrintProcDataTypes(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrintProcDataTypes *r)
25468 uint32_t _ptr_servername;
25469 uint32_t _ptr_print_processor_name;
25470 uint32_t _ptr_buffer;
25471 uint32_t _ptr_info;
25472 TALLOC_CTX *_mem_save_servername_0;
25473 TALLOC_CTX *_mem_save_print_processor_name_0;
25474 TALLOC_CTX *_mem_save_buffer_0;
25475 TALLOC_CTX *_mem_save_info_0;
25476 TALLOC_CTX *_mem_save_needed_0;
25477 TALLOC_CTX *_mem_save_count_0;
25478 if (flags & NDR_IN) {
25479 ZERO_STRUCT(r->out);
25481 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
25482 if (_ptr_servername) {
25483 NDR_PULL_ALLOC(ndr, r->in.servername);
25485 r->in.servername = NULL;
25487 if (r->in.servername) {
25488 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
25489 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
25490 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
25491 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
25492 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
25493 return 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));
25495 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
25496 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
25497 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
25499 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor_name));
25500 if (_ptr_print_processor_name) {
25501 NDR_PULL_ALLOC(ndr, r->in.print_processor_name);
25503 r->in.print_processor_name = NULL;
25505 if (r->in.print_processor_name) {
25506 _mem_save_print_processor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
25507 NDR_PULL_SET_MEM_CTX(ndr, r->in.print_processor_name, 0);
25508 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.print_processor_name));
25509 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.print_processor_name));
25510 if (ndr_get_array_length(ndr, &r->in.print_processor_name) > ndr_get_array_size(ndr, &r->in.print_processor_name)) {
25511 return 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));
25513 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.print_processor_name), sizeof(uint16_t)));
25514 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));
25515 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_name_0, 0);
25517 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
25518 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
25520 NDR_PULL_ALLOC(ndr, r->in.buffer);
25522 r->in.buffer = NULL;
25524 if (r->in.buffer) {
25525 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
25526 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
25527 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
25528 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
25530 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
25531 NDR_PULL_ALLOC(ndr, r->out.needed);
25532 ZERO_STRUCTP(r->out.needed);
25533 NDR_PULL_ALLOC(ndr, r->out.count);
25534 ZERO_STRUCTP(r->out.count);
25536 if (flags & NDR_OUT) {
25537 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
25539 NDR_PULL_ALLOC(ndr, r->out.info);
25541 r->out.info = NULL;
25544 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
25545 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
25546 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
25547 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
25549 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25550 NDR_PULL_ALLOC(ndr, r->out.needed);
25552 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
25553 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
25554 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
25555 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
25556 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25557 NDR_PULL_ALLOC(ndr, r->out.count);
25559 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
25560 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
25561 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
25562 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
25563 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25565 return NDR_ERR_SUCCESS;
25568 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrintProcDataTypes(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrintProcDataTypes *r)
25570 uint32_t cntr_info_0;
25571 if (flags & NDR_IN) {
25572 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
25573 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
25575 if (flags & NDR_OUT) {
25576 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
25577 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
25578 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
25580 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
25581 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
25584 return NDR_ERR_SUCCESS;
25587 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrintProcDataTypes(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrintProcDataTypes *r)
25589 uint32_t cntr_info_0;
25590 TALLOC_CTX *_mem_save_info_0;
25591 if (flags & NDR_IN) {
25592 ZERO_STRUCT(r->out);
25594 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
25595 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
25597 if (flags & NDR_OUT) {
25598 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
25599 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
25600 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
25601 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
25602 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
25603 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
25605 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
25606 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
25608 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
25610 return NDR_ERR_SUCCESS;
25613 _PUBLIC_ void ndr_print_spoolss_EnumPrintProcDataTypes(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrintProcDataTypes *r)
25615 uint32_t cntr_info_2;
25616 ndr_print_struct(ndr, name, "spoolss_EnumPrintProcDataTypes");
25618 if (flags & NDR_SET_VALUES) {
25619 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25621 if (flags & NDR_IN) {
25622 ndr_print_struct(ndr, "in", "spoolss_EnumPrintProcDataTypes");
25624 ndr_print_ptr(ndr, "servername", r->in.servername);
25626 if (r->in.servername) {
25627 ndr_print_string(ndr, "servername", r->in.servername);
25630 ndr_print_ptr(ndr, "print_processor_name", r->in.print_processor_name);
25632 if (r->in.print_processor_name) {
25633 ndr_print_string(ndr, "print_processor_name", r->in.print_processor_name);
25636 ndr_print_uint32(ndr, "level", r->in.level);
25637 ndr_print_ptr(ndr, "buffer", r->in.buffer);
25639 if (r->in.buffer) {
25640 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
25643 ndr_print_uint32(ndr, "offered", r->in.offered);
25646 if (flags & NDR_OUT) {
25647 ndr_print_struct(ndr, "out", "spoolss_EnumPrintProcDataTypes");
25649 ndr_print_ptr(ndr, "count", r->out.count);
25651 ndr_print_uint32(ndr, "count", *r->out.count);
25653 ndr_print_ptr(ndr, "info", r->out.info);
25655 ndr_print_ptr(ndr, "info", *r->out.info);
25657 if (*r->out.info) {
25658 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
25660 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
25662 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
25663 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
25664 ndr_print_spoolss_PrintProcDataTypesInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
25672 ndr_print_ptr(ndr, "needed", r->out.needed);
25674 ndr_print_uint32(ndr, "needed", *r->out.needed);
25676 ndr_print_WERROR(ndr, "result", r->out.result);
25682 static enum ndr_err_code ndr_push_spoolss_ResetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ResetPrinter *r)
25684 if (flags & NDR_IN) {
25685 if (r->in.handle == NULL) {
25686 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25688 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25689 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.data_type));
25690 if (r->in.data_type) {
25691 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.data_type, CH_UTF16)));
25692 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
25693 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.data_type, CH_UTF16)));
25694 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));
25696 if (r->in.devmode_ctr == NULL) {
25697 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25699 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
25701 if (flags & NDR_OUT) {
25702 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25704 return NDR_ERR_SUCCESS;
25707 static enum ndr_err_code ndr_pull_spoolss_ResetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ResetPrinter *r)
25709 uint32_t _ptr_data_type;
25710 TALLOC_CTX *_mem_save_handle_0;
25711 TALLOC_CTX *_mem_save_data_type_0;
25712 TALLOC_CTX *_mem_save_devmode_ctr_0;
25713 if (flags & NDR_IN) {
25714 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25715 NDR_PULL_ALLOC(ndr, r->in.handle);
25717 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25718 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25719 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25720 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25721 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
25722 if (_ptr_data_type) {
25723 NDR_PULL_ALLOC(ndr, r->in.data_type);
25725 r->in.data_type = NULL;
25727 if (r->in.data_type) {
25728 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
25729 NDR_PULL_SET_MEM_CTX(ndr, r->in.data_type, 0);
25730 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.data_type));
25731 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.data_type));
25732 if (ndr_get_array_length(ndr, &r->in.data_type) > ndr_get_array_size(ndr, &r->in.data_type)) {
25733 return 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));
25735 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.data_type), sizeof(uint16_t)));
25736 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));
25737 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
25739 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25740 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
25742 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
25743 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
25744 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
25745 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
25747 if (flags & NDR_OUT) {
25748 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25750 return NDR_ERR_SUCCESS;
25753 _PUBLIC_ void ndr_print_spoolss_ResetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ResetPrinter *r)
25755 ndr_print_struct(ndr, name, "spoolss_ResetPrinter");
25757 if (flags & NDR_SET_VALUES) {
25758 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25760 if (flags & NDR_IN) {
25761 ndr_print_struct(ndr, "in", "spoolss_ResetPrinter");
25763 ndr_print_ptr(ndr, "handle", r->in.handle);
25765 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25767 ndr_print_ptr(ndr, "data_type", r->in.data_type);
25769 if (r->in.data_type) {
25770 ndr_print_string(ndr, "data_type", r->in.data_type);
25773 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
25775 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
25779 if (flags & NDR_OUT) {
25780 ndr_print_struct(ndr, "out", "spoolss_ResetPrinter");
25782 ndr_print_WERROR(ndr, "result", r->out.result);
25788 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriver2(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriver2 *r)
25790 if (flags & NDR_IN) {
25791 if (r->in.handle == NULL) {
25792 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25794 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25795 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.architecture));
25796 if (r->in.architecture) {
25797 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
25798 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
25799 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
25800 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
25802 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
25803 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
25804 if (r->in.buffer) {
25805 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
25807 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
25808 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_major_version));
25809 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_minor_version));
25811 if (flags & NDR_OUT) {
25812 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
25815 struct ndr_push *_ndr_info;
25816 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
25817 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
25818 NDR_CHECK(ndr_push_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
25819 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
25822 if (r->out.needed == NULL) {
25823 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25825 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
25826 if (r->out.server_major_version == NULL) {
25827 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25829 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.server_major_version));
25830 if (r->out.server_minor_version == NULL) {
25831 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25833 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.server_minor_version));
25834 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25836 return NDR_ERR_SUCCESS;
25839 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriver2(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriver2 *r)
25841 uint32_t _ptr_architecture;
25842 uint32_t _ptr_buffer;
25843 uint32_t _ptr_info;
25844 TALLOC_CTX *_mem_save_handle_0;
25845 TALLOC_CTX *_mem_save_architecture_0;
25846 TALLOC_CTX *_mem_save_buffer_0;
25847 TALLOC_CTX *_mem_save_info_0;
25848 TALLOC_CTX *_mem_save_needed_0;
25849 TALLOC_CTX *_mem_save_server_major_version_0;
25850 TALLOC_CTX *_mem_save_server_minor_version_0;
25851 if (flags & NDR_IN) {
25852 ZERO_STRUCT(r->out);
25854 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25855 NDR_PULL_ALLOC(ndr, r->in.handle);
25857 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25858 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25859 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25860 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25861 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
25862 if (_ptr_architecture) {
25863 NDR_PULL_ALLOC(ndr, r->in.architecture);
25865 r->in.architecture = NULL;
25867 if (r->in.architecture) {
25868 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
25869 NDR_PULL_SET_MEM_CTX(ndr, r->in.architecture, 0);
25870 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
25871 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
25872 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
25873 return 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));
25875 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
25876 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
25877 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
25879 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
25880 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
25882 NDR_PULL_ALLOC(ndr, r->in.buffer);
25884 r->in.buffer = NULL;
25886 if (r->in.buffer) {
25887 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
25888 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
25889 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
25890 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
25892 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
25893 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_major_version));
25894 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_minor_version));
25895 NDR_PULL_ALLOC(ndr, r->out.needed);
25896 ZERO_STRUCTP(r->out.needed);
25897 NDR_PULL_ALLOC(ndr, r->out.server_major_version);
25898 ZERO_STRUCTP(r->out.server_major_version);
25899 NDR_PULL_ALLOC(ndr, r->out.server_minor_version);
25900 ZERO_STRUCTP(r->out.server_minor_version);
25902 if (flags & NDR_OUT) {
25903 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
25905 NDR_PULL_ALLOC(ndr, r->out.info);
25907 r->out.info = NULL;
25910 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
25911 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
25913 struct ndr_pull *_ndr_info;
25914 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
25915 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
25916 NDR_CHECK(ndr_pull_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
25917 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
25919 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
25921 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25922 NDR_PULL_ALLOC(ndr, r->out.needed);
25924 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
25925 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
25926 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
25927 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
25928 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25929 NDR_PULL_ALLOC(ndr, r->out.server_major_version);
25931 _mem_save_server_major_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
25932 NDR_PULL_SET_MEM_CTX(ndr, r->out.server_major_version, LIBNDR_FLAG_REF_ALLOC);
25933 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.server_major_version));
25934 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_major_version_0, LIBNDR_FLAG_REF_ALLOC);
25935 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25936 NDR_PULL_ALLOC(ndr, r->out.server_minor_version);
25938 _mem_save_server_minor_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
25939 NDR_PULL_SET_MEM_CTX(ndr, r->out.server_minor_version, LIBNDR_FLAG_REF_ALLOC);
25940 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.server_minor_version));
25941 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_minor_version_0, LIBNDR_FLAG_REF_ALLOC);
25942 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25944 return NDR_ERR_SUCCESS;
25947 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriver2(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriver2 *r)
25949 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriver2");
25951 if (flags & NDR_SET_VALUES) {
25952 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25954 if (flags & NDR_IN) {
25955 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriver2");
25957 ndr_print_ptr(ndr, "handle", r->in.handle);
25959 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25961 ndr_print_ptr(ndr, "architecture", r->in.architecture);
25963 if (r->in.architecture) {
25964 ndr_print_string(ndr, "architecture", r->in.architecture);
25967 ndr_print_uint32(ndr, "level", r->in.level);
25968 ndr_print_ptr(ndr, "buffer", r->in.buffer);
25970 if (r->in.buffer) {
25971 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
25974 ndr_print_uint32(ndr, "offered", r->in.offered);
25975 ndr_print_uint32(ndr, "client_major_version", r->in.client_major_version);
25976 ndr_print_uint32(ndr, "client_minor_version", r->in.client_minor_version);
25979 if (flags & NDR_OUT) {
25980 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriver2");
25982 ndr_print_ptr(ndr, "info", r->out.info);
25985 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
25986 ndr_print_spoolss_DriverInfo(ndr, "info", r->out.info);
25989 ndr_print_ptr(ndr, "needed", r->out.needed);
25991 ndr_print_uint32(ndr, "needed", *r->out.needed);
25993 ndr_print_ptr(ndr, "server_major_version", r->out.server_major_version);
25995 ndr_print_uint32(ndr, "server_major_version", *r->out.server_major_version);
25997 ndr_print_ptr(ndr, "server_minor_version", r->out.server_minor_version);
25999 ndr_print_uint32(ndr, "server_minor_version", *r->out.server_minor_version);
26001 ndr_print_WERROR(ndr, "result", r->out.result);
26007 static enum ndr_err_code ndr_push_spoolss_FindFirstPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_FindFirstPrinterChangeNotification *r)
26009 if (flags & NDR_IN) {
26011 if (flags & NDR_OUT) {
26012 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26014 return NDR_ERR_SUCCESS;
26017 static enum ndr_err_code ndr_pull_spoolss_FindFirstPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_FindFirstPrinterChangeNotification *r)
26019 if (flags & NDR_IN) {
26021 if (flags & NDR_OUT) {
26022 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26024 return NDR_ERR_SUCCESS;
26027 _PUBLIC_ void ndr_print_spoolss_FindFirstPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindFirstPrinterChangeNotification *r)
26029 ndr_print_struct(ndr, name, "spoolss_FindFirstPrinterChangeNotification");
26031 if (flags & NDR_SET_VALUES) {
26032 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26034 if (flags & NDR_IN) {
26035 ndr_print_struct(ndr, "in", "spoolss_FindFirstPrinterChangeNotification");
26039 if (flags & NDR_OUT) {
26040 ndr_print_struct(ndr, "out", "spoolss_FindFirstPrinterChangeNotification");
26042 ndr_print_WERROR(ndr, "result", r->out.result);
26048 static enum ndr_err_code ndr_push_spoolss_FindNextPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_FindNextPrinterChangeNotification *r)
26050 if (flags & NDR_IN) {
26052 if (flags & NDR_OUT) {
26053 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26055 return NDR_ERR_SUCCESS;
26058 static enum ndr_err_code ndr_pull_spoolss_FindNextPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_FindNextPrinterChangeNotification *r)
26060 if (flags & NDR_IN) {
26062 if (flags & NDR_OUT) {
26063 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26065 return NDR_ERR_SUCCESS;
26068 _PUBLIC_ void ndr_print_spoolss_FindNextPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindNextPrinterChangeNotification *r)
26070 ndr_print_struct(ndr, name, "spoolss_FindNextPrinterChangeNotification");
26072 if (flags & NDR_SET_VALUES) {
26073 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26075 if (flags & NDR_IN) {
26076 ndr_print_struct(ndr, "in", "spoolss_FindNextPrinterChangeNotification");
26080 if (flags & NDR_OUT) {
26081 ndr_print_struct(ndr, "out", "spoolss_FindNextPrinterChangeNotification");
26083 ndr_print_WERROR(ndr, "result", r->out.result);
26089 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FindClosePrinterNotify(struct ndr_push *ndr, int flags, const struct spoolss_FindClosePrinterNotify *r)
26091 if (flags & NDR_IN) {
26092 if (r->in.handle == NULL) {
26093 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26095 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26097 if (flags & NDR_OUT) {
26098 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26100 return NDR_ERR_SUCCESS;
26103 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FindClosePrinterNotify(struct ndr_pull *ndr, int flags, struct spoolss_FindClosePrinterNotify *r)
26105 TALLOC_CTX *_mem_save_handle_0;
26106 if (flags & NDR_IN) {
26107 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26108 NDR_PULL_ALLOC(ndr, r->in.handle);
26110 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26111 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26112 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26113 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
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_FindClosePrinterNotify(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindClosePrinterNotify *r)
26123 ndr_print_struct(ndr, name, "spoolss_FindClosePrinterNotify");
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_FindClosePrinterNotify");
26131 ndr_print_ptr(ndr, "handle", r->in.handle);
26133 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26137 if (flags & NDR_OUT) {
26138 ndr_print_struct(ndr, "out", "spoolss_FindClosePrinterNotify");
26140 ndr_print_WERROR(ndr, "result", r->out.result);
26146 static enum ndr_err_code ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_push *ndr, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
26148 if (flags & NDR_IN) {
26150 if (flags & NDR_OUT) {
26151 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26153 return NDR_ERR_SUCCESS;
26156 static enum ndr_err_code ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_pull *ndr, int flags, struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
26158 if (flags & NDR_IN) {
26160 if (flags & NDR_OUT) {
26161 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26163 return NDR_ERR_SUCCESS;
26166 _PUBLIC_ void ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
26168 ndr_print_struct(ndr, name, "spoolss_RouterFindFirstPrinterChangeNotificationOld");
26170 if (flags & NDR_SET_VALUES) {
26171 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26173 if (flags & NDR_IN) {
26174 ndr_print_struct(ndr, "in", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
26178 if (flags & NDR_OUT) {
26179 ndr_print_struct(ndr, "out", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
26181 ndr_print_WERROR(ndr, "result", r->out.result);
26187 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ReplyOpenPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReplyOpenPrinter *r)
26189 if (flags & NDR_IN) {
26190 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
26191 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
26192 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
26193 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));
26194 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.printer_local));
26195 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
26196 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
26197 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
26198 if (r->in.buffer) {
26199 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.bufsize));
26200 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.bufsize));
26203 if (flags & NDR_OUT) {
26204 if (r->out.handle == NULL) {
26205 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26207 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
26208 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26210 return NDR_ERR_SUCCESS;
26213 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ReplyOpenPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReplyOpenPrinter *r)
26215 uint32_t _ptr_buffer;
26216 TALLOC_CTX *_mem_save_buffer_0;
26217 TALLOC_CTX *_mem_save_handle_0;
26218 if (flags & NDR_IN) {
26219 ZERO_STRUCT(r->out);
26221 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
26222 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
26223 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
26224 return 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));
26226 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
26227 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));
26228 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.printer_local));
26229 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
26230 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.bufsize));
26231 if (r->in.bufsize > 512) {
26232 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
26234 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
26236 NDR_PULL_ALLOC(ndr, r->in.buffer);
26238 r->in.buffer = NULL;
26240 if (r->in.buffer) {
26241 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
26242 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
26243 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
26244 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
26245 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
26246 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
26248 NDR_PULL_ALLOC(ndr, r->out.handle);
26249 ZERO_STRUCTP(r->out.handle);
26250 if (r->in.buffer) {
26251 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.bufsize));
26254 if (flags & NDR_OUT) {
26255 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26256 NDR_PULL_ALLOC(ndr, r->out.handle);
26258 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26259 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
26260 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
26261 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26262 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26264 return NDR_ERR_SUCCESS;
26267 _PUBLIC_ void ndr_print_spoolss_ReplyOpenPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReplyOpenPrinter *r)
26269 ndr_print_struct(ndr, name, "spoolss_ReplyOpenPrinter");
26271 if (flags & NDR_SET_VALUES) {
26272 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26274 if (flags & NDR_IN) {
26275 ndr_print_struct(ndr, "in", "spoolss_ReplyOpenPrinter");
26277 ndr_print_string(ndr, "server_name", r->in.server_name);
26278 ndr_print_uint32(ndr, "printer_local", r->in.printer_local);
26279 ndr_print_winreg_Type(ndr, "type", r->in.type);
26280 ndr_print_uint32(ndr, "bufsize", r->in.bufsize);
26281 ndr_print_ptr(ndr, "buffer", r->in.buffer);
26283 if (r->in.buffer) {
26284 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.bufsize);
26289 if (flags & NDR_OUT) {
26290 ndr_print_struct(ndr, "out", "spoolss_ReplyOpenPrinter");
26292 ndr_print_ptr(ndr, "handle", r->out.handle);
26294 ndr_print_policy_handle(ndr, "handle", r->out.handle);
26296 ndr_print_WERROR(ndr, "result", r->out.result);
26302 static enum ndr_err_code ndr_push_spoolss_RouterReplyPrinter(struct ndr_push *ndr, int flags, const struct spoolss_RouterReplyPrinter *r)
26304 if (flags & NDR_IN) {
26305 if (r->in.handle == NULL) {
26306 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26308 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26309 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
26310 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
26311 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
26312 if (r->in.buffer) {
26313 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.bufsize));
26314 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.bufsize));
26317 if (flags & NDR_OUT) {
26318 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26320 return NDR_ERR_SUCCESS;
26323 static enum ndr_err_code ndr_pull_spoolss_RouterReplyPrinter(struct ndr_pull *ndr, int flags, struct spoolss_RouterReplyPrinter *r)
26325 uint32_t _ptr_buffer;
26326 TALLOC_CTX *_mem_save_handle_0;
26327 TALLOC_CTX *_mem_save_buffer_0;
26328 if (flags & NDR_IN) {
26329 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26330 NDR_PULL_ALLOC(ndr, r->in.handle);
26332 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26333 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26334 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26335 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26336 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
26337 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.bufsize));
26338 if (r->in.bufsize > 512) {
26339 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
26341 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
26343 NDR_PULL_ALLOC(ndr, r->in.buffer);
26345 r->in.buffer = NULL;
26347 if (r->in.buffer) {
26348 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
26349 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
26350 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
26351 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
26352 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
26353 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
26355 if (r->in.buffer) {
26356 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.bufsize));
26359 if (flags & NDR_OUT) {
26360 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26362 return NDR_ERR_SUCCESS;
26365 _PUBLIC_ void ndr_print_spoolss_RouterReplyPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterReplyPrinter *r)
26367 ndr_print_struct(ndr, name, "spoolss_RouterReplyPrinter");
26369 if (flags & NDR_SET_VALUES) {
26370 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26372 if (flags & NDR_IN) {
26373 ndr_print_struct(ndr, "in", "spoolss_RouterReplyPrinter");
26375 ndr_print_ptr(ndr, "handle", r->in.handle);
26377 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26379 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
26380 ndr_print_uint32(ndr, "bufsize", r->in.bufsize);
26381 ndr_print_ptr(ndr, "buffer", r->in.buffer);
26383 if (r->in.buffer) {
26384 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.bufsize);
26389 if (flags & NDR_OUT) {
26390 ndr_print_struct(ndr, "out", "spoolss_RouterReplyPrinter");
26392 ndr_print_WERROR(ndr, "result", r->out.result);
26398 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ReplyClosePrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReplyClosePrinter *r)
26400 if (flags & NDR_IN) {
26401 if (r->in.handle == NULL) {
26402 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26404 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26406 if (flags & NDR_OUT) {
26407 if (r->out.handle == NULL) {
26408 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26410 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
26411 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26413 return NDR_ERR_SUCCESS;
26416 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ReplyClosePrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReplyClosePrinter *r)
26418 TALLOC_CTX *_mem_save_handle_0;
26419 if (flags & NDR_IN) {
26420 ZERO_STRUCT(r->out);
26422 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26423 NDR_PULL_ALLOC(ndr, r->in.handle);
26425 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26426 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26427 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26428 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26429 NDR_PULL_ALLOC(ndr, r->out.handle);
26430 *r->out.handle = *r->in.handle;
26432 if (flags & NDR_OUT) {
26433 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26434 NDR_PULL_ALLOC(ndr, r->out.handle);
26436 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26437 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
26438 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
26439 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26440 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26442 return NDR_ERR_SUCCESS;
26445 _PUBLIC_ void ndr_print_spoolss_ReplyClosePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReplyClosePrinter *r)
26447 ndr_print_struct(ndr, name, "spoolss_ReplyClosePrinter");
26449 if (flags & NDR_SET_VALUES) {
26450 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26452 if (flags & NDR_IN) {
26453 ndr_print_struct(ndr, "in", "spoolss_ReplyClosePrinter");
26455 ndr_print_ptr(ndr, "handle", r->in.handle);
26457 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26461 if (flags & NDR_OUT) {
26462 ndr_print_struct(ndr, "out", "spoolss_ReplyClosePrinter");
26464 ndr_print_ptr(ndr, "handle", r->out.handle);
26466 ndr_print_policy_handle(ndr, "handle", r->out.handle);
26468 ndr_print_WERROR(ndr, "result", r->out.result);
26474 static enum ndr_err_code ndr_push_spoolss_AddPortEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPortEx *r)
26476 if (flags & NDR_IN) {
26478 if (flags & NDR_OUT) {
26479 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26481 return NDR_ERR_SUCCESS;
26484 static enum ndr_err_code ndr_pull_spoolss_AddPortEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPortEx *r)
26486 if (flags & NDR_IN) {
26488 if (flags & NDR_OUT) {
26489 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26491 return NDR_ERR_SUCCESS;
26494 _PUBLIC_ void ndr_print_spoolss_AddPortEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPortEx *r)
26496 ndr_print_struct(ndr, name, "spoolss_AddPortEx");
26498 if (flags & NDR_SET_VALUES) {
26499 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26501 if (flags & NDR_IN) {
26502 ndr_print_struct(ndr, "in", "spoolss_AddPortEx");
26506 if (flags & NDR_OUT) {
26507 ndr_print_struct(ndr, "out", "spoolss_AddPortEx");
26509 ndr_print_WERROR(ndr, "result", r->out.result);
26515 static enum ndr_err_code ndr_push_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotification *r)
26517 if (flags & NDR_IN) {
26519 if (flags & NDR_OUT) {
26520 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26522 return NDR_ERR_SUCCESS;
26525 static enum ndr_err_code ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_RouterFindFirstPrinterChangeNotification *r)
26527 if (flags & NDR_IN) {
26529 if (flags & NDR_OUT) {
26530 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26532 return NDR_ERR_SUCCESS;
26535 _PUBLIC_ void ndr_print_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotification *r)
26537 ndr_print_struct(ndr, name, "spoolss_RouterFindFirstPrinterChangeNotification");
26539 if (flags & NDR_SET_VALUES) {
26540 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26542 if (flags & NDR_IN) {
26543 ndr_print_struct(ndr, "in", "spoolss_RouterFindFirstPrinterChangeNotification");
26547 if (flags & NDR_OUT) {
26548 ndr_print_struct(ndr, "out", "spoolss_RouterFindFirstPrinterChangeNotification");
26550 ndr_print_WERROR(ndr, "result", r->out.result);
26556 static enum ndr_err_code ndr_push_spoolss_SpoolerInit(struct ndr_push *ndr, int flags, const struct spoolss_SpoolerInit *r)
26558 if (flags & NDR_IN) {
26560 if (flags & NDR_OUT) {
26561 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26563 return NDR_ERR_SUCCESS;
26566 static enum ndr_err_code ndr_pull_spoolss_SpoolerInit(struct ndr_pull *ndr, int flags, struct spoolss_SpoolerInit *r)
26568 if (flags & NDR_IN) {
26570 if (flags & NDR_OUT) {
26571 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26573 return NDR_ERR_SUCCESS;
26576 _PUBLIC_ void ndr_print_spoolss_SpoolerInit(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SpoolerInit *r)
26578 ndr_print_struct(ndr, name, "spoolss_SpoolerInit");
26580 if (flags & NDR_SET_VALUES) {
26581 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26583 if (flags & NDR_IN) {
26584 ndr_print_struct(ndr, "in", "spoolss_SpoolerInit");
26588 if (flags & NDR_OUT) {
26589 ndr_print_struct(ndr, "out", "spoolss_SpoolerInit");
26591 ndr_print_WERROR(ndr, "result", r->out.result);
26597 static enum ndr_err_code ndr_push_spoolss_ResetPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_ResetPrinterEx *r)
26599 if (flags & NDR_IN) {
26601 if (flags & NDR_OUT) {
26602 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26604 return NDR_ERR_SUCCESS;
26607 static enum ndr_err_code ndr_pull_spoolss_ResetPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_ResetPrinterEx *r)
26609 if (flags & NDR_IN) {
26611 if (flags & NDR_OUT) {
26612 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26614 return NDR_ERR_SUCCESS;
26617 _PUBLIC_ void ndr_print_spoolss_ResetPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ResetPrinterEx *r)
26619 ndr_print_struct(ndr, name, "spoolss_ResetPrinterEx");
26621 if (flags & NDR_SET_VALUES) {
26622 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26624 if (flags & NDR_IN) {
26625 ndr_print_struct(ndr, "in", "spoolss_ResetPrinterEx");
26629 if (flags & NDR_OUT) {
26630 ndr_print_struct(ndr, "out", "spoolss_ResetPrinterEx");
26632 ndr_print_WERROR(ndr, "result", r->out.result);
26638 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_push *ndr, int flags, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
26640 if (flags & NDR_IN) {
26641 if (r->in.handle == NULL) {
26642 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26644 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26645 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
26646 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.options));
26647 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.local_machine));
26648 if (r->in.local_machine) {
26649 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.local_machine, CH_UTF16)));
26650 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
26651 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.local_machine, CH_UTF16)));
26652 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));
26654 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.printer_local));
26655 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.notify_options));
26656 if (r->in.notify_options) {
26657 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.notify_options));
26660 if (flags & NDR_OUT) {
26661 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26663 return NDR_ERR_SUCCESS;
26666 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_pull *ndr, int flags, struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
26668 uint32_t _ptr_local_machine;
26669 uint32_t _ptr_notify_options;
26670 TALLOC_CTX *_mem_save_handle_0;
26671 TALLOC_CTX *_mem_save_local_machine_0;
26672 TALLOC_CTX *_mem_save_notify_options_0;
26673 if (flags & NDR_IN) {
26674 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26675 NDR_PULL_ALLOC(ndr, r->in.handle);
26677 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26678 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26679 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26680 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26681 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
26682 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.options));
26683 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_local_machine));
26684 if (_ptr_local_machine) {
26685 NDR_PULL_ALLOC(ndr, r->in.local_machine);
26687 r->in.local_machine = NULL;
26689 if (r->in.local_machine) {
26690 _mem_save_local_machine_0 = NDR_PULL_GET_MEM_CTX(ndr);
26691 NDR_PULL_SET_MEM_CTX(ndr, r->in.local_machine, 0);
26692 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.local_machine));
26693 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.local_machine));
26694 if (ndr_get_array_length(ndr, &r->in.local_machine) > ndr_get_array_size(ndr, &r->in.local_machine)) {
26695 return 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));
26697 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.local_machine), sizeof(uint16_t)));
26698 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));
26699 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_local_machine_0, 0);
26701 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.printer_local));
26702 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_options));
26703 if (_ptr_notify_options) {
26704 NDR_PULL_ALLOC(ndr, r->in.notify_options);
26706 r->in.notify_options = NULL;
26708 if (r->in.notify_options) {
26709 _mem_save_notify_options_0 = NDR_PULL_GET_MEM_CTX(ndr);
26710 NDR_PULL_SET_MEM_CTX(ndr, r->in.notify_options, 0);
26711 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.notify_options));
26712 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_options_0, 0);
26715 if (flags & NDR_OUT) {
26716 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26718 return NDR_ERR_SUCCESS;
26721 _PUBLIC_ void ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
26723 ndr_print_struct(ndr, name, "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
26725 if (flags & NDR_SET_VALUES) {
26726 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26728 if (flags & NDR_IN) {
26729 ndr_print_struct(ndr, "in", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
26731 ndr_print_ptr(ndr, "handle", r->in.handle);
26733 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26735 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
26736 ndr_print_uint32(ndr, "options", r->in.options);
26737 ndr_print_ptr(ndr, "local_machine", r->in.local_machine);
26739 if (r->in.local_machine) {
26740 ndr_print_string(ndr, "local_machine", r->in.local_machine);
26743 ndr_print_uint32(ndr, "printer_local", r->in.printer_local);
26744 ndr_print_ptr(ndr, "notify_options", r->in.notify_options);
26746 if (r->in.notify_options) {
26747 ndr_print_spoolss_NotifyOption(ndr, "notify_options", r->in.notify_options);
26752 if (flags & NDR_OUT) {
26753 ndr_print_struct(ndr, "out", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
26755 ndr_print_WERROR(ndr, "result", r->out.result);
26761 static enum ndr_err_code ndr_push_spoolss_RouterReplyPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_RouterReplyPrinterEx *r)
26763 if (flags & NDR_IN) {
26764 if (r->in.handle == NULL) {
26765 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26767 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26768 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.color));
26769 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
26770 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.reply_type));
26771 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.reply_type));
26772 NDR_CHECK(ndr_push_spoolss_ReplyPrinterInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
26774 if (flags & NDR_OUT) {
26775 if (r->out.reply_result == NULL) {
26776 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26778 NDR_CHECK(ndr_push_spoolss_PrinterNotifyFlags(ndr, NDR_SCALARS, *r->out.reply_result));
26779 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26781 return NDR_ERR_SUCCESS;
26784 static enum ndr_err_code ndr_pull_spoolss_RouterReplyPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_RouterReplyPrinterEx *r)
26786 TALLOC_CTX *_mem_save_handle_0;
26787 TALLOC_CTX *_mem_save_reply_result_0;
26788 if (flags & NDR_IN) {
26789 ZERO_STRUCT(r->out);
26791 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26792 NDR_PULL_ALLOC(ndr, r->in.handle);
26794 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26795 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26796 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26797 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26798 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.color));
26799 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
26800 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.reply_type));
26801 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.reply_type));
26802 NDR_CHECK(ndr_pull_spoolss_ReplyPrinterInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
26803 NDR_PULL_ALLOC(ndr, r->out.reply_result);
26804 ZERO_STRUCTP(r->out.reply_result);
26806 if (flags & NDR_OUT) {
26807 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26808 NDR_PULL_ALLOC(ndr, r->out.reply_result);
26810 _mem_save_reply_result_0 = NDR_PULL_GET_MEM_CTX(ndr);
26811 NDR_PULL_SET_MEM_CTX(ndr, r->out.reply_result, LIBNDR_FLAG_REF_ALLOC);
26812 NDR_CHECK(ndr_pull_spoolss_PrinterNotifyFlags(ndr, NDR_SCALARS, r->out.reply_result));
26813 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_reply_result_0, LIBNDR_FLAG_REF_ALLOC);
26814 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26816 return NDR_ERR_SUCCESS;
26819 _PUBLIC_ void ndr_print_spoolss_RouterReplyPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterReplyPrinterEx *r)
26821 ndr_print_struct(ndr, name, "spoolss_RouterReplyPrinterEx");
26823 if (flags & NDR_SET_VALUES) {
26824 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26826 if (flags & NDR_IN) {
26827 ndr_print_struct(ndr, "in", "spoolss_RouterReplyPrinterEx");
26829 ndr_print_ptr(ndr, "handle", r->in.handle);
26831 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26833 ndr_print_uint32(ndr, "color", r->in.color);
26834 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
26835 ndr_print_uint32(ndr, "reply_type", r->in.reply_type);
26836 ndr_print_set_switch_value(ndr, &r->in.info, r->in.reply_type);
26837 ndr_print_spoolss_ReplyPrinterInfo(ndr, "info", &r->in.info);
26840 if (flags & NDR_OUT) {
26841 ndr_print_struct(ndr, "out", "spoolss_RouterReplyPrinterEx");
26843 ndr_print_ptr(ndr, "reply_result", r->out.reply_result);
26845 ndr_print_spoolss_PrinterNotifyFlags(ndr, "reply_result", *r->out.reply_result);
26847 ndr_print_WERROR(ndr, "result", r->out.result);
26853 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_push *ndr, int flags, const struct spoolss_RouterRefreshPrinterChangeNotify *r)
26855 if (flags & NDR_IN) {
26856 if (r->in.handle == NULL) {
26857 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26859 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26860 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.change_low));
26861 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.options));
26862 if (r->in.options) {
26863 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.options));
26866 if (flags & NDR_OUT) {
26867 if (r->out.info == NULL) {
26868 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26870 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
26871 if (*r->out.info) {
26872 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
26874 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26876 return NDR_ERR_SUCCESS;
26879 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_pull *ndr, int flags, struct spoolss_RouterRefreshPrinterChangeNotify *r)
26881 uint32_t _ptr_options;
26882 uint32_t _ptr_info;
26883 TALLOC_CTX *_mem_save_handle_0;
26884 TALLOC_CTX *_mem_save_options_0;
26885 TALLOC_CTX *_mem_save_info_0;
26886 TALLOC_CTX *_mem_save_info_1;
26887 if (flags & NDR_IN) {
26888 ZERO_STRUCT(r->out);
26890 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26891 NDR_PULL_ALLOC(ndr, r->in.handle);
26893 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26894 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26895 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26896 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26897 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.change_low));
26898 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_options));
26899 if (_ptr_options) {
26900 NDR_PULL_ALLOC(ndr, r->in.options);
26902 r->in.options = NULL;
26904 if (r->in.options) {
26905 _mem_save_options_0 = NDR_PULL_GET_MEM_CTX(ndr);
26906 NDR_PULL_SET_MEM_CTX(ndr, r->in.options, 0);
26907 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.options));
26908 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_options_0, 0);
26910 NDR_PULL_ALLOC(ndr, r->out.info);
26911 ZERO_STRUCTP(r->out.info);
26913 if (flags & NDR_OUT) {
26914 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26915 NDR_PULL_ALLOC(ndr, r->out.info);
26917 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
26918 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
26919 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
26921 NDR_PULL_ALLOC(ndr, *r->out.info);
26923 *r->out.info = NULL;
26925 if (*r->out.info) {
26926 _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
26927 NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
26928 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
26929 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
26931 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
26932 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26934 return NDR_ERR_SUCCESS;
26937 _PUBLIC_ void ndr_print_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterRefreshPrinterChangeNotify *r)
26939 ndr_print_struct(ndr, name, "spoolss_RouterRefreshPrinterChangeNotify");
26941 if (flags & NDR_SET_VALUES) {
26942 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26944 if (flags & NDR_IN) {
26945 ndr_print_struct(ndr, "in", "spoolss_RouterRefreshPrinterChangeNotify");
26947 ndr_print_ptr(ndr, "handle", r->in.handle);
26949 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26951 ndr_print_uint32(ndr, "change_low", r->in.change_low);
26952 ndr_print_ptr(ndr, "options", r->in.options);
26954 if (r->in.options) {
26955 ndr_print_spoolss_NotifyOption(ndr, "options", r->in.options);
26960 if (flags & NDR_OUT) {
26961 ndr_print_struct(ndr, "out", "spoolss_RouterRefreshPrinterChangeNotify");
26963 ndr_print_ptr(ndr, "info", r->out.info);
26965 ndr_print_ptr(ndr, "info", *r->out.info);
26967 if (*r->out.info) {
26968 ndr_print_spoolss_NotifyInfo(ndr, "info", *r->out.info);
26972 ndr_print_WERROR(ndr, "result", r->out.result);
26978 static enum ndr_err_code ndr_push_spoolss_44(struct ndr_push *ndr, int flags, const struct spoolss_44 *r)
26980 if (flags & NDR_IN) {
26982 if (flags & NDR_OUT) {
26983 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26985 return NDR_ERR_SUCCESS;
26988 static enum ndr_err_code ndr_pull_spoolss_44(struct ndr_pull *ndr, int flags, struct spoolss_44 *r)
26990 if (flags & NDR_IN) {
26992 if (flags & NDR_OUT) {
26993 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26995 return NDR_ERR_SUCCESS;
26998 _PUBLIC_ void ndr_print_spoolss_44(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_44 *r)
27000 ndr_print_struct(ndr, name, "spoolss_44");
27002 if (flags & NDR_SET_VALUES) {
27003 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27005 if (flags & NDR_IN) {
27006 ndr_print_struct(ndr, "in", "spoolss_44");
27010 if (flags & NDR_OUT) {
27011 ndr_print_struct(ndr, "out", "spoolss_44");
27013 ndr_print_WERROR(ndr, "result", r->out.result);
27019 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OpenPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_OpenPrinterEx *r)
27021 if (flags & NDR_IN) {
27022 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.printername));
27023 if (r->in.printername) {
27024 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
27025 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27026 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
27027 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
27029 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.datatype));
27030 if (r->in.datatype) {
27031 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
27032 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27033 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
27034 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.datatype, ndr_charset_length(r->in.datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
27036 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
27037 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr, NDR_SCALARS, r->in.access_mask));
27038 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
27039 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.userlevel, r->in.level));
27040 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.userlevel));
27042 if (flags & NDR_OUT) {
27043 if (r->out.handle == NULL) {
27044 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27046 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
27047 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27049 return NDR_ERR_SUCCESS;
27052 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OpenPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_OpenPrinterEx *r)
27054 uint32_t _ptr_printername;
27055 uint32_t _ptr_datatype;
27056 TALLOC_CTX *_mem_save_printername_0;
27057 TALLOC_CTX *_mem_save_datatype_0;
27058 TALLOC_CTX *_mem_save_handle_0;
27059 if (flags & NDR_IN) {
27060 ZERO_STRUCT(r->out);
27062 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
27063 if (_ptr_printername) {
27064 NDR_PULL_ALLOC(ndr, r->in.printername);
27066 r->in.printername = NULL;
27068 if (r->in.printername) {
27069 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
27070 NDR_PULL_SET_MEM_CTX(ndr, r->in.printername, 0);
27071 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
27072 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
27073 if (ndr_get_array_length(ndr, &r->in.printername) > ndr_get_array_size(ndr, &r->in.printername)) {
27074 return 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));
27076 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t)));
27077 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t), CH_UTF16));
27078 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
27080 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
27081 if (_ptr_datatype) {
27082 NDR_PULL_ALLOC(ndr, r->in.datatype);
27084 r->in.datatype = NULL;
27086 if (r->in.datatype) {
27087 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
27088 NDR_PULL_SET_MEM_CTX(ndr, r->in.datatype, 0);
27089 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.datatype));
27090 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.datatype));
27091 if (ndr_get_array_length(ndr, &r->in.datatype) > ndr_get_array_size(ndr, &r->in.datatype)) {
27092 return 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));
27094 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t)));
27095 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t), CH_UTF16));
27096 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
27098 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
27099 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr, NDR_SCALARS, &r->in.access_mask));
27100 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
27101 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.userlevel, r->in.level));
27102 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.userlevel));
27103 NDR_PULL_ALLOC(ndr, r->out.handle);
27104 ZERO_STRUCTP(r->out.handle);
27106 if (flags & NDR_OUT) {
27107 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27108 NDR_PULL_ALLOC(ndr, r->out.handle);
27110 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27111 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
27112 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
27113 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27114 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27116 return NDR_ERR_SUCCESS;
27119 _PUBLIC_ void ndr_print_spoolss_OpenPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_OpenPrinterEx *r)
27121 ndr_print_struct(ndr, name, "spoolss_OpenPrinterEx");
27123 if (flags & NDR_SET_VALUES) {
27124 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27126 if (flags & NDR_IN) {
27127 ndr_print_struct(ndr, "in", "spoolss_OpenPrinterEx");
27129 ndr_print_ptr(ndr, "printername", r->in.printername);
27131 if (r->in.printername) {
27132 ndr_print_string(ndr, "printername", r->in.printername);
27135 ndr_print_ptr(ndr, "datatype", r->in.datatype);
27137 if (r->in.datatype) {
27138 ndr_print_string(ndr, "datatype", r->in.datatype);
27141 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", &r->in.devmode_ctr);
27142 ndr_print_spoolss_AccessRights(ndr, "access_mask", r->in.access_mask);
27143 ndr_print_uint32(ndr, "level", r->in.level);
27144 ndr_print_set_switch_value(ndr, &r->in.userlevel, r->in.level);
27145 ndr_print_spoolss_UserLevel(ndr, "userlevel", &r->in.userlevel);
27148 if (flags & NDR_OUT) {
27149 ndr_print_struct(ndr, "out", "spoolss_OpenPrinterEx");
27151 ndr_print_ptr(ndr, "handle", r->out.handle);
27153 ndr_print_policy_handle(ndr, "handle", r->out.handle);
27155 ndr_print_WERROR(ndr, "result", r->out.result);
27161 static enum ndr_err_code ndr_push_spoolss_AddPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterEx *r)
27163 if (flags & NDR_IN) {
27164 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
27165 if (r->in.server) {
27166 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
27167 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27168 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
27169 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
27171 if (r->in.info_ctr == NULL) {
27172 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27174 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
27175 if (r->in.devmode_ctr == NULL) {
27176 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27178 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
27179 if (r->in.secdesc_ctr == NULL) {
27180 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27182 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
27183 if (r->in.userlevel_ctr == NULL) {
27184 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27186 NDR_CHECK(ndr_push_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.userlevel_ctr));
27188 if (flags & NDR_OUT) {
27189 if (r->out.handle == NULL) {
27190 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27192 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
27193 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27195 return NDR_ERR_SUCCESS;
27198 static enum ndr_err_code ndr_pull_spoolss_AddPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterEx *r)
27200 uint32_t _ptr_server;
27201 TALLOC_CTX *_mem_save_server_0;
27202 TALLOC_CTX *_mem_save_info_ctr_0;
27203 TALLOC_CTX *_mem_save_devmode_ctr_0;
27204 TALLOC_CTX *_mem_save_secdesc_ctr_0;
27205 TALLOC_CTX *_mem_save_userlevel_ctr_0;
27206 TALLOC_CTX *_mem_save_handle_0;
27207 if (flags & NDR_IN) {
27208 ZERO_STRUCT(r->out);
27210 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
27212 NDR_PULL_ALLOC(ndr, r->in.server);
27214 r->in.server = NULL;
27216 if (r->in.server) {
27217 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
27218 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
27219 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
27220 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
27221 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
27222 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server), ndr_get_array_length(ndr, &r->in.server));
27224 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
27225 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
27226 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
27228 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27229 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
27231 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
27232 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
27233 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
27234 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
27235 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27236 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
27238 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
27239 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
27240 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
27241 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
27242 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27243 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
27245 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
27246 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
27247 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
27248 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
27249 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27250 NDR_PULL_ALLOC(ndr, r->in.userlevel_ctr);
27252 _mem_save_userlevel_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
27253 NDR_PULL_SET_MEM_CTX(ndr, r->in.userlevel_ctr, LIBNDR_FLAG_REF_ALLOC);
27254 NDR_CHECK(ndr_pull_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.userlevel_ctr));
27255 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_userlevel_ctr_0, LIBNDR_FLAG_REF_ALLOC);
27256 NDR_PULL_ALLOC(ndr, r->out.handle);
27257 ZERO_STRUCTP(r->out.handle);
27259 if (flags & NDR_OUT) {
27260 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27261 NDR_PULL_ALLOC(ndr, r->out.handle);
27263 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27264 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
27265 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
27266 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27267 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27269 return NDR_ERR_SUCCESS;
27272 _PUBLIC_ void ndr_print_spoolss_AddPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterEx *r)
27274 ndr_print_struct(ndr, name, "spoolss_AddPrinterEx");
27276 if (flags & NDR_SET_VALUES) {
27277 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27279 if (flags & NDR_IN) {
27280 ndr_print_struct(ndr, "in", "spoolss_AddPrinterEx");
27282 ndr_print_ptr(ndr, "server", r->in.server);
27284 if (r->in.server) {
27285 ndr_print_string(ndr, "server", r->in.server);
27288 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
27290 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
27292 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
27294 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
27296 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
27298 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
27300 ndr_print_ptr(ndr, "userlevel_ctr", r->in.userlevel_ctr);
27302 ndr_print_spoolss_UserLevelCtr(ndr, "userlevel_ctr", r->in.userlevel_ctr);
27306 if (flags & NDR_OUT) {
27307 ndr_print_struct(ndr, "out", "spoolss_AddPrinterEx");
27309 ndr_print_ptr(ndr, "handle", r->out.handle);
27311 ndr_print_policy_handle(ndr, "handle", r->out.handle);
27313 ndr_print_WERROR(ndr, "result", r->out.result);
27319 static enum ndr_err_code ndr_push_spoolss_47(struct ndr_push *ndr, int flags, const struct spoolss_47 *r)
27321 if (flags & NDR_IN) {
27323 if (flags & NDR_OUT) {
27324 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27326 return NDR_ERR_SUCCESS;
27329 static enum ndr_err_code ndr_pull_spoolss_47(struct ndr_pull *ndr, int flags, struct spoolss_47 *r)
27331 if (flags & NDR_IN) {
27333 if (flags & NDR_OUT) {
27334 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27336 return NDR_ERR_SUCCESS;
27339 _PUBLIC_ void ndr_print_spoolss_47(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_47 *r)
27341 ndr_print_struct(ndr, name, "spoolss_47");
27343 if (flags & NDR_SET_VALUES) {
27344 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27346 if (flags & NDR_IN) {
27347 ndr_print_struct(ndr, "in", "spoolss_47");
27351 if (flags & NDR_OUT) {
27352 ndr_print_struct(ndr, "out", "spoolss_47");
27354 ndr_print_WERROR(ndr, "result", r->out.result);
27360 static enum ndr_err_code ndr_push_spoolss_EnumPrinterData(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterData *r)
27362 if (flags & NDR_IN) {
27363 if (r->in.handle == NULL) {
27364 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27366 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27367 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.enum_index));
27368 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.value_offered));
27369 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_offered));
27371 if (flags & NDR_OUT) {
27372 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.value_offered / 2));
27373 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->out.value_name, r->in.value_offered / 2, sizeof(uint16_t), CH_UTF16));
27374 if (r->out.value_needed == NULL) {
27375 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27377 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.value_needed));
27378 if (r->out.type == NULL) {
27379 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27381 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
27383 uint32_t _flags_save_uint8 = ndr->flags;
27384 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
27385 if (r->out.data == NULL) {
27386 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27388 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.data_offered));
27389 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->in.data_offered));
27390 ndr->flags = _flags_save_uint8;
27392 if (r->out.data_needed == NULL) {
27393 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27395 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.data_needed));
27396 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27398 return NDR_ERR_SUCCESS;
27401 static enum ndr_err_code ndr_pull_spoolss_EnumPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterData *r)
27403 TALLOC_CTX *_mem_save_handle_0;
27404 TALLOC_CTX *_mem_save_value_needed_0;
27405 TALLOC_CTX *_mem_save_type_0;
27406 TALLOC_CTX *_mem_save_data_needed_0;
27407 if (flags & NDR_IN) {
27408 ZERO_STRUCT(r->out);
27410 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27411 NDR_PULL_ALLOC(ndr, r->in.handle);
27413 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27414 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27415 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27416 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27417 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.enum_index));
27418 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.value_offered));
27419 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_offered));
27420 NDR_PULL_ALLOC(ndr, r->out.value_needed);
27421 ZERO_STRUCTP(r->out.value_needed);
27422 NDR_PULL_ALLOC(ndr, r->out.type);
27423 ZERO_STRUCTP(r->out.type);
27424 NDR_PULL_ALLOC_N(ndr, r->out.data, r->in.data_offered);
27425 memset(r->out.data, 0, (r->in.data_offered) * sizeof(*r->out.data));
27426 NDR_PULL_ALLOC(ndr, r->out.data_needed);
27427 ZERO_STRUCTP(r->out.data_needed);
27429 if (flags & NDR_OUT) {
27430 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.value_name));
27431 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));
27432 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27433 NDR_PULL_ALLOC(ndr, r->out.value_needed);
27435 _mem_save_value_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
27436 NDR_PULL_SET_MEM_CTX(ndr, r->out.value_needed, LIBNDR_FLAG_REF_ALLOC);
27437 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.value_needed));
27438 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_needed_0, LIBNDR_FLAG_REF_ALLOC);
27439 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27440 NDR_PULL_ALLOC(ndr, r->out.type);
27442 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
27443 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
27444 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
27445 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
27447 uint32_t _flags_save_uint8 = ndr->flags;
27448 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
27449 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
27450 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27451 NDR_PULL_ALLOC_N(ndr, r->out.data, ndr_get_array_size(ndr, &r->out.data));
27453 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, ndr_get_array_size(ndr, &r->out.data)));
27454 ndr->flags = _flags_save_uint8;
27456 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27457 NDR_PULL_ALLOC(ndr, r->out.data_needed);
27459 _mem_save_data_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
27460 NDR_PULL_SET_MEM_CTX(ndr, r->out.data_needed, LIBNDR_FLAG_REF_ALLOC);
27461 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.data_needed));
27462 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_needed_0, LIBNDR_FLAG_REF_ALLOC);
27463 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27464 if (r->out.value_name) {
27465 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.value_name, r->in.value_offered / 2));
27468 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, r->in.data_offered));
27471 return NDR_ERR_SUCCESS;
27474 _PUBLIC_ void ndr_print_spoolss_EnumPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterData *r)
27476 ndr_print_struct(ndr, name, "spoolss_EnumPrinterData");
27478 if (flags & NDR_SET_VALUES) {
27479 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27481 if (flags & NDR_IN) {
27482 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterData");
27484 ndr_print_ptr(ndr, "handle", r->in.handle);
27486 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27488 ndr_print_uint32(ndr, "enum_index", r->in.enum_index);
27489 ndr_print_uint32(ndr, "value_offered", r->in.value_offered);
27490 ndr_print_uint32(ndr, "data_offered", r->in.data_offered);
27493 if (flags & NDR_OUT) {
27494 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterData");
27496 ndr_print_string(ndr, "value_name", r->out.value_name);
27497 ndr_print_ptr(ndr, "value_needed", r->out.value_needed);
27499 ndr_print_uint32(ndr, "value_needed", *r->out.value_needed);
27501 ndr_print_ptr(ndr, "type", r->out.type);
27503 ndr_print_winreg_Type(ndr, "type", *r->out.type);
27505 ndr_print_ptr(ndr, "data", r->out.data);
27507 ndr_print_array_uint8(ndr, "data", r->out.data, r->in.data_offered);
27509 ndr_print_ptr(ndr, "data_needed", r->out.data_needed);
27511 ndr_print_uint32(ndr, "data_needed", *r->out.data_needed);
27513 ndr_print_WERROR(ndr, "result", r->out.result);
27519 static enum ndr_err_code ndr_push_spoolss_DeletePrinterData(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterData *r)
27521 if (flags & NDR_IN) {
27522 if (r->in.handle == NULL) {
27523 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27525 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27526 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
27527 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27528 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
27529 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));
27531 if (flags & NDR_OUT) {
27532 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27534 return NDR_ERR_SUCCESS;
27537 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterData(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterData *r)
27539 TALLOC_CTX *_mem_save_handle_0;
27540 if (flags & NDR_IN) {
27541 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27542 NDR_PULL_ALLOC(ndr, r->in.handle);
27544 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27545 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27546 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27547 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27548 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
27549 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
27550 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
27551 return 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));
27553 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
27554 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));
27556 if (flags & NDR_OUT) {
27557 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27559 return NDR_ERR_SUCCESS;
27562 _PUBLIC_ void ndr_print_spoolss_DeletePrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterData *r)
27564 ndr_print_struct(ndr, name, "spoolss_DeletePrinterData");
27566 if (flags & NDR_SET_VALUES) {
27567 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27569 if (flags & NDR_IN) {
27570 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterData");
27572 ndr_print_ptr(ndr, "handle", r->in.handle);
27574 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27576 ndr_print_string(ndr, "value_name", r->in.value_name);
27579 if (flags & NDR_OUT) {
27580 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterData");
27582 ndr_print_WERROR(ndr, "result", r->out.result);
27588 static enum ndr_err_code ndr_push_spoolss_4a(struct ndr_push *ndr, int flags, const struct spoolss_4a *r)
27590 if (flags & NDR_IN) {
27592 if (flags & NDR_OUT) {
27593 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27595 return NDR_ERR_SUCCESS;
27598 static enum ndr_err_code ndr_pull_spoolss_4a(struct ndr_pull *ndr, int flags, struct spoolss_4a *r)
27600 if (flags & NDR_IN) {
27602 if (flags & NDR_OUT) {
27603 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27605 return NDR_ERR_SUCCESS;
27608 _PUBLIC_ void ndr_print_spoolss_4a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4a *r)
27610 ndr_print_struct(ndr, name, "spoolss_4a");
27612 if (flags & NDR_SET_VALUES) {
27613 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27615 if (flags & NDR_IN) {
27616 ndr_print_struct(ndr, "in", "spoolss_4a");
27620 if (flags & NDR_OUT) {
27621 ndr_print_struct(ndr, "out", "spoolss_4a");
27623 ndr_print_WERROR(ndr, "result", r->out.result);
27629 static enum ndr_err_code ndr_push_spoolss_4b(struct ndr_push *ndr, int flags, const struct spoolss_4b *r)
27631 if (flags & NDR_IN) {
27633 if (flags & NDR_OUT) {
27634 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27636 return NDR_ERR_SUCCESS;
27639 static enum ndr_err_code ndr_pull_spoolss_4b(struct ndr_pull *ndr, int flags, struct spoolss_4b *r)
27641 if (flags & NDR_IN) {
27643 if (flags & NDR_OUT) {
27644 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27646 return NDR_ERR_SUCCESS;
27649 _PUBLIC_ void ndr_print_spoolss_4b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4b *r)
27651 ndr_print_struct(ndr, name, "spoolss_4b");
27653 if (flags & NDR_SET_VALUES) {
27654 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27656 if (flags & NDR_IN) {
27657 ndr_print_struct(ndr, "in", "spoolss_4b");
27661 if (flags & NDR_OUT) {
27662 ndr_print_struct(ndr, "out", "spoolss_4b");
27664 ndr_print_WERROR(ndr, "result", r->out.result);
27670 static enum ndr_err_code ndr_push_spoolss_4c(struct ndr_push *ndr, int flags, const struct spoolss_4c *r)
27672 if (flags & NDR_IN) {
27674 if (flags & NDR_OUT) {
27675 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27677 return NDR_ERR_SUCCESS;
27680 static enum ndr_err_code ndr_pull_spoolss_4c(struct ndr_pull *ndr, int flags, struct spoolss_4c *r)
27682 if (flags & NDR_IN) {
27684 if (flags & NDR_OUT) {
27685 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27687 return NDR_ERR_SUCCESS;
27690 _PUBLIC_ void ndr_print_spoolss_4c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4c *r)
27692 ndr_print_struct(ndr, name, "spoolss_4c");
27694 if (flags & NDR_SET_VALUES) {
27695 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27697 if (flags & NDR_IN) {
27698 ndr_print_struct(ndr, "in", "spoolss_4c");
27702 if (flags & NDR_OUT) {
27703 ndr_print_struct(ndr, "out", "spoolss_4c");
27705 ndr_print_WERROR(ndr, "result", r->out.result);
27711 static enum ndr_err_code ndr_push_spoolss_SetPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_SetPrinterDataEx *r)
27713 if (flags & NDR_IN) {
27714 if (r->in.handle == NULL) {
27715 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27717 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27718 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27719 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27720 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27721 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));
27722 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
27723 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27724 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
27725 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));
27726 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
27727 if (r->in.buffer == NULL) {
27728 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27730 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.offered));
27731 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.offered));
27732 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
27734 if (flags & NDR_OUT) {
27735 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27737 return NDR_ERR_SUCCESS;
27740 static enum ndr_err_code ndr_pull_spoolss_SetPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinterDataEx *r)
27742 TALLOC_CTX *_mem_save_handle_0;
27743 if (flags & NDR_IN) {
27744 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27745 NDR_PULL_ALLOC(ndr, r->in.handle);
27747 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27748 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27749 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27750 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27751 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
27752 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
27753 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
27754 return 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));
27756 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
27757 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));
27758 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
27759 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
27760 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
27761 return 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));
27763 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
27764 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));
27765 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
27766 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
27767 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27768 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
27770 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
27771 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
27772 if (r->in.buffer) {
27773 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.offered));
27776 if (flags & NDR_OUT) {
27777 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27779 return NDR_ERR_SUCCESS;
27782 _PUBLIC_ void ndr_print_spoolss_SetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinterDataEx *r)
27784 ndr_print_struct(ndr, name, "spoolss_SetPrinterDataEx");
27786 if (flags & NDR_SET_VALUES) {
27787 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27789 if (flags & NDR_IN) {
27790 ndr_print_struct(ndr, "in", "spoolss_SetPrinterDataEx");
27792 ndr_print_ptr(ndr, "handle", r->in.handle);
27794 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27796 ndr_print_string(ndr, "key_name", r->in.key_name);
27797 ndr_print_string(ndr, "value_name", r->in.value_name);
27798 ndr_print_winreg_Type(ndr, "type", r->in.type);
27799 ndr_print_ptr(ndr, "buffer", r->in.buffer);
27801 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.offered);
27803 ndr_print_uint32(ndr, "offered", r->in.offered);
27806 if (flags & NDR_OUT) {
27807 ndr_print_struct(ndr, "out", "spoolss_SetPrinterDataEx");
27809 ndr_print_WERROR(ndr, "result", r->out.result);
27815 static enum ndr_err_code ndr_push_spoolss_GetPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDataEx *r)
27817 if (flags & NDR_IN) {
27818 if (r->in.handle == NULL) {
27819 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27821 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27822 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27823 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27824 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27825 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));
27826 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
27827 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27828 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
27829 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));
27830 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
27832 if (flags & NDR_OUT) {
27833 if (r->out.type == NULL) {
27834 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27836 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
27837 if (r->out.buffer == NULL) {
27838 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27840 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.offered));
27841 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
27842 if (r->out.needed == NULL) {
27843 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27845 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
27846 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27848 return NDR_ERR_SUCCESS;
27851 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDataEx *r)
27853 TALLOC_CTX *_mem_save_handle_0;
27854 TALLOC_CTX *_mem_save_type_0;
27855 TALLOC_CTX *_mem_save_needed_0;
27856 if (flags & NDR_IN) {
27857 ZERO_STRUCT(r->out);
27859 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27860 NDR_PULL_ALLOC(ndr, r->in.handle);
27862 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27863 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27864 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27865 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27866 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
27867 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
27868 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
27869 return 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));
27871 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
27872 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));
27873 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
27874 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
27875 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
27876 return 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));
27878 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
27879 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));
27880 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
27881 NDR_PULL_ALLOC(ndr, r->out.type);
27882 ZERO_STRUCTP(r->out.type);
27883 NDR_PULL_ALLOC_N(ndr, r->out.buffer, r->in.offered);
27884 memset(r->out.buffer, 0, (r->in.offered) * sizeof(*r->out.buffer));
27885 NDR_PULL_ALLOC(ndr, r->out.needed);
27886 ZERO_STRUCTP(r->out.needed);
27888 if (flags & NDR_OUT) {
27889 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27890 NDR_PULL_ALLOC(ndr, r->out.type);
27892 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
27893 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
27894 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
27895 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
27896 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
27897 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27898 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
27900 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)));
27901 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27902 NDR_PULL_ALLOC(ndr, r->out.needed);
27904 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
27905 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
27906 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
27907 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
27908 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27909 if (r->out.buffer) {
27910 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
27913 return NDR_ERR_SUCCESS;
27916 _PUBLIC_ void ndr_print_spoolss_GetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDataEx *r)
27918 ndr_print_struct(ndr, name, "spoolss_GetPrinterDataEx");
27920 if (flags & NDR_SET_VALUES) {
27921 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27923 if (flags & NDR_IN) {
27924 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDataEx");
27926 ndr_print_ptr(ndr, "handle", r->in.handle);
27928 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27930 ndr_print_string(ndr, "key_name", r->in.key_name);
27931 ndr_print_string(ndr, "value_name", r->in.value_name);
27932 ndr_print_uint32(ndr, "offered", r->in.offered);
27935 if (flags & NDR_OUT) {
27936 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDataEx");
27938 ndr_print_ptr(ndr, "type", r->out.type);
27940 ndr_print_winreg_Type(ndr, "type", *r->out.type);
27942 ndr_print_ptr(ndr, "buffer", r->out.buffer);
27944 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
27946 ndr_print_ptr(ndr, "needed", r->out.needed);
27948 ndr_print_uint32(ndr, "needed", *r->out.needed);
27950 ndr_print_WERROR(ndr, "result", r->out.result);
27956 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinterDataEx(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinterDataEx *r)
27958 if (flags & NDR_IN) {
27959 if (r->in.handle == NULL) {
27960 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27962 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27963 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27964 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27965 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27966 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));
27967 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
27969 if (flags & NDR_OUT) {
27970 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
27971 if (r->out.needed == NULL) {
27972 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27974 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
27975 if (r->out.count == NULL) {
27976 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27978 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
27979 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27981 return NDR_ERR_SUCCESS;
27984 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinterDataEx(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinterDataEx *r)
27986 TALLOC_CTX *_mem_save_handle_0;
27987 TALLOC_CTX *_mem_save_needed_0;
27988 TALLOC_CTX *_mem_save_count_0;
27989 if (flags & NDR_IN) {
27990 ZERO_STRUCT(r->out);
27992 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27993 NDR_PULL_ALLOC(ndr, r->in.handle);
27995 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27996 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27997 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27998 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27999 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
28000 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
28001 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
28002 return 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));
28004 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
28005 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));
28006 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
28007 NDR_PULL_ALLOC(ndr, r->out.needed);
28008 ZERO_STRUCTP(r->out.needed);
28009 NDR_PULL_ALLOC(ndr, r->out.count);
28010 ZERO_STRUCTP(r->out.count);
28012 if (flags & NDR_OUT) {
28013 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->out.info));
28014 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28015 NDR_PULL_ALLOC(ndr, r->out.needed);
28017 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
28018 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
28019 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
28020 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
28021 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28022 NDR_PULL_ALLOC(ndr, r->out.count);
28024 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
28025 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
28026 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
28027 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
28028 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28030 return NDR_ERR_SUCCESS;
28033 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinterDataEx(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinterDataEx *r)
28035 uint32_t cntr_info_0;
28036 if (flags & NDR_IN) {
28037 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
28039 if (flags & NDR_OUT) {
28040 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
28041 NDR_CHECK(ndr_push_spoolss_PrinterEnumValues(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
28043 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
28044 NDR_CHECK(ndr_push_spoolss_PrinterEnumValues(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
28047 return NDR_ERR_SUCCESS;
28050 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinterDataEx(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinterDataEx *r)
28052 uint32_t cntr_info_0;
28053 TALLOC_CTX *_mem_save_info_0;
28054 if (flags & NDR_IN) {
28055 ZERO_STRUCT(r->out);
28057 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
28059 if (flags & NDR_OUT) {
28060 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
28061 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
28062 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
28063 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
28064 NDR_CHECK(ndr_pull_spoolss_PrinterEnumValues(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
28066 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
28067 NDR_CHECK(ndr_pull_spoolss_PrinterEnumValues(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
28069 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
28071 return NDR_ERR_SUCCESS;
28074 _PUBLIC_ void ndr_print_spoolss_EnumPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterDataEx *r)
28076 uint32_t cntr_info_2;
28077 ndr_print_struct(ndr, name, "spoolss_EnumPrinterDataEx");
28079 if (flags & NDR_SET_VALUES) {
28080 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28082 if (flags & NDR_IN) {
28083 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterDataEx");
28085 ndr_print_ptr(ndr, "handle", r->in.handle);
28087 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28089 ndr_print_string(ndr, "key_name", r->in.key_name);
28090 ndr_print_uint32(ndr, "offered", r->in.offered);
28093 if (flags & NDR_OUT) {
28094 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterDataEx");
28096 ndr_print_ptr(ndr, "count", r->out.count);
28098 ndr_print_uint32(ndr, "count", *r->out.count);
28100 ndr_print_ptr(ndr, "info", r->out.info);
28102 ndr_print_ptr(ndr, "info", *r->out.info);
28104 if (*r->out.info) {
28105 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
28107 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
28109 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
28110 ndr_print_spoolss_PrinterEnumValues(ndr, "info", &(*r->out.info)[cntr_info_2]);
28118 ndr_print_ptr(ndr, "needed", r->out.needed);
28120 ndr_print_uint32(ndr, "needed", *r->out.needed);
28122 ndr_print_WERROR(ndr, "result", r->out.result);
28128 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterKey(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterKey *r)
28130 uint32_t cntr_key_buffer_1;
28131 if (flags & NDR_IN) {
28132 if (r->in.handle == NULL) {
28133 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28135 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28136 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28137 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28138 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28139 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));
28140 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
28142 if (flags & NDR_OUT) {
28143 if (r->out.key_buffer == NULL) {
28144 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28146 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.offered / 2));
28147 for (cntr_key_buffer_1 = 0; cntr_key_buffer_1 < r->in.offered / 2; cntr_key_buffer_1++) {
28148 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.key_buffer[cntr_key_buffer_1]));
28150 if (r->out.needed == NULL) {
28151 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28153 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
28154 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28156 return NDR_ERR_SUCCESS;
28159 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterKey(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterKey *r)
28161 uint32_t cntr_key_buffer_1;
28162 TALLOC_CTX *_mem_save_handle_0;
28163 TALLOC_CTX *_mem_save_key_buffer_1;
28164 TALLOC_CTX *_mem_save_needed_0;
28165 if (flags & NDR_IN) {
28166 ZERO_STRUCT(r->out);
28168 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28169 NDR_PULL_ALLOC(ndr, r->in.handle);
28171 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28172 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
28173 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28174 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28175 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
28176 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
28177 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
28178 return 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));
28180 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
28181 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));
28182 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
28183 NDR_PULL_ALLOC_N(ndr, r->out.key_buffer, r->in.offered / 2);
28184 memset(r->out.key_buffer, 0, (r->in.offered / 2) * sizeof(*r->out.key_buffer));
28185 NDR_PULL_ALLOC(ndr, r->out.needed);
28186 ZERO_STRUCTP(r->out.needed);
28188 if (flags & NDR_OUT) {
28189 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.key_buffer));
28190 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28191 NDR_PULL_ALLOC_N(ndr, r->out.key_buffer, ndr_get_array_size(ndr, &r->out.key_buffer));
28193 _mem_save_key_buffer_1 = NDR_PULL_GET_MEM_CTX(ndr);
28194 NDR_PULL_SET_MEM_CTX(ndr, r->out.key_buffer, 0);
28195 for (cntr_key_buffer_1 = 0; cntr_key_buffer_1 < r->in.offered / 2; cntr_key_buffer_1++) {
28196 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.key_buffer[cntr_key_buffer_1]));
28198 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_key_buffer_1, 0);
28199 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28200 NDR_PULL_ALLOC(ndr, r->out.needed);
28202 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
28203 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
28204 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
28205 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
28206 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28207 if (r->out.key_buffer) {
28208 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.key_buffer, r->in.offered / 2));
28211 return NDR_ERR_SUCCESS;
28214 _PUBLIC_ void ndr_print_spoolss_EnumPrinterKey(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterKey *r)
28216 uint32_t cntr_key_buffer_1;
28217 ndr_print_struct(ndr, name, "spoolss_EnumPrinterKey");
28219 if (flags & NDR_SET_VALUES) {
28220 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28222 if (flags & NDR_IN) {
28223 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterKey");
28225 ndr_print_ptr(ndr, "handle", r->in.handle);
28227 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28229 ndr_print_string(ndr, "key_name", r->in.key_name);
28230 ndr_print_uint32(ndr, "offered", r->in.offered);
28233 if (flags & NDR_OUT) {
28234 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterKey");
28236 ndr_print_ptr(ndr, "key_buffer", r->out.key_buffer);
28238 ndr->print(ndr, "%s: ARRAY(%d)", "key_buffer", (int)r->in.offered / 2);
28240 for (cntr_key_buffer_1=0;cntr_key_buffer_1<r->in.offered / 2;cntr_key_buffer_1++) {
28242 if (asprintf(&idx_1, "[%d]", cntr_key_buffer_1) != -1) {
28243 ndr_print_uint16(ndr, "key_buffer", r->out.key_buffer[cntr_key_buffer_1]);
28249 ndr_print_ptr(ndr, "needed", r->out.needed);
28251 ndr_print_uint32(ndr, "needed", *r->out.needed);
28253 ndr_print_WERROR(ndr, "result", r->out.result);
28259 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDataEx *r)
28261 if (flags & NDR_IN) {
28262 if (r->in.handle == NULL) {
28263 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28265 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28266 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28267 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28268 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28269 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));
28270 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
28271 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28272 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
28273 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));
28275 if (flags & NDR_OUT) {
28276 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28278 return NDR_ERR_SUCCESS;
28281 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDataEx *r)
28283 TALLOC_CTX *_mem_save_handle_0;
28284 if (flags & NDR_IN) {
28285 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28286 NDR_PULL_ALLOC(ndr, r->in.handle);
28288 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28289 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
28290 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28291 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28292 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
28293 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
28294 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
28295 return 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));
28297 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
28298 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));
28299 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
28300 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
28301 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
28302 return 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));
28304 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
28305 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));
28307 if (flags & NDR_OUT) {
28308 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28310 return NDR_ERR_SUCCESS;
28313 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDataEx *r)
28315 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDataEx");
28317 if (flags & NDR_SET_VALUES) {
28318 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28320 if (flags & NDR_IN) {
28321 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDataEx");
28323 ndr_print_ptr(ndr, "handle", r->in.handle);
28325 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28327 ndr_print_string(ndr, "key_name", r->in.key_name);
28328 ndr_print_string(ndr, "value_name", r->in.value_name);
28331 if (flags & NDR_OUT) {
28332 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDataEx");
28334 ndr_print_WERROR(ndr, "result", r->out.result);
28340 static enum ndr_err_code ndr_push_spoolss_DeletePrinterKey(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterKey *r)
28342 if (flags & NDR_IN) {
28343 if (r->in.handle == NULL) {
28344 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28346 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28347 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28348 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28349 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28350 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));
28352 if (flags & NDR_OUT) {
28353 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28355 return NDR_ERR_SUCCESS;
28358 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterKey(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterKey *r)
28360 TALLOC_CTX *_mem_save_handle_0;
28361 if (flags & NDR_IN) {
28362 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28363 NDR_PULL_ALLOC(ndr, r->in.handle);
28365 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28366 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
28367 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28368 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28369 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
28370 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
28371 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
28372 return 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));
28374 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
28375 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));
28377 if (flags & NDR_OUT) {
28378 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28380 return NDR_ERR_SUCCESS;
28383 _PUBLIC_ void ndr_print_spoolss_DeletePrinterKey(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterKey *r)
28385 ndr_print_struct(ndr, name, "spoolss_DeletePrinterKey");
28387 if (flags & NDR_SET_VALUES) {
28388 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28390 if (flags & NDR_IN) {
28391 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterKey");
28393 ndr_print_ptr(ndr, "handle", r->in.handle);
28395 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28397 ndr_print_string(ndr, "key_name", r->in.key_name);
28400 if (flags & NDR_OUT) {
28401 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterKey");
28403 ndr_print_WERROR(ndr, "result", r->out.result);
28409 static enum ndr_err_code ndr_push_spoolss_53(struct ndr_push *ndr, int flags, const struct spoolss_53 *r)
28411 if (flags & NDR_IN) {
28413 if (flags & NDR_OUT) {
28414 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28416 return NDR_ERR_SUCCESS;
28419 static enum ndr_err_code ndr_pull_spoolss_53(struct ndr_pull *ndr, int flags, struct spoolss_53 *r)
28421 if (flags & NDR_IN) {
28423 if (flags & NDR_OUT) {
28424 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28426 return NDR_ERR_SUCCESS;
28429 _PUBLIC_ void ndr_print_spoolss_53(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_53 *r)
28431 ndr_print_struct(ndr, name, "spoolss_53");
28433 if (flags & NDR_SET_VALUES) {
28434 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28436 if (flags & NDR_IN) {
28437 ndr_print_struct(ndr, "in", "spoolss_53");
28441 if (flags & NDR_OUT) {
28442 ndr_print_struct(ndr, "out", "spoolss_53");
28444 ndr_print_WERROR(ndr, "result", r->out.result);
28450 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDriverEx(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDriverEx *r)
28452 if (flags & NDR_IN) {
28453 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
28454 if (r->in.server) {
28455 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
28456 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28457 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
28458 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
28460 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
28461 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28462 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
28463 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
28464 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
28465 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28466 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
28467 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver, ndr_charset_length(r->in.driver, CH_UTF16), sizeof(uint16_t), CH_UTF16));
28468 NDR_CHECK(ndr_push_spoolss_DeleteDriverFlags(ndr, NDR_SCALARS, r->in.delete_flags));
28469 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.version));
28471 if (flags & NDR_OUT) {
28472 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28474 return NDR_ERR_SUCCESS;
28477 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDriverEx(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDriverEx *r)
28479 uint32_t _ptr_server;
28480 TALLOC_CTX *_mem_save_server_0;
28481 if (flags & NDR_IN) {
28482 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
28484 NDR_PULL_ALLOC(ndr, r->in.server);
28486 r->in.server = NULL;
28488 if (r->in.server) {
28489 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
28490 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
28491 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
28492 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
28493 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
28494 return 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));
28496 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
28497 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
28498 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
28500 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
28501 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
28502 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
28503 return 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));
28505 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
28506 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
28507 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver));
28508 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.driver));
28509 if (ndr_get_array_length(ndr, &r->in.driver) > ndr_get_array_size(ndr, &r->in.driver)) {
28510 return 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));
28512 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t)));
28513 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t), CH_UTF16));
28514 NDR_CHECK(ndr_pull_spoolss_DeleteDriverFlags(ndr, NDR_SCALARS, &r->in.delete_flags));
28515 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.version));
28517 if (flags & NDR_OUT) {
28518 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28520 return NDR_ERR_SUCCESS;
28523 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDriverEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDriverEx *r)
28525 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDriverEx");
28527 if (flags & NDR_SET_VALUES) {
28528 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28530 if (flags & NDR_IN) {
28531 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDriverEx");
28533 ndr_print_ptr(ndr, "server", r->in.server);
28535 if (r->in.server) {
28536 ndr_print_string(ndr, "server", r->in.server);
28539 ndr_print_string(ndr, "architecture", r->in.architecture);
28540 ndr_print_string(ndr, "driver", r->in.driver);
28541 ndr_print_spoolss_DeleteDriverFlags(ndr, "delete_flags", r->in.delete_flags);
28542 ndr_print_uint32(ndr, "version", r->in.version);
28545 if (flags & NDR_OUT) {
28546 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDriverEx");
28548 ndr_print_WERROR(ndr, "result", r->out.result);
28554 static enum ndr_err_code ndr_push_spoolss_55(struct ndr_push *ndr, int flags, const struct spoolss_55 *r)
28556 if (flags & NDR_IN) {
28558 if (flags & NDR_OUT) {
28559 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28561 return NDR_ERR_SUCCESS;
28564 static enum ndr_err_code ndr_pull_spoolss_55(struct ndr_pull *ndr, int flags, struct spoolss_55 *r)
28566 if (flags & NDR_IN) {
28568 if (flags & NDR_OUT) {
28569 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28571 return NDR_ERR_SUCCESS;
28574 _PUBLIC_ void ndr_print_spoolss_55(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_55 *r)
28576 ndr_print_struct(ndr, name, "spoolss_55");
28578 if (flags & NDR_SET_VALUES) {
28579 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28581 if (flags & NDR_IN) {
28582 ndr_print_struct(ndr, "in", "spoolss_55");
28586 if (flags & NDR_OUT) {
28587 ndr_print_struct(ndr, "out", "spoolss_55");
28589 ndr_print_WERROR(ndr, "result", r->out.result);
28595 static enum ndr_err_code ndr_push_spoolss_56(struct ndr_push *ndr, int flags, const struct spoolss_56 *r)
28597 if (flags & NDR_IN) {
28599 if (flags & NDR_OUT) {
28600 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28602 return NDR_ERR_SUCCESS;
28605 static enum ndr_err_code ndr_pull_spoolss_56(struct ndr_pull *ndr, int flags, struct spoolss_56 *r)
28607 if (flags & NDR_IN) {
28609 if (flags & NDR_OUT) {
28610 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28612 return NDR_ERR_SUCCESS;
28615 _PUBLIC_ void ndr_print_spoolss_56(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_56 *r)
28617 ndr_print_struct(ndr, name, "spoolss_56");
28619 if (flags & NDR_SET_VALUES) {
28620 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28622 if (flags & NDR_IN) {
28623 ndr_print_struct(ndr, "in", "spoolss_56");
28627 if (flags & NDR_OUT) {
28628 ndr_print_struct(ndr, "out", "spoolss_56");
28630 ndr_print_WERROR(ndr, "result", r->out.result);
28636 static enum ndr_err_code ndr_push_spoolss_57(struct ndr_push *ndr, int flags, const struct spoolss_57 *r)
28638 if (flags & NDR_IN) {
28640 if (flags & NDR_OUT) {
28641 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28643 return NDR_ERR_SUCCESS;
28646 static enum ndr_err_code ndr_pull_spoolss_57(struct ndr_pull *ndr, int flags, struct spoolss_57 *r)
28648 if (flags & NDR_IN) {
28650 if (flags & NDR_OUT) {
28651 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28653 return NDR_ERR_SUCCESS;
28656 _PUBLIC_ void ndr_print_spoolss_57(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_57 *r)
28658 ndr_print_struct(ndr, name, "spoolss_57");
28660 if (flags & NDR_SET_VALUES) {
28661 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28663 if (flags & NDR_IN) {
28664 ndr_print_struct(ndr, "in", "spoolss_57");
28668 if (flags & NDR_OUT) {
28669 ndr_print_struct(ndr, "out", "spoolss_57");
28671 ndr_print_WERROR(ndr, "result", r->out.result);
28677 static enum ndr_err_code ndr_push_spoolss_XcvData(struct ndr_push *ndr, int flags, const struct spoolss_XcvData *r)
28679 if (flags & NDR_IN) {
28680 if (r->in.handle == NULL) {
28681 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28683 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28684 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.function_name, CH_UTF16)));
28685 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28686 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.function_name, CH_UTF16)));
28687 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));
28688 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.in_data));
28689 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.in_data.length));
28690 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.out_data_size));
28691 if (r->in.status_code == NULL) {
28692 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28694 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.status_code));
28696 if (flags & NDR_OUT) {
28697 if (r->out.out_data == NULL) {
28698 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28700 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.out_data_size));
28701 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.out_data, r->in.out_data_size));
28702 if (r->out.needed == NULL) {
28703 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28705 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
28706 if (r->out.status_code == NULL) {
28707 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28709 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.status_code));
28710 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28712 return NDR_ERR_SUCCESS;
28715 static enum ndr_err_code ndr_pull_spoolss_XcvData(struct ndr_pull *ndr, int flags, struct spoolss_XcvData *r)
28717 TALLOC_CTX *_mem_save_handle_0;
28718 TALLOC_CTX *_mem_save_needed_0;
28719 TALLOC_CTX *_mem_save_status_code_0;
28720 if (flags & NDR_IN) {
28721 ZERO_STRUCT(r->out);
28723 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28724 NDR_PULL_ALLOC(ndr, r->in.handle);
28726 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28727 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
28728 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28729 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28730 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.function_name));
28731 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.function_name));
28732 if (ndr_get_array_length(ndr, &r->in.function_name) > ndr_get_array_size(ndr, &r->in.function_name)) {
28733 return 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));
28735 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.function_name), sizeof(uint16_t)));
28736 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));
28737 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->in.in_data));
28738 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._in_data_length));
28739 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.out_data_size));
28740 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28741 NDR_PULL_ALLOC(ndr, r->in.status_code);
28743 _mem_save_status_code_0 = NDR_PULL_GET_MEM_CTX(ndr);
28744 NDR_PULL_SET_MEM_CTX(ndr, r->in.status_code, LIBNDR_FLAG_REF_ALLOC);
28745 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.status_code));
28746 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_code_0, LIBNDR_FLAG_REF_ALLOC);
28747 NDR_PULL_ALLOC_N(ndr, r->out.out_data, r->in.out_data_size);
28748 memset(r->out.out_data, 0, (r->in.out_data_size) * sizeof(*r->out.out_data));
28749 NDR_PULL_ALLOC(ndr, r->out.needed);
28750 ZERO_STRUCTP(r->out.needed);
28751 NDR_PULL_ALLOC(ndr, r->out.status_code);
28752 *r->out.status_code = *r->in.status_code;
28754 if (flags & NDR_OUT) {
28755 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.out_data));
28756 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28757 NDR_PULL_ALLOC_N(ndr, r->out.out_data, ndr_get_array_size(ndr, &r->out.out_data));
28759 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.out_data, ndr_get_array_size(ndr, &r->out.out_data)));
28760 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28761 NDR_PULL_ALLOC(ndr, r->out.needed);
28763 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
28764 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
28765 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
28766 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
28767 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28768 NDR_PULL_ALLOC(ndr, r->out.status_code);
28770 _mem_save_status_code_0 = NDR_PULL_GET_MEM_CTX(ndr);
28771 NDR_PULL_SET_MEM_CTX(ndr, r->out.status_code, LIBNDR_FLAG_REF_ALLOC);
28772 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.status_code));
28773 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_code_0, LIBNDR_FLAG_REF_ALLOC);
28774 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28775 if (r->out.out_data) {
28776 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.out_data, r->in.out_data_size));
28779 return NDR_ERR_SUCCESS;
28782 _PUBLIC_ void ndr_print_spoolss_XcvData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_XcvData *r)
28784 ndr_print_struct(ndr, name, "spoolss_XcvData");
28786 if (flags & NDR_SET_VALUES) {
28787 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28789 if (flags & NDR_IN) {
28790 ndr_print_struct(ndr, "in", "spoolss_XcvData");
28792 ndr_print_ptr(ndr, "handle", r->in.handle);
28794 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28796 ndr_print_string(ndr, "function_name", r->in.function_name);
28797 ndr_print_DATA_BLOB(ndr, "in_data", r->in.in_data);
28798 ndr_print_uint32(ndr, "_in_data_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->in.in_data.length:r->in._in_data_length);
28799 ndr_print_uint32(ndr, "out_data_size", r->in.out_data_size);
28800 ndr_print_ptr(ndr, "status_code", r->in.status_code);
28802 ndr_print_uint32(ndr, "status_code", *r->in.status_code);
28806 if (flags & NDR_OUT) {
28807 ndr_print_struct(ndr, "out", "spoolss_XcvData");
28809 ndr_print_ptr(ndr, "out_data", r->out.out_data);
28811 ndr_print_array_uint8(ndr, "out_data", r->out.out_data, r->in.out_data_size);
28813 ndr_print_ptr(ndr, "needed", r->out.needed);
28815 ndr_print_uint32(ndr, "needed", *r->out.needed);
28817 ndr_print_ptr(ndr, "status_code", r->out.status_code);
28819 ndr_print_uint32(ndr, "status_code", *r->out.status_code);
28821 ndr_print_WERROR(ndr, "result", r->out.result);
28827 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_AddPrinterDriverEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterDriverEx *r)
28829 if (flags & NDR_IN) {
28830 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
28831 if (r->in.servername) {
28832 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
28833 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28834 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
28835 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
28837 if (r->in.info_ctr == NULL) {
28838 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28840 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
28841 NDR_CHECK(ndr_push_spoolss_AddPrinterDriverExFlags(ndr, NDR_SCALARS, r->in.flags));
28843 if (flags & NDR_OUT) {
28844 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28846 return NDR_ERR_SUCCESS;
28849 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_AddPrinterDriverEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterDriverEx *r)
28851 uint32_t _ptr_servername;
28852 TALLOC_CTX *_mem_save_servername_0;
28853 TALLOC_CTX *_mem_save_info_ctr_0;
28854 if (flags & NDR_IN) {
28855 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
28856 if (_ptr_servername) {
28857 NDR_PULL_ALLOC(ndr, r->in.servername);
28859 r->in.servername = NULL;
28861 if (r->in.servername) {
28862 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
28863 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
28864 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
28865 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
28866 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
28867 return 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));
28869 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
28870 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
28871 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
28873 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28874 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
28876 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
28877 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
28878 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
28879 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
28880 NDR_CHECK(ndr_pull_spoolss_AddPrinterDriverExFlags(ndr, NDR_SCALARS, &r->in.flags));
28882 if (flags & NDR_OUT) {
28883 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28885 return NDR_ERR_SUCCESS;
28888 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriverEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterDriverEx *r)
28890 ndr_print_struct(ndr, name, "spoolss_AddPrinterDriverEx");
28892 if (flags & NDR_SET_VALUES) {
28893 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28895 if (flags & NDR_IN) {
28896 ndr_print_struct(ndr, "in", "spoolss_AddPrinterDriverEx");
28898 ndr_print_ptr(ndr, "servername", r->in.servername);
28900 if (r->in.servername) {
28901 ndr_print_string(ndr, "servername", r->in.servername);
28904 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
28906 ndr_print_spoolss_AddDriverInfoCtr(ndr, "info_ctr", r->in.info_ctr);
28908 ndr_print_spoolss_AddPrinterDriverExFlags(ndr, "flags", r->in.flags);
28911 if (flags & NDR_OUT) {
28912 ndr_print_struct(ndr, "out", "spoolss_AddPrinterDriverEx");
28914 ndr_print_WERROR(ndr, "result", r->out.result);
28920 static enum ndr_err_code ndr_push_spoolss_5a(struct ndr_push *ndr, int flags, const struct spoolss_5a *r)
28922 if (flags & NDR_IN) {
28924 if (flags & NDR_OUT) {
28925 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28927 return NDR_ERR_SUCCESS;
28930 static enum ndr_err_code ndr_pull_spoolss_5a(struct ndr_pull *ndr, int flags, struct spoolss_5a *r)
28932 if (flags & NDR_IN) {
28934 if (flags & NDR_OUT) {
28935 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28937 return NDR_ERR_SUCCESS;
28940 _PUBLIC_ void ndr_print_spoolss_5a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5a *r)
28942 ndr_print_struct(ndr, name, "spoolss_5a");
28944 if (flags & NDR_SET_VALUES) {
28945 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28947 if (flags & NDR_IN) {
28948 ndr_print_struct(ndr, "in", "spoolss_5a");
28952 if (flags & NDR_OUT) {
28953 ndr_print_struct(ndr, "out", "spoolss_5a");
28955 ndr_print_WERROR(ndr, "result", r->out.result);
28961 static enum ndr_err_code ndr_push_spoolss_5b(struct ndr_push *ndr, int flags, const struct spoolss_5b *r)
28963 if (flags & NDR_IN) {
28965 if (flags & NDR_OUT) {
28966 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28968 return NDR_ERR_SUCCESS;
28971 static enum ndr_err_code ndr_pull_spoolss_5b(struct ndr_pull *ndr, int flags, struct spoolss_5b *r)
28973 if (flags & NDR_IN) {
28975 if (flags & NDR_OUT) {
28976 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28978 return NDR_ERR_SUCCESS;
28981 _PUBLIC_ void ndr_print_spoolss_5b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5b *r)
28983 ndr_print_struct(ndr, name, "spoolss_5b");
28985 if (flags & NDR_SET_VALUES) {
28986 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28988 if (flags & NDR_IN) {
28989 ndr_print_struct(ndr, "in", "spoolss_5b");
28993 if (flags & NDR_OUT) {
28994 ndr_print_struct(ndr, "out", "spoolss_5b");
28996 ndr_print_WERROR(ndr, "result", r->out.result);
29002 static enum ndr_err_code ndr_push_spoolss_5c(struct ndr_push *ndr, int flags, const struct spoolss_5c *r)
29004 if (flags & NDR_IN) {
29006 if (flags & NDR_OUT) {
29007 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29009 return NDR_ERR_SUCCESS;
29012 static enum ndr_err_code ndr_pull_spoolss_5c(struct ndr_pull *ndr, int flags, struct spoolss_5c *r)
29014 if (flags & NDR_IN) {
29016 if (flags & NDR_OUT) {
29017 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29019 return NDR_ERR_SUCCESS;
29022 _PUBLIC_ void ndr_print_spoolss_5c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5c *r)
29024 ndr_print_struct(ndr, name, "spoolss_5c");
29026 if (flags & NDR_SET_VALUES) {
29027 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29029 if (flags & NDR_IN) {
29030 ndr_print_struct(ndr, "in", "spoolss_5c");
29034 if (flags & NDR_OUT) {
29035 ndr_print_struct(ndr, "out", "spoolss_5c");
29037 ndr_print_WERROR(ndr, "result", r->out.result);
29043 static enum ndr_err_code ndr_push_spoolss_5d(struct ndr_push *ndr, int flags, const struct spoolss_5d *r)
29045 if (flags & NDR_IN) {
29047 if (flags & NDR_OUT) {
29048 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29050 return NDR_ERR_SUCCESS;
29053 static enum ndr_err_code ndr_pull_spoolss_5d(struct ndr_pull *ndr, int flags, struct spoolss_5d *r)
29055 if (flags & NDR_IN) {
29057 if (flags & NDR_OUT) {
29058 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29060 return NDR_ERR_SUCCESS;
29063 _PUBLIC_ void ndr_print_spoolss_5d(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5d *r)
29065 ndr_print_struct(ndr, name, "spoolss_5d");
29067 if (flags & NDR_SET_VALUES) {
29068 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29070 if (flags & NDR_IN) {
29071 ndr_print_struct(ndr, "in", "spoolss_5d");
29075 if (flags & NDR_OUT) {
29076 ndr_print_struct(ndr, "out", "spoolss_5d");
29078 ndr_print_WERROR(ndr, "result", r->out.result);
29084 static enum ndr_err_code ndr_push_spoolss_5e(struct ndr_push *ndr, int flags, const struct spoolss_5e *r)
29086 if (flags & NDR_IN) {
29088 if (flags & NDR_OUT) {
29089 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29091 return NDR_ERR_SUCCESS;
29094 static enum ndr_err_code ndr_pull_spoolss_5e(struct ndr_pull *ndr, int flags, struct spoolss_5e *r)
29096 if (flags & NDR_IN) {
29098 if (flags & NDR_OUT) {
29099 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29101 return NDR_ERR_SUCCESS;
29104 _PUBLIC_ void ndr_print_spoolss_5e(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5e *r)
29106 ndr_print_struct(ndr, name, "spoolss_5e");
29108 if (flags & NDR_SET_VALUES) {
29109 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29111 if (flags & NDR_IN) {
29112 ndr_print_struct(ndr, "in", "spoolss_5e");
29116 if (flags & NDR_OUT) {
29117 ndr_print_struct(ndr, "out", "spoolss_5e");
29119 ndr_print_WERROR(ndr, "result", r->out.result);
29125 static enum ndr_err_code ndr_push_spoolss_5f(struct ndr_push *ndr, int flags, const struct spoolss_5f *r)
29127 if (flags & NDR_IN) {
29129 if (flags & NDR_OUT) {
29130 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29132 return NDR_ERR_SUCCESS;
29135 static enum ndr_err_code ndr_pull_spoolss_5f(struct ndr_pull *ndr, int flags, struct spoolss_5f *r)
29137 if (flags & NDR_IN) {
29139 if (flags & NDR_OUT) {
29140 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29142 return NDR_ERR_SUCCESS;
29145 _PUBLIC_ void ndr_print_spoolss_5f(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5f *r)
29147 ndr_print_struct(ndr, name, "spoolss_5f");
29149 if (flags & NDR_SET_VALUES) {
29150 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29152 if (flags & NDR_IN) {
29153 ndr_print_struct(ndr, "in", "spoolss_5f");
29157 if (flags & NDR_OUT) {
29158 ndr_print_struct(ndr, "out", "spoolss_5f");
29160 ndr_print_WERROR(ndr, "result", r->out.result);
29166 static enum ndr_err_code ndr_push_spoolss_60(struct ndr_push *ndr, int flags, const struct spoolss_60 *r)
29168 if (flags & NDR_IN) {
29170 if (flags & NDR_OUT) {
29171 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29173 return NDR_ERR_SUCCESS;
29176 static enum ndr_err_code ndr_pull_spoolss_60(struct ndr_pull *ndr, int flags, struct spoolss_60 *r)
29178 if (flags & NDR_IN) {
29180 if (flags & NDR_OUT) {
29181 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29183 return NDR_ERR_SUCCESS;
29186 _PUBLIC_ void ndr_print_spoolss_60(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_60 *r)
29188 ndr_print_struct(ndr, name, "spoolss_60");
29190 if (flags & NDR_SET_VALUES) {
29191 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29193 if (flags & NDR_IN) {
29194 ndr_print_struct(ndr, "in", "spoolss_60");
29198 if (flags & NDR_OUT) {
29199 ndr_print_struct(ndr, "out", "spoolss_60");
29201 ndr_print_WERROR(ndr, "result", r->out.result);
29207 static enum ndr_err_code ndr_push_spoolss_61(struct ndr_push *ndr, int flags, const struct spoolss_61 *r)
29209 if (flags & NDR_IN) {
29211 if (flags & NDR_OUT) {
29212 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29214 return NDR_ERR_SUCCESS;
29217 static enum ndr_err_code ndr_pull_spoolss_61(struct ndr_pull *ndr, int flags, struct spoolss_61 *r)
29219 if (flags & NDR_IN) {
29221 if (flags & NDR_OUT) {
29222 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29224 return NDR_ERR_SUCCESS;
29227 _PUBLIC_ void ndr_print_spoolss_61(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_61 *r)
29229 ndr_print_struct(ndr, name, "spoolss_61");
29231 if (flags & NDR_SET_VALUES) {
29232 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29234 if (flags & NDR_IN) {
29235 ndr_print_struct(ndr, "in", "spoolss_61");
29239 if (flags & NDR_OUT) {
29240 ndr_print_struct(ndr, "out", "spoolss_61");
29242 ndr_print_WERROR(ndr, "result", r->out.result);
29248 static enum ndr_err_code ndr_push_spoolss_62(struct ndr_push *ndr, int flags, const struct spoolss_62 *r)
29250 if (flags & NDR_IN) {
29252 if (flags & NDR_OUT) {
29253 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29255 return NDR_ERR_SUCCESS;
29258 static enum ndr_err_code ndr_pull_spoolss_62(struct ndr_pull *ndr, int flags, struct spoolss_62 *r)
29260 if (flags & NDR_IN) {
29262 if (flags & NDR_OUT) {
29263 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29265 return NDR_ERR_SUCCESS;
29268 _PUBLIC_ void ndr_print_spoolss_62(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_62 *r)
29270 ndr_print_struct(ndr, name, "spoolss_62");
29272 if (flags & NDR_SET_VALUES) {
29273 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29275 if (flags & NDR_IN) {
29276 ndr_print_struct(ndr, "in", "spoolss_62");
29280 if (flags & NDR_OUT) {
29281 ndr_print_struct(ndr, "out", "spoolss_62");
29283 ndr_print_WERROR(ndr, "result", r->out.result);
29289 static enum ndr_err_code ndr_push_spoolss_63(struct ndr_push *ndr, int flags, const struct spoolss_63 *r)
29291 if (flags & NDR_IN) {
29293 if (flags & NDR_OUT) {
29294 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29296 return NDR_ERR_SUCCESS;
29299 static enum ndr_err_code ndr_pull_spoolss_63(struct ndr_pull *ndr, int flags, struct spoolss_63 *r)
29301 if (flags & NDR_IN) {
29303 if (flags & NDR_OUT) {
29304 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29306 return NDR_ERR_SUCCESS;
29309 _PUBLIC_ void ndr_print_spoolss_63(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_63 *r)
29311 ndr_print_struct(ndr, name, "spoolss_63");
29313 if (flags & NDR_SET_VALUES) {
29314 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29316 if (flags & NDR_IN) {
29317 ndr_print_struct(ndr, "in", "spoolss_63");
29321 if (flags & NDR_OUT) {
29322 ndr_print_struct(ndr, "out", "spoolss_63");
29324 ndr_print_WERROR(ndr, "result", r->out.result);
29330 static enum ndr_err_code ndr_push_spoolss_64(struct ndr_push *ndr, int flags, const struct spoolss_64 *r)
29332 if (flags & NDR_IN) {
29334 if (flags & NDR_OUT) {
29335 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29337 return NDR_ERR_SUCCESS;
29340 static enum ndr_err_code ndr_pull_spoolss_64(struct ndr_pull *ndr, int flags, struct spoolss_64 *r)
29342 if (flags & NDR_IN) {
29344 if (flags & NDR_OUT) {
29345 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29347 return NDR_ERR_SUCCESS;
29350 _PUBLIC_ void ndr_print_spoolss_64(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_64 *r)
29352 ndr_print_struct(ndr, name, "spoolss_64");
29354 if (flags & NDR_SET_VALUES) {
29355 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29357 if (flags & NDR_IN) {
29358 ndr_print_struct(ndr, "in", "spoolss_64");
29362 if (flags & NDR_OUT) {
29363 ndr_print_struct(ndr, "out", "spoolss_64");
29365 ndr_print_WERROR(ndr, "result", r->out.result);
29371 static enum ndr_err_code ndr_push_spoolss_65(struct ndr_push *ndr, int flags, const struct spoolss_65 *r)
29373 if (flags & NDR_IN) {
29375 if (flags & NDR_OUT) {
29376 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29378 return NDR_ERR_SUCCESS;
29381 static enum ndr_err_code ndr_pull_spoolss_65(struct ndr_pull *ndr, int flags, struct spoolss_65 *r)
29383 if (flags & NDR_IN) {
29385 if (flags & NDR_OUT) {
29386 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29388 return NDR_ERR_SUCCESS;
29391 _PUBLIC_ void ndr_print_spoolss_65(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_65 *r)
29393 ndr_print_struct(ndr, name, "spoolss_65");
29395 if (flags & NDR_SET_VALUES) {
29396 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29398 if (flags & NDR_IN) {
29399 ndr_print_struct(ndr, "in", "spoolss_65");
29403 if (flags & NDR_OUT) {
29404 ndr_print_struct(ndr, "out", "spoolss_65");
29406 ndr_print_WERROR(ndr, "result", r->out.result);
29412 static enum ndr_err_code ndr_push_spoolss_GetCorePrinterDrivers(struct ndr_push *ndr, int flags, const struct spoolss_GetCorePrinterDrivers *r)
29414 uint32_t cntr_core_printer_drivers_1;
29415 if (flags & NDR_IN) {
29416 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
29417 if (r->in.servername) {
29418 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
29419 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29420 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
29421 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
29423 if (r->in.architecture == NULL) {
29424 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29426 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
29427 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29428 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
29429 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
29430 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.core_driver_size));
29431 if (r->in.core_driver_dependencies == NULL) {
29432 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29434 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.core_driver_size));
29435 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.core_driver_dependencies, r->in.core_driver_size, sizeof(uint16_t), CH_UTF16));
29436 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.core_printer_driver_count));
29438 if (flags & NDR_OUT) {
29439 if (r->out.core_printer_drivers == NULL) {
29440 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29442 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.core_printer_driver_count));
29443 for (cntr_core_printer_drivers_1 = 0; cntr_core_printer_drivers_1 < r->in.core_printer_driver_count; cntr_core_printer_drivers_1++) {
29444 NDR_CHECK(ndr_push_spoolss_CorePrinterDriver(ndr, NDR_SCALARS, &r->out.core_printer_drivers[cntr_core_printer_drivers_1]));
29446 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29448 return NDR_ERR_SUCCESS;
29451 static enum ndr_err_code ndr_pull_spoolss_GetCorePrinterDrivers(struct ndr_pull *ndr, int flags, struct spoolss_GetCorePrinterDrivers *r)
29453 uint32_t _ptr_servername;
29454 uint32_t cntr_core_printer_drivers_1;
29455 TALLOC_CTX *_mem_save_servername_0;
29456 TALLOC_CTX *_mem_save_core_printer_drivers_1;
29457 if (flags & NDR_IN) {
29458 ZERO_STRUCT(r->out);
29460 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
29461 if (_ptr_servername) {
29462 NDR_PULL_ALLOC(ndr, r->in.servername);
29464 r->in.servername = NULL;
29466 if (r->in.servername) {
29467 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
29468 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
29469 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
29470 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
29471 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
29472 return 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));
29474 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
29475 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
29476 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
29478 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
29479 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
29480 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
29481 return 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));
29483 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
29484 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
29485 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.core_driver_size));
29486 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.core_driver_dependencies));
29487 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));
29488 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.core_printer_driver_count));
29489 NDR_PULL_ALLOC_N(ndr, r->out.core_printer_drivers, r->in.core_printer_driver_count);
29490 memset(r->out.core_printer_drivers, 0, (r->in.core_printer_driver_count) * sizeof(*r->out.core_printer_drivers));
29491 if (r->in.core_driver_dependencies) {
29492 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.core_driver_dependencies, r->in.core_driver_size));
29495 if (flags & NDR_OUT) {
29496 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.core_printer_drivers));
29497 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29498 NDR_PULL_ALLOC_N(ndr, r->out.core_printer_drivers, ndr_get_array_size(ndr, &r->out.core_printer_drivers));
29500 _mem_save_core_printer_drivers_1 = NDR_PULL_GET_MEM_CTX(ndr);
29501 NDR_PULL_SET_MEM_CTX(ndr, r->out.core_printer_drivers, 0);
29502 for (cntr_core_printer_drivers_1 = 0; cntr_core_printer_drivers_1 < r->in.core_printer_driver_count; cntr_core_printer_drivers_1++) {
29503 NDR_CHECK(ndr_pull_spoolss_CorePrinterDriver(ndr, NDR_SCALARS, &r->out.core_printer_drivers[cntr_core_printer_drivers_1]));
29505 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_printer_drivers_1, 0);
29506 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29507 if (r->out.core_printer_drivers) {
29508 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.core_printer_drivers, r->in.core_printer_driver_count));
29511 return NDR_ERR_SUCCESS;
29514 _PUBLIC_ void ndr_print_spoolss_GetCorePrinterDrivers(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetCorePrinterDrivers *r)
29516 uint32_t cntr_core_printer_drivers_1;
29517 ndr_print_struct(ndr, name, "spoolss_GetCorePrinterDrivers");
29519 if (flags & NDR_SET_VALUES) {
29520 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29522 if (flags & NDR_IN) {
29523 ndr_print_struct(ndr, "in", "spoolss_GetCorePrinterDrivers");
29525 ndr_print_ptr(ndr, "servername", r->in.servername);
29527 if (r->in.servername) {
29528 ndr_print_string(ndr, "servername", r->in.servername);
29531 ndr_print_ptr(ndr, "architecture", r->in.architecture);
29533 ndr_print_string(ndr, "architecture", r->in.architecture);
29535 ndr_print_uint32(ndr, "core_driver_size", r->in.core_driver_size);
29536 ndr_print_ptr(ndr, "core_driver_dependencies", r->in.core_driver_dependencies);
29538 ndr_print_string(ndr, "core_driver_dependencies", r->in.core_driver_dependencies);
29540 ndr_print_uint32(ndr, "core_printer_driver_count", r->in.core_printer_driver_count);
29543 if (flags & NDR_OUT) {
29544 ndr_print_struct(ndr, "out", "spoolss_GetCorePrinterDrivers");
29546 ndr_print_ptr(ndr, "core_printer_drivers", r->out.core_printer_drivers);
29548 ndr->print(ndr, "%s: ARRAY(%d)", "core_printer_drivers", (int)r->in.core_printer_driver_count);
29550 for (cntr_core_printer_drivers_1=0;cntr_core_printer_drivers_1<r->in.core_printer_driver_count;cntr_core_printer_drivers_1++) {
29552 if (asprintf(&idx_1, "[%d]", cntr_core_printer_drivers_1) != -1) {
29553 ndr_print_spoolss_CorePrinterDriver(ndr, "core_printer_drivers", &r->out.core_printer_drivers[cntr_core_printer_drivers_1]);
29559 ndr_print_WERROR(ndr, "result", r->out.result);
29565 static enum ndr_err_code ndr_push_spoolss_67(struct ndr_push *ndr, int flags, const struct spoolss_67 *r)
29567 if (flags & NDR_IN) {
29569 if (flags & NDR_OUT) {
29570 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29572 return NDR_ERR_SUCCESS;
29575 static enum ndr_err_code ndr_pull_spoolss_67(struct ndr_pull *ndr, int flags, struct spoolss_67 *r)
29577 if (flags & NDR_IN) {
29579 if (flags & NDR_OUT) {
29580 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29582 return NDR_ERR_SUCCESS;
29585 _PUBLIC_ void ndr_print_spoolss_67(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_67 *r)
29587 ndr_print_struct(ndr, name, "spoolss_67");
29589 if (flags & NDR_SET_VALUES) {
29590 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29592 if (flags & NDR_IN) {
29593 ndr_print_struct(ndr, "in", "spoolss_67");
29597 if (flags & NDR_OUT) {
29598 ndr_print_struct(ndr, "out", "spoolss_67");
29600 ndr_print_WERROR(ndr, "result", r->out.result);
29606 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriverPackagePath(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriverPackagePath *r)
29608 if (flags & NDR_IN) {
29609 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
29610 if (r->in.servername) {
29611 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
29612 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29613 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
29614 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
29616 if (r->in.architecture == NULL) {
29617 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29619 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
29620 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29621 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
29622 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
29623 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.language));
29624 if (r->in.language) {
29625 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.language, CH_UTF16)));
29626 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29627 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.language, CH_UTF16)));
29628 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.language, ndr_charset_length(r->in.language, CH_UTF16), sizeof(uint16_t), CH_UTF16));
29630 if (r->in.package_id == NULL) {
29631 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29633 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.package_id, CH_UTF16)));
29634 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29635 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.package_id, CH_UTF16)));
29636 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));
29637 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.driver_package_cab));
29638 if (r->in.driver_package_cab) {
29639 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.driver_package_cab_size));
29640 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver_package_cab, r->in.driver_package_cab_size, sizeof(uint16_t), CH_UTF16));
29642 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.driver_package_cab_size));
29644 if (flags & NDR_OUT) {
29645 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.driver_package_cab));
29646 if (r->out.driver_package_cab) {
29647 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.driver_package_cab_size));
29648 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->out.driver_package_cab, r->in.driver_package_cab_size, sizeof(uint16_t), CH_UTF16));
29650 if (r->out.required == NULL) {
29651 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29653 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.required));
29654 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29656 return NDR_ERR_SUCCESS;
29659 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriverPackagePath(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriverPackagePath *r)
29661 uint32_t _ptr_servername;
29662 uint32_t _ptr_language;
29663 uint32_t _ptr_driver_package_cab;
29664 TALLOC_CTX *_mem_save_servername_0;
29665 TALLOC_CTX *_mem_save_language_0;
29666 TALLOC_CTX *_mem_save_driver_package_cab_0;
29667 TALLOC_CTX *_mem_save_required_0;
29668 if (flags & NDR_IN) {
29669 ZERO_STRUCT(r->out);
29671 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
29672 if (_ptr_servername) {
29673 NDR_PULL_ALLOC(ndr, r->in.servername);
29675 r->in.servername = NULL;
29677 if (r->in.servername) {
29678 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
29679 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
29680 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
29681 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
29682 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
29683 return 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));
29685 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
29686 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
29687 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
29689 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
29690 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
29691 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
29692 return 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));
29694 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
29695 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
29696 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_language));
29697 if (_ptr_language) {
29698 NDR_PULL_ALLOC(ndr, r->in.language);
29700 r->in.language = NULL;
29702 if (r->in.language) {
29703 _mem_save_language_0 = NDR_PULL_GET_MEM_CTX(ndr);
29704 NDR_PULL_SET_MEM_CTX(ndr, r->in.language, 0);
29705 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.language));
29706 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.language));
29707 if (ndr_get_array_length(ndr, &r->in.language) > ndr_get_array_size(ndr, &r->in.language)) {
29708 return 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));
29710 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.language), sizeof(uint16_t)));
29711 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.language, ndr_get_array_length(ndr, &r->in.language), sizeof(uint16_t), CH_UTF16));
29712 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_language_0, 0);
29714 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.package_id));
29715 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.package_id));
29716 if (ndr_get_array_length(ndr, &r->in.package_id) > ndr_get_array_size(ndr, &r->in.package_id)) {
29717 return 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));
29719 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.package_id), sizeof(uint16_t)));
29720 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));
29721 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_package_cab));
29722 if (_ptr_driver_package_cab) {
29723 NDR_PULL_ALLOC(ndr, r->in.driver_package_cab);
29725 r->in.driver_package_cab = NULL;
29727 if (r->in.driver_package_cab) {
29728 _mem_save_driver_package_cab_0 = NDR_PULL_GET_MEM_CTX(ndr);
29729 NDR_PULL_SET_MEM_CTX(ndr, r->in.driver_package_cab, 0);
29730 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver_package_cab));
29731 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));
29732 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_package_cab_0, 0);
29734 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.driver_package_cab_size));
29735 NDR_PULL_ALLOC(ndr, r->out.required);
29736 ZERO_STRUCTP(r->out.required);
29737 if (r->in.driver_package_cab) {
29738 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.driver_package_cab, r->in.driver_package_cab_size));
29741 if (flags & NDR_OUT) {
29742 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_package_cab));
29743 if (_ptr_driver_package_cab) {
29744 NDR_PULL_ALLOC(ndr, r->out.driver_package_cab);
29746 r->out.driver_package_cab = NULL;
29748 if (r->out.driver_package_cab) {
29749 _mem_save_driver_package_cab_0 = NDR_PULL_GET_MEM_CTX(ndr);
29750 NDR_PULL_SET_MEM_CTX(ndr, r->out.driver_package_cab, 0);
29751 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.driver_package_cab));
29752 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));
29753 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_package_cab_0, 0);
29755 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29756 NDR_PULL_ALLOC(ndr, r->out.required);
29758 _mem_save_required_0 = NDR_PULL_GET_MEM_CTX(ndr);
29759 NDR_PULL_SET_MEM_CTX(ndr, r->out.required, LIBNDR_FLAG_REF_ALLOC);
29760 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.required));
29761 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_required_0, LIBNDR_FLAG_REF_ALLOC);
29762 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29763 if (r->out.driver_package_cab) {
29764 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.driver_package_cab, r->in.driver_package_cab_size));
29767 return NDR_ERR_SUCCESS;
29770 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriverPackagePath(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriverPackagePath *r)
29772 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriverPackagePath");
29774 if (flags & NDR_SET_VALUES) {
29775 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29777 if (flags & NDR_IN) {
29778 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriverPackagePath");
29780 ndr_print_ptr(ndr, "servername", r->in.servername);
29782 if (r->in.servername) {
29783 ndr_print_string(ndr, "servername", r->in.servername);
29786 ndr_print_ptr(ndr, "architecture", r->in.architecture);
29788 ndr_print_string(ndr, "architecture", r->in.architecture);
29790 ndr_print_ptr(ndr, "language", r->in.language);
29792 if (r->in.language) {
29793 ndr_print_string(ndr, "language", r->in.language);
29796 ndr_print_ptr(ndr, "package_id", r->in.package_id);
29798 ndr_print_string(ndr, "package_id", r->in.package_id);
29800 ndr_print_ptr(ndr, "driver_package_cab", r->in.driver_package_cab);
29802 if (r->in.driver_package_cab) {
29803 ndr_print_string(ndr, "driver_package_cab", r->in.driver_package_cab);
29806 ndr_print_uint32(ndr, "driver_package_cab_size", r->in.driver_package_cab_size);
29809 if (flags & NDR_OUT) {
29810 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriverPackagePath");
29812 ndr_print_ptr(ndr, "driver_package_cab", r->out.driver_package_cab);
29814 if (r->out.driver_package_cab) {
29815 ndr_print_string(ndr, "driver_package_cab", r->out.driver_package_cab);
29818 ndr_print_ptr(ndr, "required", r->out.required);
29820 ndr_print_uint32(ndr, "required", *r->out.required);
29822 ndr_print_WERROR(ndr, "result", r->out.result);
29828 static enum ndr_err_code ndr_push_spoolss_69(struct ndr_push *ndr, int flags, const struct spoolss_69 *r)
29830 if (flags & NDR_IN) {
29832 if (flags & NDR_OUT) {
29833 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29835 return NDR_ERR_SUCCESS;
29838 static enum ndr_err_code ndr_pull_spoolss_69(struct ndr_pull *ndr, int flags, struct spoolss_69 *r)
29840 if (flags & NDR_IN) {
29842 if (flags & NDR_OUT) {
29843 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29845 return NDR_ERR_SUCCESS;
29848 _PUBLIC_ void ndr_print_spoolss_69(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_69 *r)
29850 ndr_print_struct(ndr, name, "spoolss_69");
29852 if (flags & NDR_SET_VALUES) {
29853 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29855 if (flags & NDR_IN) {
29856 ndr_print_struct(ndr, "in", "spoolss_69");
29860 if (flags & NDR_OUT) {
29861 ndr_print_struct(ndr, "out", "spoolss_69");
29863 ndr_print_WERROR(ndr, "result", r->out.result);
29869 static enum ndr_err_code ndr_push_spoolss_6a(struct ndr_push *ndr, int flags, const struct spoolss_6a *r)
29871 if (flags & NDR_IN) {
29873 if (flags & NDR_OUT) {
29874 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29876 return NDR_ERR_SUCCESS;
29879 static enum ndr_err_code ndr_pull_spoolss_6a(struct ndr_pull *ndr, int flags, struct spoolss_6a *r)
29881 if (flags & NDR_IN) {
29883 if (flags & NDR_OUT) {
29884 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29886 return NDR_ERR_SUCCESS;
29889 _PUBLIC_ void ndr_print_spoolss_6a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_6a *r)
29891 ndr_print_struct(ndr, name, "spoolss_6a");
29893 if (flags & NDR_SET_VALUES) {
29894 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29896 if (flags & NDR_IN) {
29897 ndr_print_struct(ndr, "in", "spoolss_6a");
29901 if (flags & NDR_OUT) {
29902 ndr_print_struct(ndr, "out", "spoolss_6a");
29904 ndr_print_WERROR(ndr, "result", r->out.result);
29910 static enum ndr_err_code ndr_push_spoolss_6b(struct ndr_push *ndr, int flags, const struct spoolss_6b *r)
29912 if (flags & NDR_IN) {
29914 if (flags & NDR_OUT) {
29915 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29917 return NDR_ERR_SUCCESS;
29920 static enum ndr_err_code ndr_pull_spoolss_6b(struct ndr_pull *ndr, int flags, struct spoolss_6b *r)
29922 if (flags & NDR_IN) {
29924 if (flags & NDR_OUT) {
29925 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29927 return NDR_ERR_SUCCESS;
29930 _PUBLIC_ void ndr_print_spoolss_6b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_6b *r)
29932 ndr_print_struct(ndr, name, "spoolss_6b");
29934 if (flags & NDR_SET_VALUES) {
29935 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29937 if (flags & NDR_IN) {
29938 ndr_print_struct(ndr, "in", "spoolss_6b");
29942 if (flags & NDR_OUT) {
29943 ndr_print_struct(ndr, "out", "spoolss_6b");
29945 ndr_print_WERROR(ndr, "result", r->out.result);
29951 static enum ndr_err_code ndr_push_spoolss_6c(struct ndr_push *ndr, int flags, const struct spoolss_6c *r)
29953 if (flags & NDR_IN) {
29955 if (flags & NDR_OUT) {
29956 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29958 return NDR_ERR_SUCCESS;
29961 static enum ndr_err_code ndr_pull_spoolss_6c(struct ndr_pull *ndr, int flags, struct spoolss_6c *r)
29963 if (flags & NDR_IN) {
29965 if (flags & NDR_OUT) {
29966 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29968 return NDR_ERR_SUCCESS;
29971 _PUBLIC_ void ndr_print_spoolss_6c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_6c *r)
29973 ndr_print_struct(ndr, name, "spoolss_6c");
29975 if (flags & NDR_SET_VALUES) {
29976 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29978 if (flags & NDR_IN) {
29979 ndr_print_struct(ndr, "in", "spoolss_6c");
29983 if (flags & NDR_OUT) {
29984 ndr_print_struct(ndr, "out", "spoolss_6c");
29986 ndr_print_WERROR(ndr, "result", r->out.result);
29992 static enum ndr_err_code ndr_push_spoolss_6d(struct ndr_push *ndr, int flags, const struct spoolss_6d *r)
29994 if (flags & NDR_IN) {
29996 if (flags & NDR_OUT) {
29997 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29999 return NDR_ERR_SUCCESS;
30002 static enum ndr_err_code ndr_pull_spoolss_6d(struct ndr_pull *ndr, int flags, struct spoolss_6d *r)
30004 if (flags & NDR_IN) {
30006 if (flags & NDR_OUT) {
30007 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30009 return NDR_ERR_SUCCESS;
30012 _PUBLIC_ void ndr_print_spoolss_6d(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_6d *r)
30014 ndr_print_struct(ndr, name, "spoolss_6d");
30016 if (flags & NDR_SET_VALUES) {
30017 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30019 if (flags & NDR_IN) {
30020 ndr_print_struct(ndr, "in", "spoolss_6d");
30024 if (flags & NDR_OUT) {
30025 ndr_print_struct(ndr, "out", "spoolss_6d");
30027 ndr_print_WERROR(ndr, "result", r->out.result);
30033 static const struct ndr_interface_call spoolss_calls[] = {
30035 "spoolss_EnumPrinters",
30036 sizeof(struct spoolss_EnumPrinters),
30037 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinters,
30038 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinters,
30039 (ndr_print_function_t) ndr_print_spoolss_EnumPrinters,
30043 "spoolss_OpenPrinter",
30044 sizeof(struct spoolss_OpenPrinter),
30045 (ndr_push_flags_fn_t) ndr_push_spoolss_OpenPrinter,
30046 (ndr_pull_flags_fn_t) ndr_pull_spoolss_OpenPrinter,
30047 (ndr_print_function_t) ndr_print_spoolss_OpenPrinter,
30052 sizeof(struct spoolss_SetJob),
30053 (ndr_push_flags_fn_t) ndr_push_spoolss_SetJob,
30054 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetJob,
30055 (ndr_print_function_t) ndr_print_spoolss_SetJob,
30060 sizeof(struct spoolss_GetJob),
30061 (ndr_push_flags_fn_t) ndr_push_spoolss_GetJob,
30062 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetJob,
30063 (ndr_print_function_t) ndr_print_spoolss_GetJob,
30067 "spoolss_EnumJobs",
30068 sizeof(struct spoolss_EnumJobs),
30069 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumJobs,
30070 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumJobs,
30071 (ndr_print_function_t) ndr_print_spoolss_EnumJobs,
30075 "spoolss_AddPrinter",
30076 sizeof(struct spoolss_AddPrinter),
30077 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinter,
30078 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinter,
30079 (ndr_print_function_t) ndr_print_spoolss_AddPrinter,
30083 "spoolss_DeletePrinter",
30084 sizeof(struct spoolss_DeletePrinter),
30085 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinter,
30086 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinter,
30087 (ndr_print_function_t) ndr_print_spoolss_DeletePrinter,
30091 "spoolss_SetPrinter",
30092 sizeof(struct spoolss_SetPrinter),
30093 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinter,
30094 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinter,
30095 (ndr_print_function_t) ndr_print_spoolss_SetPrinter,
30099 "spoolss_GetPrinter",
30100 sizeof(struct spoolss_GetPrinter),
30101 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinter,
30102 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinter,
30103 (ndr_print_function_t) ndr_print_spoolss_GetPrinter,
30107 "spoolss_AddPrinterDriver",
30108 sizeof(struct spoolss_AddPrinterDriver),
30109 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterDriver,
30110 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterDriver,
30111 (ndr_print_function_t) ndr_print_spoolss_AddPrinterDriver,
30115 "spoolss_EnumPrinterDrivers",
30116 sizeof(struct spoolss_EnumPrinterDrivers),
30117 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterDrivers,
30118 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterDrivers,
30119 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterDrivers,
30123 "spoolss_GetPrinterDriver",
30124 sizeof(struct spoolss_GetPrinterDriver),
30125 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriver,
30126 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriver,
30127 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriver,
30131 "spoolss_GetPrinterDriverDirectory",
30132 sizeof(struct spoolss_GetPrinterDriverDirectory),
30133 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriverDirectory,
30134 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriverDirectory,
30135 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriverDirectory,
30139 "spoolss_DeletePrinterDriver",
30140 sizeof(struct spoolss_DeletePrinterDriver),
30141 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDriver,
30142 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDriver,
30143 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDriver,
30147 "spoolss_AddPrintProcessor",
30148 sizeof(struct spoolss_AddPrintProcessor),
30149 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrintProcessor,
30150 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrintProcessor,
30151 (ndr_print_function_t) ndr_print_spoolss_AddPrintProcessor,
30155 "spoolss_EnumPrintProcessors",
30156 sizeof(struct spoolss_EnumPrintProcessors),
30157 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrintProcessors,
30158 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrintProcessors,
30159 (ndr_print_function_t) ndr_print_spoolss_EnumPrintProcessors,
30163 "spoolss_GetPrintProcessorDirectory",
30164 sizeof(struct spoolss_GetPrintProcessorDirectory),
30165 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrintProcessorDirectory,
30166 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrintProcessorDirectory,
30167 (ndr_print_function_t) ndr_print_spoolss_GetPrintProcessorDirectory,
30171 "spoolss_StartDocPrinter",
30172 sizeof(struct spoolss_StartDocPrinter),
30173 (ndr_push_flags_fn_t) ndr_push_spoolss_StartDocPrinter,
30174 (ndr_pull_flags_fn_t) ndr_pull_spoolss_StartDocPrinter,
30175 (ndr_print_function_t) ndr_print_spoolss_StartDocPrinter,
30179 "spoolss_StartPagePrinter",
30180 sizeof(struct spoolss_StartPagePrinter),
30181 (ndr_push_flags_fn_t) ndr_push_spoolss_StartPagePrinter,
30182 (ndr_pull_flags_fn_t) ndr_pull_spoolss_StartPagePrinter,
30183 (ndr_print_function_t) ndr_print_spoolss_StartPagePrinter,
30187 "spoolss_WritePrinter",
30188 sizeof(struct spoolss_WritePrinter),
30189 (ndr_push_flags_fn_t) ndr_push_spoolss_WritePrinter,
30190 (ndr_pull_flags_fn_t) ndr_pull_spoolss_WritePrinter,
30191 (ndr_print_function_t) ndr_print_spoolss_WritePrinter,
30195 "spoolss_EndPagePrinter",
30196 sizeof(struct spoolss_EndPagePrinter),
30197 (ndr_push_flags_fn_t) ndr_push_spoolss_EndPagePrinter,
30198 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EndPagePrinter,
30199 (ndr_print_function_t) ndr_print_spoolss_EndPagePrinter,
30203 "spoolss_AbortPrinter",
30204 sizeof(struct spoolss_AbortPrinter),
30205 (ndr_push_flags_fn_t) ndr_push_spoolss_AbortPrinter,
30206 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AbortPrinter,
30207 (ndr_print_function_t) ndr_print_spoolss_AbortPrinter,
30211 "spoolss_ReadPrinter",
30212 sizeof(struct spoolss_ReadPrinter),
30213 (ndr_push_flags_fn_t) ndr_push_spoolss_ReadPrinter,
30214 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReadPrinter,
30215 (ndr_print_function_t) ndr_print_spoolss_ReadPrinter,
30219 "spoolss_EndDocPrinter",
30220 sizeof(struct spoolss_EndDocPrinter),
30221 (ndr_push_flags_fn_t) ndr_push_spoolss_EndDocPrinter,
30222 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EndDocPrinter,
30223 (ndr_print_function_t) ndr_print_spoolss_EndDocPrinter,
30228 sizeof(struct spoolss_AddJob),
30229 (ndr_push_flags_fn_t) ndr_push_spoolss_AddJob,
30230 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddJob,
30231 (ndr_print_function_t) ndr_print_spoolss_AddJob,
30235 "spoolss_ScheduleJob",
30236 sizeof(struct spoolss_ScheduleJob),
30237 (ndr_push_flags_fn_t) ndr_push_spoolss_ScheduleJob,
30238 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ScheduleJob,
30239 (ndr_print_function_t) ndr_print_spoolss_ScheduleJob,
30243 "spoolss_GetPrinterData",
30244 sizeof(struct spoolss_GetPrinterData),
30245 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterData,
30246 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterData,
30247 (ndr_print_function_t) ndr_print_spoolss_GetPrinterData,
30251 "spoolss_SetPrinterData",
30252 sizeof(struct spoolss_SetPrinterData),
30253 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinterData,
30254 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinterData,
30255 (ndr_print_function_t) ndr_print_spoolss_SetPrinterData,
30259 "spoolss_WaitForPrinterChange",
30260 sizeof(struct spoolss_WaitForPrinterChange),
30261 (ndr_push_flags_fn_t) ndr_push_spoolss_WaitForPrinterChange,
30262 (ndr_pull_flags_fn_t) ndr_pull_spoolss_WaitForPrinterChange,
30263 (ndr_print_function_t) ndr_print_spoolss_WaitForPrinterChange,
30267 "spoolss_ClosePrinter",
30268 sizeof(struct spoolss_ClosePrinter),
30269 (ndr_push_flags_fn_t) ndr_push_spoolss_ClosePrinter,
30270 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ClosePrinter,
30271 (ndr_print_function_t) ndr_print_spoolss_ClosePrinter,
30276 sizeof(struct spoolss_AddForm),
30277 (ndr_push_flags_fn_t) ndr_push_spoolss_AddForm,
30278 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddForm,
30279 (ndr_print_function_t) ndr_print_spoolss_AddForm,
30283 "spoolss_DeleteForm",
30284 sizeof(struct spoolss_DeleteForm),
30285 (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteForm,
30286 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteForm,
30287 (ndr_print_function_t) ndr_print_spoolss_DeleteForm,
30292 sizeof(struct spoolss_GetForm),
30293 (ndr_push_flags_fn_t) ndr_push_spoolss_GetForm,
30294 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetForm,
30295 (ndr_print_function_t) ndr_print_spoolss_GetForm,
30300 sizeof(struct spoolss_SetForm),
30301 (ndr_push_flags_fn_t) ndr_push_spoolss_SetForm,
30302 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetForm,
30303 (ndr_print_function_t) ndr_print_spoolss_SetForm,
30307 "spoolss_EnumForms",
30308 sizeof(struct spoolss_EnumForms),
30309 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumForms,
30310 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumForms,
30311 (ndr_print_function_t) ndr_print_spoolss_EnumForms,
30315 "spoolss_EnumPorts",
30316 sizeof(struct spoolss_EnumPorts),
30317 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPorts,
30318 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPorts,
30319 (ndr_print_function_t) ndr_print_spoolss_EnumPorts,
30323 "spoolss_EnumMonitors",
30324 sizeof(struct spoolss_EnumMonitors),
30325 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumMonitors,
30326 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumMonitors,
30327 (ndr_print_function_t) ndr_print_spoolss_EnumMonitors,
30332 sizeof(struct spoolss_AddPort),
30333 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPort,
30334 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPort,
30335 (ndr_print_function_t) ndr_print_spoolss_AddPort,
30339 "spoolss_ConfigurePort",
30340 sizeof(struct spoolss_ConfigurePort),
30341 (ndr_push_flags_fn_t) ndr_push_spoolss_ConfigurePort,
30342 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ConfigurePort,
30343 (ndr_print_function_t) ndr_print_spoolss_ConfigurePort,
30347 "spoolss_DeletePort",
30348 sizeof(struct spoolss_DeletePort),
30349 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePort,
30350 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePort,
30351 (ndr_print_function_t) ndr_print_spoolss_DeletePort,
30355 "spoolss_CreatePrinterIC",
30356 sizeof(struct spoolss_CreatePrinterIC),
30357 (ndr_push_flags_fn_t) ndr_push_spoolss_CreatePrinterIC,
30358 (ndr_pull_flags_fn_t) ndr_pull_spoolss_CreatePrinterIC,
30359 (ndr_print_function_t) ndr_print_spoolss_CreatePrinterIC,
30363 "spoolss_PlayGDIScriptOnPrinterIC",
30364 sizeof(struct spoolss_PlayGDIScriptOnPrinterIC),
30365 (ndr_push_flags_fn_t) ndr_push_spoolss_PlayGDIScriptOnPrinterIC,
30366 (ndr_pull_flags_fn_t) ndr_pull_spoolss_PlayGDIScriptOnPrinterIC,
30367 (ndr_print_function_t) ndr_print_spoolss_PlayGDIScriptOnPrinterIC,
30371 "spoolss_DeletePrinterIC",
30372 sizeof(struct spoolss_DeletePrinterIC),
30373 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterIC,
30374 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterIC,
30375 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterIC,
30379 "spoolss_AddPrinterConnection",
30380 sizeof(struct spoolss_AddPrinterConnection),
30381 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterConnection,
30382 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterConnection,
30383 (ndr_print_function_t) ndr_print_spoolss_AddPrinterConnection,
30387 "spoolss_DeletePrinterConnection",
30388 sizeof(struct spoolss_DeletePrinterConnection),
30389 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterConnection,
30390 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterConnection,
30391 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterConnection,
30395 "spoolss_PrinterMessageBox",
30396 sizeof(struct spoolss_PrinterMessageBox),
30397 (ndr_push_flags_fn_t) ndr_push_spoolss_PrinterMessageBox,
30398 (ndr_pull_flags_fn_t) ndr_pull_spoolss_PrinterMessageBox,
30399 (ndr_print_function_t) ndr_print_spoolss_PrinterMessageBox,
30403 "spoolss_AddMonitor",
30404 sizeof(struct spoolss_AddMonitor),
30405 (ndr_push_flags_fn_t) ndr_push_spoolss_AddMonitor,
30406 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddMonitor,
30407 (ndr_print_function_t) ndr_print_spoolss_AddMonitor,
30411 "spoolss_DeleteMonitor",
30412 sizeof(struct spoolss_DeleteMonitor),
30413 (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteMonitor,
30414 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteMonitor,
30415 (ndr_print_function_t) ndr_print_spoolss_DeleteMonitor,
30419 "spoolss_DeletePrintProcessor",
30420 sizeof(struct spoolss_DeletePrintProcessor),
30421 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrintProcessor,
30422 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrintProcessor,
30423 (ndr_print_function_t) ndr_print_spoolss_DeletePrintProcessor,
30427 "spoolss_AddPrintProvidor",
30428 sizeof(struct spoolss_AddPrintProvidor),
30429 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrintProvidor,
30430 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrintProvidor,
30431 (ndr_print_function_t) ndr_print_spoolss_AddPrintProvidor,
30435 "spoolss_DeletePrintProvidor",
30436 sizeof(struct spoolss_DeletePrintProvidor),
30437 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrintProvidor,
30438 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrintProvidor,
30439 (ndr_print_function_t) ndr_print_spoolss_DeletePrintProvidor,
30443 "spoolss_EnumPrintProcDataTypes",
30444 sizeof(struct spoolss_EnumPrintProcDataTypes),
30445 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrintProcDataTypes,
30446 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrintProcDataTypes,
30447 (ndr_print_function_t) ndr_print_spoolss_EnumPrintProcDataTypes,
30451 "spoolss_ResetPrinter",
30452 sizeof(struct spoolss_ResetPrinter),
30453 (ndr_push_flags_fn_t) ndr_push_spoolss_ResetPrinter,
30454 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ResetPrinter,
30455 (ndr_print_function_t) ndr_print_spoolss_ResetPrinter,
30459 "spoolss_GetPrinterDriver2",
30460 sizeof(struct spoolss_GetPrinterDriver2),
30461 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriver2,
30462 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriver2,
30463 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriver2,
30467 "spoolss_FindFirstPrinterChangeNotification",
30468 sizeof(struct spoolss_FindFirstPrinterChangeNotification),
30469 (ndr_push_flags_fn_t) ndr_push_spoolss_FindFirstPrinterChangeNotification,
30470 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindFirstPrinterChangeNotification,
30471 (ndr_print_function_t) ndr_print_spoolss_FindFirstPrinterChangeNotification,
30475 "spoolss_FindNextPrinterChangeNotification",
30476 sizeof(struct spoolss_FindNextPrinterChangeNotification),
30477 (ndr_push_flags_fn_t) ndr_push_spoolss_FindNextPrinterChangeNotification,
30478 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindNextPrinterChangeNotification,
30479 (ndr_print_function_t) ndr_print_spoolss_FindNextPrinterChangeNotification,
30483 "spoolss_FindClosePrinterNotify",
30484 sizeof(struct spoolss_FindClosePrinterNotify),
30485 (ndr_push_flags_fn_t) ndr_push_spoolss_FindClosePrinterNotify,
30486 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindClosePrinterNotify,
30487 (ndr_print_function_t) ndr_print_spoolss_FindClosePrinterNotify,
30491 "spoolss_RouterFindFirstPrinterChangeNotificationOld",
30492 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotificationOld),
30493 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld,
30494 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld,
30495 (ndr_print_function_t) ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld,
30499 "spoolss_ReplyOpenPrinter",
30500 sizeof(struct spoolss_ReplyOpenPrinter),
30501 (ndr_push_flags_fn_t) ndr_push_spoolss_ReplyOpenPrinter,
30502 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReplyOpenPrinter,
30503 (ndr_print_function_t) ndr_print_spoolss_ReplyOpenPrinter,
30507 "spoolss_RouterReplyPrinter",
30508 sizeof(struct spoolss_RouterReplyPrinter),
30509 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterReplyPrinter,
30510 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterReplyPrinter,
30511 (ndr_print_function_t) ndr_print_spoolss_RouterReplyPrinter,
30515 "spoolss_ReplyClosePrinter",
30516 sizeof(struct spoolss_ReplyClosePrinter),
30517 (ndr_push_flags_fn_t) ndr_push_spoolss_ReplyClosePrinter,
30518 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReplyClosePrinter,
30519 (ndr_print_function_t) ndr_print_spoolss_ReplyClosePrinter,
30523 "spoolss_AddPortEx",
30524 sizeof(struct spoolss_AddPortEx),
30525 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPortEx,
30526 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPortEx,
30527 (ndr_print_function_t) ndr_print_spoolss_AddPortEx,
30531 "spoolss_RouterFindFirstPrinterChangeNotification",
30532 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotification),
30533 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterFindFirstPrinterChangeNotification,
30534 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification,
30535 (ndr_print_function_t) ndr_print_spoolss_RouterFindFirstPrinterChangeNotification,
30539 "spoolss_SpoolerInit",
30540 sizeof(struct spoolss_SpoolerInit),
30541 (ndr_push_flags_fn_t) ndr_push_spoolss_SpoolerInit,
30542 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SpoolerInit,
30543 (ndr_print_function_t) ndr_print_spoolss_SpoolerInit,
30547 "spoolss_ResetPrinterEx",
30548 sizeof(struct spoolss_ResetPrinterEx),
30549 (ndr_push_flags_fn_t) ndr_push_spoolss_ResetPrinterEx,
30550 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ResetPrinterEx,
30551 (ndr_print_function_t) ndr_print_spoolss_ResetPrinterEx,
30555 "spoolss_RemoteFindFirstPrinterChangeNotifyEx",
30556 sizeof(struct spoolss_RemoteFindFirstPrinterChangeNotifyEx),
30557 (ndr_push_flags_fn_t) ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
30558 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
30559 (ndr_print_function_t) ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
30563 "spoolss_RouterReplyPrinterEx",
30564 sizeof(struct spoolss_RouterReplyPrinterEx),
30565 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterReplyPrinterEx,
30566 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterReplyPrinterEx,
30567 (ndr_print_function_t) ndr_print_spoolss_RouterReplyPrinterEx,
30571 "spoolss_RouterRefreshPrinterChangeNotify",
30572 sizeof(struct spoolss_RouterRefreshPrinterChangeNotify),
30573 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterRefreshPrinterChangeNotify,
30574 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterRefreshPrinterChangeNotify,
30575 (ndr_print_function_t) ndr_print_spoolss_RouterRefreshPrinterChangeNotify,
30580 sizeof(struct spoolss_44),
30581 (ndr_push_flags_fn_t) ndr_push_spoolss_44,
30582 (ndr_pull_flags_fn_t) ndr_pull_spoolss_44,
30583 (ndr_print_function_t) ndr_print_spoolss_44,
30587 "spoolss_OpenPrinterEx",
30588 sizeof(struct spoolss_OpenPrinterEx),
30589 (ndr_push_flags_fn_t) ndr_push_spoolss_OpenPrinterEx,
30590 (ndr_pull_flags_fn_t) ndr_pull_spoolss_OpenPrinterEx,
30591 (ndr_print_function_t) ndr_print_spoolss_OpenPrinterEx,
30595 "spoolss_AddPrinterEx",
30596 sizeof(struct spoolss_AddPrinterEx),
30597 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterEx,
30598 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterEx,
30599 (ndr_print_function_t) ndr_print_spoolss_AddPrinterEx,
30604 sizeof(struct spoolss_47),
30605 (ndr_push_flags_fn_t) ndr_push_spoolss_47,
30606 (ndr_pull_flags_fn_t) ndr_pull_spoolss_47,
30607 (ndr_print_function_t) ndr_print_spoolss_47,
30611 "spoolss_EnumPrinterData",
30612 sizeof(struct spoolss_EnumPrinterData),
30613 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterData,
30614 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterData,
30615 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterData,
30619 "spoolss_DeletePrinterData",
30620 sizeof(struct spoolss_DeletePrinterData),
30621 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterData,
30622 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterData,
30623 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterData,
30628 sizeof(struct spoolss_4a),
30629 (ndr_push_flags_fn_t) ndr_push_spoolss_4a,
30630 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4a,
30631 (ndr_print_function_t) ndr_print_spoolss_4a,
30636 sizeof(struct spoolss_4b),
30637 (ndr_push_flags_fn_t) ndr_push_spoolss_4b,
30638 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4b,
30639 (ndr_print_function_t) ndr_print_spoolss_4b,
30644 sizeof(struct spoolss_4c),
30645 (ndr_push_flags_fn_t) ndr_push_spoolss_4c,
30646 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4c,
30647 (ndr_print_function_t) ndr_print_spoolss_4c,
30651 "spoolss_SetPrinterDataEx",
30652 sizeof(struct spoolss_SetPrinterDataEx),
30653 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinterDataEx,
30654 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinterDataEx,
30655 (ndr_print_function_t) ndr_print_spoolss_SetPrinterDataEx,
30659 "spoolss_GetPrinterDataEx",
30660 sizeof(struct spoolss_GetPrinterDataEx),
30661 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDataEx,
30662 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDataEx,
30663 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDataEx,
30667 "spoolss_EnumPrinterDataEx",
30668 sizeof(struct spoolss_EnumPrinterDataEx),
30669 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterDataEx,
30670 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterDataEx,
30671 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterDataEx,
30675 "spoolss_EnumPrinterKey",
30676 sizeof(struct spoolss_EnumPrinterKey),
30677 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterKey,
30678 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterKey,
30679 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterKey,
30683 "spoolss_DeletePrinterDataEx",
30684 sizeof(struct spoolss_DeletePrinterDataEx),
30685 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDataEx,
30686 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDataEx,
30687 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDataEx,
30691 "spoolss_DeletePrinterKey",
30692 sizeof(struct spoolss_DeletePrinterKey),
30693 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterKey,
30694 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterKey,
30695 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterKey,
30700 sizeof(struct spoolss_53),
30701 (ndr_push_flags_fn_t) ndr_push_spoolss_53,
30702 (ndr_pull_flags_fn_t) ndr_pull_spoolss_53,
30703 (ndr_print_function_t) ndr_print_spoolss_53,
30707 "spoolss_DeletePrinterDriverEx",
30708 sizeof(struct spoolss_DeletePrinterDriverEx),
30709 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDriverEx,
30710 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDriverEx,
30711 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDriverEx,
30716 sizeof(struct spoolss_55),
30717 (ndr_push_flags_fn_t) ndr_push_spoolss_55,
30718 (ndr_pull_flags_fn_t) ndr_pull_spoolss_55,
30719 (ndr_print_function_t) ndr_print_spoolss_55,
30724 sizeof(struct spoolss_56),
30725 (ndr_push_flags_fn_t) ndr_push_spoolss_56,
30726 (ndr_pull_flags_fn_t) ndr_pull_spoolss_56,
30727 (ndr_print_function_t) ndr_print_spoolss_56,
30732 sizeof(struct spoolss_57),
30733 (ndr_push_flags_fn_t) ndr_push_spoolss_57,
30734 (ndr_pull_flags_fn_t) ndr_pull_spoolss_57,
30735 (ndr_print_function_t) ndr_print_spoolss_57,
30740 sizeof(struct spoolss_XcvData),
30741 (ndr_push_flags_fn_t) ndr_push_spoolss_XcvData,
30742 (ndr_pull_flags_fn_t) ndr_pull_spoolss_XcvData,
30743 (ndr_print_function_t) ndr_print_spoolss_XcvData,
30747 "spoolss_AddPrinterDriverEx",
30748 sizeof(struct spoolss_AddPrinterDriverEx),
30749 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterDriverEx,
30750 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterDriverEx,
30751 (ndr_print_function_t) ndr_print_spoolss_AddPrinterDriverEx,
30756 sizeof(struct spoolss_5a),
30757 (ndr_push_flags_fn_t) ndr_push_spoolss_5a,
30758 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5a,
30759 (ndr_print_function_t) ndr_print_spoolss_5a,
30764 sizeof(struct spoolss_5b),
30765 (ndr_push_flags_fn_t) ndr_push_spoolss_5b,
30766 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5b,
30767 (ndr_print_function_t) ndr_print_spoolss_5b,
30772 sizeof(struct spoolss_5c),
30773 (ndr_push_flags_fn_t) ndr_push_spoolss_5c,
30774 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5c,
30775 (ndr_print_function_t) ndr_print_spoolss_5c,
30780 sizeof(struct spoolss_5d),
30781 (ndr_push_flags_fn_t) ndr_push_spoolss_5d,
30782 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5d,
30783 (ndr_print_function_t) ndr_print_spoolss_5d,
30788 sizeof(struct spoolss_5e),
30789 (ndr_push_flags_fn_t) ndr_push_spoolss_5e,
30790 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5e,
30791 (ndr_print_function_t) ndr_print_spoolss_5e,
30796 sizeof(struct spoolss_5f),
30797 (ndr_push_flags_fn_t) ndr_push_spoolss_5f,
30798 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5f,
30799 (ndr_print_function_t) ndr_print_spoolss_5f,
30804 sizeof(struct spoolss_60),
30805 (ndr_push_flags_fn_t) ndr_push_spoolss_60,
30806 (ndr_pull_flags_fn_t) ndr_pull_spoolss_60,
30807 (ndr_print_function_t) ndr_print_spoolss_60,
30812 sizeof(struct spoolss_61),
30813 (ndr_push_flags_fn_t) ndr_push_spoolss_61,
30814 (ndr_pull_flags_fn_t) ndr_pull_spoolss_61,
30815 (ndr_print_function_t) ndr_print_spoolss_61,
30820 sizeof(struct spoolss_62),
30821 (ndr_push_flags_fn_t) ndr_push_spoolss_62,
30822 (ndr_pull_flags_fn_t) ndr_pull_spoolss_62,
30823 (ndr_print_function_t) ndr_print_spoolss_62,
30828 sizeof(struct spoolss_63),
30829 (ndr_push_flags_fn_t) ndr_push_spoolss_63,
30830 (ndr_pull_flags_fn_t) ndr_pull_spoolss_63,
30831 (ndr_print_function_t) ndr_print_spoolss_63,
30836 sizeof(struct spoolss_64),
30837 (ndr_push_flags_fn_t) ndr_push_spoolss_64,
30838 (ndr_pull_flags_fn_t) ndr_pull_spoolss_64,
30839 (ndr_print_function_t) ndr_print_spoolss_64,
30844 sizeof(struct spoolss_65),
30845 (ndr_push_flags_fn_t) ndr_push_spoolss_65,
30846 (ndr_pull_flags_fn_t) ndr_pull_spoolss_65,
30847 (ndr_print_function_t) ndr_print_spoolss_65,
30851 "spoolss_GetCorePrinterDrivers",
30852 sizeof(struct spoolss_GetCorePrinterDrivers),
30853 (ndr_push_flags_fn_t) ndr_push_spoolss_GetCorePrinterDrivers,
30854 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetCorePrinterDrivers,
30855 (ndr_print_function_t) ndr_print_spoolss_GetCorePrinterDrivers,
30860 sizeof(struct spoolss_67),
30861 (ndr_push_flags_fn_t) ndr_push_spoolss_67,
30862 (ndr_pull_flags_fn_t) ndr_pull_spoolss_67,
30863 (ndr_print_function_t) ndr_print_spoolss_67,
30867 "spoolss_GetPrinterDriverPackagePath",
30868 sizeof(struct spoolss_GetPrinterDriverPackagePath),
30869 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriverPackagePath,
30870 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriverPackagePath,
30871 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriverPackagePath,
30876 sizeof(struct spoolss_69),
30877 (ndr_push_flags_fn_t) ndr_push_spoolss_69,
30878 (ndr_pull_flags_fn_t) ndr_pull_spoolss_69,
30879 (ndr_print_function_t) ndr_print_spoolss_69,
30884 sizeof(struct spoolss_6a),
30885 (ndr_push_flags_fn_t) ndr_push_spoolss_6a,
30886 (ndr_pull_flags_fn_t) ndr_pull_spoolss_6a,
30887 (ndr_print_function_t) ndr_print_spoolss_6a,
30892 sizeof(struct spoolss_6b),
30893 (ndr_push_flags_fn_t) ndr_push_spoolss_6b,
30894 (ndr_pull_flags_fn_t) ndr_pull_spoolss_6b,
30895 (ndr_print_function_t) ndr_print_spoolss_6b,
30900 sizeof(struct spoolss_6c),
30901 (ndr_push_flags_fn_t) ndr_push_spoolss_6c,
30902 (ndr_pull_flags_fn_t) ndr_pull_spoolss_6c,
30903 (ndr_print_function_t) ndr_print_spoolss_6c,
30908 sizeof(struct spoolss_6d),
30909 (ndr_push_flags_fn_t) ndr_push_spoolss_6d,
30910 (ndr_pull_flags_fn_t) ndr_pull_spoolss_6d,
30911 (ndr_print_function_t) ndr_print_spoolss_6d,
30914 { NULL, 0, NULL, NULL, NULL, false }
30917 static const char * const spoolss_endpoint_strings[] = {
30918 "ncacn_np:[\\pipe\\spoolss]",
30921 static const struct ndr_interface_string_array spoolss_endpoints = {
30923 .names = spoolss_endpoint_strings
30926 static const char * const spoolss_authservice_strings[] = {
30930 static const struct ndr_interface_string_array spoolss_authservices = {
30932 .names = spoolss_authservice_strings
30936 const struct ndr_interface_table ndr_table_spoolss = {
30939 {0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0x89,0xab}},
30940 NDR_SPOOLSS_VERSION
30942 .helpstring = NDR_SPOOLSS_HELPSTRING,
30944 .calls = spoolss_calls,
30945 .endpoints = &spoolss_endpoints,
30946 .authservices = &spoolss_authservices