1 /* parser auto-generated by pidl */
4 #include "../librpc/gen_ndr/ndr_spoolss.h"
6 #include "librpc/gen_ndr/ndr_misc.h"
7 #include "librpc/gen_ndr/ndr_security.h"
8 #include "librpc/gen_ndr/ndr_winreg.h"
9 static enum ndr_err_code ndr_push_spoolss_Time(struct ndr_push *ndr, int ndr_flags, const struct spoolss_Time *r)
11 if (ndr_flags & NDR_SCALARS) {
12 NDR_CHECK(ndr_push_align(ndr, 2));
13 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->year));
14 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->month));
15 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->day_of_week));
16 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->day));
17 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->hour));
18 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->minute));
19 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->second));
20 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->millisecond));
21 NDR_CHECK(ndr_push_trailer_align(ndr, 2));
23 if (ndr_flags & NDR_BUFFERS) {
25 return NDR_ERR_SUCCESS;
28 static enum ndr_err_code ndr_pull_spoolss_Time(struct ndr_pull *ndr, int ndr_flags, struct spoolss_Time *r)
30 if (ndr_flags & NDR_SCALARS) {
31 NDR_CHECK(ndr_pull_align(ndr, 2));
32 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->year));
33 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->month));
34 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->day_of_week));
35 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->day));
36 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->hour));
37 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->minute));
38 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->second));
39 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->millisecond));
40 NDR_CHECK(ndr_pull_trailer_align(ndr, 2));
42 if (ndr_flags & NDR_BUFFERS) {
44 return NDR_ERR_SUCCESS;
47 _PUBLIC_ void ndr_print_spoolss_Time(struct ndr_print *ndr, const char *name, const struct spoolss_Time *r)
49 ndr_print_struct(ndr, name, "spoolss_Time");
51 ndr_print_uint16(ndr, "year", r->year);
52 ndr_print_uint16(ndr, "month", r->month);
53 ndr_print_uint16(ndr, "day_of_week", r->day_of_week);
54 ndr_print_uint16(ndr, "day", r->day);
55 ndr_print_uint16(ndr, "hour", r->hour);
56 ndr_print_uint16(ndr, "minute", r->minute);
57 ndr_print_uint16(ndr, "second", r->second);
58 ndr_print_uint16(ndr, "millisecond", r->millisecond);
62 static size_t ndr_size_spoolss_Time(const struct spoolss_Time *r, struct smb_iconv_convenience *ic, int flags)
64 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_Time, ic);
67 static enum ndr_err_code ndr_push_spoolss_TimeCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_TimeCtr *r)
69 if (ndr_flags & NDR_SCALARS) {
70 NDR_CHECK(ndr_push_align(ndr, 5));
71 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_Time(r->time, ndr->iconv_convenience, ndr->flags)));
72 NDR_CHECK(ndr_push_unique_ptr(ndr, r->time));
73 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
75 if (ndr_flags & NDR_BUFFERS) {
77 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, r->time));
80 return NDR_ERR_SUCCESS;
83 static enum ndr_err_code ndr_pull_spoolss_TimeCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_TimeCtr *r)
86 TALLOC_CTX *_mem_save_time_0;
87 if (ndr_flags & NDR_SCALARS) {
88 NDR_CHECK(ndr_pull_align(ndr, 5));
89 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
90 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_time));
92 NDR_PULL_ALLOC(ndr, r->time);
96 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
98 if (ndr_flags & NDR_BUFFERS) {
100 _mem_save_time_0 = NDR_PULL_GET_MEM_CTX(ndr);
101 NDR_PULL_SET_MEM_CTX(ndr, r->time, 0);
102 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, r->time));
103 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_time_0, 0);
106 return NDR_ERR_SUCCESS;
109 _PUBLIC_ void ndr_print_spoolss_TimeCtr(struct ndr_print *ndr, const char *name, const struct spoolss_TimeCtr *r)
111 ndr_print_struct(ndr, name, "spoolss_TimeCtr");
113 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_spoolss_Time(r->time, ndr->iconv_convenience, ndr->flags):r->size);
114 ndr_print_ptr(ndr, "time", r->time);
117 ndr_print_spoolss_Time(ndr, "time", r->time);
123 static enum ndr_err_code ndr_push_spoolss_ProcessorArchitecture(struct ndr_push *ndr, int ndr_flags, enum spoolss_ProcessorArchitecture r)
125 NDR_CHECK(ndr_push_enum_uint1632(ndr, NDR_SCALARS, r));
126 return NDR_ERR_SUCCESS;
129 static enum ndr_err_code ndr_pull_spoolss_ProcessorArchitecture(struct ndr_pull *ndr, int ndr_flags, enum spoolss_ProcessorArchitecture *r)
132 NDR_CHECK(ndr_pull_enum_uint1632(ndr, NDR_SCALARS, &v));
134 return NDR_ERR_SUCCESS;
137 _PUBLIC_ void ndr_print_spoolss_ProcessorArchitecture(struct ndr_print *ndr, const char *name, enum spoolss_ProcessorArchitecture r)
139 const char *val = NULL;
142 case PROCESSOR_ARCHITECTURE_INTEL: val = "PROCESSOR_ARCHITECTURE_INTEL"; break;
143 case PROCESSOR_ARCHITECTURE_IA64: val = "PROCESSOR_ARCHITECTURE_IA64"; break;
144 case PROCESSOR_ARCHITECTURE_AMD64: val = "PROCESSOR_ARCHITECTURE_AMD64"; break;
146 ndr_print_enum(ndr, name, "ENUM", val, r);
149 static enum ndr_err_code ndr_push_spoolss_ProcessorType(struct ndr_push *ndr, int ndr_flags, enum spoolss_ProcessorType r)
151 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
152 return NDR_ERR_SUCCESS;
155 static enum ndr_err_code ndr_pull_spoolss_ProcessorType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_ProcessorType *r)
158 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
160 return NDR_ERR_SUCCESS;
163 _PUBLIC_ void ndr_print_spoolss_ProcessorType(struct ndr_print *ndr, const char *name, enum spoolss_ProcessorType r)
165 const char *val = NULL;
168 case PROCESSOR_INTEL_386: val = "PROCESSOR_INTEL_386"; break;
169 case PROCESSOR_INTEL_486: val = "PROCESSOR_INTEL_486"; break;
170 case PROCESSOR_INTEL_PENTIUM: val = "PROCESSOR_INTEL_PENTIUM"; break;
171 case PROCESSOR_INTEL_IA64: val = "PROCESSOR_INTEL_IA64"; break;
172 case PROCESSOR_AMD_X8664: val = "PROCESSOR_AMD_X8664"; break;
174 ndr_print_enum(ndr, name, "ENUM", val, r);
177 static enum ndr_err_code ndr_push_spoolss_MajorVersion(struct ndr_push *ndr, int ndr_flags, enum spoolss_MajorVersion r)
179 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
180 return NDR_ERR_SUCCESS;
183 static enum ndr_err_code ndr_pull_spoolss_MajorVersion(struct ndr_pull *ndr, int ndr_flags, enum spoolss_MajorVersion *r)
186 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
188 return NDR_ERR_SUCCESS;
191 _PUBLIC_ void ndr_print_spoolss_MajorVersion(struct ndr_print *ndr, const char *name, enum spoolss_MajorVersion r)
193 const char *val = NULL;
196 case SPOOLSS_MAJOR_VERSION_NT4_95_98_ME: val = "SPOOLSS_MAJOR_VERSION_NT4_95_98_ME"; break;
197 case SPOOLSS_MAJOR_VERSION_2000_2003_XP: val = "SPOOLSS_MAJOR_VERSION_2000_2003_XP"; break;
198 case SPOOLSS_MAJOR_VERSION_2008_VISTA: val = "SPOOLSS_MAJOR_VERSION_2008_VISTA"; break;
200 ndr_print_enum(ndr, name, "ENUM", val, r);
203 static enum ndr_err_code ndr_push_spoolss_MinorVersion(struct ndr_push *ndr, int ndr_flags, enum spoolss_MinorVersion r)
205 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
206 return NDR_ERR_SUCCESS;
209 static enum ndr_err_code ndr_pull_spoolss_MinorVersion(struct ndr_pull *ndr, int ndr_flags, enum spoolss_MinorVersion *r)
212 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
214 return NDR_ERR_SUCCESS;
217 _PUBLIC_ void ndr_print_spoolss_MinorVersion(struct ndr_print *ndr, const char *name, enum spoolss_MinorVersion r)
219 const char *val = NULL;
222 case SPOOLSS_MINOR_VERSION_0: val = "SPOOLSS_MINOR_VERSION_0"; break;
223 case SPOOLSS_MINOR_VERSION_XP: val = "SPOOLSS_MINOR_VERSION_XP"; break;
224 case SPOOLSS_MINOR_VERSION_2003_XP64: val = "SPOOLSS_MINOR_VERSION_2003_XP64"; break;
225 case SPOOLSS_MINOR_VERSION_98: val = "SPOOLSS_MINOR_VERSION_98"; break;
226 case SPOOLSS_MINOR_VERSION_ME: val = "SPOOLSS_MINOR_VERSION_ME"; break;
228 ndr_print_enum(ndr, name, "ENUM", val, r);
231 static enum ndr_err_code ndr_push_spoolss_PrinterStatus(struct ndr_push *ndr, int ndr_flags, uint32_t r)
233 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
234 return NDR_ERR_SUCCESS;
237 static enum ndr_err_code ndr_pull_spoolss_PrinterStatus(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
240 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
242 return NDR_ERR_SUCCESS;
245 _PUBLIC_ void ndr_print_spoolss_PrinterStatus(struct ndr_print *ndr, const char *name, uint32_t r)
247 ndr_print_uint32(ndr, name, r);
249 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAUSED", PRINTER_STATUS_PAUSED, r);
250 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_ERROR", PRINTER_STATUS_ERROR, r);
251 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PENDING_DELETION", PRINTER_STATUS_PENDING_DELETION, r);
252 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAPER_JAM", PRINTER_STATUS_PAPER_JAM, r);
253 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAPER_OUT", PRINTER_STATUS_PAPER_OUT, r);
254 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_MANUAL_FEED", PRINTER_STATUS_MANUAL_FEED, r);
255 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAPER_PROBLEM", PRINTER_STATUS_PAPER_PROBLEM, r);
256 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_OFFLINE", PRINTER_STATUS_OFFLINE, r);
257 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_IO_ACTIVE", PRINTER_STATUS_IO_ACTIVE, r);
258 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_BUSY", PRINTER_STATUS_BUSY, r);
259 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PRINTING", PRINTER_STATUS_PRINTING, r);
260 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_OUTPUT_BIN_FULL", PRINTER_STATUS_OUTPUT_BIN_FULL, r);
261 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_NOT_AVAILABLE", PRINTER_STATUS_NOT_AVAILABLE, r);
262 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_WAITING", PRINTER_STATUS_WAITING, r);
263 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PROCESSING", PRINTER_STATUS_PROCESSING, r);
264 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_INITIALIZING", PRINTER_STATUS_INITIALIZING, r);
265 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_WARMING_UP", PRINTER_STATUS_WARMING_UP, r);
266 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_TONER_LOW", PRINTER_STATUS_TONER_LOW, r);
267 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_NO_TONER", PRINTER_STATUS_NO_TONER, r);
268 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAGE_PUNT", PRINTER_STATUS_PAGE_PUNT, r);
269 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_USER_INTERVENTION", PRINTER_STATUS_USER_INTERVENTION, r);
270 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_OUT_OF_MEMORY", PRINTER_STATUS_OUT_OF_MEMORY, r);
271 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_DOOR_OPEN", PRINTER_STATUS_DOOR_OPEN, r);
272 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_SERVER_UNKNOWN", PRINTER_STATUS_SERVER_UNKNOWN, r);
273 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_POWER_SAVE", PRINTER_STATUS_POWER_SAVE, r);
277 static enum ndr_err_code ndr_push_spoolss_JobStatus(struct ndr_push *ndr, int ndr_flags, uint32_t r)
279 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
280 return NDR_ERR_SUCCESS;
283 static enum ndr_err_code ndr_pull_spoolss_JobStatus(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
286 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
288 return NDR_ERR_SUCCESS;
291 _PUBLIC_ void ndr_print_spoolss_JobStatus(struct ndr_print *ndr, const char *name, uint32_t r)
293 ndr_print_uint32(ndr, name, r);
295 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_PAUSED", JOB_STATUS_PAUSED, r);
296 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_ERROR", JOB_STATUS_ERROR, r);
297 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_DELETING", JOB_STATUS_DELETING, r);
298 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_SPOOLING", JOB_STATUS_SPOOLING, r);
299 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_PRINTING", JOB_STATUS_PRINTING, r);
300 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_OFFLINE", JOB_STATUS_OFFLINE, r);
301 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_PAPEROUT", JOB_STATUS_PAPEROUT, r);
302 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_PRINTED", JOB_STATUS_PRINTED, r);
303 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_DELETED", JOB_STATUS_DELETED, r);
304 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_BLOCKED_DEVQ", JOB_STATUS_BLOCKED_DEVQ, r);
305 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_USER_INTERVENTION", JOB_STATUS_USER_INTERVENTION, r);
306 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_RESTART", JOB_STATUS_RESTART, r);
307 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_COMPLETE", JOB_STATUS_COMPLETE, r);
311 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo0(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo0 *r)
313 if (ndr_flags & NDR_SCALARS) {
314 NDR_CHECK(ndr_push_align(ndr, 5));
316 uint32_t _flags_save_string = ndr->flags;
317 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
318 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
319 ndr->flags = _flags_save_string;
322 uint32_t _flags_save_string = ndr->flags;
323 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
324 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->servername));
325 ndr->flags = _flags_save_string;
327 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
328 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_jobs));
329 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_bytes));
330 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->time));
331 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->global_counter));
332 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
333 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
334 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->free_build));
335 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->spooling));
336 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_spooling));
337 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->session_counter));
338 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_out_of_paper));
339 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_not_ready));
340 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->job_error));
341 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->number_of_processors));
342 NDR_CHECK(ndr_push_spoolss_ProcessorType(ndr, NDR_SCALARS, r->processor_type));
343 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->high_part_total_bytes));
344 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->change_id));
345 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->last_error));
346 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
347 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->enumerate_network_printers));
348 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->c_setprinter));
349 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor_architecture));
350 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->processor_level));
351 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ref_ic));
352 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved2));
353 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved3));
354 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
356 if (ndr_flags & NDR_BUFFERS) {
358 uint32_t _flags_save_string = ndr->flags;
359 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
360 if (r->printername) {
361 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printername));
362 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
364 ndr->flags = _flags_save_string;
367 uint32_t _flags_save_string = ndr->flags;
368 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
370 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->servername));
371 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->servername));
373 ndr->flags = _flags_save_string;
376 return NDR_ERR_SUCCESS;
379 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo0(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo0 *r)
381 uint32_t _ptr_printername;
382 TALLOC_CTX *_mem_save_printername_0;
383 uint32_t _ptr_servername;
384 TALLOC_CTX *_mem_save_servername_0;
385 if (ndr_flags & NDR_SCALARS) {
386 NDR_CHECK(ndr_pull_align(ndr, 5));
388 uint32_t _flags_save_string = ndr->flags;
389 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
390 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
391 if (_ptr_printername) {
392 NDR_PULL_ALLOC(ndr, r->printername);
393 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
395 r->printername = NULL;
397 ndr->flags = _flags_save_string;
400 uint32_t _flags_save_string = ndr->flags;
401 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
402 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
403 if (_ptr_servername) {
404 NDR_PULL_ALLOC(ndr, r->servername);
405 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
407 r->servername = NULL;
409 ndr->flags = _flags_save_string;
411 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
412 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_jobs));
413 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_bytes));
414 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->time));
415 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->global_counter));
416 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
417 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
418 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->free_build));
419 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->spooling));
420 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_spooling));
421 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->session_counter));
422 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_out_of_paper));
423 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_not_ready));
424 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->job_error));
425 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->number_of_processors));
426 NDR_CHECK(ndr_pull_spoolss_ProcessorType(ndr, NDR_SCALARS, &r->processor_type));
427 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->high_part_total_bytes));
428 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->change_id));
429 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->last_error));
430 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
431 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->enumerate_network_printers));
432 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->c_setprinter));
433 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor_architecture));
434 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->processor_level));
435 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ref_ic));
436 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
437 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved3));
438 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
440 if (ndr_flags & NDR_BUFFERS) {
442 uint32_t _flags_save_string = ndr->flags;
443 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
444 if (r->printername) {
445 uint32_t _relative_save_offset;
446 _relative_save_offset = ndr->offset;
447 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
448 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
449 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
450 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
451 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
452 if (ndr->offset > ndr->relative_highest_offset) {
453 ndr->relative_highest_offset = ndr->offset;
455 ndr->offset = _relative_save_offset;
457 ndr->flags = _flags_save_string;
460 uint32_t _flags_save_string = ndr->flags;
461 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
463 uint32_t _relative_save_offset;
464 _relative_save_offset = ndr->offset;
465 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
466 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
467 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
468 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
469 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
470 if (ndr->offset > ndr->relative_highest_offset) {
471 ndr->relative_highest_offset = ndr->offset;
473 ndr->offset = _relative_save_offset;
475 ndr->flags = _flags_save_string;
478 return NDR_ERR_SUCCESS;
481 _PUBLIC_ void ndr_print_spoolss_PrinterInfo0(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo0 *r)
483 ndr_print_struct(ndr, name, "spoolss_PrinterInfo0");
485 ndr_print_ptr(ndr, "printername", r->printername);
487 if (r->printername) {
488 ndr_print_string(ndr, "printername", r->printername);
491 ndr_print_ptr(ndr, "servername", r->servername);
494 ndr_print_string(ndr, "servername", r->servername);
497 ndr_print_uint32(ndr, "cjobs", r->cjobs);
498 ndr_print_uint32(ndr, "total_jobs", r->total_jobs);
499 ndr_print_uint32(ndr, "total_bytes", r->total_bytes);
500 ndr_print_spoolss_Time(ndr, "time", &r->time);
501 ndr_print_uint32(ndr, "global_counter", r->global_counter);
502 ndr_print_uint32(ndr, "total_pages", r->total_pages);
503 ndr_print_uint32(ndr, "version", r->version);
504 ndr_print_uint32(ndr, "free_build", r->free_build);
505 ndr_print_uint32(ndr, "spooling", r->spooling);
506 ndr_print_uint32(ndr, "max_spooling", r->max_spooling);
507 ndr_print_uint32(ndr, "session_counter", r->session_counter);
508 ndr_print_uint32(ndr, "num_error_out_of_paper", r->num_error_out_of_paper);
509 ndr_print_uint32(ndr, "num_error_not_ready", r->num_error_not_ready);
510 ndr_print_spoolss_JobStatus(ndr, "job_error", r->job_error);
511 ndr_print_uint32(ndr, "number_of_processors", r->number_of_processors);
512 ndr_print_spoolss_ProcessorType(ndr, "processor_type", r->processor_type);
513 ndr_print_uint32(ndr, "high_part_total_bytes", r->high_part_total_bytes);
514 ndr_print_uint32(ndr, "change_id", r->change_id);
515 ndr_print_WERROR(ndr, "last_error", r->last_error);
516 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
517 ndr_print_uint32(ndr, "enumerate_network_printers", r->enumerate_network_printers);
518 ndr_print_uint32(ndr, "c_setprinter", r->c_setprinter);
519 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor_architecture", r->processor_architecture);
520 ndr_print_uint16(ndr, "processor_level", r->processor_level);
521 ndr_print_uint32(ndr, "ref_ic", r->ref_ic);
522 ndr_print_uint32(ndr, "reserved2", r->reserved2);
523 ndr_print_uint32(ndr, "reserved3", r->reserved3);
527 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo0(const struct spoolss_PrinterInfo0 *r, struct smb_iconv_convenience *ic, int flags)
529 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo0, ic);
532 static enum ndr_err_code ndr_push_spoolss_DeviceModeFields(struct ndr_push *ndr, int ndr_flags, uint32_t r)
534 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
535 return NDR_ERR_SUCCESS;
538 static enum ndr_err_code ndr_pull_spoolss_DeviceModeFields(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
541 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
543 return NDR_ERR_SUCCESS;
546 _PUBLIC_ void ndr_print_spoolss_DeviceModeFields(struct ndr_print *ndr, const char *name, uint32_t r)
548 ndr_print_uint32(ndr, name, r);
550 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_ORIENTATION", DEVMODE_ORIENTATION, r);
551 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PAPERSIZE", DEVMODE_PAPERSIZE, r);
552 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PAPERLENGTH", DEVMODE_PAPERLENGTH, r);
553 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PAPERWIDTH", DEVMODE_PAPERWIDTH, r);
554 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_SCALE", DEVMODE_SCALE, r);
555 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_POSITION", DEVMODE_POSITION, r);
556 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_NUP", DEVMODE_NUP, r);
557 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_COPIES", DEVMODE_COPIES, r);
558 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DEFAULTSOURCE", DEVMODE_DEFAULTSOURCE, r);
559 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PRINTQUALITY", DEVMODE_PRINTQUALITY, r);
560 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_COLOR", DEVMODE_COLOR, r);
561 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DUPLEX", DEVMODE_DUPLEX, r);
562 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_YRESOLUTION", DEVMODE_YRESOLUTION, r);
563 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_TTOPTION", DEVMODE_TTOPTION, r);
564 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_COLLATE", DEVMODE_COLLATE, r);
565 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_FORMNAME", DEVMODE_FORMNAME, r);
566 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_LOGPIXELS", DEVMODE_LOGPIXELS, r);
567 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_BITSPERPEL", DEVMODE_BITSPERPEL, r);
568 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PELSWIDTH", DEVMODE_PELSWIDTH, r);
569 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PELSHEIGHT", DEVMODE_PELSHEIGHT, r);
570 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DISPLAYFLAGS", DEVMODE_DISPLAYFLAGS, r);
571 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DISPLAYFREQUENCY", DEVMODE_DISPLAYFREQUENCY, r);
572 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_ICMMETHOD", DEVMODE_ICMMETHOD, r);
573 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_ICMINTENT", DEVMODE_ICMINTENT, r);
574 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_MEDIATYPE", DEVMODE_MEDIATYPE, r);
575 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DITHERTYPE", DEVMODE_DITHERTYPE, r);
576 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PANNINGWIDTH", DEVMODE_PANNINGWIDTH, r);
577 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PANNINGHEIGHT", DEVMODE_PANNINGHEIGHT, r);
581 static enum ndr_err_code ndr_push_spoolss_DeviceModeSpecVersion(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeSpecVersion r)
583 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
584 return NDR_ERR_SUCCESS;
587 static enum ndr_err_code ndr_pull_spoolss_DeviceModeSpecVersion(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeSpecVersion *r)
590 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
592 return NDR_ERR_SUCCESS;
595 _PUBLIC_ void ndr_print_spoolss_DeviceModeSpecVersion(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeSpecVersion r)
597 const char *val = NULL;
600 case DMSPEC_NT3: val = "DMSPEC_NT3"; break;
601 case DMSPEC_WIN95_98_ME: val = "DMSPEC_WIN95_98_ME"; break;
602 case DMSPEC_NT4_AND_ABOVE: val = "DMSPEC_NT4_AND_ABOVE"; break;
604 ndr_print_enum(ndr, name, "ENUM", val, r);
607 static enum ndr_err_code ndr_push_spoolss_DeviceModeOrientation(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeOrientation r)
609 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
610 return NDR_ERR_SUCCESS;
613 static enum ndr_err_code ndr_pull_spoolss_DeviceModeOrientation(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeOrientation *r)
616 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
618 return NDR_ERR_SUCCESS;
621 _PUBLIC_ void ndr_print_spoolss_DeviceModeOrientation(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeOrientation r)
623 const char *val = NULL;
626 case DMORIENT_PORTRAIT: val = "DMORIENT_PORTRAIT"; break;
627 case DMORIENT_LANDSCAPE: val = "DMORIENT_LANDSCAPE"; break;
629 ndr_print_enum(ndr, name, "ENUM", val, r);
632 static enum ndr_err_code ndr_push_spoolss_DeviceModePaperSize(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModePaperSize r)
634 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
635 return NDR_ERR_SUCCESS;
638 static enum ndr_err_code ndr_pull_spoolss_DeviceModePaperSize(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModePaperSize *r)
641 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
643 return NDR_ERR_SUCCESS;
646 _PUBLIC_ void ndr_print_spoolss_DeviceModePaperSize(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModePaperSize r)
648 const char *val = NULL;
651 case DMPAPER_LETTER: val = "DMPAPER_LETTER"; break;
652 case DMPAPER_LETTERSMALL: val = "DMPAPER_LETTERSMALL"; break;
653 case DMPAPER_TABLOID: val = "DMPAPER_TABLOID"; break;
654 case DMPAPER_LEDGER: val = "DMPAPER_LEDGER"; break;
655 case DMPAPER_LEGAL: val = "DMPAPER_LEGAL"; break;
656 case DMPAPER_STATEMENT: val = "DMPAPER_STATEMENT"; break;
657 case DMPAPER_EXECUTIVE: val = "DMPAPER_EXECUTIVE"; break;
658 case DMPAPER_A3: val = "DMPAPER_A3"; break;
659 case DMPAPER_A4: val = "DMPAPER_A4"; break;
660 case DMPAPER_A4SMALL: val = "DMPAPER_A4SMALL"; break;
661 case DMPAPER_A5: val = "DMPAPER_A5"; break;
662 case DMPAPER_B4: val = "DMPAPER_B4"; break;
663 case DMPAPER_B5: val = "DMPAPER_B5"; break;
664 case DMPAPER_FOLIO: val = "DMPAPER_FOLIO"; break;
665 case DMPAPER_QUARTO: val = "DMPAPER_QUARTO"; break;
666 case DMPAPER_10X14: val = "DMPAPER_10X14"; break;
667 case DMPAPER_11X17: val = "DMPAPER_11X17"; break;
668 case DMPAPER_NOTE: val = "DMPAPER_NOTE"; break;
669 case DMPAPER_ENV_9: val = "DMPAPER_ENV_9"; break;
670 case DMPAPER_ENV_10: val = "DMPAPER_ENV_10"; break;
671 case DMPAPER_ENV_11: val = "DMPAPER_ENV_11"; break;
672 case DMPAPER_ENV_12: val = "DMPAPER_ENV_12"; break;
673 case DMPAPER_ENV_14: val = "DMPAPER_ENV_14"; break;
674 case DMPAPER_CSHEET: val = "DMPAPER_CSHEET"; break;
675 case DMPAPER_DSHEET: val = "DMPAPER_DSHEET"; break;
676 case DMPAPER_ESHEET: val = "DMPAPER_ESHEET"; break;
677 case DMPAPER_ENV_DL: val = "DMPAPER_ENV_DL"; break;
678 case DMPAPER_ENV_C5: val = "DMPAPER_ENV_C5"; break;
679 case DMPAPER_ENV_C3: val = "DMPAPER_ENV_C3"; break;
680 case DMPAPER_ENV_C4: val = "DMPAPER_ENV_C4"; break;
681 case DMPAPER_ENV_C6: val = "DMPAPER_ENV_C6"; break;
682 case DMPAPER_ENV_C65: val = "DMPAPER_ENV_C65"; break;
683 case DMPAPER_ENV_B4: val = "DMPAPER_ENV_B4"; break;
684 case DMPAPER_ENV_B5: val = "DMPAPER_ENV_B5"; break;
685 case DMPAPER_ENV_B6: val = "DMPAPER_ENV_B6"; break;
686 case DMPAPER_ENV_ITALY: val = "DMPAPER_ENV_ITALY"; break;
687 case DMPAPER_ENV_MONARCH: val = "DMPAPER_ENV_MONARCH"; break;
688 case DMPAPER_ENV_PERSONAL: val = "DMPAPER_ENV_PERSONAL"; break;
689 case DMPAPER_FANFOLD_US: val = "DMPAPER_FANFOLD_US"; break;
690 case DMPAPER_FANFOLD_STD_GERMAN: val = "DMPAPER_FANFOLD_STD_GERMAN"; break;
691 case DMPAPER_FANFOLD_LGL_GERMAN: val = "DMPAPER_FANFOLD_LGL_GERMAN"; break;
692 case DMPAPER_DBL_JAPANESE_POSTCARD: val = "DMPAPER_DBL_JAPANESE_POSTCARD"; break;
693 case DMPAPER_A6: val = "DMPAPER_A6"; break;
694 case DMPAPER_JENV_KAKU2: val = "DMPAPER_JENV_KAKU2"; break;
695 case DMPAPER_JENV_KAKU3: val = "DMPAPER_JENV_KAKU3"; break;
696 case DMPAPER_JENV_CHOU3: val = "DMPAPER_JENV_CHOU3"; break;
697 case DMPAPER_JENV_CHOU4: val = "DMPAPER_JENV_CHOU4"; break;
698 case DMPAPER_LETTER_ROTATED: val = "DMPAPER_LETTER_ROTATED"; break;
699 case DMPAPER_A3_ROTATED: val = "DMPAPER_A3_ROTATED"; break;
700 case DMPAPER_A4_ROTATED: val = "DMPAPER_A4_ROTATED"; break;
701 case DMPAPER_A5_ROTATED: val = "DMPAPER_A5_ROTATED"; break;
702 case DMPAPER_B4_JIS_ROTATED: val = "DMPAPER_B4_JIS_ROTATED"; break;
703 case DMPAPER_B5_JIS_ROTATED: val = "DMPAPER_B5_JIS_ROTATED"; break;
704 case DMPAPER_JAPANESE_POSTCARD_ROTATED: val = "DMPAPER_JAPANESE_POSTCARD_ROTATED"; break;
705 case DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED: val = "DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED"; break;
706 case DMPAPER_A6_ROTATED: val = "DMPAPER_A6_ROTATED"; break;
707 case DMPAPER_JENV_KAKU2_ROTATED: val = "DMPAPER_JENV_KAKU2_ROTATED"; break;
708 case DMPAPER_JENV_KAKU3_ROTATED: val = "DMPAPER_JENV_KAKU3_ROTATED"; break;
709 case DMPAPER_JENV_CHOU3_ROTATED: val = "DMPAPER_JENV_CHOU3_ROTATED"; break;
710 case DMPAPER_JENV_CHOU4_ROTATED: val = "DMPAPER_JENV_CHOU4_ROTATED"; break;
711 case DMPAPER_B6_JIS: val = "DMPAPER_B6_JIS"; break;
712 case DMPAPER_B6_JIS_ROTATED: val = "DMPAPER_B6_JIS_ROTATED"; break;
713 case DMPAPER_12X11: val = "DMPAPER_12X11"; break;
714 case DMPAPER_JENV_YOU4: val = "DMPAPER_JENV_YOU4"; break;
715 case DMPAPER_JENV_YOU4_ROTATED: val = "DMPAPER_JENV_YOU4_ROTATED"; break;
716 case DMPAPER_P16K: val = "DMPAPER_P16K"; break;
717 case DMPAPER_P32K: val = "DMPAPER_P32K"; break;
718 case DMPAPER_P32KBIG: val = "DMPAPER_P32KBIG"; break;
719 case DMPAPER_PENV_1: val = "DMPAPER_PENV_1"; break;
720 case DMPAPER_PENV_2: val = "DMPAPER_PENV_2"; break;
721 case DMPAPER_PENV_3: val = "DMPAPER_PENV_3"; break;
722 case DMPAPER_PENV_4: val = "DMPAPER_PENV_4"; break;
723 case DMPAPER_PENV_5: val = "DMPAPER_PENV_5"; break;
724 case DMPAPER_PENV_6: val = "DMPAPER_PENV_6"; break;
725 case DMPAPER_PENV_7: val = "DMPAPER_PENV_7"; break;
726 case DMPAPER_PENV_8: val = "DMPAPER_PENV_8"; break;
727 case DMPAPER_PENV_9: val = "DMPAPER_PENV_9"; break;
728 case DMPAPER_PENV_10: val = "DMPAPER_PENV_10"; break;
729 case DMPAPER_P16K_ROTATED: val = "DMPAPER_P16K_ROTATED"; break;
730 case DMPAPER_P32K_ROTATED: val = "DMPAPER_P32K_ROTATED"; break;
731 case DMPAPER_P32KBIG_ROTATED: val = "DMPAPER_P32KBIG_ROTATED"; break;
732 case DMPAPER_PENV_1_ROTATED: val = "DMPAPER_PENV_1_ROTATED"; break;
733 case DMPAPER_PENV_2_ROTATED: val = "DMPAPER_PENV_2_ROTATED"; break;
734 case DMPAPER_PENV_3_ROTATED: val = "DMPAPER_PENV_3_ROTATED"; break;
735 case DMPAPER_PENV_4_ROTATED: val = "DMPAPER_PENV_4_ROTATED"; break;
736 case DMPAPER_PENV_5_ROTATED: val = "DMPAPER_PENV_5_ROTATED"; break;
737 case DMPAPER_PENV_6_ROTATED: val = "DMPAPER_PENV_6_ROTATED"; break;
738 case DMPAPER_PENV_7_ROTATED: val = "DMPAPER_PENV_7_ROTATED"; break;
739 case DMPAPER_PENV_8_ROTATED: val = "DMPAPER_PENV_8_ROTATED"; break;
740 case DMPAPER_PENV_9_ROTATED: val = "DMPAPER_PENV_9_ROTATED"; break;
741 case DMPAPER_PENV_10_ROTATED: val = "DMPAPER_PENV_10_ROTATED"; break;
743 ndr_print_enum(ndr, name, "ENUM", val, r);
746 static enum ndr_err_code ndr_push_spoolss_DeviceModeDefaultSource(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeDefaultSource r)
748 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
749 return NDR_ERR_SUCCESS;
752 static enum ndr_err_code ndr_pull_spoolss_DeviceModeDefaultSource(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeDefaultSource *r)
755 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
757 return NDR_ERR_SUCCESS;
760 _PUBLIC_ void ndr_print_spoolss_DeviceModeDefaultSource(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeDefaultSource r)
762 const char *val = NULL;
765 case DMBIN_UPPER: val = "DMBIN_UPPER"; break;
766 case DMBIN_LOWER: val = "DMBIN_LOWER"; break;
767 case DMBIN_MIDDLE: val = "DMBIN_MIDDLE"; break;
768 case DMBIN_MANUAL: val = "DMBIN_MANUAL"; break;
769 case DMBIN_ENVELOPE: val = "DMBIN_ENVELOPE"; break;
770 case DMBIN_ENVMANUAL: val = "DMBIN_ENVMANUAL"; break;
771 case DMBIN_AUTO: val = "DMBIN_AUTO"; break;
772 case DMBIN_TRACTOR: val = "DMBIN_TRACTOR"; break;
773 case DMBIN_SMALLFMT: val = "DMBIN_SMALLFMT"; break;
774 case DMBIN_LARGEFMT: val = "DMBIN_LARGEFMT"; break;
775 case DMBIN_LARGECAPACITY: val = "DMBIN_LARGECAPACITY"; break;
776 case DMBIN_CASSETTE: val = "DMBIN_CASSETTE"; break;
777 case DMBIN_FORMSOURCE: val = "DMBIN_FORMSOURCE"; break;
779 ndr_print_enum(ndr, name, "ENUM", val, r);
782 static enum ndr_err_code ndr_push_spoolss_DeviceModePrintQuality(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModePrintQuality r)
784 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
785 return NDR_ERR_SUCCESS;
788 static enum ndr_err_code ndr_pull_spoolss_DeviceModePrintQuality(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModePrintQuality *r)
791 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
793 return NDR_ERR_SUCCESS;
796 _PUBLIC_ void ndr_print_spoolss_DeviceModePrintQuality(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModePrintQuality r)
798 const char *val = NULL;
801 case DMRES_HIGH: val = "DMRES_HIGH"; break;
802 case DMRES_MEDIUM: val = "DMRES_MEDIUM"; break;
803 case DMRES_LOW: val = "DMRES_LOW"; break;
804 case DMRES_DRAFT: val = "DMRES_DRAFT"; break;
806 ndr_print_enum(ndr, name, "ENUM", val, r);
809 static enum ndr_err_code ndr_push_spoolss_DeviceModeColor(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeColor r)
811 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
812 return NDR_ERR_SUCCESS;
815 static enum ndr_err_code ndr_pull_spoolss_DeviceModeColor(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeColor *r)
818 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
820 return NDR_ERR_SUCCESS;
823 _PUBLIC_ void ndr_print_spoolss_DeviceModeColor(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeColor r)
825 const char *val = NULL;
828 case DMRES_MONOCHROME: val = "DMRES_MONOCHROME"; break;
829 case DMRES_COLOR: val = "DMRES_COLOR"; break;
831 ndr_print_enum(ndr, name, "ENUM", val, r);
834 static enum ndr_err_code ndr_push_spoolss_DeviceModeDuplex(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeDuplex r)
836 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
837 return NDR_ERR_SUCCESS;
840 static enum ndr_err_code ndr_pull_spoolss_DeviceModeDuplex(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeDuplex *r)
843 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
845 return NDR_ERR_SUCCESS;
848 _PUBLIC_ void ndr_print_spoolss_DeviceModeDuplex(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeDuplex r)
850 const char *val = NULL;
853 case DMDUP_SIMPLEX: val = "DMDUP_SIMPLEX"; break;
854 case DMDUP_VERTICAL: val = "DMDUP_VERTICAL"; break;
855 case DMDUP_HORIZONTAL: val = "DMDUP_HORIZONTAL"; break;
857 ndr_print_enum(ndr, name, "ENUM", val, r);
860 static enum ndr_err_code ndr_push_spoolss_DeviceModeTTOption(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeTTOption r)
862 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
863 return NDR_ERR_SUCCESS;
866 static enum ndr_err_code ndr_pull_spoolss_DeviceModeTTOption(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeTTOption *r)
869 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
871 return NDR_ERR_SUCCESS;
874 _PUBLIC_ void ndr_print_spoolss_DeviceModeTTOption(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeTTOption r)
876 const char *val = NULL;
879 case DMTT_BITMAP: val = "DMTT_BITMAP"; break;
880 case DMTT_DOWNLOAD: val = "DMTT_DOWNLOAD"; break;
881 case DMTT_SUBDEV: val = "DMTT_SUBDEV"; break;
882 case DMTT_DOWNLOAD_OUTLINE: val = "DMTT_DOWNLOAD_OUTLINE"; break;
884 ndr_print_enum(ndr, name, "ENUM", val, r);
887 static enum ndr_err_code ndr_push_spoolss_DeviceModeCollate(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeCollate r)
889 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
890 return NDR_ERR_SUCCESS;
893 static enum ndr_err_code ndr_pull_spoolss_DeviceModeCollate(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeCollate *r)
896 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
898 return NDR_ERR_SUCCESS;
901 _PUBLIC_ void ndr_print_spoolss_DeviceModeCollate(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeCollate r)
903 const char *val = NULL;
906 case DMCOLLATE_FALSE: val = "DMCOLLATE_FALSE"; break;
907 case DMCOLLATE_TRUE: val = "DMCOLLATE_TRUE"; break;
909 ndr_print_enum(ndr, name, "ENUM", val, r);
912 static enum ndr_err_code ndr_push_spoolss_DeviceModeNUp(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeNUp r)
914 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
915 return NDR_ERR_SUCCESS;
918 static enum ndr_err_code ndr_pull_spoolss_DeviceModeNUp(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeNUp *r)
921 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
923 return NDR_ERR_SUCCESS;
926 _PUBLIC_ void ndr_print_spoolss_DeviceModeNUp(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeNUp r)
928 const char *val = NULL;
931 case DMNUP_SYSTEM: val = "DMNUP_SYSTEM"; break;
932 case DMNUP_ONEUP: val = "DMNUP_ONEUP"; break;
934 ndr_print_enum(ndr, name, "ENUM", val, r);
937 static enum ndr_err_code ndr_push_spoolss_DeviceModeICMMethod(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeICMMethod r)
939 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
940 return NDR_ERR_SUCCESS;
943 static enum ndr_err_code ndr_pull_spoolss_DeviceModeICMMethod(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeICMMethod *r)
946 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
948 return NDR_ERR_SUCCESS;
951 _PUBLIC_ void ndr_print_spoolss_DeviceModeICMMethod(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeICMMethod r)
953 const char *val = NULL;
956 case DMICMMETHOD_NONE: val = "DMICMMETHOD_NONE"; break;
957 case DMICMMETHOD_SYSTEM: val = "DMICMMETHOD_SYSTEM"; break;
958 case DMICMMETHOD_DRIVER: val = "DMICMMETHOD_DRIVER"; break;
959 case DMICMMETHOD_DEVICE: val = "DMICMMETHOD_DEVICE"; break;
961 ndr_print_enum(ndr, name, "ENUM", val, r);
964 static enum ndr_err_code ndr_push_spoolss_DeviceModeICMIntent(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeICMIntent r)
966 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
967 return NDR_ERR_SUCCESS;
970 static enum ndr_err_code ndr_pull_spoolss_DeviceModeICMIntent(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeICMIntent *r)
973 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
975 return NDR_ERR_SUCCESS;
978 _PUBLIC_ void ndr_print_spoolss_DeviceModeICMIntent(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeICMIntent r)
980 const char *val = NULL;
983 case DMICM_SATURATE: val = "DMICM_SATURATE"; break;
984 case DMICM_CONTRAST: val = "DMICM_CONTRAST"; break;
985 case DMICM_COLORIMETRIC: val = "DMICM_COLORIMETRIC"; break;
986 case DMICM_ABS_COLORIMETRIC: val = "DMICM_ABS_COLORIMETRIC"; break;
988 ndr_print_enum(ndr, name, "ENUM", val, r);
991 static enum ndr_err_code ndr_push_spoolss_DeviceModeMediaType(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeMediaType r)
993 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
994 return NDR_ERR_SUCCESS;
997 static enum ndr_err_code ndr_pull_spoolss_DeviceModeMediaType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeMediaType *r)
1000 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
1002 return NDR_ERR_SUCCESS;
1005 _PUBLIC_ void ndr_print_spoolss_DeviceModeMediaType(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeMediaType r)
1007 const char *val = NULL;
1010 case DMMEDIA_STANDARD: val = "DMMEDIA_STANDARD"; break;
1011 case DMMEDIA_TRANSPARENCY: val = "DMMEDIA_TRANSPARENCY"; break;
1012 case DMMEDIA_GLOSSY: val = "DMMEDIA_GLOSSY"; break;
1014 ndr_print_enum(ndr, name, "ENUM", val, r);
1017 static enum ndr_err_code ndr_push_spoolss_DeviceModeDitherType(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeDitherType r)
1019 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
1020 return NDR_ERR_SUCCESS;
1023 static enum ndr_err_code ndr_pull_spoolss_DeviceModeDitherType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeDitherType *r)
1026 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
1028 return NDR_ERR_SUCCESS;
1031 _PUBLIC_ void ndr_print_spoolss_DeviceModeDitherType(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeDitherType r)
1033 const char *val = NULL;
1036 case DMDITHER_NONE: val = "DMDITHER_NONE"; break;
1037 case DMDITHER_COARSE: val = "DMDITHER_COARSE"; break;
1038 case DMDITHER_FINE: val = "DMDITHER_FINE"; break;
1039 case DMDITHER_LINEART: val = "DMDITHER_LINEART"; break;
1040 case DMDITHER_ERRORDIFFUSION: val = "DMDITHER_ERRORDIFFUSION"; break;
1041 case DMDITHER_RESERVED6: val = "DMDITHER_RESERVED6"; break;
1042 case DMDITHER_RESERVED7: val = "DMDITHER_RESERVED7"; break;
1043 case DMDITHER_RESERVED8: val = "DMDITHER_RESERVED8"; break;
1044 case DMDITHER_RESERVED9: val = "DMDITHER_RESERVED9"; break;
1045 case DMDITHER_GRAYSCALE: val = "DMDITHER_GRAYSCALE"; break;
1047 ndr_print_enum(ndr, name, "ENUM", val, r);
1050 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DeviceMode(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DeviceMode *r)
1052 if (ndr_flags & NDR_SCALARS) {
1053 NDR_CHECK(ndr_push_align(ndr, 4));
1054 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->devicename, MAXDEVICENAME, sizeof(uint16_t), CH_UTF16));
1055 NDR_CHECK(ndr_push_spoolss_DeviceModeSpecVersion(ndr, NDR_SCALARS, r->specversion));
1056 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->driverversion));
1057 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->size));
1058 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->driverextra_data.length));
1059 NDR_CHECK(ndr_push_spoolss_DeviceModeFields(ndr, NDR_SCALARS, r->fields));
1060 NDR_CHECK(ndr_push_spoolss_DeviceModeOrientation(ndr, NDR_SCALARS, r->orientation));
1061 NDR_CHECK(ndr_push_spoolss_DeviceModePaperSize(ndr, NDR_SCALARS, r->papersize));
1062 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->paperlength));
1063 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->paperwidth));
1064 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->scale));
1065 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->copies));
1066 NDR_CHECK(ndr_push_spoolss_DeviceModeDefaultSource(ndr, NDR_SCALARS, r->defaultsource));
1067 NDR_CHECK(ndr_push_spoolss_DeviceModePrintQuality(ndr, NDR_SCALARS, r->printquality));
1068 NDR_CHECK(ndr_push_spoolss_DeviceModeColor(ndr, NDR_SCALARS, r->color));
1069 NDR_CHECK(ndr_push_spoolss_DeviceModeDuplex(ndr, NDR_SCALARS, r->duplex));
1070 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->yresolution));
1071 NDR_CHECK(ndr_push_spoolss_DeviceModeTTOption(ndr, NDR_SCALARS, r->ttoption));
1072 NDR_CHECK(ndr_push_spoolss_DeviceModeCollate(ndr, NDR_SCALARS, r->collate));
1073 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->formname, MAXDEVICENAME, sizeof(uint16_t), CH_UTF16));
1074 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logpixels));
1075 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bitsperpel));
1076 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pelswidth));
1077 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pelsheight));
1078 NDR_CHECK(ndr_push_spoolss_DeviceModeNUp(ndr, NDR_SCALARS, r->displayflags));
1079 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->displayfrequency));
1080 NDR_CHECK(ndr_push_spoolss_DeviceModeICMMethod(ndr, NDR_SCALARS, r->icmmethod));
1081 NDR_CHECK(ndr_push_spoolss_DeviceModeICMIntent(ndr, NDR_SCALARS, r->icmintent));
1082 NDR_CHECK(ndr_push_spoolss_DeviceModeMediaType(ndr, NDR_SCALARS, r->mediatype));
1083 NDR_CHECK(ndr_push_spoolss_DeviceModeDitherType(ndr, NDR_SCALARS, r->dithertype));
1084 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved1));
1085 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved2));
1086 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->panningwidth));
1087 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->panningheight));
1089 uint32_t _flags_save_DATA_BLOB = ndr->flags;
1090 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
1092 struct ndr_push *_ndr_driverextra_data;
1093 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_driverextra_data, 0, r->driverextra_data.length));
1094 NDR_CHECK(ndr_push_DATA_BLOB(_ndr_driverextra_data, NDR_SCALARS, r->driverextra_data));
1095 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_driverextra_data, 0, r->driverextra_data.length));
1097 ndr->flags = _flags_save_DATA_BLOB;
1099 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
1101 if (ndr_flags & NDR_BUFFERS) {
1103 return NDR_ERR_SUCCESS;
1106 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DeviceMode(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DeviceMode *r)
1108 if (ndr_flags & NDR_SCALARS) {
1109 NDR_CHECK(ndr_pull_align(ndr, 4));
1110 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->devicename, MAXDEVICENAME, sizeof(uint16_t), CH_UTF16));
1111 NDR_CHECK(ndr_pull_spoolss_DeviceModeSpecVersion(ndr, NDR_SCALARS, &r->specversion));
1112 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->driverversion));
1113 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
1114 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->__driverextra_length));
1115 NDR_CHECK(ndr_pull_spoolss_DeviceModeFields(ndr, NDR_SCALARS, &r->fields));
1116 NDR_CHECK(ndr_pull_spoolss_DeviceModeOrientation(ndr, NDR_SCALARS, &r->orientation));
1117 NDR_CHECK(ndr_pull_spoolss_DeviceModePaperSize(ndr, NDR_SCALARS, &r->papersize));
1118 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->paperlength));
1119 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->paperwidth));
1120 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->scale));
1121 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->copies));
1122 NDR_CHECK(ndr_pull_spoolss_DeviceModeDefaultSource(ndr, NDR_SCALARS, &r->defaultsource));
1123 NDR_CHECK(ndr_pull_spoolss_DeviceModePrintQuality(ndr, NDR_SCALARS, &r->printquality));
1124 NDR_CHECK(ndr_pull_spoolss_DeviceModeColor(ndr, NDR_SCALARS, &r->color));
1125 NDR_CHECK(ndr_pull_spoolss_DeviceModeDuplex(ndr, NDR_SCALARS, &r->duplex));
1126 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->yresolution));
1127 NDR_CHECK(ndr_pull_spoolss_DeviceModeTTOption(ndr, NDR_SCALARS, &r->ttoption));
1128 NDR_CHECK(ndr_pull_spoolss_DeviceModeCollate(ndr, NDR_SCALARS, &r->collate));
1129 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->formname, MAXDEVICENAME, sizeof(uint16_t), CH_UTF16));
1130 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logpixels));
1131 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bitsperpel));
1132 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pelswidth));
1133 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pelsheight));
1134 NDR_CHECK(ndr_pull_spoolss_DeviceModeNUp(ndr, NDR_SCALARS, &r->displayflags));
1135 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->displayfrequency));
1136 NDR_CHECK(ndr_pull_spoolss_DeviceModeICMMethod(ndr, NDR_SCALARS, &r->icmmethod));
1137 NDR_CHECK(ndr_pull_spoolss_DeviceModeICMIntent(ndr, NDR_SCALARS, &r->icmintent));
1138 NDR_CHECK(ndr_pull_spoolss_DeviceModeMediaType(ndr, NDR_SCALARS, &r->mediatype));
1139 NDR_CHECK(ndr_pull_spoolss_DeviceModeDitherType(ndr, NDR_SCALARS, &r->dithertype));
1140 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved1));
1141 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
1142 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->panningwidth));
1143 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->panningheight));
1145 uint32_t _flags_save_DATA_BLOB = ndr->flags;
1146 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
1148 struct ndr_pull *_ndr_driverextra_data;
1149 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_driverextra_data, 0, r->__driverextra_length));
1150 NDR_CHECK(ndr_pull_DATA_BLOB(_ndr_driverextra_data, NDR_SCALARS, &r->driverextra_data));
1151 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_driverextra_data, 0, r->__driverextra_length));
1153 ndr->flags = _flags_save_DATA_BLOB;
1155 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
1157 if (ndr_flags & NDR_BUFFERS) {
1159 return NDR_ERR_SUCCESS;
1162 _PUBLIC_ void ndr_print_spoolss_DeviceMode(struct ndr_print *ndr, const char *name, const struct spoolss_DeviceMode *r)
1164 ndr_print_struct(ndr, name, "spoolss_DeviceMode");
1166 ndr_print_string(ndr, "devicename", r->devicename);
1167 ndr_print_spoolss_DeviceModeSpecVersion(ndr, "specversion", r->specversion);
1168 ndr_print_uint16(ndr, "driverversion", r->driverversion);
1169 ndr_print_uint16(ndr, "size", r->size);
1170 ndr_print_uint16(ndr, "__driverextra_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->driverextra_data.length:r->__driverextra_length);
1171 ndr_print_spoolss_DeviceModeFields(ndr, "fields", r->fields);
1172 ndr_print_spoolss_DeviceModeOrientation(ndr, "orientation", r->orientation);
1173 ndr_print_spoolss_DeviceModePaperSize(ndr, "papersize", r->papersize);
1174 ndr_print_uint16(ndr, "paperlength", r->paperlength);
1175 ndr_print_uint16(ndr, "paperwidth", r->paperwidth);
1176 ndr_print_uint16(ndr, "scale", r->scale);
1177 ndr_print_uint16(ndr, "copies", r->copies);
1178 ndr_print_spoolss_DeviceModeDefaultSource(ndr, "defaultsource", r->defaultsource);
1179 ndr_print_spoolss_DeviceModePrintQuality(ndr, "printquality", r->printquality);
1180 ndr_print_spoolss_DeviceModeColor(ndr, "color", r->color);
1181 ndr_print_spoolss_DeviceModeDuplex(ndr, "duplex", r->duplex);
1182 ndr_print_uint16(ndr, "yresolution", r->yresolution);
1183 ndr_print_spoolss_DeviceModeTTOption(ndr, "ttoption", r->ttoption);
1184 ndr_print_spoolss_DeviceModeCollate(ndr, "collate", r->collate);
1185 ndr_print_string(ndr, "formname", r->formname);
1186 ndr_print_uint16(ndr, "logpixels", r->logpixels);
1187 ndr_print_uint32(ndr, "bitsperpel", r->bitsperpel);
1188 ndr_print_uint32(ndr, "pelswidth", r->pelswidth);
1189 ndr_print_uint32(ndr, "pelsheight", r->pelsheight);
1190 ndr_print_spoolss_DeviceModeNUp(ndr, "displayflags", r->displayflags);
1191 ndr_print_uint32(ndr, "displayfrequency", r->displayfrequency);
1192 ndr_print_spoolss_DeviceModeICMMethod(ndr, "icmmethod", r->icmmethod);
1193 ndr_print_spoolss_DeviceModeICMIntent(ndr, "icmintent", r->icmintent);
1194 ndr_print_spoolss_DeviceModeMediaType(ndr, "mediatype", r->mediatype);
1195 ndr_print_spoolss_DeviceModeDitherType(ndr, "dithertype", r->dithertype);
1196 ndr_print_uint32(ndr, "reserved1", r->reserved1);
1197 ndr_print_uint32(ndr, "reserved2", r->reserved2);
1198 ndr_print_uint32(ndr, "panningwidth", r->panningwidth);
1199 ndr_print_uint32(ndr, "panningheight", r->panningheight);
1200 ndr_print_DATA_BLOB(ndr, "driverextra_data", r->driverextra_data);
1204 _PUBLIC_ size_t ndr_size_spoolss_DeviceMode(const struct spoolss_DeviceMode *r, struct smb_iconv_convenience *ic, int flags)
1206 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DeviceMode, ic);
1209 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
1211 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
1212 return NDR_ERR_SUCCESS;
1215 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
1218 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
1220 return NDR_ERR_SUCCESS;
1223 _PUBLIC_ void ndr_print_spoolss_EnumPrinterFlags(struct ndr_print *ndr, const char *name, uint32_t r)
1225 ndr_print_uint32(ndr, name, r);
1227 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_DEFAULT", PRINTER_ENUM_DEFAULT, r);
1228 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_LOCAL", PRINTER_ENUM_LOCAL, r);
1229 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_CONNECTIONS", PRINTER_ENUM_CONNECTIONS, r);
1230 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_FAVORITE", PRINTER_ENUM_FAVORITE, r);
1231 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_NAME", PRINTER_ENUM_NAME, r);
1232 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_REMOTE", PRINTER_ENUM_REMOTE, r);
1233 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_SHARED", PRINTER_ENUM_SHARED, r);
1234 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_NETWORK", PRINTER_ENUM_NETWORK, r);
1235 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_EXPAND", PRINTER_ENUM_EXPAND, r);
1236 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_CONTAINER", PRINTER_ENUM_CONTAINER, r);
1237 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON1", PRINTER_ENUM_ICON1, r);
1238 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON2", PRINTER_ENUM_ICON2, r);
1239 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON3", PRINTER_ENUM_ICON3, r);
1240 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON4", PRINTER_ENUM_ICON4, r);
1241 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON5", PRINTER_ENUM_ICON5, r);
1242 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON6", PRINTER_ENUM_ICON6, r);
1243 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON7", PRINTER_ENUM_ICON7, r);
1244 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON8", PRINTER_ENUM_ICON8, r);
1245 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_HIDE", PRINTER_ENUM_HIDE, r);
1249 static enum ndr_err_code ndr_push_spoolss_PrinterAttributes(struct ndr_push *ndr, int ndr_flags, uint32_t r)
1251 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
1252 return NDR_ERR_SUCCESS;
1255 static enum ndr_err_code ndr_pull_spoolss_PrinterAttributes(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
1258 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
1260 return NDR_ERR_SUCCESS;
1263 _PUBLIC_ void ndr_print_spoolss_PrinterAttributes(struct ndr_print *ndr, const char *name, uint32_t r)
1265 ndr_print_uint32(ndr, name, r);
1267 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_QUEUED", PRINTER_ATTRIBUTE_QUEUED, r);
1268 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DIRECT", PRINTER_ATTRIBUTE_DIRECT, r);
1269 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DEFAULT", PRINTER_ATTRIBUTE_DEFAULT, r);
1270 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_SHARED", PRINTER_ATTRIBUTE_SHARED, r);
1271 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_NETWORK", PRINTER_ATTRIBUTE_NETWORK, r);
1272 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_HIDDEN", PRINTER_ATTRIBUTE_HIDDEN, r);
1273 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_LOCAL", PRINTER_ATTRIBUTE_LOCAL, r);
1274 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_ENABLE_DEVQ", PRINTER_ATTRIBUTE_ENABLE_DEVQ, r);
1275 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS", PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS, r);
1276 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST", PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST, r);
1277 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_WORK_OFFLINE", PRINTER_ATTRIBUTE_WORK_OFFLINE, r);
1278 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_ENABLE_BIDI", PRINTER_ATTRIBUTE_ENABLE_BIDI, r);
1279 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_RAW_ONLY", PRINTER_ATTRIBUTE_RAW_ONLY, r);
1280 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_PUBLISHED", PRINTER_ATTRIBUTE_PUBLISHED, r);
1281 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_FAX", PRINTER_ATTRIBUTE_FAX, r);
1282 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_TS", PRINTER_ATTRIBUTE_TS, r);
1286 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo1 *r)
1288 if (ndr_flags & NDR_SCALARS) {
1289 NDR_CHECK(ndr_push_align(ndr, 5));
1290 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->flags));
1292 uint32_t _flags_save_string = ndr->flags;
1293 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1294 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->description));
1295 ndr->flags = _flags_save_string;
1298 uint32_t _flags_save_string = ndr->flags;
1299 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1300 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->name));
1301 ndr->flags = _flags_save_string;
1304 uint32_t _flags_save_string = ndr->flags;
1305 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1306 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->comment));
1307 ndr->flags = _flags_save_string;
1309 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
1311 if (ndr_flags & NDR_BUFFERS) {
1313 uint32_t _flags_save_string = ndr->flags;
1314 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1315 if (r->description) {
1316 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->description));
1317 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->description));
1319 ndr->flags = _flags_save_string;
1322 uint32_t _flags_save_string = ndr->flags;
1323 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1325 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->name));
1326 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->name));
1328 ndr->flags = _flags_save_string;
1331 uint32_t _flags_save_string = ndr->flags;
1332 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1334 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->comment));
1335 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->comment));
1337 ndr->flags = _flags_save_string;
1340 return NDR_ERR_SUCCESS;
1343 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo1 *r)
1345 uint32_t _ptr_description;
1346 TALLOC_CTX *_mem_save_description_0;
1348 TALLOC_CTX *_mem_save_name_0;
1349 uint32_t _ptr_comment;
1350 TALLOC_CTX *_mem_save_comment_0;
1351 if (ndr_flags & NDR_SCALARS) {
1352 NDR_CHECK(ndr_pull_align(ndr, 5));
1353 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->flags));
1355 uint32_t _flags_save_string = ndr->flags;
1356 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1357 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
1358 if (_ptr_description) {
1359 NDR_PULL_ALLOC(ndr, r->description);
1360 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->description, _ptr_description));
1362 r->description = NULL;
1364 ndr->flags = _flags_save_string;
1367 uint32_t _flags_save_string = ndr->flags;
1368 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1369 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
1371 NDR_PULL_ALLOC(ndr, r->name);
1372 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->name, _ptr_name));
1376 ndr->flags = _flags_save_string;
1379 uint32_t _flags_save_string = ndr->flags;
1380 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1381 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
1383 NDR_PULL_ALLOC(ndr, r->comment);
1384 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->comment, _ptr_comment));
1388 ndr->flags = _flags_save_string;
1390 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
1392 if (ndr_flags & NDR_BUFFERS) {
1394 uint32_t _flags_save_string = ndr->flags;
1395 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1396 if (r->description) {
1397 uint32_t _relative_save_offset;
1398 _relative_save_offset = ndr->offset;
1399 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->description));
1400 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
1401 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
1402 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->description));
1403 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
1404 if (ndr->offset > ndr->relative_highest_offset) {
1405 ndr->relative_highest_offset = ndr->offset;
1407 ndr->offset = _relative_save_offset;
1409 ndr->flags = _flags_save_string;
1412 uint32_t _flags_save_string = ndr->flags;
1413 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1415 uint32_t _relative_save_offset;
1416 _relative_save_offset = ndr->offset;
1417 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->name));
1418 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
1419 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
1420 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->name));
1421 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
1422 if (ndr->offset > ndr->relative_highest_offset) {
1423 ndr->relative_highest_offset = ndr->offset;
1425 ndr->offset = _relative_save_offset;
1427 ndr->flags = _flags_save_string;
1430 uint32_t _flags_save_string = ndr->flags;
1431 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1433 uint32_t _relative_save_offset;
1434 _relative_save_offset = ndr->offset;
1435 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->comment));
1436 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
1437 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
1438 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->comment));
1439 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
1440 if (ndr->offset > ndr->relative_highest_offset) {
1441 ndr->relative_highest_offset = ndr->offset;
1443 ndr->offset = _relative_save_offset;
1445 ndr->flags = _flags_save_string;
1448 return NDR_ERR_SUCCESS;
1451 _PUBLIC_ void ndr_print_spoolss_PrinterInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo1 *r)
1453 ndr_print_struct(ndr, name, "spoolss_PrinterInfo1");
1455 ndr_print_spoolss_PrinterAttributes(ndr, "flags", r->flags);
1456 ndr_print_ptr(ndr, "description", r->description);
1458 if (r->description) {
1459 ndr_print_string(ndr, "description", r->description);
1462 ndr_print_ptr(ndr, "name", r->name);
1465 ndr_print_string(ndr, "name", r->name);
1468 ndr_print_ptr(ndr, "comment", r->comment);
1471 ndr_print_string(ndr, "comment", r->comment);
1477 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo1(const struct spoolss_PrinterInfo1 *r, struct smb_iconv_convenience *ic, int flags)
1479 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo1, ic);
1482 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo2 *r)
1484 if (ndr_flags & NDR_SCALARS) {
1485 NDR_CHECK(ndr_push_align(ndr, 5));
1487 uint32_t _flags_save_string = ndr->flags;
1488 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1489 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->servername));
1490 ndr->flags = _flags_save_string;
1493 uint32_t _flags_save_string = ndr->flags;
1494 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1495 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
1496 ndr->flags = _flags_save_string;
1499 uint32_t _flags_save_string = ndr->flags;
1500 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1501 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->sharename));
1502 ndr->flags = _flags_save_string;
1505 uint32_t _flags_save_string = ndr->flags;
1506 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1507 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->portname));
1508 ndr->flags = _flags_save_string;
1511 uint32_t _flags_save_string = ndr->flags;
1512 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1513 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->drivername));
1514 ndr->flags = _flags_save_string;
1517 uint32_t _flags_save_string = ndr->flags;
1518 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1519 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->comment));
1520 ndr->flags = _flags_save_string;
1523 uint32_t _flags_save_string = ndr->flags;
1524 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1525 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->location));
1526 ndr->flags = _flags_save_string;
1528 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
1530 uint32_t _flags_save_string = ndr->flags;
1531 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1532 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->sepfile));
1533 ndr->flags = _flags_save_string;
1536 uint32_t _flags_save_string = ndr->flags;
1537 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1538 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printprocessor));
1539 ndr->flags = _flags_save_string;
1542 uint32_t _flags_save_string = ndr->flags;
1543 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1544 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->datatype));
1545 ndr->flags = _flags_save_string;
1548 uint32_t _flags_save_string = ndr->flags;
1549 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1550 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->parameters));
1551 ndr->flags = _flags_save_string;
1553 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
1554 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
1555 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
1556 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->defaultpriority));
1557 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->starttime));
1558 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->untiltime));
1559 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
1560 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
1561 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->averageppm));
1562 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
1564 if (ndr_flags & NDR_BUFFERS) {
1566 uint32_t _flags_save_string = ndr->flags;
1567 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1568 if (r->servername) {
1569 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->servername));
1570 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->servername));
1572 ndr->flags = _flags_save_string;
1575 uint32_t _flags_save_string = ndr->flags;
1576 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1577 if (r->printername) {
1578 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printername));
1579 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
1581 ndr->flags = _flags_save_string;
1584 uint32_t _flags_save_string = ndr->flags;
1585 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1587 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->sharename));
1588 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->sharename));
1590 ndr->flags = _flags_save_string;
1593 uint32_t _flags_save_string = ndr->flags;
1594 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1596 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->portname));
1597 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->portname));
1599 ndr->flags = _flags_save_string;
1602 uint32_t _flags_save_string = ndr->flags;
1603 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1604 if (r->drivername) {
1605 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->drivername));
1606 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->drivername));
1608 ndr->flags = _flags_save_string;
1611 uint32_t _flags_save_string = ndr->flags;
1612 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1614 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->comment));
1615 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->comment));
1617 ndr->flags = _flags_save_string;
1620 uint32_t _flags_save_string = ndr->flags;
1621 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1623 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->location));
1624 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->location));
1626 ndr->flags = _flags_save_string;
1629 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->devmode));
1631 struct ndr_push *_ndr_devmode;
1632 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
1633 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
1634 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
1638 uint32_t _flags_save_string = ndr->flags;
1639 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1641 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->sepfile));
1642 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->sepfile));
1644 ndr->flags = _flags_save_string;
1647 uint32_t _flags_save_string = ndr->flags;
1648 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1649 if (r->printprocessor) {
1650 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printprocessor));
1651 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printprocessor));
1653 ndr->flags = _flags_save_string;
1656 uint32_t _flags_save_string = ndr->flags;
1657 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1659 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->datatype));
1660 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->datatype));
1662 ndr->flags = _flags_save_string;
1665 uint32_t _flags_save_string = ndr->flags;
1666 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1667 if (r->parameters) {
1668 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->parameters));
1669 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->parameters));
1671 ndr->flags = _flags_save_string;
1674 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->secdesc));
1676 struct ndr_push *_ndr_secdesc;
1677 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
1678 NDR_CHECK(ndr_push_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
1679 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
1683 return NDR_ERR_SUCCESS;
1686 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo2 *r)
1688 uint32_t _ptr_servername;
1689 TALLOC_CTX *_mem_save_servername_0;
1690 uint32_t _ptr_printername;
1691 TALLOC_CTX *_mem_save_printername_0;
1692 uint32_t _ptr_sharename;
1693 TALLOC_CTX *_mem_save_sharename_0;
1694 uint32_t _ptr_portname;
1695 TALLOC_CTX *_mem_save_portname_0;
1696 uint32_t _ptr_drivername;
1697 TALLOC_CTX *_mem_save_drivername_0;
1698 uint32_t _ptr_comment;
1699 TALLOC_CTX *_mem_save_comment_0;
1700 uint32_t _ptr_location;
1701 TALLOC_CTX *_mem_save_location_0;
1702 uint32_t _ptr_devmode;
1703 TALLOC_CTX *_mem_save_devmode_0;
1704 uint32_t _ptr_sepfile;
1705 TALLOC_CTX *_mem_save_sepfile_0;
1706 uint32_t _ptr_printprocessor;
1707 TALLOC_CTX *_mem_save_printprocessor_0;
1708 uint32_t _ptr_datatype;
1709 TALLOC_CTX *_mem_save_datatype_0;
1710 uint32_t _ptr_parameters;
1711 TALLOC_CTX *_mem_save_parameters_0;
1712 uint32_t _ptr_secdesc;
1713 TALLOC_CTX *_mem_save_secdesc_0;
1714 if (ndr_flags & NDR_SCALARS) {
1715 NDR_CHECK(ndr_pull_align(ndr, 5));
1717 uint32_t _flags_save_string = ndr->flags;
1718 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1719 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
1720 if (_ptr_servername) {
1721 NDR_PULL_ALLOC(ndr, r->servername);
1722 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
1724 r->servername = NULL;
1726 ndr->flags = _flags_save_string;
1729 uint32_t _flags_save_string = ndr->flags;
1730 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1731 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
1732 if (_ptr_printername) {
1733 NDR_PULL_ALLOC(ndr, r->printername);
1734 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
1736 r->printername = NULL;
1738 ndr->flags = _flags_save_string;
1741 uint32_t _flags_save_string = ndr->flags;
1742 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1743 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sharename));
1744 if (_ptr_sharename) {
1745 NDR_PULL_ALLOC(ndr, r->sharename);
1746 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->sharename, _ptr_sharename));
1748 r->sharename = NULL;
1750 ndr->flags = _flags_save_string;
1753 uint32_t _flags_save_string = ndr->flags;
1754 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1755 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
1756 if (_ptr_portname) {
1757 NDR_PULL_ALLOC(ndr, r->portname);
1758 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->portname, _ptr_portname));
1762 ndr->flags = _flags_save_string;
1765 uint32_t _flags_save_string = ndr->flags;
1766 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1767 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_drivername));
1768 if (_ptr_drivername) {
1769 NDR_PULL_ALLOC(ndr, r->drivername);
1770 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->drivername, _ptr_drivername));
1772 r->drivername = NULL;
1774 ndr->flags = _flags_save_string;
1777 uint32_t _flags_save_string = ndr->flags;
1778 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1779 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
1781 NDR_PULL_ALLOC(ndr, r->comment);
1782 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->comment, _ptr_comment));
1786 ndr->flags = _flags_save_string;
1789 uint32_t _flags_save_string = ndr->flags;
1790 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1791 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_location));
1792 if (_ptr_location) {
1793 NDR_PULL_ALLOC(ndr, r->location);
1794 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->location, _ptr_location));
1798 ndr->flags = _flags_save_string;
1800 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
1802 NDR_PULL_ALLOC(ndr, r->devmode);
1803 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
1808 uint32_t _flags_save_string = ndr->flags;
1809 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1810 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sepfile));
1812 NDR_PULL_ALLOC(ndr, r->sepfile);
1813 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->sepfile, _ptr_sepfile));
1817 ndr->flags = _flags_save_string;
1820 uint32_t _flags_save_string = ndr->flags;
1821 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1822 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printprocessor));
1823 if (_ptr_printprocessor) {
1824 NDR_PULL_ALLOC(ndr, r->printprocessor);
1825 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printprocessor, _ptr_printprocessor));
1827 r->printprocessor = NULL;
1829 ndr->flags = _flags_save_string;
1832 uint32_t _flags_save_string = ndr->flags;
1833 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1834 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
1835 if (_ptr_datatype) {
1836 NDR_PULL_ALLOC(ndr, r->datatype);
1837 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->datatype, _ptr_datatype));
1841 ndr->flags = _flags_save_string;
1844 uint32_t _flags_save_string = ndr->flags;
1845 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1846 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
1847 if (_ptr_parameters) {
1848 NDR_PULL_ALLOC(ndr, r->parameters);
1849 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->parameters, _ptr_parameters));
1851 r->parameters = NULL;
1853 ndr->flags = _flags_save_string;
1855 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
1857 NDR_PULL_ALLOC(ndr, r->secdesc);
1858 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
1862 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
1863 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
1864 if (r->priority > 99) {
1865 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
1867 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->defaultpriority));
1868 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->starttime));
1869 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->untiltime));
1870 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
1871 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
1872 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->averageppm));
1873 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
1875 if (ndr_flags & NDR_BUFFERS) {
1877 uint32_t _flags_save_string = ndr->flags;
1878 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1879 if (r->servername) {
1880 uint32_t _relative_save_offset;
1881 _relative_save_offset = ndr->offset;
1882 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
1883 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1884 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
1885 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
1886 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
1887 if (ndr->offset > ndr->relative_highest_offset) {
1888 ndr->relative_highest_offset = ndr->offset;
1890 ndr->offset = _relative_save_offset;
1892 ndr->flags = _flags_save_string;
1895 uint32_t _flags_save_string = ndr->flags;
1896 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1897 if (r->printername) {
1898 uint32_t _relative_save_offset;
1899 _relative_save_offset = ndr->offset;
1900 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
1901 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1902 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
1903 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
1904 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
1905 if (ndr->offset > ndr->relative_highest_offset) {
1906 ndr->relative_highest_offset = ndr->offset;
1908 ndr->offset = _relative_save_offset;
1910 ndr->flags = _flags_save_string;
1913 uint32_t _flags_save_string = ndr->flags;
1914 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1916 uint32_t _relative_save_offset;
1917 _relative_save_offset = ndr->offset;
1918 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->sharename));
1919 _mem_save_sharename_0 = NDR_PULL_GET_MEM_CTX(ndr);
1920 NDR_PULL_SET_MEM_CTX(ndr, r->sharename, 0);
1921 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->sharename));
1922 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sharename_0, 0);
1923 if (ndr->offset > ndr->relative_highest_offset) {
1924 ndr->relative_highest_offset = ndr->offset;
1926 ndr->offset = _relative_save_offset;
1928 ndr->flags = _flags_save_string;
1931 uint32_t _flags_save_string = ndr->flags;
1932 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1934 uint32_t _relative_save_offset;
1935 _relative_save_offset = ndr->offset;
1936 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->portname));
1937 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
1938 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
1939 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->portname));
1940 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
1941 if (ndr->offset > ndr->relative_highest_offset) {
1942 ndr->relative_highest_offset = ndr->offset;
1944 ndr->offset = _relative_save_offset;
1946 ndr->flags = _flags_save_string;
1949 uint32_t _flags_save_string = ndr->flags;
1950 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1951 if (r->drivername) {
1952 uint32_t _relative_save_offset;
1953 _relative_save_offset = ndr->offset;
1954 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->drivername));
1955 _mem_save_drivername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1956 NDR_PULL_SET_MEM_CTX(ndr, r->drivername, 0);
1957 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->drivername));
1958 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_drivername_0, 0);
1959 if (ndr->offset > ndr->relative_highest_offset) {
1960 ndr->relative_highest_offset = ndr->offset;
1962 ndr->offset = _relative_save_offset;
1964 ndr->flags = _flags_save_string;
1967 uint32_t _flags_save_string = ndr->flags;
1968 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1970 uint32_t _relative_save_offset;
1971 _relative_save_offset = ndr->offset;
1972 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->comment));
1973 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
1974 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
1975 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->comment));
1976 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
1977 if (ndr->offset > ndr->relative_highest_offset) {
1978 ndr->relative_highest_offset = ndr->offset;
1980 ndr->offset = _relative_save_offset;
1982 ndr->flags = _flags_save_string;
1985 uint32_t _flags_save_string = ndr->flags;
1986 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1988 uint32_t _relative_save_offset;
1989 _relative_save_offset = ndr->offset;
1990 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->location));
1991 _mem_save_location_0 = NDR_PULL_GET_MEM_CTX(ndr);
1992 NDR_PULL_SET_MEM_CTX(ndr, r->location, 0);
1993 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->location));
1994 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_location_0, 0);
1995 if (ndr->offset > ndr->relative_highest_offset) {
1996 ndr->relative_highest_offset = ndr->offset;
1998 ndr->offset = _relative_save_offset;
2000 ndr->flags = _flags_save_string;
2003 uint32_t _relative_save_offset;
2004 _relative_save_offset = ndr->offset;
2005 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
2006 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
2007 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
2009 struct ndr_pull *_ndr_devmode;
2010 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
2011 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2012 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
2014 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
2015 if (ndr->offset > ndr->relative_highest_offset) {
2016 ndr->relative_highest_offset = ndr->offset;
2018 ndr->offset = _relative_save_offset;
2021 uint32_t _flags_save_string = ndr->flags;
2022 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2024 uint32_t _relative_save_offset;
2025 _relative_save_offset = ndr->offset;
2026 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->sepfile));
2027 _mem_save_sepfile_0 = NDR_PULL_GET_MEM_CTX(ndr);
2028 NDR_PULL_SET_MEM_CTX(ndr, r->sepfile, 0);
2029 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->sepfile));
2030 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sepfile_0, 0);
2031 if (ndr->offset > ndr->relative_highest_offset) {
2032 ndr->relative_highest_offset = ndr->offset;
2034 ndr->offset = _relative_save_offset;
2036 ndr->flags = _flags_save_string;
2039 uint32_t _flags_save_string = ndr->flags;
2040 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2041 if (r->printprocessor) {
2042 uint32_t _relative_save_offset;
2043 _relative_save_offset = ndr->offset;
2044 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printprocessor));
2045 _mem_save_printprocessor_0 = NDR_PULL_GET_MEM_CTX(ndr);
2046 NDR_PULL_SET_MEM_CTX(ndr, r->printprocessor, 0);
2047 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printprocessor));
2048 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printprocessor_0, 0);
2049 if (ndr->offset > ndr->relative_highest_offset) {
2050 ndr->relative_highest_offset = ndr->offset;
2052 ndr->offset = _relative_save_offset;
2054 ndr->flags = _flags_save_string;
2057 uint32_t _flags_save_string = ndr->flags;
2058 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2060 uint32_t _relative_save_offset;
2061 _relative_save_offset = ndr->offset;
2062 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->datatype));
2063 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
2064 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
2065 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->datatype));
2066 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
2067 if (ndr->offset > ndr->relative_highest_offset) {
2068 ndr->relative_highest_offset = ndr->offset;
2070 ndr->offset = _relative_save_offset;
2072 ndr->flags = _flags_save_string;
2075 uint32_t _flags_save_string = ndr->flags;
2076 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2077 if (r->parameters) {
2078 uint32_t _relative_save_offset;
2079 _relative_save_offset = ndr->offset;
2080 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->parameters));
2081 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
2082 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
2083 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->parameters));
2084 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
2085 if (ndr->offset > ndr->relative_highest_offset) {
2086 ndr->relative_highest_offset = ndr->offset;
2088 ndr->offset = _relative_save_offset;
2090 ndr->flags = _flags_save_string;
2093 uint32_t _relative_save_offset;
2094 _relative_save_offset = ndr->offset;
2095 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
2096 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
2097 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
2099 struct ndr_pull *_ndr_secdesc;
2100 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
2101 NDR_CHECK(ndr_pull_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
2102 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
2104 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
2105 if (ndr->offset > ndr->relative_highest_offset) {
2106 ndr->relative_highest_offset = ndr->offset;
2108 ndr->offset = _relative_save_offset;
2111 return NDR_ERR_SUCCESS;
2114 _PUBLIC_ void ndr_print_spoolss_PrinterInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo2 *r)
2116 ndr_print_struct(ndr, name, "spoolss_PrinterInfo2");
2118 ndr_print_ptr(ndr, "servername", r->servername);
2120 if (r->servername) {
2121 ndr_print_string(ndr, "servername", r->servername);
2124 ndr_print_ptr(ndr, "printername", r->printername);
2126 if (r->printername) {
2127 ndr_print_string(ndr, "printername", r->printername);
2130 ndr_print_ptr(ndr, "sharename", r->sharename);
2133 ndr_print_string(ndr, "sharename", r->sharename);
2136 ndr_print_ptr(ndr, "portname", r->portname);
2139 ndr_print_string(ndr, "portname", r->portname);
2142 ndr_print_ptr(ndr, "drivername", r->drivername);
2144 if (r->drivername) {
2145 ndr_print_string(ndr, "drivername", r->drivername);
2148 ndr_print_ptr(ndr, "comment", r->comment);
2151 ndr_print_string(ndr, "comment", r->comment);
2154 ndr_print_ptr(ndr, "location", r->location);
2157 ndr_print_string(ndr, "location", r->location);
2160 ndr_print_ptr(ndr, "devmode", r->devmode);
2163 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
2166 ndr_print_ptr(ndr, "sepfile", r->sepfile);
2169 ndr_print_string(ndr, "sepfile", r->sepfile);
2172 ndr_print_ptr(ndr, "printprocessor", r->printprocessor);
2174 if (r->printprocessor) {
2175 ndr_print_string(ndr, "printprocessor", r->printprocessor);
2178 ndr_print_ptr(ndr, "datatype", r->datatype);
2181 ndr_print_string(ndr, "datatype", r->datatype);
2184 ndr_print_ptr(ndr, "parameters", r->parameters);
2186 if (r->parameters) {
2187 ndr_print_string(ndr, "parameters", r->parameters);
2190 ndr_print_ptr(ndr, "secdesc", r->secdesc);
2193 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
2196 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
2197 ndr_print_uint32(ndr, "priority", r->priority);
2198 ndr_print_uint32(ndr, "defaultpriority", r->defaultpriority);
2199 ndr_print_uint32(ndr, "starttime", r->starttime);
2200 ndr_print_uint32(ndr, "untiltime", r->untiltime);
2201 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
2202 ndr_print_uint32(ndr, "cjobs", r->cjobs);
2203 ndr_print_uint32(ndr, "averageppm", r->averageppm);
2207 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo2(const struct spoolss_PrinterInfo2 *r, struct smb_iconv_convenience *ic, int flags)
2209 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo2, ic);
2212 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo3 *r)
2214 if (ndr_flags & NDR_SCALARS) {
2215 NDR_CHECK(ndr_push_align(ndr, 5));
2216 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
2217 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2219 if (ndr_flags & NDR_BUFFERS) {
2221 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->secdesc));
2223 struct ndr_push *_ndr_secdesc;
2224 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
2225 NDR_CHECK(ndr_push_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
2226 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
2230 return NDR_ERR_SUCCESS;
2233 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo3 *r)
2235 uint32_t _ptr_secdesc;
2236 TALLOC_CTX *_mem_save_secdesc_0;
2237 if (ndr_flags & NDR_SCALARS) {
2238 NDR_CHECK(ndr_pull_align(ndr, 5));
2239 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
2241 NDR_PULL_ALLOC(ndr, r->secdesc);
2242 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
2246 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2248 if (ndr_flags & NDR_BUFFERS) {
2250 uint32_t _relative_save_offset;
2251 _relative_save_offset = ndr->offset;
2252 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
2253 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
2254 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
2256 struct ndr_pull *_ndr_secdesc;
2257 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
2258 NDR_CHECK(ndr_pull_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
2259 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
2261 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
2262 if (ndr->offset > ndr->relative_highest_offset) {
2263 ndr->relative_highest_offset = ndr->offset;
2265 ndr->offset = _relative_save_offset;
2268 return NDR_ERR_SUCCESS;
2271 _PUBLIC_ void ndr_print_spoolss_PrinterInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo3 *r)
2273 ndr_print_struct(ndr, name, "spoolss_PrinterInfo3");
2275 ndr_print_ptr(ndr, "secdesc", r->secdesc);
2278 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
2284 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo3(const struct spoolss_PrinterInfo3 *r, struct smb_iconv_convenience *ic, int flags)
2286 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo3, ic);
2289 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo4 *r)
2291 if (ndr_flags & NDR_SCALARS) {
2292 NDR_CHECK(ndr_push_align(ndr, 5));
2294 uint32_t _flags_save_string = ndr->flags;
2295 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2296 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
2297 ndr->flags = _flags_save_string;
2300 uint32_t _flags_save_string = ndr->flags;
2301 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2302 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->servername));
2303 ndr->flags = _flags_save_string;
2305 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
2306 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2308 if (ndr_flags & NDR_BUFFERS) {
2310 uint32_t _flags_save_string = ndr->flags;
2311 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2312 if (r->printername) {
2313 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printername));
2314 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
2316 ndr->flags = _flags_save_string;
2319 uint32_t _flags_save_string = ndr->flags;
2320 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2321 if (r->servername) {
2322 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->servername));
2323 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->servername));
2325 ndr->flags = _flags_save_string;
2328 return NDR_ERR_SUCCESS;
2331 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo4 *r)
2333 uint32_t _ptr_printername;
2334 TALLOC_CTX *_mem_save_printername_0;
2335 uint32_t _ptr_servername;
2336 TALLOC_CTX *_mem_save_servername_0;
2337 if (ndr_flags & NDR_SCALARS) {
2338 NDR_CHECK(ndr_pull_align(ndr, 5));
2340 uint32_t _flags_save_string = ndr->flags;
2341 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2342 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
2343 if (_ptr_printername) {
2344 NDR_PULL_ALLOC(ndr, r->printername);
2345 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
2347 r->printername = NULL;
2349 ndr->flags = _flags_save_string;
2352 uint32_t _flags_save_string = ndr->flags;
2353 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2354 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
2355 if (_ptr_servername) {
2356 NDR_PULL_ALLOC(ndr, r->servername);
2357 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
2359 r->servername = NULL;
2361 ndr->flags = _flags_save_string;
2363 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
2364 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2366 if (ndr_flags & NDR_BUFFERS) {
2368 uint32_t _flags_save_string = ndr->flags;
2369 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2370 if (r->printername) {
2371 uint32_t _relative_save_offset;
2372 _relative_save_offset = ndr->offset;
2373 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
2374 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
2375 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
2376 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
2377 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
2378 if (ndr->offset > ndr->relative_highest_offset) {
2379 ndr->relative_highest_offset = ndr->offset;
2381 ndr->offset = _relative_save_offset;
2383 ndr->flags = _flags_save_string;
2386 uint32_t _flags_save_string = ndr->flags;
2387 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2388 if (r->servername) {
2389 uint32_t _relative_save_offset;
2390 _relative_save_offset = ndr->offset;
2391 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
2392 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
2393 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
2394 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
2395 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
2396 if (ndr->offset > ndr->relative_highest_offset) {
2397 ndr->relative_highest_offset = ndr->offset;
2399 ndr->offset = _relative_save_offset;
2401 ndr->flags = _flags_save_string;
2404 return NDR_ERR_SUCCESS;
2407 _PUBLIC_ void ndr_print_spoolss_PrinterInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo4 *r)
2409 ndr_print_struct(ndr, name, "spoolss_PrinterInfo4");
2411 ndr_print_ptr(ndr, "printername", r->printername);
2413 if (r->printername) {
2414 ndr_print_string(ndr, "printername", r->printername);
2417 ndr_print_ptr(ndr, "servername", r->servername);
2419 if (r->servername) {
2420 ndr_print_string(ndr, "servername", r->servername);
2423 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
2427 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo4(const struct spoolss_PrinterInfo4 *r, struct smb_iconv_convenience *ic, int flags)
2429 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo4, ic);
2432 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo5 *r)
2434 if (ndr_flags & NDR_SCALARS) {
2435 NDR_CHECK(ndr_push_align(ndr, 5));
2437 uint32_t _flags_save_string = ndr->flags;
2438 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2439 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
2440 ndr->flags = _flags_save_string;
2443 uint32_t _flags_save_string = ndr->flags;
2444 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2445 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->portname));
2446 ndr->flags = _flags_save_string;
2448 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
2449 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->device_not_selected_timeout));
2450 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->transmission_retry_timeout));
2451 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2453 if (ndr_flags & NDR_BUFFERS) {
2455 uint32_t _flags_save_string = ndr->flags;
2456 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2457 if (r->printername) {
2458 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printername));
2459 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
2461 ndr->flags = _flags_save_string;
2464 uint32_t _flags_save_string = ndr->flags;
2465 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2467 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->portname));
2468 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->portname));
2470 ndr->flags = _flags_save_string;
2473 return NDR_ERR_SUCCESS;
2476 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo5 *r)
2478 uint32_t _ptr_printername;
2479 TALLOC_CTX *_mem_save_printername_0;
2480 uint32_t _ptr_portname;
2481 TALLOC_CTX *_mem_save_portname_0;
2482 if (ndr_flags & NDR_SCALARS) {
2483 NDR_CHECK(ndr_pull_align(ndr, 5));
2485 uint32_t _flags_save_string = ndr->flags;
2486 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2487 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
2488 if (_ptr_printername) {
2489 NDR_PULL_ALLOC(ndr, r->printername);
2490 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
2492 r->printername = NULL;
2494 ndr->flags = _flags_save_string;
2497 uint32_t _flags_save_string = ndr->flags;
2498 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2499 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
2500 if (_ptr_portname) {
2501 NDR_PULL_ALLOC(ndr, r->portname);
2502 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->portname, _ptr_portname));
2506 ndr->flags = _flags_save_string;
2508 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
2509 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->device_not_selected_timeout));
2510 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->transmission_retry_timeout));
2511 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2513 if (ndr_flags & NDR_BUFFERS) {
2515 uint32_t _flags_save_string = ndr->flags;
2516 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2517 if (r->printername) {
2518 uint32_t _relative_save_offset;
2519 _relative_save_offset = ndr->offset;
2520 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
2521 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
2522 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
2523 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
2524 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
2525 if (ndr->offset > ndr->relative_highest_offset) {
2526 ndr->relative_highest_offset = ndr->offset;
2528 ndr->offset = _relative_save_offset;
2530 ndr->flags = _flags_save_string;
2533 uint32_t _flags_save_string = ndr->flags;
2534 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2536 uint32_t _relative_save_offset;
2537 _relative_save_offset = ndr->offset;
2538 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->portname));
2539 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
2540 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
2541 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->portname));
2542 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
2543 if (ndr->offset > ndr->relative_highest_offset) {
2544 ndr->relative_highest_offset = ndr->offset;
2546 ndr->offset = _relative_save_offset;
2548 ndr->flags = _flags_save_string;
2551 return NDR_ERR_SUCCESS;
2554 _PUBLIC_ void ndr_print_spoolss_PrinterInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo5 *r)
2556 ndr_print_struct(ndr, name, "spoolss_PrinterInfo5");
2558 ndr_print_ptr(ndr, "printername", r->printername);
2560 if (r->printername) {
2561 ndr_print_string(ndr, "printername", r->printername);
2564 ndr_print_ptr(ndr, "portname", r->portname);
2567 ndr_print_string(ndr, "portname", r->portname);
2570 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
2571 ndr_print_uint32(ndr, "device_not_selected_timeout", r->device_not_selected_timeout);
2572 ndr_print_uint32(ndr, "transmission_retry_timeout", r->transmission_retry_timeout);
2576 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo5(const struct spoolss_PrinterInfo5 *r, struct smb_iconv_convenience *ic, int flags)
2578 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo5, ic);
2581 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo6 *r)
2583 if (ndr_flags & NDR_SCALARS) {
2584 NDR_CHECK(ndr_push_align(ndr, 4));
2585 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
2586 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
2588 if (ndr_flags & NDR_BUFFERS) {
2590 return NDR_ERR_SUCCESS;
2593 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo6 *r)
2595 if (ndr_flags & NDR_SCALARS) {
2596 NDR_CHECK(ndr_pull_align(ndr, 4));
2597 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
2598 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
2600 if (ndr_flags & NDR_BUFFERS) {
2602 return NDR_ERR_SUCCESS;
2605 _PUBLIC_ void ndr_print_spoolss_PrinterInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo6 *r)
2607 ndr_print_struct(ndr, name, "spoolss_PrinterInfo6");
2609 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
2613 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo6(const struct spoolss_PrinterInfo6 *r, struct smb_iconv_convenience *ic, int flags)
2615 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo6, ic);
2618 static enum ndr_err_code ndr_push_spoolss_DsPrintAction(struct ndr_push *ndr, int ndr_flags, uint32_t r)
2620 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
2621 return NDR_ERR_SUCCESS;
2624 static enum ndr_err_code ndr_pull_spoolss_DsPrintAction(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
2627 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
2629 return NDR_ERR_SUCCESS;
2632 _PUBLIC_ void ndr_print_spoolss_DsPrintAction(struct ndr_print *ndr, const char *name, uint32_t r)
2634 ndr_print_uint32(ndr, name, r);
2636 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_PUBLISH", DSPRINT_PUBLISH, r);
2637 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_UPDATE", DSPRINT_UPDATE, r);
2638 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_UNPUBLISH", DSPRINT_UNPUBLISH, r);
2639 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_REPUBLISH", DSPRINT_REPUBLISH, r);
2640 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_PENDING", DSPRINT_PENDING, r);
2644 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo7(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo7 *r)
2646 if (ndr_flags & NDR_SCALARS) {
2647 NDR_CHECK(ndr_push_align(ndr, 5));
2649 uint32_t _flags_save_string = ndr->flags;
2650 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2651 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->guid));
2652 ndr->flags = _flags_save_string;
2654 NDR_CHECK(ndr_push_spoolss_DsPrintAction(ndr, NDR_SCALARS, r->action));
2655 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2657 if (ndr_flags & NDR_BUFFERS) {
2659 uint32_t _flags_save_string = ndr->flags;
2660 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2662 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->guid));
2663 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->guid));
2665 ndr->flags = _flags_save_string;
2668 return NDR_ERR_SUCCESS;
2671 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo7(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo7 *r)
2674 TALLOC_CTX *_mem_save_guid_0;
2675 if (ndr_flags & NDR_SCALARS) {
2676 NDR_CHECK(ndr_pull_align(ndr, 5));
2678 uint32_t _flags_save_string = ndr->flags;
2679 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2680 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_guid));
2682 NDR_PULL_ALLOC(ndr, r->guid);
2683 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->guid, _ptr_guid));
2687 ndr->flags = _flags_save_string;
2689 NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr, NDR_SCALARS, &r->action));
2690 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2692 if (ndr_flags & NDR_BUFFERS) {
2694 uint32_t _flags_save_string = ndr->flags;
2695 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2697 uint32_t _relative_save_offset;
2698 _relative_save_offset = ndr->offset;
2699 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->guid));
2700 _mem_save_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
2701 NDR_PULL_SET_MEM_CTX(ndr, r->guid, 0);
2702 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->guid));
2703 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_guid_0, 0);
2704 if (ndr->offset > ndr->relative_highest_offset) {
2705 ndr->relative_highest_offset = ndr->offset;
2707 ndr->offset = _relative_save_offset;
2709 ndr->flags = _flags_save_string;
2712 return NDR_ERR_SUCCESS;
2715 _PUBLIC_ void ndr_print_spoolss_PrinterInfo7(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo7 *r)
2717 ndr_print_struct(ndr, name, "spoolss_PrinterInfo7");
2719 ndr_print_ptr(ndr, "guid", r->guid);
2722 ndr_print_string(ndr, "guid", r->guid);
2725 ndr_print_spoolss_DsPrintAction(ndr, "action", r->action);
2729 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo7(const struct spoolss_PrinterInfo7 *r, struct smb_iconv_convenience *ic, int flags)
2731 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo7, ic);
2734 static enum ndr_err_code ndr_push_spoolss_DeviceModeInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DeviceModeInfo *r)
2736 if (ndr_flags & NDR_SCALARS) {
2737 NDR_CHECK(ndr_push_align(ndr, 5));
2738 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
2739 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2741 if (ndr_flags & NDR_BUFFERS) {
2743 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->devmode));
2745 struct ndr_push *_ndr_devmode;
2746 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
2747 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2748 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
2752 return NDR_ERR_SUCCESS;
2755 static enum ndr_err_code ndr_pull_spoolss_DeviceModeInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DeviceModeInfo *r)
2757 uint32_t _ptr_devmode;
2758 TALLOC_CTX *_mem_save_devmode_0;
2759 if (ndr_flags & NDR_SCALARS) {
2760 NDR_CHECK(ndr_pull_align(ndr, 5));
2761 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
2763 NDR_PULL_ALLOC(ndr, r->devmode);
2764 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
2768 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2770 if (ndr_flags & NDR_BUFFERS) {
2772 uint32_t _relative_save_offset;
2773 _relative_save_offset = ndr->offset;
2774 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
2775 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
2776 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
2778 struct ndr_pull *_ndr_devmode;
2779 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
2780 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2781 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
2783 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
2784 if (ndr->offset > ndr->relative_highest_offset) {
2785 ndr->relative_highest_offset = ndr->offset;
2787 ndr->offset = _relative_save_offset;
2790 return NDR_ERR_SUCCESS;
2793 _PUBLIC_ void ndr_print_spoolss_DeviceModeInfo(struct ndr_print *ndr, const char *name, const struct spoolss_DeviceModeInfo *r)
2795 ndr_print_struct(ndr, name, "spoolss_DeviceModeInfo");
2797 ndr_print_ptr(ndr, "devmode", r->devmode);
2800 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
2806 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrinterInfo *r)
2808 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
2809 if (ndr_flags & NDR_SCALARS) {
2810 int level = ndr_push_get_switch_value(ndr, r);
2811 NDR_CHECK(ndr_push_union_align(ndr, 5));
2814 NDR_CHECK(ndr_push_align(ndr, 5));
2815 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2816 NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr, NDR_SCALARS, &r->info0));
2820 NDR_CHECK(ndr_push_align(ndr, 5));
2821 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2822 NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr, NDR_SCALARS, &r->info1));
2826 NDR_CHECK(ndr_push_align(ndr, 5));
2827 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2828 NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr, NDR_SCALARS, &r->info2));
2832 NDR_CHECK(ndr_push_align(ndr, 5));
2833 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2834 NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr, NDR_SCALARS, &r->info3));
2838 NDR_CHECK(ndr_push_align(ndr, 5));
2839 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2840 NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr, NDR_SCALARS, &r->info4));
2844 NDR_CHECK(ndr_push_align(ndr, 5));
2845 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2846 NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr, NDR_SCALARS, &r->info5));
2850 NDR_CHECK(ndr_push_align(ndr, 4));
2851 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2852 NDR_CHECK(ndr_push_spoolss_PrinterInfo6(ndr, NDR_SCALARS, &r->info6));
2856 NDR_CHECK(ndr_push_align(ndr, 5));
2857 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2858 NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr, NDR_SCALARS, &r->info7));
2862 NDR_CHECK(ndr_push_align(ndr, 5));
2863 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2864 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info8));
2868 NDR_CHECK(ndr_push_align(ndr, 5));
2869 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2870 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info9));
2878 if (ndr_flags & NDR_BUFFERS) {
2879 int level = ndr_push_get_switch_value(ndr, r);
2880 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
2883 NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr, NDR_BUFFERS, &r->info0));
2887 NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr, NDR_BUFFERS, &r->info1));
2891 NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr, NDR_BUFFERS, &r->info2));
2895 NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr, NDR_BUFFERS, &r->info3));
2899 NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr, NDR_BUFFERS, &r->info4));
2903 NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr, NDR_BUFFERS, &r->info5));
2910 NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr, NDR_BUFFERS, &r->info7));
2914 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info8));
2918 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info9));
2926 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
2927 return NDR_ERR_SUCCESS;
2930 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrinterInfo *r)
2932 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
2934 level = ndr_pull_get_switch_value(ndr, r);
2935 if (ndr_flags & NDR_SCALARS) {
2936 NDR_CHECK(ndr_pull_union_align(ndr, 5));
2939 NDR_CHECK(ndr_pull_align(ndr, 5));
2940 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2941 NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr, NDR_SCALARS, &r->info0));
2945 NDR_CHECK(ndr_pull_align(ndr, 5));
2946 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2947 NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr, NDR_SCALARS, &r->info1));
2951 NDR_CHECK(ndr_pull_align(ndr, 5));
2952 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2953 NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr, NDR_SCALARS, &r->info2));
2957 NDR_CHECK(ndr_pull_align(ndr, 5));
2958 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2959 NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr, NDR_SCALARS, &r->info3));
2963 NDR_CHECK(ndr_pull_align(ndr, 5));
2964 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2965 NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr, NDR_SCALARS, &r->info4));
2969 NDR_CHECK(ndr_pull_align(ndr, 5));
2970 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2971 NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr, NDR_SCALARS, &r->info5));
2975 NDR_CHECK(ndr_pull_align(ndr, 4));
2976 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2977 NDR_CHECK(ndr_pull_spoolss_PrinterInfo6(ndr, NDR_SCALARS, &r->info6));
2981 NDR_CHECK(ndr_pull_align(ndr, 5));
2982 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2983 NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr, NDR_SCALARS, &r->info7));
2987 NDR_CHECK(ndr_pull_align(ndr, 5));
2988 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2989 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info8));
2993 NDR_CHECK(ndr_pull_align(ndr, 5));
2994 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2995 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info9));
3003 if (ndr_flags & NDR_BUFFERS) {
3004 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
3007 NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr, NDR_BUFFERS, &r->info0));
3011 NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr, NDR_BUFFERS, &r->info1));
3015 NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr, NDR_BUFFERS, &r->info2));
3019 NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr, NDR_BUFFERS, &r->info3));
3023 NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr, NDR_BUFFERS, &r->info4));
3027 NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr, NDR_BUFFERS, &r->info5));
3034 NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr, NDR_BUFFERS, &r->info7));
3038 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info8));
3042 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info9));
3050 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
3051 return NDR_ERR_SUCCESS;
3054 _PUBLIC_ void ndr_print_spoolss_PrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrinterInfo *r)
3057 level = ndr_print_get_switch_value(ndr, r);
3058 ndr_print_union(ndr, name, level, "spoolss_PrinterInfo");
3061 ndr_print_spoolss_PrinterInfo0(ndr, "info0", &r->info0);
3065 ndr_print_spoolss_PrinterInfo1(ndr, "info1", &r->info1);
3069 ndr_print_spoolss_PrinterInfo2(ndr, "info2", &r->info2);
3073 ndr_print_spoolss_PrinterInfo3(ndr, "info3", &r->info3);
3077 ndr_print_spoolss_PrinterInfo4(ndr, "info4", &r->info4);
3081 ndr_print_spoolss_PrinterInfo5(ndr, "info5", &r->info5);
3085 ndr_print_spoolss_PrinterInfo6(ndr, "info6", &r->info6);
3089 ndr_print_spoolss_PrinterInfo7(ndr, "info7", &r->info7);
3093 ndr_print_spoolss_DeviceModeInfo(ndr, "info8", &r->info8);
3097 ndr_print_spoolss_DeviceModeInfo(ndr, "info9", &r->info9);
3106 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo(const union spoolss_PrinterInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
3108 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo, ic);
3111 static enum ndr_err_code ndr_push_spoolss_DevmodeContainer(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DevmodeContainer *r)
3113 if (ndr_flags & NDR_SCALARS) {
3114 NDR_CHECK(ndr_push_align(ndr, 5));
3115 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags)));
3116 NDR_CHECK(ndr_push_unique_ptr(ndr, r->devmode));
3117 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
3119 if (ndr_flags & NDR_BUFFERS) {
3122 struct ndr_push *_ndr_devmode;
3123 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 4, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags)));
3124 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
3125 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 4, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags)));
3129 return NDR_ERR_SUCCESS;
3132 static enum ndr_err_code ndr_pull_spoolss_DevmodeContainer(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DevmodeContainer *r)
3134 uint32_t _ptr_devmode;
3135 TALLOC_CTX *_mem_save_devmode_0;
3136 if (ndr_flags & NDR_SCALARS) {
3137 NDR_CHECK(ndr_pull_align(ndr, 5));
3138 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
3139 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
3141 NDR_PULL_ALLOC(ndr, r->devmode);
3145 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
3147 if (ndr_flags & NDR_BUFFERS) {
3149 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
3150 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
3152 struct ndr_pull *_ndr_devmode;
3153 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 4, r->_ndr_size));
3154 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
3155 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 4, r->_ndr_size));
3157 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
3160 return NDR_ERR_SUCCESS;
3163 _PUBLIC_ void ndr_print_spoolss_DevmodeContainer(struct ndr_print *ndr, const char *name, const struct spoolss_DevmodeContainer *r)
3165 ndr_print_struct(ndr, name, "spoolss_DevmodeContainer");
3167 ndr_print_uint32(ndr, "_ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?_ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags):r->_ndr_size);
3168 ndr_print_ptr(ndr, "devmode", r->devmode);
3171 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
3177 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo1 *r)
3179 if (ndr_flags & NDR_SCALARS) {
3180 NDR_CHECK(ndr_push_align(ndr, 5));
3181 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
3183 uint32_t _flags_save_string = ndr->flags;
3184 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3185 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printer_name));
3186 ndr->flags = _flags_save_string;
3189 uint32_t _flags_save_string = ndr->flags;
3190 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3191 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->server_name));
3192 ndr->flags = _flags_save_string;
3195 uint32_t _flags_save_string = ndr->flags;
3196 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3197 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->user_name));
3198 ndr->flags = _flags_save_string;
3201 uint32_t _flags_save_string = ndr->flags;
3202 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3203 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->document_name));
3204 ndr->flags = _flags_save_string;
3207 uint32_t _flags_save_string = ndr->flags;
3208 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3209 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_type));
3210 ndr->flags = _flags_save_string;
3213 uint32_t _flags_save_string = ndr->flags;
3214 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3215 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->text_status));
3216 ndr->flags = _flags_save_string;
3218 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
3219 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
3220 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
3221 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
3222 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
3223 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
3224 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
3226 if (ndr_flags & NDR_BUFFERS) {
3228 uint32_t _flags_save_string = ndr->flags;
3229 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3230 if (r->printer_name) {
3231 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printer_name));
3232 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printer_name));
3234 ndr->flags = _flags_save_string;
3237 uint32_t _flags_save_string = ndr->flags;
3238 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3239 if (r->server_name) {
3240 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->server_name));
3241 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server_name));
3243 ndr->flags = _flags_save_string;
3246 uint32_t _flags_save_string = ndr->flags;
3247 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3249 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->user_name));
3250 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
3252 ndr->flags = _flags_save_string;
3255 uint32_t _flags_save_string = ndr->flags;
3256 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3257 if (r->document_name) {
3258 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->document_name));
3259 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->document_name));
3261 ndr->flags = _flags_save_string;
3264 uint32_t _flags_save_string = ndr->flags;
3265 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3267 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_type));
3268 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_type));
3270 ndr->flags = _flags_save_string;
3273 uint32_t _flags_save_string = ndr->flags;
3274 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3275 if (r->text_status) {
3276 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->text_status));
3277 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->text_status));
3279 ndr->flags = _flags_save_string;
3282 return NDR_ERR_SUCCESS;
3285 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo1 *r)
3287 uint32_t _ptr_printer_name;
3288 TALLOC_CTX *_mem_save_printer_name_0;
3289 uint32_t _ptr_server_name;
3290 TALLOC_CTX *_mem_save_server_name_0;
3291 uint32_t _ptr_user_name;
3292 TALLOC_CTX *_mem_save_user_name_0;
3293 uint32_t _ptr_document_name;
3294 TALLOC_CTX *_mem_save_document_name_0;
3295 uint32_t _ptr_data_type;
3296 TALLOC_CTX *_mem_save_data_type_0;
3297 uint32_t _ptr_text_status;
3298 TALLOC_CTX *_mem_save_text_status_0;
3299 if (ndr_flags & NDR_SCALARS) {
3300 NDR_CHECK(ndr_pull_align(ndr, 5));
3301 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
3303 uint32_t _flags_save_string = ndr->flags;
3304 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3305 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
3306 if (_ptr_printer_name) {
3307 NDR_PULL_ALLOC(ndr, r->printer_name);
3308 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printer_name, _ptr_printer_name));
3310 r->printer_name = NULL;
3312 ndr->flags = _flags_save_string;
3315 uint32_t _flags_save_string = ndr->flags;
3316 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3317 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
3318 if (_ptr_server_name) {
3319 NDR_PULL_ALLOC(ndr, r->server_name);
3320 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->server_name, _ptr_server_name));
3322 r->server_name = NULL;
3324 ndr->flags = _flags_save_string;
3327 uint32_t _flags_save_string = ndr->flags;
3328 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3329 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
3330 if (_ptr_user_name) {
3331 NDR_PULL_ALLOC(ndr, r->user_name);
3332 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->user_name, _ptr_user_name));
3334 r->user_name = NULL;
3336 ndr->flags = _flags_save_string;
3339 uint32_t _flags_save_string = ndr->flags;
3340 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3341 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
3342 if (_ptr_document_name) {
3343 NDR_PULL_ALLOC(ndr, r->document_name);
3344 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->document_name, _ptr_document_name));
3346 r->document_name = NULL;
3348 ndr->flags = _flags_save_string;
3351 uint32_t _flags_save_string = ndr->flags;
3352 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3353 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
3354 if (_ptr_data_type) {
3355 NDR_PULL_ALLOC(ndr, r->data_type);
3356 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_type, _ptr_data_type));
3358 r->data_type = NULL;
3360 ndr->flags = _flags_save_string;
3363 uint32_t _flags_save_string = ndr->flags;
3364 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3365 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
3366 if (_ptr_text_status) {
3367 NDR_PULL_ALLOC(ndr, r->text_status);
3368 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->text_status, _ptr_text_status));
3370 r->text_status = NULL;
3372 ndr->flags = _flags_save_string;
3374 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
3375 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
3376 if (r->priority > 99) {
3377 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
3379 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
3380 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
3381 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
3382 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
3383 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
3385 if (ndr_flags & NDR_BUFFERS) {
3387 uint32_t _flags_save_string = ndr->flags;
3388 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3389 if (r->printer_name) {
3390 uint32_t _relative_save_offset;
3391 _relative_save_offset = ndr->offset;
3392 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printer_name));
3393 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3394 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
3395 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printer_name));
3396 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
3397 if (ndr->offset > ndr->relative_highest_offset) {
3398 ndr->relative_highest_offset = ndr->offset;
3400 ndr->offset = _relative_save_offset;
3402 ndr->flags = _flags_save_string;
3405 uint32_t _flags_save_string = ndr->flags;
3406 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3407 if (r->server_name) {
3408 uint32_t _relative_save_offset;
3409 _relative_save_offset = ndr->offset;
3410 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->server_name));
3411 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3412 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
3413 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->server_name));
3414 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
3415 if (ndr->offset > ndr->relative_highest_offset) {
3416 ndr->relative_highest_offset = ndr->offset;
3418 ndr->offset = _relative_save_offset;
3420 ndr->flags = _flags_save_string;
3423 uint32_t _flags_save_string = ndr->flags;
3424 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3426 uint32_t _relative_save_offset;
3427 _relative_save_offset = ndr->offset;
3428 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->user_name));
3429 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3430 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
3431 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
3432 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
3433 if (ndr->offset > ndr->relative_highest_offset) {
3434 ndr->relative_highest_offset = ndr->offset;
3436 ndr->offset = _relative_save_offset;
3438 ndr->flags = _flags_save_string;
3441 uint32_t _flags_save_string = ndr->flags;
3442 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3443 if (r->document_name) {
3444 uint32_t _relative_save_offset;
3445 _relative_save_offset = ndr->offset;
3446 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->document_name));
3447 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3448 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
3449 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->document_name));
3450 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
3451 if (ndr->offset > ndr->relative_highest_offset) {
3452 ndr->relative_highest_offset = ndr->offset;
3454 ndr->offset = _relative_save_offset;
3456 ndr->flags = _flags_save_string;
3459 uint32_t _flags_save_string = ndr->flags;
3460 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3462 uint32_t _relative_save_offset;
3463 _relative_save_offset = ndr->offset;
3464 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_type));
3465 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
3466 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
3467 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_type));
3468 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
3469 if (ndr->offset > ndr->relative_highest_offset) {
3470 ndr->relative_highest_offset = ndr->offset;
3472 ndr->offset = _relative_save_offset;
3474 ndr->flags = _flags_save_string;
3477 uint32_t _flags_save_string = ndr->flags;
3478 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3479 if (r->text_status) {
3480 uint32_t _relative_save_offset;
3481 _relative_save_offset = ndr->offset;
3482 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->text_status));
3483 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
3484 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
3485 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->text_status));
3486 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
3487 if (ndr->offset > ndr->relative_highest_offset) {
3488 ndr->relative_highest_offset = ndr->offset;
3490 ndr->offset = _relative_save_offset;
3492 ndr->flags = _flags_save_string;
3495 return NDR_ERR_SUCCESS;
3498 _PUBLIC_ void ndr_print_spoolss_JobInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo1 *r)
3500 ndr_print_struct(ndr, name, "spoolss_JobInfo1");
3502 ndr_print_uint32(ndr, "job_id", r->job_id);
3503 ndr_print_ptr(ndr, "printer_name", r->printer_name);
3505 if (r->printer_name) {
3506 ndr_print_string(ndr, "printer_name", r->printer_name);
3509 ndr_print_ptr(ndr, "server_name", r->server_name);
3511 if (r->server_name) {
3512 ndr_print_string(ndr, "server_name", r->server_name);
3515 ndr_print_ptr(ndr, "user_name", r->user_name);
3518 ndr_print_string(ndr, "user_name", r->user_name);
3521 ndr_print_ptr(ndr, "document_name", r->document_name);
3523 if (r->document_name) {
3524 ndr_print_string(ndr, "document_name", r->document_name);
3527 ndr_print_ptr(ndr, "data_type", r->data_type);
3530 ndr_print_string(ndr, "data_type", r->data_type);
3533 ndr_print_ptr(ndr, "text_status", r->text_status);
3535 if (r->text_status) {
3536 ndr_print_string(ndr, "text_status", r->text_status);
3539 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
3540 ndr_print_uint32(ndr, "priority", r->priority);
3541 ndr_print_uint32(ndr, "position", r->position);
3542 ndr_print_uint32(ndr, "total_pages", r->total_pages);
3543 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
3544 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
3548 _PUBLIC_ size_t ndr_size_spoolss_JobInfo1(const struct spoolss_JobInfo1 *r, struct smb_iconv_convenience *ic, int flags)
3550 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo1, ic);
3553 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo2 *r)
3555 if (ndr_flags & NDR_SCALARS) {
3556 NDR_CHECK(ndr_push_align(ndr, 5));
3557 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
3559 uint32_t _flags_save_string = ndr->flags;
3560 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3561 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printer_name));
3562 ndr->flags = _flags_save_string;
3565 uint32_t _flags_save_string = ndr->flags;
3566 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3567 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->server_name));
3568 ndr->flags = _flags_save_string;
3571 uint32_t _flags_save_string = ndr->flags;
3572 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3573 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->user_name));
3574 ndr->flags = _flags_save_string;
3577 uint32_t _flags_save_string = ndr->flags;
3578 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3579 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->document_name));
3580 ndr->flags = _flags_save_string;
3583 uint32_t _flags_save_string = ndr->flags;
3584 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3585 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->notify_name));
3586 ndr->flags = _flags_save_string;
3589 uint32_t _flags_save_string = ndr->flags;
3590 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3591 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_type));
3592 ndr->flags = _flags_save_string;
3595 uint32_t _flags_save_string = ndr->flags;
3596 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3597 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor));
3598 ndr->flags = _flags_save_string;
3601 uint32_t _flags_save_string = ndr->flags;
3602 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3603 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->parameters));
3604 ndr->flags = _flags_save_string;
3607 uint32_t _flags_save_string = ndr->flags;
3608 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3609 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
3610 ndr->flags = _flags_save_string;
3612 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
3614 uint32_t _flags_save_string = ndr->flags;
3615 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3616 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->text_status));
3617 ndr->flags = _flags_save_string;
3619 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
3620 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
3621 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
3622 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
3623 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
3624 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
3625 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
3626 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
3627 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
3628 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
3629 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
3630 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
3632 if (ndr_flags & NDR_BUFFERS) {
3634 uint32_t _flags_save_string = ndr->flags;
3635 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3636 if (r->printer_name) {
3637 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printer_name));
3638 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printer_name));
3640 ndr->flags = _flags_save_string;
3643 uint32_t _flags_save_string = ndr->flags;
3644 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3645 if (r->server_name) {
3646 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->server_name));
3647 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server_name));
3649 ndr->flags = _flags_save_string;
3652 uint32_t _flags_save_string = ndr->flags;
3653 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3655 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->user_name));
3656 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
3658 ndr->flags = _flags_save_string;
3661 uint32_t _flags_save_string = ndr->flags;
3662 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3663 if (r->document_name) {
3664 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->document_name));
3665 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->document_name));
3667 ndr->flags = _flags_save_string;
3670 uint32_t _flags_save_string = ndr->flags;
3671 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3672 if (r->notify_name) {
3673 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->notify_name));
3674 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->notify_name));
3676 ndr->flags = _flags_save_string;
3679 uint32_t _flags_save_string = ndr->flags;
3680 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3682 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_type));
3683 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_type));
3685 ndr->flags = _flags_save_string;
3688 uint32_t _flags_save_string = ndr->flags;
3689 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3690 if (r->print_processor) {
3691 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->print_processor));
3692 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor));
3694 ndr->flags = _flags_save_string;
3697 uint32_t _flags_save_string = ndr->flags;
3698 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3699 if (r->parameters) {
3700 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->parameters));
3701 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->parameters));
3703 ndr->flags = _flags_save_string;
3706 uint32_t _flags_save_string = ndr->flags;
3707 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3708 if (r->driver_name) {
3709 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
3710 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
3712 ndr->flags = _flags_save_string;
3715 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->devmode));
3716 NDR_CHECK(ndr_push_spoolss_DeviceMode(ndr, NDR_SCALARS, r->devmode));
3719 uint32_t _flags_save_string = ndr->flags;
3720 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3721 if (r->text_status) {
3722 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->text_status));
3723 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->text_status));
3725 ndr->flags = _flags_save_string;
3728 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->secdesc));
3729 NDR_CHECK(ndr_push_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
3732 return NDR_ERR_SUCCESS;
3735 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo2 *r)
3737 uint32_t _ptr_printer_name;
3738 TALLOC_CTX *_mem_save_printer_name_0;
3739 uint32_t _ptr_server_name;
3740 TALLOC_CTX *_mem_save_server_name_0;
3741 uint32_t _ptr_user_name;
3742 TALLOC_CTX *_mem_save_user_name_0;
3743 uint32_t _ptr_document_name;
3744 TALLOC_CTX *_mem_save_document_name_0;
3745 uint32_t _ptr_notify_name;
3746 TALLOC_CTX *_mem_save_notify_name_0;
3747 uint32_t _ptr_data_type;
3748 TALLOC_CTX *_mem_save_data_type_0;
3749 uint32_t _ptr_print_processor;
3750 TALLOC_CTX *_mem_save_print_processor_0;
3751 uint32_t _ptr_parameters;
3752 TALLOC_CTX *_mem_save_parameters_0;
3753 uint32_t _ptr_driver_name;
3754 TALLOC_CTX *_mem_save_driver_name_0;
3755 uint32_t _ptr_devmode;
3756 TALLOC_CTX *_mem_save_devmode_0;
3757 uint32_t _ptr_text_status;
3758 TALLOC_CTX *_mem_save_text_status_0;
3759 uint32_t _ptr_secdesc;
3760 TALLOC_CTX *_mem_save_secdesc_0;
3761 if (ndr_flags & NDR_SCALARS) {
3762 NDR_CHECK(ndr_pull_align(ndr, 5));
3763 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
3765 uint32_t _flags_save_string = ndr->flags;
3766 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3767 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
3768 if (_ptr_printer_name) {
3769 NDR_PULL_ALLOC(ndr, r->printer_name);
3770 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printer_name, _ptr_printer_name));
3772 r->printer_name = NULL;
3774 ndr->flags = _flags_save_string;
3777 uint32_t _flags_save_string = ndr->flags;
3778 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3779 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
3780 if (_ptr_server_name) {
3781 NDR_PULL_ALLOC(ndr, r->server_name);
3782 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->server_name, _ptr_server_name));
3784 r->server_name = NULL;
3786 ndr->flags = _flags_save_string;
3789 uint32_t _flags_save_string = ndr->flags;
3790 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3791 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
3792 if (_ptr_user_name) {
3793 NDR_PULL_ALLOC(ndr, r->user_name);
3794 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->user_name, _ptr_user_name));
3796 r->user_name = NULL;
3798 ndr->flags = _flags_save_string;
3801 uint32_t _flags_save_string = ndr->flags;
3802 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3803 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
3804 if (_ptr_document_name) {
3805 NDR_PULL_ALLOC(ndr, r->document_name);
3806 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->document_name, _ptr_document_name));
3808 r->document_name = NULL;
3810 ndr->flags = _flags_save_string;
3813 uint32_t _flags_save_string = ndr->flags;
3814 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3815 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
3816 if (_ptr_notify_name) {
3817 NDR_PULL_ALLOC(ndr, r->notify_name);
3818 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->notify_name, _ptr_notify_name));
3820 r->notify_name = NULL;
3822 ndr->flags = _flags_save_string;
3825 uint32_t _flags_save_string = ndr->flags;
3826 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3827 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
3828 if (_ptr_data_type) {
3829 NDR_PULL_ALLOC(ndr, r->data_type);
3830 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_type, _ptr_data_type));
3832 r->data_type = NULL;
3834 ndr->flags = _flags_save_string;
3837 uint32_t _flags_save_string = ndr->flags;
3838 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3839 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
3840 if (_ptr_print_processor) {
3841 NDR_PULL_ALLOC(ndr, r->print_processor);
3842 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor, _ptr_print_processor));
3844 r->print_processor = NULL;
3846 ndr->flags = _flags_save_string;
3849 uint32_t _flags_save_string = ndr->flags;
3850 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3851 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
3852 if (_ptr_parameters) {
3853 NDR_PULL_ALLOC(ndr, r->parameters);
3854 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->parameters, _ptr_parameters));
3856 r->parameters = NULL;
3858 ndr->flags = _flags_save_string;
3861 uint32_t _flags_save_string = ndr->flags;
3862 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3863 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
3864 if (_ptr_driver_name) {
3865 NDR_PULL_ALLOC(ndr, r->driver_name);
3866 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
3868 r->driver_name = NULL;
3870 ndr->flags = _flags_save_string;
3872 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
3874 NDR_PULL_ALLOC(ndr, r->devmode);
3875 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
3880 uint32_t _flags_save_string = ndr->flags;
3881 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3882 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
3883 if (_ptr_text_status) {
3884 NDR_PULL_ALLOC(ndr, r->text_status);
3885 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->text_status, _ptr_text_status));
3887 r->text_status = NULL;
3889 ndr->flags = _flags_save_string;
3891 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
3893 NDR_PULL_ALLOC(ndr, r->secdesc);
3894 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
3898 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
3899 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
3900 if (r->priority > 99) {
3901 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
3903 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
3904 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
3905 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
3906 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
3907 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
3908 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
3909 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
3910 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
3911 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
3913 if (ndr_flags & NDR_BUFFERS) {
3915 uint32_t _flags_save_string = ndr->flags;
3916 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3917 if (r->printer_name) {
3918 uint32_t _relative_save_offset;
3919 _relative_save_offset = ndr->offset;
3920 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printer_name));
3921 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3922 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
3923 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printer_name));
3924 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
3925 if (ndr->offset > ndr->relative_highest_offset) {
3926 ndr->relative_highest_offset = ndr->offset;
3928 ndr->offset = _relative_save_offset;
3930 ndr->flags = _flags_save_string;
3933 uint32_t _flags_save_string = ndr->flags;
3934 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3935 if (r->server_name) {
3936 uint32_t _relative_save_offset;
3937 _relative_save_offset = ndr->offset;
3938 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->server_name));
3939 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3940 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
3941 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->server_name));
3942 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
3943 if (ndr->offset > ndr->relative_highest_offset) {
3944 ndr->relative_highest_offset = ndr->offset;
3946 ndr->offset = _relative_save_offset;
3948 ndr->flags = _flags_save_string;
3951 uint32_t _flags_save_string = ndr->flags;
3952 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3954 uint32_t _relative_save_offset;
3955 _relative_save_offset = ndr->offset;
3956 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->user_name));
3957 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3958 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
3959 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
3960 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
3961 if (ndr->offset > ndr->relative_highest_offset) {
3962 ndr->relative_highest_offset = ndr->offset;
3964 ndr->offset = _relative_save_offset;
3966 ndr->flags = _flags_save_string;
3969 uint32_t _flags_save_string = ndr->flags;
3970 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3971 if (r->document_name) {
3972 uint32_t _relative_save_offset;
3973 _relative_save_offset = ndr->offset;
3974 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->document_name));
3975 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3976 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
3977 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->document_name));
3978 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
3979 if (ndr->offset > ndr->relative_highest_offset) {
3980 ndr->relative_highest_offset = ndr->offset;
3982 ndr->offset = _relative_save_offset;
3984 ndr->flags = _flags_save_string;
3987 uint32_t _flags_save_string = ndr->flags;
3988 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3989 if (r->notify_name) {
3990 uint32_t _relative_save_offset;
3991 _relative_save_offset = ndr->offset;
3992 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->notify_name));
3993 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3994 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
3995 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->notify_name));
3996 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
3997 if (ndr->offset > ndr->relative_highest_offset) {
3998 ndr->relative_highest_offset = ndr->offset;
4000 ndr->offset = _relative_save_offset;
4002 ndr->flags = _flags_save_string;
4005 uint32_t _flags_save_string = ndr->flags;
4006 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4008 uint32_t _relative_save_offset;
4009 _relative_save_offset = ndr->offset;
4010 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_type));
4011 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
4012 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
4013 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_type));
4014 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
4015 if (ndr->offset > ndr->relative_highest_offset) {
4016 ndr->relative_highest_offset = ndr->offset;
4018 ndr->offset = _relative_save_offset;
4020 ndr->flags = _flags_save_string;
4023 uint32_t _flags_save_string = ndr->flags;
4024 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4025 if (r->print_processor) {
4026 uint32_t _relative_save_offset;
4027 _relative_save_offset = ndr->offset;
4028 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor));
4029 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
4030 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
4031 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor));
4032 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
4033 if (ndr->offset > ndr->relative_highest_offset) {
4034 ndr->relative_highest_offset = ndr->offset;
4036 ndr->offset = _relative_save_offset;
4038 ndr->flags = _flags_save_string;
4041 uint32_t _flags_save_string = ndr->flags;
4042 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4043 if (r->parameters) {
4044 uint32_t _relative_save_offset;
4045 _relative_save_offset = ndr->offset;
4046 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->parameters));
4047 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
4048 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
4049 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->parameters));
4050 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
4051 if (ndr->offset > ndr->relative_highest_offset) {
4052 ndr->relative_highest_offset = ndr->offset;
4054 ndr->offset = _relative_save_offset;
4056 ndr->flags = _flags_save_string;
4059 uint32_t _flags_save_string = ndr->flags;
4060 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4061 if (r->driver_name) {
4062 uint32_t _relative_save_offset;
4063 _relative_save_offset = ndr->offset;
4064 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
4065 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4066 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
4067 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
4068 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
4069 if (ndr->offset > ndr->relative_highest_offset) {
4070 ndr->relative_highest_offset = ndr->offset;
4072 ndr->offset = _relative_save_offset;
4074 ndr->flags = _flags_save_string;
4077 uint32_t _relative_save_offset;
4078 _relative_save_offset = ndr->offset;
4079 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
4080 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
4081 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
4082 NDR_CHECK(ndr_pull_spoolss_DeviceMode(ndr, NDR_SCALARS, r->devmode));
4083 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
4084 if (ndr->offset > ndr->relative_highest_offset) {
4085 ndr->relative_highest_offset = ndr->offset;
4087 ndr->offset = _relative_save_offset;
4090 uint32_t _flags_save_string = ndr->flags;
4091 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4092 if (r->text_status) {
4093 uint32_t _relative_save_offset;
4094 _relative_save_offset = ndr->offset;
4095 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->text_status));
4096 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
4097 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
4098 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->text_status));
4099 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
4100 if (ndr->offset > ndr->relative_highest_offset) {
4101 ndr->relative_highest_offset = ndr->offset;
4103 ndr->offset = _relative_save_offset;
4105 ndr->flags = _flags_save_string;
4108 uint32_t _relative_save_offset;
4109 _relative_save_offset = ndr->offset;
4110 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
4111 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
4112 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
4113 NDR_CHECK(ndr_pull_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
4114 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
4115 if (ndr->offset > ndr->relative_highest_offset) {
4116 ndr->relative_highest_offset = ndr->offset;
4118 ndr->offset = _relative_save_offset;
4121 return NDR_ERR_SUCCESS;
4124 _PUBLIC_ void ndr_print_spoolss_JobInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo2 *r)
4126 ndr_print_struct(ndr, name, "spoolss_JobInfo2");
4128 ndr_print_uint32(ndr, "job_id", r->job_id);
4129 ndr_print_ptr(ndr, "printer_name", r->printer_name);
4131 if (r->printer_name) {
4132 ndr_print_string(ndr, "printer_name", r->printer_name);
4135 ndr_print_ptr(ndr, "server_name", r->server_name);
4137 if (r->server_name) {
4138 ndr_print_string(ndr, "server_name", r->server_name);
4141 ndr_print_ptr(ndr, "user_name", r->user_name);
4144 ndr_print_string(ndr, "user_name", r->user_name);
4147 ndr_print_ptr(ndr, "document_name", r->document_name);
4149 if (r->document_name) {
4150 ndr_print_string(ndr, "document_name", r->document_name);
4153 ndr_print_ptr(ndr, "notify_name", r->notify_name);
4155 if (r->notify_name) {
4156 ndr_print_string(ndr, "notify_name", r->notify_name);
4159 ndr_print_ptr(ndr, "data_type", r->data_type);
4162 ndr_print_string(ndr, "data_type", r->data_type);
4165 ndr_print_ptr(ndr, "print_processor", r->print_processor);
4167 if (r->print_processor) {
4168 ndr_print_string(ndr, "print_processor", r->print_processor);
4171 ndr_print_ptr(ndr, "parameters", r->parameters);
4173 if (r->parameters) {
4174 ndr_print_string(ndr, "parameters", r->parameters);
4177 ndr_print_ptr(ndr, "driver_name", r->driver_name);
4179 if (r->driver_name) {
4180 ndr_print_string(ndr, "driver_name", r->driver_name);
4183 ndr_print_ptr(ndr, "devmode", r->devmode);
4186 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
4189 ndr_print_ptr(ndr, "text_status", r->text_status);
4191 if (r->text_status) {
4192 ndr_print_string(ndr, "text_status", r->text_status);
4195 ndr_print_ptr(ndr, "secdesc", r->secdesc);
4198 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
4201 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
4202 ndr_print_uint32(ndr, "priority", r->priority);
4203 ndr_print_uint32(ndr, "position", r->position);
4204 ndr_print_uint32(ndr, "start_time", r->start_time);
4205 ndr_print_uint32(ndr, "until_time", r->until_time);
4206 ndr_print_uint32(ndr, "total_pages", r->total_pages);
4207 ndr_print_uint32(ndr, "size", r->size);
4208 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
4209 ndr_print_uint32(ndr, "time", r->time);
4210 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
4214 _PUBLIC_ size_t ndr_size_spoolss_JobInfo2(const struct spoolss_JobInfo2 *r, struct smb_iconv_convenience *ic, int flags)
4216 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo2, ic);
4219 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo3 *r)
4221 if (ndr_flags & NDR_SCALARS) {
4222 NDR_CHECK(ndr_push_align(ndr, 4));
4223 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
4224 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->next_job_id));
4225 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
4226 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
4228 if (ndr_flags & NDR_BUFFERS) {
4230 return NDR_ERR_SUCCESS;
4233 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo3 *r)
4235 if (ndr_flags & NDR_SCALARS) {
4236 NDR_CHECK(ndr_pull_align(ndr, 4));
4237 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
4238 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->next_job_id));
4239 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
4240 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
4242 if (ndr_flags & NDR_BUFFERS) {
4244 return NDR_ERR_SUCCESS;
4247 _PUBLIC_ void ndr_print_spoolss_JobInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo3 *r)
4249 ndr_print_struct(ndr, name, "spoolss_JobInfo3");
4251 ndr_print_uint32(ndr, "job_id", r->job_id);
4252 ndr_print_uint32(ndr, "next_job_id", r->next_job_id);
4253 ndr_print_uint32(ndr, "reserved", r->reserved);
4257 _PUBLIC_ size_t ndr_size_spoolss_JobInfo3(const struct spoolss_JobInfo3 *r, struct smb_iconv_convenience *ic, int flags)
4259 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo3, ic);
4262 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo4 *r)
4264 if (ndr_flags & NDR_SCALARS) {
4265 NDR_CHECK(ndr_push_align(ndr, 5));
4266 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
4268 uint32_t _flags_save_string = ndr->flags;
4269 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4270 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printer_name));
4271 ndr->flags = _flags_save_string;
4274 uint32_t _flags_save_string = ndr->flags;
4275 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4276 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->server_name));
4277 ndr->flags = _flags_save_string;
4280 uint32_t _flags_save_string = ndr->flags;
4281 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4282 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->user_name));
4283 ndr->flags = _flags_save_string;
4286 uint32_t _flags_save_string = ndr->flags;
4287 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4288 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->document_name));
4289 ndr->flags = _flags_save_string;
4292 uint32_t _flags_save_string = ndr->flags;
4293 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4294 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->notify_name));
4295 ndr->flags = _flags_save_string;
4298 uint32_t _flags_save_string = ndr->flags;
4299 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4300 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_type));
4301 ndr->flags = _flags_save_string;
4304 uint32_t _flags_save_string = ndr->flags;
4305 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4306 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor));
4307 ndr->flags = _flags_save_string;
4310 uint32_t _flags_save_string = ndr->flags;
4311 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4312 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->parameters));
4313 ndr->flags = _flags_save_string;
4316 uint32_t _flags_save_string = ndr->flags;
4317 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4318 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
4319 ndr->flags = _flags_save_string;
4321 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
4323 uint32_t _flags_save_string = ndr->flags;
4324 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4325 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->text_status));
4326 ndr->flags = _flags_save_string;
4328 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
4329 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
4330 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
4331 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
4332 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
4333 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
4334 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
4335 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
4336 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
4337 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
4338 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
4339 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size_high));
4340 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
4342 if (ndr_flags & NDR_BUFFERS) {
4344 uint32_t _flags_save_string = ndr->flags;
4345 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4346 if (r->printer_name) {
4347 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printer_name));
4348 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printer_name));
4350 ndr->flags = _flags_save_string;
4353 uint32_t _flags_save_string = ndr->flags;
4354 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4355 if (r->server_name) {
4356 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->server_name));
4357 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server_name));
4359 ndr->flags = _flags_save_string;
4362 uint32_t _flags_save_string = ndr->flags;
4363 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4365 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->user_name));
4366 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
4368 ndr->flags = _flags_save_string;
4371 uint32_t _flags_save_string = ndr->flags;
4372 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4373 if (r->document_name) {
4374 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->document_name));
4375 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->document_name));
4377 ndr->flags = _flags_save_string;
4380 uint32_t _flags_save_string = ndr->flags;
4381 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4382 if (r->notify_name) {
4383 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->notify_name));
4384 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->notify_name));
4386 ndr->flags = _flags_save_string;
4389 uint32_t _flags_save_string = ndr->flags;
4390 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4392 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_type));
4393 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_type));
4395 ndr->flags = _flags_save_string;
4398 uint32_t _flags_save_string = ndr->flags;
4399 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4400 if (r->print_processor) {
4401 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->print_processor));
4402 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor));
4404 ndr->flags = _flags_save_string;
4407 uint32_t _flags_save_string = ndr->flags;
4408 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4409 if (r->parameters) {
4410 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->parameters));
4411 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->parameters));
4413 ndr->flags = _flags_save_string;
4416 uint32_t _flags_save_string = ndr->flags;
4417 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4418 if (r->driver_name) {
4419 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
4420 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
4422 ndr->flags = _flags_save_string;
4425 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->devmode));
4426 NDR_CHECK(ndr_push_spoolss_DeviceMode(ndr, NDR_SCALARS, r->devmode));
4429 uint32_t _flags_save_string = ndr->flags;
4430 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4431 if (r->text_status) {
4432 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->text_status));
4433 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->text_status));
4435 ndr->flags = _flags_save_string;
4438 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->secdesc));
4439 NDR_CHECK(ndr_push_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
4442 return NDR_ERR_SUCCESS;
4445 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo4 *r)
4447 uint32_t _ptr_printer_name;
4448 TALLOC_CTX *_mem_save_printer_name_0;
4449 uint32_t _ptr_server_name;
4450 TALLOC_CTX *_mem_save_server_name_0;
4451 uint32_t _ptr_user_name;
4452 TALLOC_CTX *_mem_save_user_name_0;
4453 uint32_t _ptr_document_name;
4454 TALLOC_CTX *_mem_save_document_name_0;
4455 uint32_t _ptr_notify_name;
4456 TALLOC_CTX *_mem_save_notify_name_0;
4457 uint32_t _ptr_data_type;
4458 TALLOC_CTX *_mem_save_data_type_0;
4459 uint32_t _ptr_print_processor;
4460 TALLOC_CTX *_mem_save_print_processor_0;
4461 uint32_t _ptr_parameters;
4462 TALLOC_CTX *_mem_save_parameters_0;
4463 uint32_t _ptr_driver_name;
4464 TALLOC_CTX *_mem_save_driver_name_0;
4465 uint32_t _ptr_devmode;
4466 TALLOC_CTX *_mem_save_devmode_0;
4467 uint32_t _ptr_text_status;
4468 TALLOC_CTX *_mem_save_text_status_0;
4469 uint32_t _ptr_secdesc;
4470 TALLOC_CTX *_mem_save_secdesc_0;
4471 if (ndr_flags & NDR_SCALARS) {
4472 NDR_CHECK(ndr_pull_align(ndr, 5));
4473 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
4475 uint32_t _flags_save_string = ndr->flags;
4476 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4477 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
4478 if (_ptr_printer_name) {
4479 NDR_PULL_ALLOC(ndr, r->printer_name);
4480 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printer_name, _ptr_printer_name));
4482 r->printer_name = NULL;
4484 ndr->flags = _flags_save_string;
4487 uint32_t _flags_save_string = ndr->flags;
4488 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4489 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
4490 if (_ptr_server_name) {
4491 NDR_PULL_ALLOC(ndr, r->server_name);
4492 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->server_name, _ptr_server_name));
4494 r->server_name = NULL;
4496 ndr->flags = _flags_save_string;
4499 uint32_t _flags_save_string = ndr->flags;
4500 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4501 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
4502 if (_ptr_user_name) {
4503 NDR_PULL_ALLOC(ndr, r->user_name);
4504 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->user_name, _ptr_user_name));
4506 r->user_name = NULL;
4508 ndr->flags = _flags_save_string;
4511 uint32_t _flags_save_string = ndr->flags;
4512 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4513 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
4514 if (_ptr_document_name) {
4515 NDR_PULL_ALLOC(ndr, r->document_name);
4516 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->document_name, _ptr_document_name));
4518 r->document_name = NULL;
4520 ndr->flags = _flags_save_string;
4523 uint32_t _flags_save_string = ndr->flags;
4524 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4525 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
4526 if (_ptr_notify_name) {
4527 NDR_PULL_ALLOC(ndr, r->notify_name);
4528 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->notify_name, _ptr_notify_name));
4530 r->notify_name = NULL;
4532 ndr->flags = _flags_save_string;
4535 uint32_t _flags_save_string = ndr->flags;
4536 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4537 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
4538 if (_ptr_data_type) {
4539 NDR_PULL_ALLOC(ndr, r->data_type);
4540 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_type, _ptr_data_type));
4542 r->data_type = NULL;
4544 ndr->flags = _flags_save_string;
4547 uint32_t _flags_save_string = ndr->flags;
4548 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4549 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
4550 if (_ptr_print_processor) {
4551 NDR_PULL_ALLOC(ndr, r->print_processor);
4552 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor, _ptr_print_processor));
4554 r->print_processor = NULL;
4556 ndr->flags = _flags_save_string;
4559 uint32_t _flags_save_string = ndr->flags;
4560 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4561 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
4562 if (_ptr_parameters) {
4563 NDR_PULL_ALLOC(ndr, r->parameters);
4564 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->parameters, _ptr_parameters));
4566 r->parameters = NULL;
4568 ndr->flags = _flags_save_string;
4571 uint32_t _flags_save_string = ndr->flags;
4572 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4573 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
4574 if (_ptr_driver_name) {
4575 NDR_PULL_ALLOC(ndr, r->driver_name);
4576 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
4578 r->driver_name = NULL;
4580 ndr->flags = _flags_save_string;
4582 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
4584 NDR_PULL_ALLOC(ndr, r->devmode);
4585 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
4590 uint32_t _flags_save_string = ndr->flags;
4591 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4592 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
4593 if (_ptr_text_status) {
4594 NDR_PULL_ALLOC(ndr, r->text_status);
4595 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->text_status, _ptr_text_status));
4597 r->text_status = NULL;
4599 ndr->flags = _flags_save_string;
4601 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
4603 NDR_PULL_ALLOC(ndr, r->secdesc);
4604 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
4608 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
4609 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
4610 if (r->priority > 99) {
4611 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
4613 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
4614 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
4615 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
4616 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
4617 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
4618 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
4619 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
4620 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
4621 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size_high));
4622 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
4624 if (ndr_flags & NDR_BUFFERS) {
4626 uint32_t _flags_save_string = ndr->flags;
4627 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4628 if (r->printer_name) {
4629 uint32_t _relative_save_offset;
4630 _relative_save_offset = ndr->offset;
4631 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printer_name));
4632 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4633 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
4634 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printer_name));
4635 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
4636 if (ndr->offset > ndr->relative_highest_offset) {
4637 ndr->relative_highest_offset = ndr->offset;
4639 ndr->offset = _relative_save_offset;
4641 ndr->flags = _flags_save_string;
4644 uint32_t _flags_save_string = ndr->flags;
4645 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4646 if (r->server_name) {
4647 uint32_t _relative_save_offset;
4648 _relative_save_offset = ndr->offset;
4649 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->server_name));
4650 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4651 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
4652 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->server_name));
4653 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
4654 if (ndr->offset > ndr->relative_highest_offset) {
4655 ndr->relative_highest_offset = ndr->offset;
4657 ndr->offset = _relative_save_offset;
4659 ndr->flags = _flags_save_string;
4662 uint32_t _flags_save_string = ndr->flags;
4663 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4665 uint32_t _relative_save_offset;
4666 _relative_save_offset = ndr->offset;
4667 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->user_name));
4668 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4669 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
4670 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
4671 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
4672 if (ndr->offset > ndr->relative_highest_offset) {
4673 ndr->relative_highest_offset = ndr->offset;
4675 ndr->offset = _relative_save_offset;
4677 ndr->flags = _flags_save_string;
4680 uint32_t _flags_save_string = ndr->flags;
4681 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4682 if (r->document_name) {
4683 uint32_t _relative_save_offset;
4684 _relative_save_offset = ndr->offset;
4685 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->document_name));
4686 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4687 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
4688 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->document_name));
4689 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
4690 if (ndr->offset > ndr->relative_highest_offset) {
4691 ndr->relative_highest_offset = ndr->offset;
4693 ndr->offset = _relative_save_offset;
4695 ndr->flags = _flags_save_string;
4698 uint32_t _flags_save_string = ndr->flags;
4699 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4700 if (r->notify_name) {
4701 uint32_t _relative_save_offset;
4702 _relative_save_offset = ndr->offset;
4703 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->notify_name));
4704 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4705 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
4706 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->notify_name));
4707 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
4708 if (ndr->offset > ndr->relative_highest_offset) {
4709 ndr->relative_highest_offset = ndr->offset;
4711 ndr->offset = _relative_save_offset;
4713 ndr->flags = _flags_save_string;
4716 uint32_t _flags_save_string = ndr->flags;
4717 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4719 uint32_t _relative_save_offset;
4720 _relative_save_offset = ndr->offset;
4721 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_type));
4722 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
4723 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
4724 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_type));
4725 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
4726 if (ndr->offset > ndr->relative_highest_offset) {
4727 ndr->relative_highest_offset = ndr->offset;
4729 ndr->offset = _relative_save_offset;
4731 ndr->flags = _flags_save_string;
4734 uint32_t _flags_save_string = ndr->flags;
4735 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4736 if (r->print_processor) {
4737 uint32_t _relative_save_offset;
4738 _relative_save_offset = ndr->offset;
4739 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor));
4740 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
4741 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
4742 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor));
4743 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
4744 if (ndr->offset > ndr->relative_highest_offset) {
4745 ndr->relative_highest_offset = ndr->offset;
4747 ndr->offset = _relative_save_offset;
4749 ndr->flags = _flags_save_string;
4752 uint32_t _flags_save_string = ndr->flags;
4753 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4754 if (r->parameters) {
4755 uint32_t _relative_save_offset;
4756 _relative_save_offset = ndr->offset;
4757 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->parameters));
4758 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
4759 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
4760 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->parameters));
4761 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
4762 if (ndr->offset > ndr->relative_highest_offset) {
4763 ndr->relative_highest_offset = ndr->offset;
4765 ndr->offset = _relative_save_offset;
4767 ndr->flags = _flags_save_string;
4770 uint32_t _flags_save_string = ndr->flags;
4771 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4772 if (r->driver_name) {
4773 uint32_t _relative_save_offset;
4774 _relative_save_offset = ndr->offset;
4775 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
4776 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4777 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
4778 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
4779 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
4780 if (ndr->offset > ndr->relative_highest_offset) {
4781 ndr->relative_highest_offset = ndr->offset;
4783 ndr->offset = _relative_save_offset;
4785 ndr->flags = _flags_save_string;
4788 uint32_t _relative_save_offset;
4789 _relative_save_offset = ndr->offset;
4790 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
4791 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
4792 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
4793 NDR_CHECK(ndr_pull_spoolss_DeviceMode(ndr, NDR_SCALARS, r->devmode));
4794 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
4795 if (ndr->offset > ndr->relative_highest_offset) {
4796 ndr->relative_highest_offset = ndr->offset;
4798 ndr->offset = _relative_save_offset;
4801 uint32_t _flags_save_string = ndr->flags;
4802 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4803 if (r->text_status) {
4804 uint32_t _relative_save_offset;
4805 _relative_save_offset = ndr->offset;
4806 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->text_status));
4807 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
4808 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
4809 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->text_status));
4810 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
4811 if (ndr->offset > ndr->relative_highest_offset) {
4812 ndr->relative_highest_offset = ndr->offset;
4814 ndr->offset = _relative_save_offset;
4816 ndr->flags = _flags_save_string;
4819 uint32_t _relative_save_offset;
4820 _relative_save_offset = ndr->offset;
4821 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
4822 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
4823 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
4824 NDR_CHECK(ndr_pull_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
4825 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
4826 if (ndr->offset > ndr->relative_highest_offset) {
4827 ndr->relative_highest_offset = ndr->offset;
4829 ndr->offset = _relative_save_offset;
4832 return NDR_ERR_SUCCESS;
4835 _PUBLIC_ void ndr_print_spoolss_JobInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo4 *r)
4837 ndr_print_struct(ndr, name, "spoolss_JobInfo4");
4839 ndr_print_uint32(ndr, "job_id", r->job_id);
4840 ndr_print_ptr(ndr, "printer_name", r->printer_name);
4842 if (r->printer_name) {
4843 ndr_print_string(ndr, "printer_name", r->printer_name);
4846 ndr_print_ptr(ndr, "server_name", r->server_name);
4848 if (r->server_name) {
4849 ndr_print_string(ndr, "server_name", r->server_name);
4852 ndr_print_ptr(ndr, "user_name", r->user_name);
4855 ndr_print_string(ndr, "user_name", r->user_name);
4858 ndr_print_ptr(ndr, "document_name", r->document_name);
4860 if (r->document_name) {
4861 ndr_print_string(ndr, "document_name", r->document_name);
4864 ndr_print_ptr(ndr, "notify_name", r->notify_name);
4866 if (r->notify_name) {
4867 ndr_print_string(ndr, "notify_name", r->notify_name);
4870 ndr_print_ptr(ndr, "data_type", r->data_type);
4873 ndr_print_string(ndr, "data_type", r->data_type);
4876 ndr_print_ptr(ndr, "print_processor", r->print_processor);
4878 if (r->print_processor) {
4879 ndr_print_string(ndr, "print_processor", r->print_processor);
4882 ndr_print_ptr(ndr, "parameters", r->parameters);
4884 if (r->parameters) {
4885 ndr_print_string(ndr, "parameters", r->parameters);
4888 ndr_print_ptr(ndr, "driver_name", r->driver_name);
4890 if (r->driver_name) {
4891 ndr_print_string(ndr, "driver_name", r->driver_name);
4894 ndr_print_ptr(ndr, "devmode", r->devmode);
4897 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
4900 ndr_print_ptr(ndr, "text_status", r->text_status);
4902 if (r->text_status) {
4903 ndr_print_string(ndr, "text_status", r->text_status);
4906 ndr_print_ptr(ndr, "secdesc", r->secdesc);
4909 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
4912 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
4913 ndr_print_uint32(ndr, "priority", r->priority);
4914 ndr_print_uint32(ndr, "position", r->position);
4915 ndr_print_uint32(ndr, "start_time", r->start_time);
4916 ndr_print_uint32(ndr, "until_time", r->until_time);
4917 ndr_print_uint32(ndr, "total_pages", r->total_pages);
4918 ndr_print_uint32(ndr, "size", r->size);
4919 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
4920 ndr_print_uint32(ndr, "time", r->time);
4921 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
4922 ndr_print_uint32(ndr, "size_high", r->size_high);
4926 _PUBLIC_ size_t ndr_size_spoolss_JobInfo4(const struct spoolss_JobInfo4 *r, struct smb_iconv_convenience *ic, int flags)
4928 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo4, ic);
4931 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_JobInfo *r)
4933 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
4934 if (ndr_flags & NDR_SCALARS) {
4935 int level = ndr_push_get_switch_value(ndr, r);
4936 NDR_CHECK(ndr_push_union_align(ndr, 5));
4939 NDR_CHECK(ndr_push_align(ndr, 5));
4940 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
4941 NDR_CHECK(ndr_push_spoolss_JobInfo1(ndr, NDR_SCALARS, &r->info1));
4945 NDR_CHECK(ndr_push_align(ndr, 5));
4946 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
4947 NDR_CHECK(ndr_push_spoolss_JobInfo2(ndr, NDR_SCALARS, &r->info2));
4951 NDR_CHECK(ndr_push_align(ndr, 4));
4952 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
4953 NDR_CHECK(ndr_push_spoolss_JobInfo3(ndr, NDR_SCALARS, &r->info3));
4957 NDR_CHECK(ndr_push_align(ndr, 5));
4958 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
4959 NDR_CHECK(ndr_push_spoolss_JobInfo4(ndr, NDR_SCALARS, &r->info4));
4967 if (ndr_flags & NDR_BUFFERS) {
4968 int level = ndr_push_get_switch_value(ndr, r);
4969 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
4972 NDR_CHECK(ndr_push_spoolss_JobInfo1(ndr, NDR_BUFFERS, &r->info1));
4976 NDR_CHECK(ndr_push_spoolss_JobInfo2(ndr, NDR_BUFFERS, &r->info2));
4983 NDR_CHECK(ndr_push_spoolss_JobInfo4(ndr, NDR_BUFFERS, &r->info4));
4991 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
4992 return NDR_ERR_SUCCESS;
4995 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_JobInfo *r)
4997 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
4999 level = ndr_pull_get_switch_value(ndr, r);
5000 if (ndr_flags & NDR_SCALARS) {
5001 NDR_CHECK(ndr_pull_union_align(ndr, 5));
5004 NDR_CHECK(ndr_pull_align(ndr, 5));
5005 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
5006 NDR_CHECK(ndr_pull_spoolss_JobInfo1(ndr, NDR_SCALARS, &r->info1));
5010 NDR_CHECK(ndr_pull_align(ndr, 5));
5011 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
5012 NDR_CHECK(ndr_pull_spoolss_JobInfo2(ndr, NDR_SCALARS, &r->info2));
5016 NDR_CHECK(ndr_pull_align(ndr, 4));
5017 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
5018 NDR_CHECK(ndr_pull_spoolss_JobInfo3(ndr, NDR_SCALARS, &r->info3));
5022 NDR_CHECK(ndr_pull_align(ndr, 5));
5023 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
5024 NDR_CHECK(ndr_pull_spoolss_JobInfo4(ndr, NDR_SCALARS, &r->info4));
5032 if (ndr_flags & NDR_BUFFERS) {
5033 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
5036 NDR_CHECK(ndr_pull_spoolss_JobInfo1(ndr, NDR_BUFFERS, &r->info1));
5040 NDR_CHECK(ndr_pull_spoolss_JobInfo2(ndr, NDR_BUFFERS, &r->info2));
5047 NDR_CHECK(ndr_pull_spoolss_JobInfo4(ndr, NDR_BUFFERS, &r->info4));
5055 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
5056 return NDR_ERR_SUCCESS;
5059 _PUBLIC_ void ndr_print_spoolss_JobInfo(struct ndr_print *ndr, const char *name, const union spoolss_JobInfo *r)
5062 level = ndr_print_get_switch_value(ndr, r);
5063 ndr_print_union(ndr, name, level, "spoolss_JobInfo");
5066 ndr_print_spoolss_JobInfo1(ndr, "info1", &r->info1);
5070 ndr_print_spoolss_JobInfo2(ndr, "info2", &r->info2);
5074 ndr_print_spoolss_JobInfo3(ndr, "info3", &r->info3);
5078 ndr_print_spoolss_JobInfo4(ndr, "info4", &r->info4);
5087 _PUBLIC_ size_t ndr_size_spoolss_JobInfo(const union spoolss_JobInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
5089 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo, ic);
5092 static enum ndr_err_code ndr_push_spoolss_SetJobInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetJobInfo1 *r)
5094 if (ndr_flags & NDR_SCALARS) {
5095 NDR_CHECK(ndr_push_align(ndr, 5));
5096 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
5097 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printer_name));
5098 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_name));
5099 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user_name));
5100 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
5101 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_type));
5102 NDR_CHECK(ndr_push_unique_ptr(ndr, r->text_status));
5103 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
5104 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
5105 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
5106 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
5107 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
5108 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5109 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
5111 if (ndr_flags & NDR_BUFFERS) {
5112 if (r->printer_name) {
5113 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
5114 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5115 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
5116 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printer_name, ndr_charset_length(r->printer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5118 if (r->server_name) {
5119 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
5120 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5121 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
5122 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_name, ndr_charset_length(r->server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5125 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5126 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5127 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5128 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user_name, ndr_charset_length(r->user_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5130 if (r->document_name) {
5131 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5132 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5133 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5134 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5137 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5138 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5139 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5140 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_type, ndr_charset_length(r->data_type, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5142 if (r->text_status) {
5143 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
5144 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5145 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
5146 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->text_status, ndr_charset_length(r->text_status, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5149 return NDR_ERR_SUCCESS;
5152 static enum ndr_err_code ndr_pull_spoolss_SetJobInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetJobInfo1 *r)
5154 uint32_t _ptr_printer_name;
5155 TALLOC_CTX *_mem_save_printer_name_0;
5156 uint32_t _ptr_server_name;
5157 TALLOC_CTX *_mem_save_server_name_0;
5158 uint32_t _ptr_user_name;
5159 TALLOC_CTX *_mem_save_user_name_0;
5160 uint32_t _ptr_document_name;
5161 TALLOC_CTX *_mem_save_document_name_0;
5162 uint32_t _ptr_data_type;
5163 TALLOC_CTX *_mem_save_data_type_0;
5164 uint32_t _ptr_text_status;
5165 TALLOC_CTX *_mem_save_text_status_0;
5166 if (ndr_flags & NDR_SCALARS) {
5167 NDR_CHECK(ndr_pull_align(ndr, 5));
5168 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
5169 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
5170 if (_ptr_printer_name) {
5171 NDR_PULL_ALLOC(ndr, r->printer_name);
5173 r->printer_name = NULL;
5175 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
5176 if (_ptr_server_name) {
5177 NDR_PULL_ALLOC(ndr, r->server_name);
5179 r->server_name = NULL;
5181 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
5182 if (_ptr_user_name) {
5183 NDR_PULL_ALLOC(ndr, r->user_name);
5185 r->user_name = NULL;
5187 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
5188 if (_ptr_document_name) {
5189 NDR_PULL_ALLOC(ndr, r->document_name);
5191 r->document_name = NULL;
5193 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
5194 if (_ptr_data_type) {
5195 NDR_PULL_ALLOC(ndr, r->data_type);
5197 r->data_type = NULL;
5199 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
5200 if (_ptr_text_status) {
5201 NDR_PULL_ALLOC(ndr, r->text_status);
5203 r->text_status = NULL;
5205 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
5206 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
5207 if (r->priority > 99) {
5208 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
5210 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
5211 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
5212 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
5213 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5214 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
5216 if (ndr_flags & NDR_BUFFERS) {
5217 if (r->printer_name) {
5218 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5219 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
5220 NDR_CHECK(ndr_pull_array_size(ndr, &r->printer_name));
5221 NDR_CHECK(ndr_pull_array_length(ndr, &r->printer_name));
5222 if (ndr_get_array_length(ndr, &r->printer_name) > ndr_get_array_size(ndr, &r->printer_name)) {
5223 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->printer_name), ndr_get_array_length(ndr, &r->printer_name));
5225 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t)));
5226 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printer_name, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t), CH_UTF16));
5227 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
5229 if (r->server_name) {
5230 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5231 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
5232 NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name));
5233 NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name));
5234 if (ndr_get_array_length(ndr, &r->server_name) > ndr_get_array_size(ndr, &r->server_name)) {
5235 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->server_name), ndr_get_array_length(ndr, &r->server_name));
5237 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t)));
5238 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t), CH_UTF16));
5239 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
5242 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5243 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
5244 NDR_CHECK(ndr_pull_array_size(ndr, &r->user_name));
5245 NDR_CHECK(ndr_pull_array_length(ndr, &r->user_name));
5246 if (ndr_get_array_length(ndr, &r->user_name) > ndr_get_array_size(ndr, &r->user_name)) {
5247 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->user_name), ndr_get_array_length(ndr, &r->user_name));
5249 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t)));
5250 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t), CH_UTF16));
5251 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
5253 if (r->document_name) {
5254 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5255 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
5256 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
5257 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
5258 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
5259 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->document_name), ndr_get_array_length(ndr, &r->document_name));
5261 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
5262 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
5263 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
5266 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
5267 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
5268 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_type));
5269 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_type));
5270 if (ndr_get_array_length(ndr, &r->data_type) > ndr_get_array_size(ndr, &r->data_type)) {
5271 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data_type), ndr_get_array_length(ndr, &r->data_type));
5273 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t)));
5274 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_type, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t), CH_UTF16));
5275 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
5277 if (r->text_status) {
5278 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
5279 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
5280 NDR_CHECK(ndr_pull_array_size(ndr, &r->text_status));
5281 NDR_CHECK(ndr_pull_array_length(ndr, &r->text_status));
5282 if (ndr_get_array_length(ndr, &r->text_status) > ndr_get_array_size(ndr, &r->text_status)) {
5283 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->text_status), ndr_get_array_length(ndr, &r->text_status));
5285 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t)));
5286 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->text_status, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t), CH_UTF16));
5287 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
5290 return NDR_ERR_SUCCESS;
5293 _PUBLIC_ void ndr_print_spoolss_SetJobInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_SetJobInfo1 *r)
5295 ndr_print_struct(ndr, name, "spoolss_SetJobInfo1");
5297 ndr_print_uint32(ndr, "job_id", r->job_id);
5298 ndr_print_ptr(ndr, "printer_name", r->printer_name);
5300 if (r->printer_name) {
5301 ndr_print_string(ndr, "printer_name", r->printer_name);
5304 ndr_print_ptr(ndr, "server_name", r->server_name);
5306 if (r->server_name) {
5307 ndr_print_string(ndr, "server_name", r->server_name);
5310 ndr_print_ptr(ndr, "user_name", r->user_name);
5313 ndr_print_string(ndr, "user_name", r->user_name);
5316 ndr_print_ptr(ndr, "document_name", r->document_name);
5318 if (r->document_name) {
5319 ndr_print_string(ndr, "document_name", r->document_name);
5322 ndr_print_ptr(ndr, "data_type", r->data_type);
5325 ndr_print_string(ndr, "data_type", r->data_type);
5328 ndr_print_ptr(ndr, "text_status", r->text_status);
5330 if (r->text_status) {
5331 ndr_print_string(ndr, "text_status", r->text_status);
5334 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
5335 ndr_print_uint32(ndr, "priority", r->priority);
5336 ndr_print_uint32(ndr, "position", r->position);
5337 ndr_print_uint32(ndr, "total_pages", r->total_pages);
5338 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
5339 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
5343 static enum ndr_err_code ndr_push_spoolss_SetJobInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetJobInfo2 *r)
5345 if (ndr_flags & NDR_SCALARS) {
5346 NDR_CHECK(ndr_push_align(ndr, 5));
5347 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
5348 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printer_name));
5349 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_name));
5350 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user_name));
5351 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
5352 NDR_CHECK(ndr_push_unique_ptr(ndr, r->notify_name));
5353 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_type));
5354 NDR_CHECK(ndr_push_unique_ptr(ndr, r->print_processor));
5355 NDR_CHECK(ndr_push_unique_ptr(ndr, r->parameters));
5356 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
5357 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_devmode_ptr));
5358 NDR_CHECK(ndr_push_unique_ptr(ndr, r->text_status));
5359 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_secdesc_ptr));
5360 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
5361 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
5362 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
5363 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
5364 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
5365 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
5366 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
5367 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5368 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
5369 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
5370 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
5372 if (ndr_flags & NDR_BUFFERS) {
5373 if (r->printer_name) {
5374 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
5375 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5376 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
5377 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printer_name, ndr_charset_length(r->printer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5379 if (r->server_name) {
5380 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
5381 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5382 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
5383 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_name, ndr_charset_length(r->server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5386 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5387 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5388 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5389 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user_name, ndr_charset_length(r->user_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5391 if (r->document_name) {
5392 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5393 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5394 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5395 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5397 if (r->notify_name) {
5398 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
5399 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5400 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
5401 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->notify_name, ndr_charset_length(r->notify_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5404 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5405 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5406 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5407 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_type, ndr_charset_length(r->data_type, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5409 if (r->print_processor) {
5410 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
5411 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5412 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
5413 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->print_processor, ndr_charset_length(r->print_processor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5415 if (r->parameters) {
5416 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
5417 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5418 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
5419 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->parameters, ndr_charset_length(r->parameters, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5421 if (r->driver_name) {
5422 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5423 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5424 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5425 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5427 if (r->text_status) {
5428 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
5429 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5430 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
5431 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->text_status, ndr_charset_length(r->text_status, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5434 return NDR_ERR_SUCCESS;
5437 static enum ndr_err_code ndr_pull_spoolss_SetJobInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetJobInfo2 *r)
5439 uint32_t _ptr_printer_name;
5440 TALLOC_CTX *_mem_save_printer_name_0;
5441 uint32_t _ptr_server_name;
5442 TALLOC_CTX *_mem_save_server_name_0;
5443 uint32_t _ptr_user_name;
5444 TALLOC_CTX *_mem_save_user_name_0;
5445 uint32_t _ptr_document_name;
5446 TALLOC_CTX *_mem_save_document_name_0;
5447 uint32_t _ptr_notify_name;
5448 TALLOC_CTX *_mem_save_notify_name_0;
5449 uint32_t _ptr_data_type;
5450 TALLOC_CTX *_mem_save_data_type_0;
5451 uint32_t _ptr_print_processor;
5452 TALLOC_CTX *_mem_save_print_processor_0;
5453 uint32_t _ptr_parameters;
5454 TALLOC_CTX *_mem_save_parameters_0;
5455 uint32_t _ptr_driver_name;
5456 TALLOC_CTX *_mem_save_driver_name_0;
5457 uint32_t _ptr_text_status;
5458 TALLOC_CTX *_mem_save_text_status_0;
5459 if (ndr_flags & NDR_SCALARS) {
5460 NDR_CHECK(ndr_pull_align(ndr, 5));
5461 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
5462 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
5463 if (_ptr_printer_name) {
5464 NDR_PULL_ALLOC(ndr, r->printer_name);
5466 r->printer_name = NULL;
5468 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
5469 if (_ptr_server_name) {
5470 NDR_PULL_ALLOC(ndr, r->server_name);
5472 r->server_name = NULL;
5474 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
5475 if (_ptr_user_name) {
5476 NDR_PULL_ALLOC(ndr, r->user_name);
5478 r->user_name = NULL;
5480 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
5481 if (_ptr_document_name) {
5482 NDR_PULL_ALLOC(ndr, r->document_name);
5484 r->document_name = NULL;
5486 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
5487 if (_ptr_notify_name) {
5488 NDR_PULL_ALLOC(ndr, r->notify_name);
5490 r->notify_name = NULL;
5492 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
5493 if (_ptr_data_type) {
5494 NDR_PULL_ALLOC(ndr, r->data_type);
5496 r->data_type = NULL;
5498 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
5499 if (_ptr_print_processor) {
5500 NDR_PULL_ALLOC(ndr, r->print_processor);
5502 r->print_processor = NULL;
5504 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
5505 if (_ptr_parameters) {
5506 NDR_PULL_ALLOC(ndr, r->parameters);
5508 r->parameters = NULL;
5510 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
5511 if (_ptr_driver_name) {
5512 NDR_PULL_ALLOC(ndr, r->driver_name);
5514 r->driver_name = NULL;
5516 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_devmode_ptr));
5517 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
5518 if (_ptr_text_status) {
5519 NDR_PULL_ALLOC(ndr, r->text_status);
5521 r->text_status = NULL;
5523 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_secdesc_ptr));
5524 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
5525 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
5526 if (r->priority > 99) {
5527 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
5529 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
5530 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
5531 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
5532 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
5533 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
5534 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5535 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
5536 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
5537 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
5539 if (ndr_flags & NDR_BUFFERS) {
5540 if (r->printer_name) {
5541 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5542 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
5543 NDR_CHECK(ndr_pull_array_size(ndr, &r->printer_name));
5544 NDR_CHECK(ndr_pull_array_length(ndr, &r->printer_name));
5545 if (ndr_get_array_length(ndr, &r->printer_name) > ndr_get_array_size(ndr, &r->printer_name)) {
5546 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->printer_name), ndr_get_array_length(ndr, &r->printer_name));
5548 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t)));
5549 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printer_name, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t), CH_UTF16));
5550 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
5552 if (r->server_name) {
5553 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5554 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
5555 NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name));
5556 NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name));
5557 if (ndr_get_array_length(ndr, &r->server_name) > ndr_get_array_size(ndr, &r->server_name)) {
5558 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->server_name), ndr_get_array_length(ndr, &r->server_name));
5560 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t)));
5561 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t), CH_UTF16));
5562 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
5565 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5566 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
5567 NDR_CHECK(ndr_pull_array_size(ndr, &r->user_name));
5568 NDR_CHECK(ndr_pull_array_length(ndr, &r->user_name));
5569 if (ndr_get_array_length(ndr, &r->user_name) > ndr_get_array_size(ndr, &r->user_name)) {
5570 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->user_name), ndr_get_array_length(ndr, &r->user_name));
5572 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t)));
5573 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t), CH_UTF16));
5574 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
5576 if (r->document_name) {
5577 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5578 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
5579 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
5580 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
5581 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
5582 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->document_name), ndr_get_array_length(ndr, &r->document_name));
5584 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
5585 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
5586 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
5588 if (r->notify_name) {
5589 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5590 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
5591 NDR_CHECK(ndr_pull_array_size(ndr, &r->notify_name));
5592 NDR_CHECK(ndr_pull_array_length(ndr, &r->notify_name));
5593 if (ndr_get_array_length(ndr, &r->notify_name) > ndr_get_array_size(ndr, &r->notify_name)) {
5594 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->notify_name), ndr_get_array_length(ndr, &r->notify_name));
5596 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t)));
5597 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->notify_name, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t), CH_UTF16));
5598 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
5601 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
5602 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
5603 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_type));
5604 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_type));
5605 if (ndr_get_array_length(ndr, &r->data_type) > ndr_get_array_size(ndr, &r->data_type)) {
5606 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data_type), ndr_get_array_length(ndr, &r->data_type));
5608 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t)));
5609 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_type, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t), CH_UTF16));
5610 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
5612 if (r->print_processor) {
5613 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
5614 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
5615 NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
5616 NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
5617 if (ndr_get_array_length(ndr, &r->print_processor) > ndr_get_array_size(ndr, &r->print_processor)) {
5618 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->print_processor), ndr_get_array_length(ndr, &r->print_processor));
5620 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t)));
5621 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t), CH_UTF16));
5622 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
5624 if (r->parameters) {
5625 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
5626 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
5627 NDR_CHECK(ndr_pull_array_size(ndr, &r->parameters));
5628 NDR_CHECK(ndr_pull_array_length(ndr, &r->parameters));
5629 if (ndr_get_array_length(ndr, &r->parameters) > ndr_get_array_size(ndr, &r->parameters)) {
5630 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->parameters), ndr_get_array_length(ndr, &r->parameters));
5632 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t)));
5633 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t), CH_UTF16));
5634 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
5636 if (r->driver_name) {
5637 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5638 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
5639 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
5640 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
5641 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
5642 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_name), ndr_get_array_length(ndr, &r->driver_name));
5644 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
5645 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
5646 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
5648 if (r->text_status) {
5649 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
5650 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
5651 NDR_CHECK(ndr_pull_array_size(ndr, &r->text_status));
5652 NDR_CHECK(ndr_pull_array_length(ndr, &r->text_status));
5653 if (ndr_get_array_length(ndr, &r->text_status) > ndr_get_array_size(ndr, &r->text_status)) {
5654 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->text_status), ndr_get_array_length(ndr, &r->text_status));
5656 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t)));
5657 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->text_status, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t), CH_UTF16));
5658 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
5661 return NDR_ERR_SUCCESS;
5664 _PUBLIC_ void ndr_print_spoolss_SetJobInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_SetJobInfo2 *r)
5666 ndr_print_struct(ndr, name, "spoolss_SetJobInfo2");
5668 ndr_print_uint32(ndr, "job_id", r->job_id);
5669 ndr_print_ptr(ndr, "printer_name", r->printer_name);
5671 if (r->printer_name) {
5672 ndr_print_string(ndr, "printer_name", r->printer_name);
5675 ndr_print_ptr(ndr, "server_name", r->server_name);
5677 if (r->server_name) {
5678 ndr_print_string(ndr, "server_name", r->server_name);
5681 ndr_print_ptr(ndr, "user_name", r->user_name);
5684 ndr_print_string(ndr, "user_name", r->user_name);
5687 ndr_print_ptr(ndr, "document_name", r->document_name);
5689 if (r->document_name) {
5690 ndr_print_string(ndr, "document_name", r->document_name);
5693 ndr_print_ptr(ndr, "notify_name", r->notify_name);
5695 if (r->notify_name) {
5696 ndr_print_string(ndr, "notify_name", r->notify_name);
5699 ndr_print_ptr(ndr, "data_type", r->data_type);
5702 ndr_print_string(ndr, "data_type", r->data_type);
5705 ndr_print_ptr(ndr, "print_processor", r->print_processor);
5707 if (r->print_processor) {
5708 ndr_print_string(ndr, "print_processor", r->print_processor);
5711 ndr_print_ptr(ndr, "parameters", r->parameters);
5713 if (r->parameters) {
5714 ndr_print_string(ndr, "parameters", r->parameters);
5717 ndr_print_ptr(ndr, "driver_name", r->driver_name);
5719 if (r->driver_name) {
5720 ndr_print_string(ndr, "driver_name", r->driver_name);
5723 ndr_print_uint32(ndr, "_devmode_ptr", r->_devmode_ptr);
5724 ndr_print_ptr(ndr, "text_status", r->text_status);
5726 if (r->text_status) {
5727 ndr_print_string(ndr, "text_status", r->text_status);
5730 ndr_print_uint32(ndr, "_secdesc_ptr", r->_secdesc_ptr);
5731 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
5732 ndr_print_uint32(ndr, "priority", r->priority);
5733 ndr_print_uint32(ndr, "position", r->position);
5734 ndr_print_uint32(ndr, "start_time", r->start_time);
5735 ndr_print_uint32(ndr, "until_time", r->until_time);
5736 ndr_print_uint32(ndr, "total_pages", r->total_pages);
5737 ndr_print_uint32(ndr, "size", r->size);
5738 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
5739 ndr_print_uint32(ndr, "time", r->time);
5740 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
5744 static enum ndr_err_code ndr_push_spoolss_SetJobInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetJobInfo4 *r)
5746 if (ndr_flags & NDR_SCALARS) {
5747 NDR_CHECK(ndr_push_align(ndr, 5));
5748 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
5749 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printer_name));
5750 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_name));
5751 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user_name));
5752 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
5753 NDR_CHECK(ndr_push_unique_ptr(ndr, r->notify_name));
5754 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_type));
5755 NDR_CHECK(ndr_push_unique_ptr(ndr, r->print_processor));
5756 NDR_CHECK(ndr_push_unique_ptr(ndr, r->parameters));
5757 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
5758 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_devmode_ptr));
5759 NDR_CHECK(ndr_push_unique_ptr(ndr, r->text_status));
5760 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_secdesc_ptr));
5761 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
5762 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
5763 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
5764 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
5765 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
5766 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
5767 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
5768 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5769 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
5770 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
5771 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size_high));
5772 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
5774 if (ndr_flags & NDR_BUFFERS) {
5775 if (r->printer_name) {
5776 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
5777 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5778 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
5779 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printer_name, ndr_charset_length(r->printer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5781 if (r->server_name) {
5782 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
5783 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5784 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
5785 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_name, ndr_charset_length(r->server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5788 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5789 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5790 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5791 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user_name, ndr_charset_length(r->user_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5793 if (r->document_name) {
5794 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5795 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5796 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5797 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5799 if (r->notify_name) {
5800 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
5801 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5802 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
5803 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->notify_name, ndr_charset_length(r->notify_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5806 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5807 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5808 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5809 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_type, ndr_charset_length(r->data_type, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5811 if (r->print_processor) {
5812 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
5813 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5814 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
5815 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->print_processor, ndr_charset_length(r->print_processor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5817 if (r->parameters) {
5818 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
5819 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5820 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
5821 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->parameters, ndr_charset_length(r->parameters, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5823 if (r->driver_name) {
5824 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5825 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5826 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5827 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5829 if (r->text_status) {
5830 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
5831 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5832 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
5833 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->text_status, ndr_charset_length(r->text_status, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5836 return NDR_ERR_SUCCESS;
5839 static enum ndr_err_code ndr_pull_spoolss_SetJobInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetJobInfo4 *r)
5841 uint32_t _ptr_printer_name;
5842 TALLOC_CTX *_mem_save_printer_name_0;
5843 uint32_t _ptr_server_name;
5844 TALLOC_CTX *_mem_save_server_name_0;
5845 uint32_t _ptr_user_name;
5846 TALLOC_CTX *_mem_save_user_name_0;
5847 uint32_t _ptr_document_name;
5848 TALLOC_CTX *_mem_save_document_name_0;
5849 uint32_t _ptr_notify_name;
5850 TALLOC_CTX *_mem_save_notify_name_0;
5851 uint32_t _ptr_data_type;
5852 TALLOC_CTX *_mem_save_data_type_0;
5853 uint32_t _ptr_print_processor;
5854 TALLOC_CTX *_mem_save_print_processor_0;
5855 uint32_t _ptr_parameters;
5856 TALLOC_CTX *_mem_save_parameters_0;
5857 uint32_t _ptr_driver_name;
5858 TALLOC_CTX *_mem_save_driver_name_0;
5859 uint32_t _ptr_text_status;
5860 TALLOC_CTX *_mem_save_text_status_0;
5861 if (ndr_flags & NDR_SCALARS) {
5862 NDR_CHECK(ndr_pull_align(ndr, 5));
5863 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
5864 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
5865 if (_ptr_printer_name) {
5866 NDR_PULL_ALLOC(ndr, r->printer_name);
5868 r->printer_name = NULL;
5870 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
5871 if (_ptr_server_name) {
5872 NDR_PULL_ALLOC(ndr, r->server_name);
5874 r->server_name = NULL;
5876 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
5877 if (_ptr_user_name) {
5878 NDR_PULL_ALLOC(ndr, r->user_name);
5880 r->user_name = NULL;
5882 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
5883 if (_ptr_document_name) {
5884 NDR_PULL_ALLOC(ndr, r->document_name);
5886 r->document_name = NULL;
5888 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
5889 if (_ptr_notify_name) {
5890 NDR_PULL_ALLOC(ndr, r->notify_name);
5892 r->notify_name = NULL;
5894 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
5895 if (_ptr_data_type) {
5896 NDR_PULL_ALLOC(ndr, r->data_type);
5898 r->data_type = NULL;
5900 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
5901 if (_ptr_print_processor) {
5902 NDR_PULL_ALLOC(ndr, r->print_processor);
5904 r->print_processor = NULL;
5906 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
5907 if (_ptr_parameters) {
5908 NDR_PULL_ALLOC(ndr, r->parameters);
5910 r->parameters = NULL;
5912 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
5913 if (_ptr_driver_name) {
5914 NDR_PULL_ALLOC(ndr, r->driver_name);
5916 r->driver_name = NULL;
5918 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_devmode_ptr));
5919 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
5920 if (_ptr_text_status) {
5921 NDR_PULL_ALLOC(ndr, r->text_status);
5923 r->text_status = NULL;
5925 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_secdesc_ptr));
5926 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
5927 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
5928 if (r->priority > 99) {
5929 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
5931 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
5932 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
5933 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
5934 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
5935 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
5936 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5937 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
5938 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
5939 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size_high));
5940 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
5942 if (ndr_flags & NDR_BUFFERS) {
5943 if (r->printer_name) {
5944 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5945 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
5946 NDR_CHECK(ndr_pull_array_size(ndr, &r->printer_name));
5947 NDR_CHECK(ndr_pull_array_length(ndr, &r->printer_name));
5948 if (ndr_get_array_length(ndr, &r->printer_name) > ndr_get_array_size(ndr, &r->printer_name)) {
5949 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->printer_name), ndr_get_array_length(ndr, &r->printer_name));
5951 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t)));
5952 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printer_name, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t), CH_UTF16));
5953 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
5955 if (r->server_name) {
5956 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5957 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
5958 NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name));
5959 NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name));
5960 if (ndr_get_array_length(ndr, &r->server_name) > ndr_get_array_size(ndr, &r->server_name)) {
5961 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->server_name), ndr_get_array_length(ndr, &r->server_name));
5963 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t)));
5964 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t), CH_UTF16));
5965 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
5968 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5969 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
5970 NDR_CHECK(ndr_pull_array_size(ndr, &r->user_name));
5971 NDR_CHECK(ndr_pull_array_length(ndr, &r->user_name));
5972 if (ndr_get_array_length(ndr, &r->user_name) > ndr_get_array_size(ndr, &r->user_name)) {
5973 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->user_name), ndr_get_array_length(ndr, &r->user_name));
5975 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t)));
5976 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t), CH_UTF16));
5977 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
5979 if (r->document_name) {
5980 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5981 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
5982 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
5983 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
5984 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
5985 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->document_name), ndr_get_array_length(ndr, &r->document_name));
5987 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
5988 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
5989 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
5991 if (r->notify_name) {
5992 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5993 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
5994 NDR_CHECK(ndr_pull_array_size(ndr, &r->notify_name));
5995 NDR_CHECK(ndr_pull_array_length(ndr, &r->notify_name));
5996 if (ndr_get_array_length(ndr, &r->notify_name) > ndr_get_array_size(ndr, &r->notify_name)) {
5997 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->notify_name), ndr_get_array_length(ndr, &r->notify_name));
5999 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t)));
6000 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->notify_name, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t), CH_UTF16));
6001 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
6004 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
6005 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
6006 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_type));
6007 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_type));
6008 if (ndr_get_array_length(ndr, &r->data_type) > ndr_get_array_size(ndr, &r->data_type)) {
6009 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data_type), ndr_get_array_length(ndr, &r->data_type));
6011 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t)));
6012 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_type, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t), CH_UTF16));
6013 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
6015 if (r->print_processor) {
6016 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
6017 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
6018 NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
6019 NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
6020 if (ndr_get_array_length(ndr, &r->print_processor) > ndr_get_array_size(ndr, &r->print_processor)) {
6021 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->print_processor), ndr_get_array_length(ndr, &r->print_processor));
6023 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t)));
6024 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t), CH_UTF16));
6025 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
6027 if (r->parameters) {
6028 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
6029 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
6030 NDR_CHECK(ndr_pull_array_size(ndr, &r->parameters));
6031 NDR_CHECK(ndr_pull_array_length(ndr, &r->parameters));
6032 if (ndr_get_array_length(ndr, &r->parameters) > ndr_get_array_size(ndr, &r->parameters)) {
6033 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->parameters), ndr_get_array_length(ndr, &r->parameters));
6035 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t)));
6036 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t), CH_UTF16));
6037 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
6039 if (r->driver_name) {
6040 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6041 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
6042 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
6043 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
6044 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
6045 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_name), ndr_get_array_length(ndr, &r->driver_name));
6047 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
6048 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
6049 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
6051 if (r->text_status) {
6052 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
6053 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
6054 NDR_CHECK(ndr_pull_array_size(ndr, &r->text_status));
6055 NDR_CHECK(ndr_pull_array_length(ndr, &r->text_status));
6056 if (ndr_get_array_length(ndr, &r->text_status) > ndr_get_array_size(ndr, &r->text_status)) {
6057 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->text_status), ndr_get_array_length(ndr, &r->text_status));
6059 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t)));
6060 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->text_status, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t), CH_UTF16));
6061 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
6064 return NDR_ERR_SUCCESS;
6067 _PUBLIC_ void ndr_print_spoolss_SetJobInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_SetJobInfo4 *r)
6069 ndr_print_struct(ndr, name, "spoolss_SetJobInfo4");
6071 ndr_print_uint32(ndr, "job_id", r->job_id);
6072 ndr_print_ptr(ndr, "printer_name", r->printer_name);
6074 if (r->printer_name) {
6075 ndr_print_string(ndr, "printer_name", r->printer_name);
6078 ndr_print_ptr(ndr, "server_name", r->server_name);
6080 if (r->server_name) {
6081 ndr_print_string(ndr, "server_name", r->server_name);
6084 ndr_print_ptr(ndr, "user_name", r->user_name);
6087 ndr_print_string(ndr, "user_name", r->user_name);
6090 ndr_print_ptr(ndr, "document_name", r->document_name);
6092 if (r->document_name) {
6093 ndr_print_string(ndr, "document_name", r->document_name);
6096 ndr_print_ptr(ndr, "notify_name", r->notify_name);
6098 if (r->notify_name) {
6099 ndr_print_string(ndr, "notify_name", r->notify_name);
6102 ndr_print_ptr(ndr, "data_type", r->data_type);
6105 ndr_print_string(ndr, "data_type", r->data_type);
6108 ndr_print_ptr(ndr, "print_processor", r->print_processor);
6110 if (r->print_processor) {
6111 ndr_print_string(ndr, "print_processor", r->print_processor);
6114 ndr_print_ptr(ndr, "parameters", r->parameters);
6116 if (r->parameters) {
6117 ndr_print_string(ndr, "parameters", r->parameters);
6120 ndr_print_ptr(ndr, "driver_name", r->driver_name);
6122 if (r->driver_name) {
6123 ndr_print_string(ndr, "driver_name", r->driver_name);
6126 ndr_print_uint32(ndr, "_devmode_ptr", r->_devmode_ptr);
6127 ndr_print_ptr(ndr, "text_status", r->text_status);
6129 if (r->text_status) {
6130 ndr_print_string(ndr, "text_status", r->text_status);
6133 ndr_print_uint32(ndr, "_secdesc_ptr", r->_secdesc_ptr);
6134 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
6135 ndr_print_uint32(ndr, "priority", r->priority);
6136 ndr_print_uint32(ndr, "position", r->position);
6137 ndr_print_uint32(ndr, "start_time", r->start_time);
6138 ndr_print_uint32(ndr, "until_time", r->until_time);
6139 ndr_print_uint32(ndr, "total_pages", r->total_pages);
6140 ndr_print_uint32(ndr, "size", r->size);
6141 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
6142 ndr_print_uint32(ndr, "time", r->time);
6143 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
6144 ndr_print_uint32(ndr, "size_high", r->size_high);
6148 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_SetJobInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_SetJobInfo *r)
6150 if (ndr_flags & NDR_SCALARS) {
6151 int level = ndr_push_get_switch_value(ndr, r);
6152 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
6153 NDR_CHECK(ndr_push_union_align(ndr, 5));
6156 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
6160 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
6164 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
6168 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
6176 if (ndr_flags & NDR_BUFFERS) {
6177 int level = ndr_push_get_switch_value(ndr, r);
6181 NDR_CHECK(ndr_push_spoolss_SetJobInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
6187 NDR_CHECK(ndr_push_spoolss_SetJobInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
6193 NDR_CHECK(ndr_push_spoolss_JobInfo3(ndr, NDR_SCALARS, r->info3));
6199 NDR_CHECK(ndr_push_spoolss_SetJobInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
6208 return NDR_ERR_SUCCESS;
6211 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_SetJobInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_SetJobInfo *r)
6215 TALLOC_CTX *_mem_save_info1_0;
6216 TALLOC_CTX *_mem_save_info2_0;
6217 TALLOC_CTX *_mem_save_info3_0;
6218 TALLOC_CTX *_mem_save_info4_0;
6219 level = ndr_pull_get_switch_value(ndr, r);
6220 if (ndr_flags & NDR_SCALARS) {
6221 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
6222 if (_level != level) {
6223 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
6225 NDR_CHECK(ndr_pull_union_align(ndr, 5));
6228 uint32_t _ptr_info1;
6229 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
6231 NDR_PULL_ALLOC(ndr, r->info1);
6238 uint32_t _ptr_info2;
6239 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
6241 NDR_PULL_ALLOC(ndr, r->info2);
6248 uint32_t _ptr_info3;
6249 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
6251 NDR_PULL_ALLOC(ndr, r->info3);
6258 uint32_t _ptr_info4;
6259 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
6261 NDR_PULL_ALLOC(ndr, r->info4);
6272 if (ndr_flags & NDR_BUFFERS) {
6276 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
6277 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
6278 NDR_CHECK(ndr_pull_spoolss_SetJobInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
6279 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
6285 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
6286 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
6287 NDR_CHECK(ndr_pull_spoolss_SetJobInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
6288 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
6294 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
6295 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
6296 NDR_CHECK(ndr_pull_spoolss_JobInfo3(ndr, NDR_SCALARS, r->info3));
6297 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
6303 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
6304 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
6305 NDR_CHECK(ndr_pull_spoolss_SetJobInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
6306 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
6315 return NDR_ERR_SUCCESS;
6318 _PUBLIC_ void ndr_print_spoolss_SetJobInfo(struct ndr_print *ndr, const char *name, const union spoolss_SetJobInfo *r)
6321 level = ndr_print_get_switch_value(ndr, r);
6322 ndr_print_union(ndr, name, level, "spoolss_SetJobInfo");
6325 ndr_print_ptr(ndr, "info1", r->info1);
6328 ndr_print_spoolss_SetJobInfo1(ndr, "info1", r->info1);
6334 ndr_print_ptr(ndr, "info2", r->info2);
6337 ndr_print_spoolss_SetJobInfo2(ndr, "info2", r->info2);
6343 ndr_print_ptr(ndr, "info3", r->info3);
6346 ndr_print_spoolss_JobInfo3(ndr, "info3", r->info3);
6352 ndr_print_ptr(ndr, "info4", r->info4);
6355 ndr_print_spoolss_SetJobInfo4(ndr, "info4", r->info4);
6366 static enum ndr_err_code ndr_push_spoolss_JobInfoContainer(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfoContainer *r)
6368 if (ndr_flags & NDR_SCALARS) {
6369 NDR_CHECK(ndr_push_align(ndr, 5));
6370 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
6371 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
6372 NDR_CHECK(ndr_push_spoolss_SetJobInfo(ndr, NDR_SCALARS, &r->info));
6373 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
6375 if (ndr_flags & NDR_BUFFERS) {
6376 NDR_CHECK(ndr_push_spoolss_SetJobInfo(ndr, NDR_BUFFERS, &r->info));
6378 return NDR_ERR_SUCCESS;
6381 static enum ndr_err_code ndr_pull_spoolss_JobInfoContainer(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfoContainer *r)
6383 if (ndr_flags & NDR_SCALARS) {
6384 NDR_CHECK(ndr_pull_align(ndr, 5));
6385 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
6386 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
6387 NDR_CHECK(ndr_pull_spoolss_SetJobInfo(ndr, NDR_SCALARS, &r->info));
6388 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
6390 if (ndr_flags & NDR_BUFFERS) {
6391 NDR_CHECK(ndr_pull_spoolss_SetJobInfo(ndr, NDR_BUFFERS, &r->info));
6393 return NDR_ERR_SUCCESS;
6396 _PUBLIC_ void ndr_print_spoolss_JobInfoContainer(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfoContainer *r)
6398 ndr_print_struct(ndr, name, "spoolss_JobInfoContainer");
6400 ndr_print_uint32(ndr, "level", r->level);
6401 ndr_print_set_switch_value(ndr, &r->info, r->level);
6402 ndr_print_spoolss_SetJobInfo(ndr, "info", &r->info);
6406 static enum ndr_err_code ndr_push_spoolss_JobControl(struct ndr_push *ndr, int ndr_flags, enum spoolss_JobControl r)
6408 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
6409 return NDR_ERR_SUCCESS;
6412 static enum ndr_err_code ndr_pull_spoolss_JobControl(struct ndr_pull *ndr, int ndr_flags, enum spoolss_JobControl *r)
6415 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
6417 return NDR_ERR_SUCCESS;
6420 _PUBLIC_ void ndr_print_spoolss_JobControl(struct ndr_print *ndr, const char *name, enum spoolss_JobControl r)
6422 const char *val = NULL;
6425 case SPOOLSS_JOB_CONTROL_PAUSE: val = "SPOOLSS_JOB_CONTROL_PAUSE"; break;
6426 case SPOOLSS_JOB_CONTROL_RESUME: val = "SPOOLSS_JOB_CONTROL_RESUME"; break;
6427 case SPOOLSS_JOB_CONTROL_CANCEL: val = "SPOOLSS_JOB_CONTROL_CANCEL"; break;
6428 case SPOOLSS_JOB_CONTROL_RESTART: val = "SPOOLSS_JOB_CONTROL_RESTART"; break;
6429 case SPOOLSS_JOB_CONTROL_DELETE: val = "SPOOLSS_JOB_CONTROL_DELETE"; break;
6430 case SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER: val = "SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER"; break;
6431 case SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED: val = "SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED"; break;
6432 case SPOOLSS_JOB_CONTROL_RETAIN: val = "SPOOLSS_JOB_CONTROL_RETAIN"; break;
6433 case SPOOLSS_JOB_CONTROL_RELEASE: val = "SPOOLSS_JOB_CONTROL_RELEASE"; break;
6435 ndr_print_enum(ndr, name, "ENUM", val, r);
6438 static enum ndr_err_code ndr_push_spoolss_PrinterControl(struct ndr_push *ndr, int ndr_flags, enum spoolss_PrinterControl r)
6440 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
6441 return NDR_ERR_SUCCESS;
6444 static enum ndr_err_code ndr_pull_spoolss_PrinterControl(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PrinterControl *r)
6447 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
6449 return NDR_ERR_SUCCESS;
6452 _PUBLIC_ void ndr_print_spoolss_PrinterControl(struct ndr_print *ndr, const char *name, enum spoolss_PrinterControl r)
6454 const char *val = NULL;
6457 case SPOOLSS_PRINTER_CONTROL_UNPAUSE: val = "SPOOLSS_PRINTER_CONTROL_UNPAUSE"; break;
6458 case SPOOLSS_PRINTER_CONTROL_PAUSE: val = "SPOOLSS_PRINTER_CONTROL_PAUSE"; break;
6459 case SPOOLSS_PRINTER_CONTROL_RESUME: val = "SPOOLSS_PRINTER_CONTROL_RESUME"; break;
6460 case SPOOLSS_PRINTER_CONTROL_PURGE: val = "SPOOLSS_PRINTER_CONTROL_PURGE"; break;
6461 case SPOOLSS_PRINTER_CONTROL_SET_STATUS: val = "SPOOLSS_PRINTER_CONTROL_SET_STATUS"; break;
6463 ndr_print_enum(ndr, name, "ENUM", val, r);
6466 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo0(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo0 *r)
6468 if (ndr_flags & NDR_SCALARS) {
6469 NDR_CHECK(ndr_push_align(ndr, 5));
6470 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
6471 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
6472 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
6473 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_jobs));
6474 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_bytes));
6475 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->time));
6476 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->global_counter));
6477 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
6478 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
6479 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->free_build));
6480 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->spooling));
6481 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_spooling));
6482 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->session_counter));
6483 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_out_of_paper));
6484 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_not_ready));
6485 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_error));
6486 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->number_of_processors));
6487 NDR_CHECK(ndr_push_spoolss_ProcessorType(ndr, NDR_SCALARS, r->processor_type));
6488 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->high_part_total_bytes));
6489 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->change_id));
6490 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->last_error));
6491 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->status));
6492 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->enumerate_network_printers));
6493 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->c_setprinter));
6494 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor_architecture));
6495 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->processor_level));
6496 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ref_ic));
6497 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved2));
6498 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved3));
6499 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
6501 if (ndr_flags & NDR_BUFFERS) {
6502 if (r->servername) {
6503 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
6504 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6505 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
6506 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6508 if (r->printername) {
6509 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6510 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6511 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6512 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6515 return NDR_ERR_SUCCESS;
6518 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo0(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo0 *r)
6520 uint32_t _ptr_servername;
6521 TALLOC_CTX *_mem_save_servername_0;
6522 uint32_t _ptr_printername;
6523 TALLOC_CTX *_mem_save_printername_0;
6524 if (ndr_flags & NDR_SCALARS) {
6525 NDR_CHECK(ndr_pull_align(ndr, 5));
6526 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
6527 if (_ptr_servername) {
6528 NDR_PULL_ALLOC(ndr, r->servername);
6530 r->servername = NULL;
6532 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
6533 if (_ptr_printername) {
6534 NDR_PULL_ALLOC(ndr, r->printername);
6536 r->printername = NULL;
6538 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
6539 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_jobs));
6540 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_bytes));
6541 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->time));
6542 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->global_counter));
6543 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
6544 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
6545 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->free_build));
6546 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->spooling));
6547 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_spooling));
6548 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->session_counter));
6549 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_out_of_paper));
6550 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_not_ready));
6551 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_error));
6552 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->number_of_processors));
6553 NDR_CHECK(ndr_pull_spoolss_ProcessorType(ndr, NDR_SCALARS, &r->processor_type));
6554 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->high_part_total_bytes));
6555 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->change_id));
6556 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->last_error));
6557 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->status));
6558 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->enumerate_network_printers));
6559 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->c_setprinter));
6560 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor_architecture));
6561 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->processor_level));
6562 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ref_ic));
6563 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
6564 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved3));
6565 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
6567 if (ndr_flags & NDR_BUFFERS) {
6568 if (r->servername) {
6569 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6570 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
6571 NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
6572 NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
6573 if (ndr_get_array_length(ndr, &r->servername) > ndr_get_array_size(ndr, &r->servername)) {
6574 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->servername), ndr_get_array_length(ndr, &r->servername));
6576 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t)));
6577 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t), CH_UTF16));
6578 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
6580 if (r->printername) {
6581 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6582 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
6583 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
6584 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
6585 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
6586 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->printername), ndr_get_array_length(ndr, &r->printername));
6588 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
6589 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
6590 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
6593 return NDR_ERR_SUCCESS;
6596 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo0(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo0 *r)
6598 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo0");
6600 ndr_print_ptr(ndr, "servername", r->servername);
6602 if (r->servername) {
6603 ndr_print_string(ndr, "servername", r->servername);
6606 ndr_print_ptr(ndr, "printername", r->printername);
6608 if (r->printername) {
6609 ndr_print_string(ndr, "printername", r->printername);
6612 ndr_print_uint32(ndr, "cjobs", r->cjobs);
6613 ndr_print_uint32(ndr, "total_jobs", r->total_jobs);
6614 ndr_print_uint32(ndr, "total_bytes", r->total_bytes);
6615 ndr_print_spoolss_Time(ndr, "time", &r->time);
6616 ndr_print_uint32(ndr, "global_counter", r->global_counter);
6617 ndr_print_uint32(ndr, "total_pages", r->total_pages);
6618 ndr_print_uint32(ndr, "version", r->version);
6619 ndr_print_uint32(ndr, "free_build", r->free_build);
6620 ndr_print_uint32(ndr, "spooling", r->spooling);
6621 ndr_print_uint32(ndr, "max_spooling", r->max_spooling);
6622 ndr_print_uint32(ndr, "session_counter", r->session_counter);
6623 ndr_print_uint32(ndr, "num_error_out_of_paper", r->num_error_out_of_paper);
6624 ndr_print_uint32(ndr, "num_error_not_ready", r->num_error_not_ready);
6625 ndr_print_uint32(ndr, "job_error", r->job_error);
6626 ndr_print_uint32(ndr, "number_of_processors", r->number_of_processors);
6627 ndr_print_spoolss_ProcessorType(ndr, "processor_type", r->processor_type);
6628 ndr_print_uint32(ndr, "high_part_total_bytes", r->high_part_total_bytes);
6629 ndr_print_uint32(ndr, "change_id", r->change_id);
6630 ndr_print_WERROR(ndr, "last_error", r->last_error);
6631 ndr_print_uint32(ndr, "status", r->status);
6632 ndr_print_uint32(ndr, "enumerate_network_printers", r->enumerate_network_printers);
6633 ndr_print_uint32(ndr, "c_setprinter", r->c_setprinter);
6634 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor_architecture", r->processor_architecture);
6635 ndr_print_uint16(ndr, "processor_level", r->processor_level);
6636 ndr_print_uint32(ndr, "ref_ic", r->ref_ic);
6637 ndr_print_uint32(ndr, "reserved2", r->reserved2);
6638 ndr_print_uint32(ndr, "reserved3", r->reserved3);
6642 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo1 *r)
6644 if (ndr_flags & NDR_SCALARS) {
6645 NDR_CHECK(ndr_push_align(ndr, 5));
6646 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->flags));
6647 NDR_CHECK(ndr_push_unique_ptr(ndr, r->description));
6648 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
6649 NDR_CHECK(ndr_push_unique_ptr(ndr, r->comment));
6650 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
6652 if (ndr_flags & NDR_BUFFERS) {
6653 if (r->description) {
6654 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->description, CH_UTF16)));
6655 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6656 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->description, CH_UTF16)));
6657 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->description, ndr_charset_length(r->description, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6660 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
6661 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6662 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
6663 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, ndr_charset_length(r->name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6666 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
6667 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6668 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
6669 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->comment, ndr_charset_length(r->comment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6672 return NDR_ERR_SUCCESS;
6675 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo1 *r)
6677 uint32_t _ptr_description;
6678 TALLOC_CTX *_mem_save_description_0;
6680 TALLOC_CTX *_mem_save_name_0;
6681 uint32_t _ptr_comment;
6682 TALLOC_CTX *_mem_save_comment_0;
6683 if (ndr_flags & NDR_SCALARS) {
6684 NDR_CHECK(ndr_pull_align(ndr, 5));
6685 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->flags));
6686 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
6687 if (_ptr_description) {
6688 NDR_PULL_ALLOC(ndr, r->description);
6690 r->description = NULL;
6692 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
6694 NDR_PULL_ALLOC(ndr, r->name);
6698 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
6700 NDR_PULL_ALLOC(ndr, r->comment);
6704 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
6706 if (ndr_flags & NDR_BUFFERS) {
6707 if (r->description) {
6708 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
6709 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
6710 NDR_CHECK(ndr_pull_array_size(ndr, &r->description));
6711 NDR_CHECK(ndr_pull_array_length(ndr, &r->description));
6712 if (ndr_get_array_length(ndr, &r->description) > ndr_get_array_size(ndr, &r->description)) {
6713 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->description), ndr_get_array_length(ndr, &r->description));
6715 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->description), sizeof(uint16_t)));
6716 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->description, ndr_get_array_length(ndr, &r->description), sizeof(uint16_t), CH_UTF16));
6717 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
6720 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6721 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
6722 NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
6723 NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
6724 if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) {
6725 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->name), ndr_get_array_length(ndr, &r->name));
6727 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t)));
6728 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16));
6729 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
6732 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
6733 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
6734 NDR_CHECK(ndr_pull_array_size(ndr, &r->comment));
6735 NDR_CHECK(ndr_pull_array_length(ndr, &r->comment));
6736 if (ndr_get_array_length(ndr, &r->comment) > ndr_get_array_size(ndr, &r->comment)) {
6737 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->comment), ndr_get_array_length(ndr, &r->comment));
6739 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t)));
6740 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t), CH_UTF16));
6741 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
6744 return NDR_ERR_SUCCESS;
6747 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo1 *r)
6749 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo1");
6751 ndr_print_spoolss_PrinterAttributes(ndr, "flags", r->flags);
6752 ndr_print_ptr(ndr, "description", r->description);
6754 if (r->description) {
6755 ndr_print_string(ndr, "description", r->description);
6758 ndr_print_ptr(ndr, "name", r->name);
6761 ndr_print_string(ndr, "name", r->name);
6764 ndr_print_ptr(ndr, "comment", r->comment);
6767 ndr_print_string(ndr, "comment", r->comment);
6773 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo2 *r)
6775 if (ndr_flags & NDR_SCALARS) {
6776 NDR_CHECK(ndr_push_align(ndr, 5));
6777 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
6778 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
6779 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sharename));
6780 NDR_CHECK(ndr_push_unique_ptr(ndr, r->portname));
6781 NDR_CHECK(ndr_push_unique_ptr(ndr, r->drivername));
6782 NDR_CHECK(ndr_push_unique_ptr(ndr, r->comment));
6783 NDR_CHECK(ndr_push_unique_ptr(ndr, r->location));
6784 NDR_CHECK(ndr_push_unique_ptr(ndr, r->devmode));
6785 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sepfile));
6786 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printprocessor));
6787 NDR_CHECK(ndr_push_unique_ptr(ndr, r->datatype));
6788 NDR_CHECK(ndr_push_unique_ptr(ndr, r->parameters));
6789 NDR_CHECK(ndr_push_unique_ptr(ndr, r->secdesc));
6790 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
6791 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
6792 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->defaultpriority));
6793 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->starttime));
6794 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->untiltime));
6795 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
6796 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
6797 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->averageppm));
6798 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
6800 if (ndr_flags & NDR_BUFFERS) {
6801 if (r->servername) {
6802 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
6803 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6804 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
6805 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6807 if (r->printername) {
6808 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6809 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6810 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6811 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6814 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->sharename, CH_UTF16)));
6815 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6816 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->sharename, CH_UTF16)));
6817 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->sharename, ndr_charset_length(r->sharename, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6820 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
6821 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6822 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
6823 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, ndr_charset_length(r->portname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6825 if (r->drivername) {
6826 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->drivername, CH_UTF16)));
6827 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6828 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->drivername, CH_UTF16)));
6829 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->drivername, ndr_charset_length(r->drivername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6832 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
6833 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6834 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
6835 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->comment, ndr_charset_length(r->comment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6838 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->location, CH_UTF16)));
6839 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6840 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->location, CH_UTF16)));
6841 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->location, ndr_charset_length(r->location, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6845 struct ndr_push *_ndr_devmode;
6846 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
6847 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
6848 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
6852 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->sepfile, CH_UTF16)));
6853 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6854 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->sepfile, CH_UTF16)));
6855 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->sepfile, ndr_charset_length(r->sepfile, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6857 if (r->printprocessor) {
6858 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printprocessor, CH_UTF16)));
6859 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6860 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printprocessor, CH_UTF16)));
6861 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printprocessor, ndr_charset_length(r->printprocessor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6864 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
6865 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6866 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
6867 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->datatype, ndr_charset_length(r->datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6869 if (r->parameters) {
6870 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
6871 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6872 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
6873 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->parameters, ndr_charset_length(r->parameters, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6877 struct ndr_push *_ndr_secdesc;
6878 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
6879 NDR_CHECK(ndr_push_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
6880 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
6884 return NDR_ERR_SUCCESS;
6887 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo2 *r)
6889 uint32_t _ptr_servername;
6890 TALLOC_CTX *_mem_save_servername_0;
6891 uint32_t _ptr_printername;
6892 TALLOC_CTX *_mem_save_printername_0;
6893 uint32_t _ptr_sharename;
6894 TALLOC_CTX *_mem_save_sharename_0;
6895 uint32_t _ptr_portname;
6896 TALLOC_CTX *_mem_save_portname_0;
6897 uint32_t _ptr_drivername;
6898 TALLOC_CTX *_mem_save_drivername_0;
6899 uint32_t _ptr_comment;
6900 TALLOC_CTX *_mem_save_comment_0;
6901 uint32_t _ptr_location;
6902 TALLOC_CTX *_mem_save_location_0;
6903 uint32_t _ptr_devmode;
6904 TALLOC_CTX *_mem_save_devmode_0;
6905 uint32_t _ptr_sepfile;
6906 TALLOC_CTX *_mem_save_sepfile_0;
6907 uint32_t _ptr_printprocessor;
6908 TALLOC_CTX *_mem_save_printprocessor_0;
6909 uint32_t _ptr_datatype;
6910 TALLOC_CTX *_mem_save_datatype_0;
6911 uint32_t _ptr_parameters;
6912 TALLOC_CTX *_mem_save_parameters_0;
6913 uint32_t _ptr_secdesc;
6914 TALLOC_CTX *_mem_save_secdesc_0;
6915 if (ndr_flags & NDR_SCALARS) {
6916 NDR_CHECK(ndr_pull_align(ndr, 5));
6917 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
6918 if (_ptr_servername) {
6919 NDR_PULL_ALLOC(ndr, r->servername);
6921 r->servername = NULL;
6923 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
6924 if (_ptr_printername) {
6925 NDR_PULL_ALLOC(ndr, r->printername);
6927 r->printername = NULL;
6929 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sharename));
6930 if (_ptr_sharename) {
6931 NDR_PULL_ALLOC(ndr, r->sharename);
6933 r->sharename = NULL;
6935 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
6936 if (_ptr_portname) {
6937 NDR_PULL_ALLOC(ndr, r->portname);
6941 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_drivername));
6942 if (_ptr_drivername) {
6943 NDR_PULL_ALLOC(ndr, r->drivername);
6945 r->drivername = NULL;
6947 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
6949 NDR_PULL_ALLOC(ndr, r->comment);
6953 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_location));
6954 if (_ptr_location) {
6955 NDR_PULL_ALLOC(ndr, r->location);
6959 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
6961 NDR_PULL_ALLOC(ndr, r->devmode);
6965 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sepfile));
6967 NDR_PULL_ALLOC(ndr, r->sepfile);
6971 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printprocessor));
6972 if (_ptr_printprocessor) {
6973 NDR_PULL_ALLOC(ndr, r->printprocessor);
6975 r->printprocessor = NULL;
6977 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
6978 if (_ptr_datatype) {
6979 NDR_PULL_ALLOC(ndr, r->datatype);
6983 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
6984 if (_ptr_parameters) {
6985 NDR_PULL_ALLOC(ndr, r->parameters);
6987 r->parameters = NULL;
6989 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
6991 NDR_PULL_ALLOC(ndr, r->secdesc);
6995 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
6996 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
6997 if (r->priority > 99) {
6998 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
7000 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->defaultpriority));
7001 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->starttime));
7002 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->untiltime));
7003 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
7004 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
7005 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->averageppm));
7006 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
7008 if (ndr_flags & NDR_BUFFERS) {
7009 if (r->servername) {
7010 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
7011 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
7012 NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
7013 NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
7014 if (ndr_get_array_length(ndr, &r->servername) > ndr_get_array_size(ndr, &r->servername)) {
7015 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->servername), ndr_get_array_length(ndr, &r->servername));
7017 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t)));
7018 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t), CH_UTF16));
7019 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
7021 if (r->printername) {
7022 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
7023 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
7024 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
7025 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
7026 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
7027 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->printername), ndr_get_array_length(ndr, &r->printername));
7029 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
7030 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
7031 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
7034 _mem_save_sharename_0 = NDR_PULL_GET_MEM_CTX(ndr);
7035 NDR_PULL_SET_MEM_CTX(ndr, r->sharename, 0);
7036 NDR_CHECK(ndr_pull_array_size(ndr, &r->sharename));
7037 NDR_CHECK(ndr_pull_array_length(ndr, &r->sharename));
7038 if (ndr_get_array_length(ndr, &r->sharename) > ndr_get_array_size(ndr, &r->sharename)) {
7039 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->sharename), ndr_get_array_length(ndr, &r->sharename));
7041 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->sharename), sizeof(uint16_t)));
7042 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->sharename, ndr_get_array_length(ndr, &r->sharename), sizeof(uint16_t), CH_UTF16));
7043 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sharename_0, 0);
7046 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
7047 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
7048 NDR_CHECK(ndr_pull_array_size(ndr, &r->portname));
7049 NDR_CHECK(ndr_pull_array_length(ndr, &r->portname));
7050 if (ndr_get_array_length(ndr, &r->portname) > ndr_get_array_size(ndr, &r->portname)) {
7051 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->portname), ndr_get_array_length(ndr, &r->portname));
7053 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t)));
7054 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t), CH_UTF16));
7055 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
7057 if (r->drivername) {
7058 _mem_save_drivername_0 = NDR_PULL_GET_MEM_CTX(ndr);
7059 NDR_PULL_SET_MEM_CTX(ndr, r->drivername, 0);
7060 NDR_CHECK(ndr_pull_array_size(ndr, &r->drivername));
7061 NDR_CHECK(ndr_pull_array_length(ndr, &r->drivername));
7062 if (ndr_get_array_length(ndr, &r->drivername) > ndr_get_array_size(ndr, &r->drivername)) {
7063 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->drivername), ndr_get_array_length(ndr, &r->drivername));
7065 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->drivername), sizeof(uint16_t)));
7066 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->drivername, ndr_get_array_length(ndr, &r->drivername), sizeof(uint16_t), CH_UTF16));
7067 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_drivername_0, 0);
7070 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
7071 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
7072 NDR_CHECK(ndr_pull_array_size(ndr, &r->comment));
7073 NDR_CHECK(ndr_pull_array_length(ndr, &r->comment));
7074 if (ndr_get_array_length(ndr, &r->comment) > ndr_get_array_size(ndr, &r->comment)) {
7075 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->comment), ndr_get_array_length(ndr, &r->comment));
7077 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t)));
7078 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t), CH_UTF16));
7079 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
7082 _mem_save_location_0 = NDR_PULL_GET_MEM_CTX(ndr);
7083 NDR_PULL_SET_MEM_CTX(ndr, r->location, 0);
7084 NDR_CHECK(ndr_pull_array_size(ndr, &r->location));
7085 NDR_CHECK(ndr_pull_array_length(ndr, &r->location));
7086 if (ndr_get_array_length(ndr, &r->location) > ndr_get_array_size(ndr, &r->location)) {
7087 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->location), ndr_get_array_length(ndr, &r->location));
7089 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->location), sizeof(uint16_t)));
7090 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->location, ndr_get_array_length(ndr, &r->location), sizeof(uint16_t), CH_UTF16));
7091 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_location_0, 0);
7094 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
7095 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
7097 struct ndr_pull *_ndr_devmode;
7098 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
7099 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
7100 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
7102 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
7105 _mem_save_sepfile_0 = NDR_PULL_GET_MEM_CTX(ndr);
7106 NDR_PULL_SET_MEM_CTX(ndr, r->sepfile, 0);
7107 NDR_CHECK(ndr_pull_array_size(ndr, &r->sepfile));
7108 NDR_CHECK(ndr_pull_array_length(ndr, &r->sepfile));
7109 if (ndr_get_array_length(ndr, &r->sepfile) > ndr_get_array_size(ndr, &r->sepfile)) {
7110 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->sepfile), ndr_get_array_length(ndr, &r->sepfile));
7112 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->sepfile), sizeof(uint16_t)));
7113 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->sepfile, ndr_get_array_length(ndr, &r->sepfile), sizeof(uint16_t), CH_UTF16));
7114 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sepfile_0, 0);
7116 if (r->printprocessor) {
7117 _mem_save_printprocessor_0 = NDR_PULL_GET_MEM_CTX(ndr);
7118 NDR_PULL_SET_MEM_CTX(ndr, r->printprocessor, 0);
7119 NDR_CHECK(ndr_pull_array_size(ndr, &r->printprocessor));
7120 NDR_CHECK(ndr_pull_array_length(ndr, &r->printprocessor));
7121 if (ndr_get_array_length(ndr, &r->printprocessor) > ndr_get_array_size(ndr, &r->printprocessor)) {
7122 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->printprocessor), ndr_get_array_length(ndr, &r->printprocessor));
7124 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printprocessor), sizeof(uint16_t)));
7125 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printprocessor, ndr_get_array_length(ndr, &r->printprocessor), sizeof(uint16_t), CH_UTF16));
7126 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printprocessor_0, 0);
7129 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
7130 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
7131 NDR_CHECK(ndr_pull_array_size(ndr, &r->datatype));
7132 NDR_CHECK(ndr_pull_array_length(ndr, &r->datatype));
7133 if (ndr_get_array_length(ndr, &r->datatype) > ndr_get_array_size(ndr, &r->datatype)) {
7134 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->datatype), ndr_get_array_length(ndr, &r->datatype));
7136 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t)));
7137 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->datatype, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t), CH_UTF16));
7138 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
7140 if (r->parameters) {
7141 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
7142 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
7143 NDR_CHECK(ndr_pull_array_size(ndr, &r->parameters));
7144 NDR_CHECK(ndr_pull_array_length(ndr, &r->parameters));
7145 if (ndr_get_array_length(ndr, &r->parameters) > ndr_get_array_size(ndr, &r->parameters)) {
7146 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->parameters), ndr_get_array_length(ndr, &r->parameters));
7148 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t)));
7149 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t), CH_UTF16));
7150 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
7153 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
7154 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
7156 struct ndr_pull *_ndr_secdesc;
7157 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
7158 NDR_CHECK(ndr_pull_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
7159 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
7161 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
7164 return NDR_ERR_SUCCESS;
7167 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo2 *r)
7169 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo2");
7171 ndr_print_ptr(ndr, "servername", r->servername);
7173 if (r->servername) {
7174 ndr_print_string(ndr, "servername", r->servername);
7177 ndr_print_ptr(ndr, "printername", r->printername);
7179 if (r->printername) {
7180 ndr_print_string(ndr, "printername", r->printername);
7183 ndr_print_ptr(ndr, "sharename", r->sharename);
7186 ndr_print_string(ndr, "sharename", r->sharename);
7189 ndr_print_ptr(ndr, "portname", r->portname);
7192 ndr_print_string(ndr, "portname", r->portname);
7195 ndr_print_ptr(ndr, "drivername", r->drivername);
7197 if (r->drivername) {
7198 ndr_print_string(ndr, "drivername", r->drivername);
7201 ndr_print_ptr(ndr, "comment", r->comment);
7204 ndr_print_string(ndr, "comment", r->comment);
7207 ndr_print_ptr(ndr, "location", r->location);
7210 ndr_print_string(ndr, "location", r->location);
7213 ndr_print_ptr(ndr, "devmode", r->devmode);
7216 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
7219 ndr_print_ptr(ndr, "sepfile", r->sepfile);
7222 ndr_print_string(ndr, "sepfile", r->sepfile);
7225 ndr_print_ptr(ndr, "printprocessor", r->printprocessor);
7227 if (r->printprocessor) {
7228 ndr_print_string(ndr, "printprocessor", r->printprocessor);
7231 ndr_print_ptr(ndr, "datatype", r->datatype);
7234 ndr_print_string(ndr, "datatype", r->datatype);
7237 ndr_print_ptr(ndr, "parameters", r->parameters);
7239 if (r->parameters) {
7240 ndr_print_string(ndr, "parameters", r->parameters);
7243 ndr_print_ptr(ndr, "secdesc", r->secdesc);
7246 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
7249 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
7250 ndr_print_uint32(ndr, "priority", r->priority);
7251 ndr_print_uint32(ndr, "defaultpriority", r->defaultpriority);
7252 ndr_print_uint32(ndr, "starttime", r->starttime);
7253 ndr_print_uint32(ndr, "untiltime", r->untiltime);
7254 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
7255 ndr_print_uint32(ndr, "cjobs", r->cjobs);
7256 ndr_print_uint32(ndr, "averageppm", r->averageppm);
7260 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo3 *r)
7262 if (ndr_flags & NDR_SCALARS) {
7263 NDR_CHECK(ndr_push_align(ndr, 4));
7264 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sec_desc_ptr));
7265 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
7267 if (ndr_flags & NDR_BUFFERS) {
7269 return NDR_ERR_SUCCESS;
7272 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo3 *r)
7274 if (ndr_flags & NDR_SCALARS) {
7275 NDR_CHECK(ndr_pull_align(ndr, 4));
7276 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sec_desc_ptr));
7277 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
7279 if (ndr_flags & NDR_BUFFERS) {
7281 return NDR_ERR_SUCCESS;
7284 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo3 *r)
7286 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo3");
7288 ndr_print_uint32(ndr, "sec_desc_ptr", r->sec_desc_ptr);
7292 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo4 *r)
7294 if (ndr_flags & NDR_SCALARS) {
7295 NDR_CHECK(ndr_push_align(ndr, 5));
7296 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
7297 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
7298 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
7299 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
7301 if (ndr_flags & NDR_BUFFERS) {
7302 if (r->printername) {
7303 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
7304 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7305 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
7306 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7308 if (r->servername) {
7309 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
7310 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7311 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
7312 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7315 return NDR_ERR_SUCCESS;
7318 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo4 *r)
7320 uint32_t _ptr_printername;
7321 TALLOC_CTX *_mem_save_printername_0;
7322 uint32_t _ptr_servername;
7323 TALLOC_CTX *_mem_save_servername_0;
7324 if (ndr_flags & NDR_SCALARS) {
7325 NDR_CHECK(ndr_pull_align(ndr, 5));
7326 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
7327 if (_ptr_printername) {
7328 NDR_PULL_ALLOC(ndr, r->printername);
7330 r->printername = NULL;
7332 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
7333 if (_ptr_servername) {
7334 NDR_PULL_ALLOC(ndr, r->servername);
7336 r->servername = NULL;
7338 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
7339 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
7341 if (ndr_flags & NDR_BUFFERS) {
7342 if (r->printername) {
7343 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
7344 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
7345 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
7346 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
7347 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
7348 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->printername), ndr_get_array_length(ndr, &r->printername));
7350 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
7351 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
7352 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
7354 if (r->servername) {
7355 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
7356 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
7357 NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
7358 NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
7359 if (ndr_get_array_length(ndr, &r->servername) > ndr_get_array_size(ndr, &r->servername)) {
7360 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->servername), ndr_get_array_length(ndr, &r->servername));
7362 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t)));
7363 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t), CH_UTF16));
7364 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
7367 return NDR_ERR_SUCCESS;
7370 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo4 *r)
7372 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo4");
7374 ndr_print_ptr(ndr, "printername", r->printername);
7376 if (r->printername) {
7377 ndr_print_string(ndr, "printername", r->printername);
7380 ndr_print_ptr(ndr, "servername", r->servername);
7382 if (r->servername) {
7383 ndr_print_string(ndr, "servername", r->servername);
7386 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
7390 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo5 *r)
7392 if (ndr_flags & NDR_SCALARS) {
7393 NDR_CHECK(ndr_push_align(ndr, 5));
7394 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
7395 NDR_CHECK(ndr_push_unique_ptr(ndr, r->portname));
7396 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
7397 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->device_not_selected_timeout));
7398 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->transmission_retry_timeout));
7399 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
7401 if (ndr_flags & NDR_BUFFERS) {
7402 if (r->printername) {
7403 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
7404 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7405 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
7406 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7409 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
7410 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7411 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
7412 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, ndr_charset_length(r->portname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7415 return NDR_ERR_SUCCESS;
7418 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo5 *r)
7420 uint32_t _ptr_printername;
7421 TALLOC_CTX *_mem_save_printername_0;
7422 uint32_t _ptr_portname;
7423 TALLOC_CTX *_mem_save_portname_0;
7424 if (ndr_flags & NDR_SCALARS) {
7425 NDR_CHECK(ndr_pull_align(ndr, 5));
7426 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
7427 if (_ptr_printername) {
7428 NDR_PULL_ALLOC(ndr, r->printername);
7430 r->printername = NULL;
7432 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
7433 if (_ptr_portname) {
7434 NDR_PULL_ALLOC(ndr, r->portname);
7438 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
7439 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->device_not_selected_timeout));
7440 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->transmission_retry_timeout));
7441 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
7443 if (ndr_flags & NDR_BUFFERS) {
7444 if (r->printername) {
7445 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
7446 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
7447 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
7448 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
7449 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
7450 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->printername), ndr_get_array_length(ndr, &r->printername));
7452 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
7453 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
7454 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
7457 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
7458 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
7459 NDR_CHECK(ndr_pull_array_size(ndr, &r->portname));
7460 NDR_CHECK(ndr_pull_array_length(ndr, &r->portname));
7461 if (ndr_get_array_length(ndr, &r->portname) > ndr_get_array_size(ndr, &r->portname)) {
7462 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->portname), ndr_get_array_length(ndr, &r->portname));
7464 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t)));
7465 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t), CH_UTF16));
7466 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
7469 return NDR_ERR_SUCCESS;
7472 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo5 *r)
7474 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo5");
7476 ndr_print_ptr(ndr, "printername", r->printername);
7478 if (r->printername) {
7479 ndr_print_string(ndr, "printername", r->printername);
7482 ndr_print_ptr(ndr, "portname", r->portname);
7485 ndr_print_string(ndr, "portname", r->portname);
7488 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
7489 ndr_print_uint32(ndr, "device_not_selected_timeout", r->device_not_selected_timeout);
7490 ndr_print_uint32(ndr, "transmission_retry_timeout", r->transmission_retry_timeout);
7494 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo6 *r)
7496 if (ndr_flags & NDR_SCALARS) {
7497 NDR_CHECK(ndr_push_align(ndr, 4));
7498 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
7499 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
7501 if (ndr_flags & NDR_BUFFERS) {
7503 return NDR_ERR_SUCCESS;
7506 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo6 *r)
7508 if (ndr_flags & NDR_SCALARS) {
7509 NDR_CHECK(ndr_pull_align(ndr, 4));
7510 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
7511 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
7513 if (ndr_flags & NDR_BUFFERS) {
7515 return NDR_ERR_SUCCESS;
7518 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo6 *r)
7520 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo6");
7522 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
7526 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo7(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo7 *r)
7528 if (ndr_flags & NDR_SCALARS) {
7529 NDR_CHECK(ndr_push_align(ndr, 5));
7530 NDR_CHECK(ndr_push_unique_ptr(ndr, r->guid));
7531 NDR_CHECK(ndr_push_spoolss_DsPrintAction(ndr, NDR_SCALARS, r->action));
7532 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
7534 if (ndr_flags & NDR_BUFFERS) {
7536 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->guid, CH_UTF16)));
7537 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7538 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->guid, CH_UTF16)));
7539 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->guid, ndr_charset_length(r->guid, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7542 return NDR_ERR_SUCCESS;
7545 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo7(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo7 *r)
7548 TALLOC_CTX *_mem_save_guid_0;
7549 if (ndr_flags & NDR_SCALARS) {
7550 NDR_CHECK(ndr_pull_align(ndr, 5));
7551 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_guid));
7553 NDR_PULL_ALLOC(ndr, r->guid);
7557 NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr, NDR_SCALARS, &r->action));
7558 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
7560 if (ndr_flags & NDR_BUFFERS) {
7562 _mem_save_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
7563 NDR_PULL_SET_MEM_CTX(ndr, r->guid, 0);
7564 NDR_CHECK(ndr_pull_array_size(ndr, &r->guid));
7565 NDR_CHECK(ndr_pull_array_length(ndr, &r->guid));
7566 if (ndr_get_array_length(ndr, &r->guid) > ndr_get_array_size(ndr, &r->guid)) {
7567 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->guid), ndr_get_array_length(ndr, &r->guid));
7569 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->guid), sizeof(uint16_t)));
7570 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->guid, ndr_get_array_length(ndr, &r->guid), sizeof(uint16_t), CH_UTF16));
7571 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_guid_0, 0);
7574 return NDR_ERR_SUCCESS;
7577 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo7(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo7 *r)
7579 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo7");
7581 ndr_print_ptr(ndr, "guid", r->guid);
7584 ndr_print_string(ndr, "guid", r->guid);
7587 ndr_print_spoolss_DsPrintAction(ndr, "action", r->action);
7591 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_SetPrinterInfo *r)
7593 if (ndr_flags & NDR_SCALARS) {
7594 int level = ndr_push_get_switch_value(ndr, r);
7595 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
7596 NDR_CHECK(ndr_push_union_align(ndr, 5));
7599 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info0));
7603 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
7607 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
7611 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
7615 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
7619 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info5));
7623 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info6));
7627 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info7));
7631 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info8));
7635 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info9));
7643 if (ndr_flags & NDR_BUFFERS) {
7644 int level = ndr_push_get_switch_value(ndr, r);
7648 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo0(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
7654 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7660 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
7666 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo3(ndr, NDR_SCALARS, r->info3));
7672 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
7678 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo5(ndr, NDR_SCALARS|NDR_BUFFERS, r->info5));
7684 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo6(ndr, NDR_SCALARS, r->info6));
7690 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo7(ndr, NDR_SCALARS|NDR_BUFFERS, r->info7));
7696 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
7702 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info9));
7711 return NDR_ERR_SUCCESS;
7714 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_SetPrinterInfo *r)
7718 TALLOC_CTX *_mem_save_info0_0;
7719 TALLOC_CTX *_mem_save_info1_0;
7720 TALLOC_CTX *_mem_save_info2_0;
7721 TALLOC_CTX *_mem_save_info3_0;
7722 TALLOC_CTX *_mem_save_info4_0;
7723 TALLOC_CTX *_mem_save_info5_0;
7724 TALLOC_CTX *_mem_save_info6_0;
7725 TALLOC_CTX *_mem_save_info7_0;
7726 TALLOC_CTX *_mem_save_info8_0;
7727 TALLOC_CTX *_mem_save_info9_0;
7728 level = ndr_pull_get_switch_value(ndr, r);
7729 if (ndr_flags & NDR_SCALARS) {
7730 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
7731 if (_level != level) {
7732 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
7734 NDR_CHECK(ndr_pull_union_align(ndr, 5));
7737 uint32_t _ptr_info0;
7738 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0));
7740 NDR_PULL_ALLOC(ndr, r->info0);
7747 uint32_t _ptr_info1;
7748 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
7750 NDR_PULL_ALLOC(ndr, r->info1);
7757 uint32_t _ptr_info2;
7758 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
7760 NDR_PULL_ALLOC(ndr, r->info2);
7767 uint32_t _ptr_info3;
7768 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
7770 NDR_PULL_ALLOC(ndr, r->info3);
7777 uint32_t _ptr_info4;
7778 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
7780 NDR_PULL_ALLOC(ndr, r->info4);
7787 uint32_t _ptr_info5;
7788 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info5));
7790 NDR_PULL_ALLOC(ndr, r->info5);
7797 uint32_t _ptr_info6;
7798 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info6));
7800 NDR_PULL_ALLOC(ndr, r->info6);
7807 uint32_t _ptr_info7;
7808 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info7));
7810 NDR_PULL_ALLOC(ndr, r->info7);
7817 uint32_t _ptr_info8;
7818 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info8));
7820 NDR_PULL_ALLOC(ndr, r->info8);
7827 uint32_t _ptr_info9;
7828 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info9));
7830 NDR_PULL_ALLOC(ndr, r->info9);
7841 if (ndr_flags & NDR_BUFFERS) {
7845 _mem_save_info0_0 = NDR_PULL_GET_MEM_CTX(ndr);
7846 NDR_PULL_SET_MEM_CTX(ndr, r->info0, 0);
7847 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo0(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
7848 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info0_0, 0);
7854 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
7855 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
7856 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7857 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
7863 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
7864 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
7865 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
7866 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
7872 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
7873 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
7874 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo3(ndr, NDR_SCALARS, r->info3));
7875 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
7881 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
7882 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
7883 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
7884 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
7890 _mem_save_info5_0 = NDR_PULL_GET_MEM_CTX(ndr);
7891 NDR_PULL_SET_MEM_CTX(ndr, r->info5, 0);
7892 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo5(ndr, NDR_SCALARS|NDR_BUFFERS, r->info5));
7893 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info5_0, 0);
7899 _mem_save_info6_0 = NDR_PULL_GET_MEM_CTX(ndr);
7900 NDR_PULL_SET_MEM_CTX(ndr, r->info6, 0);
7901 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo6(ndr, NDR_SCALARS, r->info6));
7902 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info6_0, 0);
7908 _mem_save_info7_0 = NDR_PULL_GET_MEM_CTX(ndr);
7909 NDR_PULL_SET_MEM_CTX(ndr, r->info7, 0);
7910 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo7(ndr, NDR_SCALARS|NDR_BUFFERS, r->info7));
7911 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info7_0, 0);
7917 _mem_save_info8_0 = NDR_PULL_GET_MEM_CTX(ndr);
7918 NDR_PULL_SET_MEM_CTX(ndr, r->info8, 0);
7919 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
7920 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info8_0, 0);
7926 _mem_save_info9_0 = NDR_PULL_GET_MEM_CTX(ndr);
7927 NDR_PULL_SET_MEM_CTX(ndr, r->info9, 0);
7928 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info9));
7929 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info9_0, 0);
7938 return NDR_ERR_SUCCESS;
7941 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_SetPrinterInfo *r)
7944 level = ndr_print_get_switch_value(ndr, r);
7945 ndr_print_union(ndr, name, level, "spoolss_SetPrinterInfo");
7948 ndr_print_ptr(ndr, "info0", r->info0);
7951 ndr_print_spoolss_SetPrinterInfo0(ndr, "info0", r->info0);
7957 ndr_print_ptr(ndr, "info1", r->info1);
7960 ndr_print_spoolss_SetPrinterInfo1(ndr, "info1", r->info1);
7966 ndr_print_ptr(ndr, "info2", r->info2);
7969 ndr_print_spoolss_SetPrinterInfo2(ndr, "info2", r->info2);
7975 ndr_print_ptr(ndr, "info3", r->info3);
7978 ndr_print_spoolss_SetPrinterInfo3(ndr, "info3", r->info3);
7984 ndr_print_ptr(ndr, "info4", r->info4);
7987 ndr_print_spoolss_SetPrinterInfo4(ndr, "info4", r->info4);
7993 ndr_print_ptr(ndr, "info5", r->info5);
7996 ndr_print_spoolss_SetPrinterInfo5(ndr, "info5", r->info5);
8002 ndr_print_ptr(ndr, "info6", r->info6);
8005 ndr_print_spoolss_SetPrinterInfo6(ndr, "info6", r->info6);
8011 ndr_print_ptr(ndr, "info7", r->info7);
8014 ndr_print_spoolss_SetPrinterInfo7(ndr, "info7", r->info7);
8020 ndr_print_ptr(ndr, "info8", r->info8);
8023 ndr_print_spoolss_DeviceModeInfo(ndr, "info8", r->info8);
8029 ndr_print_ptr(ndr, "info9", r->info9);
8032 ndr_print_spoolss_DeviceModeInfo(ndr, "info9", r->info9);
8043 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfoCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfoCtr *r)
8045 if (ndr_flags & NDR_SCALARS) {
8046 NDR_CHECK(ndr_push_align(ndr, 5));
8047 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
8048 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
8049 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr, NDR_SCALARS, &r->info));
8050 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8052 if (ndr_flags & NDR_BUFFERS) {
8053 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr, NDR_BUFFERS, &r->info));
8055 return NDR_ERR_SUCCESS;
8058 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfoCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfoCtr *r)
8060 if (ndr_flags & NDR_SCALARS) {
8061 NDR_CHECK(ndr_pull_align(ndr, 5));
8062 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
8063 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
8064 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr, NDR_SCALARS, &r->info));
8065 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8067 if (ndr_flags & NDR_BUFFERS) {
8068 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr, NDR_BUFFERS, &r->info));
8070 return NDR_ERR_SUCCESS;
8073 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfoCtr(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfoCtr *r)
8075 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfoCtr");
8077 ndr_print_uint32(ndr, "level", r->level);
8078 ndr_print_set_switch_value(ndr, &r->info, r->level);
8079 ndr_print_spoolss_SetPrinterInfo(ndr, "info", &r->info);
8083 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_StringArray(struct ndr_push *ndr, int ndr_flags, const struct spoolss_StringArray *r)
8085 if (ndr_flags & NDR_SCALARS) {
8086 NDR_CHECK(ndr_push_align(ndr, 4));
8087 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, (ndr_size_spoolss_StringArray(r, ndr->iconv_convenience, ndr->flags) - 4) / 2));
8089 uint32_t _flags_save_string_array = ndr->flags;
8090 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8091 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string));
8092 ndr->flags = _flags_save_string_array;
8094 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
8096 if (ndr_flags & NDR_BUFFERS) {
8098 return NDR_ERR_SUCCESS;
8101 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_StringArray(struct ndr_pull *ndr, int ndr_flags, struct spoolss_StringArray *r)
8103 if (ndr_flags & NDR_SCALARS) {
8104 NDR_CHECK(ndr_pull_align(ndr, 4));
8105 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
8107 uint32_t _flags_save_string_array = ndr->flags;
8108 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8109 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string));
8110 ndr->flags = _flags_save_string_array;
8112 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
8114 if (ndr_flags & NDR_BUFFERS) {
8116 return NDR_ERR_SUCCESS;
8119 _PUBLIC_ void ndr_print_spoolss_StringArray(struct ndr_print *ndr, const char *name, const struct spoolss_StringArray *r)
8121 ndr_print_struct(ndr, name, "spoolss_StringArray");
8123 ndr_print_uint32(ndr, "_ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?(ndr_size_spoolss_StringArray(r, ndr->iconv_convenience, ndr->flags) - 4) / 2:r->_ndr_size);
8124 ndr_print_string_array(ndr, "string", r->string);
8128 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo1 *r)
8130 if (ndr_flags & NDR_SCALARS) {
8131 NDR_CHECK(ndr_push_align(ndr, 5));
8132 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
8133 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8135 if (ndr_flags & NDR_BUFFERS) {
8136 if (r->driver_name) {
8137 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8138 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8139 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8140 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8143 return NDR_ERR_SUCCESS;
8146 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo1 *r)
8148 uint32_t _ptr_driver_name;
8149 TALLOC_CTX *_mem_save_driver_name_0;
8150 if (ndr_flags & NDR_SCALARS) {
8151 NDR_CHECK(ndr_pull_align(ndr, 5));
8152 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8153 if (_ptr_driver_name) {
8154 NDR_PULL_ALLOC(ndr, r->driver_name);
8156 r->driver_name = NULL;
8158 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8160 if (ndr_flags & NDR_BUFFERS) {
8161 if (r->driver_name) {
8162 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8163 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8164 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
8165 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
8166 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
8167 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_name), ndr_get_array_length(ndr, &r->driver_name));
8169 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
8170 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
8171 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8174 return NDR_ERR_SUCCESS;
8177 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo1 *r)
8179 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo1");
8181 ndr_print_ptr(ndr, "driver_name", r->driver_name);
8183 if (r->driver_name) {
8184 ndr_print_string(ndr, "driver_name", r->driver_name);
8190 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverOSVersion(struct ndr_push *ndr, int ndr_flags, enum spoolss_DriverOSVersion r)
8192 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
8193 return NDR_ERR_SUCCESS;
8196 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverOSVersion(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DriverOSVersion *r)
8199 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
8201 return NDR_ERR_SUCCESS;
8204 _PUBLIC_ void ndr_print_spoolss_DriverOSVersion(struct ndr_print *ndr, const char *name, enum spoolss_DriverOSVersion r)
8206 const char *val = NULL;
8209 case SPOOLSS_DRIVER_VERSION_9X: val = "SPOOLSS_DRIVER_VERSION_9X"; break;
8210 case SPOOLSS_DRIVER_VERSION_NT35: val = "SPOOLSS_DRIVER_VERSION_NT35"; break;
8211 case SPOOLSS_DRIVER_VERSION_NT4: val = "SPOOLSS_DRIVER_VERSION_NT4"; break;
8212 case SPOOLSS_DRIVER_VERSION_200X: val = "SPOOLSS_DRIVER_VERSION_200X"; break;
8214 ndr_print_enum(ndr, name, "ENUM", val, r);
8217 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo2 *r)
8219 if (ndr_flags & NDR_SCALARS) {
8220 NDR_CHECK(ndr_push_align(ndr, 5));
8221 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
8222 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
8223 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
8224 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
8225 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
8226 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
8227 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8229 if (ndr_flags & NDR_BUFFERS) {
8230 if (r->driver_name) {
8231 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8232 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8233 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8234 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8236 if (r->architecture) {
8237 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8238 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8239 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8240 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8242 if (r->driver_path) {
8243 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8244 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8245 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8246 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8249 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8250 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8251 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8252 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8254 if (r->config_file) {
8255 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8256 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8257 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8258 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8261 return NDR_ERR_SUCCESS;
8264 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo2 *r)
8266 uint32_t _ptr_driver_name;
8267 TALLOC_CTX *_mem_save_driver_name_0;
8268 uint32_t _ptr_architecture;
8269 TALLOC_CTX *_mem_save_architecture_0;
8270 uint32_t _ptr_driver_path;
8271 TALLOC_CTX *_mem_save_driver_path_0;
8272 uint32_t _ptr_data_file;
8273 TALLOC_CTX *_mem_save_data_file_0;
8274 uint32_t _ptr_config_file;
8275 TALLOC_CTX *_mem_save_config_file_0;
8276 if (ndr_flags & NDR_SCALARS) {
8277 NDR_CHECK(ndr_pull_align(ndr, 5));
8278 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
8279 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8280 if (_ptr_driver_name) {
8281 NDR_PULL_ALLOC(ndr, r->driver_name);
8283 r->driver_name = NULL;
8285 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
8286 if (_ptr_architecture) {
8287 NDR_PULL_ALLOC(ndr, r->architecture);
8289 r->architecture = NULL;
8291 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
8292 if (_ptr_driver_path) {
8293 NDR_PULL_ALLOC(ndr, r->driver_path);
8295 r->driver_path = NULL;
8297 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
8298 if (_ptr_data_file) {
8299 NDR_PULL_ALLOC(ndr, r->data_file);
8301 r->data_file = NULL;
8303 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
8304 if (_ptr_config_file) {
8305 NDR_PULL_ALLOC(ndr, r->config_file);
8307 r->config_file = NULL;
8309 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8311 if (ndr_flags & NDR_BUFFERS) {
8312 if (r->driver_name) {
8313 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8314 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8315 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
8316 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
8317 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
8318 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_name), ndr_get_array_length(ndr, &r->driver_name));
8320 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
8321 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
8322 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8324 if (r->architecture) {
8325 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
8326 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
8327 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
8328 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
8329 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
8330 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->architecture), ndr_get_array_length(ndr, &r->architecture));
8332 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
8333 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
8334 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
8336 if (r->driver_path) {
8337 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
8338 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
8339 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
8340 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
8341 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
8342 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_path), ndr_get_array_length(ndr, &r->driver_path));
8344 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
8345 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
8346 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
8349 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8350 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
8351 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
8352 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
8353 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
8354 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data_file), ndr_get_array_length(ndr, &r->data_file));
8356 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
8357 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
8358 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
8360 if (r->config_file) {
8361 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8362 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
8363 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
8364 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
8365 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
8366 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->config_file), ndr_get_array_length(ndr, &r->config_file));
8368 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
8369 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
8370 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
8373 return NDR_ERR_SUCCESS;
8376 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo2 *r)
8378 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo2");
8380 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
8381 ndr_print_ptr(ndr, "driver_name", r->driver_name);
8383 if (r->driver_name) {
8384 ndr_print_string(ndr, "driver_name", r->driver_name);
8387 ndr_print_ptr(ndr, "architecture", r->architecture);
8389 if (r->architecture) {
8390 ndr_print_string(ndr, "architecture", r->architecture);
8393 ndr_print_ptr(ndr, "driver_path", r->driver_path);
8395 if (r->driver_path) {
8396 ndr_print_string(ndr, "driver_path", r->driver_path);
8399 ndr_print_ptr(ndr, "data_file", r->data_file);
8402 ndr_print_string(ndr, "data_file", r->data_file);
8405 ndr_print_ptr(ndr, "config_file", r->config_file);
8407 if (r->config_file) {
8408 ndr_print_string(ndr, "config_file", r->config_file);
8414 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo3 *r)
8416 if (ndr_flags & NDR_SCALARS) {
8417 NDR_CHECK(ndr_push_align(ndr, 5));
8418 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
8419 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
8420 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
8421 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
8422 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
8423 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
8424 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
8425 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
8426 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
8427 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8428 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
8429 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8431 if (ndr_flags & NDR_BUFFERS) {
8432 if (r->driver_name) {
8433 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8434 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8435 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8436 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8438 if (r->architecture) {
8439 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8440 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8441 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8442 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8444 if (r->driver_path) {
8445 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8446 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8447 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8448 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8451 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8452 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8453 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8454 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8456 if (r->config_file) {
8457 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8458 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8459 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8460 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8463 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8464 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8465 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8466 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8468 if (r->monitor_name) {
8469 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8470 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8471 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8472 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8474 if (r->default_datatype) {
8475 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8476 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8477 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8478 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8480 if (r->dependent_files) {
8481 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8484 return NDR_ERR_SUCCESS;
8487 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo3 *r)
8489 uint32_t _ptr_driver_name;
8490 TALLOC_CTX *_mem_save_driver_name_0;
8491 uint32_t _ptr_architecture;
8492 TALLOC_CTX *_mem_save_architecture_0;
8493 uint32_t _ptr_driver_path;
8494 TALLOC_CTX *_mem_save_driver_path_0;
8495 uint32_t _ptr_data_file;
8496 TALLOC_CTX *_mem_save_data_file_0;
8497 uint32_t _ptr_config_file;
8498 TALLOC_CTX *_mem_save_config_file_0;
8499 uint32_t _ptr_help_file;
8500 TALLOC_CTX *_mem_save_help_file_0;
8501 uint32_t _ptr_monitor_name;
8502 TALLOC_CTX *_mem_save_monitor_name_0;
8503 uint32_t _ptr_default_datatype;
8504 TALLOC_CTX *_mem_save_default_datatype_0;
8505 uint32_t _ptr_dependent_files;
8506 TALLOC_CTX *_mem_save_dependent_files_0;
8507 if (ndr_flags & NDR_SCALARS) {
8508 NDR_CHECK(ndr_pull_align(ndr, 5));
8509 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
8510 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8511 if (_ptr_driver_name) {
8512 NDR_PULL_ALLOC(ndr, r->driver_name);
8514 r->driver_name = NULL;
8516 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
8517 if (_ptr_architecture) {
8518 NDR_PULL_ALLOC(ndr, r->architecture);
8520 r->architecture = NULL;
8522 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
8523 if (_ptr_driver_path) {
8524 NDR_PULL_ALLOC(ndr, r->driver_path);
8526 r->driver_path = NULL;
8528 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
8529 if (_ptr_data_file) {
8530 NDR_PULL_ALLOC(ndr, r->data_file);
8532 r->data_file = NULL;
8534 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
8535 if (_ptr_config_file) {
8536 NDR_PULL_ALLOC(ndr, r->config_file);
8538 r->config_file = NULL;
8540 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
8541 if (_ptr_help_file) {
8542 NDR_PULL_ALLOC(ndr, r->help_file);
8544 r->help_file = NULL;
8546 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
8547 if (_ptr_monitor_name) {
8548 NDR_PULL_ALLOC(ndr, r->monitor_name);
8550 r->monitor_name = NULL;
8552 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
8553 if (_ptr_default_datatype) {
8554 NDR_PULL_ALLOC(ndr, r->default_datatype);
8556 r->default_datatype = NULL;
8558 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
8559 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
8560 if (_ptr_dependent_files) {
8561 NDR_PULL_ALLOC(ndr, r->dependent_files);
8563 r->dependent_files = NULL;
8565 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8567 if (ndr_flags & NDR_BUFFERS) {
8568 if (r->driver_name) {
8569 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8570 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8571 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
8572 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
8573 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
8574 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_name), ndr_get_array_length(ndr, &r->driver_name));
8576 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
8577 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
8578 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8580 if (r->architecture) {
8581 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
8582 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
8583 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
8584 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
8585 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
8586 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->architecture), ndr_get_array_length(ndr, &r->architecture));
8588 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
8589 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
8590 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
8592 if (r->driver_path) {
8593 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
8594 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
8595 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
8596 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
8597 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
8598 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_path), ndr_get_array_length(ndr, &r->driver_path));
8600 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
8601 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
8602 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
8605 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8606 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
8607 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
8608 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
8609 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
8610 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data_file), ndr_get_array_length(ndr, &r->data_file));
8612 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
8613 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
8614 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
8616 if (r->config_file) {
8617 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8618 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
8619 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
8620 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
8621 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
8622 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->config_file), ndr_get_array_length(ndr, &r->config_file));
8624 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
8625 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
8626 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
8629 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8630 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
8631 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
8632 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
8633 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
8634 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->help_file), ndr_get_array_length(ndr, &r->help_file));
8636 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
8637 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
8638 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
8640 if (r->monitor_name) {
8641 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8642 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
8643 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
8644 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
8645 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
8646 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->monitor_name), ndr_get_array_length(ndr, &r->monitor_name));
8648 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
8649 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
8650 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
8652 if (r->default_datatype) {
8653 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
8654 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
8655 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
8656 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
8657 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
8658 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->default_datatype), ndr_get_array_length(ndr, &r->default_datatype));
8660 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
8661 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
8662 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
8664 if (r->dependent_files) {
8665 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
8666 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
8667 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8668 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
8671 return NDR_ERR_SUCCESS;
8674 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo3 *r)
8676 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo3");
8678 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
8679 ndr_print_ptr(ndr, "driver_name", r->driver_name);
8681 if (r->driver_name) {
8682 ndr_print_string(ndr, "driver_name", r->driver_name);
8685 ndr_print_ptr(ndr, "architecture", r->architecture);
8687 if (r->architecture) {
8688 ndr_print_string(ndr, "architecture", r->architecture);
8691 ndr_print_ptr(ndr, "driver_path", r->driver_path);
8693 if (r->driver_path) {
8694 ndr_print_string(ndr, "driver_path", r->driver_path);
8697 ndr_print_ptr(ndr, "data_file", r->data_file);
8700 ndr_print_string(ndr, "data_file", r->data_file);
8703 ndr_print_ptr(ndr, "config_file", r->config_file);
8705 if (r->config_file) {
8706 ndr_print_string(ndr, "config_file", r->config_file);
8709 ndr_print_ptr(ndr, "help_file", r->help_file);
8712 ndr_print_string(ndr, "help_file", r->help_file);
8715 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
8717 if (r->monitor_name) {
8718 ndr_print_string(ndr, "monitor_name", r->monitor_name);
8721 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
8723 if (r->default_datatype) {
8724 ndr_print_string(ndr, "default_datatype", r->default_datatype);
8727 ndr_print_uint32(ndr, "_ndr_size_dependent_files", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2):r->_ndr_size_dependent_files);
8728 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
8730 if (r->dependent_files) {
8731 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
8737 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo4 *r)
8739 if (ndr_flags & NDR_SCALARS) {
8740 NDR_CHECK(ndr_push_align(ndr, 5));
8741 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
8742 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
8743 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
8744 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
8745 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
8746 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
8747 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
8748 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
8749 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
8750 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8751 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
8752 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8753 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
8754 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8756 if (ndr_flags & NDR_BUFFERS) {
8757 if (r->driver_name) {
8758 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8759 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8760 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8761 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8763 if (r->architecture) {
8764 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8765 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8766 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8767 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8769 if (r->driver_path) {
8770 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8771 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8772 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8773 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8776 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8777 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8778 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8779 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8781 if (r->config_file) {
8782 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8783 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8784 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8785 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8788 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8789 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8790 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8791 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8793 if (r->monitor_name) {
8794 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8795 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8796 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8797 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8799 if (r->default_datatype) {
8800 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8801 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8802 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8803 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8805 if (r->dependent_files) {
8806 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8808 if (r->previous_names) {
8809 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
8812 return NDR_ERR_SUCCESS;
8815 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo4 *r)
8817 uint32_t _ptr_driver_name;
8818 TALLOC_CTX *_mem_save_driver_name_0;
8819 uint32_t _ptr_architecture;
8820 TALLOC_CTX *_mem_save_architecture_0;
8821 uint32_t _ptr_driver_path;
8822 TALLOC_CTX *_mem_save_driver_path_0;
8823 uint32_t _ptr_data_file;
8824 TALLOC_CTX *_mem_save_data_file_0;
8825 uint32_t _ptr_config_file;
8826 TALLOC_CTX *_mem_save_config_file_0;
8827 uint32_t _ptr_help_file;
8828 TALLOC_CTX *_mem_save_help_file_0;
8829 uint32_t _ptr_monitor_name;
8830 TALLOC_CTX *_mem_save_monitor_name_0;
8831 uint32_t _ptr_default_datatype;
8832 TALLOC_CTX *_mem_save_default_datatype_0;
8833 uint32_t _ptr_dependent_files;
8834 TALLOC_CTX *_mem_save_dependent_files_0;
8835 uint32_t _ptr_previous_names;
8836 TALLOC_CTX *_mem_save_previous_names_0;
8837 if (ndr_flags & NDR_SCALARS) {
8838 NDR_CHECK(ndr_pull_align(ndr, 5));
8839 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
8840 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8841 if (_ptr_driver_name) {
8842 NDR_PULL_ALLOC(ndr, r->driver_name);
8844 r->driver_name = NULL;
8846 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
8847 if (_ptr_architecture) {
8848 NDR_PULL_ALLOC(ndr, r->architecture);
8850 r->architecture = NULL;
8852 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
8853 if (_ptr_driver_path) {
8854 NDR_PULL_ALLOC(ndr, r->driver_path);
8856 r->driver_path = NULL;
8858 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
8859 if (_ptr_data_file) {
8860 NDR_PULL_ALLOC(ndr, r->data_file);
8862 r->data_file = NULL;
8864 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
8865 if (_ptr_config_file) {
8866 NDR_PULL_ALLOC(ndr, r->config_file);
8868 r->config_file = NULL;
8870 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
8871 if (_ptr_help_file) {
8872 NDR_PULL_ALLOC(ndr, r->help_file);
8874 r->help_file = NULL;
8876 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
8877 if (_ptr_monitor_name) {
8878 NDR_PULL_ALLOC(ndr, r->monitor_name);
8880 r->monitor_name = NULL;
8882 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
8883 if (_ptr_default_datatype) {
8884 NDR_PULL_ALLOC(ndr, r->default_datatype);
8886 r->default_datatype = NULL;
8888 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
8889 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
8890 if (_ptr_dependent_files) {
8891 NDR_PULL_ALLOC(ndr, r->dependent_files);
8893 r->dependent_files = NULL;
8895 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
8896 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
8897 if (_ptr_previous_names) {
8898 NDR_PULL_ALLOC(ndr, r->previous_names);
8900 r->previous_names = NULL;
8902 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8904 if (ndr_flags & NDR_BUFFERS) {
8905 if (r->driver_name) {
8906 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8907 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8908 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
8909 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
8910 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
8911 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_name), ndr_get_array_length(ndr, &r->driver_name));
8913 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
8914 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
8915 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8917 if (r->architecture) {
8918 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
8919 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
8920 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
8921 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
8922 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
8923 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->architecture), ndr_get_array_length(ndr, &r->architecture));
8925 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
8926 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
8927 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
8929 if (r->driver_path) {
8930 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
8931 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
8932 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
8933 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
8934 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
8935 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_path), ndr_get_array_length(ndr, &r->driver_path));
8937 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
8938 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
8939 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
8942 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8943 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
8944 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
8945 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
8946 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
8947 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data_file), ndr_get_array_length(ndr, &r->data_file));
8949 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
8950 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
8951 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
8953 if (r->config_file) {
8954 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8955 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
8956 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
8957 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
8958 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
8959 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->config_file), ndr_get_array_length(ndr, &r->config_file));
8961 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
8962 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
8963 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
8966 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8967 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
8968 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
8969 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
8970 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
8971 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->help_file), ndr_get_array_length(ndr, &r->help_file));
8973 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
8974 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
8975 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
8977 if (r->monitor_name) {
8978 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8979 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
8980 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
8981 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
8982 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
8983 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->monitor_name), ndr_get_array_length(ndr, &r->monitor_name));
8985 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
8986 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
8987 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
8989 if (r->default_datatype) {
8990 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
8991 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
8992 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
8993 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
8994 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
8995 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->default_datatype), ndr_get_array_length(ndr, &r->default_datatype));
8997 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
8998 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
8999 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
9001 if (r->dependent_files) {
9002 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
9003 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
9004 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
9005 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
9007 if (r->previous_names) {
9008 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
9009 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
9010 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
9011 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
9014 return NDR_ERR_SUCCESS;
9017 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo4 *r)
9019 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo4");
9021 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
9022 ndr_print_ptr(ndr, "driver_name", r->driver_name);
9024 if (r->driver_name) {
9025 ndr_print_string(ndr, "driver_name", r->driver_name);
9028 ndr_print_ptr(ndr, "architecture", r->architecture);
9030 if (r->architecture) {
9031 ndr_print_string(ndr, "architecture", r->architecture);
9034 ndr_print_ptr(ndr, "driver_path", r->driver_path);
9036 if (r->driver_path) {
9037 ndr_print_string(ndr, "driver_path", r->driver_path);
9040 ndr_print_ptr(ndr, "data_file", r->data_file);
9043 ndr_print_string(ndr, "data_file", r->data_file);
9046 ndr_print_ptr(ndr, "config_file", r->config_file);
9048 if (r->config_file) {
9049 ndr_print_string(ndr, "config_file", r->config_file);
9052 ndr_print_ptr(ndr, "help_file", r->help_file);
9055 ndr_print_string(ndr, "help_file", r->help_file);
9058 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
9060 if (r->monitor_name) {
9061 ndr_print_string(ndr, "monitor_name", r->monitor_name);
9064 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
9066 if (r->default_datatype) {
9067 ndr_print_string(ndr, "default_datatype", r->default_datatype);
9070 ndr_print_uint32(ndr, "_ndr_size_dependent_files", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2):r->_ndr_size_dependent_files);
9071 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
9073 if (r->dependent_files) {
9074 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
9077 ndr_print_uint32(ndr, "_ndr_size_previous_names", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2):r->_ndr_size_previous_names);
9078 ndr_print_ptr(ndr, "previous_names", r->previous_names);
9080 if (r->previous_names) {
9081 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
9087 static enum ndr_err_code ndr_push_spoolss_DriverAttributes(struct ndr_push *ndr, int ndr_flags, uint32_t r)
9089 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
9090 return NDR_ERR_SUCCESS;
9093 static enum ndr_err_code ndr_pull_spoolss_DriverAttributes(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
9096 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
9098 return NDR_ERR_SUCCESS;
9101 _PUBLIC_ void ndr_print_spoolss_DriverAttributes(struct ndr_print *ndr, const char *name, uint32_t r)
9103 ndr_print_uint32(ndr, name, r);
9105 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_DRIVER_PACKAGE_AWARE", PRINTER_DRIVER_PACKAGE_AWARE, r);
9109 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo6 *r)
9111 if (ndr_flags & NDR_SCALARS) {
9112 NDR_CHECK(ndr_push_align(ndr, 8));
9113 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
9114 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
9115 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
9116 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
9117 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
9118 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
9119 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
9120 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
9121 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
9122 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9123 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
9124 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9125 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
9126 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
9127 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
9128 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_name));
9129 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_url));
9130 NDR_CHECK(ndr_push_unique_ptr(ndr, r->hardware_id));
9131 NDR_CHECK(ndr_push_unique_ptr(ndr, r->provider));
9132 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
9134 if (ndr_flags & NDR_BUFFERS) {
9135 if (r->driver_name) {
9136 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
9137 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9138 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
9139 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9141 if (r->architecture) {
9142 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
9143 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9144 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
9145 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9147 if (r->driver_path) {
9148 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
9149 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9150 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
9151 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9154 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
9155 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9156 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
9157 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9159 if (r->config_file) {
9160 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
9161 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9162 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
9163 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9166 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
9167 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9168 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
9169 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9171 if (r->monitor_name) {
9172 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
9173 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9174 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
9175 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9177 if (r->default_datatype) {
9178 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
9179 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9180 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
9181 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9183 if (r->dependent_files) {
9184 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
9186 if (r->previous_names) {
9187 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
9189 if (r->manufacturer_name) {
9190 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
9191 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9192 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
9193 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_name, ndr_charset_length(r->manufacturer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9195 if (r->manufacturer_url) {
9196 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
9197 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9198 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
9199 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_url, ndr_charset_length(r->manufacturer_url, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9201 if (r->hardware_id) {
9202 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
9203 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9204 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
9205 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_id, ndr_charset_length(r->hardware_id, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9208 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
9209 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9210 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
9211 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->provider, ndr_charset_length(r->provider, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9214 return NDR_ERR_SUCCESS;
9217 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo6 *r)
9219 uint32_t _ptr_driver_name;
9220 TALLOC_CTX *_mem_save_driver_name_0;
9221 uint32_t _ptr_architecture;
9222 TALLOC_CTX *_mem_save_architecture_0;
9223 uint32_t _ptr_driver_path;
9224 TALLOC_CTX *_mem_save_driver_path_0;
9225 uint32_t _ptr_data_file;
9226 TALLOC_CTX *_mem_save_data_file_0;
9227 uint32_t _ptr_config_file;
9228 TALLOC_CTX *_mem_save_config_file_0;
9229 uint32_t _ptr_help_file;
9230 TALLOC_CTX *_mem_save_help_file_0;
9231 uint32_t _ptr_monitor_name;
9232 TALLOC_CTX *_mem_save_monitor_name_0;
9233 uint32_t _ptr_default_datatype;
9234 TALLOC_CTX *_mem_save_default_datatype_0;
9235 uint32_t _ptr_dependent_files;
9236 TALLOC_CTX *_mem_save_dependent_files_0;
9237 uint32_t _ptr_previous_names;
9238 TALLOC_CTX *_mem_save_previous_names_0;
9239 uint32_t _ptr_manufacturer_name;
9240 TALLOC_CTX *_mem_save_manufacturer_name_0;
9241 uint32_t _ptr_manufacturer_url;
9242 TALLOC_CTX *_mem_save_manufacturer_url_0;
9243 uint32_t _ptr_hardware_id;
9244 TALLOC_CTX *_mem_save_hardware_id_0;
9245 uint32_t _ptr_provider;
9246 TALLOC_CTX *_mem_save_provider_0;
9247 if (ndr_flags & NDR_SCALARS) {
9248 NDR_CHECK(ndr_pull_align(ndr, 8));
9249 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
9250 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
9251 if (_ptr_driver_name) {
9252 NDR_PULL_ALLOC(ndr, r->driver_name);
9254 r->driver_name = NULL;
9256 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
9257 if (_ptr_architecture) {
9258 NDR_PULL_ALLOC(ndr, r->architecture);
9260 r->architecture = NULL;
9262 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
9263 if (_ptr_driver_path) {
9264 NDR_PULL_ALLOC(ndr, r->driver_path);
9266 r->driver_path = NULL;
9268 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
9269 if (_ptr_data_file) {
9270 NDR_PULL_ALLOC(ndr, r->data_file);
9272 r->data_file = NULL;
9274 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
9275 if (_ptr_config_file) {
9276 NDR_PULL_ALLOC(ndr, r->config_file);
9278 r->config_file = NULL;
9280 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
9281 if (_ptr_help_file) {
9282 NDR_PULL_ALLOC(ndr, r->help_file);
9284 r->help_file = NULL;
9286 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
9287 if (_ptr_monitor_name) {
9288 NDR_PULL_ALLOC(ndr, r->monitor_name);
9290 r->monitor_name = NULL;
9292 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
9293 if (_ptr_default_datatype) {
9294 NDR_PULL_ALLOC(ndr, r->default_datatype);
9296 r->default_datatype = NULL;
9298 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
9299 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
9300 if (_ptr_dependent_files) {
9301 NDR_PULL_ALLOC(ndr, r->dependent_files);
9303 r->dependent_files = NULL;
9305 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
9306 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
9307 if (_ptr_previous_names) {
9308 NDR_PULL_ALLOC(ndr, r->previous_names);
9310 r->previous_names = NULL;
9312 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
9313 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
9314 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
9315 if (_ptr_manufacturer_name) {
9316 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
9318 r->manufacturer_name = NULL;
9320 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
9321 if (_ptr_manufacturer_url) {
9322 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
9324 r->manufacturer_url = NULL;
9326 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
9327 if (_ptr_hardware_id) {
9328 NDR_PULL_ALLOC(ndr, r->hardware_id);
9330 r->hardware_id = NULL;
9332 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
9333 if (_ptr_provider) {
9334 NDR_PULL_ALLOC(ndr, r->provider);
9338 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
9340 if (ndr_flags & NDR_BUFFERS) {
9341 if (r->driver_name) {
9342 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9343 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
9344 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
9345 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
9346 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
9347 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_name), ndr_get_array_length(ndr, &r->driver_name));
9349 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
9350 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
9351 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
9353 if (r->architecture) {
9354 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
9355 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
9356 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
9357 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
9358 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
9359 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->architecture), ndr_get_array_length(ndr, &r->architecture));
9361 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
9362 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
9363 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
9365 if (r->driver_path) {
9366 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
9367 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
9368 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
9369 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
9370 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
9371 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_path), ndr_get_array_length(ndr, &r->driver_path));
9373 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
9374 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
9375 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
9378 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9379 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
9380 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
9381 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
9382 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
9383 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data_file), ndr_get_array_length(ndr, &r->data_file));
9385 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
9386 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
9387 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
9389 if (r->config_file) {
9390 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9391 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
9392 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
9393 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
9394 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
9395 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->config_file), ndr_get_array_length(ndr, &r->config_file));
9397 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
9398 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
9399 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
9402 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9403 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
9404 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
9405 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
9406 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
9407 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->help_file), ndr_get_array_length(ndr, &r->help_file));
9409 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
9410 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
9411 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
9413 if (r->monitor_name) {
9414 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9415 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
9416 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
9417 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
9418 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
9419 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->monitor_name), ndr_get_array_length(ndr, &r->monitor_name));
9421 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
9422 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
9423 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
9425 if (r->default_datatype) {
9426 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
9427 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
9428 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
9429 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
9430 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
9431 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->default_datatype), ndr_get_array_length(ndr, &r->default_datatype));
9433 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
9434 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
9435 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
9437 if (r->dependent_files) {
9438 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
9439 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
9440 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
9441 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
9443 if (r->previous_names) {
9444 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
9445 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
9446 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
9447 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
9449 if (r->manufacturer_name) {
9450 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9451 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
9452 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_name));
9453 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_name));
9454 if (ndr_get_array_length(ndr, &r->manufacturer_name) > ndr_get_array_size(ndr, &r->manufacturer_name)) {
9455 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->manufacturer_name), ndr_get_array_length(ndr, &r->manufacturer_name));
9457 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t)));
9458 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_name, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t), CH_UTF16));
9459 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
9461 if (r->manufacturer_url) {
9462 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
9463 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
9464 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_url));
9465 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_url));
9466 if (ndr_get_array_length(ndr, &r->manufacturer_url) > ndr_get_array_size(ndr, &r->manufacturer_url)) {
9467 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->manufacturer_url), ndr_get_array_length(ndr, &r->manufacturer_url));
9469 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t)));
9470 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_url, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t), CH_UTF16));
9471 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
9473 if (r->hardware_id) {
9474 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
9475 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
9476 NDR_CHECK(ndr_pull_array_size(ndr, &r->hardware_id));
9477 NDR_CHECK(ndr_pull_array_length(ndr, &r->hardware_id));
9478 if (ndr_get_array_length(ndr, &r->hardware_id) > ndr_get_array_size(ndr, &r->hardware_id)) {
9479 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->hardware_id), ndr_get_array_length(ndr, &r->hardware_id));
9481 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t)));
9482 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_id, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t), CH_UTF16));
9483 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
9486 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
9487 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
9488 NDR_CHECK(ndr_pull_array_size(ndr, &r->provider));
9489 NDR_CHECK(ndr_pull_array_length(ndr, &r->provider));
9490 if (ndr_get_array_length(ndr, &r->provider) > ndr_get_array_size(ndr, &r->provider)) {
9491 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->provider), ndr_get_array_length(ndr, &r->provider));
9493 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t)));
9494 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->provider, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t), CH_UTF16));
9495 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
9498 return NDR_ERR_SUCCESS;
9501 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo6 *r)
9503 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo6");
9505 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
9506 ndr_print_ptr(ndr, "driver_name", r->driver_name);
9508 if (r->driver_name) {
9509 ndr_print_string(ndr, "driver_name", r->driver_name);
9512 ndr_print_ptr(ndr, "architecture", r->architecture);
9514 if (r->architecture) {
9515 ndr_print_string(ndr, "architecture", r->architecture);
9518 ndr_print_ptr(ndr, "driver_path", r->driver_path);
9520 if (r->driver_path) {
9521 ndr_print_string(ndr, "driver_path", r->driver_path);
9524 ndr_print_ptr(ndr, "data_file", r->data_file);
9527 ndr_print_string(ndr, "data_file", r->data_file);
9530 ndr_print_ptr(ndr, "config_file", r->config_file);
9532 if (r->config_file) {
9533 ndr_print_string(ndr, "config_file", r->config_file);
9536 ndr_print_ptr(ndr, "help_file", r->help_file);
9539 ndr_print_string(ndr, "help_file", r->help_file);
9542 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
9544 if (r->monitor_name) {
9545 ndr_print_string(ndr, "monitor_name", r->monitor_name);
9548 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
9550 if (r->default_datatype) {
9551 ndr_print_string(ndr, "default_datatype", r->default_datatype);
9554 ndr_print_uint32(ndr, "_ndr_size_dependent_files", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2):r->_ndr_size_dependent_files);
9555 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
9557 if (r->dependent_files) {
9558 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
9561 ndr_print_uint32(ndr, "_ndr_size_previous_names", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2):r->_ndr_size_previous_names);
9562 ndr_print_ptr(ndr, "previous_names", r->previous_names);
9564 if (r->previous_names) {
9565 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
9568 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
9569 ndr_print_hyper(ndr, "driver_version", r->driver_version);
9570 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
9572 if (r->manufacturer_name) {
9573 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
9576 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
9578 if (r->manufacturer_url) {
9579 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
9582 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
9584 if (r->hardware_id) {
9585 ndr_print_string(ndr, "hardware_id", r->hardware_id);
9588 ndr_print_ptr(ndr, "provider", r->provider);
9591 ndr_print_string(ndr, "provider", r->provider);
9597 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo8(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo8 *r)
9599 if (ndr_flags & NDR_SCALARS) {
9600 NDR_CHECK(ndr_push_align(ndr, 8));
9601 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
9602 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
9603 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
9604 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
9605 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
9606 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
9607 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
9608 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
9609 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
9610 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9611 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
9612 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9613 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
9614 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
9615 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
9616 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_name));
9617 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_url));
9618 NDR_CHECK(ndr_push_unique_ptr(ndr, r->hardware_id));
9619 NDR_CHECK(ndr_push_unique_ptr(ndr, r->provider));
9620 NDR_CHECK(ndr_push_unique_ptr(ndr, r->print_processor));
9621 NDR_CHECK(ndr_push_unique_ptr(ndr, r->vendor_setup));
9622 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->color_profiles, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9623 NDR_CHECK(ndr_push_unique_ptr(ndr, r->color_profiles));
9624 NDR_CHECK(ndr_push_unique_ptr(ndr, r->inf_path));
9625 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->printer_driver_attributes));
9626 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->core_driver_dependencies, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9627 NDR_CHECK(ndr_push_unique_ptr(ndr, r->core_driver_dependencies));
9628 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->min_inbox_driver_ver_date));
9629 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->min_inbox_driver_ver_version));
9630 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
9632 if (ndr_flags & NDR_BUFFERS) {
9633 if (r->driver_name) {
9634 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
9635 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9636 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
9637 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9639 if (r->architecture) {
9640 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
9641 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9642 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
9643 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9645 if (r->driver_path) {
9646 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
9647 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9648 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
9649 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9652 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
9653 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9654 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
9655 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9657 if (r->config_file) {
9658 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
9659 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9660 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
9661 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9664 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
9665 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9666 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
9667 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9669 if (r->monitor_name) {
9670 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
9671 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9672 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
9673 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9675 if (r->default_datatype) {
9676 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
9677 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9678 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
9679 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9681 if (r->dependent_files) {
9682 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
9684 if (r->previous_names) {
9685 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
9687 if (r->manufacturer_name) {
9688 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
9689 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9690 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
9691 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_name, ndr_charset_length(r->manufacturer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9693 if (r->manufacturer_url) {
9694 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
9695 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9696 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
9697 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_url, ndr_charset_length(r->manufacturer_url, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9699 if (r->hardware_id) {
9700 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
9701 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9702 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
9703 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_id, ndr_charset_length(r->hardware_id, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9706 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
9707 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9708 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
9709 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->provider, ndr_charset_length(r->provider, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9711 if (r->print_processor) {
9712 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
9713 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9714 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
9715 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->print_processor, ndr_charset_length(r->print_processor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9717 if (r->vendor_setup) {
9718 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->vendor_setup, CH_UTF16)));
9719 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9720 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->vendor_setup, CH_UTF16)));
9721 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->vendor_setup, ndr_charset_length(r->vendor_setup, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9723 if (r->color_profiles) {
9724 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->color_profiles));
9727 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->inf_path, CH_UTF16)));
9728 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9729 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->inf_path, CH_UTF16)));
9730 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->inf_path, ndr_charset_length(r->inf_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9732 if (r->core_driver_dependencies) {
9733 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->core_driver_dependencies));
9736 return NDR_ERR_SUCCESS;
9739 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo8(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo8 *r)
9741 uint32_t _ptr_driver_name;
9742 TALLOC_CTX *_mem_save_driver_name_0;
9743 uint32_t _ptr_architecture;
9744 TALLOC_CTX *_mem_save_architecture_0;
9745 uint32_t _ptr_driver_path;
9746 TALLOC_CTX *_mem_save_driver_path_0;
9747 uint32_t _ptr_data_file;
9748 TALLOC_CTX *_mem_save_data_file_0;
9749 uint32_t _ptr_config_file;
9750 TALLOC_CTX *_mem_save_config_file_0;
9751 uint32_t _ptr_help_file;
9752 TALLOC_CTX *_mem_save_help_file_0;
9753 uint32_t _ptr_monitor_name;
9754 TALLOC_CTX *_mem_save_monitor_name_0;
9755 uint32_t _ptr_default_datatype;
9756 TALLOC_CTX *_mem_save_default_datatype_0;
9757 uint32_t _ptr_dependent_files;
9758 TALLOC_CTX *_mem_save_dependent_files_0;
9759 uint32_t _ptr_previous_names;
9760 TALLOC_CTX *_mem_save_previous_names_0;
9761 uint32_t _ptr_manufacturer_name;
9762 TALLOC_CTX *_mem_save_manufacturer_name_0;
9763 uint32_t _ptr_manufacturer_url;
9764 TALLOC_CTX *_mem_save_manufacturer_url_0;
9765 uint32_t _ptr_hardware_id;
9766 TALLOC_CTX *_mem_save_hardware_id_0;
9767 uint32_t _ptr_provider;
9768 TALLOC_CTX *_mem_save_provider_0;
9769 uint32_t _ptr_print_processor;
9770 TALLOC_CTX *_mem_save_print_processor_0;
9771 uint32_t _ptr_vendor_setup;
9772 TALLOC_CTX *_mem_save_vendor_setup_0;
9773 uint32_t _ptr_color_profiles;
9774 TALLOC_CTX *_mem_save_color_profiles_0;
9775 uint32_t _ptr_inf_path;
9776 TALLOC_CTX *_mem_save_inf_path_0;
9777 uint32_t _ptr_core_driver_dependencies;
9778 TALLOC_CTX *_mem_save_core_driver_dependencies_0;
9779 if (ndr_flags & NDR_SCALARS) {
9780 NDR_CHECK(ndr_pull_align(ndr, 8));
9781 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
9782 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
9783 if (_ptr_driver_name) {
9784 NDR_PULL_ALLOC(ndr, r->driver_name);
9786 r->driver_name = NULL;
9788 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
9789 if (_ptr_architecture) {
9790 NDR_PULL_ALLOC(ndr, r->architecture);
9792 r->architecture = NULL;
9794 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
9795 if (_ptr_driver_path) {
9796 NDR_PULL_ALLOC(ndr, r->driver_path);
9798 r->driver_path = NULL;
9800 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
9801 if (_ptr_data_file) {
9802 NDR_PULL_ALLOC(ndr, r->data_file);
9804 r->data_file = NULL;
9806 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
9807 if (_ptr_config_file) {
9808 NDR_PULL_ALLOC(ndr, r->config_file);
9810 r->config_file = NULL;
9812 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
9813 if (_ptr_help_file) {
9814 NDR_PULL_ALLOC(ndr, r->help_file);
9816 r->help_file = NULL;
9818 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
9819 if (_ptr_monitor_name) {
9820 NDR_PULL_ALLOC(ndr, r->monitor_name);
9822 r->monitor_name = NULL;
9824 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
9825 if (_ptr_default_datatype) {
9826 NDR_PULL_ALLOC(ndr, r->default_datatype);
9828 r->default_datatype = NULL;
9830 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
9831 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
9832 if (_ptr_dependent_files) {
9833 NDR_PULL_ALLOC(ndr, r->dependent_files);
9835 r->dependent_files = NULL;
9837 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
9838 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
9839 if (_ptr_previous_names) {
9840 NDR_PULL_ALLOC(ndr, r->previous_names);
9842 r->previous_names = NULL;
9844 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
9845 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
9846 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
9847 if (_ptr_manufacturer_name) {
9848 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
9850 r->manufacturer_name = NULL;
9852 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
9853 if (_ptr_manufacturer_url) {
9854 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
9856 r->manufacturer_url = NULL;
9858 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
9859 if (_ptr_hardware_id) {
9860 NDR_PULL_ALLOC(ndr, r->hardware_id);
9862 r->hardware_id = NULL;
9864 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
9865 if (_ptr_provider) {
9866 NDR_PULL_ALLOC(ndr, r->provider);
9870 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
9871 if (_ptr_print_processor) {
9872 NDR_PULL_ALLOC(ndr, r->print_processor);
9874 r->print_processor = NULL;
9876 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_vendor_setup));
9877 if (_ptr_vendor_setup) {
9878 NDR_PULL_ALLOC(ndr, r->vendor_setup);
9880 r->vendor_setup = NULL;
9882 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_color_profiles));
9883 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_color_profiles));
9884 if (_ptr_color_profiles) {
9885 NDR_PULL_ALLOC(ndr, r->color_profiles);
9887 r->color_profiles = NULL;
9889 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_inf_path));
9890 if (_ptr_inf_path) {
9891 NDR_PULL_ALLOC(ndr, r->inf_path);
9895 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->printer_driver_attributes));
9896 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_core_driver_dependencies));
9897 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_core_driver_dependencies));
9898 if (_ptr_core_driver_dependencies) {
9899 NDR_PULL_ALLOC(ndr, r->core_driver_dependencies);
9901 r->core_driver_dependencies = NULL;
9903 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_date));
9904 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_version));
9905 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
9907 if (ndr_flags & NDR_BUFFERS) {
9908 if (r->driver_name) {
9909 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9910 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
9911 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
9912 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
9913 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
9914 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_name), ndr_get_array_length(ndr, &r->driver_name));
9916 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
9917 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
9918 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
9920 if (r->architecture) {
9921 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
9922 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
9923 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
9924 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
9925 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
9926 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->architecture), ndr_get_array_length(ndr, &r->architecture));
9928 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
9929 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
9930 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
9932 if (r->driver_path) {
9933 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
9934 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
9935 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
9936 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
9937 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
9938 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_path), ndr_get_array_length(ndr, &r->driver_path));
9940 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
9941 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
9942 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
9945 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9946 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
9947 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
9948 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
9949 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
9950 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data_file), ndr_get_array_length(ndr, &r->data_file));
9952 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
9953 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
9954 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
9956 if (r->config_file) {
9957 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9958 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
9959 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
9960 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
9961 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
9962 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->config_file), ndr_get_array_length(ndr, &r->config_file));
9964 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
9965 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
9966 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
9969 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9970 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
9971 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
9972 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
9973 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
9974 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->help_file), ndr_get_array_length(ndr, &r->help_file));
9976 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
9977 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
9978 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
9980 if (r->monitor_name) {
9981 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9982 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
9983 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
9984 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
9985 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
9986 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->monitor_name), ndr_get_array_length(ndr, &r->monitor_name));
9988 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
9989 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
9990 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
9992 if (r->default_datatype) {
9993 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
9994 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
9995 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
9996 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
9997 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
9998 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->default_datatype), ndr_get_array_length(ndr, &r->default_datatype));
10000 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
10001 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
10002 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
10004 if (r->dependent_files) {
10005 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
10006 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
10007 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
10008 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
10010 if (r->previous_names) {
10011 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
10012 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
10013 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
10014 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
10016 if (r->manufacturer_name) {
10017 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10018 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
10019 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_name));
10020 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_name));
10021 if (ndr_get_array_length(ndr, &r->manufacturer_name) > ndr_get_array_size(ndr, &r->manufacturer_name)) {
10022 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->manufacturer_name), ndr_get_array_length(ndr, &r->manufacturer_name));
10024 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t)));
10025 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_name, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t), CH_UTF16));
10026 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
10028 if (r->manufacturer_url) {
10029 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
10030 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
10031 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_url));
10032 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_url));
10033 if (ndr_get_array_length(ndr, &r->manufacturer_url) > ndr_get_array_size(ndr, &r->manufacturer_url)) {
10034 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->manufacturer_url), ndr_get_array_length(ndr, &r->manufacturer_url));
10036 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t)));
10037 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_url, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t), CH_UTF16));
10038 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
10040 if (r->hardware_id) {
10041 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
10042 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
10043 NDR_CHECK(ndr_pull_array_size(ndr, &r->hardware_id));
10044 NDR_CHECK(ndr_pull_array_length(ndr, &r->hardware_id));
10045 if (ndr_get_array_length(ndr, &r->hardware_id) > ndr_get_array_size(ndr, &r->hardware_id)) {
10046 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->hardware_id), ndr_get_array_length(ndr, &r->hardware_id));
10048 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t)));
10049 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_id, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t), CH_UTF16));
10050 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
10053 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
10054 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
10055 NDR_CHECK(ndr_pull_array_size(ndr, &r->provider));
10056 NDR_CHECK(ndr_pull_array_length(ndr, &r->provider));
10057 if (ndr_get_array_length(ndr, &r->provider) > ndr_get_array_size(ndr, &r->provider)) {
10058 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->provider), ndr_get_array_length(ndr, &r->provider));
10060 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t)));
10061 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->provider, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t), CH_UTF16));
10062 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
10064 if (r->print_processor) {
10065 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
10066 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
10067 NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
10068 NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
10069 if (ndr_get_array_length(ndr, &r->print_processor) > ndr_get_array_size(ndr, &r->print_processor)) {
10070 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->print_processor), ndr_get_array_length(ndr, &r->print_processor));
10072 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t)));
10073 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t), CH_UTF16));
10074 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
10076 if (r->vendor_setup) {
10077 _mem_save_vendor_setup_0 = NDR_PULL_GET_MEM_CTX(ndr);
10078 NDR_PULL_SET_MEM_CTX(ndr, r->vendor_setup, 0);
10079 NDR_CHECK(ndr_pull_array_size(ndr, &r->vendor_setup));
10080 NDR_CHECK(ndr_pull_array_length(ndr, &r->vendor_setup));
10081 if (ndr_get_array_length(ndr, &r->vendor_setup) > ndr_get_array_size(ndr, &r->vendor_setup)) {
10082 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->vendor_setup), ndr_get_array_length(ndr, &r->vendor_setup));
10084 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->vendor_setup), sizeof(uint16_t)));
10085 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->vendor_setup, ndr_get_array_length(ndr, &r->vendor_setup), sizeof(uint16_t), CH_UTF16));
10086 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vendor_setup_0, 0);
10088 if (r->color_profiles) {
10089 _mem_save_color_profiles_0 = NDR_PULL_GET_MEM_CTX(ndr);
10090 NDR_PULL_SET_MEM_CTX(ndr, r->color_profiles, 0);
10091 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->color_profiles));
10092 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_color_profiles_0, 0);
10095 _mem_save_inf_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
10096 NDR_PULL_SET_MEM_CTX(ndr, r->inf_path, 0);
10097 NDR_CHECK(ndr_pull_array_size(ndr, &r->inf_path));
10098 NDR_CHECK(ndr_pull_array_length(ndr, &r->inf_path));
10099 if (ndr_get_array_length(ndr, &r->inf_path) > ndr_get_array_size(ndr, &r->inf_path)) {
10100 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->inf_path), ndr_get_array_length(ndr, &r->inf_path));
10102 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->inf_path), sizeof(uint16_t)));
10103 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->inf_path, ndr_get_array_length(ndr, &r->inf_path), sizeof(uint16_t), CH_UTF16));
10104 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_inf_path_0, 0);
10106 if (r->core_driver_dependencies) {
10107 _mem_save_core_driver_dependencies_0 = NDR_PULL_GET_MEM_CTX(ndr);
10108 NDR_PULL_SET_MEM_CTX(ndr, r->core_driver_dependencies, 0);
10109 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->core_driver_dependencies));
10110 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_driver_dependencies_0, 0);
10113 return NDR_ERR_SUCCESS;
10116 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo8(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo8 *r)
10118 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo8");
10120 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
10121 ndr_print_ptr(ndr, "driver_name", r->driver_name);
10123 if (r->driver_name) {
10124 ndr_print_string(ndr, "driver_name", r->driver_name);
10127 ndr_print_ptr(ndr, "architecture", r->architecture);
10129 if (r->architecture) {
10130 ndr_print_string(ndr, "architecture", r->architecture);
10133 ndr_print_ptr(ndr, "driver_path", r->driver_path);
10135 if (r->driver_path) {
10136 ndr_print_string(ndr, "driver_path", r->driver_path);
10139 ndr_print_ptr(ndr, "data_file", r->data_file);
10141 if (r->data_file) {
10142 ndr_print_string(ndr, "data_file", r->data_file);
10145 ndr_print_ptr(ndr, "config_file", r->config_file);
10147 if (r->config_file) {
10148 ndr_print_string(ndr, "config_file", r->config_file);
10151 ndr_print_ptr(ndr, "help_file", r->help_file);
10153 if (r->help_file) {
10154 ndr_print_string(ndr, "help_file", r->help_file);
10157 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
10159 if (r->monitor_name) {
10160 ndr_print_string(ndr, "monitor_name", r->monitor_name);
10163 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
10165 if (r->default_datatype) {
10166 ndr_print_string(ndr, "default_datatype", r->default_datatype);
10169 ndr_print_uint32(ndr, "_ndr_size_dependent_files", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2):r->_ndr_size_dependent_files);
10170 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
10172 if (r->dependent_files) {
10173 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
10176 ndr_print_uint32(ndr, "_ndr_size_previous_names", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2):r->_ndr_size_previous_names);
10177 ndr_print_ptr(ndr, "previous_names", r->previous_names);
10179 if (r->previous_names) {
10180 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
10183 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
10184 ndr_print_hyper(ndr, "driver_version", r->driver_version);
10185 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
10187 if (r->manufacturer_name) {
10188 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
10191 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
10193 if (r->manufacturer_url) {
10194 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
10197 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
10199 if (r->hardware_id) {
10200 ndr_print_string(ndr, "hardware_id", r->hardware_id);
10203 ndr_print_ptr(ndr, "provider", r->provider);
10206 ndr_print_string(ndr, "provider", r->provider);
10209 ndr_print_ptr(ndr, "print_processor", r->print_processor);
10211 if (r->print_processor) {
10212 ndr_print_string(ndr, "print_processor", r->print_processor);
10215 ndr_print_ptr(ndr, "vendor_setup", r->vendor_setup);
10217 if (r->vendor_setup) {
10218 ndr_print_string(ndr, "vendor_setup", r->vendor_setup);
10221 ndr_print_uint32(ndr, "_ndr_size_color_profiles", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->color_profiles, ndr->iconv_convenience, ndr->flags) - 4) / 2):r->_ndr_size_color_profiles);
10222 ndr_print_ptr(ndr, "color_profiles", r->color_profiles);
10224 if (r->color_profiles) {
10225 ndr_print_spoolss_StringArray(ndr, "color_profiles", r->color_profiles);
10228 ndr_print_ptr(ndr, "inf_path", r->inf_path);
10231 ndr_print_string(ndr, "inf_path", r->inf_path);
10234 ndr_print_uint32(ndr, "printer_driver_attributes", r->printer_driver_attributes);
10235 ndr_print_uint32(ndr, "_ndr_size_core_driver_dependencies", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->core_driver_dependencies, ndr->iconv_convenience, ndr->flags) - 4) / 2):r->_ndr_size_core_driver_dependencies);
10236 ndr_print_ptr(ndr, "core_driver_dependencies", r->core_driver_dependencies);
10238 if (r->core_driver_dependencies) {
10239 ndr_print_spoolss_StringArray(ndr, "core_driver_dependencies", r->core_driver_dependencies);
10242 ndr_print_NTTIME(ndr, "min_inbox_driver_ver_date", r->min_inbox_driver_ver_date);
10243 ndr_print_hyper(ndr, "min_inbox_driver_ver_version", r->min_inbox_driver_ver_version);
10247 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_AddDriverInfo *r)
10249 if (ndr_flags & NDR_SCALARS) {
10250 int level = ndr_push_get_switch_value(ndr, r);
10251 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
10252 NDR_CHECK(ndr_push_union_align(ndr, 5));
10255 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
10259 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
10263 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
10267 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
10271 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info6));
10275 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info8));
10279 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
10282 if (ndr_flags & NDR_BUFFERS) {
10283 int level = ndr_push_get_switch_value(ndr, r);
10287 NDR_CHECK(ndr_push_spoolss_AddDriverInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
10293 NDR_CHECK(ndr_push_spoolss_AddDriverInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
10299 NDR_CHECK(ndr_push_spoolss_AddDriverInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3));
10305 NDR_CHECK(ndr_push_spoolss_AddDriverInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
10311 NDR_CHECK(ndr_push_spoolss_AddDriverInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->info6));
10317 NDR_CHECK(ndr_push_spoolss_AddDriverInfo8(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
10322 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
10325 return NDR_ERR_SUCCESS;
10328 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_AddDriverInfo *r)
10332 TALLOC_CTX *_mem_save_info1_0;
10333 TALLOC_CTX *_mem_save_info2_0;
10334 TALLOC_CTX *_mem_save_info3_0;
10335 TALLOC_CTX *_mem_save_info4_0;
10336 TALLOC_CTX *_mem_save_info6_0;
10337 TALLOC_CTX *_mem_save_info8_0;
10338 level = ndr_pull_get_switch_value(ndr, r);
10339 if (ndr_flags & NDR_SCALARS) {
10340 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
10341 if (_level != level) {
10342 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
10344 NDR_CHECK(ndr_pull_union_align(ndr, 5));
10347 uint32_t _ptr_info1;
10348 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
10350 NDR_PULL_ALLOC(ndr, r->info1);
10357 uint32_t _ptr_info2;
10358 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
10360 NDR_PULL_ALLOC(ndr, r->info2);
10367 uint32_t _ptr_info3;
10368 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
10370 NDR_PULL_ALLOC(ndr, r->info3);
10377 uint32_t _ptr_info4;
10378 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
10380 NDR_PULL_ALLOC(ndr, r->info4);
10387 uint32_t _ptr_info6;
10388 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info6));
10390 NDR_PULL_ALLOC(ndr, r->info6);
10397 uint32_t _ptr_info8;
10398 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info8));
10400 NDR_PULL_ALLOC(ndr, r->info8);
10407 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
10410 if (ndr_flags & NDR_BUFFERS) {
10414 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
10415 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
10416 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
10417 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
10423 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
10424 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
10425 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
10426 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
10432 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
10433 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
10434 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3));
10435 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
10441 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
10442 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
10443 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
10444 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
10450 _mem_save_info6_0 = NDR_PULL_GET_MEM_CTX(ndr);
10451 NDR_PULL_SET_MEM_CTX(ndr, r->info6, 0);
10452 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->info6));
10453 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info6_0, 0);
10459 _mem_save_info8_0 = NDR_PULL_GET_MEM_CTX(ndr);
10460 NDR_PULL_SET_MEM_CTX(ndr, r->info8, 0);
10461 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo8(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
10462 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info8_0, 0);
10467 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
10470 return NDR_ERR_SUCCESS;
10473 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo(struct ndr_print *ndr, const char *name, const union spoolss_AddDriverInfo *r)
10476 level = ndr_print_get_switch_value(ndr, r);
10477 ndr_print_union(ndr, name, level, "spoolss_AddDriverInfo");
10480 ndr_print_ptr(ndr, "info1", r->info1);
10483 ndr_print_spoolss_AddDriverInfo1(ndr, "info1", r->info1);
10489 ndr_print_ptr(ndr, "info2", r->info2);
10492 ndr_print_spoolss_AddDriverInfo2(ndr, "info2", r->info2);
10498 ndr_print_ptr(ndr, "info3", r->info3);
10501 ndr_print_spoolss_AddDriverInfo3(ndr, "info3", r->info3);
10507 ndr_print_ptr(ndr, "info4", r->info4);
10510 ndr_print_spoolss_AddDriverInfo4(ndr, "info4", r->info4);
10516 ndr_print_ptr(ndr, "info6", r->info6);
10519 ndr_print_spoolss_AddDriverInfo6(ndr, "info6", r->info6);
10525 ndr_print_ptr(ndr, "info8", r->info8);
10528 ndr_print_spoolss_AddDriverInfo8(ndr, "info8", r->info8);
10534 ndr_print_bad_level(ndr, name, level);
10538 static enum ndr_err_code ndr_push_spoolss_AddDriverInfoCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfoCtr *r)
10540 if (ndr_flags & NDR_SCALARS) {
10541 NDR_CHECK(ndr_push_align(ndr, 5));
10542 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
10543 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
10544 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr, NDR_SCALARS, &r->info));
10545 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
10547 if (ndr_flags & NDR_BUFFERS) {
10548 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr, NDR_BUFFERS, &r->info));
10550 return NDR_ERR_SUCCESS;
10553 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfoCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfoCtr *r)
10555 if (ndr_flags & NDR_SCALARS) {
10556 NDR_CHECK(ndr_pull_align(ndr, 5));
10557 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
10558 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
10559 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr, NDR_SCALARS, &r->info));
10560 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
10562 if (ndr_flags & NDR_BUFFERS) {
10563 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr, NDR_BUFFERS, &r->info));
10565 return NDR_ERR_SUCCESS;
10568 _PUBLIC_ void ndr_print_spoolss_AddDriverInfoCtr(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfoCtr *r)
10570 ndr_print_struct(ndr, name, "spoolss_AddDriverInfoCtr");
10572 ndr_print_uint32(ndr, "level", r->level);
10573 ndr_print_set_switch_value(ndr, &r->info, r->level);
10574 ndr_print_spoolss_AddDriverInfo(ndr, "info", &r->info);
10578 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo1 *r)
10580 if (ndr_flags & NDR_SCALARS) {
10581 NDR_CHECK(ndr_push_align(ndr, 5));
10583 uint32_t _flags_save_string = ndr->flags;
10584 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10585 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
10586 ndr->flags = _flags_save_string;
10588 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
10590 if (ndr_flags & NDR_BUFFERS) {
10592 uint32_t _flags_save_string = ndr->flags;
10593 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10594 if (r->driver_name) {
10595 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
10596 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
10598 ndr->flags = _flags_save_string;
10601 return NDR_ERR_SUCCESS;
10604 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo1 *r)
10606 uint32_t _ptr_driver_name;
10607 TALLOC_CTX *_mem_save_driver_name_0;
10608 if (ndr_flags & NDR_SCALARS) {
10609 NDR_CHECK(ndr_pull_align(ndr, 5));
10611 uint32_t _flags_save_string = ndr->flags;
10612 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10613 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
10614 if (_ptr_driver_name) {
10615 NDR_PULL_ALLOC(ndr, r->driver_name);
10616 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
10618 r->driver_name = NULL;
10620 ndr->flags = _flags_save_string;
10622 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
10624 if (ndr_flags & NDR_BUFFERS) {
10626 uint32_t _flags_save_string = ndr->flags;
10627 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10628 if (r->driver_name) {
10629 uint32_t _relative_save_offset;
10630 _relative_save_offset = ndr->offset;
10631 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
10632 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10633 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
10634 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
10635 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
10636 if (ndr->offset > ndr->relative_highest_offset) {
10637 ndr->relative_highest_offset = ndr->offset;
10639 ndr->offset = _relative_save_offset;
10641 ndr->flags = _flags_save_string;
10644 return NDR_ERR_SUCCESS;
10647 _PUBLIC_ void ndr_print_spoolss_DriverInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo1 *r)
10649 ndr_print_struct(ndr, name, "spoolss_DriverInfo1");
10651 ndr_print_ptr(ndr, "driver_name", r->driver_name);
10653 if (r->driver_name) {
10654 ndr_print_string(ndr, "driver_name", r->driver_name);
10660 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo1(const struct spoolss_DriverInfo1 *r, struct smb_iconv_convenience *ic, int flags)
10662 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo1, ic);
10665 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo2 *r)
10667 if (ndr_flags & NDR_SCALARS) {
10668 NDR_CHECK(ndr_push_align(ndr, 5));
10669 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
10671 uint32_t _flags_save_string = ndr->flags;
10672 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10673 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
10674 ndr->flags = _flags_save_string;
10677 uint32_t _flags_save_string = ndr->flags;
10678 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10679 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
10680 ndr->flags = _flags_save_string;
10683 uint32_t _flags_save_string = ndr->flags;
10684 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10685 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
10686 ndr->flags = _flags_save_string;
10689 uint32_t _flags_save_string = ndr->flags;
10690 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10691 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
10692 ndr->flags = _flags_save_string;
10695 uint32_t _flags_save_string = ndr->flags;
10696 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10697 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
10698 ndr->flags = _flags_save_string;
10700 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
10702 if (ndr_flags & NDR_BUFFERS) {
10704 uint32_t _flags_save_string = ndr->flags;
10705 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10706 if (r->driver_name) {
10707 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
10708 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
10710 ndr->flags = _flags_save_string;
10713 uint32_t _flags_save_string = ndr->flags;
10714 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10715 if (r->architecture) {
10716 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
10717 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
10719 ndr->flags = _flags_save_string;
10722 uint32_t _flags_save_string = ndr->flags;
10723 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10724 if (r->driver_path) {
10725 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
10726 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
10728 ndr->flags = _flags_save_string;
10731 uint32_t _flags_save_string = ndr->flags;
10732 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10733 if (r->data_file) {
10734 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
10735 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
10737 ndr->flags = _flags_save_string;
10740 uint32_t _flags_save_string = ndr->flags;
10741 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10742 if (r->config_file) {
10743 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
10744 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
10746 ndr->flags = _flags_save_string;
10749 return NDR_ERR_SUCCESS;
10752 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo2 *r)
10754 uint32_t _ptr_driver_name;
10755 TALLOC_CTX *_mem_save_driver_name_0;
10756 uint32_t _ptr_architecture;
10757 TALLOC_CTX *_mem_save_architecture_0;
10758 uint32_t _ptr_driver_path;
10759 TALLOC_CTX *_mem_save_driver_path_0;
10760 uint32_t _ptr_data_file;
10761 TALLOC_CTX *_mem_save_data_file_0;
10762 uint32_t _ptr_config_file;
10763 TALLOC_CTX *_mem_save_config_file_0;
10764 if (ndr_flags & NDR_SCALARS) {
10765 NDR_CHECK(ndr_pull_align(ndr, 5));
10766 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
10768 uint32_t _flags_save_string = ndr->flags;
10769 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10770 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
10771 if (_ptr_driver_name) {
10772 NDR_PULL_ALLOC(ndr, r->driver_name);
10773 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
10775 r->driver_name = NULL;
10777 ndr->flags = _flags_save_string;
10780 uint32_t _flags_save_string = ndr->flags;
10781 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10782 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
10783 if (_ptr_architecture) {
10784 NDR_PULL_ALLOC(ndr, r->architecture);
10785 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
10787 r->architecture = NULL;
10789 ndr->flags = _flags_save_string;
10792 uint32_t _flags_save_string = ndr->flags;
10793 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10794 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
10795 if (_ptr_driver_path) {
10796 NDR_PULL_ALLOC(ndr, r->driver_path);
10797 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
10799 r->driver_path = NULL;
10801 ndr->flags = _flags_save_string;
10804 uint32_t _flags_save_string = ndr->flags;
10805 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10806 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
10807 if (_ptr_data_file) {
10808 NDR_PULL_ALLOC(ndr, r->data_file);
10809 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
10811 r->data_file = NULL;
10813 ndr->flags = _flags_save_string;
10816 uint32_t _flags_save_string = ndr->flags;
10817 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10818 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
10819 if (_ptr_config_file) {
10820 NDR_PULL_ALLOC(ndr, r->config_file);
10821 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
10823 r->config_file = NULL;
10825 ndr->flags = _flags_save_string;
10827 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
10829 if (ndr_flags & NDR_BUFFERS) {
10831 uint32_t _flags_save_string = ndr->flags;
10832 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10833 if (r->driver_name) {
10834 uint32_t _relative_save_offset;
10835 _relative_save_offset = ndr->offset;
10836 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
10837 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10838 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
10839 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
10840 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
10841 if (ndr->offset > ndr->relative_highest_offset) {
10842 ndr->relative_highest_offset = ndr->offset;
10844 ndr->offset = _relative_save_offset;
10846 ndr->flags = _flags_save_string;
10849 uint32_t _flags_save_string = ndr->flags;
10850 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10851 if (r->architecture) {
10852 uint32_t _relative_save_offset;
10853 _relative_save_offset = ndr->offset;
10854 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
10855 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
10856 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
10857 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
10858 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
10859 if (ndr->offset > ndr->relative_highest_offset) {
10860 ndr->relative_highest_offset = ndr->offset;
10862 ndr->offset = _relative_save_offset;
10864 ndr->flags = _flags_save_string;
10867 uint32_t _flags_save_string = ndr->flags;
10868 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10869 if (r->driver_path) {
10870 uint32_t _relative_save_offset;
10871 _relative_save_offset = ndr->offset;
10872 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
10873 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
10874 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
10875 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
10876 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
10877 if (ndr->offset > ndr->relative_highest_offset) {
10878 ndr->relative_highest_offset = ndr->offset;
10880 ndr->offset = _relative_save_offset;
10882 ndr->flags = _flags_save_string;
10885 uint32_t _flags_save_string = ndr->flags;
10886 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10887 if (r->data_file) {
10888 uint32_t _relative_save_offset;
10889 _relative_save_offset = ndr->offset;
10890 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
10891 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10892 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
10893 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
10894 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
10895 if (ndr->offset > ndr->relative_highest_offset) {
10896 ndr->relative_highest_offset = ndr->offset;
10898 ndr->offset = _relative_save_offset;
10900 ndr->flags = _flags_save_string;
10903 uint32_t _flags_save_string = ndr->flags;
10904 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10905 if (r->config_file) {
10906 uint32_t _relative_save_offset;
10907 _relative_save_offset = ndr->offset;
10908 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
10909 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10910 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
10911 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
10912 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
10913 if (ndr->offset > ndr->relative_highest_offset) {
10914 ndr->relative_highest_offset = ndr->offset;
10916 ndr->offset = _relative_save_offset;
10918 ndr->flags = _flags_save_string;
10921 return NDR_ERR_SUCCESS;
10924 _PUBLIC_ void ndr_print_spoolss_DriverInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo2 *r)
10926 ndr_print_struct(ndr, name, "spoolss_DriverInfo2");
10928 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
10929 ndr_print_ptr(ndr, "driver_name", r->driver_name);
10931 if (r->driver_name) {
10932 ndr_print_string(ndr, "driver_name", r->driver_name);
10935 ndr_print_ptr(ndr, "architecture", r->architecture);
10937 if (r->architecture) {
10938 ndr_print_string(ndr, "architecture", r->architecture);
10941 ndr_print_ptr(ndr, "driver_path", r->driver_path);
10943 if (r->driver_path) {
10944 ndr_print_string(ndr, "driver_path", r->driver_path);
10947 ndr_print_ptr(ndr, "data_file", r->data_file);
10949 if (r->data_file) {
10950 ndr_print_string(ndr, "data_file", r->data_file);
10953 ndr_print_ptr(ndr, "config_file", r->config_file);
10955 if (r->config_file) {
10956 ndr_print_string(ndr, "config_file", r->config_file);
10962 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo2(const struct spoolss_DriverInfo2 *r, struct smb_iconv_convenience *ic, int flags)
10964 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo2, ic);
10967 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo3 *r)
10969 if (ndr_flags & NDR_SCALARS) {
10970 NDR_CHECK(ndr_push_align(ndr, 5));
10971 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
10973 uint32_t _flags_save_string = ndr->flags;
10974 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10975 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
10976 ndr->flags = _flags_save_string;
10979 uint32_t _flags_save_string = ndr->flags;
10980 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10981 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
10982 ndr->flags = _flags_save_string;
10985 uint32_t _flags_save_string = ndr->flags;
10986 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10987 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
10988 ndr->flags = _flags_save_string;
10991 uint32_t _flags_save_string = ndr->flags;
10992 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10993 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
10994 ndr->flags = _flags_save_string;
10997 uint32_t _flags_save_string = ndr->flags;
10998 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10999 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
11000 ndr->flags = _flags_save_string;
11003 uint32_t _flags_save_string = ndr->flags;
11004 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11005 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
11006 ndr->flags = _flags_save_string;
11009 uint32_t _flags_save_string_array = ndr->flags;
11010 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11011 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
11012 ndr->flags = _flags_save_string_array;
11015 uint32_t _flags_save_string = ndr->flags;
11016 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11017 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
11018 ndr->flags = _flags_save_string;
11021 uint32_t _flags_save_string = ndr->flags;
11022 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11023 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
11024 ndr->flags = _flags_save_string;
11026 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
11028 if (ndr_flags & NDR_BUFFERS) {
11030 uint32_t _flags_save_string = ndr->flags;
11031 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11032 if (r->driver_name) {
11033 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
11034 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
11036 ndr->flags = _flags_save_string;
11039 uint32_t _flags_save_string = ndr->flags;
11040 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11041 if (r->architecture) {
11042 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
11043 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
11045 ndr->flags = _flags_save_string;
11048 uint32_t _flags_save_string = ndr->flags;
11049 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11050 if (r->driver_path) {
11051 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
11052 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
11054 ndr->flags = _flags_save_string;
11057 uint32_t _flags_save_string = ndr->flags;
11058 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11059 if (r->data_file) {
11060 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
11061 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
11063 ndr->flags = _flags_save_string;
11066 uint32_t _flags_save_string = ndr->flags;
11067 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11068 if (r->config_file) {
11069 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
11070 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
11072 ndr->flags = _flags_save_string;
11075 uint32_t _flags_save_string = ndr->flags;
11076 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11077 if (r->help_file) {
11078 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
11079 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
11081 ndr->flags = _flags_save_string;
11084 uint32_t _flags_save_string_array = ndr->flags;
11085 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11086 if (r->dependent_files) {
11087 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
11088 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
11090 ndr->flags = _flags_save_string_array;
11093 uint32_t _flags_save_string = ndr->flags;
11094 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11095 if (r->monitor_name) {
11096 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
11097 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
11099 ndr->flags = _flags_save_string;
11102 uint32_t _flags_save_string = ndr->flags;
11103 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11104 if (r->default_datatype) {
11105 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
11106 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
11108 ndr->flags = _flags_save_string;
11111 return NDR_ERR_SUCCESS;
11114 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo3 *r)
11116 uint32_t _ptr_driver_name;
11117 TALLOC_CTX *_mem_save_driver_name_0;
11118 uint32_t _ptr_architecture;
11119 TALLOC_CTX *_mem_save_architecture_0;
11120 uint32_t _ptr_driver_path;
11121 TALLOC_CTX *_mem_save_driver_path_0;
11122 uint32_t _ptr_data_file;
11123 TALLOC_CTX *_mem_save_data_file_0;
11124 uint32_t _ptr_config_file;
11125 TALLOC_CTX *_mem_save_config_file_0;
11126 uint32_t _ptr_help_file;
11127 TALLOC_CTX *_mem_save_help_file_0;
11128 uint32_t _ptr_dependent_files;
11129 TALLOC_CTX *_mem_save_dependent_files_0;
11130 uint32_t _ptr_monitor_name;
11131 TALLOC_CTX *_mem_save_monitor_name_0;
11132 uint32_t _ptr_default_datatype;
11133 TALLOC_CTX *_mem_save_default_datatype_0;
11134 if (ndr_flags & NDR_SCALARS) {
11135 NDR_CHECK(ndr_pull_align(ndr, 5));
11136 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
11138 uint32_t _flags_save_string = ndr->flags;
11139 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11140 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
11141 if (_ptr_driver_name) {
11142 NDR_PULL_ALLOC(ndr, r->driver_name);
11143 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
11145 r->driver_name = NULL;
11147 ndr->flags = _flags_save_string;
11150 uint32_t _flags_save_string = ndr->flags;
11151 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11152 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
11153 if (_ptr_architecture) {
11154 NDR_PULL_ALLOC(ndr, r->architecture);
11155 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
11157 r->architecture = NULL;
11159 ndr->flags = _flags_save_string;
11162 uint32_t _flags_save_string = ndr->flags;
11163 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11164 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
11165 if (_ptr_driver_path) {
11166 NDR_PULL_ALLOC(ndr, r->driver_path);
11167 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
11169 r->driver_path = NULL;
11171 ndr->flags = _flags_save_string;
11174 uint32_t _flags_save_string = ndr->flags;
11175 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11176 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
11177 if (_ptr_data_file) {
11178 NDR_PULL_ALLOC(ndr, r->data_file);
11179 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
11181 r->data_file = NULL;
11183 ndr->flags = _flags_save_string;
11186 uint32_t _flags_save_string = ndr->flags;
11187 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11188 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
11189 if (_ptr_config_file) {
11190 NDR_PULL_ALLOC(ndr, r->config_file);
11191 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
11193 r->config_file = NULL;
11195 ndr->flags = _flags_save_string;
11198 uint32_t _flags_save_string = ndr->flags;
11199 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11200 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
11201 if (_ptr_help_file) {
11202 NDR_PULL_ALLOC(ndr, r->help_file);
11203 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
11205 r->help_file = NULL;
11207 ndr->flags = _flags_save_string;
11210 uint32_t _flags_save_string_array = ndr->flags;
11211 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11212 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
11213 if (_ptr_dependent_files) {
11214 NDR_PULL_ALLOC(ndr, r->dependent_files);
11215 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
11217 r->dependent_files = NULL;
11219 ndr->flags = _flags_save_string_array;
11222 uint32_t _flags_save_string = ndr->flags;
11223 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11224 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
11225 if (_ptr_monitor_name) {
11226 NDR_PULL_ALLOC(ndr, r->monitor_name);
11227 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
11229 r->monitor_name = NULL;
11231 ndr->flags = _flags_save_string;
11234 uint32_t _flags_save_string = ndr->flags;
11235 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11236 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
11237 if (_ptr_default_datatype) {
11238 NDR_PULL_ALLOC(ndr, r->default_datatype);
11239 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
11241 r->default_datatype = NULL;
11243 ndr->flags = _flags_save_string;
11245 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
11247 if (ndr_flags & NDR_BUFFERS) {
11249 uint32_t _flags_save_string = ndr->flags;
11250 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11251 if (r->driver_name) {
11252 uint32_t _relative_save_offset;
11253 _relative_save_offset = ndr->offset;
11254 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
11255 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11256 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
11257 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
11258 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
11259 if (ndr->offset > ndr->relative_highest_offset) {
11260 ndr->relative_highest_offset = ndr->offset;
11262 ndr->offset = _relative_save_offset;
11264 ndr->flags = _flags_save_string;
11267 uint32_t _flags_save_string = ndr->flags;
11268 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11269 if (r->architecture) {
11270 uint32_t _relative_save_offset;
11271 _relative_save_offset = ndr->offset;
11272 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
11273 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
11274 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
11275 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
11276 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
11277 if (ndr->offset > ndr->relative_highest_offset) {
11278 ndr->relative_highest_offset = ndr->offset;
11280 ndr->offset = _relative_save_offset;
11282 ndr->flags = _flags_save_string;
11285 uint32_t _flags_save_string = ndr->flags;
11286 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11287 if (r->driver_path) {
11288 uint32_t _relative_save_offset;
11289 _relative_save_offset = ndr->offset;
11290 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
11291 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
11292 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
11293 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
11294 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
11295 if (ndr->offset > ndr->relative_highest_offset) {
11296 ndr->relative_highest_offset = ndr->offset;
11298 ndr->offset = _relative_save_offset;
11300 ndr->flags = _flags_save_string;
11303 uint32_t _flags_save_string = ndr->flags;
11304 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11305 if (r->data_file) {
11306 uint32_t _relative_save_offset;
11307 _relative_save_offset = ndr->offset;
11308 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
11309 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11310 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
11311 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
11312 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
11313 if (ndr->offset > ndr->relative_highest_offset) {
11314 ndr->relative_highest_offset = ndr->offset;
11316 ndr->offset = _relative_save_offset;
11318 ndr->flags = _flags_save_string;
11321 uint32_t _flags_save_string = ndr->flags;
11322 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11323 if (r->config_file) {
11324 uint32_t _relative_save_offset;
11325 _relative_save_offset = ndr->offset;
11326 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
11327 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11328 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
11329 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
11330 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
11331 if (ndr->offset > ndr->relative_highest_offset) {
11332 ndr->relative_highest_offset = ndr->offset;
11334 ndr->offset = _relative_save_offset;
11336 ndr->flags = _flags_save_string;
11339 uint32_t _flags_save_string = ndr->flags;
11340 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11341 if (r->help_file) {
11342 uint32_t _relative_save_offset;
11343 _relative_save_offset = ndr->offset;
11344 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
11345 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11346 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
11347 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
11348 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
11349 if (ndr->offset > ndr->relative_highest_offset) {
11350 ndr->relative_highest_offset = ndr->offset;
11352 ndr->offset = _relative_save_offset;
11354 ndr->flags = _flags_save_string;
11357 uint32_t _flags_save_string_array = ndr->flags;
11358 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11359 if (r->dependent_files) {
11360 uint32_t _relative_save_offset;
11361 _relative_save_offset = ndr->offset;
11362 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
11363 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
11364 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
11365 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
11366 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
11367 if (ndr->offset > ndr->relative_highest_offset) {
11368 ndr->relative_highest_offset = ndr->offset;
11370 ndr->offset = _relative_save_offset;
11372 ndr->flags = _flags_save_string_array;
11375 uint32_t _flags_save_string = ndr->flags;
11376 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11377 if (r->monitor_name) {
11378 uint32_t _relative_save_offset;
11379 _relative_save_offset = ndr->offset;
11380 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
11381 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11382 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
11383 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
11384 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
11385 if (ndr->offset > ndr->relative_highest_offset) {
11386 ndr->relative_highest_offset = ndr->offset;
11388 ndr->offset = _relative_save_offset;
11390 ndr->flags = _flags_save_string;
11393 uint32_t _flags_save_string = ndr->flags;
11394 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11395 if (r->default_datatype) {
11396 uint32_t _relative_save_offset;
11397 _relative_save_offset = ndr->offset;
11398 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
11399 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
11400 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
11401 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
11402 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
11403 if (ndr->offset > ndr->relative_highest_offset) {
11404 ndr->relative_highest_offset = ndr->offset;
11406 ndr->offset = _relative_save_offset;
11408 ndr->flags = _flags_save_string;
11411 return NDR_ERR_SUCCESS;
11414 _PUBLIC_ void ndr_print_spoolss_DriverInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo3 *r)
11416 ndr_print_struct(ndr, name, "spoolss_DriverInfo3");
11418 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
11419 ndr_print_ptr(ndr, "driver_name", r->driver_name);
11421 if (r->driver_name) {
11422 ndr_print_string(ndr, "driver_name", r->driver_name);
11425 ndr_print_ptr(ndr, "architecture", r->architecture);
11427 if (r->architecture) {
11428 ndr_print_string(ndr, "architecture", r->architecture);
11431 ndr_print_ptr(ndr, "driver_path", r->driver_path);
11433 if (r->driver_path) {
11434 ndr_print_string(ndr, "driver_path", r->driver_path);
11437 ndr_print_ptr(ndr, "data_file", r->data_file);
11439 if (r->data_file) {
11440 ndr_print_string(ndr, "data_file", r->data_file);
11443 ndr_print_ptr(ndr, "config_file", r->config_file);
11445 if (r->config_file) {
11446 ndr_print_string(ndr, "config_file", r->config_file);
11449 ndr_print_ptr(ndr, "help_file", r->help_file);
11451 if (r->help_file) {
11452 ndr_print_string(ndr, "help_file", r->help_file);
11455 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
11457 if (r->dependent_files) {
11458 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
11461 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
11463 if (r->monitor_name) {
11464 ndr_print_string(ndr, "monitor_name", r->monitor_name);
11467 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
11469 if (r->default_datatype) {
11470 ndr_print_string(ndr, "default_datatype", r->default_datatype);
11476 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo3(const struct spoolss_DriverInfo3 *r, struct smb_iconv_convenience *ic, int flags)
11478 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo3, ic);
11481 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo4 *r)
11483 if (ndr_flags & NDR_SCALARS) {
11484 NDR_CHECK(ndr_push_align(ndr, 5));
11485 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
11487 uint32_t _flags_save_string = ndr->flags;
11488 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11489 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
11490 ndr->flags = _flags_save_string;
11493 uint32_t _flags_save_string = ndr->flags;
11494 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11495 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
11496 ndr->flags = _flags_save_string;
11499 uint32_t _flags_save_string = ndr->flags;
11500 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11501 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
11502 ndr->flags = _flags_save_string;
11505 uint32_t _flags_save_string = ndr->flags;
11506 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11507 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
11508 ndr->flags = _flags_save_string;
11511 uint32_t _flags_save_string = ndr->flags;
11512 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11513 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
11514 ndr->flags = _flags_save_string;
11517 uint32_t _flags_save_string = ndr->flags;
11518 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11519 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
11520 ndr->flags = _flags_save_string;
11523 uint32_t _flags_save_string_array = ndr->flags;
11524 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11525 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
11526 ndr->flags = _flags_save_string_array;
11529 uint32_t _flags_save_string = ndr->flags;
11530 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11531 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
11532 ndr->flags = _flags_save_string;
11535 uint32_t _flags_save_string = ndr->flags;
11536 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11537 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
11538 ndr->flags = _flags_save_string;
11541 uint32_t _flags_save_string_array = ndr->flags;
11542 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11543 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
11544 ndr->flags = _flags_save_string_array;
11546 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
11548 if (ndr_flags & NDR_BUFFERS) {
11550 uint32_t _flags_save_string = ndr->flags;
11551 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11552 if (r->driver_name) {
11553 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
11554 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
11556 ndr->flags = _flags_save_string;
11559 uint32_t _flags_save_string = ndr->flags;
11560 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11561 if (r->architecture) {
11562 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
11563 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
11565 ndr->flags = _flags_save_string;
11568 uint32_t _flags_save_string = ndr->flags;
11569 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11570 if (r->driver_path) {
11571 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
11572 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
11574 ndr->flags = _flags_save_string;
11577 uint32_t _flags_save_string = ndr->flags;
11578 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11579 if (r->data_file) {
11580 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
11581 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
11583 ndr->flags = _flags_save_string;
11586 uint32_t _flags_save_string = ndr->flags;
11587 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11588 if (r->config_file) {
11589 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
11590 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
11592 ndr->flags = _flags_save_string;
11595 uint32_t _flags_save_string = ndr->flags;
11596 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11597 if (r->help_file) {
11598 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
11599 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
11601 ndr->flags = _flags_save_string;
11604 uint32_t _flags_save_string_array = ndr->flags;
11605 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11606 if (r->dependent_files) {
11607 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
11608 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
11610 ndr->flags = _flags_save_string_array;
11613 uint32_t _flags_save_string = ndr->flags;
11614 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11615 if (r->monitor_name) {
11616 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
11617 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
11619 ndr->flags = _flags_save_string;
11622 uint32_t _flags_save_string = ndr->flags;
11623 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11624 if (r->default_datatype) {
11625 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
11626 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
11628 ndr->flags = _flags_save_string;
11631 uint32_t _flags_save_string_array = ndr->flags;
11632 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11633 if (r->previous_names) {
11634 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->previous_names));
11635 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
11637 ndr->flags = _flags_save_string_array;
11640 return NDR_ERR_SUCCESS;
11643 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo4 *r)
11645 uint32_t _ptr_driver_name;
11646 TALLOC_CTX *_mem_save_driver_name_0;
11647 uint32_t _ptr_architecture;
11648 TALLOC_CTX *_mem_save_architecture_0;
11649 uint32_t _ptr_driver_path;
11650 TALLOC_CTX *_mem_save_driver_path_0;
11651 uint32_t _ptr_data_file;
11652 TALLOC_CTX *_mem_save_data_file_0;
11653 uint32_t _ptr_config_file;
11654 TALLOC_CTX *_mem_save_config_file_0;
11655 uint32_t _ptr_help_file;
11656 TALLOC_CTX *_mem_save_help_file_0;
11657 uint32_t _ptr_dependent_files;
11658 TALLOC_CTX *_mem_save_dependent_files_0;
11659 uint32_t _ptr_monitor_name;
11660 TALLOC_CTX *_mem_save_monitor_name_0;
11661 uint32_t _ptr_default_datatype;
11662 TALLOC_CTX *_mem_save_default_datatype_0;
11663 uint32_t _ptr_previous_names;
11664 TALLOC_CTX *_mem_save_previous_names_0;
11665 if (ndr_flags & NDR_SCALARS) {
11666 NDR_CHECK(ndr_pull_align(ndr, 5));
11667 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
11669 uint32_t _flags_save_string = ndr->flags;
11670 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11671 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
11672 if (_ptr_driver_name) {
11673 NDR_PULL_ALLOC(ndr, r->driver_name);
11674 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
11676 r->driver_name = NULL;
11678 ndr->flags = _flags_save_string;
11681 uint32_t _flags_save_string = ndr->flags;
11682 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11683 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
11684 if (_ptr_architecture) {
11685 NDR_PULL_ALLOC(ndr, r->architecture);
11686 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
11688 r->architecture = NULL;
11690 ndr->flags = _flags_save_string;
11693 uint32_t _flags_save_string = ndr->flags;
11694 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11695 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
11696 if (_ptr_driver_path) {
11697 NDR_PULL_ALLOC(ndr, r->driver_path);
11698 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
11700 r->driver_path = NULL;
11702 ndr->flags = _flags_save_string;
11705 uint32_t _flags_save_string = ndr->flags;
11706 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11707 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
11708 if (_ptr_data_file) {
11709 NDR_PULL_ALLOC(ndr, r->data_file);
11710 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
11712 r->data_file = NULL;
11714 ndr->flags = _flags_save_string;
11717 uint32_t _flags_save_string = ndr->flags;
11718 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11719 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
11720 if (_ptr_config_file) {
11721 NDR_PULL_ALLOC(ndr, r->config_file);
11722 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
11724 r->config_file = NULL;
11726 ndr->flags = _flags_save_string;
11729 uint32_t _flags_save_string = ndr->flags;
11730 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11731 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
11732 if (_ptr_help_file) {
11733 NDR_PULL_ALLOC(ndr, r->help_file);
11734 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
11736 r->help_file = NULL;
11738 ndr->flags = _flags_save_string;
11741 uint32_t _flags_save_string_array = ndr->flags;
11742 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11743 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
11744 if (_ptr_dependent_files) {
11745 NDR_PULL_ALLOC(ndr, r->dependent_files);
11746 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
11748 r->dependent_files = NULL;
11750 ndr->flags = _flags_save_string_array;
11753 uint32_t _flags_save_string = ndr->flags;
11754 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11755 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
11756 if (_ptr_monitor_name) {
11757 NDR_PULL_ALLOC(ndr, r->monitor_name);
11758 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
11760 r->monitor_name = NULL;
11762 ndr->flags = _flags_save_string;
11765 uint32_t _flags_save_string = ndr->flags;
11766 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11767 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
11768 if (_ptr_default_datatype) {
11769 NDR_PULL_ALLOC(ndr, r->default_datatype);
11770 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
11772 r->default_datatype = NULL;
11774 ndr->flags = _flags_save_string;
11777 uint32_t _flags_save_string_array = ndr->flags;
11778 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11779 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
11780 if (_ptr_previous_names) {
11781 NDR_PULL_ALLOC(ndr, r->previous_names);
11782 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
11784 r->previous_names = NULL;
11786 ndr->flags = _flags_save_string_array;
11788 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
11790 if (ndr_flags & NDR_BUFFERS) {
11792 uint32_t _flags_save_string = ndr->flags;
11793 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11794 if (r->driver_name) {
11795 uint32_t _relative_save_offset;
11796 _relative_save_offset = ndr->offset;
11797 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
11798 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11799 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
11800 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
11801 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
11802 if (ndr->offset > ndr->relative_highest_offset) {
11803 ndr->relative_highest_offset = ndr->offset;
11805 ndr->offset = _relative_save_offset;
11807 ndr->flags = _flags_save_string;
11810 uint32_t _flags_save_string = ndr->flags;
11811 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11812 if (r->architecture) {
11813 uint32_t _relative_save_offset;
11814 _relative_save_offset = ndr->offset;
11815 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
11816 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
11817 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
11818 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
11819 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
11820 if (ndr->offset > ndr->relative_highest_offset) {
11821 ndr->relative_highest_offset = ndr->offset;
11823 ndr->offset = _relative_save_offset;
11825 ndr->flags = _flags_save_string;
11828 uint32_t _flags_save_string = ndr->flags;
11829 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11830 if (r->driver_path) {
11831 uint32_t _relative_save_offset;
11832 _relative_save_offset = ndr->offset;
11833 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
11834 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
11835 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
11836 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
11837 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
11838 if (ndr->offset > ndr->relative_highest_offset) {
11839 ndr->relative_highest_offset = ndr->offset;
11841 ndr->offset = _relative_save_offset;
11843 ndr->flags = _flags_save_string;
11846 uint32_t _flags_save_string = ndr->flags;
11847 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11848 if (r->data_file) {
11849 uint32_t _relative_save_offset;
11850 _relative_save_offset = ndr->offset;
11851 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
11852 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11853 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
11854 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
11855 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
11856 if (ndr->offset > ndr->relative_highest_offset) {
11857 ndr->relative_highest_offset = ndr->offset;
11859 ndr->offset = _relative_save_offset;
11861 ndr->flags = _flags_save_string;
11864 uint32_t _flags_save_string = ndr->flags;
11865 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11866 if (r->config_file) {
11867 uint32_t _relative_save_offset;
11868 _relative_save_offset = ndr->offset;
11869 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
11870 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11871 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
11872 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
11873 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
11874 if (ndr->offset > ndr->relative_highest_offset) {
11875 ndr->relative_highest_offset = ndr->offset;
11877 ndr->offset = _relative_save_offset;
11879 ndr->flags = _flags_save_string;
11882 uint32_t _flags_save_string = ndr->flags;
11883 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11884 if (r->help_file) {
11885 uint32_t _relative_save_offset;
11886 _relative_save_offset = ndr->offset;
11887 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
11888 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11889 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
11890 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
11891 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
11892 if (ndr->offset > ndr->relative_highest_offset) {
11893 ndr->relative_highest_offset = ndr->offset;
11895 ndr->offset = _relative_save_offset;
11897 ndr->flags = _flags_save_string;
11900 uint32_t _flags_save_string_array = ndr->flags;
11901 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11902 if (r->dependent_files) {
11903 uint32_t _relative_save_offset;
11904 _relative_save_offset = ndr->offset;
11905 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
11906 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
11907 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
11908 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
11909 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
11910 if (ndr->offset > ndr->relative_highest_offset) {
11911 ndr->relative_highest_offset = ndr->offset;
11913 ndr->offset = _relative_save_offset;
11915 ndr->flags = _flags_save_string_array;
11918 uint32_t _flags_save_string = ndr->flags;
11919 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11920 if (r->monitor_name) {
11921 uint32_t _relative_save_offset;
11922 _relative_save_offset = ndr->offset;
11923 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
11924 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11925 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
11926 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
11927 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
11928 if (ndr->offset > ndr->relative_highest_offset) {
11929 ndr->relative_highest_offset = ndr->offset;
11931 ndr->offset = _relative_save_offset;
11933 ndr->flags = _flags_save_string;
11936 uint32_t _flags_save_string = ndr->flags;
11937 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11938 if (r->default_datatype) {
11939 uint32_t _relative_save_offset;
11940 _relative_save_offset = ndr->offset;
11941 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
11942 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
11943 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
11944 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
11945 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
11946 if (ndr->offset > ndr->relative_highest_offset) {
11947 ndr->relative_highest_offset = ndr->offset;
11949 ndr->offset = _relative_save_offset;
11951 ndr->flags = _flags_save_string;
11954 uint32_t _flags_save_string_array = ndr->flags;
11955 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11956 if (r->previous_names) {
11957 uint32_t _relative_save_offset;
11958 _relative_save_offset = ndr->offset;
11959 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
11960 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
11961 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
11962 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
11963 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
11964 if (ndr->offset > ndr->relative_highest_offset) {
11965 ndr->relative_highest_offset = ndr->offset;
11967 ndr->offset = _relative_save_offset;
11969 ndr->flags = _flags_save_string_array;
11972 return NDR_ERR_SUCCESS;
11975 _PUBLIC_ void ndr_print_spoolss_DriverInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo4 *r)
11977 ndr_print_struct(ndr, name, "spoolss_DriverInfo4");
11979 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
11980 ndr_print_ptr(ndr, "driver_name", r->driver_name);
11982 if (r->driver_name) {
11983 ndr_print_string(ndr, "driver_name", r->driver_name);
11986 ndr_print_ptr(ndr, "architecture", r->architecture);
11988 if (r->architecture) {
11989 ndr_print_string(ndr, "architecture", r->architecture);
11992 ndr_print_ptr(ndr, "driver_path", r->driver_path);
11994 if (r->driver_path) {
11995 ndr_print_string(ndr, "driver_path", r->driver_path);
11998 ndr_print_ptr(ndr, "data_file", r->data_file);
12000 if (r->data_file) {
12001 ndr_print_string(ndr, "data_file", r->data_file);
12004 ndr_print_ptr(ndr, "config_file", r->config_file);
12006 if (r->config_file) {
12007 ndr_print_string(ndr, "config_file", r->config_file);
12010 ndr_print_ptr(ndr, "help_file", r->help_file);
12012 if (r->help_file) {
12013 ndr_print_string(ndr, "help_file", r->help_file);
12016 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
12018 if (r->dependent_files) {
12019 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
12022 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
12024 if (r->monitor_name) {
12025 ndr_print_string(ndr, "monitor_name", r->monitor_name);
12028 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
12030 if (r->default_datatype) {
12031 ndr_print_string(ndr, "default_datatype", r->default_datatype);
12034 ndr_print_ptr(ndr, "previous_names", r->previous_names);
12036 if (r->previous_names) {
12037 ndr_print_string_array(ndr, "previous_names", r->previous_names);
12043 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo4(const struct spoolss_DriverInfo4 *r, struct smb_iconv_convenience *ic, int flags)
12045 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo4, ic);
12048 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo5 *r)
12050 if (ndr_flags & NDR_SCALARS) {
12051 NDR_CHECK(ndr_push_align(ndr, 5));
12052 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
12054 uint32_t _flags_save_string = ndr->flags;
12055 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12056 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
12057 ndr->flags = _flags_save_string;
12060 uint32_t _flags_save_string = ndr->flags;
12061 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12062 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
12063 ndr->flags = _flags_save_string;
12066 uint32_t _flags_save_string = ndr->flags;
12067 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12068 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
12069 ndr->flags = _flags_save_string;
12072 uint32_t _flags_save_string = ndr->flags;
12073 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12074 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
12075 ndr->flags = _flags_save_string;
12078 uint32_t _flags_save_string = ndr->flags;
12079 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12080 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
12081 ndr->flags = _flags_save_string;
12083 NDR_CHECK(ndr_push_spoolss_DriverAttributes(ndr, NDR_SCALARS, r->driver_attributes));
12084 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->config_version));
12085 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->driver_version));
12086 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
12088 if (ndr_flags & NDR_BUFFERS) {
12090 uint32_t _flags_save_string = ndr->flags;
12091 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12092 if (r->driver_name) {
12093 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
12094 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
12096 ndr->flags = _flags_save_string;
12099 uint32_t _flags_save_string = ndr->flags;
12100 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12101 if (r->architecture) {
12102 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
12103 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
12105 ndr->flags = _flags_save_string;
12108 uint32_t _flags_save_string = ndr->flags;
12109 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12110 if (r->driver_path) {
12111 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
12112 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
12114 ndr->flags = _flags_save_string;
12117 uint32_t _flags_save_string = ndr->flags;
12118 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12119 if (r->data_file) {
12120 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
12121 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
12123 ndr->flags = _flags_save_string;
12126 uint32_t _flags_save_string = ndr->flags;
12127 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12128 if (r->config_file) {
12129 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
12130 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
12132 ndr->flags = _flags_save_string;
12135 return NDR_ERR_SUCCESS;
12138 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo5 *r)
12140 uint32_t _ptr_driver_name;
12141 TALLOC_CTX *_mem_save_driver_name_0;
12142 uint32_t _ptr_architecture;
12143 TALLOC_CTX *_mem_save_architecture_0;
12144 uint32_t _ptr_driver_path;
12145 TALLOC_CTX *_mem_save_driver_path_0;
12146 uint32_t _ptr_data_file;
12147 TALLOC_CTX *_mem_save_data_file_0;
12148 uint32_t _ptr_config_file;
12149 TALLOC_CTX *_mem_save_config_file_0;
12150 if (ndr_flags & NDR_SCALARS) {
12151 NDR_CHECK(ndr_pull_align(ndr, 5));
12152 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
12154 uint32_t _flags_save_string = ndr->flags;
12155 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12156 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
12157 if (_ptr_driver_name) {
12158 NDR_PULL_ALLOC(ndr, r->driver_name);
12159 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
12161 r->driver_name = NULL;
12163 ndr->flags = _flags_save_string;
12166 uint32_t _flags_save_string = ndr->flags;
12167 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12168 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
12169 if (_ptr_architecture) {
12170 NDR_PULL_ALLOC(ndr, r->architecture);
12171 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
12173 r->architecture = NULL;
12175 ndr->flags = _flags_save_string;
12178 uint32_t _flags_save_string = ndr->flags;
12179 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12180 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
12181 if (_ptr_driver_path) {
12182 NDR_PULL_ALLOC(ndr, r->driver_path);
12183 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
12185 r->driver_path = NULL;
12187 ndr->flags = _flags_save_string;
12190 uint32_t _flags_save_string = ndr->flags;
12191 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12192 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
12193 if (_ptr_data_file) {
12194 NDR_PULL_ALLOC(ndr, r->data_file);
12195 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
12197 r->data_file = NULL;
12199 ndr->flags = _flags_save_string;
12202 uint32_t _flags_save_string = ndr->flags;
12203 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12204 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
12205 if (_ptr_config_file) {
12206 NDR_PULL_ALLOC(ndr, r->config_file);
12207 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
12209 r->config_file = NULL;
12211 ndr->flags = _flags_save_string;
12213 NDR_CHECK(ndr_pull_spoolss_DriverAttributes(ndr, NDR_SCALARS, &r->driver_attributes));
12214 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->config_version));
12215 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->driver_version));
12216 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
12218 if (ndr_flags & NDR_BUFFERS) {
12220 uint32_t _flags_save_string = ndr->flags;
12221 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12222 if (r->driver_name) {
12223 uint32_t _relative_save_offset;
12224 _relative_save_offset = ndr->offset;
12225 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
12226 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12227 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
12228 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
12229 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
12230 if (ndr->offset > ndr->relative_highest_offset) {
12231 ndr->relative_highest_offset = ndr->offset;
12233 ndr->offset = _relative_save_offset;
12235 ndr->flags = _flags_save_string;
12238 uint32_t _flags_save_string = ndr->flags;
12239 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12240 if (r->architecture) {
12241 uint32_t _relative_save_offset;
12242 _relative_save_offset = ndr->offset;
12243 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
12244 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
12245 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
12246 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
12247 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
12248 if (ndr->offset > ndr->relative_highest_offset) {
12249 ndr->relative_highest_offset = ndr->offset;
12251 ndr->offset = _relative_save_offset;
12253 ndr->flags = _flags_save_string;
12256 uint32_t _flags_save_string = ndr->flags;
12257 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12258 if (r->driver_path) {
12259 uint32_t _relative_save_offset;
12260 _relative_save_offset = ndr->offset;
12261 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
12262 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
12263 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
12264 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
12265 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
12266 if (ndr->offset > ndr->relative_highest_offset) {
12267 ndr->relative_highest_offset = ndr->offset;
12269 ndr->offset = _relative_save_offset;
12271 ndr->flags = _flags_save_string;
12274 uint32_t _flags_save_string = ndr->flags;
12275 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12276 if (r->data_file) {
12277 uint32_t _relative_save_offset;
12278 _relative_save_offset = ndr->offset;
12279 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
12280 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12281 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
12282 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
12283 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
12284 if (ndr->offset > ndr->relative_highest_offset) {
12285 ndr->relative_highest_offset = ndr->offset;
12287 ndr->offset = _relative_save_offset;
12289 ndr->flags = _flags_save_string;
12292 uint32_t _flags_save_string = ndr->flags;
12293 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12294 if (r->config_file) {
12295 uint32_t _relative_save_offset;
12296 _relative_save_offset = ndr->offset;
12297 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
12298 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12299 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
12300 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
12301 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
12302 if (ndr->offset > ndr->relative_highest_offset) {
12303 ndr->relative_highest_offset = ndr->offset;
12305 ndr->offset = _relative_save_offset;
12307 ndr->flags = _flags_save_string;
12310 return NDR_ERR_SUCCESS;
12313 _PUBLIC_ void ndr_print_spoolss_DriverInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo5 *r)
12315 ndr_print_struct(ndr, name, "spoolss_DriverInfo5");
12317 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
12318 ndr_print_ptr(ndr, "driver_name", r->driver_name);
12320 if (r->driver_name) {
12321 ndr_print_string(ndr, "driver_name", r->driver_name);
12324 ndr_print_ptr(ndr, "architecture", r->architecture);
12326 if (r->architecture) {
12327 ndr_print_string(ndr, "architecture", r->architecture);
12330 ndr_print_ptr(ndr, "driver_path", r->driver_path);
12332 if (r->driver_path) {
12333 ndr_print_string(ndr, "driver_path", r->driver_path);
12336 ndr_print_ptr(ndr, "data_file", r->data_file);
12338 if (r->data_file) {
12339 ndr_print_string(ndr, "data_file", r->data_file);
12342 ndr_print_ptr(ndr, "config_file", r->config_file);
12344 if (r->config_file) {
12345 ndr_print_string(ndr, "config_file", r->config_file);
12348 ndr_print_spoolss_DriverAttributes(ndr, "driver_attributes", r->driver_attributes);
12349 ndr_print_uint32(ndr, "config_version", r->config_version);
12350 ndr_print_uint32(ndr, "driver_version", r->driver_version);
12354 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo5(const struct spoolss_DriverInfo5 *r, struct smb_iconv_convenience *ic, int flags)
12356 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo5, ic);
12359 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo6 *r)
12361 if (ndr_flags & NDR_SCALARS) {
12362 NDR_CHECK(ndr_push_align(ndr, 8));
12363 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
12365 uint32_t _flags_save_string = ndr->flags;
12366 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12367 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
12368 ndr->flags = _flags_save_string;
12371 uint32_t _flags_save_string = ndr->flags;
12372 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12373 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
12374 ndr->flags = _flags_save_string;
12377 uint32_t _flags_save_string = ndr->flags;
12378 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12379 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
12380 ndr->flags = _flags_save_string;
12383 uint32_t _flags_save_string = ndr->flags;
12384 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12385 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
12386 ndr->flags = _flags_save_string;
12389 uint32_t _flags_save_string = ndr->flags;
12390 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12391 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
12392 ndr->flags = _flags_save_string;
12395 uint32_t _flags_save_string = ndr->flags;
12396 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12397 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
12398 ndr->flags = _flags_save_string;
12401 uint32_t _flags_save_string_array = ndr->flags;
12402 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12403 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
12404 ndr->flags = _flags_save_string_array;
12407 uint32_t _flags_save_string = ndr->flags;
12408 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12409 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
12410 ndr->flags = _flags_save_string;
12413 uint32_t _flags_save_string = ndr->flags;
12414 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12415 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
12416 ndr->flags = _flags_save_string;
12419 uint32_t _flags_save_string_array = ndr->flags;
12420 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12421 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
12422 ndr->flags = _flags_save_string_array;
12424 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
12425 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
12427 uint32_t _flags_save_string = ndr->flags;
12428 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12429 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_name));
12430 ndr->flags = _flags_save_string;
12433 uint32_t _flags_save_string = ndr->flags;
12434 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12435 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_url));
12436 ndr->flags = _flags_save_string;
12439 uint32_t _flags_save_string = ndr->flags;
12440 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12441 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->hardware_id));
12442 ndr->flags = _flags_save_string;
12445 uint32_t _flags_save_string = ndr->flags;
12446 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12447 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->provider));
12448 ndr->flags = _flags_save_string;
12450 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
12452 if (ndr_flags & NDR_BUFFERS) {
12454 uint32_t _flags_save_string = ndr->flags;
12455 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12456 if (r->driver_name) {
12457 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
12458 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
12460 ndr->flags = _flags_save_string;
12463 uint32_t _flags_save_string = ndr->flags;
12464 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12465 if (r->architecture) {
12466 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
12467 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
12469 ndr->flags = _flags_save_string;
12472 uint32_t _flags_save_string = ndr->flags;
12473 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12474 if (r->driver_path) {
12475 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
12476 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
12478 ndr->flags = _flags_save_string;
12481 uint32_t _flags_save_string = ndr->flags;
12482 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12483 if (r->data_file) {
12484 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
12485 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
12487 ndr->flags = _flags_save_string;
12490 uint32_t _flags_save_string = ndr->flags;
12491 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12492 if (r->config_file) {
12493 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
12494 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
12496 ndr->flags = _flags_save_string;
12499 uint32_t _flags_save_string = ndr->flags;
12500 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12501 if (r->help_file) {
12502 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
12503 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
12505 ndr->flags = _flags_save_string;
12508 uint32_t _flags_save_string_array = ndr->flags;
12509 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12510 if (r->dependent_files) {
12511 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
12512 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
12514 ndr->flags = _flags_save_string_array;
12517 uint32_t _flags_save_string = ndr->flags;
12518 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12519 if (r->monitor_name) {
12520 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
12521 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
12523 ndr->flags = _flags_save_string;
12526 uint32_t _flags_save_string = ndr->flags;
12527 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12528 if (r->default_datatype) {
12529 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
12530 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
12532 ndr->flags = _flags_save_string;
12535 uint32_t _flags_save_string_array = ndr->flags;
12536 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12537 if (r->previous_names) {
12538 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->previous_names));
12539 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
12541 ndr->flags = _flags_save_string_array;
12544 uint32_t _flags_save_string = ndr->flags;
12545 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12546 if (r->manufacturer_name) {
12547 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_name));
12548 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_name));
12550 ndr->flags = _flags_save_string;
12553 uint32_t _flags_save_string = ndr->flags;
12554 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12555 if (r->manufacturer_url) {
12556 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_url));
12557 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_url));
12559 ndr->flags = _flags_save_string;
12562 uint32_t _flags_save_string = ndr->flags;
12563 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12564 if (r->hardware_id) {
12565 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->hardware_id));
12566 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->hardware_id));
12568 ndr->flags = _flags_save_string;
12571 uint32_t _flags_save_string = ndr->flags;
12572 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12574 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->provider));
12575 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->provider));
12577 ndr->flags = _flags_save_string;
12580 return NDR_ERR_SUCCESS;
12583 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo6 *r)
12585 uint32_t _ptr_driver_name;
12586 TALLOC_CTX *_mem_save_driver_name_0;
12587 uint32_t _ptr_architecture;
12588 TALLOC_CTX *_mem_save_architecture_0;
12589 uint32_t _ptr_driver_path;
12590 TALLOC_CTX *_mem_save_driver_path_0;
12591 uint32_t _ptr_data_file;
12592 TALLOC_CTX *_mem_save_data_file_0;
12593 uint32_t _ptr_config_file;
12594 TALLOC_CTX *_mem_save_config_file_0;
12595 uint32_t _ptr_help_file;
12596 TALLOC_CTX *_mem_save_help_file_0;
12597 uint32_t _ptr_dependent_files;
12598 TALLOC_CTX *_mem_save_dependent_files_0;
12599 uint32_t _ptr_monitor_name;
12600 TALLOC_CTX *_mem_save_monitor_name_0;
12601 uint32_t _ptr_default_datatype;
12602 TALLOC_CTX *_mem_save_default_datatype_0;
12603 uint32_t _ptr_previous_names;
12604 TALLOC_CTX *_mem_save_previous_names_0;
12605 uint32_t _ptr_manufacturer_name;
12606 TALLOC_CTX *_mem_save_manufacturer_name_0;
12607 uint32_t _ptr_manufacturer_url;
12608 TALLOC_CTX *_mem_save_manufacturer_url_0;
12609 uint32_t _ptr_hardware_id;
12610 TALLOC_CTX *_mem_save_hardware_id_0;
12611 uint32_t _ptr_provider;
12612 TALLOC_CTX *_mem_save_provider_0;
12613 if (ndr_flags & NDR_SCALARS) {
12614 NDR_CHECK(ndr_pull_align(ndr, 8));
12615 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
12617 uint32_t _flags_save_string = ndr->flags;
12618 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12619 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
12620 if (_ptr_driver_name) {
12621 NDR_PULL_ALLOC(ndr, r->driver_name);
12622 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
12624 r->driver_name = NULL;
12626 ndr->flags = _flags_save_string;
12629 uint32_t _flags_save_string = ndr->flags;
12630 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12631 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
12632 if (_ptr_architecture) {
12633 NDR_PULL_ALLOC(ndr, r->architecture);
12634 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
12636 r->architecture = NULL;
12638 ndr->flags = _flags_save_string;
12641 uint32_t _flags_save_string = ndr->flags;
12642 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12643 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
12644 if (_ptr_driver_path) {
12645 NDR_PULL_ALLOC(ndr, r->driver_path);
12646 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
12648 r->driver_path = NULL;
12650 ndr->flags = _flags_save_string;
12653 uint32_t _flags_save_string = ndr->flags;
12654 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12655 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
12656 if (_ptr_data_file) {
12657 NDR_PULL_ALLOC(ndr, r->data_file);
12658 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
12660 r->data_file = NULL;
12662 ndr->flags = _flags_save_string;
12665 uint32_t _flags_save_string = ndr->flags;
12666 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12667 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
12668 if (_ptr_config_file) {
12669 NDR_PULL_ALLOC(ndr, r->config_file);
12670 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
12672 r->config_file = NULL;
12674 ndr->flags = _flags_save_string;
12677 uint32_t _flags_save_string = ndr->flags;
12678 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12679 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
12680 if (_ptr_help_file) {
12681 NDR_PULL_ALLOC(ndr, r->help_file);
12682 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
12684 r->help_file = NULL;
12686 ndr->flags = _flags_save_string;
12689 uint32_t _flags_save_string_array = ndr->flags;
12690 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12691 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
12692 if (_ptr_dependent_files) {
12693 NDR_PULL_ALLOC(ndr, r->dependent_files);
12694 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
12696 r->dependent_files = NULL;
12698 ndr->flags = _flags_save_string_array;
12701 uint32_t _flags_save_string = ndr->flags;
12702 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12703 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
12704 if (_ptr_monitor_name) {
12705 NDR_PULL_ALLOC(ndr, r->monitor_name);
12706 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
12708 r->monitor_name = NULL;
12710 ndr->flags = _flags_save_string;
12713 uint32_t _flags_save_string = ndr->flags;
12714 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12715 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
12716 if (_ptr_default_datatype) {
12717 NDR_PULL_ALLOC(ndr, r->default_datatype);
12718 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
12720 r->default_datatype = NULL;
12722 ndr->flags = _flags_save_string;
12725 uint32_t _flags_save_string_array = ndr->flags;
12726 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12727 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
12728 if (_ptr_previous_names) {
12729 NDR_PULL_ALLOC(ndr, r->previous_names);
12730 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
12732 r->previous_names = NULL;
12734 ndr->flags = _flags_save_string_array;
12736 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
12737 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
12739 uint32_t _flags_save_string = ndr->flags;
12740 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12741 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
12742 if (_ptr_manufacturer_name) {
12743 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
12744 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_name, _ptr_manufacturer_name));
12746 r->manufacturer_name = NULL;
12748 ndr->flags = _flags_save_string;
12751 uint32_t _flags_save_string = ndr->flags;
12752 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12753 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
12754 if (_ptr_manufacturer_url) {
12755 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
12756 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_url, _ptr_manufacturer_url));
12758 r->manufacturer_url = NULL;
12760 ndr->flags = _flags_save_string;
12763 uint32_t _flags_save_string = ndr->flags;
12764 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12765 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
12766 if (_ptr_hardware_id) {
12767 NDR_PULL_ALLOC(ndr, r->hardware_id);
12768 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->hardware_id, _ptr_hardware_id));
12770 r->hardware_id = NULL;
12772 ndr->flags = _flags_save_string;
12775 uint32_t _flags_save_string = ndr->flags;
12776 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12777 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
12778 if (_ptr_provider) {
12779 NDR_PULL_ALLOC(ndr, r->provider);
12780 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->provider, _ptr_provider));
12782 r->provider = NULL;
12784 ndr->flags = _flags_save_string;
12786 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
12788 if (ndr_flags & NDR_BUFFERS) {
12790 uint32_t _flags_save_string = ndr->flags;
12791 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12792 if (r->driver_name) {
12793 uint32_t _relative_save_offset;
12794 _relative_save_offset = ndr->offset;
12795 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
12796 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12797 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
12798 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
12799 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
12800 if (ndr->offset > ndr->relative_highest_offset) {
12801 ndr->relative_highest_offset = ndr->offset;
12803 ndr->offset = _relative_save_offset;
12805 ndr->flags = _flags_save_string;
12808 uint32_t _flags_save_string = ndr->flags;
12809 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12810 if (r->architecture) {
12811 uint32_t _relative_save_offset;
12812 _relative_save_offset = ndr->offset;
12813 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
12814 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
12815 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
12816 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
12817 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
12818 if (ndr->offset > ndr->relative_highest_offset) {
12819 ndr->relative_highest_offset = ndr->offset;
12821 ndr->offset = _relative_save_offset;
12823 ndr->flags = _flags_save_string;
12826 uint32_t _flags_save_string = ndr->flags;
12827 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12828 if (r->driver_path) {
12829 uint32_t _relative_save_offset;
12830 _relative_save_offset = ndr->offset;
12831 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
12832 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
12833 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
12834 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
12835 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
12836 if (ndr->offset > ndr->relative_highest_offset) {
12837 ndr->relative_highest_offset = ndr->offset;
12839 ndr->offset = _relative_save_offset;
12841 ndr->flags = _flags_save_string;
12844 uint32_t _flags_save_string = ndr->flags;
12845 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12846 if (r->data_file) {
12847 uint32_t _relative_save_offset;
12848 _relative_save_offset = ndr->offset;
12849 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
12850 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12851 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
12852 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
12853 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
12854 if (ndr->offset > ndr->relative_highest_offset) {
12855 ndr->relative_highest_offset = ndr->offset;
12857 ndr->offset = _relative_save_offset;
12859 ndr->flags = _flags_save_string;
12862 uint32_t _flags_save_string = ndr->flags;
12863 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12864 if (r->config_file) {
12865 uint32_t _relative_save_offset;
12866 _relative_save_offset = ndr->offset;
12867 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
12868 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12869 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
12870 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
12871 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
12872 if (ndr->offset > ndr->relative_highest_offset) {
12873 ndr->relative_highest_offset = ndr->offset;
12875 ndr->offset = _relative_save_offset;
12877 ndr->flags = _flags_save_string;
12880 uint32_t _flags_save_string = ndr->flags;
12881 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12882 if (r->help_file) {
12883 uint32_t _relative_save_offset;
12884 _relative_save_offset = ndr->offset;
12885 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
12886 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12887 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
12888 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
12889 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
12890 if (ndr->offset > ndr->relative_highest_offset) {
12891 ndr->relative_highest_offset = ndr->offset;
12893 ndr->offset = _relative_save_offset;
12895 ndr->flags = _flags_save_string;
12898 uint32_t _flags_save_string_array = ndr->flags;
12899 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12900 if (r->dependent_files) {
12901 uint32_t _relative_save_offset;
12902 _relative_save_offset = ndr->offset;
12903 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
12904 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
12905 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
12906 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
12907 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
12908 if (ndr->offset > ndr->relative_highest_offset) {
12909 ndr->relative_highest_offset = ndr->offset;
12911 ndr->offset = _relative_save_offset;
12913 ndr->flags = _flags_save_string_array;
12916 uint32_t _flags_save_string = ndr->flags;
12917 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12918 if (r->monitor_name) {
12919 uint32_t _relative_save_offset;
12920 _relative_save_offset = ndr->offset;
12921 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
12922 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12923 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
12924 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
12925 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
12926 if (ndr->offset > ndr->relative_highest_offset) {
12927 ndr->relative_highest_offset = ndr->offset;
12929 ndr->offset = _relative_save_offset;
12931 ndr->flags = _flags_save_string;
12934 uint32_t _flags_save_string = ndr->flags;
12935 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12936 if (r->default_datatype) {
12937 uint32_t _relative_save_offset;
12938 _relative_save_offset = ndr->offset;
12939 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
12940 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
12941 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
12942 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
12943 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
12944 if (ndr->offset > ndr->relative_highest_offset) {
12945 ndr->relative_highest_offset = ndr->offset;
12947 ndr->offset = _relative_save_offset;
12949 ndr->flags = _flags_save_string;
12952 uint32_t _flags_save_string_array = ndr->flags;
12953 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12954 if (r->previous_names) {
12955 uint32_t _relative_save_offset;
12956 _relative_save_offset = ndr->offset;
12957 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
12958 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
12959 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
12960 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
12961 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
12962 if (ndr->offset > ndr->relative_highest_offset) {
12963 ndr->relative_highest_offset = ndr->offset;
12965 ndr->offset = _relative_save_offset;
12967 ndr->flags = _flags_save_string_array;
12970 uint32_t _flags_save_string = ndr->flags;
12971 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12972 if (r->manufacturer_name) {
12973 uint32_t _relative_save_offset;
12974 _relative_save_offset = ndr->offset;
12975 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_name));
12976 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12977 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
12978 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_name));
12979 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
12980 if (ndr->offset > ndr->relative_highest_offset) {
12981 ndr->relative_highest_offset = ndr->offset;
12983 ndr->offset = _relative_save_offset;
12985 ndr->flags = _flags_save_string;
12988 uint32_t _flags_save_string = ndr->flags;
12989 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12990 if (r->manufacturer_url) {
12991 uint32_t _relative_save_offset;
12992 _relative_save_offset = ndr->offset;
12993 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_url));
12994 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
12995 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
12996 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_url));
12997 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
12998 if (ndr->offset > ndr->relative_highest_offset) {
12999 ndr->relative_highest_offset = ndr->offset;
13001 ndr->offset = _relative_save_offset;
13003 ndr->flags = _flags_save_string;
13006 uint32_t _flags_save_string = ndr->flags;
13007 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13008 if (r->hardware_id) {
13009 uint32_t _relative_save_offset;
13010 _relative_save_offset = ndr->offset;
13011 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->hardware_id));
13012 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
13013 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
13014 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->hardware_id));
13015 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
13016 if (ndr->offset > ndr->relative_highest_offset) {
13017 ndr->relative_highest_offset = ndr->offset;
13019 ndr->offset = _relative_save_offset;
13021 ndr->flags = _flags_save_string;
13024 uint32_t _flags_save_string = ndr->flags;
13025 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13027 uint32_t _relative_save_offset;
13028 _relative_save_offset = ndr->offset;
13029 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->provider));
13030 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
13031 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
13032 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->provider));
13033 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
13034 if (ndr->offset > ndr->relative_highest_offset) {
13035 ndr->relative_highest_offset = ndr->offset;
13037 ndr->offset = _relative_save_offset;
13039 ndr->flags = _flags_save_string;
13042 return NDR_ERR_SUCCESS;
13045 _PUBLIC_ void ndr_print_spoolss_DriverInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo6 *r)
13047 ndr_print_struct(ndr, name, "spoolss_DriverInfo6");
13049 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
13050 ndr_print_ptr(ndr, "driver_name", r->driver_name);
13052 if (r->driver_name) {
13053 ndr_print_string(ndr, "driver_name", r->driver_name);
13056 ndr_print_ptr(ndr, "architecture", r->architecture);
13058 if (r->architecture) {
13059 ndr_print_string(ndr, "architecture", r->architecture);
13062 ndr_print_ptr(ndr, "driver_path", r->driver_path);
13064 if (r->driver_path) {
13065 ndr_print_string(ndr, "driver_path", r->driver_path);
13068 ndr_print_ptr(ndr, "data_file", r->data_file);
13070 if (r->data_file) {
13071 ndr_print_string(ndr, "data_file", r->data_file);
13074 ndr_print_ptr(ndr, "config_file", r->config_file);
13076 if (r->config_file) {
13077 ndr_print_string(ndr, "config_file", r->config_file);
13080 ndr_print_ptr(ndr, "help_file", r->help_file);
13082 if (r->help_file) {
13083 ndr_print_string(ndr, "help_file", r->help_file);
13086 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
13088 if (r->dependent_files) {
13089 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
13092 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
13094 if (r->monitor_name) {
13095 ndr_print_string(ndr, "monitor_name", r->monitor_name);
13098 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
13100 if (r->default_datatype) {
13101 ndr_print_string(ndr, "default_datatype", r->default_datatype);
13104 ndr_print_ptr(ndr, "previous_names", r->previous_names);
13106 if (r->previous_names) {
13107 ndr_print_string_array(ndr, "previous_names", r->previous_names);
13110 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
13111 ndr_print_hyper(ndr, "driver_version", r->driver_version);
13112 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
13114 if (r->manufacturer_name) {
13115 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
13118 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
13120 if (r->manufacturer_url) {
13121 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
13124 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
13126 if (r->hardware_id) {
13127 ndr_print_string(ndr, "hardware_id", r->hardware_id);
13130 ndr_print_ptr(ndr, "provider", r->provider);
13133 ndr_print_string(ndr, "provider", r->provider);
13139 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo6(const struct spoolss_DriverInfo6 *r, struct smb_iconv_convenience *ic, int flags)
13141 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo6, ic);
13144 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo7(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo7 *r)
13146 if (ndr_flags & NDR_SCALARS) {
13147 NDR_CHECK(ndr_push_align(ndr, 5));
13148 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
13149 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
13151 uint32_t _flags_save_string = ndr->flags;
13152 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13153 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
13154 ndr->flags = _flags_save_string;
13157 uint32_t _flags_save_string = ndr->flags;
13158 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13159 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->inf_name));
13160 ndr->flags = _flags_save_string;
13163 uint32_t _flags_save_string = ndr->flags;
13164 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13165 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->install_source_root));
13166 ndr->flags = _flags_save_string;
13168 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
13170 if (ndr_flags & NDR_BUFFERS) {
13172 uint32_t _flags_save_string = ndr->flags;
13173 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13174 if (r->driver_name) {
13175 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
13176 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
13178 ndr->flags = _flags_save_string;
13181 uint32_t _flags_save_string = ndr->flags;
13182 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13184 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->inf_name));
13185 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->inf_name));
13187 ndr->flags = _flags_save_string;
13190 uint32_t _flags_save_string = ndr->flags;
13191 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13192 if (r->install_source_root) {
13193 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->install_source_root));
13194 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->install_source_root));
13196 ndr->flags = _flags_save_string;
13199 return NDR_ERR_SUCCESS;
13202 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo7(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo7 *r)
13204 uint32_t _ptr_driver_name;
13205 TALLOC_CTX *_mem_save_driver_name_0;
13206 uint32_t _ptr_inf_name;
13207 TALLOC_CTX *_mem_save_inf_name_0;
13208 uint32_t _ptr_install_source_root;
13209 TALLOC_CTX *_mem_save_install_source_root_0;
13210 if (ndr_flags & NDR_SCALARS) {
13211 NDR_CHECK(ndr_pull_align(ndr, 5));
13212 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
13213 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
13215 uint32_t _flags_save_string = ndr->flags;
13216 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13217 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
13218 if (_ptr_driver_name) {
13219 NDR_PULL_ALLOC(ndr, r->driver_name);
13220 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
13222 r->driver_name = NULL;
13224 ndr->flags = _flags_save_string;
13227 uint32_t _flags_save_string = ndr->flags;
13228 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13229 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_inf_name));
13230 if (_ptr_inf_name) {
13231 NDR_PULL_ALLOC(ndr, r->inf_name);
13232 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->inf_name, _ptr_inf_name));
13234 r->inf_name = NULL;
13236 ndr->flags = _flags_save_string;
13239 uint32_t _flags_save_string = ndr->flags;
13240 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13241 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_install_source_root));
13242 if (_ptr_install_source_root) {
13243 NDR_PULL_ALLOC(ndr, r->install_source_root);
13244 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->install_source_root, _ptr_install_source_root));
13246 r->install_source_root = NULL;
13248 ndr->flags = _flags_save_string;
13250 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
13252 if (ndr_flags & NDR_BUFFERS) {
13254 uint32_t _flags_save_string = ndr->flags;
13255 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13256 if (r->driver_name) {
13257 uint32_t _relative_save_offset;
13258 _relative_save_offset = ndr->offset;
13259 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
13260 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13261 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
13262 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
13263 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
13264 if (ndr->offset > ndr->relative_highest_offset) {
13265 ndr->relative_highest_offset = ndr->offset;
13267 ndr->offset = _relative_save_offset;
13269 ndr->flags = _flags_save_string;
13272 uint32_t _flags_save_string = ndr->flags;
13273 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13275 uint32_t _relative_save_offset;
13276 _relative_save_offset = ndr->offset;
13277 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->inf_name));
13278 _mem_save_inf_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13279 NDR_PULL_SET_MEM_CTX(ndr, r->inf_name, 0);
13280 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->inf_name));
13281 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_inf_name_0, 0);
13282 if (ndr->offset > ndr->relative_highest_offset) {
13283 ndr->relative_highest_offset = ndr->offset;
13285 ndr->offset = _relative_save_offset;
13287 ndr->flags = _flags_save_string;
13290 uint32_t _flags_save_string = ndr->flags;
13291 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13292 if (r->install_source_root) {
13293 uint32_t _relative_save_offset;
13294 _relative_save_offset = ndr->offset;
13295 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->install_source_root));
13296 _mem_save_install_source_root_0 = NDR_PULL_GET_MEM_CTX(ndr);
13297 NDR_PULL_SET_MEM_CTX(ndr, r->install_source_root, 0);
13298 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->install_source_root));
13299 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_install_source_root_0, 0);
13300 if (ndr->offset > ndr->relative_highest_offset) {
13301 ndr->relative_highest_offset = ndr->offset;
13303 ndr->offset = _relative_save_offset;
13305 ndr->flags = _flags_save_string;
13308 return NDR_ERR_SUCCESS;
13311 _PUBLIC_ void ndr_print_spoolss_DriverInfo7(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo7 *r)
13313 ndr_print_struct(ndr, name, "spoolss_DriverInfo7");
13315 ndr_print_uint32(ndr, "size", r->size);
13316 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
13317 ndr_print_ptr(ndr, "driver_name", r->driver_name);
13319 if (r->driver_name) {
13320 ndr_print_string(ndr, "driver_name", r->driver_name);
13323 ndr_print_ptr(ndr, "inf_name", r->inf_name);
13326 ndr_print_string(ndr, "inf_name", r->inf_name);
13329 ndr_print_ptr(ndr, "install_source_root", r->install_source_root);
13331 if (r->install_source_root) {
13332 ndr_print_string(ndr, "install_source_root", r->install_source_root);
13338 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo7(const struct spoolss_DriverInfo7 *r, struct smb_iconv_convenience *ic, int flags)
13340 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo7, ic);
13343 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo8(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo8 *r)
13345 if (ndr_flags & NDR_SCALARS) {
13346 NDR_CHECK(ndr_push_align(ndr, 8));
13347 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
13349 uint32_t _flags_save_string = ndr->flags;
13350 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13351 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
13352 ndr->flags = _flags_save_string;
13355 uint32_t _flags_save_string = ndr->flags;
13356 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13357 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
13358 ndr->flags = _flags_save_string;
13361 uint32_t _flags_save_string = ndr->flags;
13362 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13363 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
13364 ndr->flags = _flags_save_string;
13367 uint32_t _flags_save_string = ndr->flags;
13368 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13369 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
13370 ndr->flags = _flags_save_string;
13373 uint32_t _flags_save_string = ndr->flags;
13374 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13375 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
13376 ndr->flags = _flags_save_string;
13379 uint32_t _flags_save_string = ndr->flags;
13380 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13381 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
13382 ndr->flags = _flags_save_string;
13385 uint32_t _flags_save_string_array = ndr->flags;
13386 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13387 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
13388 ndr->flags = _flags_save_string_array;
13391 uint32_t _flags_save_string = ndr->flags;
13392 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13393 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
13394 ndr->flags = _flags_save_string;
13397 uint32_t _flags_save_string = ndr->flags;
13398 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13399 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
13400 ndr->flags = _flags_save_string;
13403 uint32_t _flags_save_string_array = ndr->flags;
13404 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13405 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
13406 ndr->flags = _flags_save_string_array;
13408 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
13409 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
13411 uint32_t _flags_save_string = ndr->flags;
13412 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13413 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_name));
13414 ndr->flags = _flags_save_string;
13417 uint32_t _flags_save_string = ndr->flags;
13418 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13419 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_url));
13420 ndr->flags = _flags_save_string;
13423 uint32_t _flags_save_string = ndr->flags;
13424 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13425 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->hardware_id));
13426 ndr->flags = _flags_save_string;
13429 uint32_t _flags_save_string = ndr->flags;
13430 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13431 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->provider));
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 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor));
13438 ndr->flags = _flags_save_string;
13441 uint32_t _flags_save_string = ndr->flags;
13442 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13443 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->vendor_setup));
13444 ndr->flags = _flags_save_string;
13447 uint32_t _flags_save_string_array = ndr->flags;
13448 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13449 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->color_profiles));
13450 ndr->flags = _flags_save_string_array;
13453 uint32_t _flags_save_string = ndr->flags;
13454 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13455 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->inf_path));
13456 ndr->flags = _flags_save_string;
13458 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->printer_driver_attributes));
13460 uint32_t _flags_save_string_array = ndr->flags;
13461 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13462 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->core_driver_dependencies));
13463 ndr->flags = _flags_save_string_array;
13465 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->min_inbox_driver_ver_date));
13466 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->min_inbox_driver_ver_version));
13467 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
13469 if (ndr_flags & NDR_BUFFERS) {
13471 uint32_t _flags_save_string = ndr->flags;
13472 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13473 if (r->driver_name) {
13474 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
13475 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
13477 ndr->flags = _flags_save_string;
13480 uint32_t _flags_save_string = ndr->flags;
13481 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13482 if (r->architecture) {
13483 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
13484 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
13486 ndr->flags = _flags_save_string;
13489 uint32_t _flags_save_string = ndr->flags;
13490 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13491 if (r->driver_path) {
13492 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
13493 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
13495 ndr->flags = _flags_save_string;
13498 uint32_t _flags_save_string = ndr->flags;
13499 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13500 if (r->data_file) {
13501 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
13502 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
13504 ndr->flags = _flags_save_string;
13507 uint32_t _flags_save_string = ndr->flags;
13508 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13509 if (r->config_file) {
13510 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
13511 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
13513 ndr->flags = _flags_save_string;
13516 uint32_t _flags_save_string = ndr->flags;
13517 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13518 if (r->help_file) {
13519 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
13520 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
13522 ndr->flags = _flags_save_string;
13525 uint32_t _flags_save_string_array = ndr->flags;
13526 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13527 if (r->dependent_files) {
13528 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
13529 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
13531 ndr->flags = _flags_save_string_array;
13534 uint32_t _flags_save_string = ndr->flags;
13535 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13536 if (r->monitor_name) {
13537 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
13538 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
13540 ndr->flags = _flags_save_string;
13543 uint32_t _flags_save_string = ndr->flags;
13544 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13545 if (r->default_datatype) {
13546 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
13547 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
13549 ndr->flags = _flags_save_string;
13552 uint32_t _flags_save_string_array = ndr->flags;
13553 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13554 if (r->previous_names) {
13555 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->previous_names));
13556 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
13558 ndr->flags = _flags_save_string_array;
13561 uint32_t _flags_save_string = ndr->flags;
13562 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13563 if (r->manufacturer_name) {
13564 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_name));
13565 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_name));
13567 ndr->flags = _flags_save_string;
13570 uint32_t _flags_save_string = ndr->flags;
13571 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13572 if (r->manufacturer_url) {
13573 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_url));
13574 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_url));
13576 ndr->flags = _flags_save_string;
13579 uint32_t _flags_save_string = ndr->flags;
13580 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13581 if (r->hardware_id) {
13582 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->hardware_id));
13583 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->hardware_id));
13585 ndr->flags = _flags_save_string;
13588 uint32_t _flags_save_string = ndr->flags;
13589 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13591 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->provider));
13592 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->provider));
13594 ndr->flags = _flags_save_string;
13597 uint32_t _flags_save_string = ndr->flags;
13598 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13599 if (r->print_processor) {
13600 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->print_processor));
13601 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor));
13603 ndr->flags = _flags_save_string;
13606 uint32_t _flags_save_string = ndr->flags;
13607 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13608 if (r->vendor_setup) {
13609 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->vendor_setup));
13610 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->vendor_setup));
13612 ndr->flags = _flags_save_string;
13615 uint32_t _flags_save_string_array = ndr->flags;
13616 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13617 if (r->color_profiles) {
13618 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->color_profiles));
13619 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->color_profiles));
13621 ndr->flags = _flags_save_string_array;
13624 uint32_t _flags_save_string = ndr->flags;
13625 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13627 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->inf_path));
13628 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->inf_path));
13630 ndr->flags = _flags_save_string;
13633 uint32_t _flags_save_string_array = ndr->flags;
13634 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13635 if (r->core_driver_dependencies) {
13636 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->core_driver_dependencies));
13637 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->core_driver_dependencies));
13639 ndr->flags = _flags_save_string_array;
13642 return NDR_ERR_SUCCESS;
13645 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo8(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo8 *r)
13647 uint32_t _ptr_driver_name;
13648 TALLOC_CTX *_mem_save_driver_name_0;
13649 uint32_t _ptr_architecture;
13650 TALLOC_CTX *_mem_save_architecture_0;
13651 uint32_t _ptr_driver_path;
13652 TALLOC_CTX *_mem_save_driver_path_0;
13653 uint32_t _ptr_data_file;
13654 TALLOC_CTX *_mem_save_data_file_0;
13655 uint32_t _ptr_config_file;
13656 TALLOC_CTX *_mem_save_config_file_0;
13657 uint32_t _ptr_help_file;
13658 TALLOC_CTX *_mem_save_help_file_0;
13659 uint32_t _ptr_dependent_files;
13660 TALLOC_CTX *_mem_save_dependent_files_0;
13661 uint32_t _ptr_monitor_name;
13662 TALLOC_CTX *_mem_save_monitor_name_0;
13663 uint32_t _ptr_default_datatype;
13664 TALLOC_CTX *_mem_save_default_datatype_0;
13665 uint32_t _ptr_previous_names;
13666 TALLOC_CTX *_mem_save_previous_names_0;
13667 uint32_t _ptr_manufacturer_name;
13668 TALLOC_CTX *_mem_save_manufacturer_name_0;
13669 uint32_t _ptr_manufacturer_url;
13670 TALLOC_CTX *_mem_save_manufacturer_url_0;
13671 uint32_t _ptr_hardware_id;
13672 TALLOC_CTX *_mem_save_hardware_id_0;
13673 uint32_t _ptr_provider;
13674 TALLOC_CTX *_mem_save_provider_0;
13675 uint32_t _ptr_print_processor;
13676 TALLOC_CTX *_mem_save_print_processor_0;
13677 uint32_t _ptr_vendor_setup;
13678 TALLOC_CTX *_mem_save_vendor_setup_0;
13679 uint32_t _ptr_color_profiles;
13680 TALLOC_CTX *_mem_save_color_profiles_0;
13681 uint32_t _ptr_inf_path;
13682 TALLOC_CTX *_mem_save_inf_path_0;
13683 uint32_t _ptr_core_driver_dependencies;
13684 TALLOC_CTX *_mem_save_core_driver_dependencies_0;
13685 if (ndr_flags & NDR_SCALARS) {
13686 NDR_CHECK(ndr_pull_align(ndr, 8));
13687 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
13689 uint32_t _flags_save_string = ndr->flags;
13690 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13691 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
13692 if (_ptr_driver_name) {
13693 NDR_PULL_ALLOC(ndr, r->driver_name);
13694 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
13696 r->driver_name = NULL;
13698 ndr->flags = _flags_save_string;
13701 uint32_t _flags_save_string = ndr->flags;
13702 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13703 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
13704 if (_ptr_architecture) {
13705 NDR_PULL_ALLOC(ndr, r->architecture);
13706 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
13708 r->architecture = NULL;
13710 ndr->flags = _flags_save_string;
13713 uint32_t _flags_save_string = ndr->flags;
13714 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13715 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
13716 if (_ptr_driver_path) {
13717 NDR_PULL_ALLOC(ndr, r->driver_path);
13718 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
13720 r->driver_path = NULL;
13722 ndr->flags = _flags_save_string;
13725 uint32_t _flags_save_string = ndr->flags;
13726 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13727 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
13728 if (_ptr_data_file) {
13729 NDR_PULL_ALLOC(ndr, r->data_file);
13730 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
13732 r->data_file = NULL;
13734 ndr->flags = _flags_save_string;
13737 uint32_t _flags_save_string = ndr->flags;
13738 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13739 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
13740 if (_ptr_config_file) {
13741 NDR_PULL_ALLOC(ndr, r->config_file);
13742 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
13744 r->config_file = NULL;
13746 ndr->flags = _flags_save_string;
13749 uint32_t _flags_save_string = ndr->flags;
13750 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13751 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
13752 if (_ptr_help_file) {
13753 NDR_PULL_ALLOC(ndr, r->help_file);
13754 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
13756 r->help_file = NULL;
13758 ndr->flags = _flags_save_string;
13761 uint32_t _flags_save_string_array = ndr->flags;
13762 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13763 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
13764 if (_ptr_dependent_files) {
13765 NDR_PULL_ALLOC(ndr, r->dependent_files);
13766 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
13768 r->dependent_files = NULL;
13770 ndr->flags = _flags_save_string_array;
13773 uint32_t _flags_save_string = ndr->flags;
13774 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13775 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
13776 if (_ptr_monitor_name) {
13777 NDR_PULL_ALLOC(ndr, r->monitor_name);
13778 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
13780 r->monitor_name = NULL;
13782 ndr->flags = _flags_save_string;
13785 uint32_t _flags_save_string = ndr->flags;
13786 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13787 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
13788 if (_ptr_default_datatype) {
13789 NDR_PULL_ALLOC(ndr, r->default_datatype);
13790 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
13792 r->default_datatype = NULL;
13794 ndr->flags = _flags_save_string;
13797 uint32_t _flags_save_string_array = ndr->flags;
13798 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13799 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
13800 if (_ptr_previous_names) {
13801 NDR_PULL_ALLOC(ndr, r->previous_names);
13802 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
13804 r->previous_names = NULL;
13806 ndr->flags = _flags_save_string_array;
13808 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
13809 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
13811 uint32_t _flags_save_string = ndr->flags;
13812 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13813 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
13814 if (_ptr_manufacturer_name) {
13815 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
13816 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_name, _ptr_manufacturer_name));
13818 r->manufacturer_name = NULL;
13820 ndr->flags = _flags_save_string;
13823 uint32_t _flags_save_string = ndr->flags;
13824 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13825 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
13826 if (_ptr_manufacturer_url) {
13827 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
13828 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_url, _ptr_manufacturer_url));
13830 r->manufacturer_url = NULL;
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 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
13838 if (_ptr_hardware_id) {
13839 NDR_PULL_ALLOC(ndr, r->hardware_id);
13840 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->hardware_id, _ptr_hardware_id));
13842 r->hardware_id = NULL;
13844 ndr->flags = _flags_save_string;
13847 uint32_t _flags_save_string = ndr->flags;
13848 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13849 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
13850 if (_ptr_provider) {
13851 NDR_PULL_ALLOC(ndr, r->provider);
13852 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->provider, _ptr_provider));
13854 r->provider = NULL;
13856 ndr->flags = _flags_save_string;
13859 uint32_t _flags_save_string = ndr->flags;
13860 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13861 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
13862 if (_ptr_print_processor) {
13863 NDR_PULL_ALLOC(ndr, r->print_processor);
13864 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor, _ptr_print_processor));
13866 r->print_processor = NULL;
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 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_vendor_setup));
13874 if (_ptr_vendor_setup) {
13875 NDR_PULL_ALLOC(ndr, r->vendor_setup);
13876 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->vendor_setup, _ptr_vendor_setup));
13878 r->vendor_setup = NULL;
13880 ndr->flags = _flags_save_string;
13883 uint32_t _flags_save_string_array = ndr->flags;
13884 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13885 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_color_profiles));
13886 if (_ptr_color_profiles) {
13887 NDR_PULL_ALLOC(ndr, r->color_profiles);
13888 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->color_profiles, _ptr_color_profiles));
13890 r->color_profiles = NULL;
13892 ndr->flags = _flags_save_string_array;
13895 uint32_t _flags_save_string = ndr->flags;
13896 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13897 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_inf_path));
13898 if (_ptr_inf_path) {
13899 NDR_PULL_ALLOC(ndr, r->inf_path);
13900 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->inf_path, _ptr_inf_path));
13902 r->inf_path = NULL;
13904 ndr->flags = _flags_save_string;
13906 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->printer_driver_attributes));
13908 uint32_t _flags_save_string_array = ndr->flags;
13909 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13910 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_core_driver_dependencies));
13911 if (_ptr_core_driver_dependencies) {
13912 NDR_PULL_ALLOC(ndr, r->core_driver_dependencies);
13913 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->core_driver_dependencies, _ptr_core_driver_dependencies));
13915 r->core_driver_dependencies = NULL;
13917 ndr->flags = _flags_save_string_array;
13919 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_date));
13920 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_version));
13921 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
13923 if (ndr_flags & NDR_BUFFERS) {
13925 uint32_t _flags_save_string = ndr->flags;
13926 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13927 if (r->driver_name) {
13928 uint32_t _relative_save_offset;
13929 _relative_save_offset = ndr->offset;
13930 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
13931 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13932 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
13933 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
13934 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_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;
13943 uint32_t _flags_save_string = ndr->flags;
13944 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13945 if (r->architecture) {
13946 uint32_t _relative_save_offset;
13947 _relative_save_offset = ndr->offset;
13948 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
13949 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
13950 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
13951 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
13952 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_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;
13961 uint32_t _flags_save_string = ndr->flags;
13962 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13963 if (r->driver_path) {
13964 uint32_t _relative_save_offset;
13965 _relative_save_offset = ndr->offset;
13966 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
13967 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
13968 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
13969 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
13970 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_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->data_file) {
13982 uint32_t _relative_save_offset;
13983 _relative_save_offset = ndr->offset;
13984 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
13985 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
13986 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
13987 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
13988 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_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->config_file) {
14000 uint32_t _relative_save_offset;
14001 _relative_save_offset = ndr->offset;
14002 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
14003 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
14004 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
14005 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
14006 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_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);
14017 if (r->help_file) {
14018 uint32_t _relative_save_offset;
14019 _relative_save_offset = ndr->offset;
14020 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
14021 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
14022 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
14023 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
14024 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_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_array = ndr->flags;
14034 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14035 if (r->dependent_files) {
14036 uint32_t _relative_save_offset;
14037 _relative_save_offset = ndr->offset;
14038 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
14039 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
14040 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
14041 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
14042 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_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_array;
14051 uint32_t _flags_save_string = ndr->flags;
14052 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14053 if (r->monitor_name) {
14054 uint32_t _relative_save_offset;
14055 _relative_save_offset = ndr->offset;
14056 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
14057 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14058 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
14059 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
14060 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_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 = ndr->flags;
14070 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14071 if (r->default_datatype) {
14072 uint32_t _relative_save_offset;
14073 _relative_save_offset = ndr->offset;
14074 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
14075 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
14076 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
14077 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
14078 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_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;
14087 uint32_t _flags_save_string_array = ndr->flags;
14088 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14089 if (r->previous_names) {
14090 uint32_t _relative_save_offset;
14091 _relative_save_offset = ndr->offset;
14092 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
14093 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
14094 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
14095 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
14096 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_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_array;
14105 uint32_t _flags_save_string = ndr->flags;
14106 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14107 if (r->manufacturer_name) {
14108 uint32_t _relative_save_offset;
14109 _relative_save_offset = ndr->offset;
14110 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_name));
14111 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14112 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
14113 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_name));
14114 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_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;
14123 uint32_t _flags_save_string = ndr->flags;
14124 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14125 if (r->manufacturer_url) {
14126 uint32_t _relative_save_offset;
14127 _relative_save_offset = ndr->offset;
14128 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_url));
14129 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
14130 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
14131 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_url));
14132 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
14133 if (ndr->offset > ndr->relative_highest_offset) {
14134 ndr->relative_highest_offset = ndr->offset;
14136 ndr->offset = _relative_save_offset;
14138 ndr->flags = _flags_save_string;
14141 uint32_t _flags_save_string = ndr->flags;
14142 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14143 if (r->hardware_id) {
14144 uint32_t _relative_save_offset;
14145 _relative_save_offset = ndr->offset;
14146 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->hardware_id));
14147 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
14148 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
14149 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->hardware_id));
14150 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
14151 if (ndr->offset > ndr->relative_highest_offset) {
14152 ndr->relative_highest_offset = ndr->offset;
14154 ndr->offset = _relative_save_offset;
14156 ndr->flags = _flags_save_string;
14159 uint32_t _flags_save_string = ndr->flags;
14160 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14162 uint32_t _relative_save_offset;
14163 _relative_save_offset = ndr->offset;
14164 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->provider));
14165 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
14166 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
14167 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->provider));
14168 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
14169 if (ndr->offset > ndr->relative_highest_offset) {
14170 ndr->relative_highest_offset = ndr->offset;
14172 ndr->offset = _relative_save_offset;
14174 ndr->flags = _flags_save_string;
14177 uint32_t _flags_save_string = ndr->flags;
14178 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14179 if (r->print_processor) {
14180 uint32_t _relative_save_offset;
14181 _relative_save_offset = ndr->offset;
14182 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor));
14183 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
14184 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
14185 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor));
14186 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
14187 if (ndr->offset > ndr->relative_highest_offset) {
14188 ndr->relative_highest_offset = ndr->offset;
14190 ndr->offset = _relative_save_offset;
14192 ndr->flags = _flags_save_string;
14195 uint32_t _flags_save_string = ndr->flags;
14196 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14197 if (r->vendor_setup) {
14198 uint32_t _relative_save_offset;
14199 _relative_save_offset = ndr->offset;
14200 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->vendor_setup));
14201 _mem_save_vendor_setup_0 = NDR_PULL_GET_MEM_CTX(ndr);
14202 NDR_PULL_SET_MEM_CTX(ndr, r->vendor_setup, 0);
14203 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->vendor_setup));
14204 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vendor_setup_0, 0);
14205 if (ndr->offset > ndr->relative_highest_offset) {
14206 ndr->relative_highest_offset = ndr->offset;
14208 ndr->offset = _relative_save_offset;
14210 ndr->flags = _flags_save_string;
14213 uint32_t _flags_save_string_array = ndr->flags;
14214 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14215 if (r->color_profiles) {
14216 uint32_t _relative_save_offset;
14217 _relative_save_offset = ndr->offset;
14218 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->color_profiles));
14219 _mem_save_color_profiles_0 = NDR_PULL_GET_MEM_CTX(ndr);
14220 NDR_PULL_SET_MEM_CTX(ndr, r->color_profiles, 0);
14221 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->color_profiles));
14222 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_color_profiles_0, 0);
14223 if (ndr->offset > ndr->relative_highest_offset) {
14224 ndr->relative_highest_offset = ndr->offset;
14226 ndr->offset = _relative_save_offset;
14228 ndr->flags = _flags_save_string_array;
14231 uint32_t _flags_save_string = ndr->flags;
14232 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14234 uint32_t _relative_save_offset;
14235 _relative_save_offset = ndr->offset;
14236 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->inf_path));
14237 _mem_save_inf_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
14238 NDR_PULL_SET_MEM_CTX(ndr, r->inf_path, 0);
14239 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->inf_path));
14240 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_inf_path_0, 0);
14241 if (ndr->offset > ndr->relative_highest_offset) {
14242 ndr->relative_highest_offset = ndr->offset;
14244 ndr->offset = _relative_save_offset;
14246 ndr->flags = _flags_save_string;
14249 uint32_t _flags_save_string_array = ndr->flags;
14250 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14251 if (r->core_driver_dependencies) {
14252 uint32_t _relative_save_offset;
14253 _relative_save_offset = ndr->offset;
14254 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->core_driver_dependencies));
14255 _mem_save_core_driver_dependencies_0 = NDR_PULL_GET_MEM_CTX(ndr);
14256 NDR_PULL_SET_MEM_CTX(ndr, r->core_driver_dependencies, 0);
14257 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->core_driver_dependencies));
14258 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_driver_dependencies_0, 0);
14259 if (ndr->offset > ndr->relative_highest_offset) {
14260 ndr->relative_highest_offset = ndr->offset;
14262 ndr->offset = _relative_save_offset;
14264 ndr->flags = _flags_save_string_array;
14267 return NDR_ERR_SUCCESS;
14270 _PUBLIC_ void ndr_print_spoolss_DriverInfo8(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo8 *r)
14272 ndr_print_struct(ndr, name, "spoolss_DriverInfo8");
14274 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
14275 ndr_print_ptr(ndr, "driver_name", r->driver_name);
14277 if (r->driver_name) {
14278 ndr_print_string(ndr, "driver_name", r->driver_name);
14281 ndr_print_ptr(ndr, "architecture", r->architecture);
14283 if (r->architecture) {
14284 ndr_print_string(ndr, "architecture", r->architecture);
14287 ndr_print_ptr(ndr, "driver_path", r->driver_path);
14289 if (r->driver_path) {
14290 ndr_print_string(ndr, "driver_path", r->driver_path);
14293 ndr_print_ptr(ndr, "data_file", r->data_file);
14295 if (r->data_file) {
14296 ndr_print_string(ndr, "data_file", r->data_file);
14299 ndr_print_ptr(ndr, "config_file", r->config_file);
14301 if (r->config_file) {
14302 ndr_print_string(ndr, "config_file", r->config_file);
14305 ndr_print_ptr(ndr, "help_file", r->help_file);
14307 if (r->help_file) {
14308 ndr_print_string(ndr, "help_file", r->help_file);
14311 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
14313 if (r->dependent_files) {
14314 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
14317 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
14319 if (r->monitor_name) {
14320 ndr_print_string(ndr, "monitor_name", r->monitor_name);
14323 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
14325 if (r->default_datatype) {
14326 ndr_print_string(ndr, "default_datatype", r->default_datatype);
14329 ndr_print_ptr(ndr, "previous_names", r->previous_names);
14331 if (r->previous_names) {
14332 ndr_print_string_array(ndr, "previous_names", r->previous_names);
14335 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
14336 ndr_print_hyper(ndr, "driver_version", r->driver_version);
14337 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
14339 if (r->manufacturer_name) {
14340 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
14343 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
14345 if (r->manufacturer_url) {
14346 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
14349 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
14351 if (r->hardware_id) {
14352 ndr_print_string(ndr, "hardware_id", r->hardware_id);
14355 ndr_print_ptr(ndr, "provider", r->provider);
14358 ndr_print_string(ndr, "provider", r->provider);
14361 ndr_print_ptr(ndr, "print_processor", r->print_processor);
14363 if (r->print_processor) {
14364 ndr_print_string(ndr, "print_processor", r->print_processor);
14367 ndr_print_ptr(ndr, "vendor_setup", r->vendor_setup);
14369 if (r->vendor_setup) {
14370 ndr_print_string(ndr, "vendor_setup", r->vendor_setup);
14373 ndr_print_ptr(ndr, "color_profiles", r->color_profiles);
14375 if (r->color_profiles) {
14376 ndr_print_string_array(ndr, "color_profiles", r->color_profiles);
14379 ndr_print_ptr(ndr, "inf_path", r->inf_path);
14382 ndr_print_string(ndr, "inf_path", r->inf_path);
14385 ndr_print_uint32(ndr, "printer_driver_attributes", r->printer_driver_attributes);
14386 ndr_print_ptr(ndr, "core_driver_dependencies", r->core_driver_dependencies);
14388 if (r->core_driver_dependencies) {
14389 ndr_print_string_array(ndr, "core_driver_dependencies", r->core_driver_dependencies);
14392 ndr_print_NTTIME(ndr, "min_inbox_driver_ver_date", r->min_inbox_driver_ver_date);
14393 ndr_print_hyper(ndr, "min_inbox_driver_ver_version", r->min_inbox_driver_ver_version);
14397 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo8(const struct spoolss_DriverInfo8 *r, struct smb_iconv_convenience *ic, int flags)
14399 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo8, ic);
14402 static enum ndr_err_code ndr_push_spoolss_DriverFileType(struct ndr_push *ndr, int ndr_flags, enum spoolss_DriverFileType r)
14404 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
14405 return NDR_ERR_SUCCESS;
14408 static enum ndr_err_code ndr_pull_spoolss_DriverFileType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DriverFileType *r)
14411 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
14413 return NDR_ERR_SUCCESS;
14416 _PUBLIC_ void ndr_print_spoolss_DriverFileType(struct ndr_print *ndr, const char *name, enum spoolss_DriverFileType r)
14418 const char *val = NULL;
14421 case SPOOLSS_DRIVER_FILE_TYPE_RENDERING: val = "SPOOLSS_DRIVER_FILE_TYPE_RENDERING"; break;
14422 case SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION: val = "SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION"; break;
14423 case SPOOLSS_DRIVER_FILE_TYPE_DATA: val = "SPOOLSS_DRIVER_FILE_TYPE_DATA"; break;
14424 case SPOOLSS_DRIVER_FILE_TYPE_HELP: val = "SPOOLSS_DRIVER_FILE_TYPE_HELP"; break;
14425 case SPOOLSS_DRIVER_FILE_TYPE_OTHER: val = "SPOOLSS_DRIVER_FILE_TYPE_OTHER"; break;
14427 ndr_print_enum(ndr, name, "ENUM", val, r);
14430 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverFileInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverFileInfo *r)
14432 if (ndr_flags & NDR_SCALARS) {
14433 NDR_CHECK(ndr_push_align(ndr, 5));
14435 uint32_t _flags_save_string = ndr->flags;
14436 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14437 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->file_name));
14438 ndr->flags = _flags_save_string;
14440 NDR_CHECK(ndr_push_spoolss_DriverFileType(ndr, NDR_SCALARS, r->file_type));
14441 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->file_version));
14442 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
14444 if (ndr_flags & NDR_BUFFERS) {
14446 uint32_t _flags_save_string = ndr->flags;
14447 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14448 if (r->file_name) {
14449 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->file_name));
14450 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->file_name));
14452 ndr->flags = _flags_save_string;
14455 return NDR_ERR_SUCCESS;
14458 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverFileInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverFileInfo *r)
14460 uint32_t _ptr_file_name;
14461 TALLOC_CTX *_mem_save_file_name_0;
14462 if (ndr_flags & NDR_SCALARS) {
14463 NDR_CHECK(ndr_pull_align(ndr, 5));
14465 uint32_t _flags_save_string = ndr->flags;
14466 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14467 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_file_name));
14468 if (_ptr_file_name) {
14469 NDR_PULL_ALLOC(ndr, r->file_name);
14470 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->file_name, _ptr_file_name));
14472 r->file_name = NULL;
14474 ndr->flags = _flags_save_string;
14476 NDR_CHECK(ndr_pull_spoolss_DriverFileType(ndr, NDR_SCALARS, &r->file_type));
14477 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->file_version));
14478 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
14480 if (ndr_flags & NDR_BUFFERS) {
14482 uint32_t _flags_save_string = ndr->flags;
14483 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14484 if (r->file_name) {
14485 uint32_t _relative_save_offset;
14486 _relative_save_offset = ndr->offset;
14487 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->file_name));
14488 _mem_save_file_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14489 NDR_PULL_SET_MEM_CTX(ndr, r->file_name, 0);
14490 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->file_name));
14491 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_file_name_0, 0);
14492 if (ndr->offset > ndr->relative_highest_offset) {
14493 ndr->relative_highest_offset = ndr->offset;
14495 ndr->offset = _relative_save_offset;
14497 ndr->flags = _flags_save_string;
14500 return NDR_ERR_SUCCESS;
14503 _PUBLIC_ void ndr_print_spoolss_DriverFileInfo(struct ndr_print *ndr, const char *name, const struct spoolss_DriverFileInfo *r)
14505 ndr_print_struct(ndr, name, "spoolss_DriverFileInfo");
14507 ndr_print_ptr(ndr, "file_name", r->file_name);
14509 if (r->file_name) {
14510 ndr_print_string(ndr, "file_name", r->file_name);
14513 ndr_print_spoolss_DriverFileType(ndr, "file_type", r->file_type);
14514 ndr_print_uint32(ndr, "file_version", r->file_version);
14518 _PUBLIC_ void ndr_print_spoolss_DriverInfo101(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo101 *r)
14520 uint32_t cntr_file_info_1;
14521 ndr_print_struct(ndr, name, "spoolss_DriverInfo101");
14523 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
14524 ndr_print_ptr(ndr, "driver_name", r->driver_name);
14526 if (r->driver_name) {
14527 ndr_print_string(ndr, "driver_name", r->driver_name);
14530 ndr_print_ptr(ndr, "architecture", r->architecture);
14532 if (r->architecture) {
14533 ndr_print_string(ndr, "architecture", r->architecture);
14536 ndr_print_ptr(ndr, "file_info", r->file_info);
14538 if (r->file_info) {
14539 ndr->print(ndr, "%s: ARRAY(%d)", "file_info", (int)r->file_count);
14541 for (cntr_file_info_1=0;cntr_file_info_1<r->file_count;cntr_file_info_1++) {
14543 if (asprintf(&idx_1, "[%d]", cntr_file_info_1) != -1) {
14544 ndr_print_spoolss_DriverFileInfo(ndr, "file_info", &r->file_info[cntr_file_info_1]);
14551 ndr_print_uint32(ndr, "file_count", r->file_count);
14552 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
14554 if (r->monitor_name) {
14555 ndr_print_string(ndr, "monitor_name", r->monitor_name);
14558 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
14560 if (r->default_datatype) {
14561 ndr_print_string(ndr, "default_datatype", r->default_datatype);
14564 ndr_print_ptr(ndr, "previous_names", r->previous_names);
14566 if (r->previous_names) {
14567 ndr_print_string_array(ndr, "previous_names", r->previous_names);
14570 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
14571 ndr_print_hyper(ndr, "driver_version", r->driver_version);
14572 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
14574 if (r->manufacturer_name) {
14575 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
14578 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
14580 if (r->manufacturer_url) {
14581 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
14584 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
14586 if (r->hardware_id) {
14587 ndr_print_string(ndr, "hardware_id", r->hardware_id);
14590 ndr_print_ptr(ndr, "provider", r->provider);
14593 ndr_print_string(ndr, "provider", r->provider);
14599 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo101(const struct spoolss_DriverInfo101 *r, struct smb_iconv_convenience *ic, int flags)
14601 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo101, ic);
14604 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DriverInfo *r)
14606 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
14607 if (ndr_flags & NDR_SCALARS) {
14608 int level = ndr_push_get_switch_value(ndr, r);
14609 NDR_CHECK(ndr_push_union_align(ndr, 8));
14612 NDR_CHECK(ndr_push_align(ndr, 5));
14613 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14614 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr, NDR_SCALARS, &r->info1));
14618 NDR_CHECK(ndr_push_align(ndr, 5));
14619 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14620 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr, NDR_SCALARS, &r->info2));
14624 NDR_CHECK(ndr_push_align(ndr, 5));
14625 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14626 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr, NDR_SCALARS, &r->info3));
14630 NDR_CHECK(ndr_push_align(ndr, 5));
14631 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14632 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr, NDR_SCALARS, &r->info4));
14636 NDR_CHECK(ndr_push_align(ndr, 5));
14637 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14638 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr, NDR_SCALARS, &r->info5));
14642 NDR_CHECK(ndr_push_align(ndr, 8));
14643 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14644 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr, NDR_SCALARS, &r->info6));
14648 NDR_CHECK(ndr_push_align(ndr, 5));
14649 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14650 NDR_CHECK(ndr_push_spoolss_DriverInfo7(ndr, NDR_SCALARS, &r->info7));
14654 NDR_CHECK(ndr_push_align(ndr, 8));
14655 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14656 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr, NDR_SCALARS, &r->info8));
14660 NDR_CHECK(ndr_push_align(ndr, 8));
14661 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14662 NDR_CHECK(ndr_push_spoolss_DriverInfo101(ndr, NDR_SCALARS, &r->info101));
14670 if (ndr_flags & NDR_BUFFERS) {
14671 int level = ndr_push_get_switch_value(ndr, r);
14672 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
14675 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr, NDR_BUFFERS, &r->info1));
14679 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr, NDR_BUFFERS, &r->info2));
14683 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr, NDR_BUFFERS, &r->info3));
14687 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr, NDR_BUFFERS, &r->info4));
14691 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr, NDR_BUFFERS, &r->info5));
14695 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr, NDR_BUFFERS, &r->info6));
14699 NDR_CHECK(ndr_push_spoolss_DriverInfo7(ndr, NDR_BUFFERS, &r->info7));
14703 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr, NDR_BUFFERS, &r->info8));
14707 NDR_CHECK(ndr_push_spoolss_DriverInfo101(ndr, NDR_BUFFERS, &r->info101));
14715 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
14716 return NDR_ERR_SUCCESS;
14719 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DriverInfo *r)
14721 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
14723 level = ndr_pull_get_switch_value(ndr, r);
14724 if (ndr_flags & NDR_SCALARS) {
14725 NDR_CHECK(ndr_pull_union_align(ndr, 8));
14728 NDR_CHECK(ndr_pull_align(ndr, 5));
14729 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14730 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr, NDR_SCALARS, &r->info1));
14734 NDR_CHECK(ndr_pull_align(ndr, 5));
14735 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14736 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr, NDR_SCALARS, &r->info2));
14740 NDR_CHECK(ndr_pull_align(ndr, 5));
14741 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14742 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr, NDR_SCALARS, &r->info3));
14746 NDR_CHECK(ndr_pull_align(ndr, 5));
14747 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14748 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr, NDR_SCALARS, &r->info4));
14752 NDR_CHECK(ndr_pull_align(ndr, 5));
14753 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14754 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr, NDR_SCALARS, &r->info5));
14758 NDR_CHECK(ndr_pull_align(ndr, 8));
14759 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14760 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr, NDR_SCALARS, &r->info6));
14764 NDR_CHECK(ndr_pull_align(ndr, 5));
14765 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14766 NDR_CHECK(ndr_pull_spoolss_DriverInfo7(ndr, NDR_SCALARS, &r->info7));
14770 NDR_CHECK(ndr_pull_align(ndr, 8));
14771 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14772 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr, NDR_SCALARS, &r->info8));
14776 NDR_CHECK(ndr_pull_align(ndr, 8));
14777 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14778 NDR_CHECK(ndr_pull_spoolss_DriverInfo101(ndr, NDR_SCALARS, &r->info101));
14786 if (ndr_flags & NDR_BUFFERS) {
14787 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
14790 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr, NDR_BUFFERS, &r->info1));
14794 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr, NDR_BUFFERS, &r->info2));
14798 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr, NDR_BUFFERS, &r->info3));
14802 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr, NDR_BUFFERS, &r->info4));
14806 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr, NDR_BUFFERS, &r->info5));
14810 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr, NDR_BUFFERS, &r->info6));
14814 NDR_CHECK(ndr_pull_spoolss_DriverInfo7(ndr, NDR_BUFFERS, &r->info7));
14818 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr, NDR_BUFFERS, &r->info8));
14822 NDR_CHECK(ndr_pull_spoolss_DriverInfo101(ndr, NDR_BUFFERS, &r->info101));
14830 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
14831 return NDR_ERR_SUCCESS;
14834 _PUBLIC_ void ndr_print_spoolss_DriverInfo(struct ndr_print *ndr, const char *name, const union spoolss_DriverInfo *r)
14837 level = ndr_print_get_switch_value(ndr, r);
14838 ndr_print_union(ndr, name, level, "spoolss_DriverInfo");
14841 ndr_print_spoolss_DriverInfo1(ndr, "info1", &r->info1);
14845 ndr_print_spoolss_DriverInfo2(ndr, "info2", &r->info2);
14849 ndr_print_spoolss_DriverInfo3(ndr, "info3", &r->info3);
14853 ndr_print_spoolss_DriverInfo4(ndr, "info4", &r->info4);
14857 ndr_print_spoolss_DriverInfo5(ndr, "info5", &r->info5);
14861 ndr_print_spoolss_DriverInfo6(ndr, "info6", &r->info6);
14865 ndr_print_spoolss_DriverInfo7(ndr, "info7", &r->info7);
14869 ndr_print_spoolss_DriverInfo8(ndr, "info8", &r->info8);
14873 ndr_print_spoolss_DriverInfo101(ndr, "info101", &r->info101);
14882 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo(const union spoolss_DriverInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
14884 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo, ic);
14887 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverDirectoryInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverDirectoryInfo1 *r)
14889 if (ndr_flags & NDR_SCALARS) {
14890 NDR_CHECK(ndr_push_align(ndr, 4));
14892 uint32_t _flags_save_string = ndr->flags;
14893 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14894 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->directory_name));
14895 ndr->flags = _flags_save_string;
14897 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
14899 if (ndr_flags & NDR_BUFFERS) {
14901 return NDR_ERR_SUCCESS;
14904 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverDirectoryInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverDirectoryInfo1 *r)
14906 if (ndr_flags & NDR_SCALARS) {
14907 NDR_CHECK(ndr_pull_align(ndr, 4));
14909 uint32_t _flags_save_string = ndr->flags;
14910 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14911 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->directory_name));
14912 ndr->flags = _flags_save_string;
14914 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
14916 if (ndr_flags & NDR_BUFFERS) {
14918 return NDR_ERR_SUCCESS;
14921 _PUBLIC_ void ndr_print_spoolss_DriverDirectoryInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DriverDirectoryInfo1 *r)
14923 ndr_print_struct(ndr, name, "spoolss_DriverDirectoryInfo1");
14925 ndr_print_string(ndr, "directory_name", r->directory_name);
14929 _PUBLIC_ size_t ndr_size_spoolss_DriverDirectoryInfo1(const struct spoolss_DriverDirectoryInfo1 *r, struct smb_iconv_convenience *ic, int flags)
14931 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverDirectoryInfo1, ic);
14934 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverDirectoryInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DriverDirectoryInfo *r)
14936 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
14937 if (ndr_flags & NDR_SCALARS) {
14938 int level = ndr_push_get_switch_value(ndr, r);
14939 NDR_CHECK(ndr_push_union_align(ndr, 4));
14942 NDR_CHECK(ndr_push_align(ndr, 4));
14943 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14944 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14948 NDR_CHECK(ndr_push_align(ndr, 4));
14949 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14950 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14955 if (ndr_flags & NDR_BUFFERS) {
14956 int level = ndr_push_get_switch_value(ndr, r);
14957 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
14967 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
14968 return NDR_ERR_SUCCESS;
14971 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverDirectoryInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DriverDirectoryInfo *r)
14973 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
14975 level = ndr_pull_get_switch_value(ndr, r);
14976 if (ndr_flags & NDR_SCALARS) {
14977 NDR_CHECK(ndr_pull_union_align(ndr, 4));
14980 NDR_CHECK(ndr_pull_align(ndr, 4));
14981 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14982 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14986 NDR_CHECK(ndr_pull_align(ndr, 4));
14987 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14988 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14993 if (ndr_flags & NDR_BUFFERS) {
14994 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
15004 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
15005 return NDR_ERR_SUCCESS;
15008 _PUBLIC_ void ndr_print_spoolss_DriverDirectoryInfo(struct ndr_print *ndr, const char *name, const union spoolss_DriverDirectoryInfo *r)
15011 level = ndr_print_get_switch_value(ndr, r);
15012 ndr_print_union(ndr, name, level, "spoolss_DriverDirectoryInfo");
15015 ndr_print_spoolss_DriverDirectoryInfo1(ndr, "info1", &r->info1);
15019 ndr_print_spoolss_DriverDirectoryInfo1(ndr, "info1", &r->info1);
15025 _PUBLIC_ size_t ndr_size_spoolss_DriverDirectoryInfo(const union spoolss_DriverDirectoryInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
15027 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverDirectoryInfo, ic);
15030 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcessorInfo1 *r)
15032 if (ndr_flags & NDR_SCALARS) {
15033 NDR_CHECK(ndr_push_align(ndr, 5));
15035 uint32_t _flags_save_string = ndr->flags;
15036 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15037 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor_name));
15038 ndr->flags = _flags_save_string;
15040 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
15042 if (ndr_flags & NDR_BUFFERS) {
15044 uint32_t _flags_save_string = ndr->flags;
15045 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15046 if (r->print_processor_name) {
15047 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->print_processor_name));
15048 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor_name));
15050 ndr->flags = _flags_save_string;
15053 return NDR_ERR_SUCCESS;
15056 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcessorInfo1 *r)
15058 uint32_t _ptr_print_processor_name;
15059 TALLOC_CTX *_mem_save_print_processor_name_0;
15060 if (ndr_flags & NDR_SCALARS) {
15061 NDR_CHECK(ndr_pull_align(ndr, 5));
15063 uint32_t _flags_save_string = ndr->flags;
15064 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15065 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor_name));
15066 if (_ptr_print_processor_name) {
15067 NDR_PULL_ALLOC(ndr, r->print_processor_name);
15068 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor_name, _ptr_print_processor_name));
15070 r->print_processor_name = NULL;
15072 ndr->flags = _flags_save_string;
15074 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
15076 if (ndr_flags & NDR_BUFFERS) {
15078 uint32_t _flags_save_string = ndr->flags;
15079 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15080 if (r->print_processor_name) {
15081 uint32_t _relative_save_offset;
15082 _relative_save_offset = ndr->offset;
15083 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor_name));
15084 _mem_save_print_processor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15085 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor_name, 0);
15086 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor_name));
15087 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_name_0, 0);
15088 if (ndr->offset > ndr->relative_highest_offset) {
15089 ndr->relative_highest_offset = ndr->offset;
15091 ndr->offset = _relative_save_offset;
15093 ndr->flags = _flags_save_string;
15096 return NDR_ERR_SUCCESS;
15099 _PUBLIC_ void ndr_print_spoolss_PrintProcessorInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcessorInfo1 *r)
15101 ndr_print_struct(ndr, name, "spoolss_PrintProcessorInfo1");
15103 ndr_print_ptr(ndr, "print_processor_name", r->print_processor_name);
15105 if (r->print_processor_name) {
15106 ndr_print_string(ndr, "print_processor_name", r->print_processor_name);
15112 _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorInfo1(const struct spoolss_PrintProcessorInfo1 *r, struct smb_iconv_convenience *ic, int flags)
15114 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorInfo1, ic);
15117 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcessorInfo *r)
15119 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
15120 if (ndr_flags & NDR_SCALARS) {
15121 int level = ndr_push_get_switch_value(ndr, r);
15122 NDR_CHECK(ndr_push_union_align(ndr, 5));
15125 NDR_CHECK(ndr_push_align(ndr, 5));
15126 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15127 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr, NDR_SCALARS, &r->info1));
15135 if (ndr_flags & NDR_BUFFERS) {
15136 int level = ndr_push_get_switch_value(ndr, r);
15137 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
15140 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr, NDR_BUFFERS, &r->info1));
15148 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
15149 return NDR_ERR_SUCCESS;
15152 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcessorInfo *r)
15154 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
15156 level = ndr_pull_get_switch_value(ndr, r);
15157 if (ndr_flags & NDR_SCALARS) {
15158 NDR_CHECK(ndr_pull_union_align(ndr, 5));
15161 NDR_CHECK(ndr_pull_align(ndr, 5));
15162 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15163 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr, NDR_SCALARS, &r->info1));
15171 if (ndr_flags & NDR_BUFFERS) {
15172 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
15175 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr, NDR_BUFFERS, &r->info1));
15183 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
15184 return NDR_ERR_SUCCESS;
15187 _PUBLIC_ void ndr_print_spoolss_PrintProcessorInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcessorInfo *r)
15190 level = ndr_print_get_switch_value(ndr, r);
15191 ndr_print_union(ndr, name, level, "spoolss_PrintProcessorInfo");
15194 ndr_print_spoolss_PrintProcessorInfo1(ndr, "info1", &r->info1);
15203 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorDirectoryInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcessorDirectoryInfo1 *r)
15205 if (ndr_flags & NDR_SCALARS) {
15206 NDR_CHECK(ndr_push_align(ndr, 4));
15208 uint32_t _flags_save_string = ndr->flags;
15209 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15210 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->directory_name));
15211 ndr->flags = _flags_save_string;
15213 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
15215 if (ndr_flags & NDR_BUFFERS) {
15217 return NDR_ERR_SUCCESS;
15220 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorDirectoryInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcessorDirectoryInfo1 *r)
15222 if (ndr_flags & NDR_SCALARS) {
15223 NDR_CHECK(ndr_pull_align(ndr, 4));
15225 uint32_t _flags_save_string = ndr->flags;
15226 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15227 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->directory_name));
15228 ndr->flags = _flags_save_string;
15230 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
15232 if (ndr_flags & NDR_BUFFERS) {
15234 return NDR_ERR_SUCCESS;
15237 _PUBLIC_ void ndr_print_spoolss_PrintProcessorDirectoryInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcessorDirectoryInfo1 *r)
15239 ndr_print_struct(ndr, name, "spoolss_PrintProcessorDirectoryInfo1");
15241 ndr_print_string(ndr, "directory_name", r->directory_name);
15245 _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorDirectoryInfo1(const struct spoolss_PrintProcessorDirectoryInfo1 *r, struct smb_iconv_convenience *ic, int flags)
15247 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorDirectoryInfo1, ic);
15250 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorDirectoryInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcessorDirectoryInfo *r)
15252 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
15253 if (ndr_flags & NDR_SCALARS) {
15254 int level = ndr_push_get_switch_value(ndr, r);
15255 NDR_CHECK(ndr_push_union_align(ndr, 4));
15258 NDR_CHECK(ndr_push_align(ndr, 4));
15259 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15260 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
15264 NDR_CHECK(ndr_push_align(ndr, 4));
15265 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15266 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
15271 if (ndr_flags & NDR_BUFFERS) {
15272 int level = ndr_push_get_switch_value(ndr, r);
15273 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
15283 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
15284 return NDR_ERR_SUCCESS;
15287 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorDirectoryInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcessorDirectoryInfo *r)
15289 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
15291 level = ndr_pull_get_switch_value(ndr, r);
15292 if (ndr_flags & NDR_SCALARS) {
15293 NDR_CHECK(ndr_pull_union_align(ndr, 4));
15296 NDR_CHECK(ndr_pull_align(ndr, 4));
15297 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15298 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
15302 NDR_CHECK(ndr_pull_align(ndr, 4));
15303 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15304 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
15309 if (ndr_flags & NDR_BUFFERS) {
15310 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
15320 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
15321 return NDR_ERR_SUCCESS;
15324 _PUBLIC_ void ndr_print_spoolss_PrintProcessorDirectoryInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcessorDirectoryInfo *r)
15327 level = ndr_print_get_switch_value(ndr, r);
15328 ndr_print_union(ndr, name, level, "spoolss_PrintProcessorDirectoryInfo");
15331 ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr, "info1", &r->info1);
15335 ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr, "info1", &r->info1);
15341 _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorDirectoryInfo(const union spoolss_PrintProcessorDirectoryInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
15343 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorDirectoryInfo, ic);
15346 static enum ndr_err_code ndr_push_spoolss_DocumentInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DocumentInfo1 *r)
15348 if (ndr_flags & NDR_SCALARS) {
15349 NDR_CHECK(ndr_push_align(ndr, 5));
15350 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
15351 NDR_CHECK(ndr_push_unique_ptr(ndr, r->output_file));
15352 NDR_CHECK(ndr_push_unique_ptr(ndr, r->datatype));
15353 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
15355 if (ndr_flags & NDR_BUFFERS) {
15356 if (r->document_name) {
15357 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
15358 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
15359 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
15360 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15362 if (r->output_file) {
15363 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->output_file, CH_UTF16)));
15364 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
15365 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->output_file, CH_UTF16)));
15366 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->output_file, ndr_charset_length(r->output_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15369 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
15370 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
15371 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
15372 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->datatype, ndr_charset_length(r->datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15375 return NDR_ERR_SUCCESS;
15378 static enum ndr_err_code ndr_pull_spoolss_DocumentInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DocumentInfo1 *r)
15380 uint32_t _ptr_document_name;
15381 TALLOC_CTX *_mem_save_document_name_0;
15382 uint32_t _ptr_output_file;
15383 TALLOC_CTX *_mem_save_output_file_0;
15384 uint32_t _ptr_datatype;
15385 TALLOC_CTX *_mem_save_datatype_0;
15386 if (ndr_flags & NDR_SCALARS) {
15387 NDR_CHECK(ndr_pull_align(ndr, 5));
15388 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
15389 if (_ptr_document_name) {
15390 NDR_PULL_ALLOC(ndr, r->document_name);
15392 r->document_name = NULL;
15394 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_output_file));
15395 if (_ptr_output_file) {
15396 NDR_PULL_ALLOC(ndr, r->output_file);
15398 r->output_file = NULL;
15400 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
15401 if (_ptr_datatype) {
15402 NDR_PULL_ALLOC(ndr, r->datatype);
15404 r->datatype = NULL;
15406 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
15408 if (ndr_flags & NDR_BUFFERS) {
15409 if (r->document_name) {
15410 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15411 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
15412 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
15413 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
15414 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
15415 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));
15417 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
15418 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
15419 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
15421 if (r->output_file) {
15422 _mem_save_output_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
15423 NDR_PULL_SET_MEM_CTX(ndr, r->output_file, 0);
15424 NDR_CHECK(ndr_pull_array_size(ndr, &r->output_file));
15425 NDR_CHECK(ndr_pull_array_length(ndr, &r->output_file));
15426 if (ndr_get_array_length(ndr, &r->output_file) > ndr_get_array_size(ndr, &r->output_file)) {
15427 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));
15429 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->output_file), sizeof(uint16_t)));
15430 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->output_file, ndr_get_array_length(ndr, &r->output_file), sizeof(uint16_t), CH_UTF16));
15431 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_output_file_0, 0);
15434 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
15435 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
15436 NDR_CHECK(ndr_pull_array_size(ndr, &r->datatype));
15437 NDR_CHECK(ndr_pull_array_length(ndr, &r->datatype));
15438 if (ndr_get_array_length(ndr, &r->datatype) > ndr_get_array_size(ndr, &r->datatype)) {
15439 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));
15441 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t)));
15442 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->datatype, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t), CH_UTF16));
15443 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
15446 return NDR_ERR_SUCCESS;
15449 _PUBLIC_ void ndr_print_spoolss_DocumentInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DocumentInfo1 *r)
15451 ndr_print_struct(ndr, name, "spoolss_DocumentInfo1");
15453 ndr_print_ptr(ndr, "document_name", r->document_name);
15455 if (r->document_name) {
15456 ndr_print_string(ndr, "document_name", r->document_name);
15459 ndr_print_ptr(ndr, "output_file", r->output_file);
15461 if (r->output_file) {
15462 ndr_print_string(ndr, "output_file", r->output_file);
15465 ndr_print_ptr(ndr, "datatype", r->datatype);
15468 ndr_print_string(ndr, "datatype", r->datatype);
15474 static enum ndr_err_code ndr_push_spoolss_DocumentInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DocumentInfo *r)
15476 if (ndr_flags & NDR_SCALARS) {
15477 int level = ndr_push_get_switch_value(ndr, r);
15478 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
15479 NDR_CHECK(ndr_push_union_align(ndr, 5));
15482 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
15496 if (ndr_flags & NDR_BUFFERS) {
15497 int level = ndr_push_get_switch_value(ndr, r);
15501 NDR_CHECK(ndr_push_spoolss_DocumentInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
15516 return NDR_ERR_SUCCESS;
15519 static enum ndr_err_code ndr_pull_spoolss_DocumentInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DocumentInfo *r)
15523 TALLOC_CTX *_mem_save_info1_0;
15524 level = ndr_pull_get_switch_value(ndr, r);
15525 if (ndr_flags & NDR_SCALARS) {
15526 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
15527 if (_level != level) {
15528 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
15530 NDR_CHECK(ndr_pull_union_align(ndr, 5));
15533 uint32_t _ptr_info1;
15534 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
15536 NDR_PULL_ALLOC(ndr, r->info1);
15553 if (ndr_flags & NDR_BUFFERS) {
15557 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
15558 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
15559 NDR_CHECK(ndr_pull_spoolss_DocumentInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
15560 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
15575 return NDR_ERR_SUCCESS;
15578 _PUBLIC_ void ndr_print_spoolss_DocumentInfo(struct ndr_print *ndr, const char *name, const union spoolss_DocumentInfo *r)
15581 level = ndr_print_get_switch_value(ndr, r);
15582 ndr_print_union(ndr, name, level, "spoolss_DocumentInfo");
15585 ndr_print_ptr(ndr, "info1", r->info1);
15588 ndr_print_spoolss_DocumentInfo1(ndr, "info1", r->info1);
15605 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OSVersion(struct ndr_push *ndr, int ndr_flags, const struct spoolss_OSVersion *r)
15607 if (ndr_flags & NDR_SCALARS) {
15608 NDR_CHECK(ndr_push_align(ndr, 4));
15609 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_OSVersion(r, ndr->iconv_convenience, ndr->flags)));
15610 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->major));
15611 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minor));
15612 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
15613 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
15615 uint32_t _flags_save_string = ndr->flags;
15616 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15618 struct ndr_push *_ndr_extra_string;
15619 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
15620 NDR_CHECK(ndr_push_string(_ndr_extra_string, NDR_SCALARS, r->extra_string));
15621 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_extra_string, 0, 256));
15623 ndr->flags = _flags_save_string;
15625 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
15627 if (ndr_flags & NDR_BUFFERS) {
15629 return NDR_ERR_SUCCESS;
15632 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OSVersion(struct ndr_pull *ndr, int ndr_flags, struct spoolss_OSVersion *r)
15634 if (ndr_flags & NDR_SCALARS) {
15635 NDR_CHECK(ndr_pull_align(ndr, 4));
15636 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
15637 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->major));
15638 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minor));
15639 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
15640 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->platform_id));
15642 uint32_t _flags_save_string = ndr->flags;
15643 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15645 struct ndr_pull *_ndr_extra_string;
15646 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
15647 NDR_CHECK(ndr_pull_string(_ndr_extra_string, NDR_SCALARS, &r->extra_string));
15648 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_extra_string, 0, 256));
15650 ndr->flags = _flags_save_string;
15652 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
15654 if (ndr_flags & NDR_BUFFERS) {
15656 return NDR_ERR_SUCCESS;
15659 _PUBLIC_ void ndr_print_spoolss_OSVersion(struct ndr_print *ndr, const char *name, const struct spoolss_OSVersion *r)
15661 ndr_print_struct(ndr, name, "spoolss_OSVersion");
15663 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);
15664 ndr_print_uint32(ndr, "major", r->major);
15665 ndr_print_uint32(ndr, "minor", r->minor);
15666 ndr_print_uint32(ndr, "build", r->build);
15667 ndr_print_uint32(ndr, "platform_id", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->platform_id);
15668 ndr_print_string(ndr, "extra_string", r->extra_string);
15672 _PUBLIC_ size_t ndr_size_spoolss_OSVersion(const struct spoolss_OSVersion *r, struct smb_iconv_convenience *ic, int flags)
15674 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_OSVersion, ic);
15677 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OSVersionEx(struct ndr_push *ndr, int ndr_flags, const struct spoolss_OSVersionEx *r)
15679 if (ndr_flags & NDR_SCALARS) {
15680 NDR_CHECK(ndr_push_align(ndr, 4));
15681 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_OSVersionEx(r, ndr->iconv_convenience, ndr->flags)));
15682 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->major));
15683 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minor));
15684 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
15685 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
15687 uint32_t _flags_save_string = ndr->flags;
15688 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15690 struct ndr_push *_ndr_extra_string;
15691 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
15692 NDR_CHECK(ndr_push_string(_ndr_extra_string, NDR_SCALARS, r->extra_string));
15693 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_extra_string, 0, 256));
15695 ndr->flags = _flags_save_string;
15697 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->service_pack_major));
15698 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->service_pack_minor));
15699 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->suite_mask));
15700 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->product_type));
15701 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->reserved));
15702 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
15704 if (ndr_flags & NDR_BUFFERS) {
15706 return NDR_ERR_SUCCESS;
15709 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OSVersionEx(struct ndr_pull *ndr, int ndr_flags, struct spoolss_OSVersionEx *r)
15711 if (ndr_flags & NDR_SCALARS) {
15712 NDR_CHECK(ndr_pull_align(ndr, 4));
15713 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
15714 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->major));
15715 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minor));
15716 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
15717 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->platform_id));
15719 uint32_t _flags_save_string = ndr->flags;
15720 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15722 struct ndr_pull *_ndr_extra_string;
15723 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
15724 NDR_CHECK(ndr_pull_string(_ndr_extra_string, NDR_SCALARS, &r->extra_string));
15725 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_extra_string, 0, 256));
15727 ndr->flags = _flags_save_string;
15729 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->service_pack_major));
15730 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->service_pack_minor));
15731 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->suite_mask));
15732 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->product_type));
15733 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->reserved));
15734 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
15736 if (ndr_flags & NDR_BUFFERS) {
15738 return NDR_ERR_SUCCESS;
15741 _PUBLIC_ void ndr_print_spoolss_OSVersionEx(struct ndr_print *ndr, const char *name, const struct spoolss_OSVersionEx *r)
15743 ndr_print_struct(ndr, name, "spoolss_OSVersionEx");
15745 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);
15746 ndr_print_uint32(ndr, "major", r->major);
15747 ndr_print_uint32(ndr, "minor", r->minor);
15748 ndr_print_uint32(ndr, "build", r->build);
15749 ndr_print_uint32(ndr, "platform_id", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->platform_id);
15750 ndr_print_string(ndr, "extra_string", r->extra_string);
15751 ndr_print_uint16(ndr, "service_pack_major", r->service_pack_major);
15752 ndr_print_uint16(ndr, "service_pack_minor", r->service_pack_minor);
15753 ndr_print_uint16(ndr, "suite_mask", r->suite_mask);
15754 ndr_print_uint8(ndr, "product_type", r->product_type);
15755 ndr_print_uint8(ndr, "reserved", r->reserved);
15759 _PUBLIC_ size_t ndr_size_spoolss_OSVersionEx(const struct spoolss_OSVersionEx *r, struct smb_iconv_convenience *ic, int flags)
15761 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_OSVersionEx, ic);
15764 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterData(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrinterData *r)
15766 if (ndr_flags & NDR_SCALARS) {
15767 int level = ndr_push_get_switch_value(ndr, r);
15768 NDR_CHECK(ndr_push_union_align(ndr, 4));
15775 uint32_t _flags_save_string = ndr->flags;
15776 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15777 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->string));
15778 ndr->flags = _flags_save_string;
15784 uint32_t _flags_save_DATA_BLOB = ndr->flags;
15785 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
15786 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->binary));
15787 ndr->flags = _flags_save_DATA_BLOB;
15792 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->value));
15795 case REG_MULTI_SZ: {
15797 uint32_t _flags_save_string_array = ndr->flags;
15798 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15799 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string_array));
15800 ndr->flags = _flags_save_string_array;
15806 uint32_t _flags_save_DATA_BLOB = ndr->flags;
15807 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
15808 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->data));
15809 ndr->flags = _flags_save_DATA_BLOB;
15815 if (ndr_flags & NDR_BUFFERS) {
15816 int level = ndr_push_get_switch_value(ndr, r);
15838 return NDR_ERR_SUCCESS;
15841 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterData(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrinterData *r)
15844 level = ndr_pull_get_switch_value(ndr, r);
15845 if (ndr_flags & NDR_SCALARS) {
15846 NDR_CHECK(ndr_pull_union_align(ndr, 4));
15853 uint32_t _flags_save_string = ndr->flags;
15854 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15855 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->string));
15856 ndr->flags = _flags_save_string;
15862 uint32_t _flags_save_DATA_BLOB = ndr->flags;
15863 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
15864 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->binary));
15865 ndr->flags = _flags_save_DATA_BLOB;
15870 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->value));
15873 case REG_MULTI_SZ: {
15875 uint32_t _flags_save_string_array = ndr->flags;
15876 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15877 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string_array));
15878 ndr->flags = _flags_save_string_array;
15884 uint32_t _flags_save_DATA_BLOB = ndr->flags;
15885 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
15886 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->data));
15887 ndr->flags = _flags_save_DATA_BLOB;
15893 if (ndr_flags & NDR_BUFFERS) {
15915 return NDR_ERR_SUCCESS;
15918 _PUBLIC_ void ndr_print_spoolss_PrinterData(struct ndr_print *ndr, const char *name, const union spoolss_PrinterData *r)
15921 level = ndr_print_get_switch_value(ndr, r);
15922 ndr_print_union(ndr, name, level, "spoolss_PrinterData");
15928 ndr_print_string(ndr, "string", r->string);
15932 ndr_print_DATA_BLOB(ndr, "binary", r->binary);
15936 ndr_print_uint32(ndr, "value", r->value);
15940 ndr_print_string_array(ndr, "string_array", r->string_array);
15944 ndr_print_DATA_BLOB(ndr, "data", r->data);
15950 static enum ndr_err_code ndr_push_spoolss_FormFlags(struct ndr_push *ndr, int ndr_flags, enum spoolss_FormFlags r)
15952 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
15953 return NDR_ERR_SUCCESS;
15956 static enum ndr_err_code ndr_pull_spoolss_FormFlags(struct ndr_pull *ndr, int ndr_flags, enum spoolss_FormFlags *r)
15959 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
15961 return NDR_ERR_SUCCESS;
15964 _PUBLIC_ void ndr_print_spoolss_FormFlags(struct ndr_print *ndr, const char *name, enum spoolss_FormFlags r)
15966 const char *val = NULL;
15969 case SPOOLSS_FORM_USER: val = "SPOOLSS_FORM_USER"; break;
15970 case SPOOLSS_FORM_BUILTIN: val = "SPOOLSS_FORM_BUILTIN"; break;
15971 case SPOOLSS_FORM_PRINTER: val = "SPOOLSS_FORM_PRINTER"; break;
15973 ndr_print_enum(ndr, name, "ENUM", val, r);
15976 static enum ndr_err_code ndr_push_spoolss_FormSize(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormSize *r)
15978 if (ndr_flags & NDR_SCALARS) {
15979 NDR_CHECK(ndr_push_align(ndr, 4));
15980 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->width));
15981 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->height));
15982 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
15984 if (ndr_flags & NDR_BUFFERS) {
15986 return NDR_ERR_SUCCESS;
15989 static enum ndr_err_code ndr_pull_spoolss_FormSize(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormSize *r)
15991 if (ndr_flags & NDR_SCALARS) {
15992 NDR_CHECK(ndr_pull_align(ndr, 4));
15993 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->width));
15994 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->height));
15995 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
15997 if (ndr_flags & NDR_BUFFERS) {
15999 return NDR_ERR_SUCCESS;
16002 _PUBLIC_ void ndr_print_spoolss_FormSize(struct ndr_print *ndr, const char *name, const struct spoolss_FormSize *r)
16004 ndr_print_struct(ndr, name, "spoolss_FormSize");
16006 ndr_print_uint32(ndr, "width", r->width);
16007 ndr_print_uint32(ndr, "height", r->height);
16011 static enum ndr_err_code ndr_push_spoolss_FormArea(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormArea *r)
16013 if (ndr_flags & NDR_SCALARS) {
16014 NDR_CHECK(ndr_push_align(ndr, 4));
16015 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->left));
16016 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->top));
16017 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->right));
16018 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bottom));
16019 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
16021 if (ndr_flags & NDR_BUFFERS) {
16023 return NDR_ERR_SUCCESS;
16026 static enum ndr_err_code ndr_pull_spoolss_FormArea(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormArea *r)
16028 if (ndr_flags & NDR_SCALARS) {
16029 NDR_CHECK(ndr_pull_align(ndr, 4));
16030 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->left));
16031 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->top));
16032 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->right));
16033 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bottom));
16034 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
16036 if (ndr_flags & NDR_BUFFERS) {
16038 return NDR_ERR_SUCCESS;
16041 _PUBLIC_ void ndr_print_spoolss_FormArea(struct ndr_print *ndr, const char *name, const struct spoolss_FormArea *r)
16043 ndr_print_struct(ndr, name, "spoolss_FormArea");
16045 ndr_print_uint32(ndr, "left", r->left);
16046 ndr_print_uint32(ndr, "top", r->top);
16047 ndr_print_uint32(ndr, "right", r->right);
16048 ndr_print_uint32(ndr, "bottom", r->bottom);
16052 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormInfo1 *r)
16054 if (ndr_flags & NDR_SCALARS) {
16055 NDR_CHECK(ndr_push_align(ndr, 5));
16056 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
16058 uint32_t _flags_save_string = ndr->flags;
16059 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16060 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->form_name));
16061 ndr->flags = _flags_save_string;
16063 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
16064 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
16065 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
16067 if (ndr_flags & NDR_BUFFERS) {
16069 uint32_t _flags_save_string = ndr->flags;
16070 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16071 if (r->form_name) {
16072 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->form_name));
16073 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->form_name));
16075 ndr->flags = _flags_save_string;
16078 return NDR_ERR_SUCCESS;
16081 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormInfo1 *r)
16083 uint32_t _ptr_form_name;
16084 TALLOC_CTX *_mem_save_form_name_0;
16085 if (ndr_flags & NDR_SCALARS) {
16086 NDR_CHECK(ndr_pull_align(ndr, 5));
16087 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
16089 uint32_t _flags_save_string = ndr->flags;
16090 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16091 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
16092 if (_ptr_form_name) {
16093 NDR_PULL_ALLOC(ndr, r->form_name);
16094 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->form_name, _ptr_form_name));
16096 r->form_name = NULL;
16098 ndr->flags = _flags_save_string;
16100 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
16101 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
16102 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
16104 if (ndr_flags & NDR_BUFFERS) {
16106 uint32_t _flags_save_string = ndr->flags;
16107 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16108 if (r->form_name) {
16109 uint32_t _relative_save_offset;
16110 _relative_save_offset = ndr->offset;
16111 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->form_name));
16112 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16113 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
16114 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->form_name));
16115 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
16116 if (ndr->offset > ndr->relative_highest_offset) {
16117 ndr->relative_highest_offset = ndr->offset;
16119 ndr->offset = _relative_save_offset;
16121 ndr->flags = _flags_save_string;
16124 return NDR_ERR_SUCCESS;
16127 _PUBLIC_ void ndr_print_spoolss_FormInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_FormInfo1 *r)
16129 ndr_print_struct(ndr, name, "spoolss_FormInfo1");
16131 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
16132 ndr_print_ptr(ndr, "form_name", r->form_name);
16134 if (r->form_name) {
16135 ndr_print_string(ndr, "form_name", r->form_name);
16138 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
16139 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
16143 _PUBLIC_ size_t ndr_size_spoolss_FormInfo1(const struct spoolss_FormInfo1 *r, struct smb_iconv_convenience *ic, int flags)
16145 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo1, ic);
16148 static enum ndr_err_code ndr_push_spoolss_FormStringType(struct ndr_push *ndr, int ndr_flags, uint32_t r)
16150 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
16151 return NDR_ERR_SUCCESS;
16154 static enum ndr_err_code ndr_pull_spoolss_FormStringType(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
16157 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
16159 return NDR_ERR_SUCCESS;
16162 _PUBLIC_ void ndr_print_spoolss_FormStringType(struct ndr_print *ndr, const char *name, uint32_t r)
16164 ndr_print_uint32(ndr, name, r);
16166 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_NONE", SPOOLSS_FORM_STRING_TYPE_NONE, r);
16167 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_MUI_DLL", SPOOLSS_FORM_STRING_TYPE_MUI_DLL, r);
16168 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_LANG_PAIR", SPOOLSS_FORM_STRING_TYPE_LANG_PAIR, r);
16172 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormInfo2 *r)
16174 if (ndr_flags & NDR_SCALARS) {
16175 NDR_CHECK(ndr_push_align(ndr, 5));
16176 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
16178 uint32_t _flags_save_string = ndr->flags;
16179 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16180 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->form_name));
16181 ndr->flags = _flags_save_string;
16183 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
16184 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
16186 uint32_t _flags_save_string = ndr->flags;
16187 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
16188 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->keyword));
16189 ndr->flags = _flags_save_string;
16191 NDR_CHECK(ndr_push_spoolss_FormStringType(ndr, NDR_SCALARS, r->string_type));
16193 uint32_t _flags_save_string = ndr->flags;
16194 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16195 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->mui_dll));
16196 ndr->flags = _flags_save_string;
16198 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ressource_id));
16200 uint32_t _flags_save_string = ndr->flags;
16201 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16202 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->display_name));
16203 ndr->flags = _flags_save_string;
16205 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lang_id));
16206 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->unused));
16207 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
16209 if (ndr_flags & NDR_BUFFERS) {
16211 uint32_t _flags_save_string = ndr->flags;
16212 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16213 if (r->form_name) {
16214 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->form_name));
16215 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->form_name));
16217 ndr->flags = _flags_save_string;
16220 uint32_t _flags_save_string = ndr->flags;
16221 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
16223 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->keyword));
16224 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->keyword));
16226 ndr->flags = _flags_save_string;
16229 uint32_t _flags_save_string = ndr->flags;
16230 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16232 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->mui_dll));
16233 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->mui_dll));
16235 ndr->flags = _flags_save_string;
16238 uint32_t _flags_save_string = ndr->flags;
16239 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16240 if (r->display_name) {
16241 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->display_name));
16242 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->display_name));
16244 ndr->flags = _flags_save_string;
16247 return NDR_ERR_SUCCESS;
16250 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormInfo2 *r)
16252 uint32_t _ptr_form_name;
16253 TALLOC_CTX *_mem_save_form_name_0;
16254 uint32_t _ptr_keyword;
16255 TALLOC_CTX *_mem_save_keyword_0;
16256 uint32_t _ptr_mui_dll;
16257 TALLOC_CTX *_mem_save_mui_dll_0;
16258 uint32_t _ptr_display_name;
16259 TALLOC_CTX *_mem_save_display_name_0;
16260 if (ndr_flags & NDR_SCALARS) {
16261 NDR_CHECK(ndr_pull_align(ndr, 5));
16262 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
16264 uint32_t _flags_save_string = ndr->flags;
16265 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16266 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
16267 if (_ptr_form_name) {
16268 NDR_PULL_ALLOC(ndr, r->form_name);
16269 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->form_name, _ptr_form_name));
16271 r->form_name = NULL;
16273 ndr->flags = _flags_save_string;
16275 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
16276 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
16278 uint32_t _flags_save_string = ndr->flags;
16279 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
16280 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyword));
16281 if (_ptr_keyword) {
16282 NDR_PULL_ALLOC(ndr, r->keyword);
16283 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->keyword, _ptr_keyword));
16287 ndr->flags = _flags_save_string;
16289 NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr, NDR_SCALARS, &r->string_type));
16291 uint32_t _flags_save_string = ndr->flags;
16292 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16293 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_mui_dll));
16294 if (_ptr_mui_dll) {
16295 NDR_PULL_ALLOC(ndr, r->mui_dll);
16296 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->mui_dll, _ptr_mui_dll));
16300 ndr->flags = _flags_save_string;
16302 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ressource_id));
16304 uint32_t _flags_save_string = ndr->flags;
16305 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16306 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_display_name));
16307 if (_ptr_display_name) {
16308 NDR_PULL_ALLOC(ndr, r->display_name);
16309 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->display_name, _ptr_display_name));
16311 r->display_name = NULL;
16313 ndr->flags = _flags_save_string;
16315 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lang_id));
16316 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->unused));
16317 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
16319 if (ndr_flags & NDR_BUFFERS) {
16321 uint32_t _flags_save_string = ndr->flags;
16322 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16323 if (r->form_name) {
16324 uint32_t _relative_save_offset;
16325 _relative_save_offset = ndr->offset;
16326 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->form_name));
16327 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16328 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
16329 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->form_name));
16330 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
16331 if (ndr->offset > ndr->relative_highest_offset) {
16332 ndr->relative_highest_offset = ndr->offset;
16334 ndr->offset = _relative_save_offset;
16336 ndr->flags = _flags_save_string;
16339 uint32_t _flags_save_string = ndr->flags;
16340 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
16342 uint32_t _relative_save_offset;
16343 _relative_save_offset = ndr->offset;
16344 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->keyword));
16345 _mem_save_keyword_0 = NDR_PULL_GET_MEM_CTX(ndr);
16346 NDR_PULL_SET_MEM_CTX(ndr, r->keyword, 0);
16347 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->keyword));
16348 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyword_0, 0);
16349 if (ndr->offset > ndr->relative_highest_offset) {
16350 ndr->relative_highest_offset = ndr->offset;
16352 ndr->offset = _relative_save_offset;
16354 ndr->flags = _flags_save_string;
16357 uint32_t _flags_save_string = ndr->flags;
16358 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16360 uint32_t _relative_save_offset;
16361 _relative_save_offset = ndr->offset;
16362 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->mui_dll));
16363 _mem_save_mui_dll_0 = NDR_PULL_GET_MEM_CTX(ndr);
16364 NDR_PULL_SET_MEM_CTX(ndr, r->mui_dll, 0);
16365 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->mui_dll));
16366 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_mui_dll_0, 0);
16367 if (ndr->offset > ndr->relative_highest_offset) {
16368 ndr->relative_highest_offset = ndr->offset;
16370 ndr->offset = _relative_save_offset;
16372 ndr->flags = _flags_save_string;
16375 uint32_t _flags_save_string = ndr->flags;
16376 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16377 if (r->display_name) {
16378 uint32_t _relative_save_offset;
16379 _relative_save_offset = ndr->offset;
16380 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->display_name));
16381 _mem_save_display_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16382 NDR_PULL_SET_MEM_CTX(ndr, r->display_name, 0);
16383 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->display_name));
16384 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_display_name_0, 0);
16385 if (ndr->offset > ndr->relative_highest_offset) {
16386 ndr->relative_highest_offset = ndr->offset;
16388 ndr->offset = _relative_save_offset;
16390 ndr->flags = _flags_save_string;
16393 return NDR_ERR_SUCCESS;
16396 _PUBLIC_ void ndr_print_spoolss_FormInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_FormInfo2 *r)
16398 ndr_print_struct(ndr, name, "spoolss_FormInfo2");
16400 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
16401 ndr_print_ptr(ndr, "form_name", r->form_name);
16403 if (r->form_name) {
16404 ndr_print_string(ndr, "form_name", r->form_name);
16407 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
16408 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
16409 ndr_print_ptr(ndr, "keyword", r->keyword);
16412 ndr_print_string(ndr, "keyword", r->keyword);
16415 ndr_print_spoolss_FormStringType(ndr, "string_type", r->string_type);
16416 ndr_print_ptr(ndr, "mui_dll", r->mui_dll);
16419 ndr_print_string(ndr, "mui_dll", r->mui_dll);
16422 ndr_print_uint32(ndr, "ressource_id", r->ressource_id);
16423 ndr_print_ptr(ndr, "display_name", r->display_name);
16425 if (r->display_name) {
16426 ndr_print_string(ndr, "display_name", r->display_name);
16429 ndr_print_uint16(ndr, "lang_id", r->lang_id);
16430 ndr_print_uint16(ndr, "unused", r->unused);
16434 _PUBLIC_ size_t ndr_size_spoolss_FormInfo2(const struct spoolss_FormInfo2 *r, struct smb_iconv_convenience *ic, int flags)
16436 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo2, ic);
16439 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_FormInfo *r)
16441 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
16442 if (ndr_flags & NDR_SCALARS) {
16443 int level = ndr_push_get_switch_value(ndr, r);
16444 NDR_CHECK(ndr_push_union_align(ndr, 5));
16447 NDR_CHECK(ndr_push_align(ndr, 5));
16448 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16449 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr, NDR_SCALARS, &r->info1));
16453 NDR_CHECK(ndr_push_align(ndr, 5));
16454 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16455 NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr, NDR_SCALARS, &r->info2));
16463 if (ndr_flags & NDR_BUFFERS) {
16464 int level = ndr_push_get_switch_value(ndr, r);
16465 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
16468 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr, NDR_BUFFERS, &r->info1));
16472 NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr, NDR_BUFFERS, &r->info2));
16480 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
16481 return NDR_ERR_SUCCESS;
16484 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_FormInfo *r)
16486 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
16488 level = ndr_pull_get_switch_value(ndr, r);
16489 if (ndr_flags & NDR_SCALARS) {
16490 NDR_CHECK(ndr_pull_union_align(ndr, 5));
16493 NDR_CHECK(ndr_pull_align(ndr, 5));
16494 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16495 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr, NDR_SCALARS, &r->info1));
16499 NDR_CHECK(ndr_pull_align(ndr, 5));
16500 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16501 NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr, NDR_SCALARS, &r->info2));
16509 if (ndr_flags & NDR_BUFFERS) {
16510 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
16513 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr, NDR_BUFFERS, &r->info1));
16517 NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr, NDR_BUFFERS, &r->info2));
16525 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
16526 return NDR_ERR_SUCCESS;
16529 _PUBLIC_ void ndr_print_spoolss_FormInfo(struct ndr_print *ndr, const char *name, const union spoolss_FormInfo *r)
16532 level = ndr_print_get_switch_value(ndr, r);
16533 ndr_print_union(ndr, name, level, "spoolss_FormInfo");
16536 ndr_print_spoolss_FormInfo1(ndr, "info1", &r->info1);
16540 ndr_print_spoolss_FormInfo2(ndr, "info2", &r->info2);
16549 _PUBLIC_ size_t ndr_size_spoolss_FormInfo(const union spoolss_FormInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
16551 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo, ic);
16554 static enum ndr_err_code ndr_push_spoolss_AddFormInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddFormInfo1 *r)
16556 if (ndr_flags & NDR_SCALARS) {
16557 NDR_CHECK(ndr_push_align(ndr, 5));
16558 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
16559 NDR_CHECK(ndr_push_unique_ptr(ndr, r->form_name));
16560 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
16561 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
16562 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
16564 if (ndr_flags & NDR_BUFFERS) {
16565 if (r->form_name) {
16566 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
16567 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
16568 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
16569 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->form_name, ndr_charset_length(r->form_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16572 return NDR_ERR_SUCCESS;
16575 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddFormInfo1 *r)
16577 uint32_t _ptr_form_name;
16578 TALLOC_CTX *_mem_save_form_name_0;
16579 if (ndr_flags & NDR_SCALARS) {
16580 NDR_CHECK(ndr_pull_align(ndr, 5));
16581 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
16582 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
16583 if (_ptr_form_name) {
16584 NDR_PULL_ALLOC(ndr, r->form_name);
16586 r->form_name = NULL;
16588 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
16589 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
16590 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
16592 if (ndr_flags & NDR_BUFFERS) {
16593 if (r->form_name) {
16594 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16595 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
16596 NDR_CHECK(ndr_pull_array_size(ndr, &r->form_name));
16597 NDR_CHECK(ndr_pull_array_length(ndr, &r->form_name));
16598 if (ndr_get_array_length(ndr, &r->form_name) > ndr_get_array_size(ndr, &r->form_name)) {
16599 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));
16601 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t)));
16602 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->form_name, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t), CH_UTF16));
16603 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
16606 return NDR_ERR_SUCCESS;
16609 _PUBLIC_ void ndr_print_spoolss_AddFormInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_AddFormInfo1 *r)
16611 ndr_print_struct(ndr, name, "spoolss_AddFormInfo1");
16613 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
16614 ndr_print_ptr(ndr, "form_name", r->form_name);
16616 if (r->form_name) {
16617 ndr_print_string(ndr, "form_name", r->form_name);
16620 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
16621 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
16625 static enum ndr_err_code ndr_push_spoolss_AddFormInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddFormInfo2 *r)
16627 if (ndr_flags & NDR_SCALARS) {
16628 NDR_CHECK(ndr_push_align(ndr, 5));
16629 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
16630 NDR_CHECK(ndr_push_unique_ptr(ndr, r->form_name));
16631 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
16632 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
16633 NDR_CHECK(ndr_push_unique_ptr(ndr, r->keyword));
16634 NDR_CHECK(ndr_push_spoolss_FormStringType(ndr, NDR_SCALARS, r->string_type));
16635 NDR_CHECK(ndr_push_unique_ptr(ndr, r->mui_dll));
16636 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ressource_id));
16637 NDR_CHECK(ndr_push_unique_ptr(ndr, r->display_name));
16638 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->lang_id));
16639 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
16641 if (ndr_flags & NDR_BUFFERS) {
16642 if (r->form_name) {
16643 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
16644 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
16645 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
16646 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->form_name, ndr_charset_length(r->form_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16649 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->keyword, CH_DOS)));
16650 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
16651 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->keyword, CH_DOS)));
16652 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->keyword, ndr_charset_length(r->keyword, CH_DOS), sizeof(uint8_t), CH_DOS));
16655 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->mui_dll, CH_UTF16)));
16656 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
16657 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->mui_dll, CH_UTF16)));
16658 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->mui_dll, ndr_charset_length(r->mui_dll, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16660 if (r->display_name) {
16661 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->display_name, CH_UTF16)));
16662 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
16663 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->display_name, CH_UTF16)));
16664 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->display_name, ndr_charset_length(r->display_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16667 return NDR_ERR_SUCCESS;
16670 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddFormInfo2 *r)
16672 uint32_t _ptr_form_name;
16673 TALLOC_CTX *_mem_save_form_name_0;
16674 uint32_t _ptr_keyword;
16675 TALLOC_CTX *_mem_save_keyword_0;
16676 uint32_t _ptr_mui_dll;
16677 TALLOC_CTX *_mem_save_mui_dll_0;
16678 uint32_t _ptr_display_name;
16679 TALLOC_CTX *_mem_save_display_name_0;
16680 if (ndr_flags & NDR_SCALARS) {
16681 NDR_CHECK(ndr_pull_align(ndr, 5));
16682 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
16683 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
16684 if (_ptr_form_name) {
16685 NDR_PULL_ALLOC(ndr, r->form_name);
16687 r->form_name = NULL;
16689 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
16690 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
16691 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyword));
16692 if (_ptr_keyword) {
16693 NDR_PULL_ALLOC(ndr, r->keyword);
16697 NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr, NDR_SCALARS, &r->string_type));
16698 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_mui_dll));
16699 if (_ptr_mui_dll) {
16700 NDR_PULL_ALLOC(ndr, r->mui_dll);
16704 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ressource_id));
16705 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_display_name));
16706 if (_ptr_display_name) {
16707 NDR_PULL_ALLOC(ndr, r->display_name);
16709 r->display_name = NULL;
16711 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->lang_id));
16712 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
16714 if (ndr_flags & NDR_BUFFERS) {
16715 if (r->form_name) {
16716 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16717 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
16718 NDR_CHECK(ndr_pull_array_size(ndr, &r->form_name));
16719 NDR_CHECK(ndr_pull_array_length(ndr, &r->form_name));
16720 if (ndr_get_array_length(ndr, &r->form_name) > ndr_get_array_size(ndr, &r->form_name)) {
16721 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));
16723 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t)));
16724 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->form_name, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t), CH_UTF16));
16725 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
16728 _mem_save_keyword_0 = NDR_PULL_GET_MEM_CTX(ndr);
16729 NDR_PULL_SET_MEM_CTX(ndr, r->keyword, 0);
16730 NDR_CHECK(ndr_pull_array_size(ndr, &r->keyword));
16731 NDR_CHECK(ndr_pull_array_length(ndr, &r->keyword));
16732 if (ndr_get_array_length(ndr, &r->keyword) > ndr_get_array_size(ndr, &r->keyword)) {
16733 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));
16735 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->keyword), sizeof(uint8_t)));
16736 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->keyword, ndr_get_array_length(ndr, &r->keyword), sizeof(uint8_t), CH_DOS));
16737 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyword_0, 0);
16740 _mem_save_mui_dll_0 = NDR_PULL_GET_MEM_CTX(ndr);
16741 NDR_PULL_SET_MEM_CTX(ndr, r->mui_dll, 0);
16742 NDR_CHECK(ndr_pull_array_size(ndr, &r->mui_dll));
16743 NDR_CHECK(ndr_pull_array_length(ndr, &r->mui_dll));
16744 if (ndr_get_array_length(ndr, &r->mui_dll) > ndr_get_array_size(ndr, &r->mui_dll)) {
16745 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));
16747 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->mui_dll), sizeof(uint16_t)));
16748 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->mui_dll, ndr_get_array_length(ndr, &r->mui_dll), sizeof(uint16_t), CH_UTF16));
16749 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_mui_dll_0, 0);
16751 if (r->display_name) {
16752 _mem_save_display_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16753 NDR_PULL_SET_MEM_CTX(ndr, r->display_name, 0);
16754 NDR_CHECK(ndr_pull_array_size(ndr, &r->display_name));
16755 NDR_CHECK(ndr_pull_array_length(ndr, &r->display_name));
16756 if (ndr_get_array_length(ndr, &r->display_name) > ndr_get_array_size(ndr, &r->display_name)) {
16757 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));
16759 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->display_name), sizeof(uint16_t)));
16760 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->display_name, ndr_get_array_length(ndr, &r->display_name), sizeof(uint16_t), CH_UTF16));
16761 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_display_name_0, 0);
16764 return NDR_ERR_SUCCESS;
16767 _PUBLIC_ void ndr_print_spoolss_AddFormInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_AddFormInfo2 *r)
16769 ndr_print_struct(ndr, name, "spoolss_AddFormInfo2");
16771 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
16772 ndr_print_ptr(ndr, "form_name", r->form_name);
16774 if (r->form_name) {
16775 ndr_print_string(ndr, "form_name", r->form_name);
16778 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
16779 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
16780 ndr_print_ptr(ndr, "keyword", r->keyword);
16783 ndr_print_string(ndr, "keyword", r->keyword);
16786 ndr_print_spoolss_FormStringType(ndr, "string_type", r->string_type);
16787 ndr_print_ptr(ndr, "mui_dll", r->mui_dll);
16790 ndr_print_string(ndr, "mui_dll", r->mui_dll);
16793 ndr_print_uint32(ndr, "ressource_id", r->ressource_id);
16794 ndr_print_ptr(ndr, "display_name", r->display_name);
16796 if (r->display_name) {
16797 ndr_print_string(ndr, "display_name", r->display_name);
16800 ndr_print_uint32(ndr, "lang_id", r->lang_id);
16804 static enum ndr_err_code ndr_push_spoolss_AddFormInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_AddFormInfo *r)
16806 if (ndr_flags & NDR_SCALARS) {
16807 int level = ndr_push_get_switch_value(ndr, r);
16808 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
16809 NDR_CHECK(ndr_push_union_align(ndr, 5));
16812 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
16816 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
16820 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
16823 if (ndr_flags & NDR_BUFFERS) {
16824 int level = ndr_push_get_switch_value(ndr, r);
16828 NDR_CHECK(ndr_push_spoolss_AddFormInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
16834 NDR_CHECK(ndr_push_spoolss_AddFormInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
16839 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
16842 return NDR_ERR_SUCCESS;
16845 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_AddFormInfo *r)
16849 TALLOC_CTX *_mem_save_info1_0;
16850 TALLOC_CTX *_mem_save_info2_0;
16851 level = ndr_pull_get_switch_value(ndr, r);
16852 if (ndr_flags & NDR_SCALARS) {
16853 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
16854 if (_level != level) {
16855 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
16857 NDR_CHECK(ndr_pull_union_align(ndr, 5));
16860 uint32_t _ptr_info1;
16861 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
16863 NDR_PULL_ALLOC(ndr, r->info1);
16870 uint32_t _ptr_info2;
16871 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
16873 NDR_PULL_ALLOC(ndr, r->info2);
16880 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
16883 if (ndr_flags & NDR_BUFFERS) {
16887 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
16888 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
16889 NDR_CHECK(ndr_pull_spoolss_AddFormInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
16890 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
16896 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
16897 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
16898 NDR_CHECK(ndr_pull_spoolss_AddFormInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
16899 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
16904 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
16907 return NDR_ERR_SUCCESS;
16910 _PUBLIC_ void ndr_print_spoolss_AddFormInfo(struct ndr_print *ndr, const char *name, const union spoolss_AddFormInfo *r)
16913 level = ndr_print_get_switch_value(ndr, r);
16914 ndr_print_union(ndr, name, level, "spoolss_AddFormInfo");
16917 ndr_print_ptr(ndr, "info1", r->info1);
16920 ndr_print_spoolss_AddFormInfo1(ndr, "info1", r->info1);
16926 ndr_print_ptr(ndr, "info2", r->info2);
16929 ndr_print_spoolss_AddFormInfo2(ndr, "info2", r->info2);
16935 ndr_print_bad_level(ndr, name, level);
16939 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo1 *r)
16941 if (ndr_flags & NDR_SCALARS) {
16942 NDR_CHECK(ndr_push_align(ndr, 5));
16944 uint32_t _flags_save_string = ndr->flags;
16945 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16946 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
16947 ndr->flags = _flags_save_string;
16949 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
16951 if (ndr_flags & NDR_BUFFERS) {
16953 uint32_t _flags_save_string = ndr->flags;
16954 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16955 if (r->port_name) {
16956 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->port_name));
16957 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
16959 ndr->flags = _flags_save_string;
16962 return NDR_ERR_SUCCESS;
16965 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo1 *r)
16967 uint32_t _ptr_port_name;
16968 TALLOC_CTX *_mem_save_port_name_0;
16969 if (ndr_flags & NDR_SCALARS) {
16970 NDR_CHECK(ndr_pull_align(ndr, 5));
16972 uint32_t _flags_save_string = ndr->flags;
16973 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16974 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
16975 if (_ptr_port_name) {
16976 NDR_PULL_ALLOC(ndr, r->port_name);
16977 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
16979 r->port_name = NULL;
16981 ndr->flags = _flags_save_string;
16983 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
16985 if (ndr_flags & NDR_BUFFERS) {
16987 uint32_t _flags_save_string = ndr->flags;
16988 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16989 if (r->port_name) {
16990 uint32_t _relative_save_offset;
16991 _relative_save_offset = ndr->offset;
16992 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
16993 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16994 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
16995 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
16996 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
16997 if (ndr->offset > ndr->relative_highest_offset) {
16998 ndr->relative_highest_offset = ndr->offset;
17000 ndr->offset = _relative_save_offset;
17002 ndr->flags = _flags_save_string;
17005 return NDR_ERR_SUCCESS;
17008 _PUBLIC_ void ndr_print_spoolss_PortInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo1 *r)
17010 ndr_print_struct(ndr, name, "spoolss_PortInfo1");
17012 ndr_print_ptr(ndr, "port_name", r->port_name);
17014 if (r->port_name) {
17015 ndr_print_string(ndr, "port_name", r->port_name);
17021 _PUBLIC_ size_t ndr_size_spoolss_PortInfo1(const struct spoolss_PortInfo1 *r, struct smb_iconv_convenience *ic, int flags)
17023 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfo1, ic);
17026 static enum ndr_err_code ndr_push_spoolss_PortType(struct ndr_push *ndr, int ndr_flags, uint32_t r)
17028 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
17029 return NDR_ERR_SUCCESS;
17032 static enum ndr_err_code ndr_pull_spoolss_PortType(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
17035 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
17037 return NDR_ERR_SUCCESS;
17040 _PUBLIC_ void ndr_print_spoolss_PortType(struct ndr_print *ndr, const char *name, uint32_t r)
17042 ndr_print_uint32(ndr, name, r);
17044 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_WRITE", SPOOLSS_PORT_TYPE_WRITE, r);
17045 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_READ", SPOOLSS_PORT_TYPE_READ, r);
17046 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_REDIRECTED", SPOOLSS_PORT_TYPE_REDIRECTED, r);
17047 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_NET_ATTACHED", SPOOLSS_PORT_TYPE_NET_ATTACHED, r);
17051 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo2 *r)
17053 if (ndr_flags & NDR_SCALARS) {
17054 NDR_CHECK(ndr_push_align(ndr, 5));
17056 uint32_t _flags_save_string = ndr->flags;
17057 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17058 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
17059 ndr->flags = _flags_save_string;
17062 uint32_t _flags_save_string = ndr->flags;
17063 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17064 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
17065 ndr->flags = _flags_save_string;
17068 uint32_t _flags_save_string = ndr->flags;
17069 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17070 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->description));
17071 ndr->flags = _flags_save_string;
17073 NDR_CHECK(ndr_push_spoolss_PortType(ndr, NDR_SCALARS, r->port_type));
17074 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
17075 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17077 if (ndr_flags & NDR_BUFFERS) {
17079 uint32_t _flags_save_string = ndr->flags;
17080 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17081 if (r->port_name) {
17082 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->port_name));
17083 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
17085 ndr->flags = _flags_save_string;
17088 uint32_t _flags_save_string = ndr->flags;
17089 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17090 if (r->monitor_name) {
17091 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
17092 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
17094 ndr->flags = _flags_save_string;
17097 uint32_t _flags_save_string = ndr->flags;
17098 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17099 if (r->description) {
17100 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->description));
17101 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->description));
17103 ndr->flags = _flags_save_string;
17106 return NDR_ERR_SUCCESS;
17109 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo2 *r)
17111 uint32_t _ptr_port_name;
17112 TALLOC_CTX *_mem_save_port_name_0;
17113 uint32_t _ptr_monitor_name;
17114 TALLOC_CTX *_mem_save_monitor_name_0;
17115 uint32_t _ptr_description;
17116 TALLOC_CTX *_mem_save_description_0;
17117 if (ndr_flags & NDR_SCALARS) {
17118 NDR_CHECK(ndr_pull_align(ndr, 5));
17120 uint32_t _flags_save_string = ndr->flags;
17121 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17122 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
17123 if (_ptr_port_name) {
17124 NDR_PULL_ALLOC(ndr, r->port_name);
17125 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
17127 r->port_name = NULL;
17129 ndr->flags = _flags_save_string;
17132 uint32_t _flags_save_string = ndr->flags;
17133 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17134 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
17135 if (_ptr_monitor_name) {
17136 NDR_PULL_ALLOC(ndr, r->monitor_name);
17137 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
17139 r->monitor_name = NULL;
17141 ndr->flags = _flags_save_string;
17144 uint32_t _flags_save_string = ndr->flags;
17145 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17146 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
17147 if (_ptr_description) {
17148 NDR_PULL_ALLOC(ndr, r->description);
17149 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->description, _ptr_description));
17151 r->description = NULL;
17153 ndr->flags = _flags_save_string;
17155 NDR_CHECK(ndr_pull_spoolss_PortType(ndr, NDR_SCALARS, &r->port_type));
17156 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
17157 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17159 if (ndr_flags & NDR_BUFFERS) {
17161 uint32_t _flags_save_string = ndr->flags;
17162 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17163 if (r->port_name) {
17164 uint32_t _relative_save_offset;
17165 _relative_save_offset = ndr->offset;
17166 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
17167 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17168 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
17169 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
17170 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
17171 if (ndr->offset > ndr->relative_highest_offset) {
17172 ndr->relative_highest_offset = ndr->offset;
17174 ndr->offset = _relative_save_offset;
17176 ndr->flags = _flags_save_string;
17179 uint32_t _flags_save_string = ndr->flags;
17180 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17181 if (r->monitor_name) {
17182 uint32_t _relative_save_offset;
17183 _relative_save_offset = ndr->offset;
17184 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
17185 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17186 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
17187 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
17188 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
17189 if (ndr->offset > ndr->relative_highest_offset) {
17190 ndr->relative_highest_offset = ndr->offset;
17192 ndr->offset = _relative_save_offset;
17194 ndr->flags = _flags_save_string;
17197 uint32_t _flags_save_string = ndr->flags;
17198 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17199 if (r->description) {
17200 uint32_t _relative_save_offset;
17201 _relative_save_offset = ndr->offset;
17202 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->description));
17203 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
17204 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
17205 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->description));
17206 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
17207 if (ndr->offset > ndr->relative_highest_offset) {
17208 ndr->relative_highest_offset = ndr->offset;
17210 ndr->offset = _relative_save_offset;
17212 ndr->flags = _flags_save_string;
17215 return NDR_ERR_SUCCESS;
17218 _PUBLIC_ void ndr_print_spoolss_PortInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo2 *r)
17220 ndr_print_struct(ndr, name, "spoolss_PortInfo2");
17222 ndr_print_ptr(ndr, "port_name", r->port_name);
17224 if (r->port_name) {
17225 ndr_print_string(ndr, "port_name", r->port_name);
17228 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
17230 if (r->monitor_name) {
17231 ndr_print_string(ndr, "monitor_name", r->monitor_name);
17234 ndr_print_ptr(ndr, "description", r->description);
17236 if (r->description) {
17237 ndr_print_string(ndr, "description", r->description);
17240 ndr_print_spoolss_PortType(ndr, "port_type", r->port_type);
17241 ndr_print_uint32(ndr, "reserved", r->reserved);
17245 _PUBLIC_ size_t ndr_size_spoolss_PortInfo2(const struct spoolss_PortInfo2 *r, struct smb_iconv_convenience *ic, int flags)
17247 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfo2, ic);
17250 static enum ndr_err_code ndr_push_spoolss_PortStatus(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortStatus r)
17252 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
17253 return NDR_ERR_SUCCESS;
17256 static enum ndr_err_code ndr_pull_spoolss_PortStatus(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortStatus *r)
17259 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
17261 return NDR_ERR_SUCCESS;
17264 _PUBLIC_ void ndr_print_spoolss_PortStatus(struct ndr_print *ndr, const char *name, enum spoolss_PortStatus r)
17266 const char *val = NULL;
17269 case PORT_STATUS_CLEAR: val = "PORT_STATUS_CLEAR"; break;
17270 case PORT_STATUS_OFFLINE: val = "PORT_STATUS_OFFLINE"; break;
17271 case PORT_STATUS_PAPER_JAM: val = "PORT_STATUS_PAPER_JAM"; break;
17272 case PORT_STATUS_PAPER_OUT: val = "PORT_STATUS_PAPER_OUT"; break;
17273 case PORT_STATUS_OUTPUT_BIN_FULL: val = "PORT_STATUS_OUTPUT_BIN_FULL"; break;
17274 case PORT_STATUS_PAPER_PROBLEM: val = "PORT_STATUS_PAPER_PROBLEM"; break;
17275 case PORT_STATUS_NO_TONER: val = "PORT_STATUS_NO_TONER"; break;
17276 case PORT_STATUS_DOOR_OPEN: val = "PORT_STATUS_DOOR_OPEN"; break;
17277 case PORT_STATUS_USER_INTERVENTION: val = "PORT_STATUS_USER_INTERVENTION"; break;
17278 case PORT_STATUS_OUT_OF_MEMORY: val = "PORT_STATUS_OUT_OF_MEMORY"; break;
17279 case PORT_STATUS_TONER_LOW: val = "PORT_STATUS_TONER_LOW"; break;
17280 case PORT_STATUS_WARMING_UP: val = "PORT_STATUS_WARMING_UP"; break;
17281 case PORT_STATUS_POWER_SAVE: val = "PORT_STATUS_POWER_SAVE"; break;
17283 ndr_print_enum(ndr, name, "ENUM", val, r);
17286 static enum ndr_err_code ndr_push_spoolss_PortSeverity(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortSeverity r)
17288 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
17289 return NDR_ERR_SUCCESS;
17292 static enum ndr_err_code ndr_pull_spoolss_PortSeverity(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortSeverity *r)
17295 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
17297 return NDR_ERR_SUCCESS;
17300 _PUBLIC_ void ndr_print_spoolss_PortSeverity(struct ndr_print *ndr, const char *name, enum spoolss_PortSeverity r)
17302 const char *val = NULL;
17305 case PORT_STATUS_TYPE_ERROR: val = "PORT_STATUS_TYPE_ERROR"; break;
17306 case PORT_STATUS_TYPE_WARNING: val = "PORT_STATUS_TYPE_WARNING"; break;
17307 case PORT_STATUS_TYPE_INFO: val = "PORT_STATUS_TYPE_INFO"; break;
17309 ndr_print_enum(ndr, name, "ENUM", val, r);
17312 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo3 *r)
17314 if (ndr_flags & NDR_SCALARS) {
17315 NDR_CHECK(ndr_push_align(ndr, 5));
17316 NDR_CHECK(ndr_push_spoolss_PortStatus(ndr, NDR_SCALARS, r->status));
17318 uint32_t _flags_save_string = ndr->flags;
17319 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17320 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->status_string));
17321 ndr->flags = _flags_save_string;
17323 NDR_CHECK(ndr_push_spoolss_PortSeverity(ndr, NDR_SCALARS, r->severity));
17324 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17326 if (ndr_flags & NDR_BUFFERS) {
17328 uint32_t _flags_save_string = ndr->flags;
17329 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17330 if (r->status_string) {
17331 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->status_string));
17332 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->status_string));
17334 ndr->flags = _flags_save_string;
17337 return NDR_ERR_SUCCESS;
17340 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo3 *r)
17342 uint32_t _ptr_status_string;
17343 TALLOC_CTX *_mem_save_status_string_0;
17344 if (ndr_flags & NDR_SCALARS) {
17345 NDR_CHECK(ndr_pull_align(ndr, 5));
17346 NDR_CHECK(ndr_pull_spoolss_PortStatus(ndr, NDR_SCALARS, &r->status));
17348 uint32_t _flags_save_string = ndr->flags;
17349 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17350 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_status_string));
17351 if (_ptr_status_string) {
17352 NDR_PULL_ALLOC(ndr, r->status_string);
17353 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->status_string, _ptr_status_string));
17355 r->status_string = NULL;
17357 ndr->flags = _flags_save_string;
17359 NDR_CHECK(ndr_pull_spoolss_PortSeverity(ndr, NDR_SCALARS, &r->severity));
17360 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17362 if (ndr_flags & NDR_BUFFERS) {
17364 uint32_t _flags_save_string = ndr->flags;
17365 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17366 if (r->status_string) {
17367 uint32_t _relative_save_offset;
17368 _relative_save_offset = ndr->offset;
17369 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->status_string));
17370 _mem_save_status_string_0 = NDR_PULL_GET_MEM_CTX(ndr);
17371 NDR_PULL_SET_MEM_CTX(ndr, r->status_string, 0);
17372 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->status_string));
17373 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_string_0, 0);
17374 if (ndr->offset > ndr->relative_highest_offset) {
17375 ndr->relative_highest_offset = ndr->offset;
17377 ndr->offset = _relative_save_offset;
17379 ndr->flags = _flags_save_string;
17382 return NDR_ERR_SUCCESS;
17385 _PUBLIC_ void ndr_print_spoolss_PortInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo3 *r)
17387 ndr_print_struct(ndr, name, "spoolss_PortInfo3");
17389 ndr_print_spoolss_PortStatus(ndr, "status", r->status);
17390 ndr_print_ptr(ndr, "status_string", r->status_string);
17392 if (r->status_string) {
17393 ndr_print_string(ndr, "status_string", r->status_string);
17396 ndr_print_spoolss_PortSeverity(ndr, "severity", r->severity);
17400 _PUBLIC_ size_t ndr_size_spoolss_PortInfo3(const struct spoolss_PortInfo3 *r, struct smb_iconv_convenience *ic, int flags)
17402 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfo3, ic);
17405 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfoFF(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfoFF *r)
17407 if (ndr_flags & NDR_SCALARS) {
17408 NDR_CHECK(ndr_push_align(ndr, 5));
17410 uint32_t _flags_save_string = ndr->flags;
17411 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17412 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
17413 ndr->flags = _flags_save_string;
17415 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->monitor_data));
17416 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17418 if (ndr_flags & NDR_BUFFERS) {
17420 uint32_t _flags_save_string = ndr->flags;
17421 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17422 if (r->port_name) {
17423 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->port_name));
17424 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
17426 ndr->flags = _flags_save_string;
17429 return NDR_ERR_SUCCESS;
17432 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfoFF(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfoFF *r)
17434 uint32_t _ptr_port_name;
17435 TALLOC_CTX *_mem_save_port_name_0;
17436 if (ndr_flags & NDR_SCALARS) {
17437 NDR_CHECK(ndr_pull_align(ndr, 5));
17439 uint32_t _flags_save_string = ndr->flags;
17440 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17441 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
17442 if (_ptr_port_name) {
17443 NDR_PULL_ALLOC(ndr, r->port_name);
17444 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
17446 r->port_name = NULL;
17448 ndr->flags = _flags_save_string;
17450 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->monitor_data));
17451 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17453 if (ndr_flags & NDR_BUFFERS) {
17455 uint32_t _flags_save_string = ndr->flags;
17456 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17457 if (r->port_name) {
17458 uint32_t _relative_save_offset;
17459 _relative_save_offset = ndr->offset;
17460 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
17461 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17462 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
17463 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
17464 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
17465 if (ndr->offset > ndr->relative_highest_offset) {
17466 ndr->relative_highest_offset = ndr->offset;
17468 ndr->offset = _relative_save_offset;
17470 ndr->flags = _flags_save_string;
17473 return NDR_ERR_SUCCESS;
17476 _PUBLIC_ void ndr_print_spoolss_PortInfoFF(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfoFF *r)
17478 ndr_print_struct(ndr, name, "spoolss_PortInfoFF");
17480 ndr_print_ptr(ndr, "port_name", r->port_name);
17482 if (r->port_name) {
17483 ndr_print_string(ndr, "port_name", r->port_name);
17486 ndr_print_DATA_BLOB(ndr, "monitor_data", r->monitor_data);
17490 _PUBLIC_ size_t ndr_size_spoolss_PortInfoFF(const struct spoolss_PortInfoFF *r, struct smb_iconv_convenience *ic, int flags)
17492 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfoFF, ic);
17495 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PortInfo *r)
17497 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
17498 if (ndr_flags & NDR_SCALARS) {
17499 int level = ndr_push_get_switch_value(ndr, r);
17500 NDR_CHECK(ndr_push_union_align(ndr, 5));
17503 NDR_CHECK(ndr_push_align(ndr, 5));
17504 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
17505 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr, NDR_SCALARS, &r->info1));
17509 NDR_CHECK(ndr_push_align(ndr, 5));
17510 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
17511 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr, NDR_SCALARS, &r->info2));
17515 NDR_CHECK(ndr_push_align(ndr, 5));
17516 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
17517 NDR_CHECK(ndr_push_spoolss_PortInfo3(ndr, NDR_SCALARS, &r->info3));
17521 NDR_CHECK(ndr_push_align(ndr, 5));
17522 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
17523 NDR_CHECK(ndr_push_spoolss_PortInfoFF(ndr, NDR_SCALARS, &r->infoFF));
17531 if (ndr_flags & NDR_BUFFERS) {
17532 int level = ndr_push_get_switch_value(ndr, r);
17533 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
17536 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr, NDR_BUFFERS, &r->info1));
17540 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr, NDR_BUFFERS, &r->info2));
17544 NDR_CHECK(ndr_push_spoolss_PortInfo3(ndr, NDR_BUFFERS, &r->info3));
17548 NDR_CHECK(ndr_push_spoolss_PortInfoFF(ndr, NDR_BUFFERS, &r->infoFF));
17556 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
17557 return NDR_ERR_SUCCESS;
17560 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PortInfo *r)
17562 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
17564 level = ndr_pull_get_switch_value(ndr, r);
17565 if (ndr_flags & NDR_SCALARS) {
17566 NDR_CHECK(ndr_pull_union_align(ndr, 5));
17569 NDR_CHECK(ndr_pull_align(ndr, 5));
17570 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
17571 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr, NDR_SCALARS, &r->info1));
17575 NDR_CHECK(ndr_pull_align(ndr, 5));
17576 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
17577 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr, NDR_SCALARS, &r->info2));
17581 NDR_CHECK(ndr_pull_align(ndr, 5));
17582 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
17583 NDR_CHECK(ndr_pull_spoolss_PortInfo3(ndr, NDR_SCALARS, &r->info3));
17587 NDR_CHECK(ndr_pull_align(ndr, 5));
17588 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
17589 NDR_CHECK(ndr_pull_spoolss_PortInfoFF(ndr, NDR_SCALARS, &r->infoFF));
17597 if (ndr_flags & NDR_BUFFERS) {
17598 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
17601 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr, NDR_BUFFERS, &r->info1));
17605 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr, NDR_BUFFERS, &r->info2));
17609 NDR_CHECK(ndr_pull_spoolss_PortInfo3(ndr, NDR_BUFFERS, &r->info3));
17613 NDR_CHECK(ndr_pull_spoolss_PortInfoFF(ndr, NDR_BUFFERS, &r->infoFF));
17621 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
17622 return NDR_ERR_SUCCESS;
17625 _PUBLIC_ void ndr_print_spoolss_PortInfo(struct ndr_print *ndr, const char *name, const union spoolss_PortInfo *r)
17628 level = ndr_print_get_switch_value(ndr, r);
17629 ndr_print_union(ndr, name, level, "spoolss_PortInfo");
17632 ndr_print_spoolss_PortInfo1(ndr, "info1", &r->info1);
17636 ndr_print_spoolss_PortInfo2(ndr, "info2", &r->info2);
17640 ndr_print_spoolss_PortInfo3(ndr, "info3", &r->info3);
17644 ndr_print_spoolss_PortInfoFF(ndr, "infoFF", &r->infoFF);
17653 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorInfo1 *r)
17655 if (ndr_flags & NDR_SCALARS) {
17656 NDR_CHECK(ndr_push_align(ndr, 5));
17658 uint32_t _flags_save_string = ndr->flags;
17659 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17660 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
17661 ndr->flags = _flags_save_string;
17663 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17665 if (ndr_flags & NDR_BUFFERS) {
17667 uint32_t _flags_save_string = ndr->flags;
17668 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17669 if (r->monitor_name) {
17670 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
17671 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
17673 ndr->flags = _flags_save_string;
17676 return NDR_ERR_SUCCESS;
17679 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorInfo1 *r)
17681 uint32_t _ptr_monitor_name;
17682 TALLOC_CTX *_mem_save_monitor_name_0;
17683 if (ndr_flags & NDR_SCALARS) {
17684 NDR_CHECK(ndr_pull_align(ndr, 5));
17686 uint32_t _flags_save_string = ndr->flags;
17687 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17688 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
17689 if (_ptr_monitor_name) {
17690 NDR_PULL_ALLOC(ndr, r->monitor_name);
17691 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
17693 r->monitor_name = NULL;
17695 ndr->flags = _flags_save_string;
17697 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17699 if (ndr_flags & NDR_BUFFERS) {
17701 uint32_t _flags_save_string = ndr->flags;
17702 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17703 if (r->monitor_name) {
17704 uint32_t _relative_save_offset;
17705 _relative_save_offset = ndr->offset;
17706 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
17707 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17708 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
17709 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
17710 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
17711 if (ndr->offset > ndr->relative_highest_offset) {
17712 ndr->relative_highest_offset = ndr->offset;
17714 ndr->offset = _relative_save_offset;
17716 ndr->flags = _flags_save_string;
17719 return NDR_ERR_SUCCESS;
17722 _PUBLIC_ void ndr_print_spoolss_MonitorInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorInfo1 *r)
17724 ndr_print_struct(ndr, name, "spoolss_MonitorInfo1");
17726 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
17728 if (r->monitor_name) {
17729 ndr_print_string(ndr, "monitor_name", r->monitor_name);
17735 _PUBLIC_ size_t ndr_size_spoolss_MonitorInfo1(const struct spoolss_MonitorInfo1 *r, struct smb_iconv_convenience *ic, int flags)
17737 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_MonitorInfo1, ic);
17740 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorInfo2 *r)
17742 if (ndr_flags & NDR_SCALARS) {
17743 NDR_CHECK(ndr_push_align(ndr, 5));
17745 uint32_t _flags_save_string = ndr->flags;
17746 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17747 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
17748 ndr->flags = _flags_save_string;
17751 uint32_t _flags_save_string = ndr->flags;
17752 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17753 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->environment));
17754 ndr->flags = _flags_save_string;
17757 uint32_t _flags_save_string = ndr->flags;
17758 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17759 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dll_name));
17760 ndr->flags = _flags_save_string;
17762 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17764 if (ndr_flags & NDR_BUFFERS) {
17766 uint32_t _flags_save_string = ndr->flags;
17767 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17768 if (r->monitor_name) {
17769 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
17770 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
17772 ndr->flags = _flags_save_string;
17775 uint32_t _flags_save_string = ndr->flags;
17776 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17777 if (r->environment) {
17778 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->environment));
17779 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->environment));
17781 ndr->flags = _flags_save_string;
17784 uint32_t _flags_save_string = ndr->flags;
17785 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17787 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dll_name));
17788 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dll_name));
17790 ndr->flags = _flags_save_string;
17793 return NDR_ERR_SUCCESS;
17796 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorInfo2 *r)
17798 uint32_t _ptr_monitor_name;
17799 TALLOC_CTX *_mem_save_monitor_name_0;
17800 uint32_t _ptr_environment;
17801 TALLOC_CTX *_mem_save_environment_0;
17802 uint32_t _ptr_dll_name;
17803 TALLOC_CTX *_mem_save_dll_name_0;
17804 if (ndr_flags & NDR_SCALARS) {
17805 NDR_CHECK(ndr_pull_align(ndr, 5));
17807 uint32_t _flags_save_string = ndr->flags;
17808 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17809 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
17810 if (_ptr_monitor_name) {
17811 NDR_PULL_ALLOC(ndr, r->monitor_name);
17812 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
17814 r->monitor_name = NULL;
17816 ndr->flags = _flags_save_string;
17819 uint32_t _flags_save_string = ndr->flags;
17820 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17821 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
17822 if (_ptr_environment) {
17823 NDR_PULL_ALLOC(ndr, r->environment);
17824 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->environment, _ptr_environment));
17826 r->environment = NULL;
17828 ndr->flags = _flags_save_string;
17831 uint32_t _flags_save_string = ndr->flags;
17832 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17833 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dll_name));
17834 if (_ptr_dll_name) {
17835 NDR_PULL_ALLOC(ndr, r->dll_name);
17836 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dll_name, _ptr_dll_name));
17838 r->dll_name = NULL;
17840 ndr->flags = _flags_save_string;
17842 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17844 if (ndr_flags & NDR_BUFFERS) {
17846 uint32_t _flags_save_string = ndr->flags;
17847 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17848 if (r->monitor_name) {
17849 uint32_t _relative_save_offset;
17850 _relative_save_offset = ndr->offset;
17851 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
17852 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17853 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
17854 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
17855 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
17856 if (ndr->offset > ndr->relative_highest_offset) {
17857 ndr->relative_highest_offset = ndr->offset;
17859 ndr->offset = _relative_save_offset;
17861 ndr->flags = _flags_save_string;
17864 uint32_t _flags_save_string = ndr->flags;
17865 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17866 if (r->environment) {
17867 uint32_t _relative_save_offset;
17868 _relative_save_offset = ndr->offset;
17869 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->environment));
17870 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
17871 NDR_PULL_SET_MEM_CTX(ndr, r->environment, 0);
17872 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->environment));
17873 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
17874 if (ndr->offset > ndr->relative_highest_offset) {
17875 ndr->relative_highest_offset = ndr->offset;
17877 ndr->offset = _relative_save_offset;
17879 ndr->flags = _flags_save_string;
17882 uint32_t _flags_save_string = ndr->flags;
17883 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17885 uint32_t _relative_save_offset;
17886 _relative_save_offset = ndr->offset;
17887 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dll_name));
17888 _mem_save_dll_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17889 NDR_PULL_SET_MEM_CTX(ndr, r->dll_name, 0);
17890 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->dll_name));
17891 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dll_name_0, 0);
17892 if (ndr->offset > ndr->relative_highest_offset) {
17893 ndr->relative_highest_offset = ndr->offset;
17895 ndr->offset = _relative_save_offset;
17897 ndr->flags = _flags_save_string;
17900 return NDR_ERR_SUCCESS;
17903 _PUBLIC_ void ndr_print_spoolss_MonitorInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorInfo2 *r)
17905 ndr_print_struct(ndr, name, "spoolss_MonitorInfo2");
17907 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
17909 if (r->monitor_name) {
17910 ndr_print_string(ndr, "monitor_name", r->monitor_name);
17913 ndr_print_ptr(ndr, "environment", r->environment);
17915 if (r->environment) {
17916 ndr_print_string(ndr, "environment", r->environment);
17919 ndr_print_ptr(ndr, "dll_name", r->dll_name);
17922 ndr_print_string(ndr, "dll_name", r->dll_name);
17928 _PUBLIC_ size_t ndr_size_spoolss_MonitorInfo2(const struct spoolss_MonitorInfo2 *r, struct smb_iconv_convenience *ic, int flags)
17930 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_MonitorInfo2, ic);
17933 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_MonitorInfo *r)
17935 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
17936 if (ndr_flags & NDR_SCALARS) {
17937 int level = ndr_push_get_switch_value(ndr, r);
17938 NDR_CHECK(ndr_push_union_align(ndr, 5));
17941 NDR_CHECK(ndr_push_align(ndr, 5));
17942 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
17943 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr, NDR_SCALARS, &r->info1));
17947 NDR_CHECK(ndr_push_align(ndr, 5));
17948 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
17949 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr, NDR_SCALARS, &r->info2));
17957 if (ndr_flags & NDR_BUFFERS) {
17958 int level = ndr_push_get_switch_value(ndr, r);
17959 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
17962 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr, NDR_BUFFERS, &r->info1));
17966 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr, NDR_BUFFERS, &r->info2));
17974 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
17975 return NDR_ERR_SUCCESS;
17978 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_MonitorInfo *r)
17980 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
17982 level = ndr_pull_get_switch_value(ndr, r);
17983 if (ndr_flags & NDR_SCALARS) {
17984 NDR_CHECK(ndr_pull_union_align(ndr, 5));
17987 NDR_CHECK(ndr_pull_align(ndr, 5));
17988 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
17989 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr, NDR_SCALARS, &r->info1));
17993 NDR_CHECK(ndr_pull_align(ndr, 5));
17994 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
17995 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr, NDR_SCALARS, &r->info2));
18003 if (ndr_flags & NDR_BUFFERS) {
18004 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
18007 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr, NDR_BUFFERS, &r->info1));
18011 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr, NDR_BUFFERS, &r->info2));
18019 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
18020 return NDR_ERR_SUCCESS;
18023 _PUBLIC_ void ndr_print_spoolss_MonitorInfo(struct ndr_print *ndr, const char *name, const union spoolss_MonitorInfo *r)
18026 level = ndr_print_get_switch_value(ndr, r);
18027 ndr_print_union(ndr, name, level, "spoolss_MonitorInfo");
18030 ndr_print_spoolss_MonitorInfo1(ndr, "info1", &r->info1);
18034 ndr_print_spoolss_MonitorInfo2(ndr, "info2", &r->info2);
18043 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcDataTypesInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcDataTypesInfo1 *r)
18045 if (ndr_flags & NDR_SCALARS) {
18046 NDR_CHECK(ndr_push_align(ndr, 5));
18048 uint32_t _flags_save_string = ndr->flags;
18049 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18050 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->name_array));
18051 ndr->flags = _flags_save_string;
18053 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18055 if (ndr_flags & NDR_BUFFERS) {
18057 uint32_t _flags_save_string = ndr->flags;
18058 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18059 if (r->name_array) {
18060 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->name_array));
18061 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->name_array));
18063 ndr->flags = _flags_save_string;
18066 return NDR_ERR_SUCCESS;
18069 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcDataTypesInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcDataTypesInfo1 *r)
18071 uint32_t _ptr_name_array;
18072 TALLOC_CTX *_mem_save_name_array_0;
18073 if (ndr_flags & NDR_SCALARS) {
18074 NDR_CHECK(ndr_pull_align(ndr, 5));
18076 uint32_t _flags_save_string = ndr->flags;
18077 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18078 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name_array));
18079 if (_ptr_name_array) {
18080 NDR_PULL_ALLOC(ndr, r->name_array);
18081 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->name_array, _ptr_name_array));
18083 r->name_array = NULL;
18085 ndr->flags = _flags_save_string;
18087 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
18089 if (ndr_flags & NDR_BUFFERS) {
18091 uint32_t _flags_save_string = ndr->flags;
18092 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18093 if (r->name_array) {
18094 uint32_t _relative_save_offset;
18095 _relative_save_offset = ndr->offset;
18096 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->name_array));
18097 _mem_save_name_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
18098 NDR_PULL_SET_MEM_CTX(ndr, r->name_array, 0);
18099 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->name_array));
18100 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_array_0, 0);
18101 if (ndr->offset > ndr->relative_highest_offset) {
18102 ndr->relative_highest_offset = ndr->offset;
18104 ndr->offset = _relative_save_offset;
18106 ndr->flags = _flags_save_string;
18109 return NDR_ERR_SUCCESS;
18112 _PUBLIC_ void ndr_print_spoolss_PrintProcDataTypesInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcDataTypesInfo1 *r)
18114 ndr_print_struct(ndr, name, "spoolss_PrintProcDataTypesInfo1");
18116 ndr_print_ptr(ndr, "name_array", r->name_array);
18118 if (r->name_array) {
18119 ndr_print_string(ndr, "name_array", r->name_array);
18125 _PUBLIC_ size_t ndr_size_spoolss_PrintProcDataTypesInfo1(const struct spoolss_PrintProcDataTypesInfo1 *r, struct smb_iconv_convenience *ic, int flags)
18127 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcDataTypesInfo1, ic);
18130 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcDataTypesInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcDataTypesInfo *r)
18132 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
18133 if (ndr_flags & NDR_SCALARS) {
18134 int level = ndr_push_get_switch_value(ndr, r);
18135 NDR_CHECK(ndr_push_union_align(ndr, 5));
18138 NDR_CHECK(ndr_push_align(ndr, 5));
18139 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
18140 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo1(ndr, NDR_SCALARS, &r->info1));
18148 if (ndr_flags & NDR_BUFFERS) {
18149 int level = ndr_push_get_switch_value(ndr, r);
18150 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
18153 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo1(ndr, NDR_BUFFERS, &r->info1));
18161 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
18162 return NDR_ERR_SUCCESS;
18165 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcDataTypesInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcDataTypesInfo *r)
18167 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
18169 level = ndr_pull_get_switch_value(ndr, r);
18170 if (ndr_flags & NDR_SCALARS) {
18171 NDR_CHECK(ndr_pull_union_align(ndr, 5));
18174 NDR_CHECK(ndr_pull_align(ndr, 5));
18175 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
18176 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo1(ndr, NDR_SCALARS, &r->info1));
18184 if (ndr_flags & NDR_BUFFERS) {
18185 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
18188 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo1(ndr, NDR_BUFFERS, &r->info1));
18196 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
18197 return NDR_ERR_SUCCESS;
18200 _PUBLIC_ void ndr_print_spoolss_PrintProcDataTypesInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcDataTypesInfo *r)
18203 level = ndr_print_get_switch_value(ndr, r);
18204 ndr_print_union(ndr, name, level, "spoolss_PrintProcDataTypesInfo");
18207 ndr_print_spoolss_PrintProcDataTypesInfo1(ndr, "info1", &r->info1);
18216 static enum ndr_err_code ndr_push_spoolss_PrinterChangeFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
18218 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
18219 return NDR_ERR_SUCCESS;
18222 static enum ndr_err_code ndr_pull_spoolss_PrinterChangeFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
18225 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
18227 return NDR_ERR_SUCCESS;
18230 _PUBLIC_ void ndr_print_spoolss_PrinterChangeFlags(struct ndr_print *ndr, const char *name, uint32_t r)
18232 ndr_print_uint32(ndr, name, r);
18234 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER", PRINTER_CHANGE_ADD_PRINTER, r);
18235 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER", PRINTER_CHANGE_SET_PRINTER, r);
18236 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER", PRINTER_CHANGE_DELETE_PRINTER, r);
18237 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_FAILED_CONNECTION_PRINTER", PRINTER_CHANGE_FAILED_CONNECTION_PRINTER, r);
18238 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_JOB", PRINTER_CHANGE_ADD_JOB, r);
18239 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_JOB", PRINTER_CHANGE_SET_JOB, r);
18240 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_JOB", PRINTER_CHANGE_DELETE_JOB, r);
18241 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_WRITE_JOB", PRINTER_CHANGE_WRITE_JOB, r);
18242 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_FORM", PRINTER_CHANGE_ADD_FORM, r);
18243 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_FORM", PRINTER_CHANGE_SET_FORM, r);
18244 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_FORM", PRINTER_CHANGE_DELETE_FORM, r);
18245 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PORT", PRINTER_CHANGE_ADD_PORT, r);
18246 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_CONFIGURE_PORT", PRINTER_CHANGE_CONFIGURE_PORT, r);
18247 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PORT", PRINTER_CHANGE_DELETE_PORT, r);
18248 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINT_PROCESSOR", PRINTER_CHANGE_ADD_PRINT_PROCESSOR, r);
18249 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINT_PROCESSOR", PRINTER_CHANGE_DELETE_PRINT_PROCESSOR, r);
18250 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SERVER", PRINTER_CHANGE_SERVER, r);
18251 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER_DRIVER", PRINTER_CHANGE_ADD_PRINTER_DRIVER, r);
18252 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER_DRIVER", PRINTER_CHANGE_SET_PRINTER_DRIVER, r);
18253 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER_DRIVER", PRINTER_CHANGE_DELETE_PRINTER_DRIVER, r);
18254 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_TIMEOUT", PRINTER_CHANGE_TIMEOUT, r);
18258 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobNotifyField(struct ndr_push *ndr, int ndr_flags, enum spoolss_JobNotifyField r)
18260 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
18261 return NDR_ERR_SUCCESS;
18264 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobNotifyField(struct ndr_pull *ndr, int ndr_flags, enum spoolss_JobNotifyField *r)
18267 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
18269 return NDR_ERR_SUCCESS;
18272 _PUBLIC_ void ndr_print_spoolss_JobNotifyField(struct ndr_print *ndr, const char *name, enum spoolss_JobNotifyField r)
18274 const char *val = NULL;
18277 case JOB_NOTIFY_FIELD_PRINTER_NAME: val = "JOB_NOTIFY_FIELD_PRINTER_NAME"; break;
18278 case JOB_NOTIFY_FIELD_MACHINE_NAME: val = "JOB_NOTIFY_FIELD_MACHINE_NAME"; break;
18279 case JOB_NOTIFY_FIELD_PORT_NAME: val = "JOB_NOTIFY_FIELD_PORT_NAME"; break;
18280 case JOB_NOTIFY_FIELD_USER_NAME: val = "JOB_NOTIFY_FIELD_USER_NAME"; break;
18281 case JOB_NOTIFY_FIELD_NOTIFY_NAME: val = "JOB_NOTIFY_FIELD_NOTIFY_NAME"; break;
18282 case JOB_NOTIFY_FIELD_DATATYPE: val = "JOB_NOTIFY_FIELD_DATATYPE"; break;
18283 case JOB_NOTIFY_FIELD_PRINT_PROCESSOR: val = "JOB_NOTIFY_FIELD_PRINT_PROCESSOR"; break;
18284 case JOB_NOTIFY_FIELD_PARAMETERS: val = "JOB_NOTIFY_FIELD_PARAMETERS"; break;
18285 case JOB_NOTIFY_FIELD_DRIVER_NAME: val = "JOB_NOTIFY_FIELD_DRIVER_NAME"; break;
18286 case JOB_NOTIFY_FIELD_DEVMODE: val = "JOB_NOTIFY_FIELD_DEVMODE"; break;
18287 case JOB_NOTIFY_FIELD_STATUS: val = "JOB_NOTIFY_FIELD_STATUS"; break;
18288 case JOB_NOTIFY_FIELD_STATUS_STRING: val = "JOB_NOTIFY_FIELD_STATUS_STRING"; break;
18289 case JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR: val = "JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR"; break;
18290 case JOB_NOTIFY_FIELD_DOCUMENT: val = "JOB_NOTIFY_FIELD_DOCUMENT"; break;
18291 case JOB_NOTIFY_FIELD_PRIORITY: val = "JOB_NOTIFY_FIELD_PRIORITY"; break;
18292 case JOB_NOTIFY_FIELD_POSITION: val = "JOB_NOTIFY_FIELD_POSITION"; break;
18293 case JOB_NOTIFY_FIELD_SUBMITTED: val = "JOB_NOTIFY_FIELD_SUBMITTED"; break;
18294 case JOB_NOTIFY_FIELD_START_TIME: val = "JOB_NOTIFY_FIELD_START_TIME"; break;
18295 case JOB_NOTIFY_FIELD_UNTIL_TIME: val = "JOB_NOTIFY_FIELD_UNTIL_TIME"; break;
18296 case JOB_NOTIFY_FIELD_TIME: val = "JOB_NOTIFY_FIELD_TIME"; break;
18297 case JOB_NOTIFY_FIELD_TOTAL_PAGES: val = "JOB_NOTIFY_FIELD_TOTAL_PAGES"; break;
18298 case JOB_NOTIFY_FIELD_PAGES_PRINTED: val = "JOB_NOTIFY_FIELD_PAGES_PRINTED"; break;
18299 case JOB_NOTIFY_FIELD_TOTAL_BYTES: val = "JOB_NOTIFY_FIELD_TOTAL_BYTES"; break;
18300 case JOB_NOTIFY_FIELD_BYTES_PRINTED: val = "JOB_NOTIFY_FIELD_BYTES_PRINTED"; break;
18302 ndr_print_enum(ndr, name, "ENUM", val, r);
18305 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintNotifyField(struct ndr_push *ndr, int ndr_flags, enum spoolss_PrintNotifyField r)
18307 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
18308 return NDR_ERR_SUCCESS;
18311 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintNotifyField(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PrintNotifyField *r)
18314 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
18316 return NDR_ERR_SUCCESS;
18319 _PUBLIC_ void ndr_print_spoolss_PrintNotifyField(struct ndr_print *ndr, const char *name, enum spoolss_PrintNotifyField r)
18321 const char *val = NULL;
18324 case PRINTER_NOTIFY_FIELD_SERVER_NAME: val = "PRINTER_NOTIFY_FIELD_SERVER_NAME"; break;
18325 case PRINTER_NOTIFY_FIELD_PRINTER_NAME: val = "PRINTER_NOTIFY_FIELD_PRINTER_NAME"; break;
18326 case PRINTER_NOTIFY_FIELD_SHARE_NAME: val = "PRINTER_NOTIFY_FIELD_SHARE_NAME"; break;
18327 case PRINTER_NOTIFY_FIELD_PORT_NAME: val = "PRINTER_NOTIFY_FIELD_PORT_NAME"; break;
18328 case PRINTER_NOTIFY_FIELD_DRIVER_NAME: val = "PRINTER_NOTIFY_FIELD_DRIVER_NAME"; break;
18329 case PRINTER_NOTIFY_FIELD_COMMENT: val = "PRINTER_NOTIFY_FIELD_COMMENT"; break;
18330 case PRINTER_NOTIFY_FIELD_LOCATION: val = "PRINTER_NOTIFY_FIELD_LOCATION"; break;
18331 case PRINTER_NOTIFY_FIELD_DEVMODE: val = "PRINTER_NOTIFY_FIELD_DEVMODE"; break;
18332 case PRINTER_NOTIFY_FIELD_SEPFILE: val = "PRINTER_NOTIFY_FIELD_SEPFILE"; break;
18333 case PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR: val = "PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR"; break;
18334 case PRINTER_NOTIFY_FIELD_PARAMETERS: val = "PRINTER_NOTIFY_FIELD_PARAMETERS"; break;
18335 case PRINTER_NOTIFY_FIELD_DATATYPE: val = "PRINTER_NOTIFY_FIELD_DATATYPE"; break;
18336 case PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR: val = "PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR"; break;
18337 case PRINTER_NOTIFY_FIELD_ATTRIBUTES: val = "PRINTER_NOTIFY_FIELD_ATTRIBUTES"; break;
18338 case PRINTER_NOTIFY_FIELD_PRIORITY: val = "PRINTER_NOTIFY_FIELD_PRIORITY"; break;
18339 case PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY: val = "PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY"; break;
18340 case PRINTER_NOTIFY_FIELD_START_TIME: val = "PRINTER_NOTIFY_FIELD_START_TIME"; break;
18341 case PRINTER_NOTIFY_FIELD_UNTIL_TIME: val = "PRINTER_NOTIFY_FIELD_UNTIL_TIME"; break;
18342 case PRINTER_NOTIFY_FIELD_STATUS: val = "PRINTER_NOTIFY_FIELD_STATUS"; break;
18343 case PRINTER_NOTIFY_FIELD_STATUS_STRING: val = "PRINTER_NOTIFY_FIELD_STATUS_STRING"; break;
18344 case PRINTER_NOTIFY_FIELD_CJOBS: val = "PRINTER_NOTIFY_FIELD_CJOBS"; break;
18345 case PRINTER_NOTIFY_FIELD_AVERAGE_PPM: val = "PRINTER_NOTIFY_FIELD_AVERAGE_PPM"; break;
18346 case PRINTER_NOTIFY_FIELD_TOTAL_PAGES: val = "PRINTER_NOTIFY_FIELD_TOTAL_PAGES"; break;
18347 case PRINTER_NOTIFY_FIELD_PAGES_PRINTED: val = "PRINTER_NOTIFY_FIELD_PAGES_PRINTED"; break;
18348 case PRINTER_NOTIFY_FIELD_TOTAL_BYTES: val = "PRINTER_NOTIFY_FIELD_TOTAL_BYTES"; break;
18349 case PRINTER_NOTIFY_FIELD_BYTES_PRINTED: val = "PRINTER_NOTIFY_FIELD_BYTES_PRINTED"; break;
18350 case PRINTER_NOTIFY_FIELD_OBJECT_GUID: val = "PRINTER_NOTIFY_FIELD_OBJECT_GUID"; break;
18351 case PRINTER_NOTIFY_FIELD_FRIENDLY_NAME: val = "PRINTER_NOTIFY_FIELD_FRIENDLY_NAME"; break;
18353 ndr_print_enum(ndr, name, "ENUM", val, r);
18356 static enum ndr_err_code ndr_push_spoolss_NotifyType(struct ndr_push *ndr, int ndr_flags, enum spoolss_NotifyType r)
18358 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
18359 return NDR_ERR_SUCCESS;
18362 static enum ndr_err_code ndr_pull_spoolss_NotifyType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_NotifyType *r)
18365 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
18367 return NDR_ERR_SUCCESS;
18370 _PUBLIC_ void ndr_print_spoolss_NotifyType(struct ndr_print *ndr, const char *name, enum spoolss_NotifyType r)
18372 const char *val = NULL;
18375 case PRINTER_NOTIFY_TYPE: val = "PRINTER_NOTIFY_TYPE"; break;
18376 case JOB_NOTIFY_TYPE: val = "JOB_NOTIFY_TYPE"; break;
18378 ndr_print_enum(ndr, name, "ENUM", val, r);
18381 static enum ndr_err_code ndr_push_spoolss_Field(struct ndr_push *ndr, int ndr_flags, const union spoolss_Field *r)
18383 if (ndr_flags & NDR_SCALARS) {
18384 int level = ndr_push_get_switch_value(ndr, r);
18385 NDR_CHECK(ndr_push_union_align(ndr, 2));
18387 case PRINTER_NOTIFY_TYPE: {
18388 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->field));
18391 case JOB_NOTIFY_TYPE: {
18392 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->field));
18396 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->field));
18401 if (ndr_flags & NDR_BUFFERS) {
18402 int level = ndr_push_get_switch_value(ndr, r);
18404 case PRINTER_NOTIFY_TYPE:
18407 case JOB_NOTIFY_TYPE:
18415 return NDR_ERR_SUCCESS;
18418 static enum ndr_err_code ndr_pull_spoolss_Field(struct ndr_pull *ndr, int ndr_flags, union spoolss_Field *r)
18421 level = ndr_pull_get_switch_value(ndr, r);
18422 if (ndr_flags & NDR_SCALARS) {
18423 NDR_CHECK(ndr_pull_union_align(ndr, 2));
18425 case PRINTER_NOTIFY_TYPE: {
18426 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->field));
18429 case JOB_NOTIFY_TYPE: {
18430 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->field));
18434 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->field));
18439 if (ndr_flags & NDR_BUFFERS) {
18441 case PRINTER_NOTIFY_TYPE:
18444 case JOB_NOTIFY_TYPE:
18452 return NDR_ERR_SUCCESS;
18455 static enum ndr_err_code ndr_push_spoolss_NotifyOptionType(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyOptionType *r)
18457 uint32_t cntr_fields_1;
18458 if (ndr_flags & NDR_SCALARS) {
18459 NDR_CHECK(ndr_push_align(ndr, 5));
18460 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr, NDR_SCALARS, r->type));
18461 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->u1));
18462 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u2));
18463 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u3));
18464 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
18465 NDR_CHECK(ndr_push_unique_ptr(ndr, r->fields));
18466 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18468 if (ndr_flags & NDR_BUFFERS) {
18470 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
18471 for (cntr_fields_1 = 0; cntr_fields_1 < r->count; cntr_fields_1++) {
18472 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->fields[cntr_fields_1], r->type));
18473 NDR_CHECK(ndr_push_spoolss_Field(ndr, NDR_SCALARS, &r->fields[cntr_fields_1]));
18477 return NDR_ERR_SUCCESS;
18480 static enum ndr_err_code ndr_pull_spoolss_NotifyOptionType(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyOptionType *r)
18482 uint32_t _ptr_fields;
18483 uint32_t cntr_fields_1;
18484 TALLOC_CTX *_mem_save_fields_0;
18485 TALLOC_CTX *_mem_save_fields_1;
18486 if (ndr_flags & NDR_SCALARS) {
18487 NDR_CHECK(ndr_pull_align(ndr, 5));
18488 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr, NDR_SCALARS, &r->type));
18489 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->u1));
18490 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u2));
18491 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u3));
18492 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
18493 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_fields));
18495 NDR_PULL_ALLOC(ndr, r->fields);
18499 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
18501 if (ndr_flags & NDR_BUFFERS) {
18503 _mem_save_fields_0 = NDR_PULL_GET_MEM_CTX(ndr);
18504 NDR_PULL_SET_MEM_CTX(ndr, r->fields, 0);
18505 NDR_CHECK(ndr_pull_array_size(ndr, &r->fields));
18506 NDR_PULL_ALLOC_N(ndr, r->fields, ndr_get_array_size(ndr, &r->fields));
18507 _mem_save_fields_1 = NDR_PULL_GET_MEM_CTX(ndr);
18508 NDR_PULL_SET_MEM_CTX(ndr, r->fields, 0);
18509 for (cntr_fields_1 = 0; cntr_fields_1 < r->count; cntr_fields_1++) {
18510 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->fields[cntr_fields_1], r->type));
18511 NDR_CHECK(ndr_pull_spoolss_Field(ndr, NDR_SCALARS, &r->fields[cntr_fields_1]));
18513 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fields_1, 0);
18514 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fields_0, 0);
18517 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->fields, r->count));
18520 return NDR_ERR_SUCCESS;
18523 _PUBLIC_ void ndr_print_spoolss_NotifyOptionType(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyOptionType *r)
18525 uint32_t cntr_fields_1;
18526 ndr_print_struct(ndr, name, "spoolss_NotifyOptionType");
18528 ndr_print_spoolss_NotifyType(ndr, "type", r->type);
18529 ndr_print_uint16(ndr, "u1", r->u1);
18530 ndr_print_uint32(ndr, "u2", r->u2);
18531 ndr_print_uint32(ndr, "u3", r->u3);
18532 ndr_print_uint32(ndr, "count", r->count);
18533 ndr_print_ptr(ndr, "fields", r->fields);
18536 ndr->print(ndr, "%s: ARRAY(%d)", "fields", (int)r->count);
18538 for (cntr_fields_1=0;cntr_fields_1<r->count;cntr_fields_1++) {
18540 if (asprintf(&idx_1, "[%d]", cntr_fields_1) != -1) {
18541 ndr_print_set_switch_value(ndr, &r->fields[cntr_fields_1], r->type);
18542 ndr_print_spoolss_Field(ndr, "fields", &r->fields[cntr_fields_1]);
18552 static enum ndr_err_code ndr_push_spoolssNotifyOptionFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
18554 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
18555 return NDR_ERR_SUCCESS;
18558 static enum ndr_err_code ndr_pull_spoolssNotifyOptionFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
18561 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
18563 return NDR_ERR_SUCCESS;
18566 _PUBLIC_ void ndr_print_spoolssNotifyOptionFlags(struct ndr_print *ndr, const char *name, uint32_t r)
18568 ndr_print_uint32(ndr, name, r);
18570 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_OPTIONS_REFRESH", PRINTER_NOTIFY_OPTIONS_REFRESH, r);
18574 static enum ndr_err_code ndr_push_spoolss_NotifyOption(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyOption *r)
18576 uint32_t cntr_types_1;
18577 if (ndr_flags & NDR_SCALARS) {
18578 NDR_CHECK(ndr_push_align(ndr, 5));
18579 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
18580 NDR_CHECK(ndr_push_spoolssNotifyOptionFlags(ndr, NDR_SCALARS, r->flags));
18581 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
18582 NDR_CHECK(ndr_push_unique_ptr(ndr, r->types));
18583 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18585 if (ndr_flags & NDR_BUFFERS) {
18587 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
18588 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
18589 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr, NDR_SCALARS, &r->types[cntr_types_1]));
18591 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
18592 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr, NDR_BUFFERS, &r->types[cntr_types_1]));
18596 return NDR_ERR_SUCCESS;
18599 static enum ndr_err_code ndr_pull_spoolss_NotifyOption(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyOption *r)
18601 uint32_t _ptr_types;
18602 uint32_t cntr_types_1;
18603 TALLOC_CTX *_mem_save_types_0;
18604 TALLOC_CTX *_mem_save_types_1;
18605 if (ndr_flags & NDR_SCALARS) {
18606 NDR_CHECK(ndr_pull_align(ndr, 5));
18607 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
18608 NDR_CHECK(ndr_pull_spoolssNotifyOptionFlags(ndr, NDR_SCALARS, &r->flags));
18609 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
18610 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_types));
18612 NDR_PULL_ALLOC(ndr, r->types);
18616 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
18618 if (ndr_flags & NDR_BUFFERS) {
18620 _mem_save_types_0 = NDR_PULL_GET_MEM_CTX(ndr);
18621 NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
18622 NDR_CHECK(ndr_pull_array_size(ndr, &r->types));
18623 NDR_PULL_ALLOC_N(ndr, r->types, ndr_get_array_size(ndr, &r->types));
18624 _mem_save_types_1 = NDR_PULL_GET_MEM_CTX(ndr);
18625 NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
18626 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
18627 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr, NDR_SCALARS, &r->types[cntr_types_1]));
18629 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
18630 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr, NDR_BUFFERS, &r->types[cntr_types_1]));
18632 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_1, 0);
18633 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_0, 0);
18636 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->types, r->count));
18639 return NDR_ERR_SUCCESS;
18642 _PUBLIC_ void ndr_print_spoolss_NotifyOption(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyOption *r)
18644 uint32_t cntr_types_1;
18645 ndr_print_struct(ndr, name, "spoolss_NotifyOption");
18647 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
18648 ndr_print_spoolssNotifyOptionFlags(ndr, "flags", r->flags);
18649 ndr_print_uint32(ndr, "count", r->count);
18650 ndr_print_ptr(ndr, "types", r->types);
18653 ndr->print(ndr, "%s: ARRAY(%d)", "types", (int)r->count);
18655 for (cntr_types_1=0;cntr_types_1<r->count;cntr_types_1++) {
18657 if (asprintf(&idx_1, "[%d]", cntr_types_1) != -1) {
18658 ndr_print_spoolss_NotifyOptionType(ndr, "types", &r->types[cntr_types_1]);
18668 static enum ndr_err_code ndr_push_spoolss_NotifyString(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyString *r)
18670 if (ndr_flags & NDR_SCALARS) {
18671 NDR_CHECK(ndr_push_align(ndr, 5));
18672 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
18673 NDR_CHECK(ndr_push_unique_ptr(ndr, r->string));
18674 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18676 if (ndr_flags & NDR_BUFFERS) {
18678 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->size / 2));
18679 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->string, r->size / 2, sizeof(uint16_t), CH_UTF16));
18682 return NDR_ERR_SUCCESS;
18685 static enum ndr_err_code ndr_pull_spoolss_NotifyString(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyString *r)
18687 uint32_t _ptr_string;
18688 TALLOC_CTX *_mem_save_string_0;
18689 if (ndr_flags & NDR_SCALARS) {
18690 NDR_CHECK(ndr_pull_align(ndr, 5));
18691 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
18692 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_string));
18694 NDR_PULL_ALLOC(ndr, r->string);
18698 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
18700 if (ndr_flags & NDR_BUFFERS) {
18702 _mem_save_string_0 = NDR_PULL_GET_MEM_CTX(ndr);
18703 NDR_PULL_SET_MEM_CTX(ndr, r->string, 0);
18704 NDR_CHECK(ndr_pull_array_size(ndr, &r->string));
18705 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->string, ndr_get_array_size(ndr, &r->string), sizeof(uint16_t), CH_UTF16));
18706 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_string_0, 0);
18709 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->string, r->size / 2));
18712 return NDR_ERR_SUCCESS;
18715 _PUBLIC_ void ndr_print_spoolss_NotifyString(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyString *r)
18717 ndr_print_struct(ndr, name, "spoolss_NotifyString");
18719 ndr_print_uint32(ndr, "size", r->size);
18720 ndr_print_ptr(ndr, "string", r->string);
18723 ndr_print_string(ndr, "string", r->string);
18729 static enum ndr_err_code ndr_push_spoolss_NotifyTable(struct ndr_push *ndr, int ndr_flags, enum spoolss_NotifyTable r)
18731 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
18732 return NDR_ERR_SUCCESS;
18735 static enum ndr_err_code ndr_pull_spoolss_NotifyTable(struct ndr_pull *ndr, int ndr_flags, enum spoolss_NotifyTable *r)
18738 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
18740 return NDR_ERR_SUCCESS;
18743 _PUBLIC_ void ndr_print_spoolss_NotifyTable(struct ndr_print *ndr, const char *name, enum spoolss_NotifyTable r)
18745 const char *val = NULL;
18748 case NOTIFY_TABLE_DWORD: val = "NOTIFY_TABLE_DWORD"; break;
18749 case NOTIFY_TABLE_STRING: val = "NOTIFY_TABLE_STRING"; break;
18750 case NOTIFY_TABLE_DEVMODE: val = "NOTIFY_TABLE_DEVMODE"; break;
18751 case NOTIFY_TABLE_TIME: val = "NOTIFY_TABLE_TIME"; break;
18752 case NOTIFY_TABLE_SECURITYDESCRIPTOR: val = "NOTIFY_TABLE_SECURITYDESCRIPTOR"; break;
18754 ndr_print_enum(ndr, name, "ENUM", val, r);
18757 static enum ndr_err_code ndr_push_spoolss_NotifyData(struct ndr_push *ndr, int ndr_flags, const union spoolss_NotifyData *r)
18759 if (ndr_flags & NDR_SCALARS) {
18760 int level = ndr_push_get_switch_value(ndr, r);
18761 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
18762 NDR_CHECK(ndr_push_union_align(ndr, 5));
18765 uint32_t cntr_integer_0;
18766 for (cntr_integer_0 = 0; cntr_integer_0 < 2; cntr_integer_0++) {
18767 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->integer[cntr_integer_0]));
18772 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr, NDR_SCALARS, &r->string));
18776 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS, &r->devmode));
18780 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr, NDR_SCALARS, &r->time));
18784 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sd));
18788 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18791 if (ndr_flags & NDR_BUFFERS) {
18792 int level = ndr_push_get_switch_value(ndr, r);
18798 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr, NDR_BUFFERS, &r->string));
18802 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_BUFFERS, &r->devmode));
18806 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr, NDR_BUFFERS, &r->time));
18810 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd));
18814 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18817 return NDR_ERR_SUCCESS;
18820 static enum ndr_err_code ndr_pull_spoolss_NotifyData(struct ndr_pull *ndr, int ndr_flags, union spoolss_NotifyData *r)
18824 level = ndr_pull_get_switch_value(ndr, r);
18825 if (ndr_flags & NDR_SCALARS) {
18826 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
18827 if (_level != level) {
18828 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
18830 NDR_CHECK(ndr_pull_union_align(ndr, 5));
18833 uint32_t cntr_integer_0;
18834 for (cntr_integer_0 = 0; cntr_integer_0 < 2; cntr_integer_0++) {
18835 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->integer[cntr_integer_0]));
18840 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr, NDR_SCALARS, &r->string));
18844 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS, &r->devmode));
18848 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr, NDR_SCALARS, &r->time));
18852 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sd));
18856 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18859 if (ndr_flags & NDR_BUFFERS) {
18865 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr, NDR_BUFFERS, &r->string));
18869 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_BUFFERS, &r->devmode));
18873 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr, NDR_BUFFERS, &r->time));
18877 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd));
18881 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18884 return NDR_ERR_SUCCESS;
18887 _PUBLIC_ void ndr_print_spoolss_NotifyData(struct ndr_print *ndr, const char *name, const union spoolss_NotifyData *r)
18890 uint32_t cntr_integer_0;
18891 level = ndr_print_get_switch_value(ndr, r);
18892 ndr_print_union(ndr, name, level, "spoolss_NotifyData");
18895 ndr->print(ndr, "%s: ARRAY(%d)", "integer", (int)2);
18897 for (cntr_integer_0=0;cntr_integer_0<2;cntr_integer_0++) {
18899 if (asprintf(&idx_0, "[%d]", cntr_integer_0) != -1) {
18900 ndr_print_uint32(ndr, "integer", r->integer[cntr_integer_0]);
18908 ndr_print_spoolss_NotifyString(ndr, "string", &r->string);
18912 ndr_print_spoolss_DevmodeContainer(ndr, "devmode", &r->devmode);
18916 ndr_print_spoolss_TimeCtr(ndr, "time", &r->time);
18920 ndr_print_sec_desc_buf(ndr, "sd", &r->sd);
18924 ndr_print_bad_level(ndr, name, level);
18928 static enum ndr_err_code ndr_push_spoolss_Notify(struct ndr_push *ndr, int ndr_flags, const struct spoolss_Notify *r)
18930 if (ndr_flags & NDR_SCALARS) {
18931 NDR_CHECK(ndr_push_align(ndr, 5));
18932 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr, NDR_SCALARS, r->type));
18933 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->field, r->type));
18934 NDR_CHECK(ndr_push_spoolss_Field(ndr, NDR_SCALARS, &r->field));
18935 NDR_CHECK(ndr_push_spoolss_NotifyTable(ndr, NDR_SCALARS, r->variable_type));
18936 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
18937 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->data, r->variable_type));
18938 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr, NDR_SCALARS, &r->data));
18939 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18941 if (ndr_flags & NDR_BUFFERS) {
18942 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr, NDR_BUFFERS, &r->data));
18944 return NDR_ERR_SUCCESS;
18947 static enum ndr_err_code ndr_pull_spoolss_Notify(struct ndr_pull *ndr, int ndr_flags, struct spoolss_Notify *r)
18949 if (ndr_flags & NDR_SCALARS) {
18950 NDR_CHECK(ndr_pull_align(ndr, 5));
18951 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr, NDR_SCALARS, &r->type));
18952 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->field, r->type));
18953 NDR_CHECK(ndr_pull_spoolss_Field(ndr, NDR_SCALARS, &r->field));
18954 NDR_CHECK(ndr_pull_spoolss_NotifyTable(ndr, NDR_SCALARS, &r->variable_type));
18955 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
18956 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->data, r->variable_type));
18957 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr, NDR_SCALARS, &r->data));
18958 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
18960 if (ndr_flags & NDR_BUFFERS) {
18961 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr, NDR_BUFFERS, &r->data));
18963 return NDR_ERR_SUCCESS;
18966 _PUBLIC_ void ndr_print_spoolss_Notify(struct ndr_print *ndr, const char *name, const struct spoolss_Notify *r)
18968 ndr_print_struct(ndr, name, "spoolss_Notify");
18970 ndr_print_spoolss_NotifyType(ndr, "type", r->type);
18971 ndr_print_set_switch_value(ndr, &r->field, r->type);
18972 ndr_print_spoolss_Field(ndr, "field", &r->field);
18973 ndr_print_spoolss_NotifyTable(ndr, "variable_type", r->variable_type);
18974 ndr_print_uint32(ndr, "job_id", r->job_id);
18975 ndr_print_set_switch_value(ndr, &r->data, r->variable_type);
18976 ndr_print_spoolss_NotifyData(ndr, "data", &r->data);
18980 static enum ndr_err_code ndr_push_spoolss_NotifyInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyInfo *r)
18982 uint32_t cntr_notifies_0;
18983 if (ndr_flags & NDR_SCALARS) {
18984 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
18985 NDR_CHECK(ndr_push_align(ndr, 5));
18986 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
18987 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
18988 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
18989 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
18990 NDR_CHECK(ndr_push_spoolss_Notify(ndr, NDR_SCALARS, &r->notifies[cntr_notifies_0]));
18992 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18994 if (ndr_flags & NDR_BUFFERS) {
18995 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
18996 NDR_CHECK(ndr_push_spoolss_Notify(ndr, NDR_BUFFERS, &r->notifies[cntr_notifies_0]));
18999 return NDR_ERR_SUCCESS;
19002 static enum ndr_err_code ndr_pull_spoolss_NotifyInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyInfo *r)
19004 uint32_t cntr_notifies_0;
19005 TALLOC_CTX *_mem_save_notifies_0;
19006 if (ndr_flags & NDR_SCALARS) {
19007 NDR_CHECK(ndr_pull_array_size(ndr, &r->notifies));
19008 NDR_CHECK(ndr_pull_align(ndr, 5));
19009 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
19010 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
19011 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
19012 NDR_PULL_ALLOC_N(ndr, r->notifies, ndr_get_array_size(ndr, &r->notifies));
19013 _mem_save_notifies_0 = NDR_PULL_GET_MEM_CTX(ndr);
19014 NDR_PULL_SET_MEM_CTX(ndr, r->notifies, 0);
19015 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
19016 NDR_CHECK(ndr_pull_spoolss_Notify(ndr, NDR_SCALARS, &r->notifies[cntr_notifies_0]));
19018 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notifies_0, 0);
19020 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->notifies, r->count));
19022 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
19024 if (ndr_flags & NDR_BUFFERS) {
19025 _mem_save_notifies_0 = NDR_PULL_GET_MEM_CTX(ndr);
19026 NDR_PULL_SET_MEM_CTX(ndr, r->notifies, 0);
19027 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
19028 NDR_CHECK(ndr_pull_spoolss_Notify(ndr, NDR_BUFFERS, &r->notifies[cntr_notifies_0]));
19030 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notifies_0, 0);
19032 return NDR_ERR_SUCCESS;
19035 _PUBLIC_ void ndr_print_spoolss_NotifyInfo(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyInfo *r)
19037 uint32_t cntr_notifies_0;
19038 ndr_print_struct(ndr, name, "spoolss_NotifyInfo");
19040 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
19041 ndr_print_uint32(ndr, "flags", r->flags);
19042 ndr_print_uint32(ndr, "count", r->count);
19043 ndr->print(ndr, "%s: ARRAY(%d)", "notifies", (int)r->count);
19045 for (cntr_notifies_0=0;cntr_notifies_0<r->count;cntr_notifies_0++) {
19047 if (asprintf(&idx_0, "[%d]", cntr_notifies_0) != -1) {
19048 ndr_print_spoolss_Notify(ndr, "notifies", &r->notifies[cntr_notifies_0]);
19056 static enum ndr_err_code ndr_push_spoolss_ReplyPrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_ReplyPrinterInfo *r)
19058 if (ndr_flags & NDR_SCALARS) {
19059 int level = ndr_push_get_switch_value(ndr, r);
19060 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
19061 NDR_CHECK(ndr_push_union_align(ndr, 5));
19064 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info0));
19068 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19071 if (ndr_flags & NDR_BUFFERS) {
19072 int level = ndr_push_get_switch_value(ndr, r);
19076 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
19081 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19084 return NDR_ERR_SUCCESS;
19087 static enum ndr_err_code ndr_pull_spoolss_ReplyPrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_ReplyPrinterInfo *r)
19091 TALLOC_CTX *_mem_save_info0_0;
19092 level = ndr_pull_get_switch_value(ndr, r);
19093 if (ndr_flags & NDR_SCALARS) {
19094 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
19095 if (_level != level) {
19096 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
19098 NDR_CHECK(ndr_pull_union_align(ndr, 5));
19101 uint32_t _ptr_info0;
19102 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0));
19104 NDR_PULL_ALLOC(ndr, r->info0);
19111 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19114 if (ndr_flags & NDR_BUFFERS) {
19118 _mem_save_info0_0 = NDR_PULL_GET_MEM_CTX(ndr);
19119 NDR_PULL_SET_MEM_CTX(ndr, r->info0, 0);
19120 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
19121 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info0_0, 0);
19126 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19129 return NDR_ERR_SUCCESS;
19132 _PUBLIC_ void ndr_print_spoolss_ReplyPrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_ReplyPrinterInfo *r)
19135 level = ndr_print_get_switch_value(ndr, r);
19136 ndr_print_union(ndr, name, level, "spoolss_ReplyPrinterInfo");
19139 ndr_print_ptr(ndr, "info0", r->info0);
19142 ndr_print_spoolss_NotifyInfo(ndr, "info0", r->info0);
19148 ndr_print_bad_level(ndr, name, level);
19152 static enum ndr_err_code ndr_push_spoolss_PrinterNotifyFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
19154 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
19155 return NDR_ERR_SUCCESS;
19158 static enum ndr_err_code ndr_pull_spoolss_PrinterNotifyFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
19161 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
19163 return NDR_ERR_SUCCESS;
19166 _PUBLIC_ void ndr_print_spoolss_PrinterNotifyFlags(struct ndr_print *ndr, const char *name, uint32_t r)
19168 ndr_print_uint32(ndr, name, r);
19170 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDED", PRINTER_NOTIFY_INFO_DISCARDED, r);
19171 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDNOTED", PRINTER_NOTIFY_INFO_DISCARDNOTED, r);
19172 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_COLOR_MISMATCH", PRINTER_NOTIFY_INFO_COLOR_MISMATCH, r);
19176 static enum ndr_err_code ndr_push_spoolss_UserLevel1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel1 *r)
19178 if (ndr_flags & NDR_SCALARS) {
19179 NDR_CHECK(ndr_push_align(ndr, 5));
19180 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
19181 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client));
19182 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
19183 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
19184 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr, NDR_SCALARS, r->major));
19185 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr, NDR_SCALARS, r->minor));
19186 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor));
19187 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
19189 if (ndr_flags & NDR_BUFFERS) {
19191 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
19192 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
19193 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
19194 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client, ndr_charset_length(r->client, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19197 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
19198 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
19199 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
19200 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19203 return NDR_ERR_SUCCESS;
19206 static enum ndr_err_code ndr_pull_spoolss_UserLevel1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel1 *r)
19208 uint32_t _ptr_client;
19209 TALLOC_CTX *_mem_save_client_0;
19210 uint32_t _ptr_user;
19211 TALLOC_CTX *_mem_save_user_0;
19212 if (ndr_flags & NDR_SCALARS) {
19213 NDR_CHECK(ndr_pull_align(ndr, 5));
19214 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
19215 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client));
19217 NDR_PULL_ALLOC(ndr, r->client);
19221 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
19223 NDR_PULL_ALLOC(ndr, r->user);
19227 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
19228 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr, NDR_SCALARS, &r->major));
19229 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr, NDR_SCALARS, &r->minor));
19230 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor));
19231 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
19233 if (ndr_flags & NDR_BUFFERS) {
19235 _mem_save_client_0 = NDR_PULL_GET_MEM_CTX(ndr);
19236 NDR_PULL_SET_MEM_CTX(ndr, r->client, 0);
19237 NDR_CHECK(ndr_pull_array_size(ndr, &r->client));
19238 NDR_CHECK(ndr_pull_array_length(ndr, &r->client));
19239 if (ndr_get_array_length(ndr, &r->client) > ndr_get_array_size(ndr, &r->client)) {
19240 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));
19242 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t)));
19243 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t), CH_UTF16));
19244 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0);
19247 _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
19248 NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
19249 NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
19250 NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
19251 if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) {
19252 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));
19254 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t)));
19255 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16));
19256 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
19259 return NDR_ERR_SUCCESS;
19262 _PUBLIC_ void ndr_print_spoolss_UserLevel1(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel1 *r)
19264 ndr_print_struct(ndr, name, "spoolss_UserLevel1");
19266 ndr_print_uint32(ndr, "size", r->size);
19267 ndr_print_ptr(ndr, "client", r->client);
19270 ndr_print_string(ndr, "client", r->client);
19273 ndr_print_ptr(ndr, "user", r->user);
19276 ndr_print_string(ndr, "user", r->user);
19279 ndr_print_uint32(ndr, "build", r->build);
19280 ndr_print_spoolss_MajorVersion(ndr, "major", r->major);
19281 ndr_print_spoolss_MinorVersion(ndr, "minor", r->minor);
19282 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor", r->processor);
19286 static enum ndr_err_code ndr_push_spoolss_UserLevel2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel2 *r)
19288 if (ndr_flags & NDR_SCALARS) {
19289 NDR_CHECK(ndr_push_align(ndr, 4));
19290 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->not_used));
19291 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
19293 if (ndr_flags & NDR_BUFFERS) {
19295 return NDR_ERR_SUCCESS;
19298 static enum ndr_err_code ndr_pull_spoolss_UserLevel2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel2 *r)
19300 if (ndr_flags & NDR_SCALARS) {
19301 NDR_CHECK(ndr_pull_align(ndr, 4));
19302 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->not_used));
19303 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
19305 if (ndr_flags & NDR_BUFFERS) {
19307 return NDR_ERR_SUCCESS;
19310 _PUBLIC_ void ndr_print_spoolss_UserLevel2(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel2 *r)
19312 ndr_print_struct(ndr, name, "spoolss_UserLevel2");
19314 ndr_print_uint32(ndr, "not_used", r->not_used);
19318 static enum ndr_err_code ndr_push_spoolss_UserLevel3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel3 *r)
19320 if (ndr_flags & NDR_SCALARS) {
19321 NDR_CHECK(ndr_push_align(ndr, 5));
19322 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
19323 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
19324 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size2));
19325 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client));
19326 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
19327 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
19328 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr, NDR_SCALARS, r->major));
19329 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr, NDR_SCALARS, r->minor));
19330 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor));
19331 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->reserved));
19332 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
19334 if (ndr_flags & NDR_BUFFERS) {
19336 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
19337 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
19338 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
19339 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client, ndr_charset_length(r->client, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19342 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
19343 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
19344 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
19345 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19348 return NDR_ERR_SUCCESS;
19351 static enum ndr_err_code ndr_pull_spoolss_UserLevel3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel3 *r)
19353 uint32_t _ptr_client;
19354 TALLOC_CTX *_mem_save_client_0;
19355 uint32_t _ptr_user;
19356 TALLOC_CTX *_mem_save_user_0;
19357 if (ndr_flags & NDR_SCALARS) {
19358 NDR_CHECK(ndr_pull_align(ndr, 5));
19359 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
19360 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
19361 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size2));
19362 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client));
19364 NDR_PULL_ALLOC(ndr, r->client);
19368 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
19370 NDR_PULL_ALLOC(ndr, r->user);
19374 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
19375 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr, NDR_SCALARS, &r->major));
19376 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr, NDR_SCALARS, &r->minor));
19377 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor));
19378 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->reserved));
19379 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
19381 if (ndr_flags & NDR_BUFFERS) {
19383 _mem_save_client_0 = NDR_PULL_GET_MEM_CTX(ndr);
19384 NDR_PULL_SET_MEM_CTX(ndr, r->client, 0);
19385 NDR_CHECK(ndr_pull_array_size(ndr, &r->client));
19386 NDR_CHECK(ndr_pull_array_length(ndr, &r->client));
19387 if (ndr_get_array_length(ndr, &r->client) > ndr_get_array_size(ndr, &r->client)) {
19388 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));
19390 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t)));
19391 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t), CH_UTF16));
19392 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0);
19395 _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
19396 NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
19397 NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
19398 NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
19399 if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) {
19400 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));
19402 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t)));
19403 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16));
19404 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
19407 return NDR_ERR_SUCCESS;
19410 _PUBLIC_ void ndr_print_spoolss_UserLevel3(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel3 *r)
19412 ndr_print_struct(ndr, name, "spoolss_UserLevel3");
19414 ndr_print_uint32(ndr, "size", r->size);
19415 ndr_print_uint32(ndr, "flags", r->flags);
19416 ndr_print_uint32(ndr, "size2", r->size2);
19417 ndr_print_ptr(ndr, "client", r->client);
19420 ndr_print_string(ndr, "client", r->client);
19423 ndr_print_ptr(ndr, "user", r->user);
19426 ndr_print_string(ndr, "user", r->user);
19429 ndr_print_uint32(ndr, "build", r->build);
19430 ndr_print_spoolss_MajorVersion(ndr, "major", r->major);
19431 ndr_print_spoolss_MinorVersion(ndr, "minor", r->minor);
19432 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor", r->processor);
19433 ndr_print_udlong(ndr, "reserved", r->reserved);
19437 static enum ndr_err_code ndr_push_spoolss_UserLevel(struct ndr_push *ndr, int ndr_flags, const union spoolss_UserLevel *r)
19439 if (ndr_flags & NDR_SCALARS) {
19440 int level = ndr_push_get_switch_value(ndr, r);
19441 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
19442 NDR_CHECK(ndr_push_union_align(ndr, 5));
19445 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level1));
19449 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level2));
19453 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level3));
19457 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19460 if (ndr_flags & NDR_BUFFERS) {
19461 int level = ndr_push_get_switch_value(ndr, r);
19465 NDR_CHECK(ndr_push_spoolss_UserLevel1(ndr, NDR_SCALARS|NDR_BUFFERS, r->level1));
19471 NDR_CHECK(ndr_push_spoolss_UserLevel2(ndr, NDR_SCALARS, r->level2));
19477 NDR_CHECK(ndr_push_spoolss_UserLevel3(ndr, NDR_SCALARS|NDR_BUFFERS, r->level3));
19482 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19485 return NDR_ERR_SUCCESS;
19488 static enum ndr_err_code ndr_pull_spoolss_UserLevel(struct ndr_pull *ndr, int ndr_flags, union spoolss_UserLevel *r)
19492 TALLOC_CTX *_mem_save_level1_0;
19493 TALLOC_CTX *_mem_save_level2_0;
19494 TALLOC_CTX *_mem_save_level3_0;
19495 level = ndr_pull_get_switch_value(ndr, r);
19496 if (ndr_flags & NDR_SCALARS) {
19497 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
19498 if (_level != level) {
19499 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
19501 NDR_CHECK(ndr_pull_union_align(ndr, 5));
19504 uint32_t _ptr_level1;
19505 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level1));
19507 NDR_PULL_ALLOC(ndr, r->level1);
19514 uint32_t _ptr_level2;
19515 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level2));
19517 NDR_PULL_ALLOC(ndr, r->level2);
19524 uint32_t _ptr_level3;
19525 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level3));
19527 NDR_PULL_ALLOC(ndr, r->level3);
19534 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19537 if (ndr_flags & NDR_BUFFERS) {
19541 _mem_save_level1_0 = NDR_PULL_GET_MEM_CTX(ndr);
19542 NDR_PULL_SET_MEM_CTX(ndr, r->level1, 0);
19543 NDR_CHECK(ndr_pull_spoolss_UserLevel1(ndr, NDR_SCALARS|NDR_BUFFERS, r->level1));
19544 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level1_0, 0);
19550 _mem_save_level2_0 = NDR_PULL_GET_MEM_CTX(ndr);
19551 NDR_PULL_SET_MEM_CTX(ndr, r->level2, 0);
19552 NDR_CHECK(ndr_pull_spoolss_UserLevel2(ndr, NDR_SCALARS, r->level2));
19553 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level2_0, 0);
19559 _mem_save_level3_0 = NDR_PULL_GET_MEM_CTX(ndr);
19560 NDR_PULL_SET_MEM_CTX(ndr, r->level3, 0);
19561 NDR_CHECK(ndr_pull_spoolss_UserLevel3(ndr, NDR_SCALARS|NDR_BUFFERS, r->level3));
19562 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level3_0, 0);
19567 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19570 return NDR_ERR_SUCCESS;
19573 _PUBLIC_ void ndr_print_spoolss_UserLevel(struct ndr_print *ndr, const char *name, const union spoolss_UserLevel *r)
19576 level = ndr_print_get_switch_value(ndr, r);
19577 ndr_print_union(ndr, name, level, "spoolss_UserLevel");
19580 ndr_print_ptr(ndr, "level1", r->level1);
19583 ndr_print_spoolss_UserLevel1(ndr, "level1", r->level1);
19589 ndr_print_ptr(ndr, "level2", r->level2);
19592 ndr_print_spoolss_UserLevel2(ndr, "level2", r->level2);
19598 ndr_print_ptr(ndr, "level3", r->level3);
19601 ndr_print_spoolss_UserLevel3(ndr, "level3", r->level3);
19607 ndr_print_bad_level(ndr, name, level);
19611 static enum ndr_err_code ndr_push_spoolss_UserLevelCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevelCtr *r)
19613 if (ndr_flags & NDR_SCALARS) {
19614 NDR_CHECK(ndr_push_align(ndr, 5));
19615 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
19616 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->user_info, r->level));
19617 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_SCALARS, &r->user_info));
19618 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
19620 if (ndr_flags & NDR_BUFFERS) {
19621 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_BUFFERS, &r->user_info));
19623 return NDR_ERR_SUCCESS;
19626 static enum ndr_err_code ndr_pull_spoolss_UserLevelCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevelCtr *r)
19628 if (ndr_flags & NDR_SCALARS) {
19629 NDR_CHECK(ndr_pull_align(ndr, 5));
19630 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
19631 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->user_info, r->level));
19632 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_SCALARS, &r->user_info));
19633 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
19635 if (ndr_flags & NDR_BUFFERS) {
19636 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_BUFFERS, &r->user_info));
19638 return NDR_ERR_SUCCESS;
19641 _PUBLIC_ void ndr_print_spoolss_UserLevelCtr(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevelCtr *r)
19643 ndr_print_struct(ndr, name, "spoolss_UserLevelCtr");
19645 ndr_print_uint32(ndr, "level", r->level);
19646 ndr_print_set_switch_value(ndr, &r->user_info, r->level);
19647 ndr_print_spoolss_UserLevel(ndr, "user_info", &r->user_info);
19651 static enum ndr_err_code ndr_push_spoolss_AccessRights(struct ndr_push *ndr, int ndr_flags, uint32_t r)
19653 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
19654 return NDR_ERR_SUCCESS;
19657 static enum ndr_err_code ndr_pull_spoolss_AccessRights(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
19660 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
19662 return NDR_ERR_SUCCESS;
19665 _PUBLIC_ void ndr_print_spoolss_AccessRights(struct ndr_print *ndr, const char *name, uint32_t r)
19667 ndr_print_uint32(ndr, name, r);
19669 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SERVER_ACCESS_ADMINISTER", SERVER_ACCESS_ADMINISTER, r);
19670 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SERVER_ACCESS_ENUMERATE", SERVER_ACCESS_ENUMERATE, r);
19671 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ACCESS_ADMINISTER", PRINTER_ACCESS_ADMINISTER, r);
19672 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ACCESS_USE", PRINTER_ACCESS_USE, r);
19673 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_ACCESS_ADMINISTER", JOB_ACCESS_ADMINISTER, r);
19674 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_ACCESS_READ", JOB_ACCESS_READ, r);
19678 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterEnumValues(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterEnumValues *r)
19680 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
19681 if (ndr_flags & NDR_SCALARS) {
19682 NDR_CHECK(ndr_push_align(ndr, 5));
19683 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
19685 uint32_t _flags_save_string = ndr->flags;
19686 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19687 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->value_name));
19688 ndr->flags = _flags_save_string;
19690 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2 * strlen_m_term(r->value_name)));
19691 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->type));
19692 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data));
19693 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_PrinterData(r->data, r->type, ndr->iconv_convenience, ndr->flags)));
19694 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
19696 if (ndr_flags & NDR_BUFFERS) {
19697 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
19699 uint32_t _flags_save_string = ndr->flags;
19700 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19701 if (r->value_name) {
19702 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->value_name));
19703 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->value_name));
19705 ndr->flags = _flags_save_string;
19708 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data));
19710 struct ndr_push *_ndr_data;
19711 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_data, 0, r->data_length));
19712 NDR_CHECK(ndr_push_set_switch_value(_ndr_data, r->data, r->type));
19713 NDR_CHECK(ndr_push_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, r->data));
19714 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_data, 0, r->data_length));
19718 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
19719 return NDR_ERR_SUCCESS;
19722 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterEnumValues(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterEnumValues *r)
19724 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
19725 uint32_t _ptr_value_name;
19726 TALLOC_CTX *_mem_save_value_name_0;
19727 uint32_t _ptr_data;
19728 TALLOC_CTX *_mem_save_data_0;
19729 if (ndr_flags & NDR_SCALARS) {
19730 NDR_CHECK(ndr_pull_align(ndr, 5));
19731 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
19733 uint32_t _flags_save_string = ndr->flags;
19734 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19735 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_value_name));
19736 if (_ptr_value_name) {
19737 NDR_PULL_ALLOC(ndr, r->value_name);
19738 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->value_name, _ptr_value_name));
19740 r->value_name = NULL;
19742 ndr->flags = _flags_save_string;
19744 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->value_name_len));
19745 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->type));
19746 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
19748 NDR_PULL_ALLOC(ndr, r->data);
19749 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data, _ptr_data));
19753 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->data_length));
19754 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
19756 if (ndr_flags & NDR_BUFFERS) {
19757 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
19759 uint32_t _flags_save_string = ndr->flags;
19760 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19761 if (r->value_name) {
19762 uint32_t _relative_save_offset;
19763 _relative_save_offset = ndr->offset;
19764 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->value_name));
19765 _mem_save_value_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
19766 NDR_PULL_SET_MEM_CTX(ndr, r->value_name, 0);
19767 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->value_name));
19768 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_name_0, 0);
19769 if (ndr->offset > ndr->relative_highest_offset) {
19770 ndr->relative_highest_offset = ndr->offset;
19772 ndr->offset = _relative_save_offset;
19774 ndr->flags = _flags_save_string;
19777 uint32_t _relative_save_offset;
19778 _relative_save_offset = ndr->offset;
19779 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data));
19780 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
19781 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
19783 struct ndr_pull *_ndr_data;
19784 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_data, 0, r->data_length));
19785 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data, r->data, r->type));
19786 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, r->data));
19787 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_data, 0, r->data_length));
19789 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
19790 if (ndr->offset > ndr->relative_highest_offset) {
19791 ndr->relative_highest_offset = ndr->offset;
19793 ndr->offset = _relative_save_offset;
19796 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
19797 return NDR_ERR_SUCCESS;
19800 _PUBLIC_ void ndr_print_spoolss_PrinterEnumValues(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterEnumValues *r)
19802 ndr_print_struct(ndr, name, "spoolss_PrinterEnumValues");
19804 ndr_print_ptr(ndr, "value_name", r->value_name);
19806 if (r->value_name) {
19807 ndr_print_string(ndr, "value_name", r->value_name);
19810 ndr_print_uint32(ndr, "value_name_len", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2 * strlen_m_term(r->value_name):r->value_name_len);
19811 ndr_print_winreg_Type(ndr, "type", r->type);
19812 ndr_print_ptr(ndr, "data", r->data);
19815 ndr_print_set_switch_value(ndr, r->data, r->type);
19816 ndr_print_spoolss_PrinterData(ndr, "data", r->data);
19819 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);
19823 _PUBLIC_ size_t ndr_size_spoolss_PrinterEnumValues(const struct spoolss_PrinterEnumValues *r, struct smb_iconv_convenience *ic, int flags)
19825 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterEnumValues, ic);
19828 static enum ndr_err_code ndr_push_spoolss_KeyNames(struct ndr_push *ndr, int ndr_flags, const union spoolss_KeyNames *r)
19830 if (ndr_flags & NDR_SCALARS) {
19831 int level = ndr_push_get_switch_value(ndr, r);
19832 NDR_CHECK(ndr_push_union_align(ndr, 4));
19842 uint32_t _flags_save_string_array = ndr->flags;
19843 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19844 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string_array));
19845 ndr->flags = _flags_save_string_array;
19851 if (ndr_flags & NDR_BUFFERS) {
19852 int level = ndr_push_get_switch_value(ndr, r);
19865 return NDR_ERR_SUCCESS;
19868 static enum ndr_err_code ndr_pull_spoolss_KeyNames(struct ndr_pull *ndr, int ndr_flags, union spoolss_KeyNames *r)
19871 level = ndr_pull_get_switch_value(ndr, r);
19872 if (ndr_flags & NDR_SCALARS) {
19873 NDR_CHECK(ndr_pull_union_align(ndr, 4));
19883 uint32_t _flags_save_string_array = ndr->flags;
19884 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19885 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string_array));
19886 ndr->flags = _flags_save_string_array;
19892 if (ndr_flags & NDR_BUFFERS) {
19905 return NDR_ERR_SUCCESS;
19908 _PUBLIC_ void ndr_print_spoolss_KeyNames(struct ndr_print *ndr, const char *name, const union spoolss_KeyNames *r)
19911 level = ndr_print_get_switch_value(ndr, r);
19912 ndr_print_union(ndr, name, level, "spoolss_KeyNames");
19921 ndr_print_string_array(ndr, "string_array", r->string_array);
19927 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DeleteDriverFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
19929 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
19930 return NDR_ERR_SUCCESS;
19933 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DeleteDriverFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
19936 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
19938 return NDR_ERR_SUCCESS;
19941 _PUBLIC_ void ndr_print_spoolss_DeleteDriverFlags(struct ndr_print *ndr, const char *name, uint32_t r)
19943 ndr_print_uint32(ndr, name, r);
19945 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_UNUSED_FILES", DPD_DELETE_UNUSED_FILES, r);
19946 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_SPECIFIC_VERSION", DPD_DELETE_SPECIFIC_VERSION, r);
19947 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_ALL_FILES", DPD_DELETE_ALL_FILES, r);
19951 static enum ndr_err_code ndr_push_spoolss_PortProtocol(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortProtocol r)
19953 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
19954 return NDR_ERR_SUCCESS;
19957 static enum ndr_err_code ndr_pull_spoolss_PortProtocol(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortProtocol *r)
19960 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
19962 return NDR_ERR_SUCCESS;
19965 _PUBLIC_ void ndr_print_spoolss_PortProtocol(struct ndr_print *ndr, const char *name, enum spoolss_PortProtocol r)
19967 const char *val = NULL;
19970 case PROTOCOL_RAWTCP_TYPE: val = "PROTOCOL_RAWTCP_TYPE"; break;
19971 case PROTOCOL_LPR_TYPE: val = "PROTOCOL_LPR_TYPE"; break;
19973 ndr_print_enum(ndr, name, "ENUM", val, r);
19976 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortData1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortData1 *r)
19978 if (ndr_flags & NDR_SCALARS) {
19979 NDR_CHECK(ndr_push_align(ndr, 4));
19980 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, 64, sizeof(uint16_t), CH_UTF16));
19981 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0x00000001));
19982 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr, NDR_SCALARS, r->protocol));
19983 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, sizeof(r)));
19984 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
19985 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hostaddress, 49, sizeof(uint16_t), CH_UTF16));
19986 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
19987 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dblspool));
19988 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->queue, 33, sizeof(uint16_t), CH_UTF16));
19989 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->ip_address, 16, sizeof(uint16_t), CH_UTF16));
19990 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_address, 13, sizeof(uint16_t), CH_UTF16));
19991 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->device_type, 257, sizeof(uint16_t), CH_UTF16));
19992 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_number));
19993 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_enabled));
19994 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_dev_index));
19995 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
19997 if (ndr_flags & NDR_BUFFERS) {
19999 return NDR_ERR_SUCCESS;
20002 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortData1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortData1 *r)
20004 if (ndr_flags & NDR_SCALARS) {
20005 NDR_CHECK(ndr_pull_align(ndr, 4));
20006 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, 64, sizeof(uint16_t), CH_UTF16));
20007 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
20008 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr, NDR_SCALARS, &r->protocol));
20009 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
20010 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
20011 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hostaddress, 49, sizeof(uint16_t), CH_UTF16));
20012 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
20013 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dblspool));
20014 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->queue, 33, sizeof(uint16_t), CH_UTF16));
20015 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->ip_address, 16, sizeof(uint16_t), CH_UTF16));
20016 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_address, 13, sizeof(uint16_t), CH_UTF16));
20017 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device_type, 257, sizeof(uint16_t), CH_UTF16));
20018 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_number));
20019 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_enabled));
20020 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_dev_index));
20021 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
20023 if (ndr_flags & NDR_BUFFERS) {
20025 return NDR_ERR_SUCCESS;
20028 _PUBLIC_ void ndr_print_spoolss_PortData1(struct ndr_print *ndr, const char *name, const struct spoolss_PortData1 *r)
20030 ndr_print_struct(ndr, name, "spoolss_PortData1");
20032 ndr_print_string(ndr, "portname", r->portname);
20033 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x00000001:r->version);
20034 ndr_print_spoolss_PortProtocol(ndr, "protocol", r->protocol);
20035 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?sizeof(r):r->size);
20036 ndr_print_uint32(ndr, "reserved", r->reserved);
20037 ndr_print_string(ndr, "hostaddress", r->hostaddress);
20038 ndr_print_string(ndr, "snmpcommunity", r->snmpcommunity);
20039 ndr_print_uint32(ndr, "dblspool", r->dblspool);
20040 ndr_print_string(ndr, "queue", r->queue);
20041 ndr_print_string(ndr, "ip_address", r->ip_address);
20042 ndr_print_string(ndr, "hardware_address", r->hardware_address);
20043 ndr_print_string(ndr, "device_type", r->device_type);
20044 ndr_print_uint32(ndr, "port_number", r->port_number);
20045 ndr_print_uint32(ndr, "snmp_enabled", r->snmp_enabled);
20046 ndr_print_uint32(ndr, "snmp_dev_index", r->snmp_dev_index);
20050 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortData2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortData2 *r)
20052 if (ndr_flags & NDR_SCALARS) {
20053 NDR_CHECK(ndr_push_align(ndr, 4));
20054 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, 64, sizeof(uint16_t), CH_UTF16));
20055 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0x00000002));
20056 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr, NDR_SCALARS, r->protocol));
20057 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, sizeof(r)));
20058 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
20059 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hostaddress, 128, sizeof(uint16_t), CH_UTF16));
20060 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
20061 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dblspool));
20062 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->queue, 33, sizeof(uint16_t), CH_UTF16));
20063 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->device_type, 257, sizeof(uint16_t), CH_UTF16));
20064 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_number));
20065 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_enabled));
20066 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_dev_index));
20067 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_monitor_mib_index));
20068 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
20070 if (ndr_flags & NDR_BUFFERS) {
20072 return NDR_ERR_SUCCESS;
20075 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortData2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortData2 *r)
20077 if (ndr_flags & NDR_SCALARS) {
20078 NDR_CHECK(ndr_pull_align(ndr, 4));
20079 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, 64, sizeof(uint16_t), CH_UTF16));
20080 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
20081 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr, NDR_SCALARS, &r->protocol));
20082 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
20083 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
20084 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hostaddress, 128, sizeof(uint16_t), CH_UTF16));
20085 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
20086 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dblspool));
20087 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->queue, 33, sizeof(uint16_t), CH_UTF16));
20088 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device_type, 257, sizeof(uint16_t), CH_UTF16));
20089 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_number));
20090 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_enabled));
20091 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_dev_index));
20092 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_monitor_mib_index));
20093 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
20095 if (ndr_flags & NDR_BUFFERS) {
20097 return NDR_ERR_SUCCESS;
20100 _PUBLIC_ void ndr_print_spoolss_PortData2(struct ndr_print *ndr, const char *name, const struct spoolss_PortData2 *r)
20102 ndr_print_struct(ndr, name, "spoolss_PortData2");
20104 ndr_print_string(ndr, "portname", r->portname);
20105 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x00000002:r->version);
20106 ndr_print_spoolss_PortProtocol(ndr, "protocol", r->protocol);
20107 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?sizeof(r):r->size);
20108 ndr_print_uint32(ndr, "reserved", r->reserved);
20109 ndr_print_string(ndr, "hostaddress", r->hostaddress);
20110 ndr_print_string(ndr, "snmpcommunity", r->snmpcommunity);
20111 ndr_print_uint32(ndr, "dblspool", r->dblspool);
20112 ndr_print_string(ndr, "queue", r->queue);
20113 ndr_print_string(ndr, "device_type", r->device_type);
20114 ndr_print_uint32(ndr, "port_number", r->port_number);
20115 ndr_print_uint32(ndr, "snmp_enabled", r->snmp_enabled);
20116 ndr_print_uint32(ndr, "snmp_dev_index", r->snmp_dev_index);
20117 ndr_print_uint32(ndr, "port_monitor_mib_index", r->port_monitor_mib_index);
20121 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorUi(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorUi *r)
20123 if (ndr_flags & NDR_SCALARS) {
20124 NDR_CHECK(ndr_push_align(ndr, 4));
20126 uint32_t _flags_save_string = ndr->flags;
20127 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
20128 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dll_name));
20129 ndr->flags = _flags_save_string;
20131 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
20133 if (ndr_flags & NDR_BUFFERS) {
20135 return NDR_ERR_SUCCESS;
20138 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorUi(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorUi *r)
20140 if (ndr_flags & NDR_SCALARS) {
20141 NDR_CHECK(ndr_pull_align(ndr, 4));
20143 uint32_t _flags_save_string = ndr->flags;
20144 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
20145 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->dll_name));
20146 ndr->flags = _flags_save_string;
20148 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
20150 if (ndr_flags & NDR_BUFFERS) {
20152 return NDR_ERR_SUCCESS;
20155 _PUBLIC_ void ndr_print_spoolss_MonitorUi(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorUi *r)
20157 ndr_print_struct(ndr, name, "spoolss_MonitorUi");
20159 ndr_print_string(ndr, "dll_name", r->dll_name);
20163 static enum ndr_err_code ndr_push_spoolss_AddPrinterDriverExFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
20165 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
20166 return NDR_ERR_SUCCESS;
20169 static enum ndr_err_code ndr_pull_spoolss_AddPrinterDriverExFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
20172 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
20174 return NDR_ERR_SUCCESS;
20177 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriverExFlags(struct ndr_print *ndr, const char *name, uint32_t r)
20179 ndr_print_uint32(ndr, name, r);
20181 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_STRICT_UPGRADE", APD_STRICT_UPGRADE, r);
20182 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_STRICT_DOWNGRADE", APD_STRICT_DOWNGRADE, r);
20183 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_ALL_FILES", APD_COPY_ALL_FILES, r);
20184 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_NEW_FILES", APD_COPY_NEW_FILES, r);
20185 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_FROM_DIRECTORY", APD_COPY_FROM_DIRECTORY, r);
20186 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_DONT_COPY_FILES_TO_CLUSTER", APD_DONT_COPY_FILES_TO_CLUSTER, r);
20187 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_TO_ALL_SPOOLERS", APD_COPY_TO_ALL_SPOOLERS, r);
20188 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_RETURN_BLOCKING_STATUS_CODE", APD_RETURN_BLOCKING_STATUS_CODE, r);
20192 static enum ndr_err_code ndr_push_spoolss_CorePrinterDriver(struct ndr_push *ndr, int ndr_flags, const struct spoolss_CorePrinterDriver *r)
20194 if (ndr_flags & NDR_SCALARS) {
20195 NDR_CHECK(ndr_push_align(ndr, 8));
20196 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->core_driver_guid));
20197 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
20198 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
20199 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->formname, 520, sizeof(uint8_t), CH_UTF8));
20200 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
20202 if (ndr_flags & NDR_BUFFERS) {
20204 return NDR_ERR_SUCCESS;
20207 static enum ndr_err_code ndr_pull_spoolss_CorePrinterDriver(struct ndr_pull *ndr, int ndr_flags, struct spoolss_CorePrinterDriver *r)
20209 if (ndr_flags & NDR_SCALARS) {
20210 NDR_CHECK(ndr_pull_align(ndr, 8));
20211 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->core_driver_guid));
20212 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
20213 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
20214 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->formname, 520, sizeof(uint8_t), CH_UTF8));
20215 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
20217 if (ndr_flags & NDR_BUFFERS) {
20219 return NDR_ERR_SUCCESS;
20222 _PUBLIC_ void ndr_print_spoolss_CorePrinterDriver(struct ndr_print *ndr, const char *name, const struct spoolss_CorePrinterDriver *r)
20224 ndr_print_struct(ndr, name, "spoolss_CorePrinterDriver");
20226 ndr_print_GUID(ndr, "core_driver_guid", &r->core_driver_guid);
20227 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
20228 ndr_print_hyper(ndr, "driver_version", r->driver_version);
20229 ndr_print_string(ndr, "formname", r->formname);
20233 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinters(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinters *r)
20235 if (flags & NDR_IN) {
20236 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, r->in.flags));
20237 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
20238 if (r->in.server) {
20239 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20240 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
20241 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20242 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20244 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20245 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20246 if (r->in.buffer) {
20247 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
20249 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
20251 if (flags & NDR_OUT) {
20252 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
20254 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
20256 if (r->out.needed == NULL) {
20257 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20259 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
20260 if (r->out.count == NULL) {
20261 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20263 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
20264 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20266 return NDR_ERR_SUCCESS;
20269 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinters(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinters *r)
20271 uint32_t _ptr_server;
20272 uint32_t _ptr_buffer;
20273 uint32_t _ptr_info;
20274 TALLOC_CTX *_mem_save_server_0;
20275 TALLOC_CTX *_mem_save_buffer_0;
20276 TALLOC_CTX *_mem_save_info_0;
20277 TALLOC_CTX *_mem_save_needed_0;
20278 TALLOC_CTX *_mem_save_count_0;
20279 if (flags & NDR_IN) {
20280 ZERO_STRUCT(r->out);
20282 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, &r->in.flags));
20283 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
20285 NDR_PULL_ALLOC(ndr, r->in.server);
20287 r->in.server = NULL;
20289 if (r->in.server) {
20290 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
20291 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
20292 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
20293 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
20294 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
20295 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server), ndr_get_array_length(ndr, &r->in.server));
20297 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
20298 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
20299 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
20301 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20302 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20304 NDR_PULL_ALLOC(ndr, r->in.buffer);
20306 r->in.buffer = NULL;
20308 if (r->in.buffer) {
20309 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
20310 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20311 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
20312 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20314 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
20315 NDR_PULL_ALLOC(ndr, r->out.needed);
20316 ZERO_STRUCTP(r->out.needed);
20317 NDR_PULL_ALLOC(ndr, r->out.count);
20318 ZERO_STRUCTP(r->out.count);
20320 if (flags & NDR_OUT) {
20321 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
20323 NDR_PULL_ALLOC(ndr, r->out.info);
20325 r->out.info = NULL;
20328 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20329 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20330 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
20331 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20333 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20334 NDR_PULL_ALLOC(ndr, r->out.needed);
20336 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
20337 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
20338 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
20339 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
20340 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20341 NDR_PULL_ALLOC(ndr, r->out.count);
20343 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
20344 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
20345 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
20346 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
20347 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20349 return NDR_ERR_SUCCESS;
20352 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinters(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinters *r)
20354 uint32_t cntr_info_0;
20355 if (flags & NDR_IN) {
20356 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20357 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
20359 if (flags & NDR_OUT) {
20360 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20361 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
20362 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
20364 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20365 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
20368 return NDR_ERR_SUCCESS;
20371 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinters(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinters *r)
20373 uint32_t cntr_info_0;
20374 TALLOC_CTX *_mem_save_info_0;
20375 if (flags & NDR_IN) {
20376 ZERO_STRUCT(r->out);
20378 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20379 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
20381 if (flags & NDR_OUT) {
20382 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
20383 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20384 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20385 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20386 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
20387 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
20389 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20390 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
20392 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20394 return NDR_ERR_SUCCESS;
20397 _PUBLIC_ void ndr_print_spoolss_EnumPrinters(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinters *r)
20399 uint32_t cntr_info_2;
20400 ndr_print_struct(ndr, name, "spoolss_EnumPrinters");
20402 if (flags & NDR_SET_VALUES) {
20403 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20405 if (flags & NDR_IN) {
20406 ndr_print_struct(ndr, "in", "spoolss_EnumPrinters");
20408 ndr_print_spoolss_EnumPrinterFlags(ndr, "flags", r->in.flags);
20409 ndr_print_ptr(ndr, "server", r->in.server);
20411 if (r->in.server) {
20412 ndr_print_string(ndr, "server", r->in.server);
20415 ndr_print_uint32(ndr, "level", r->in.level);
20416 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20418 if (r->in.buffer) {
20419 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
20422 ndr_print_uint32(ndr, "offered", r->in.offered);
20425 if (flags & NDR_OUT) {
20426 ndr_print_struct(ndr, "out", "spoolss_EnumPrinters");
20428 ndr_print_ptr(ndr, "count", r->out.count);
20430 ndr_print_uint32(ndr, "count", *r->out.count);
20432 ndr_print_ptr(ndr, "info", r->out.info);
20434 ndr_print_ptr(ndr, "info", *r->out.info);
20436 if (*r->out.info) {
20437 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
20439 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
20441 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
20442 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
20443 ndr_print_spoolss_PrinterInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
20451 ndr_print_ptr(ndr, "needed", r->out.needed);
20453 ndr_print_uint32(ndr, "needed", *r->out.needed);
20455 ndr_print_WERROR(ndr, "result", r->out.result);
20461 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OpenPrinter(struct ndr_push *ndr, int flags, const struct spoolss_OpenPrinter *r)
20463 if (flags & NDR_IN) {
20464 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.printername));
20465 if (r->in.printername) {
20466 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
20467 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
20468 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
20469 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20471 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.datatype));
20472 if (r->in.datatype) {
20473 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
20474 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
20475 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
20476 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.datatype, ndr_charset_length(r->in.datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20478 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
20479 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr, NDR_SCALARS, r->in.access_mask));
20481 if (flags & NDR_OUT) {
20482 if (r->out.handle == NULL) {
20483 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20485 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
20486 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20488 return NDR_ERR_SUCCESS;
20491 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OpenPrinter(struct ndr_pull *ndr, int flags, struct spoolss_OpenPrinter *r)
20493 uint32_t _ptr_printername;
20494 uint32_t _ptr_datatype;
20495 TALLOC_CTX *_mem_save_printername_0;
20496 TALLOC_CTX *_mem_save_datatype_0;
20497 TALLOC_CTX *_mem_save_handle_0;
20498 if (flags & NDR_IN) {
20499 ZERO_STRUCT(r->out);
20501 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
20502 if (_ptr_printername) {
20503 NDR_PULL_ALLOC(ndr, r->in.printername);
20505 r->in.printername = NULL;
20507 if (r->in.printername) {
20508 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
20509 NDR_PULL_SET_MEM_CTX(ndr, r->in.printername, 0);
20510 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
20511 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
20512 if (ndr_get_array_length(ndr, &r->in.printername) > ndr_get_array_size(ndr, &r->in.printername)) {
20513 return 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));
20515 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t)));
20516 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t), CH_UTF16));
20517 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
20519 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
20520 if (_ptr_datatype) {
20521 NDR_PULL_ALLOC(ndr, r->in.datatype);
20523 r->in.datatype = NULL;
20525 if (r->in.datatype) {
20526 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
20527 NDR_PULL_SET_MEM_CTX(ndr, r->in.datatype, 0);
20528 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.datatype));
20529 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.datatype));
20530 if (ndr_get_array_length(ndr, &r->in.datatype) > ndr_get_array_size(ndr, &r->in.datatype)) {
20531 return 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));
20533 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t)));
20534 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t), CH_UTF16));
20535 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
20537 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
20538 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr, NDR_SCALARS, &r->in.access_mask));
20539 NDR_PULL_ALLOC(ndr, r->out.handle);
20540 ZERO_STRUCTP(r->out.handle);
20542 if (flags & NDR_OUT) {
20543 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20544 NDR_PULL_ALLOC(ndr, r->out.handle);
20546 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20547 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
20548 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
20549 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20550 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20552 return NDR_ERR_SUCCESS;
20555 _PUBLIC_ void ndr_print_spoolss_OpenPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_OpenPrinter *r)
20557 ndr_print_struct(ndr, name, "spoolss_OpenPrinter");
20559 if (flags & NDR_SET_VALUES) {
20560 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20562 if (flags & NDR_IN) {
20563 ndr_print_struct(ndr, "in", "spoolss_OpenPrinter");
20565 ndr_print_ptr(ndr, "printername", r->in.printername);
20567 if (r->in.printername) {
20568 ndr_print_string(ndr, "printername", r->in.printername);
20571 ndr_print_ptr(ndr, "datatype", r->in.datatype);
20573 if (r->in.datatype) {
20574 ndr_print_string(ndr, "datatype", r->in.datatype);
20577 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", &r->in.devmode_ctr);
20578 ndr_print_spoolss_AccessRights(ndr, "access_mask", r->in.access_mask);
20581 if (flags & NDR_OUT) {
20582 ndr_print_struct(ndr, "out", "spoolss_OpenPrinter");
20584 ndr_print_ptr(ndr, "handle", r->out.handle);
20586 ndr_print_policy_handle(ndr, "handle", r->out.handle);
20588 ndr_print_WERROR(ndr, "result", r->out.result);
20594 static enum ndr_err_code ndr_push_spoolss_SetJob(struct ndr_push *ndr, int flags, const struct spoolss_SetJob *r)
20596 if (flags & NDR_IN) {
20597 if (r->in.handle == NULL) {
20598 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20600 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20601 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.job_id));
20602 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.ctr));
20604 NDR_CHECK(ndr_push_spoolss_JobInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
20606 NDR_CHECK(ndr_push_spoolss_JobControl(ndr, NDR_SCALARS, r->in.command));
20608 if (flags & NDR_OUT) {
20609 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20611 return NDR_ERR_SUCCESS;
20614 static enum ndr_err_code ndr_pull_spoolss_SetJob(struct ndr_pull *ndr, int flags, struct spoolss_SetJob *r)
20617 TALLOC_CTX *_mem_save_handle_0;
20618 TALLOC_CTX *_mem_save_ctr_0;
20619 if (flags & NDR_IN) {
20620 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20621 NDR_PULL_ALLOC(ndr, r->in.handle);
20623 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20624 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20625 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20626 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20627 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.job_id));
20628 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr));
20630 NDR_PULL_ALLOC(ndr, r->in.ctr);
20635 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20636 NDR_PULL_SET_MEM_CTX(ndr, r->in.ctr, 0);
20637 NDR_CHECK(ndr_pull_spoolss_JobInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
20638 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, 0);
20640 NDR_CHECK(ndr_pull_spoolss_JobControl(ndr, NDR_SCALARS, &r->in.command));
20642 if (flags & NDR_OUT) {
20643 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20645 return NDR_ERR_SUCCESS;
20648 _PUBLIC_ void ndr_print_spoolss_SetJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetJob *r)
20650 ndr_print_struct(ndr, name, "spoolss_SetJob");
20652 if (flags & NDR_SET_VALUES) {
20653 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20655 if (flags & NDR_IN) {
20656 ndr_print_struct(ndr, "in", "spoolss_SetJob");
20658 ndr_print_ptr(ndr, "handle", r->in.handle);
20660 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20662 ndr_print_uint32(ndr, "job_id", r->in.job_id);
20663 ndr_print_ptr(ndr, "ctr", r->in.ctr);
20666 ndr_print_spoolss_JobInfoContainer(ndr, "ctr", r->in.ctr);
20669 ndr_print_spoolss_JobControl(ndr, "command", r->in.command);
20672 if (flags & NDR_OUT) {
20673 ndr_print_struct(ndr, "out", "spoolss_SetJob");
20675 ndr_print_WERROR(ndr, "result", r->out.result);
20681 static enum ndr_err_code ndr_push_spoolss_GetJob(struct ndr_push *ndr, int flags, const struct spoolss_GetJob *r)
20683 if (flags & NDR_IN) {
20684 if (r->in.handle == NULL) {
20685 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20687 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20688 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.job_id));
20689 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20690 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20691 if (r->in.buffer) {
20692 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
20694 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
20696 if (flags & NDR_OUT) {
20697 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
20700 struct ndr_push *_ndr_info;
20701 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
20702 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
20703 NDR_CHECK(ndr_push_spoolss_JobInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
20704 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
20707 if (r->out.needed == NULL) {
20708 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20710 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
20711 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20713 return NDR_ERR_SUCCESS;
20716 static enum ndr_err_code ndr_pull_spoolss_GetJob(struct ndr_pull *ndr, int flags, struct spoolss_GetJob *r)
20718 uint32_t _ptr_buffer;
20719 uint32_t _ptr_info;
20720 TALLOC_CTX *_mem_save_handle_0;
20721 TALLOC_CTX *_mem_save_buffer_0;
20722 TALLOC_CTX *_mem_save_info_0;
20723 TALLOC_CTX *_mem_save_needed_0;
20724 if (flags & NDR_IN) {
20725 ZERO_STRUCT(r->out);
20727 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20728 NDR_PULL_ALLOC(ndr, r->in.handle);
20730 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20731 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20732 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20733 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20734 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.job_id));
20735 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20736 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20738 NDR_PULL_ALLOC(ndr, r->in.buffer);
20740 r->in.buffer = NULL;
20742 if (r->in.buffer) {
20743 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
20744 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20745 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
20746 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20748 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
20749 NDR_PULL_ALLOC(ndr, r->out.needed);
20750 ZERO_STRUCTP(r->out.needed);
20752 if (flags & NDR_OUT) {
20753 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
20755 NDR_PULL_ALLOC(ndr, r->out.info);
20757 r->out.info = NULL;
20760 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20761 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20763 struct ndr_pull *_ndr_info;
20764 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
20765 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
20766 NDR_CHECK(ndr_pull_spoolss_JobInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
20767 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
20769 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20771 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20772 NDR_PULL_ALLOC(ndr, r->out.needed);
20774 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
20775 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
20776 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
20777 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
20778 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20780 return NDR_ERR_SUCCESS;
20783 _PUBLIC_ void ndr_print_spoolss_GetJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetJob *r)
20785 ndr_print_struct(ndr, name, "spoolss_GetJob");
20787 if (flags & NDR_SET_VALUES) {
20788 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20790 if (flags & NDR_IN) {
20791 ndr_print_struct(ndr, "in", "spoolss_GetJob");
20793 ndr_print_ptr(ndr, "handle", r->in.handle);
20795 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20797 ndr_print_uint32(ndr, "job_id", r->in.job_id);
20798 ndr_print_uint32(ndr, "level", r->in.level);
20799 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20801 if (r->in.buffer) {
20802 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
20805 ndr_print_uint32(ndr, "offered", r->in.offered);
20808 if (flags & NDR_OUT) {
20809 ndr_print_struct(ndr, "out", "spoolss_GetJob");
20811 ndr_print_ptr(ndr, "info", r->out.info);
20814 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
20815 ndr_print_spoolss_JobInfo(ndr, "info", r->out.info);
20818 ndr_print_ptr(ndr, "needed", r->out.needed);
20820 ndr_print_uint32(ndr, "needed", *r->out.needed);
20822 ndr_print_WERROR(ndr, "result", r->out.result);
20828 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumJobs(struct ndr_push *ndr, int flags, const struct _spoolss_EnumJobs *r)
20830 if (flags & NDR_IN) {
20831 if (r->in.handle == NULL) {
20832 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20834 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20835 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.firstjob));
20836 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.numjobs));
20837 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20838 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20839 if (r->in.buffer) {
20840 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
20842 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
20844 if (flags & NDR_OUT) {
20845 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
20847 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
20849 if (r->out.needed == NULL) {
20850 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20852 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
20853 if (r->out.count == NULL) {
20854 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20856 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
20857 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20859 return NDR_ERR_SUCCESS;
20862 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumJobs(struct ndr_pull *ndr, int flags, struct _spoolss_EnumJobs *r)
20864 uint32_t _ptr_buffer;
20865 uint32_t _ptr_info;
20866 TALLOC_CTX *_mem_save_handle_0;
20867 TALLOC_CTX *_mem_save_buffer_0;
20868 TALLOC_CTX *_mem_save_info_0;
20869 TALLOC_CTX *_mem_save_needed_0;
20870 TALLOC_CTX *_mem_save_count_0;
20871 if (flags & NDR_IN) {
20872 ZERO_STRUCT(r->out);
20874 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20875 NDR_PULL_ALLOC(ndr, r->in.handle);
20877 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20878 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20879 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20880 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20881 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.firstjob));
20882 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.numjobs));
20883 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20884 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20886 NDR_PULL_ALLOC(ndr, r->in.buffer);
20888 r->in.buffer = NULL;
20890 if (r->in.buffer) {
20891 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
20892 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20893 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
20894 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20896 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
20897 NDR_PULL_ALLOC(ndr, r->out.needed);
20898 ZERO_STRUCTP(r->out.needed);
20899 NDR_PULL_ALLOC(ndr, r->out.count);
20900 ZERO_STRUCTP(r->out.count);
20902 if (flags & NDR_OUT) {
20903 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
20905 NDR_PULL_ALLOC(ndr, r->out.info);
20907 r->out.info = NULL;
20910 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20911 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20912 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
20913 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20915 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20916 NDR_PULL_ALLOC(ndr, r->out.needed);
20918 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
20919 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
20920 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
20921 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
20922 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20923 NDR_PULL_ALLOC(ndr, r->out.count);
20925 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
20926 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
20927 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
20928 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
20929 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20931 return NDR_ERR_SUCCESS;
20934 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumJobs(struct ndr_push *ndr, int flags, const struct __spoolss_EnumJobs *r)
20936 uint32_t cntr_info_0;
20937 if (flags & NDR_IN) {
20938 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20939 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
20941 if (flags & NDR_OUT) {
20942 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20943 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
20944 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
20946 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20947 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
20950 return NDR_ERR_SUCCESS;
20953 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumJobs(struct ndr_pull *ndr, int flags, struct __spoolss_EnumJobs *r)
20955 uint32_t cntr_info_0;
20956 TALLOC_CTX *_mem_save_info_0;
20957 if (flags & NDR_IN) {
20958 ZERO_STRUCT(r->out);
20960 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20961 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
20963 if (flags & NDR_OUT) {
20964 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
20965 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20966 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20967 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20968 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
20969 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
20971 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20972 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
20974 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20976 return NDR_ERR_SUCCESS;
20979 _PUBLIC_ void ndr_print_spoolss_EnumJobs(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumJobs *r)
20981 uint32_t cntr_info_2;
20982 ndr_print_struct(ndr, name, "spoolss_EnumJobs");
20984 if (flags & NDR_SET_VALUES) {
20985 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20987 if (flags & NDR_IN) {
20988 ndr_print_struct(ndr, "in", "spoolss_EnumJobs");
20990 ndr_print_ptr(ndr, "handle", r->in.handle);
20992 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20994 ndr_print_uint32(ndr, "firstjob", r->in.firstjob);
20995 ndr_print_uint32(ndr, "numjobs", r->in.numjobs);
20996 ndr_print_uint32(ndr, "level", r->in.level);
20997 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20999 if (r->in.buffer) {
21000 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
21003 ndr_print_uint32(ndr, "offered", r->in.offered);
21006 if (flags & NDR_OUT) {
21007 ndr_print_struct(ndr, "out", "spoolss_EnumJobs");
21009 ndr_print_ptr(ndr, "count", r->out.count);
21011 ndr_print_uint32(ndr, "count", *r->out.count);
21013 ndr_print_ptr(ndr, "info", r->out.info);
21015 ndr_print_ptr(ndr, "info", *r->out.info);
21017 if (*r->out.info) {
21018 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
21020 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
21022 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
21023 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
21024 ndr_print_spoolss_JobInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
21032 ndr_print_ptr(ndr, "needed", r->out.needed);
21034 ndr_print_uint32(ndr, "needed", *r->out.needed);
21036 ndr_print_WERROR(ndr, "result", r->out.result);
21042 static enum ndr_err_code ndr_push_spoolss_AddPrinter(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinter *r)
21044 if (flags & NDR_IN) {
21045 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
21046 if (r->in.server) {
21047 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21048 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21049 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21050 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21052 if (r->in.info_ctr == NULL) {
21053 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21055 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
21056 if (r->in.devmode_ctr == NULL) {
21057 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21059 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
21060 if (r->in.secdesc_ctr == NULL) {
21061 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21063 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
21065 if (flags & NDR_OUT) {
21066 if (r->out.handle == NULL) {
21067 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21069 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
21070 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21072 return NDR_ERR_SUCCESS;
21075 static enum ndr_err_code ndr_pull_spoolss_AddPrinter(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinter *r)
21077 uint32_t _ptr_server;
21078 TALLOC_CTX *_mem_save_server_0;
21079 TALLOC_CTX *_mem_save_info_ctr_0;
21080 TALLOC_CTX *_mem_save_devmode_ctr_0;
21081 TALLOC_CTX *_mem_save_secdesc_ctr_0;
21082 TALLOC_CTX *_mem_save_handle_0;
21083 if (flags & NDR_IN) {
21084 ZERO_STRUCT(r->out);
21086 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
21088 NDR_PULL_ALLOC(ndr, r->in.server);
21090 r->in.server = NULL;
21092 if (r->in.server) {
21093 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
21094 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
21095 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
21096 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
21097 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
21098 return 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));
21100 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
21101 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
21102 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
21104 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21105 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
21107 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
21108 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
21109 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
21110 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
21111 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21112 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
21114 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
21115 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
21116 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
21117 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
21118 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21119 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
21121 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
21122 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
21123 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
21124 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
21125 NDR_PULL_ALLOC(ndr, r->out.handle);
21126 ZERO_STRUCTP(r->out.handle);
21128 if (flags & NDR_OUT) {
21129 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21130 NDR_PULL_ALLOC(ndr, r->out.handle);
21132 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21133 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
21134 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
21135 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21136 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21138 return NDR_ERR_SUCCESS;
21141 _PUBLIC_ void ndr_print_spoolss_AddPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinter *r)
21143 ndr_print_struct(ndr, name, "spoolss_AddPrinter");
21145 if (flags & NDR_SET_VALUES) {
21146 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21148 if (flags & NDR_IN) {
21149 ndr_print_struct(ndr, "in", "spoolss_AddPrinter");
21151 ndr_print_ptr(ndr, "server", r->in.server);
21153 if (r->in.server) {
21154 ndr_print_string(ndr, "server", r->in.server);
21157 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
21159 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
21161 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
21163 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
21165 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
21167 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
21171 if (flags & NDR_OUT) {
21172 ndr_print_struct(ndr, "out", "spoolss_AddPrinter");
21174 ndr_print_ptr(ndr, "handle", r->out.handle);
21176 ndr_print_policy_handle(ndr, "handle", r->out.handle);
21178 ndr_print_WERROR(ndr, "result", r->out.result);
21184 static enum ndr_err_code ndr_push_spoolss_DeletePrinter(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinter *r)
21186 if (flags & NDR_IN) {
21187 if (r->in.handle == NULL) {
21188 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21190 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21192 if (flags & NDR_OUT) {
21193 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21195 return NDR_ERR_SUCCESS;
21198 static enum ndr_err_code ndr_pull_spoolss_DeletePrinter(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinter *r)
21200 TALLOC_CTX *_mem_save_handle_0;
21201 if (flags & NDR_IN) {
21202 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21203 NDR_PULL_ALLOC(ndr, r->in.handle);
21205 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21206 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21207 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21208 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21210 if (flags & NDR_OUT) {
21211 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21213 return NDR_ERR_SUCCESS;
21216 _PUBLIC_ void ndr_print_spoolss_DeletePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinter *r)
21218 ndr_print_struct(ndr, name, "spoolss_DeletePrinter");
21220 if (flags & NDR_SET_VALUES) {
21221 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21223 if (flags & NDR_IN) {
21224 ndr_print_struct(ndr, "in", "spoolss_DeletePrinter");
21226 ndr_print_ptr(ndr, "handle", r->in.handle);
21228 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21232 if (flags & NDR_OUT) {
21233 ndr_print_struct(ndr, "out", "spoolss_DeletePrinter");
21235 ndr_print_WERROR(ndr, "result", r->out.result);
21241 static enum ndr_err_code ndr_push_spoolss_SetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_SetPrinter *r)
21243 if (flags & NDR_IN) {
21244 if (r->in.handle == NULL) {
21245 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21247 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21248 if (r->in.info_ctr == NULL) {
21249 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21251 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
21252 if (r->in.devmode_ctr == NULL) {
21253 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21255 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
21256 if (r->in.secdesc_ctr == NULL) {
21257 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21259 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
21260 NDR_CHECK(ndr_push_spoolss_PrinterControl(ndr, NDR_SCALARS, r->in.command));
21262 if (flags & NDR_OUT) {
21263 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21265 return NDR_ERR_SUCCESS;
21268 static enum ndr_err_code ndr_pull_spoolss_SetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinter *r)
21270 TALLOC_CTX *_mem_save_handle_0;
21271 TALLOC_CTX *_mem_save_info_ctr_0;
21272 TALLOC_CTX *_mem_save_devmode_ctr_0;
21273 TALLOC_CTX *_mem_save_secdesc_ctr_0;
21274 if (flags & NDR_IN) {
21275 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21276 NDR_PULL_ALLOC(ndr, r->in.handle);
21278 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21279 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21280 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21281 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21282 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21283 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
21285 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
21286 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
21287 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
21288 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
21289 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21290 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
21292 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
21293 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
21294 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
21295 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
21296 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21297 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
21299 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
21300 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
21301 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
21302 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
21303 NDR_CHECK(ndr_pull_spoolss_PrinterControl(ndr, NDR_SCALARS, &r->in.command));
21305 if (flags & NDR_OUT) {
21306 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21308 return NDR_ERR_SUCCESS;
21311 _PUBLIC_ void ndr_print_spoolss_SetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinter *r)
21313 ndr_print_struct(ndr, name, "spoolss_SetPrinter");
21315 if (flags & NDR_SET_VALUES) {
21316 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21318 if (flags & NDR_IN) {
21319 ndr_print_struct(ndr, "in", "spoolss_SetPrinter");
21321 ndr_print_ptr(ndr, "handle", r->in.handle);
21323 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21325 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
21327 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
21329 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
21331 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
21333 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
21335 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
21337 ndr_print_spoolss_PrinterControl(ndr, "command", r->in.command);
21340 if (flags & NDR_OUT) {
21341 ndr_print_struct(ndr, "out", "spoolss_SetPrinter");
21343 ndr_print_WERROR(ndr, "result", r->out.result);
21349 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinter *r)
21351 if (flags & NDR_IN) {
21352 if (r->in.handle == NULL) {
21353 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21355 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21356 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21357 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
21358 if (r->in.buffer) {
21359 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
21361 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21363 if (flags & NDR_OUT) {
21364 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
21367 struct ndr_push *_ndr_info;
21368 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21369 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
21370 NDR_CHECK(ndr_push_spoolss_PrinterInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
21371 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21374 if (r->out.needed == NULL) {
21375 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21377 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21378 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21380 return NDR_ERR_SUCCESS;
21383 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinter *r)
21385 uint32_t _ptr_buffer;
21386 uint32_t _ptr_info;
21387 TALLOC_CTX *_mem_save_handle_0;
21388 TALLOC_CTX *_mem_save_buffer_0;
21389 TALLOC_CTX *_mem_save_info_0;
21390 TALLOC_CTX *_mem_save_needed_0;
21391 if (flags & NDR_IN) {
21392 ZERO_STRUCT(r->out);
21394 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21395 NDR_PULL_ALLOC(ndr, r->in.handle);
21397 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21398 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21399 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21400 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21401 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21402 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
21404 NDR_PULL_ALLOC(ndr, r->in.buffer);
21406 r->in.buffer = NULL;
21408 if (r->in.buffer) {
21409 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21410 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
21411 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
21412 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
21414 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21415 NDR_PULL_ALLOC(ndr, r->out.needed);
21416 ZERO_STRUCTP(r->out.needed);
21418 if (flags & NDR_OUT) {
21419 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
21421 NDR_PULL_ALLOC(ndr, r->out.info);
21423 r->out.info = NULL;
21426 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21427 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21429 struct ndr_pull *_ndr_info;
21430 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21431 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
21432 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
21433 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21435 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21437 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21438 NDR_PULL_ALLOC(ndr, r->out.needed);
21440 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21441 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21442 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21443 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21444 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21446 return NDR_ERR_SUCCESS;
21449 _PUBLIC_ void ndr_print_spoolss_GetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinter *r)
21451 ndr_print_struct(ndr, name, "spoolss_GetPrinter");
21453 if (flags & NDR_SET_VALUES) {
21454 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21456 if (flags & NDR_IN) {
21457 ndr_print_struct(ndr, "in", "spoolss_GetPrinter");
21459 ndr_print_ptr(ndr, "handle", r->in.handle);
21461 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21463 ndr_print_uint32(ndr, "level", r->in.level);
21464 ndr_print_ptr(ndr, "buffer", r->in.buffer);
21466 if (r->in.buffer) {
21467 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
21470 ndr_print_uint32(ndr, "offered", r->in.offered);
21473 if (flags & NDR_OUT) {
21474 ndr_print_struct(ndr, "out", "spoolss_GetPrinter");
21476 ndr_print_ptr(ndr, "info", r->out.info);
21479 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
21480 ndr_print_spoolss_PrinterInfo(ndr, "info", r->out.info);
21483 ndr_print_ptr(ndr, "needed", r->out.needed);
21485 ndr_print_uint32(ndr, "needed", *r->out.needed);
21487 ndr_print_WERROR(ndr, "result", r->out.result);
21493 static enum ndr_err_code ndr_push_spoolss_AddPrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterDriver *r)
21495 if (flags & NDR_IN) {
21496 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
21497 if (r->in.servername) {
21498 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
21499 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21500 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
21501 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21503 if (r->in.info_ctr == NULL) {
21504 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21506 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
21508 if (flags & NDR_OUT) {
21509 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21511 return NDR_ERR_SUCCESS;
21514 static enum ndr_err_code ndr_pull_spoolss_AddPrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterDriver *r)
21516 uint32_t _ptr_servername;
21517 TALLOC_CTX *_mem_save_servername_0;
21518 TALLOC_CTX *_mem_save_info_ctr_0;
21519 if (flags & NDR_IN) {
21520 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
21521 if (_ptr_servername) {
21522 NDR_PULL_ALLOC(ndr, r->in.servername);
21524 r->in.servername = NULL;
21526 if (r->in.servername) {
21527 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
21528 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
21529 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
21530 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
21531 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
21532 return 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));
21534 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
21535 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
21536 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
21538 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21539 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
21541 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
21542 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
21543 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
21544 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
21546 if (flags & NDR_OUT) {
21547 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21549 return NDR_ERR_SUCCESS;
21552 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterDriver *r)
21554 ndr_print_struct(ndr, name, "spoolss_AddPrinterDriver");
21556 if (flags & NDR_SET_VALUES) {
21557 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21559 if (flags & NDR_IN) {
21560 ndr_print_struct(ndr, "in", "spoolss_AddPrinterDriver");
21562 ndr_print_ptr(ndr, "servername", r->in.servername);
21564 if (r->in.servername) {
21565 ndr_print_string(ndr, "servername", r->in.servername);
21568 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
21570 ndr_print_spoolss_AddDriverInfoCtr(ndr, "info_ctr", r->in.info_ctr);
21574 if (flags & NDR_OUT) {
21575 ndr_print_struct(ndr, "out", "spoolss_AddPrinterDriver");
21577 ndr_print_WERROR(ndr, "result", r->out.result);
21583 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinterDrivers(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinterDrivers *r)
21585 if (flags & NDR_IN) {
21586 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
21587 if (r->in.server) {
21588 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21589 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21590 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21591 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21593 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
21594 if (r->in.environment) {
21595 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
21596 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21597 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
21598 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21600 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21601 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
21602 if (r->in.buffer) {
21603 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
21605 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21607 if (flags & NDR_OUT) {
21608 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
21610 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
21612 if (r->out.needed == NULL) {
21613 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21615 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21616 if (r->out.count == NULL) {
21617 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21619 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
21620 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21622 return NDR_ERR_SUCCESS;
21625 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinterDrivers *r)
21627 uint32_t _ptr_server;
21628 uint32_t _ptr_environment;
21629 uint32_t _ptr_buffer;
21630 uint32_t _ptr_info;
21631 TALLOC_CTX *_mem_save_server_0;
21632 TALLOC_CTX *_mem_save_environment_0;
21633 TALLOC_CTX *_mem_save_buffer_0;
21634 TALLOC_CTX *_mem_save_info_0;
21635 TALLOC_CTX *_mem_save_needed_0;
21636 TALLOC_CTX *_mem_save_count_0;
21637 if (flags & NDR_IN) {
21638 ZERO_STRUCT(r->out);
21640 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
21642 NDR_PULL_ALLOC(ndr, r->in.server);
21644 r->in.server = NULL;
21646 if (r->in.server) {
21647 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
21648 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
21649 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
21650 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
21651 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
21652 return 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));
21654 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
21655 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
21656 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
21658 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
21659 if (_ptr_environment) {
21660 NDR_PULL_ALLOC(ndr, r->in.environment);
21662 r->in.environment = NULL;
21664 if (r->in.environment) {
21665 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
21666 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
21667 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
21668 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
21669 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
21670 return 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));
21672 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
21673 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
21674 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
21676 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21677 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
21679 NDR_PULL_ALLOC(ndr, r->in.buffer);
21681 r->in.buffer = NULL;
21683 if (r->in.buffer) {
21684 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21685 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
21686 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
21687 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
21689 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21690 NDR_PULL_ALLOC(ndr, r->out.needed);
21691 ZERO_STRUCTP(r->out.needed);
21692 NDR_PULL_ALLOC(ndr, r->out.count);
21693 ZERO_STRUCTP(r->out.count);
21695 if (flags & NDR_OUT) {
21696 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
21698 NDR_PULL_ALLOC(ndr, r->out.info);
21700 r->out.info = NULL;
21703 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21704 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21705 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
21706 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21708 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21709 NDR_PULL_ALLOC(ndr, r->out.needed);
21711 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21712 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21713 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21714 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21715 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21716 NDR_PULL_ALLOC(ndr, r->out.count);
21718 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
21719 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
21720 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
21721 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
21722 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21724 return NDR_ERR_SUCCESS;
21727 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinterDrivers(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinterDrivers *r)
21729 uint32_t cntr_info_0;
21730 if (flags & NDR_IN) {
21731 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21732 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
21734 if (flags & NDR_OUT) {
21735 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21736 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
21737 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
21739 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21740 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
21743 return NDR_ERR_SUCCESS;
21746 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinterDrivers *r)
21748 uint32_t cntr_info_0;
21749 TALLOC_CTX *_mem_save_info_0;
21750 if (flags & NDR_IN) {
21751 ZERO_STRUCT(r->out);
21753 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21754 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
21756 if (flags & NDR_OUT) {
21757 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
21758 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21759 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21760 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21761 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
21762 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
21764 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21765 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
21767 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21769 return NDR_ERR_SUCCESS;
21772 _PUBLIC_ void ndr_print_spoolss_EnumPrinterDrivers(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterDrivers *r)
21774 uint32_t cntr_info_2;
21775 ndr_print_struct(ndr, name, "spoolss_EnumPrinterDrivers");
21777 if (flags & NDR_SET_VALUES) {
21778 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21780 if (flags & NDR_IN) {
21781 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterDrivers");
21783 ndr_print_ptr(ndr, "server", r->in.server);
21785 if (r->in.server) {
21786 ndr_print_string(ndr, "server", r->in.server);
21789 ndr_print_ptr(ndr, "environment", r->in.environment);
21791 if (r->in.environment) {
21792 ndr_print_string(ndr, "environment", r->in.environment);
21795 ndr_print_uint32(ndr, "level", r->in.level);
21796 ndr_print_ptr(ndr, "buffer", r->in.buffer);
21798 if (r->in.buffer) {
21799 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
21802 ndr_print_uint32(ndr, "offered", r->in.offered);
21805 if (flags & NDR_OUT) {
21806 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterDrivers");
21808 ndr_print_ptr(ndr, "count", r->out.count);
21810 ndr_print_uint32(ndr, "count", *r->out.count);
21812 ndr_print_ptr(ndr, "info", r->out.info);
21814 ndr_print_ptr(ndr, "info", *r->out.info);
21816 if (*r->out.info) {
21817 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
21819 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
21821 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
21822 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
21823 ndr_print_spoolss_DriverInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
21831 ndr_print_ptr(ndr, "needed", r->out.needed);
21833 ndr_print_uint32(ndr, "needed", *r->out.needed);
21835 ndr_print_WERROR(ndr, "result", r->out.result);
21841 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriver *r)
21843 if (flags & NDR_IN) {
21844 if (r->in.handle == NULL) {
21845 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21847 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21848 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.architecture));
21849 if (r->in.architecture) {
21850 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
21851 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21852 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
21853 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21855 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21856 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
21857 if (r->in.buffer) {
21858 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
21860 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21862 if (flags & NDR_OUT) {
21863 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
21866 struct ndr_push *_ndr_info;
21867 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21868 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
21869 NDR_CHECK(ndr_push_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
21870 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21873 if (r->out.needed == NULL) {
21874 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21876 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21877 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21879 return NDR_ERR_SUCCESS;
21882 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriver *r)
21884 uint32_t _ptr_architecture;
21885 uint32_t _ptr_buffer;
21886 uint32_t _ptr_info;
21887 TALLOC_CTX *_mem_save_handle_0;
21888 TALLOC_CTX *_mem_save_architecture_0;
21889 TALLOC_CTX *_mem_save_buffer_0;
21890 TALLOC_CTX *_mem_save_info_0;
21891 TALLOC_CTX *_mem_save_needed_0;
21892 if (flags & NDR_IN) {
21893 ZERO_STRUCT(r->out);
21895 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21896 NDR_PULL_ALLOC(ndr, r->in.handle);
21898 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21899 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21900 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21901 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21902 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
21903 if (_ptr_architecture) {
21904 NDR_PULL_ALLOC(ndr, r->in.architecture);
21906 r->in.architecture = NULL;
21908 if (r->in.architecture) {
21909 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
21910 NDR_PULL_SET_MEM_CTX(ndr, r->in.architecture, 0);
21911 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
21912 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
21913 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
21914 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.architecture), ndr_get_array_length(ndr, &r->in.architecture));
21916 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
21917 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
21918 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
21920 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21921 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
21923 NDR_PULL_ALLOC(ndr, r->in.buffer);
21925 r->in.buffer = NULL;
21927 if (r->in.buffer) {
21928 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21929 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
21930 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
21931 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
21933 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21934 NDR_PULL_ALLOC(ndr, r->out.needed);
21935 ZERO_STRUCTP(r->out.needed);
21937 if (flags & NDR_OUT) {
21938 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
21940 NDR_PULL_ALLOC(ndr, r->out.info);
21942 r->out.info = NULL;
21945 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21946 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21948 struct ndr_pull *_ndr_info;
21949 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21950 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
21951 NDR_CHECK(ndr_pull_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
21952 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21954 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21956 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21957 NDR_PULL_ALLOC(ndr, r->out.needed);
21959 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21960 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21961 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21962 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21963 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21965 return NDR_ERR_SUCCESS;
21968 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriver *r)
21970 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriver");
21972 if (flags & NDR_SET_VALUES) {
21973 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21975 if (flags & NDR_IN) {
21976 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriver");
21978 ndr_print_ptr(ndr, "handle", r->in.handle);
21980 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21982 ndr_print_ptr(ndr, "architecture", r->in.architecture);
21984 if (r->in.architecture) {
21985 ndr_print_string(ndr, "architecture", r->in.architecture);
21988 ndr_print_uint32(ndr, "level", r->in.level);
21989 ndr_print_ptr(ndr, "buffer", r->in.buffer);
21991 if (r->in.buffer) {
21992 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
21995 ndr_print_uint32(ndr, "offered", r->in.offered);
21998 if (flags & NDR_OUT) {
21999 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriver");
22001 ndr_print_ptr(ndr, "info", r->out.info);
22004 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
22005 ndr_print_spoolss_DriverInfo(ndr, "info", r->out.info);
22008 ndr_print_ptr(ndr, "needed", r->out.needed);
22010 ndr_print_uint32(ndr, "needed", *r->out.needed);
22012 ndr_print_WERROR(ndr, "result", r->out.result);
22018 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinterDriverDirectory(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriverDirectory *r)
22020 if (flags & NDR_IN) {
22021 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
22022 if (r->in.server) {
22023 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22024 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22025 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22026 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22028 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
22029 if (r->in.environment) {
22030 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
22031 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22032 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
22033 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22035 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22036 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
22037 if (r->in.buffer) {
22038 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
22040 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22042 if (flags & NDR_OUT) {
22043 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
22046 struct ndr_push *_ndr_info;
22047 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
22048 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
22049 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
22050 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
22053 if (r->out.needed == NULL) {
22054 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22056 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22057 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22059 return NDR_ERR_SUCCESS;
22062 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinterDriverDirectory(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriverDirectory *r)
22064 uint32_t _ptr_server;
22065 uint32_t _ptr_environment;
22066 uint32_t _ptr_buffer;
22067 uint32_t _ptr_info;
22068 TALLOC_CTX *_mem_save_server_0;
22069 TALLOC_CTX *_mem_save_environment_0;
22070 TALLOC_CTX *_mem_save_buffer_0;
22071 TALLOC_CTX *_mem_save_info_0;
22072 TALLOC_CTX *_mem_save_needed_0;
22073 if (flags & NDR_IN) {
22074 ZERO_STRUCT(r->out);
22076 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
22078 NDR_PULL_ALLOC(ndr, r->in.server);
22080 r->in.server = NULL;
22082 if (r->in.server) {
22083 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
22084 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
22085 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
22086 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
22087 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
22088 return 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));
22090 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
22091 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
22092 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
22094 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
22095 if (_ptr_environment) {
22096 NDR_PULL_ALLOC(ndr, r->in.environment);
22098 r->in.environment = NULL;
22100 if (r->in.environment) {
22101 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
22102 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
22103 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
22104 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
22105 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
22106 return 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));
22108 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
22109 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
22110 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
22112 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22113 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
22115 NDR_PULL_ALLOC(ndr, r->in.buffer);
22117 r->in.buffer = NULL;
22119 if (r->in.buffer) {
22120 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
22121 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
22122 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
22123 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22125 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22126 NDR_PULL_ALLOC(ndr, r->out.needed);
22127 ZERO_STRUCTP(r->out.needed);
22129 if (flags & NDR_OUT) {
22130 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
22132 NDR_PULL_ALLOC(ndr, r->out.info);
22134 r->out.info = NULL;
22137 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22138 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22140 struct ndr_pull *_ndr_info;
22141 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
22142 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
22143 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
22144 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
22146 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22148 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22149 NDR_PULL_ALLOC(ndr, r->out.needed);
22151 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22152 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22153 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22154 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22155 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22157 return NDR_ERR_SUCCESS;
22160 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriverDirectory(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriverDirectory *r)
22162 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriverDirectory");
22164 if (flags & NDR_SET_VALUES) {
22165 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22167 if (flags & NDR_IN) {
22168 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriverDirectory");
22170 ndr_print_ptr(ndr, "server", r->in.server);
22172 if (r->in.server) {
22173 ndr_print_string(ndr, "server", r->in.server);
22176 ndr_print_ptr(ndr, "environment", r->in.environment);
22178 if (r->in.environment) {
22179 ndr_print_string(ndr, "environment", r->in.environment);
22182 ndr_print_uint32(ndr, "level", r->in.level);
22183 ndr_print_ptr(ndr, "buffer", r->in.buffer);
22185 if (r->in.buffer) {
22186 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
22189 ndr_print_uint32(ndr, "offered", r->in.offered);
22192 if (flags & NDR_OUT) {
22193 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriverDirectory");
22195 ndr_print_ptr(ndr, "info", r->out.info);
22198 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
22199 ndr_print_spoolss_DriverDirectoryInfo(ndr, "info", r->out.info);
22202 ndr_print_ptr(ndr, "needed", r->out.needed);
22204 ndr_print_uint32(ndr, "needed", *r->out.needed);
22206 ndr_print_WERROR(ndr, "result", r->out.result);
22212 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDriver *r)
22214 if (flags & NDR_IN) {
22215 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
22216 if (r->in.server) {
22217 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22218 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22219 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22220 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22222 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
22223 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22224 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
22225 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22226 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
22227 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22228 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
22229 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver, ndr_charset_length(r->in.driver, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22231 if (flags & NDR_OUT) {
22232 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22234 return NDR_ERR_SUCCESS;
22237 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDriver *r)
22239 uint32_t _ptr_server;
22240 TALLOC_CTX *_mem_save_server_0;
22241 if (flags & NDR_IN) {
22242 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
22244 NDR_PULL_ALLOC(ndr, r->in.server);
22246 r->in.server = NULL;
22248 if (r->in.server) {
22249 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
22250 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
22251 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
22252 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
22253 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
22254 return 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));
22256 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
22257 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
22258 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
22260 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
22261 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
22262 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
22263 return 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));
22265 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
22266 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
22267 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver));
22268 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.driver));
22269 if (ndr_get_array_length(ndr, &r->in.driver) > ndr_get_array_size(ndr, &r->in.driver)) {
22270 return 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));
22272 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t)));
22273 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t), CH_UTF16));
22275 if (flags & NDR_OUT) {
22276 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22278 return NDR_ERR_SUCCESS;
22281 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDriver *r)
22283 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDriver");
22285 if (flags & NDR_SET_VALUES) {
22286 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22288 if (flags & NDR_IN) {
22289 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDriver");
22291 ndr_print_ptr(ndr, "server", r->in.server);
22293 if (r->in.server) {
22294 ndr_print_string(ndr, "server", r->in.server);
22297 ndr_print_string(ndr, "architecture", r->in.architecture);
22298 ndr_print_string(ndr, "driver", r->in.driver);
22301 if (flags & NDR_OUT) {
22302 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDriver");
22304 ndr_print_WERROR(ndr, "result", r->out.result);
22310 static enum ndr_err_code ndr_push_spoolss_AddPrintProcessor(struct ndr_push *ndr, int flags, const struct spoolss_AddPrintProcessor *r)
22312 if (flags & NDR_IN) {
22313 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
22314 if (r->in.server) {
22315 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22316 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22317 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22318 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22320 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
22321 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22322 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
22323 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22324 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.path_name, CH_UTF16)));
22325 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22326 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.path_name, CH_UTF16)));
22327 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));
22328 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
22329 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22330 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
22331 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));
22333 if (flags & NDR_OUT) {
22334 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22336 return NDR_ERR_SUCCESS;
22339 static enum ndr_err_code ndr_pull_spoolss_AddPrintProcessor(struct ndr_pull *ndr, int flags, struct spoolss_AddPrintProcessor *r)
22341 uint32_t _ptr_server;
22342 TALLOC_CTX *_mem_save_server_0;
22343 if (flags & NDR_IN) {
22344 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
22346 NDR_PULL_ALLOC(ndr, r->in.server);
22348 r->in.server = NULL;
22350 if (r->in.server) {
22351 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
22352 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
22353 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
22354 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
22355 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
22356 return 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));
22358 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
22359 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
22360 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
22362 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
22363 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
22364 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
22365 return 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));
22367 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
22368 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
22369 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.path_name));
22370 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.path_name));
22371 if (ndr_get_array_length(ndr, &r->in.path_name) > ndr_get_array_size(ndr, &r->in.path_name)) {
22372 return 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));
22374 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.path_name), sizeof(uint16_t)));
22375 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));
22376 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.print_processor_name));
22377 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.print_processor_name));
22378 if (ndr_get_array_length(ndr, &r->in.print_processor_name) > ndr_get_array_size(ndr, &r->in.print_processor_name)) {
22379 return 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));
22381 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.print_processor_name), sizeof(uint16_t)));
22382 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));
22384 if (flags & NDR_OUT) {
22385 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22387 return NDR_ERR_SUCCESS;
22390 _PUBLIC_ void ndr_print_spoolss_AddPrintProcessor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrintProcessor *r)
22392 ndr_print_struct(ndr, name, "spoolss_AddPrintProcessor");
22394 if (flags & NDR_SET_VALUES) {
22395 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22397 if (flags & NDR_IN) {
22398 ndr_print_struct(ndr, "in", "spoolss_AddPrintProcessor");
22400 ndr_print_ptr(ndr, "server", r->in.server);
22402 if (r->in.server) {
22403 ndr_print_string(ndr, "server", r->in.server);
22406 ndr_print_string(ndr, "architecture", r->in.architecture);
22407 ndr_print_string(ndr, "path_name", r->in.path_name);
22408 ndr_print_string(ndr, "print_processor_name", r->in.print_processor_name);
22411 if (flags & NDR_OUT) {
22412 ndr_print_struct(ndr, "out", "spoolss_AddPrintProcessor");
22414 ndr_print_WERROR(ndr, "result", r->out.result);
22420 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrintProcessors(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrintProcessors *r)
22422 if (flags & NDR_IN) {
22423 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
22424 if (r->in.servername) {
22425 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, 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.servername, CH_UTF16)));
22428 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22430 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
22431 if (r->in.environment) {
22432 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
22433 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22434 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
22435 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22437 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22438 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
22439 if (r->in.buffer) {
22440 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
22442 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22444 if (flags & NDR_OUT) {
22445 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
22447 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
22449 if (r->out.needed == NULL) {
22450 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22452 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22453 if (r->out.count == NULL) {
22454 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22456 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
22457 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22459 return NDR_ERR_SUCCESS;
22462 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrintProcessors(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrintProcessors *r)
22464 uint32_t _ptr_servername;
22465 uint32_t _ptr_environment;
22466 uint32_t _ptr_buffer;
22467 uint32_t _ptr_info;
22468 TALLOC_CTX *_mem_save_servername_0;
22469 TALLOC_CTX *_mem_save_environment_0;
22470 TALLOC_CTX *_mem_save_buffer_0;
22471 TALLOC_CTX *_mem_save_info_0;
22472 TALLOC_CTX *_mem_save_needed_0;
22473 TALLOC_CTX *_mem_save_count_0;
22474 if (flags & NDR_IN) {
22475 ZERO_STRUCT(r->out);
22477 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
22478 if (_ptr_servername) {
22479 NDR_PULL_ALLOC(ndr, r->in.servername);
22481 r->in.servername = NULL;
22483 if (r->in.servername) {
22484 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
22485 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
22486 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
22487 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
22488 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
22489 return 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));
22491 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
22492 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
22493 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
22495 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
22496 if (_ptr_environment) {
22497 NDR_PULL_ALLOC(ndr, r->in.environment);
22499 r->in.environment = NULL;
22501 if (r->in.environment) {
22502 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
22503 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
22504 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
22505 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
22506 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
22507 return 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));
22509 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
22510 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
22511 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
22513 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22514 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
22516 NDR_PULL_ALLOC(ndr, r->in.buffer);
22518 r->in.buffer = NULL;
22520 if (r->in.buffer) {
22521 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
22522 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
22523 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
22524 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22526 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22527 NDR_PULL_ALLOC(ndr, r->out.needed);
22528 ZERO_STRUCTP(r->out.needed);
22529 NDR_PULL_ALLOC(ndr, r->out.count);
22530 ZERO_STRUCTP(r->out.count);
22532 if (flags & NDR_OUT) {
22533 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
22535 NDR_PULL_ALLOC(ndr, r->out.info);
22537 r->out.info = NULL;
22540 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22541 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22542 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
22543 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22545 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22546 NDR_PULL_ALLOC(ndr, r->out.needed);
22548 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22549 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22550 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22551 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22552 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22553 NDR_PULL_ALLOC(ndr, r->out.count);
22555 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
22556 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
22557 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
22558 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
22559 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22561 return NDR_ERR_SUCCESS;
22564 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrintProcessors(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrintProcessors *r)
22566 uint32_t cntr_info_0;
22567 if (flags & NDR_IN) {
22568 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22569 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
22571 if (flags & NDR_OUT) {
22572 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22573 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
22574 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
22576 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22577 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
22580 return NDR_ERR_SUCCESS;
22583 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrintProcessors(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrintProcessors *r)
22585 uint32_t cntr_info_0;
22586 TALLOC_CTX *_mem_save_info_0;
22587 if (flags & NDR_IN) {
22588 ZERO_STRUCT(r->out);
22590 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22591 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
22593 if (flags & NDR_OUT) {
22594 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
22595 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22596 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22597 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22598 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
22599 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
22601 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22602 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
22604 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22606 return NDR_ERR_SUCCESS;
22609 _PUBLIC_ void ndr_print_spoolss_EnumPrintProcessors(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrintProcessors *r)
22611 uint32_t cntr_info_2;
22612 ndr_print_struct(ndr, name, "spoolss_EnumPrintProcessors");
22614 if (flags & NDR_SET_VALUES) {
22615 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22617 if (flags & NDR_IN) {
22618 ndr_print_struct(ndr, "in", "spoolss_EnumPrintProcessors");
22620 ndr_print_ptr(ndr, "servername", r->in.servername);
22622 if (r->in.servername) {
22623 ndr_print_string(ndr, "servername", r->in.servername);
22626 ndr_print_ptr(ndr, "environment", r->in.environment);
22628 if (r->in.environment) {
22629 ndr_print_string(ndr, "environment", r->in.environment);
22632 ndr_print_uint32(ndr, "level", r->in.level);
22633 ndr_print_ptr(ndr, "buffer", r->in.buffer);
22635 if (r->in.buffer) {
22636 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
22639 ndr_print_uint32(ndr, "offered", r->in.offered);
22642 if (flags & NDR_OUT) {
22643 ndr_print_struct(ndr, "out", "spoolss_EnumPrintProcessors");
22645 ndr_print_ptr(ndr, "count", r->out.count);
22647 ndr_print_uint32(ndr, "count", *r->out.count);
22649 ndr_print_ptr(ndr, "info", r->out.info);
22651 ndr_print_ptr(ndr, "info", *r->out.info);
22653 if (*r->out.info) {
22654 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
22656 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
22658 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
22659 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
22660 ndr_print_spoolss_PrintProcessorInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
22668 ndr_print_ptr(ndr, "needed", r->out.needed);
22670 ndr_print_uint32(ndr, "needed", *r->out.needed);
22672 ndr_print_WERROR(ndr, "result", r->out.result);
22678 static enum ndr_err_code ndr_push_spoolss_GetPrintProcessorDirectory(struct ndr_push *ndr, int flags, const struct spoolss_GetPrintProcessorDirectory *r)
22680 if (flags & NDR_IN) {
22681 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
22682 if (r->in.server) {
22683 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22684 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22685 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22686 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22688 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
22689 if (r->in.environment) {
22690 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
22691 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22692 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
22693 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22695 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22696 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
22697 if (r->in.buffer) {
22698 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
22700 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22702 if (flags & NDR_OUT) {
22703 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
22706 struct ndr_push *_ndr_info;
22707 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
22708 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
22709 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
22710 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
22713 if (r->out.needed == NULL) {
22714 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22716 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22717 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22719 return NDR_ERR_SUCCESS;
22722 static enum ndr_err_code ndr_pull_spoolss_GetPrintProcessorDirectory(struct ndr_pull *ndr, int flags, struct spoolss_GetPrintProcessorDirectory *r)
22724 uint32_t _ptr_server;
22725 uint32_t _ptr_environment;
22726 uint32_t _ptr_buffer;
22727 uint32_t _ptr_info;
22728 TALLOC_CTX *_mem_save_server_0;
22729 TALLOC_CTX *_mem_save_environment_0;
22730 TALLOC_CTX *_mem_save_buffer_0;
22731 TALLOC_CTX *_mem_save_info_0;
22732 TALLOC_CTX *_mem_save_needed_0;
22733 if (flags & NDR_IN) {
22734 ZERO_STRUCT(r->out);
22736 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
22738 NDR_PULL_ALLOC(ndr, r->in.server);
22740 r->in.server = NULL;
22742 if (r->in.server) {
22743 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
22744 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
22745 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
22746 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
22747 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
22748 return 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));
22750 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
22751 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
22752 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
22754 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
22755 if (_ptr_environment) {
22756 NDR_PULL_ALLOC(ndr, r->in.environment);
22758 r->in.environment = NULL;
22760 if (r->in.environment) {
22761 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
22762 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
22763 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
22764 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
22765 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
22766 return 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));
22768 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
22769 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
22770 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
22772 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22773 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
22775 NDR_PULL_ALLOC(ndr, r->in.buffer);
22777 r->in.buffer = NULL;
22779 if (r->in.buffer) {
22780 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
22781 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
22782 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
22783 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22785 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22786 NDR_PULL_ALLOC(ndr, r->out.needed);
22787 ZERO_STRUCTP(r->out.needed);
22789 if (flags & NDR_OUT) {
22790 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
22792 NDR_PULL_ALLOC(ndr, r->out.info);
22794 r->out.info = NULL;
22797 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22798 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22800 struct ndr_pull *_ndr_info;
22801 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
22802 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
22803 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
22804 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
22806 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22808 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22809 NDR_PULL_ALLOC(ndr, r->out.needed);
22811 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22812 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22813 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22814 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22815 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22817 return NDR_ERR_SUCCESS;
22820 _PUBLIC_ void ndr_print_spoolss_GetPrintProcessorDirectory(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrintProcessorDirectory *r)
22822 ndr_print_struct(ndr, name, "spoolss_GetPrintProcessorDirectory");
22824 if (flags & NDR_SET_VALUES) {
22825 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22827 if (flags & NDR_IN) {
22828 ndr_print_struct(ndr, "in", "spoolss_GetPrintProcessorDirectory");
22830 ndr_print_ptr(ndr, "server", r->in.server);
22832 if (r->in.server) {
22833 ndr_print_string(ndr, "server", r->in.server);
22836 ndr_print_ptr(ndr, "environment", r->in.environment);
22838 if (r->in.environment) {
22839 ndr_print_string(ndr, "environment", r->in.environment);
22842 ndr_print_uint32(ndr, "level", r->in.level);
22843 ndr_print_ptr(ndr, "buffer", r->in.buffer);
22845 if (r->in.buffer) {
22846 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
22849 ndr_print_uint32(ndr, "offered", r->in.offered);
22852 if (flags & NDR_OUT) {
22853 ndr_print_struct(ndr, "out", "spoolss_GetPrintProcessorDirectory");
22855 ndr_print_ptr(ndr, "info", r->out.info);
22858 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
22859 ndr_print_spoolss_PrintProcessorDirectoryInfo(ndr, "info", r->out.info);
22862 ndr_print_ptr(ndr, "needed", r->out.needed);
22864 ndr_print_uint32(ndr, "needed", *r->out.needed);
22866 ndr_print_WERROR(ndr, "result", r->out.result);
22872 static enum ndr_err_code ndr_push_spoolss_StartDocPrinter(struct ndr_push *ndr, int flags, const struct spoolss_StartDocPrinter *r)
22874 if (flags & NDR_IN) {
22875 if (r->in.handle == NULL) {
22876 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22878 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22879 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22880 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
22881 NDR_CHECK(ndr_push_spoolss_DocumentInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
22883 if (flags & NDR_OUT) {
22884 if (r->out.job_id == NULL) {
22885 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22887 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.job_id));
22888 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22890 return NDR_ERR_SUCCESS;
22893 static enum ndr_err_code ndr_pull_spoolss_StartDocPrinter(struct ndr_pull *ndr, int flags, struct spoolss_StartDocPrinter *r)
22895 TALLOC_CTX *_mem_save_handle_0;
22896 TALLOC_CTX *_mem_save_job_id_0;
22897 if (flags & NDR_IN) {
22898 ZERO_STRUCT(r->out);
22900 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22901 NDR_PULL_ALLOC(ndr, r->in.handle);
22903 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22904 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22905 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22906 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22907 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22908 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
22909 NDR_CHECK(ndr_pull_spoolss_DocumentInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
22910 NDR_PULL_ALLOC(ndr, r->out.job_id);
22911 ZERO_STRUCTP(r->out.job_id);
22913 if (flags & NDR_OUT) {
22914 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22915 NDR_PULL_ALLOC(ndr, r->out.job_id);
22917 _mem_save_job_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
22918 NDR_PULL_SET_MEM_CTX(ndr, r->out.job_id, LIBNDR_FLAG_REF_ALLOC);
22919 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.job_id));
22920 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_job_id_0, LIBNDR_FLAG_REF_ALLOC);
22921 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22923 return NDR_ERR_SUCCESS;
22926 _PUBLIC_ void ndr_print_spoolss_StartDocPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_StartDocPrinter *r)
22928 ndr_print_struct(ndr, name, "spoolss_StartDocPrinter");
22930 if (flags & NDR_SET_VALUES) {
22931 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22933 if (flags & NDR_IN) {
22934 ndr_print_struct(ndr, "in", "spoolss_StartDocPrinter");
22936 ndr_print_ptr(ndr, "handle", r->in.handle);
22938 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22940 ndr_print_uint32(ndr, "level", r->in.level);
22941 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
22942 ndr_print_spoolss_DocumentInfo(ndr, "info", &r->in.info);
22945 if (flags & NDR_OUT) {
22946 ndr_print_struct(ndr, "out", "spoolss_StartDocPrinter");
22948 ndr_print_ptr(ndr, "job_id", r->out.job_id);
22950 ndr_print_uint32(ndr, "job_id", *r->out.job_id);
22952 ndr_print_WERROR(ndr, "result", r->out.result);
22958 static enum ndr_err_code ndr_push_spoolss_StartPagePrinter(struct ndr_push *ndr, int flags, const struct spoolss_StartPagePrinter *r)
22960 if (flags & NDR_IN) {
22961 if (r->in.handle == NULL) {
22962 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22964 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22966 if (flags & NDR_OUT) {
22967 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22969 return NDR_ERR_SUCCESS;
22972 static enum ndr_err_code ndr_pull_spoolss_StartPagePrinter(struct ndr_pull *ndr, int flags, struct spoolss_StartPagePrinter *r)
22974 TALLOC_CTX *_mem_save_handle_0;
22975 if (flags & NDR_IN) {
22976 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22977 NDR_PULL_ALLOC(ndr, r->in.handle);
22979 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22980 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22981 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22982 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22984 if (flags & NDR_OUT) {
22985 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22987 return NDR_ERR_SUCCESS;
22990 _PUBLIC_ void ndr_print_spoolss_StartPagePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_StartPagePrinter *r)
22992 ndr_print_struct(ndr, name, "spoolss_StartPagePrinter");
22994 if (flags & NDR_SET_VALUES) {
22995 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22997 if (flags & NDR_IN) {
22998 ndr_print_struct(ndr, "in", "spoolss_StartPagePrinter");
23000 ndr_print_ptr(ndr, "handle", r->in.handle);
23002 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23006 if (flags & NDR_OUT) {
23007 ndr_print_struct(ndr, "out", "spoolss_StartPagePrinter");
23009 ndr_print_WERROR(ndr, "result", r->out.result);
23015 static enum ndr_err_code ndr_push_spoolss_WritePrinter(struct ndr_push *ndr, int flags, const struct spoolss_WritePrinter *r)
23017 if (flags & NDR_IN) {
23018 if (r->in.handle == NULL) {
23019 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23021 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23022 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
23023 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data.length));
23025 if (flags & NDR_OUT) {
23026 if (r->out.num_written == NULL) {
23027 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23029 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.num_written));
23030 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23032 return NDR_ERR_SUCCESS;
23035 static enum ndr_err_code ndr_pull_spoolss_WritePrinter(struct ndr_pull *ndr, int flags, struct spoolss_WritePrinter *r)
23037 TALLOC_CTX *_mem_save_handle_0;
23038 TALLOC_CTX *_mem_save_num_written_0;
23039 if (flags & NDR_IN) {
23040 ZERO_STRUCT(r->out);
23042 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23043 NDR_PULL_ALLOC(ndr, r->in.handle);
23045 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23046 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23047 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23048 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23049 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->in.data));
23050 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._data_size));
23051 NDR_PULL_ALLOC(ndr, r->out.num_written);
23052 ZERO_STRUCTP(r->out.num_written);
23054 if (flags & NDR_OUT) {
23055 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23056 NDR_PULL_ALLOC(ndr, r->out.num_written);
23058 _mem_save_num_written_0 = NDR_PULL_GET_MEM_CTX(ndr);
23059 NDR_PULL_SET_MEM_CTX(ndr, r->out.num_written, LIBNDR_FLAG_REF_ALLOC);
23060 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.num_written));
23061 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_num_written_0, LIBNDR_FLAG_REF_ALLOC);
23062 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23064 return NDR_ERR_SUCCESS;
23067 _PUBLIC_ void ndr_print_spoolss_WritePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_WritePrinter *r)
23069 ndr_print_struct(ndr, name, "spoolss_WritePrinter");
23071 if (flags & NDR_SET_VALUES) {
23072 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23074 if (flags & NDR_IN) {
23075 ndr_print_struct(ndr, "in", "spoolss_WritePrinter");
23077 ndr_print_ptr(ndr, "handle", r->in.handle);
23079 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23081 ndr_print_DATA_BLOB(ndr, "data", r->in.data);
23082 ndr_print_uint32(ndr, "_data_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->in.data.length:r->in._data_size);
23085 if (flags & NDR_OUT) {
23086 ndr_print_struct(ndr, "out", "spoolss_WritePrinter");
23088 ndr_print_ptr(ndr, "num_written", r->out.num_written);
23090 ndr_print_uint32(ndr, "num_written", *r->out.num_written);
23092 ndr_print_WERROR(ndr, "result", r->out.result);
23098 static enum ndr_err_code ndr_push_spoolss_EndPagePrinter(struct ndr_push *ndr, int flags, const struct spoolss_EndPagePrinter *r)
23100 if (flags & NDR_IN) {
23101 if (r->in.handle == NULL) {
23102 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23104 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23106 if (flags & NDR_OUT) {
23107 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23109 return NDR_ERR_SUCCESS;
23112 static enum ndr_err_code ndr_pull_spoolss_EndPagePrinter(struct ndr_pull *ndr, int flags, struct spoolss_EndPagePrinter *r)
23114 TALLOC_CTX *_mem_save_handle_0;
23115 if (flags & NDR_IN) {
23116 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23117 NDR_PULL_ALLOC(ndr, r->in.handle);
23119 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23120 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23121 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23122 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23124 if (flags & NDR_OUT) {
23125 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23127 return NDR_ERR_SUCCESS;
23130 _PUBLIC_ void ndr_print_spoolss_EndPagePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EndPagePrinter *r)
23132 ndr_print_struct(ndr, name, "spoolss_EndPagePrinter");
23134 if (flags & NDR_SET_VALUES) {
23135 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23137 if (flags & NDR_IN) {
23138 ndr_print_struct(ndr, "in", "spoolss_EndPagePrinter");
23140 ndr_print_ptr(ndr, "handle", r->in.handle);
23142 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23146 if (flags & NDR_OUT) {
23147 ndr_print_struct(ndr, "out", "spoolss_EndPagePrinter");
23149 ndr_print_WERROR(ndr, "result", r->out.result);
23155 static enum ndr_err_code ndr_push_spoolss_AbortPrinter(struct ndr_push *ndr, int flags, const struct spoolss_AbortPrinter *r)
23157 if (flags & NDR_IN) {
23158 if (r->in.handle == NULL) {
23159 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23161 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23163 if (flags & NDR_OUT) {
23164 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23166 return NDR_ERR_SUCCESS;
23169 static enum ndr_err_code ndr_pull_spoolss_AbortPrinter(struct ndr_pull *ndr, int flags, struct spoolss_AbortPrinter *r)
23171 TALLOC_CTX *_mem_save_handle_0;
23172 if (flags & NDR_IN) {
23173 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23174 NDR_PULL_ALLOC(ndr, r->in.handle);
23176 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23177 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23178 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23179 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23181 if (flags & NDR_OUT) {
23182 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23184 return NDR_ERR_SUCCESS;
23187 _PUBLIC_ void ndr_print_spoolss_AbortPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AbortPrinter *r)
23189 ndr_print_struct(ndr, name, "spoolss_AbortPrinter");
23191 if (flags & NDR_SET_VALUES) {
23192 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23194 if (flags & NDR_IN) {
23195 ndr_print_struct(ndr, "in", "spoolss_AbortPrinter");
23197 ndr_print_ptr(ndr, "handle", r->in.handle);
23199 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23203 if (flags & NDR_OUT) {
23204 ndr_print_struct(ndr, "out", "spoolss_AbortPrinter");
23206 ndr_print_WERROR(ndr, "result", r->out.result);
23212 static enum ndr_err_code ndr_push_spoolss_ReadPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReadPrinter *r)
23214 if (flags & NDR_IN) {
23215 if (r->in.handle == NULL) {
23216 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23218 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23219 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_size));
23221 if (flags & NDR_OUT) {
23222 if (r->out.data == NULL) {
23223 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23225 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.data_size));
23226 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->in.data_size));
23227 if (r->out._data_size == NULL) {
23228 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23230 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out._data_size));
23231 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23233 return NDR_ERR_SUCCESS;
23236 static enum ndr_err_code ndr_pull_spoolss_ReadPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReadPrinter *r)
23238 TALLOC_CTX *_mem_save_handle_0;
23239 TALLOC_CTX *_mem_save__data_size_0;
23240 if (flags & NDR_IN) {
23241 ZERO_STRUCT(r->out);
23243 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23244 NDR_PULL_ALLOC(ndr, r->in.handle);
23246 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23247 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23248 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23249 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23250 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_size));
23251 NDR_PULL_ALLOC_N(ndr, r->out.data, r->in.data_size);
23252 memset(r->out.data, 0, (r->in.data_size) * sizeof(*r->out.data));
23253 NDR_PULL_ALLOC(ndr, r->out._data_size);
23254 ZERO_STRUCTP(r->out._data_size);
23256 if (flags & NDR_OUT) {
23257 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
23258 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23259 NDR_PULL_ALLOC_N(ndr, r->out.data, ndr_get_array_size(ndr, &r->out.data));
23261 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, ndr_get_array_size(ndr, &r->out.data)));
23262 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23263 NDR_PULL_ALLOC(ndr, r->out._data_size);
23265 _mem_save__data_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
23266 NDR_PULL_SET_MEM_CTX(ndr, r->out._data_size, LIBNDR_FLAG_REF_ALLOC);
23267 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out._data_size));
23268 NDR_PULL_SET_MEM_CTX(ndr, _mem_save__data_size_0, LIBNDR_FLAG_REF_ALLOC);
23269 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23271 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, r->in.data_size));
23274 return NDR_ERR_SUCCESS;
23277 _PUBLIC_ void ndr_print_spoolss_ReadPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReadPrinter *r)
23279 ndr_print_struct(ndr, name, "spoolss_ReadPrinter");
23281 if (flags & NDR_SET_VALUES) {
23282 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23284 if (flags & NDR_IN) {
23285 ndr_print_struct(ndr, "in", "spoolss_ReadPrinter");
23287 ndr_print_ptr(ndr, "handle", r->in.handle);
23289 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23291 ndr_print_uint32(ndr, "data_size", r->in.data_size);
23294 if (flags & NDR_OUT) {
23295 ndr_print_struct(ndr, "out", "spoolss_ReadPrinter");
23297 ndr_print_ptr(ndr, "data", r->out.data);
23299 ndr_print_array_uint8(ndr, "data", r->out.data, r->in.data_size);
23301 ndr_print_ptr(ndr, "_data_size", r->out._data_size);
23303 ndr_print_uint32(ndr, "_data_size", *r->out._data_size);
23305 ndr_print_WERROR(ndr, "result", r->out.result);
23311 static enum ndr_err_code ndr_push_spoolss_EndDocPrinter(struct ndr_push *ndr, int flags, const struct spoolss_EndDocPrinter *r)
23313 if (flags & NDR_IN) {
23314 if (r->in.handle == NULL) {
23315 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23317 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23319 if (flags & NDR_OUT) {
23320 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23322 return NDR_ERR_SUCCESS;
23325 static enum ndr_err_code ndr_pull_spoolss_EndDocPrinter(struct ndr_pull *ndr, int flags, struct spoolss_EndDocPrinter *r)
23327 TALLOC_CTX *_mem_save_handle_0;
23328 if (flags & NDR_IN) {
23329 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23330 NDR_PULL_ALLOC(ndr, r->in.handle);
23332 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23333 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23334 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23335 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23337 if (flags & NDR_OUT) {
23338 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23340 return NDR_ERR_SUCCESS;
23343 _PUBLIC_ void ndr_print_spoolss_EndDocPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EndDocPrinter *r)
23345 ndr_print_struct(ndr, name, "spoolss_EndDocPrinter");
23347 if (flags & NDR_SET_VALUES) {
23348 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23350 if (flags & NDR_IN) {
23351 ndr_print_struct(ndr, "in", "spoolss_EndDocPrinter");
23353 ndr_print_ptr(ndr, "handle", r->in.handle);
23355 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23359 if (flags & NDR_OUT) {
23360 ndr_print_struct(ndr, "out", "spoolss_EndDocPrinter");
23362 ndr_print_WERROR(ndr, "result", r->out.result);
23368 static enum ndr_err_code ndr_push_spoolss_AddJob(struct ndr_push *ndr, int flags, const struct spoolss_AddJob *r)
23370 if (flags & NDR_IN) {
23371 if (r->in.handle == NULL) {
23372 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23374 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23375 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23376 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
23377 if (r->in.buffer) {
23378 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.offered));
23379 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.offered));
23381 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
23383 if (flags & NDR_OUT) {
23384 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.buffer));
23385 if (r->out.buffer) {
23386 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.offered));
23387 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
23389 if (r->out.needed == NULL) {
23390 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23392 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
23393 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23395 return NDR_ERR_SUCCESS;
23398 static enum ndr_err_code ndr_pull_spoolss_AddJob(struct ndr_pull *ndr, int flags, struct spoolss_AddJob *r)
23400 uint32_t _ptr_buffer;
23401 TALLOC_CTX *_mem_save_handle_0;
23402 TALLOC_CTX *_mem_save_buffer_0;
23403 TALLOC_CTX *_mem_save_needed_0;
23404 if (flags & NDR_IN) {
23405 ZERO_STRUCT(r->out);
23407 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23408 NDR_PULL_ALLOC(ndr, r->in.handle);
23410 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23411 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23412 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23413 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23414 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23415 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
23417 NDR_PULL_ALLOC(ndr, r->in.buffer);
23419 r->in.buffer = NULL;
23421 if (r->in.buffer) {
23422 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
23423 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
23424 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
23425 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
23426 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
23427 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
23429 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
23430 NDR_PULL_ALLOC(ndr, r->out.needed);
23431 ZERO_STRUCTP(r->out.needed);
23432 if (r->in.buffer) {
23433 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.offered));
23436 if (flags & NDR_OUT) {
23437 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
23439 NDR_PULL_ALLOC(ndr, r->out.buffer);
23441 r->out.buffer = NULL;
23443 if (r->out.buffer) {
23444 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
23445 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, 0);
23446 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
23447 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
23448 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)));
23449 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
23451 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23452 NDR_PULL_ALLOC(ndr, r->out.needed);
23454 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
23455 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
23456 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
23457 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
23458 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23459 if (r->out.buffer) {
23460 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
23463 return NDR_ERR_SUCCESS;
23466 _PUBLIC_ void ndr_print_spoolss_AddJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddJob *r)
23468 ndr_print_struct(ndr, name, "spoolss_AddJob");
23470 if (flags & NDR_SET_VALUES) {
23471 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23473 if (flags & NDR_IN) {
23474 ndr_print_struct(ndr, "in", "spoolss_AddJob");
23476 ndr_print_ptr(ndr, "handle", r->in.handle);
23478 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23480 ndr_print_uint32(ndr, "level", r->in.level);
23481 ndr_print_ptr(ndr, "buffer", r->in.buffer);
23483 if (r->in.buffer) {
23484 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.offered);
23487 ndr_print_uint32(ndr, "offered", r->in.offered);
23490 if (flags & NDR_OUT) {
23491 ndr_print_struct(ndr, "out", "spoolss_AddJob");
23493 ndr_print_ptr(ndr, "buffer", r->out.buffer);
23495 if (r->out.buffer) {
23496 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
23499 ndr_print_ptr(ndr, "needed", r->out.needed);
23501 ndr_print_uint32(ndr, "needed", *r->out.needed);
23503 ndr_print_WERROR(ndr, "result", r->out.result);
23509 static enum ndr_err_code ndr_push_spoolss_ScheduleJob(struct ndr_push *ndr, int flags, const struct spoolss_ScheduleJob *r)
23511 if (flags & NDR_IN) {
23512 if (r->in.handle == NULL) {
23513 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23515 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23516 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.jobid));
23518 if (flags & NDR_OUT) {
23519 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23521 return NDR_ERR_SUCCESS;
23524 static enum ndr_err_code ndr_pull_spoolss_ScheduleJob(struct ndr_pull *ndr, int flags, struct spoolss_ScheduleJob *r)
23526 TALLOC_CTX *_mem_save_handle_0;
23527 if (flags & NDR_IN) {
23528 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23529 NDR_PULL_ALLOC(ndr, r->in.handle);
23531 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23532 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23533 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23534 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23535 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.jobid));
23537 if (flags & NDR_OUT) {
23538 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23540 return NDR_ERR_SUCCESS;
23543 _PUBLIC_ void ndr_print_spoolss_ScheduleJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ScheduleJob *r)
23545 ndr_print_struct(ndr, name, "spoolss_ScheduleJob");
23547 if (flags & NDR_SET_VALUES) {
23548 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23550 if (flags & NDR_IN) {
23551 ndr_print_struct(ndr, "in", "spoolss_ScheduleJob");
23553 ndr_print_ptr(ndr, "handle", r->in.handle);
23555 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23557 ndr_print_uint32(ndr, "jobid", r->in.jobid);
23560 if (flags & NDR_OUT) {
23561 ndr_print_struct(ndr, "out", "spoolss_ScheduleJob");
23563 ndr_print_WERROR(ndr, "result", r->out.result);
23569 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct _spoolss_GetPrinterData *r)
23571 if (flags & NDR_IN) {
23572 if (r->in.handle == NULL) {
23573 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23575 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23576 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
23577 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
23578 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
23579 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));
23580 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
23582 if (flags & NDR_OUT) {
23583 if (r->out.type == NULL) {
23584 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23586 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
23587 if (r->out.data == NULL) {
23588 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23590 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.data));
23591 if (r->out.needed == NULL) {
23592 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23594 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
23595 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23597 return NDR_ERR_SUCCESS;
23600 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct _spoolss_GetPrinterData *r)
23602 TALLOC_CTX *_mem_save_handle_0;
23603 TALLOC_CTX *_mem_save_type_0;
23604 TALLOC_CTX *_mem_save_data_0;
23605 TALLOC_CTX *_mem_save_needed_0;
23606 if (flags & NDR_IN) {
23607 ZERO_STRUCT(r->out);
23609 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23610 NDR_PULL_ALLOC(ndr, r->in.handle);
23612 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23613 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23614 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23615 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23616 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
23617 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
23618 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
23619 return 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));
23621 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
23622 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));
23623 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
23624 NDR_PULL_ALLOC(ndr, r->out.type);
23625 ZERO_STRUCTP(r->out.type);
23626 NDR_PULL_ALLOC(ndr, r->out.data);
23627 ZERO_STRUCTP(r->out.data);
23628 NDR_PULL_ALLOC(ndr, r->out.needed);
23629 ZERO_STRUCTP(r->out.needed);
23631 if (flags & NDR_OUT) {
23632 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23633 NDR_PULL_ALLOC(ndr, r->out.type);
23635 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
23636 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
23637 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
23638 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
23639 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23640 NDR_PULL_ALLOC(ndr, r->out.data);
23642 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
23643 NDR_PULL_SET_MEM_CTX(ndr, r->out.data, LIBNDR_FLAG_REF_ALLOC);
23644 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.data));
23645 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
23646 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23647 NDR_PULL_ALLOC(ndr, r->out.needed);
23649 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
23650 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
23651 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
23652 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
23653 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23655 return NDR_ERR_SUCCESS;
23658 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct __spoolss_GetPrinterData *r)
23660 if (flags & NDR_IN) {
23661 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
23663 if (flags & NDR_OUT) {
23664 if (r->out.data == NULL) {
23665 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23667 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.data, r->in.type));
23668 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
23670 return NDR_ERR_SUCCESS;
23673 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct __spoolss_GetPrinterData *r)
23675 TALLOC_CTX *_mem_save_data_0;
23676 if (flags & NDR_IN) {
23677 ZERO_STRUCT(r->out);
23679 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
23680 NDR_PULL_ALLOC(ndr, r->out.data);
23681 ZERO_STRUCTP(r->out.data);
23683 if (flags & NDR_OUT) {
23684 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23685 NDR_PULL_ALLOC(ndr, r->out.data);
23687 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
23688 NDR_PULL_SET_MEM_CTX(ndr, r->out.data, LIBNDR_FLAG_REF_ALLOC);
23689 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.data, r->in.type));
23690 NDR_CHECK(ndr_pull_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
23691 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
23693 return NDR_ERR_SUCCESS;
23696 _PUBLIC_ void ndr_print_spoolss_GetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterData *r)
23698 ndr_print_struct(ndr, name, "spoolss_GetPrinterData");
23700 if (flags & NDR_SET_VALUES) {
23701 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23703 if (flags & NDR_IN) {
23704 ndr_print_struct(ndr, "in", "spoolss_GetPrinterData");
23706 ndr_print_ptr(ndr, "handle", r->in.handle);
23708 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23710 ndr_print_string(ndr, "value_name", r->in.value_name);
23711 ndr_print_uint32(ndr, "offered", r->in.offered);
23714 if (flags & NDR_OUT) {
23715 ndr_print_struct(ndr, "out", "spoolss_GetPrinterData");
23717 ndr_print_ptr(ndr, "type", r->out.type);
23719 ndr_print_winreg_Type(ndr, "type", *r->out.type);
23721 ndr_print_ptr(ndr, "data", r->out.data);
23723 ndr_print_set_switch_value(ndr, r->out.data, *r->out.type);
23724 ndr_print_spoolss_PrinterData(ndr, "data", r->out.data);
23726 ndr_print_ptr(ndr, "needed", r->out.needed);
23728 ndr_print_uint32(ndr, "needed", *r->out.needed);
23730 ndr_print_WERROR(ndr, "result", r->out.result);
23736 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct _spoolss_SetPrinterData *r)
23738 if (flags & NDR_IN) {
23739 if (r->in.handle == NULL) {
23740 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23742 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23743 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
23744 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
23745 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
23746 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));
23747 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
23748 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
23749 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in._offered));
23751 if (flags & NDR_OUT) {
23752 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23754 return NDR_ERR_SUCCESS;
23757 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct __spoolss_SetPrinterData *r)
23759 if (flags & NDR_IN) {
23760 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
23762 if (flags & NDR_OUT) {
23763 if (r->out.data == NULL) {
23764 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23766 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.data, r->in.type));
23767 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
23769 return NDR_ERR_SUCCESS;
23772 static enum ndr_err_code ndr_pull_spoolss_SetPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinterData *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.value_name));
23784 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
23785 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_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.value_name), ndr_get_array_length(ndr, &r->in.value_name));
23788 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
23789 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));
23790 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
23792 struct ndr_pull *_ndr_data;
23793 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_data, 4, -1));
23794 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data, &r->in.data, r->in.type));
23795 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
23796 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_data, 4, -1));
23798 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._offered));
23800 if (flags & NDR_OUT) {
23801 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23803 return NDR_ERR_SUCCESS;
23806 _PUBLIC_ void ndr_print_spoolss_SetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinterData *r)
23808 ndr_print_struct(ndr, name, "spoolss_SetPrinterData");
23810 if (flags & NDR_SET_VALUES) {
23811 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23813 if (flags & NDR_IN) {
23814 ndr_print_struct(ndr, "in", "spoolss_SetPrinterData");
23816 ndr_print_ptr(ndr, "handle", r->in.handle);
23818 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23820 ndr_print_string(ndr, "value_name", r->in.value_name);
23821 ndr_print_winreg_Type(ndr, "type", r->in.type);
23822 ndr_print_set_switch_value(ndr, &r->in.data, r->in.type);
23823 ndr_print_spoolss_PrinterData(ndr, "data", &r->in.data);
23824 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);
23827 if (flags & NDR_OUT) {
23828 ndr_print_struct(ndr, "out", "spoolss_SetPrinterData");
23830 ndr_print_WERROR(ndr, "result", r->out.result);
23836 static enum ndr_err_code ndr_push_spoolss_WaitForPrinterChange(struct ndr_push *ndr, int flags, const struct spoolss_WaitForPrinterChange *r)
23838 if (flags & NDR_IN) {
23840 if (flags & NDR_OUT) {
23841 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23843 return NDR_ERR_SUCCESS;
23846 static enum ndr_err_code ndr_pull_spoolss_WaitForPrinterChange(struct ndr_pull *ndr, int flags, struct spoolss_WaitForPrinterChange *r)
23848 if (flags & NDR_IN) {
23850 if (flags & NDR_OUT) {
23851 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23853 return NDR_ERR_SUCCESS;
23856 _PUBLIC_ void ndr_print_spoolss_WaitForPrinterChange(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_WaitForPrinterChange *r)
23858 ndr_print_struct(ndr, name, "spoolss_WaitForPrinterChange");
23860 if (flags & NDR_SET_VALUES) {
23861 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23863 if (flags & NDR_IN) {
23864 ndr_print_struct(ndr, "in", "spoolss_WaitForPrinterChange");
23868 if (flags & NDR_OUT) {
23869 ndr_print_struct(ndr, "out", "spoolss_WaitForPrinterChange");
23871 ndr_print_WERROR(ndr, "result", r->out.result);
23877 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ClosePrinter(struct ndr_push *ndr, int flags, const struct spoolss_ClosePrinter *r)
23879 if (flags & NDR_IN) {
23880 if (r->in.handle == NULL) {
23881 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23883 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23885 if (flags & NDR_OUT) {
23886 if (r->out.handle == NULL) {
23887 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23889 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
23890 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23892 return NDR_ERR_SUCCESS;
23895 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ClosePrinter(struct ndr_pull *ndr, int flags, struct spoolss_ClosePrinter *r)
23897 TALLOC_CTX *_mem_save_handle_0;
23898 if (flags & NDR_IN) {
23899 ZERO_STRUCT(r->out);
23901 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23902 NDR_PULL_ALLOC(ndr, r->in.handle);
23904 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23905 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23906 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23907 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23908 NDR_PULL_ALLOC(ndr, r->out.handle);
23909 *r->out.handle = *r->in.handle;
23911 if (flags & NDR_OUT) {
23912 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23913 NDR_PULL_ALLOC(ndr, r->out.handle);
23915 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23916 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
23917 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
23918 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23919 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23921 return NDR_ERR_SUCCESS;
23924 _PUBLIC_ void ndr_print_spoolss_ClosePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ClosePrinter *r)
23926 ndr_print_struct(ndr, name, "spoolss_ClosePrinter");
23928 if (flags & NDR_SET_VALUES) {
23929 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23931 if (flags & NDR_IN) {
23932 ndr_print_struct(ndr, "in", "spoolss_ClosePrinter");
23934 ndr_print_ptr(ndr, "handle", r->in.handle);
23936 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23940 if (flags & NDR_OUT) {
23941 ndr_print_struct(ndr, "out", "spoolss_ClosePrinter");
23943 ndr_print_ptr(ndr, "handle", r->out.handle);
23945 ndr_print_policy_handle(ndr, "handle", r->out.handle);
23947 ndr_print_WERROR(ndr, "result", r->out.result);
23953 static enum ndr_err_code ndr_push_spoolss_AddForm(struct ndr_push *ndr, int flags, const struct spoolss_AddForm *r)
23955 if (flags & NDR_IN) {
23956 if (r->in.handle == NULL) {
23957 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23959 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23960 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23961 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
23962 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
23964 if (flags & NDR_OUT) {
23965 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23967 return NDR_ERR_SUCCESS;
23970 static enum ndr_err_code ndr_pull_spoolss_AddForm(struct ndr_pull *ndr, int flags, struct spoolss_AddForm *r)
23972 TALLOC_CTX *_mem_save_handle_0;
23973 if (flags & NDR_IN) {
23974 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23975 NDR_PULL_ALLOC(ndr, r->in.handle);
23977 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23978 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23979 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23980 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23981 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23982 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
23983 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
23985 if (flags & NDR_OUT) {
23986 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23988 return NDR_ERR_SUCCESS;
23991 _PUBLIC_ void ndr_print_spoolss_AddForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddForm *r)
23993 ndr_print_struct(ndr, name, "spoolss_AddForm");
23995 if (flags & NDR_SET_VALUES) {
23996 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23998 if (flags & NDR_IN) {
23999 ndr_print_struct(ndr, "in", "spoolss_AddForm");
24001 ndr_print_ptr(ndr, "handle", r->in.handle);
24003 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24005 ndr_print_uint32(ndr, "level", r->in.level);
24006 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
24007 ndr_print_spoolss_AddFormInfo(ndr, "info", &r->in.info);
24010 if (flags & NDR_OUT) {
24011 ndr_print_struct(ndr, "out", "spoolss_AddForm");
24013 ndr_print_WERROR(ndr, "result", r->out.result);
24019 static enum ndr_err_code ndr_push_spoolss_DeleteForm(struct ndr_push *ndr, int flags, const struct spoolss_DeleteForm *r)
24021 if (flags & NDR_IN) {
24022 if (r->in.handle == NULL) {
24023 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24025 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24026 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
24027 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24028 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
24029 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));
24031 if (flags & NDR_OUT) {
24032 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24034 return NDR_ERR_SUCCESS;
24037 static enum ndr_err_code ndr_pull_spoolss_DeleteForm(struct ndr_pull *ndr, int flags, struct spoolss_DeleteForm *r)
24039 TALLOC_CTX *_mem_save_handle_0;
24040 if (flags & NDR_IN) {
24041 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24042 NDR_PULL_ALLOC(ndr, r->in.handle);
24044 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24045 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24046 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24047 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24048 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
24049 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
24050 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
24051 return 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));
24053 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
24054 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));
24056 if (flags & NDR_OUT) {
24057 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24059 return NDR_ERR_SUCCESS;
24062 _PUBLIC_ void ndr_print_spoolss_DeleteForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeleteForm *r)
24064 ndr_print_struct(ndr, name, "spoolss_DeleteForm");
24066 if (flags & NDR_SET_VALUES) {
24067 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24069 if (flags & NDR_IN) {
24070 ndr_print_struct(ndr, "in", "spoolss_DeleteForm");
24072 ndr_print_ptr(ndr, "handle", r->in.handle);
24074 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24076 ndr_print_string(ndr, "form_name", r->in.form_name);
24079 if (flags & NDR_OUT) {
24080 ndr_print_struct(ndr, "out", "spoolss_DeleteForm");
24082 ndr_print_WERROR(ndr, "result", r->out.result);
24088 static enum ndr_err_code ndr_push_spoolss_GetForm(struct ndr_push *ndr, int flags, const struct spoolss_GetForm *r)
24090 if (flags & NDR_IN) {
24091 if (r->in.handle == NULL) {
24092 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24094 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24095 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
24096 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24097 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
24098 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));
24099 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24100 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
24101 if (r->in.buffer) {
24102 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
24104 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
24106 if (flags & NDR_OUT) {
24107 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
24110 struct ndr_push *_ndr_info;
24111 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
24112 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
24113 NDR_CHECK(ndr_push_spoolss_FormInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
24114 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
24117 if (r->out.needed == NULL) {
24118 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24120 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
24121 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24123 return NDR_ERR_SUCCESS;
24126 static enum ndr_err_code ndr_pull_spoolss_GetForm(struct ndr_pull *ndr, int flags, struct spoolss_GetForm *r)
24128 uint32_t _ptr_buffer;
24129 uint32_t _ptr_info;
24130 TALLOC_CTX *_mem_save_handle_0;
24131 TALLOC_CTX *_mem_save_buffer_0;
24132 TALLOC_CTX *_mem_save_info_0;
24133 TALLOC_CTX *_mem_save_needed_0;
24134 if (flags & NDR_IN) {
24135 ZERO_STRUCT(r->out);
24137 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24138 NDR_PULL_ALLOC(ndr, r->in.handle);
24140 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24141 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24142 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24143 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24144 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
24145 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
24146 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
24147 return 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));
24149 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
24150 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));
24151 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24152 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
24154 NDR_PULL_ALLOC(ndr, r->in.buffer);
24156 r->in.buffer = NULL;
24158 if (r->in.buffer) {
24159 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
24160 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
24161 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
24162 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
24164 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
24165 NDR_PULL_ALLOC(ndr, r->out.needed);
24166 ZERO_STRUCTP(r->out.needed);
24168 if (flags & NDR_OUT) {
24169 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
24171 NDR_PULL_ALLOC(ndr, r->out.info);
24173 r->out.info = NULL;
24176 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24177 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24179 struct ndr_pull *_ndr_info;
24180 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
24181 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
24182 NDR_CHECK(ndr_pull_spoolss_FormInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
24183 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
24185 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24187 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24188 NDR_PULL_ALLOC(ndr, r->out.needed);
24190 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
24191 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
24192 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
24193 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
24194 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24196 return NDR_ERR_SUCCESS;
24199 _PUBLIC_ void ndr_print_spoolss_GetForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetForm *r)
24201 ndr_print_struct(ndr, name, "spoolss_GetForm");
24203 if (flags & NDR_SET_VALUES) {
24204 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24206 if (flags & NDR_IN) {
24207 ndr_print_struct(ndr, "in", "spoolss_GetForm");
24209 ndr_print_ptr(ndr, "handle", r->in.handle);
24211 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24213 ndr_print_string(ndr, "form_name", r->in.form_name);
24214 ndr_print_uint32(ndr, "level", r->in.level);
24215 ndr_print_ptr(ndr, "buffer", r->in.buffer);
24217 if (r->in.buffer) {
24218 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
24221 ndr_print_uint32(ndr, "offered", r->in.offered);
24224 if (flags & NDR_OUT) {
24225 ndr_print_struct(ndr, "out", "spoolss_GetForm");
24227 ndr_print_ptr(ndr, "info", r->out.info);
24230 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
24231 ndr_print_spoolss_FormInfo(ndr, "info", r->out.info);
24234 ndr_print_ptr(ndr, "needed", r->out.needed);
24236 ndr_print_uint32(ndr, "needed", *r->out.needed);
24238 ndr_print_WERROR(ndr, "result", r->out.result);
24244 static enum ndr_err_code ndr_push_spoolss_SetForm(struct ndr_push *ndr, int flags, const struct spoolss_SetForm *r)
24246 if (flags & NDR_IN) {
24247 if (r->in.handle == NULL) {
24248 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24250 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24251 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
24252 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24253 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
24254 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));
24255 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24256 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
24257 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
24259 if (flags & NDR_OUT) {
24260 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24262 return NDR_ERR_SUCCESS;
24265 static enum ndr_err_code ndr_pull_spoolss_SetForm(struct ndr_pull *ndr, int flags, struct spoolss_SetForm *r)
24267 TALLOC_CTX *_mem_save_handle_0;
24268 if (flags & NDR_IN) {
24269 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24270 NDR_PULL_ALLOC(ndr, r->in.handle);
24272 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24273 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24274 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24275 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24276 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
24277 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
24278 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
24279 return 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));
24281 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
24282 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));
24283 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24284 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
24285 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
24287 if (flags & NDR_OUT) {
24288 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24290 return NDR_ERR_SUCCESS;
24293 _PUBLIC_ void ndr_print_spoolss_SetForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetForm *r)
24295 ndr_print_struct(ndr, name, "spoolss_SetForm");
24297 if (flags & NDR_SET_VALUES) {
24298 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24300 if (flags & NDR_IN) {
24301 ndr_print_struct(ndr, "in", "spoolss_SetForm");
24303 ndr_print_ptr(ndr, "handle", r->in.handle);
24305 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24307 ndr_print_string(ndr, "form_name", r->in.form_name);
24308 ndr_print_uint32(ndr, "level", r->in.level);
24309 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
24310 ndr_print_spoolss_AddFormInfo(ndr, "info", &r->in.info);
24313 if (flags & NDR_OUT) {
24314 ndr_print_struct(ndr, "out", "spoolss_SetForm");
24316 ndr_print_WERROR(ndr, "result", r->out.result);
24322 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumForms(struct ndr_push *ndr, int flags, const struct _spoolss_EnumForms *r)
24324 if (flags & NDR_IN) {
24325 if (r->in.handle == NULL) {
24326 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24328 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24329 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24330 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
24331 if (r->in.buffer) {
24332 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
24334 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
24336 if (flags & NDR_OUT) {
24337 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
24339 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
24341 if (r->out.needed == NULL) {
24342 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24344 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
24345 if (r->out.count == NULL) {
24346 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24348 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
24349 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24351 return NDR_ERR_SUCCESS;
24354 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumForms(struct ndr_pull *ndr, int flags, struct _spoolss_EnumForms *r)
24356 uint32_t _ptr_buffer;
24357 uint32_t _ptr_info;
24358 TALLOC_CTX *_mem_save_handle_0;
24359 TALLOC_CTX *_mem_save_buffer_0;
24360 TALLOC_CTX *_mem_save_info_0;
24361 TALLOC_CTX *_mem_save_needed_0;
24362 TALLOC_CTX *_mem_save_count_0;
24363 if (flags & NDR_IN) {
24364 ZERO_STRUCT(r->out);
24366 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24367 NDR_PULL_ALLOC(ndr, r->in.handle);
24369 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24370 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24371 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24372 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24373 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24374 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
24376 NDR_PULL_ALLOC(ndr, r->in.buffer);
24378 r->in.buffer = NULL;
24380 if (r->in.buffer) {
24381 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
24382 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
24383 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
24384 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
24386 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
24387 NDR_PULL_ALLOC(ndr, r->out.needed);
24388 ZERO_STRUCTP(r->out.needed);
24389 NDR_PULL_ALLOC(ndr, r->out.count);
24390 ZERO_STRUCTP(r->out.count);
24392 if (flags & NDR_OUT) {
24393 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
24395 NDR_PULL_ALLOC(ndr, r->out.info);
24397 r->out.info = NULL;
24400 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24401 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24402 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
24403 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24405 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24406 NDR_PULL_ALLOC(ndr, r->out.needed);
24408 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
24409 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
24410 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
24411 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
24412 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24413 NDR_PULL_ALLOC(ndr, r->out.count);
24415 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
24416 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
24417 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
24418 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
24419 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24421 return NDR_ERR_SUCCESS;
24424 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumForms(struct ndr_push *ndr, int flags, const struct __spoolss_EnumForms *r)
24426 uint32_t cntr_info_0;
24427 if (flags & NDR_IN) {
24428 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24429 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
24431 if (flags & NDR_OUT) {
24432 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24433 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
24434 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
24436 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24437 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
24440 return NDR_ERR_SUCCESS;
24443 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumForms(struct ndr_pull *ndr, int flags, struct __spoolss_EnumForms *r)
24445 uint32_t cntr_info_0;
24446 TALLOC_CTX *_mem_save_info_0;
24447 if (flags & NDR_IN) {
24448 ZERO_STRUCT(r->out);
24450 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24451 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
24453 if (flags & NDR_OUT) {
24454 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
24455 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24456 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24457 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24458 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
24459 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
24461 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24462 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
24464 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24466 return NDR_ERR_SUCCESS;
24469 _PUBLIC_ void ndr_print_spoolss_EnumForms(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumForms *r)
24471 uint32_t cntr_info_2;
24472 ndr_print_struct(ndr, name, "spoolss_EnumForms");
24474 if (flags & NDR_SET_VALUES) {
24475 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24477 if (flags & NDR_IN) {
24478 ndr_print_struct(ndr, "in", "spoolss_EnumForms");
24480 ndr_print_ptr(ndr, "handle", r->in.handle);
24482 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24484 ndr_print_uint32(ndr, "level", r->in.level);
24485 ndr_print_ptr(ndr, "buffer", r->in.buffer);
24487 if (r->in.buffer) {
24488 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
24491 ndr_print_uint32(ndr, "offered", r->in.offered);
24494 if (flags & NDR_OUT) {
24495 ndr_print_struct(ndr, "out", "spoolss_EnumForms");
24497 ndr_print_ptr(ndr, "count", r->out.count);
24499 ndr_print_uint32(ndr, "count", *r->out.count);
24501 ndr_print_ptr(ndr, "info", r->out.info);
24503 ndr_print_ptr(ndr, "info", *r->out.info);
24505 if (*r->out.info) {
24506 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
24508 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
24510 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
24511 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
24512 ndr_print_spoolss_FormInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
24520 ndr_print_ptr(ndr, "needed", r->out.needed);
24522 ndr_print_uint32(ndr, "needed", *r->out.needed);
24524 ndr_print_WERROR(ndr, "result", r->out.result);
24530 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPorts(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPorts *r)
24532 if (flags & NDR_IN) {
24533 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
24534 if (r->in.servername) {
24535 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
24536 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24537 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
24538 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
24540 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24541 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
24542 if (r->in.buffer) {
24543 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
24545 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
24547 if (flags & NDR_OUT) {
24548 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
24550 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
24552 if (r->out.needed == NULL) {
24553 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24555 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
24556 if (r->out.count == NULL) {
24557 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24559 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
24560 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24562 return NDR_ERR_SUCCESS;
24565 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPorts(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPorts *r)
24567 uint32_t _ptr_servername;
24568 uint32_t _ptr_buffer;
24569 uint32_t _ptr_info;
24570 TALLOC_CTX *_mem_save_servername_0;
24571 TALLOC_CTX *_mem_save_buffer_0;
24572 TALLOC_CTX *_mem_save_info_0;
24573 TALLOC_CTX *_mem_save_needed_0;
24574 TALLOC_CTX *_mem_save_count_0;
24575 if (flags & NDR_IN) {
24576 ZERO_STRUCT(r->out);
24578 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
24579 if (_ptr_servername) {
24580 NDR_PULL_ALLOC(ndr, r->in.servername);
24582 r->in.servername = NULL;
24584 if (r->in.servername) {
24585 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
24586 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
24587 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
24588 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
24589 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
24590 return 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));
24592 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
24593 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
24594 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
24596 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24597 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
24599 NDR_PULL_ALLOC(ndr, r->in.buffer);
24601 r->in.buffer = NULL;
24603 if (r->in.buffer) {
24604 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
24605 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
24606 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
24607 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
24609 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
24610 NDR_PULL_ALLOC(ndr, r->out.needed);
24611 ZERO_STRUCTP(r->out.needed);
24612 NDR_PULL_ALLOC(ndr, r->out.count);
24613 ZERO_STRUCTP(r->out.count);
24615 if (flags & NDR_OUT) {
24616 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
24618 NDR_PULL_ALLOC(ndr, r->out.info);
24620 r->out.info = NULL;
24623 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24624 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24625 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
24626 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24628 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24629 NDR_PULL_ALLOC(ndr, r->out.needed);
24631 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
24632 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
24633 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
24634 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
24635 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24636 NDR_PULL_ALLOC(ndr, r->out.count);
24638 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
24639 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
24640 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
24641 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
24642 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24644 return NDR_ERR_SUCCESS;
24647 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPorts(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPorts *r)
24649 uint32_t cntr_info_0;
24650 if (flags & NDR_IN) {
24651 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24652 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
24654 if (flags & NDR_OUT) {
24655 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24656 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
24657 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
24659 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24660 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
24663 return NDR_ERR_SUCCESS;
24666 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPorts(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPorts *r)
24668 uint32_t cntr_info_0;
24669 TALLOC_CTX *_mem_save_info_0;
24670 if (flags & NDR_IN) {
24671 ZERO_STRUCT(r->out);
24673 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24674 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
24676 if (flags & NDR_OUT) {
24677 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
24678 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24679 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24680 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24681 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
24682 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
24684 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24685 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
24687 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24689 return NDR_ERR_SUCCESS;
24692 _PUBLIC_ void ndr_print_spoolss_EnumPorts(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPorts *r)
24694 uint32_t cntr_info_2;
24695 ndr_print_struct(ndr, name, "spoolss_EnumPorts");
24697 if (flags & NDR_SET_VALUES) {
24698 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24700 if (flags & NDR_IN) {
24701 ndr_print_struct(ndr, "in", "spoolss_EnumPorts");
24703 ndr_print_ptr(ndr, "servername", r->in.servername);
24705 if (r->in.servername) {
24706 ndr_print_string(ndr, "servername", r->in.servername);
24709 ndr_print_uint32(ndr, "level", r->in.level);
24710 ndr_print_ptr(ndr, "buffer", r->in.buffer);
24712 if (r->in.buffer) {
24713 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
24716 ndr_print_uint32(ndr, "offered", r->in.offered);
24719 if (flags & NDR_OUT) {
24720 ndr_print_struct(ndr, "out", "spoolss_EnumPorts");
24722 ndr_print_ptr(ndr, "count", r->out.count);
24724 ndr_print_uint32(ndr, "count", *r->out.count);
24726 ndr_print_ptr(ndr, "info", r->out.info);
24728 ndr_print_ptr(ndr, "info", *r->out.info);
24730 if (*r->out.info) {
24731 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
24733 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
24735 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
24736 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
24737 ndr_print_spoolss_PortInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
24745 ndr_print_ptr(ndr, "needed", r->out.needed);
24747 ndr_print_uint32(ndr, "needed", *r->out.needed);
24749 ndr_print_WERROR(ndr, "result", r->out.result);
24755 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumMonitors(struct ndr_push *ndr, int flags, const struct _spoolss_EnumMonitors *r)
24757 if (flags & NDR_IN) {
24758 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
24759 if (r->in.servername) {
24760 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
24761 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24762 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
24763 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
24765 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24766 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
24767 if (r->in.buffer) {
24768 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
24770 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
24772 if (flags & NDR_OUT) {
24773 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
24775 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
24777 if (r->out.needed == NULL) {
24778 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24780 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
24781 if (r->out.count == NULL) {
24782 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24784 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
24785 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24787 return NDR_ERR_SUCCESS;
24790 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumMonitors(struct ndr_pull *ndr, int flags, struct _spoolss_EnumMonitors *r)
24792 uint32_t _ptr_servername;
24793 uint32_t _ptr_buffer;
24794 uint32_t _ptr_info;
24795 TALLOC_CTX *_mem_save_servername_0;
24796 TALLOC_CTX *_mem_save_buffer_0;
24797 TALLOC_CTX *_mem_save_info_0;
24798 TALLOC_CTX *_mem_save_needed_0;
24799 TALLOC_CTX *_mem_save_count_0;
24800 if (flags & NDR_IN) {
24801 ZERO_STRUCT(r->out);
24803 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
24804 if (_ptr_servername) {
24805 NDR_PULL_ALLOC(ndr, r->in.servername);
24807 r->in.servername = NULL;
24809 if (r->in.servername) {
24810 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
24811 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
24812 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
24813 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
24814 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
24815 return 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));
24817 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
24818 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
24819 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
24821 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24822 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
24824 NDR_PULL_ALLOC(ndr, r->in.buffer);
24826 r->in.buffer = NULL;
24828 if (r->in.buffer) {
24829 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
24830 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
24831 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
24832 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
24834 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
24835 NDR_PULL_ALLOC(ndr, r->out.needed);
24836 ZERO_STRUCTP(r->out.needed);
24837 NDR_PULL_ALLOC(ndr, r->out.count);
24838 ZERO_STRUCTP(r->out.count);
24840 if (flags & NDR_OUT) {
24841 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
24843 NDR_PULL_ALLOC(ndr, r->out.info);
24845 r->out.info = NULL;
24848 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24849 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24850 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
24851 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24853 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24854 NDR_PULL_ALLOC(ndr, r->out.needed);
24856 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
24857 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
24858 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
24859 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
24860 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24861 NDR_PULL_ALLOC(ndr, r->out.count);
24863 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
24864 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
24865 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
24866 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
24867 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24869 return NDR_ERR_SUCCESS;
24872 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumMonitors(struct ndr_push *ndr, int flags, const struct __spoolss_EnumMonitors *r)
24874 uint32_t cntr_info_0;
24875 if (flags & NDR_IN) {
24876 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24877 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
24879 if (flags & NDR_OUT) {
24880 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24881 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
24882 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
24884 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24885 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
24888 return NDR_ERR_SUCCESS;
24891 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumMonitors(struct ndr_pull *ndr, int flags, struct __spoolss_EnumMonitors *r)
24893 uint32_t cntr_info_0;
24894 TALLOC_CTX *_mem_save_info_0;
24895 if (flags & NDR_IN) {
24896 ZERO_STRUCT(r->out);
24898 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24899 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
24901 if (flags & NDR_OUT) {
24902 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
24903 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24904 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24905 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24906 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
24907 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
24909 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24910 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
24912 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24914 return NDR_ERR_SUCCESS;
24917 _PUBLIC_ void ndr_print_spoolss_EnumMonitors(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumMonitors *r)
24919 uint32_t cntr_info_2;
24920 ndr_print_struct(ndr, name, "spoolss_EnumMonitors");
24922 if (flags & NDR_SET_VALUES) {
24923 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24925 if (flags & NDR_IN) {
24926 ndr_print_struct(ndr, "in", "spoolss_EnumMonitors");
24928 ndr_print_ptr(ndr, "servername", r->in.servername);
24930 if (r->in.servername) {
24931 ndr_print_string(ndr, "servername", r->in.servername);
24934 ndr_print_uint32(ndr, "level", r->in.level);
24935 ndr_print_ptr(ndr, "buffer", r->in.buffer);
24937 if (r->in.buffer) {
24938 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
24941 ndr_print_uint32(ndr, "offered", r->in.offered);
24944 if (flags & NDR_OUT) {
24945 ndr_print_struct(ndr, "out", "spoolss_EnumMonitors");
24947 ndr_print_ptr(ndr, "count", r->out.count);
24949 ndr_print_uint32(ndr, "count", *r->out.count);
24951 ndr_print_ptr(ndr, "info", r->out.info);
24953 ndr_print_ptr(ndr, "info", *r->out.info);
24955 if (*r->out.info) {
24956 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
24958 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
24960 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
24961 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
24962 ndr_print_spoolss_MonitorInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
24970 ndr_print_ptr(ndr, "needed", r->out.needed);
24972 ndr_print_uint32(ndr, "needed", *r->out.needed);
24974 ndr_print_WERROR(ndr, "result", r->out.result);
24980 static enum ndr_err_code ndr_push_spoolss_AddPort(struct ndr_push *ndr, int flags, const struct spoolss_AddPort *r)
24982 if (flags & NDR_IN) {
24983 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
24984 if (r->in.server_name) {
24985 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
24986 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24987 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
24988 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));
24990 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown));
24991 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
24992 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24993 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
24994 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));
24996 if (flags & NDR_OUT) {
24997 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24999 return NDR_ERR_SUCCESS;
25002 static enum ndr_err_code ndr_pull_spoolss_AddPort(struct ndr_pull *ndr, int flags, struct spoolss_AddPort *r)
25004 uint32_t _ptr_server_name;
25005 TALLOC_CTX *_mem_save_server_name_0;
25006 if (flags & NDR_IN) {
25007 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
25008 if (_ptr_server_name) {
25009 NDR_PULL_ALLOC(ndr, r->in.server_name);
25011 r->in.server_name = NULL;
25013 if (r->in.server_name) {
25014 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
25015 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
25016 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
25017 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
25018 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
25019 return 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));
25021 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
25022 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));
25023 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
25025 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown));
25026 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.monitor_name));
25027 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.monitor_name));
25028 if (ndr_get_array_length(ndr, &r->in.monitor_name) > ndr_get_array_size(ndr, &r->in.monitor_name)) {
25029 return 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));
25031 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.monitor_name), sizeof(uint16_t)));
25032 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));
25034 if (flags & NDR_OUT) {
25035 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25037 return NDR_ERR_SUCCESS;
25040 _PUBLIC_ void ndr_print_spoolss_AddPort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPort *r)
25042 ndr_print_struct(ndr, name, "spoolss_AddPort");
25044 if (flags & NDR_SET_VALUES) {
25045 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25047 if (flags & NDR_IN) {
25048 ndr_print_struct(ndr, "in", "spoolss_AddPort");
25050 ndr_print_ptr(ndr, "server_name", r->in.server_name);
25052 if (r->in.server_name) {
25053 ndr_print_string(ndr, "server_name", r->in.server_name);
25056 ndr_print_uint32(ndr, "unknown", r->in.unknown);
25057 ndr_print_string(ndr, "monitor_name", r->in.monitor_name);
25060 if (flags & NDR_OUT) {
25061 ndr_print_struct(ndr, "out", "spoolss_AddPort");
25063 ndr_print_WERROR(ndr, "result", r->out.result);
25069 static enum ndr_err_code ndr_push_spoolss_ConfigurePort(struct ndr_push *ndr, int flags, const struct spoolss_ConfigurePort *r)
25071 if (flags & NDR_IN) {
25073 if (flags & NDR_OUT) {
25074 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25076 return NDR_ERR_SUCCESS;
25079 static enum ndr_err_code ndr_pull_spoolss_ConfigurePort(struct ndr_pull *ndr, int flags, struct spoolss_ConfigurePort *r)
25081 if (flags & NDR_IN) {
25083 if (flags & NDR_OUT) {
25084 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25086 return NDR_ERR_SUCCESS;
25089 _PUBLIC_ void ndr_print_spoolss_ConfigurePort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ConfigurePort *r)
25091 ndr_print_struct(ndr, name, "spoolss_ConfigurePort");
25093 if (flags & NDR_SET_VALUES) {
25094 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25096 if (flags & NDR_IN) {
25097 ndr_print_struct(ndr, "in", "spoolss_ConfigurePort");
25101 if (flags & NDR_OUT) {
25102 ndr_print_struct(ndr, "out", "spoolss_ConfigurePort");
25104 ndr_print_WERROR(ndr, "result", r->out.result);
25110 static enum ndr_err_code ndr_push_spoolss_DeletePort(struct ndr_push *ndr, int flags, const struct spoolss_DeletePort *r)
25112 if (flags & NDR_IN) {
25114 if (flags & NDR_OUT) {
25115 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25117 return NDR_ERR_SUCCESS;
25120 static enum ndr_err_code ndr_pull_spoolss_DeletePort(struct ndr_pull *ndr, int flags, struct spoolss_DeletePort *r)
25122 if (flags & NDR_IN) {
25124 if (flags & NDR_OUT) {
25125 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25127 return NDR_ERR_SUCCESS;
25130 _PUBLIC_ void ndr_print_spoolss_DeletePort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePort *r)
25132 ndr_print_struct(ndr, name, "spoolss_DeletePort");
25134 if (flags & NDR_SET_VALUES) {
25135 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25137 if (flags & NDR_IN) {
25138 ndr_print_struct(ndr, "in", "spoolss_DeletePort");
25142 if (flags & NDR_OUT) {
25143 ndr_print_struct(ndr, "out", "spoolss_DeletePort");
25145 ndr_print_WERROR(ndr, "result", r->out.result);
25151 static enum ndr_err_code ndr_push_spoolss_CreatePrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_CreatePrinterIC *r)
25153 if (flags & NDR_IN) {
25154 if (r->in.handle == NULL) {
25155 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25157 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25158 if (r->in.devmode_ctr == NULL) {
25159 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25161 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
25163 if (flags & NDR_OUT) {
25164 if (r->out.gdi_handle == NULL) {
25165 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25167 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.gdi_handle));
25168 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25170 return NDR_ERR_SUCCESS;
25173 static enum ndr_err_code ndr_pull_spoolss_CreatePrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_CreatePrinterIC *r)
25175 TALLOC_CTX *_mem_save_handle_0;
25176 TALLOC_CTX *_mem_save_gdi_handle_0;
25177 TALLOC_CTX *_mem_save_devmode_ctr_0;
25178 if (flags & NDR_IN) {
25179 ZERO_STRUCT(r->out);
25181 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25182 NDR_PULL_ALLOC(ndr, r->in.handle);
25184 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25185 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25186 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25187 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25188 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25189 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
25191 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
25192 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
25193 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
25194 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
25195 NDR_PULL_ALLOC(ndr, r->out.gdi_handle);
25196 ZERO_STRUCTP(r->out.gdi_handle);
25198 if (flags & NDR_OUT) {
25199 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25200 NDR_PULL_ALLOC(ndr, r->out.gdi_handle);
25202 _mem_save_gdi_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25203 NDR_PULL_SET_MEM_CTX(ndr, r->out.gdi_handle, LIBNDR_FLAG_REF_ALLOC);
25204 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.gdi_handle));
25205 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_gdi_handle_0, LIBNDR_FLAG_REF_ALLOC);
25206 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25208 return NDR_ERR_SUCCESS;
25211 _PUBLIC_ void ndr_print_spoolss_CreatePrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_CreatePrinterIC *r)
25213 ndr_print_struct(ndr, name, "spoolss_CreatePrinterIC");
25215 if (flags & NDR_SET_VALUES) {
25216 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25218 if (flags & NDR_IN) {
25219 ndr_print_struct(ndr, "in", "spoolss_CreatePrinterIC");
25221 ndr_print_ptr(ndr, "handle", r->in.handle);
25223 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25225 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
25227 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
25231 if (flags & NDR_OUT) {
25232 ndr_print_struct(ndr, "out", "spoolss_CreatePrinterIC");
25234 ndr_print_ptr(ndr, "gdi_handle", r->out.gdi_handle);
25236 ndr_print_policy_handle(ndr, "gdi_handle", r->out.gdi_handle);
25238 ndr_print_WERROR(ndr, "result", r->out.result);
25244 static enum ndr_err_code ndr_push_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_PlayGDIScriptOnPrinterIC *r)
25246 if (flags & NDR_IN) {
25248 if (flags & NDR_OUT) {
25249 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25251 return NDR_ERR_SUCCESS;
25254 static enum ndr_err_code ndr_pull_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_PlayGDIScriptOnPrinterIC *r)
25256 if (flags & NDR_IN) {
25258 if (flags & NDR_OUT) {
25259 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25261 return NDR_ERR_SUCCESS;
25264 _PUBLIC_ void ndr_print_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_PlayGDIScriptOnPrinterIC *r)
25266 ndr_print_struct(ndr, name, "spoolss_PlayGDIScriptOnPrinterIC");
25268 if (flags & NDR_SET_VALUES) {
25269 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25271 if (flags & NDR_IN) {
25272 ndr_print_struct(ndr, "in", "spoolss_PlayGDIScriptOnPrinterIC");
25276 if (flags & NDR_OUT) {
25277 ndr_print_struct(ndr, "out", "spoolss_PlayGDIScriptOnPrinterIC");
25279 ndr_print_WERROR(ndr, "result", r->out.result);
25285 static enum ndr_err_code ndr_push_spoolss_DeletePrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterIC *r)
25287 if (flags & NDR_IN) {
25288 if (r->in.gdi_handle == NULL) {
25289 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25291 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.gdi_handle));
25293 if (flags & NDR_OUT) {
25294 if (r->out.gdi_handle == NULL) {
25295 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25297 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.gdi_handle));
25298 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25300 return NDR_ERR_SUCCESS;
25303 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterIC *r)
25305 TALLOC_CTX *_mem_save_gdi_handle_0;
25306 if (flags & NDR_IN) {
25307 ZERO_STRUCT(r->out);
25309 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25310 NDR_PULL_ALLOC(ndr, r->in.gdi_handle);
25312 _mem_save_gdi_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25313 NDR_PULL_SET_MEM_CTX(ndr, r->in.gdi_handle, LIBNDR_FLAG_REF_ALLOC);
25314 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.gdi_handle));
25315 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_gdi_handle_0, LIBNDR_FLAG_REF_ALLOC);
25316 NDR_PULL_ALLOC(ndr, r->out.gdi_handle);
25317 *r->out.gdi_handle = *r->in.gdi_handle;
25319 if (flags & NDR_OUT) {
25320 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25321 NDR_PULL_ALLOC(ndr, r->out.gdi_handle);
25323 _mem_save_gdi_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25324 NDR_PULL_SET_MEM_CTX(ndr, r->out.gdi_handle, LIBNDR_FLAG_REF_ALLOC);
25325 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.gdi_handle));
25326 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_gdi_handle_0, LIBNDR_FLAG_REF_ALLOC);
25327 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25329 return NDR_ERR_SUCCESS;
25332 _PUBLIC_ void ndr_print_spoolss_DeletePrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterIC *r)
25334 ndr_print_struct(ndr, name, "spoolss_DeletePrinterIC");
25336 if (flags & NDR_SET_VALUES) {
25337 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25339 if (flags & NDR_IN) {
25340 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterIC");
25342 ndr_print_ptr(ndr, "gdi_handle", r->in.gdi_handle);
25344 ndr_print_policy_handle(ndr, "gdi_handle", r->in.gdi_handle);
25348 if (flags & NDR_OUT) {
25349 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterIC");
25351 ndr_print_ptr(ndr, "gdi_handle", r->out.gdi_handle);
25353 ndr_print_policy_handle(ndr, "gdi_handle", r->out.gdi_handle);
25355 ndr_print_WERROR(ndr, "result", r->out.result);
25361 static enum ndr_err_code ndr_push_spoolss_AddPrinterConnection(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterConnection *r)
25363 if (flags & NDR_IN) {
25365 if (flags & NDR_OUT) {
25366 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25368 return NDR_ERR_SUCCESS;
25371 static enum ndr_err_code ndr_pull_spoolss_AddPrinterConnection(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterConnection *r)
25373 if (flags & NDR_IN) {
25375 if (flags & NDR_OUT) {
25376 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25378 return NDR_ERR_SUCCESS;
25381 _PUBLIC_ void ndr_print_spoolss_AddPrinterConnection(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterConnection *r)
25383 ndr_print_struct(ndr, name, "spoolss_AddPrinterConnection");
25385 if (flags & NDR_SET_VALUES) {
25386 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25388 if (flags & NDR_IN) {
25389 ndr_print_struct(ndr, "in", "spoolss_AddPrinterConnection");
25393 if (flags & NDR_OUT) {
25394 ndr_print_struct(ndr, "out", "spoolss_AddPrinterConnection");
25396 ndr_print_WERROR(ndr, "result", r->out.result);
25402 static enum ndr_err_code ndr_push_spoolss_DeletePrinterConnection(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterConnection *r)
25404 if (flags & NDR_IN) {
25406 if (flags & NDR_OUT) {
25407 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25409 return NDR_ERR_SUCCESS;
25412 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterConnection(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterConnection *r)
25414 if (flags & NDR_IN) {
25416 if (flags & NDR_OUT) {
25417 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25419 return NDR_ERR_SUCCESS;
25422 _PUBLIC_ void ndr_print_spoolss_DeletePrinterConnection(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterConnection *r)
25424 ndr_print_struct(ndr, name, "spoolss_DeletePrinterConnection");
25426 if (flags & NDR_SET_VALUES) {
25427 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25429 if (flags & NDR_IN) {
25430 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterConnection");
25434 if (flags & NDR_OUT) {
25435 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterConnection");
25437 ndr_print_WERROR(ndr, "result", r->out.result);
25443 static enum ndr_err_code ndr_push_spoolss_PrinterMessageBox(struct ndr_push *ndr, int flags, const struct spoolss_PrinterMessageBox *r)
25445 if (flags & NDR_IN) {
25447 if (flags & NDR_OUT) {
25448 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25450 return NDR_ERR_SUCCESS;
25453 static enum ndr_err_code ndr_pull_spoolss_PrinterMessageBox(struct ndr_pull *ndr, int flags, struct spoolss_PrinterMessageBox *r)
25455 if (flags & NDR_IN) {
25457 if (flags & NDR_OUT) {
25458 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25460 return NDR_ERR_SUCCESS;
25463 _PUBLIC_ void ndr_print_spoolss_PrinterMessageBox(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_PrinterMessageBox *r)
25465 ndr_print_struct(ndr, name, "spoolss_PrinterMessageBox");
25467 if (flags & NDR_SET_VALUES) {
25468 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25470 if (flags & NDR_IN) {
25471 ndr_print_struct(ndr, "in", "spoolss_PrinterMessageBox");
25475 if (flags & NDR_OUT) {
25476 ndr_print_struct(ndr, "out", "spoolss_PrinterMessageBox");
25478 ndr_print_WERROR(ndr, "result", r->out.result);
25484 static enum ndr_err_code ndr_push_spoolss_AddMonitor(struct ndr_push *ndr, int flags, const struct spoolss_AddMonitor *r)
25486 if (flags & NDR_IN) {
25488 if (flags & NDR_OUT) {
25489 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25491 return NDR_ERR_SUCCESS;
25494 static enum ndr_err_code ndr_pull_spoolss_AddMonitor(struct ndr_pull *ndr, int flags, struct spoolss_AddMonitor *r)
25496 if (flags & NDR_IN) {
25498 if (flags & NDR_OUT) {
25499 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25501 return NDR_ERR_SUCCESS;
25504 _PUBLIC_ void ndr_print_spoolss_AddMonitor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddMonitor *r)
25506 ndr_print_struct(ndr, name, "spoolss_AddMonitor");
25508 if (flags & NDR_SET_VALUES) {
25509 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25511 if (flags & NDR_IN) {
25512 ndr_print_struct(ndr, "in", "spoolss_AddMonitor");
25516 if (flags & NDR_OUT) {
25517 ndr_print_struct(ndr, "out", "spoolss_AddMonitor");
25519 ndr_print_WERROR(ndr, "result", r->out.result);
25525 static enum ndr_err_code ndr_push_spoolss_DeleteMonitor(struct ndr_push *ndr, int flags, const struct spoolss_DeleteMonitor *r)
25527 if (flags & NDR_IN) {
25529 if (flags & NDR_OUT) {
25530 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25532 return NDR_ERR_SUCCESS;
25535 static enum ndr_err_code ndr_pull_spoolss_DeleteMonitor(struct ndr_pull *ndr, int flags, struct spoolss_DeleteMonitor *r)
25537 if (flags & NDR_IN) {
25539 if (flags & NDR_OUT) {
25540 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25542 return NDR_ERR_SUCCESS;
25545 _PUBLIC_ void ndr_print_spoolss_DeleteMonitor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeleteMonitor *r)
25547 ndr_print_struct(ndr, name, "spoolss_DeleteMonitor");
25549 if (flags & NDR_SET_VALUES) {
25550 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25552 if (flags & NDR_IN) {
25553 ndr_print_struct(ndr, "in", "spoolss_DeleteMonitor");
25557 if (flags & NDR_OUT) {
25558 ndr_print_struct(ndr, "out", "spoolss_DeleteMonitor");
25560 ndr_print_WERROR(ndr, "result", r->out.result);
25566 static enum ndr_err_code ndr_push_spoolss_DeletePrintProcessor(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrintProcessor *r)
25568 if (flags & NDR_IN) {
25570 if (flags & NDR_OUT) {
25571 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25573 return NDR_ERR_SUCCESS;
25576 static enum ndr_err_code ndr_pull_spoolss_DeletePrintProcessor(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrintProcessor *r)
25578 if (flags & NDR_IN) {
25580 if (flags & NDR_OUT) {
25581 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25583 return NDR_ERR_SUCCESS;
25586 _PUBLIC_ void ndr_print_spoolss_DeletePrintProcessor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrintProcessor *r)
25588 ndr_print_struct(ndr, name, "spoolss_DeletePrintProcessor");
25590 if (flags & NDR_SET_VALUES) {
25591 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25593 if (flags & NDR_IN) {
25594 ndr_print_struct(ndr, "in", "spoolss_DeletePrintProcessor");
25598 if (flags & NDR_OUT) {
25599 ndr_print_struct(ndr, "out", "spoolss_DeletePrintProcessor");
25601 ndr_print_WERROR(ndr, "result", r->out.result);
25607 static enum ndr_err_code ndr_push_spoolss_AddPrintProvidor(struct ndr_push *ndr, int flags, const struct spoolss_AddPrintProvidor *r)
25609 if (flags & NDR_IN) {
25611 if (flags & NDR_OUT) {
25612 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25614 return NDR_ERR_SUCCESS;
25617 static enum ndr_err_code ndr_pull_spoolss_AddPrintProvidor(struct ndr_pull *ndr, int flags, struct spoolss_AddPrintProvidor *r)
25619 if (flags & NDR_IN) {
25621 if (flags & NDR_OUT) {
25622 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25624 return NDR_ERR_SUCCESS;
25627 _PUBLIC_ void ndr_print_spoolss_AddPrintProvidor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrintProvidor *r)
25629 ndr_print_struct(ndr, name, "spoolss_AddPrintProvidor");
25631 if (flags & NDR_SET_VALUES) {
25632 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25634 if (flags & NDR_IN) {
25635 ndr_print_struct(ndr, "in", "spoolss_AddPrintProvidor");
25639 if (flags & NDR_OUT) {
25640 ndr_print_struct(ndr, "out", "spoolss_AddPrintProvidor");
25642 ndr_print_WERROR(ndr, "result", r->out.result);
25648 static enum ndr_err_code ndr_push_spoolss_DeletePrintProvidor(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrintProvidor *r)
25650 if (flags & NDR_IN) {
25652 if (flags & NDR_OUT) {
25653 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25655 return NDR_ERR_SUCCESS;
25658 static enum ndr_err_code ndr_pull_spoolss_DeletePrintProvidor(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrintProvidor *r)
25660 if (flags & NDR_IN) {
25662 if (flags & NDR_OUT) {
25663 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25665 return NDR_ERR_SUCCESS;
25668 _PUBLIC_ void ndr_print_spoolss_DeletePrintProvidor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrintProvidor *r)
25670 ndr_print_struct(ndr, name, "spoolss_DeletePrintProvidor");
25672 if (flags & NDR_SET_VALUES) {
25673 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25675 if (flags & NDR_IN) {
25676 ndr_print_struct(ndr, "in", "spoolss_DeletePrintProvidor");
25680 if (flags & NDR_OUT) {
25681 ndr_print_struct(ndr, "out", "spoolss_DeletePrintProvidor");
25683 ndr_print_WERROR(ndr, "result", r->out.result);
25689 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrintProcDataTypes(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrintProcDataTypes *r)
25691 if (flags & NDR_IN) {
25692 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
25693 if (r->in.servername) {
25694 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
25695 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
25696 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
25697 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
25699 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.print_processor_name));
25700 if (r->in.print_processor_name) {
25701 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
25702 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
25703 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
25704 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));
25706 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
25707 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
25708 if (r->in.buffer) {
25709 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
25711 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
25713 if (flags & NDR_OUT) {
25714 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
25716 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
25718 if (r->out.needed == NULL) {
25719 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25721 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
25722 if (r->out.count == NULL) {
25723 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25725 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
25726 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25728 return NDR_ERR_SUCCESS;
25731 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrintProcDataTypes(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrintProcDataTypes *r)
25733 uint32_t _ptr_servername;
25734 uint32_t _ptr_print_processor_name;
25735 uint32_t _ptr_buffer;
25736 uint32_t _ptr_info;
25737 TALLOC_CTX *_mem_save_servername_0;
25738 TALLOC_CTX *_mem_save_print_processor_name_0;
25739 TALLOC_CTX *_mem_save_buffer_0;
25740 TALLOC_CTX *_mem_save_info_0;
25741 TALLOC_CTX *_mem_save_needed_0;
25742 TALLOC_CTX *_mem_save_count_0;
25743 if (flags & NDR_IN) {
25744 ZERO_STRUCT(r->out);
25746 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
25747 if (_ptr_servername) {
25748 NDR_PULL_ALLOC(ndr, r->in.servername);
25750 r->in.servername = NULL;
25752 if (r->in.servername) {
25753 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
25754 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
25755 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
25756 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
25757 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
25758 return 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));
25760 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
25761 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
25762 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
25764 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor_name));
25765 if (_ptr_print_processor_name) {
25766 NDR_PULL_ALLOC(ndr, r->in.print_processor_name);
25768 r->in.print_processor_name = NULL;
25770 if (r->in.print_processor_name) {
25771 _mem_save_print_processor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
25772 NDR_PULL_SET_MEM_CTX(ndr, r->in.print_processor_name, 0);
25773 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.print_processor_name));
25774 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.print_processor_name));
25775 if (ndr_get_array_length(ndr, &r->in.print_processor_name) > ndr_get_array_size(ndr, &r->in.print_processor_name)) {
25776 return 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));
25778 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.print_processor_name), sizeof(uint16_t)));
25779 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));
25780 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_name_0, 0);
25782 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
25783 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
25785 NDR_PULL_ALLOC(ndr, r->in.buffer);
25787 r->in.buffer = NULL;
25789 if (r->in.buffer) {
25790 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
25791 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
25792 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
25793 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
25795 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
25796 NDR_PULL_ALLOC(ndr, r->out.needed);
25797 ZERO_STRUCTP(r->out.needed);
25798 NDR_PULL_ALLOC(ndr, r->out.count);
25799 ZERO_STRUCTP(r->out.count);
25801 if (flags & NDR_OUT) {
25802 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
25804 NDR_PULL_ALLOC(ndr, r->out.info);
25806 r->out.info = NULL;
25809 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
25810 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
25811 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
25812 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
25814 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25815 NDR_PULL_ALLOC(ndr, r->out.needed);
25817 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
25818 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
25819 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
25820 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
25821 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25822 NDR_PULL_ALLOC(ndr, r->out.count);
25824 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
25825 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
25826 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
25827 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
25828 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25830 return NDR_ERR_SUCCESS;
25833 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrintProcDataTypes(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrintProcDataTypes *r)
25835 uint32_t cntr_info_0;
25836 if (flags & NDR_IN) {
25837 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
25838 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
25840 if (flags & NDR_OUT) {
25841 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
25842 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
25843 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
25845 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
25846 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
25849 return NDR_ERR_SUCCESS;
25852 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrintProcDataTypes(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrintProcDataTypes *r)
25854 uint32_t cntr_info_0;
25855 TALLOC_CTX *_mem_save_info_0;
25856 if (flags & NDR_IN) {
25857 ZERO_STRUCT(r->out);
25859 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
25860 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
25862 if (flags & NDR_OUT) {
25863 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
25864 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
25865 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
25866 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
25867 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
25868 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
25870 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
25871 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
25873 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
25875 return NDR_ERR_SUCCESS;
25878 _PUBLIC_ void ndr_print_spoolss_EnumPrintProcDataTypes(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrintProcDataTypes *r)
25880 uint32_t cntr_info_2;
25881 ndr_print_struct(ndr, name, "spoolss_EnumPrintProcDataTypes");
25883 if (flags & NDR_SET_VALUES) {
25884 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25886 if (flags & NDR_IN) {
25887 ndr_print_struct(ndr, "in", "spoolss_EnumPrintProcDataTypes");
25889 ndr_print_ptr(ndr, "servername", r->in.servername);
25891 if (r->in.servername) {
25892 ndr_print_string(ndr, "servername", r->in.servername);
25895 ndr_print_ptr(ndr, "print_processor_name", r->in.print_processor_name);
25897 if (r->in.print_processor_name) {
25898 ndr_print_string(ndr, "print_processor_name", r->in.print_processor_name);
25901 ndr_print_uint32(ndr, "level", r->in.level);
25902 ndr_print_ptr(ndr, "buffer", r->in.buffer);
25904 if (r->in.buffer) {
25905 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
25908 ndr_print_uint32(ndr, "offered", r->in.offered);
25911 if (flags & NDR_OUT) {
25912 ndr_print_struct(ndr, "out", "spoolss_EnumPrintProcDataTypes");
25914 ndr_print_ptr(ndr, "count", r->out.count);
25916 ndr_print_uint32(ndr, "count", *r->out.count);
25918 ndr_print_ptr(ndr, "info", r->out.info);
25920 ndr_print_ptr(ndr, "info", *r->out.info);
25922 if (*r->out.info) {
25923 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
25925 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
25927 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
25928 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
25929 ndr_print_spoolss_PrintProcDataTypesInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
25937 ndr_print_ptr(ndr, "needed", r->out.needed);
25939 ndr_print_uint32(ndr, "needed", *r->out.needed);
25941 ndr_print_WERROR(ndr, "result", r->out.result);
25947 static enum ndr_err_code ndr_push_spoolss_ResetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ResetPrinter *r)
25949 if (flags & NDR_IN) {
25950 if (r->in.handle == NULL) {
25951 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25953 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25954 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.data_type));
25955 if (r->in.data_type) {
25956 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.data_type, CH_UTF16)));
25957 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
25958 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.data_type, CH_UTF16)));
25959 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));
25961 if (r->in.devmode_ctr == NULL) {
25962 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25964 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
25966 if (flags & NDR_OUT) {
25967 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25969 return NDR_ERR_SUCCESS;
25972 static enum ndr_err_code ndr_pull_spoolss_ResetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ResetPrinter *r)
25974 uint32_t _ptr_data_type;
25975 TALLOC_CTX *_mem_save_handle_0;
25976 TALLOC_CTX *_mem_save_data_type_0;
25977 TALLOC_CTX *_mem_save_devmode_ctr_0;
25978 if (flags & NDR_IN) {
25979 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25980 NDR_PULL_ALLOC(ndr, r->in.handle);
25982 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25983 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25984 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25985 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25986 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
25987 if (_ptr_data_type) {
25988 NDR_PULL_ALLOC(ndr, r->in.data_type);
25990 r->in.data_type = NULL;
25992 if (r->in.data_type) {
25993 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
25994 NDR_PULL_SET_MEM_CTX(ndr, r->in.data_type, 0);
25995 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.data_type));
25996 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.data_type));
25997 if (ndr_get_array_length(ndr, &r->in.data_type) > ndr_get_array_size(ndr, &r->in.data_type)) {
25998 return 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));
26000 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.data_type), sizeof(uint16_t)));
26001 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));
26002 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
26004 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26005 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
26007 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
26008 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
26009 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
26010 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
26012 if (flags & NDR_OUT) {
26013 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26015 return NDR_ERR_SUCCESS;
26018 _PUBLIC_ void ndr_print_spoolss_ResetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ResetPrinter *r)
26020 ndr_print_struct(ndr, name, "spoolss_ResetPrinter");
26022 if (flags & NDR_SET_VALUES) {
26023 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26025 if (flags & NDR_IN) {
26026 ndr_print_struct(ndr, "in", "spoolss_ResetPrinter");
26028 ndr_print_ptr(ndr, "handle", r->in.handle);
26030 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26032 ndr_print_ptr(ndr, "data_type", r->in.data_type);
26034 if (r->in.data_type) {
26035 ndr_print_string(ndr, "data_type", r->in.data_type);
26038 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
26040 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
26044 if (flags & NDR_OUT) {
26045 ndr_print_struct(ndr, "out", "spoolss_ResetPrinter");
26047 ndr_print_WERROR(ndr, "result", r->out.result);
26053 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriver2(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriver2 *r)
26055 if (flags & NDR_IN) {
26056 if (r->in.handle == NULL) {
26057 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26059 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26060 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.architecture));
26061 if (r->in.architecture) {
26062 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
26063 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
26064 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
26065 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26067 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
26068 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
26069 if (r->in.buffer) {
26070 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
26072 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
26073 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_major_version));
26074 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_minor_version));
26076 if (flags & NDR_OUT) {
26077 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
26080 struct ndr_push *_ndr_info;
26081 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
26082 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
26083 NDR_CHECK(ndr_push_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
26084 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
26087 if (r->out.needed == NULL) {
26088 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26090 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
26091 if (r->out.server_major_version == NULL) {
26092 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26094 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.server_major_version));
26095 if (r->out.server_minor_version == NULL) {
26096 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26098 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.server_minor_version));
26099 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26101 return NDR_ERR_SUCCESS;
26104 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriver2(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriver2 *r)
26106 uint32_t _ptr_architecture;
26107 uint32_t _ptr_buffer;
26108 uint32_t _ptr_info;
26109 TALLOC_CTX *_mem_save_handle_0;
26110 TALLOC_CTX *_mem_save_architecture_0;
26111 TALLOC_CTX *_mem_save_buffer_0;
26112 TALLOC_CTX *_mem_save_info_0;
26113 TALLOC_CTX *_mem_save_needed_0;
26114 TALLOC_CTX *_mem_save_server_major_version_0;
26115 TALLOC_CTX *_mem_save_server_minor_version_0;
26116 if (flags & NDR_IN) {
26117 ZERO_STRUCT(r->out);
26119 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26120 NDR_PULL_ALLOC(ndr, r->in.handle);
26122 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26123 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26124 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26125 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26126 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
26127 if (_ptr_architecture) {
26128 NDR_PULL_ALLOC(ndr, r->in.architecture);
26130 r->in.architecture = NULL;
26132 if (r->in.architecture) {
26133 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
26134 NDR_PULL_SET_MEM_CTX(ndr, r->in.architecture, 0);
26135 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
26136 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
26137 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
26138 return 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));
26140 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
26141 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
26142 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
26144 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
26145 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
26147 NDR_PULL_ALLOC(ndr, r->in.buffer);
26149 r->in.buffer = NULL;
26151 if (r->in.buffer) {
26152 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
26153 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
26154 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
26155 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
26157 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
26158 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_major_version));
26159 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_minor_version));
26160 NDR_PULL_ALLOC(ndr, r->out.needed);
26161 ZERO_STRUCTP(r->out.needed);
26162 NDR_PULL_ALLOC(ndr, r->out.server_major_version);
26163 ZERO_STRUCTP(r->out.server_major_version);
26164 NDR_PULL_ALLOC(ndr, r->out.server_minor_version);
26165 ZERO_STRUCTP(r->out.server_minor_version);
26167 if (flags & NDR_OUT) {
26168 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
26170 NDR_PULL_ALLOC(ndr, r->out.info);
26172 r->out.info = NULL;
26175 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
26176 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
26178 struct ndr_pull *_ndr_info;
26179 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
26180 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
26181 NDR_CHECK(ndr_pull_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
26182 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
26184 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
26186 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26187 NDR_PULL_ALLOC(ndr, r->out.needed);
26189 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
26190 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
26191 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
26192 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
26193 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26194 NDR_PULL_ALLOC(ndr, r->out.server_major_version);
26196 _mem_save_server_major_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
26197 NDR_PULL_SET_MEM_CTX(ndr, r->out.server_major_version, LIBNDR_FLAG_REF_ALLOC);
26198 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.server_major_version));
26199 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_major_version_0, LIBNDR_FLAG_REF_ALLOC);
26200 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26201 NDR_PULL_ALLOC(ndr, r->out.server_minor_version);
26203 _mem_save_server_minor_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
26204 NDR_PULL_SET_MEM_CTX(ndr, r->out.server_minor_version, LIBNDR_FLAG_REF_ALLOC);
26205 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.server_minor_version));
26206 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_minor_version_0, LIBNDR_FLAG_REF_ALLOC);
26207 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26209 return NDR_ERR_SUCCESS;
26212 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriver2(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriver2 *r)
26214 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriver2");
26216 if (flags & NDR_SET_VALUES) {
26217 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26219 if (flags & NDR_IN) {
26220 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriver2");
26222 ndr_print_ptr(ndr, "handle", r->in.handle);
26224 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26226 ndr_print_ptr(ndr, "architecture", r->in.architecture);
26228 if (r->in.architecture) {
26229 ndr_print_string(ndr, "architecture", r->in.architecture);
26232 ndr_print_uint32(ndr, "level", r->in.level);
26233 ndr_print_ptr(ndr, "buffer", r->in.buffer);
26235 if (r->in.buffer) {
26236 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
26239 ndr_print_uint32(ndr, "offered", r->in.offered);
26240 ndr_print_uint32(ndr, "client_major_version", r->in.client_major_version);
26241 ndr_print_uint32(ndr, "client_minor_version", r->in.client_minor_version);
26244 if (flags & NDR_OUT) {
26245 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriver2");
26247 ndr_print_ptr(ndr, "info", r->out.info);
26250 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
26251 ndr_print_spoolss_DriverInfo(ndr, "info", r->out.info);
26254 ndr_print_ptr(ndr, "needed", r->out.needed);
26256 ndr_print_uint32(ndr, "needed", *r->out.needed);
26258 ndr_print_ptr(ndr, "server_major_version", r->out.server_major_version);
26260 ndr_print_uint32(ndr, "server_major_version", *r->out.server_major_version);
26262 ndr_print_ptr(ndr, "server_minor_version", r->out.server_minor_version);
26264 ndr_print_uint32(ndr, "server_minor_version", *r->out.server_minor_version);
26266 ndr_print_WERROR(ndr, "result", r->out.result);
26272 static enum ndr_err_code ndr_push_spoolss_FindFirstPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_FindFirstPrinterChangeNotification *r)
26274 if (flags & NDR_IN) {
26276 if (flags & NDR_OUT) {
26277 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26279 return NDR_ERR_SUCCESS;
26282 static enum ndr_err_code ndr_pull_spoolss_FindFirstPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_FindFirstPrinterChangeNotification *r)
26284 if (flags & NDR_IN) {
26286 if (flags & NDR_OUT) {
26287 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26289 return NDR_ERR_SUCCESS;
26292 _PUBLIC_ void ndr_print_spoolss_FindFirstPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindFirstPrinterChangeNotification *r)
26294 ndr_print_struct(ndr, name, "spoolss_FindFirstPrinterChangeNotification");
26296 if (flags & NDR_SET_VALUES) {
26297 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26299 if (flags & NDR_IN) {
26300 ndr_print_struct(ndr, "in", "spoolss_FindFirstPrinterChangeNotification");
26304 if (flags & NDR_OUT) {
26305 ndr_print_struct(ndr, "out", "spoolss_FindFirstPrinterChangeNotification");
26307 ndr_print_WERROR(ndr, "result", r->out.result);
26313 static enum ndr_err_code ndr_push_spoolss_FindNextPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_FindNextPrinterChangeNotification *r)
26315 if (flags & NDR_IN) {
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_FindNextPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_FindNextPrinterChangeNotification *r)
26325 if (flags & NDR_IN) {
26327 if (flags & NDR_OUT) {
26328 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26330 return NDR_ERR_SUCCESS;
26333 _PUBLIC_ void ndr_print_spoolss_FindNextPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindNextPrinterChangeNotification *r)
26335 ndr_print_struct(ndr, name, "spoolss_FindNextPrinterChangeNotification");
26337 if (flags & NDR_SET_VALUES) {
26338 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26340 if (flags & NDR_IN) {
26341 ndr_print_struct(ndr, "in", "spoolss_FindNextPrinterChangeNotification");
26345 if (flags & NDR_OUT) {
26346 ndr_print_struct(ndr, "out", "spoolss_FindNextPrinterChangeNotification");
26348 ndr_print_WERROR(ndr, "result", r->out.result);
26354 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FindClosePrinterNotify(struct ndr_push *ndr, int flags, const struct spoolss_FindClosePrinterNotify *r)
26356 if (flags & NDR_IN) {
26357 if (r->in.handle == NULL) {
26358 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26360 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26362 if (flags & NDR_OUT) {
26363 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26365 return NDR_ERR_SUCCESS;
26368 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FindClosePrinterNotify(struct ndr_pull *ndr, int flags, struct spoolss_FindClosePrinterNotify *r)
26370 TALLOC_CTX *_mem_save_handle_0;
26371 if (flags & NDR_IN) {
26372 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26373 NDR_PULL_ALLOC(ndr, r->in.handle);
26375 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26376 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26377 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26378 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26380 if (flags & NDR_OUT) {
26381 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26383 return NDR_ERR_SUCCESS;
26386 _PUBLIC_ void ndr_print_spoolss_FindClosePrinterNotify(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindClosePrinterNotify *r)
26388 ndr_print_struct(ndr, name, "spoolss_FindClosePrinterNotify");
26390 if (flags & NDR_SET_VALUES) {
26391 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26393 if (flags & NDR_IN) {
26394 ndr_print_struct(ndr, "in", "spoolss_FindClosePrinterNotify");
26396 ndr_print_ptr(ndr, "handle", r->in.handle);
26398 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26402 if (flags & NDR_OUT) {
26403 ndr_print_struct(ndr, "out", "spoolss_FindClosePrinterNotify");
26405 ndr_print_WERROR(ndr, "result", r->out.result);
26411 static enum ndr_err_code ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_push *ndr, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
26413 if (flags & NDR_IN) {
26415 if (flags & NDR_OUT) {
26416 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26418 return NDR_ERR_SUCCESS;
26421 static enum ndr_err_code ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_pull *ndr, int flags, struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
26423 if (flags & NDR_IN) {
26425 if (flags & NDR_OUT) {
26426 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26428 return NDR_ERR_SUCCESS;
26431 _PUBLIC_ void ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
26433 ndr_print_struct(ndr, name, "spoolss_RouterFindFirstPrinterChangeNotificationOld");
26435 if (flags & NDR_SET_VALUES) {
26436 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26438 if (flags & NDR_IN) {
26439 ndr_print_struct(ndr, "in", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
26443 if (flags & NDR_OUT) {
26444 ndr_print_struct(ndr, "out", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
26446 ndr_print_WERROR(ndr, "result", r->out.result);
26452 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ReplyOpenPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReplyOpenPrinter *r)
26454 if (flags & NDR_IN) {
26455 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
26456 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
26457 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
26458 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));
26459 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.printer_local));
26460 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
26461 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
26462 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
26463 if (r->in.buffer) {
26464 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.bufsize));
26465 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.bufsize));
26468 if (flags & NDR_OUT) {
26469 if (r->out.handle == NULL) {
26470 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26472 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
26473 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26475 return NDR_ERR_SUCCESS;
26478 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ReplyOpenPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReplyOpenPrinter *r)
26480 uint32_t _ptr_buffer;
26481 TALLOC_CTX *_mem_save_buffer_0;
26482 TALLOC_CTX *_mem_save_handle_0;
26483 if (flags & NDR_IN) {
26484 ZERO_STRUCT(r->out);
26486 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
26487 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
26488 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
26489 return 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));
26491 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
26492 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));
26493 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.printer_local));
26494 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
26495 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.bufsize));
26496 if (r->in.bufsize > 512) {
26497 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
26499 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
26501 NDR_PULL_ALLOC(ndr, r->in.buffer);
26503 r->in.buffer = NULL;
26505 if (r->in.buffer) {
26506 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
26507 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
26508 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
26509 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
26510 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
26511 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
26513 NDR_PULL_ALLOC(ndr, r->out.handle);
26514 ZERO_STRUCTP(r->out.handle);
26515 if (r->in.buffer) {
26516 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.bufsize));
26519 if (flags & NDR_OUT) {
26520 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26521 NDR_PULL_ALLOC(ndr, r->out.handle);
26523 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26524 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
26525 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
26526 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26527 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26529 return NDR_ERR_SUCCESS;
26532 _PUBLIC_ void ndr_print_spoolss_ReplyOpenPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReplyOpenPrinter *r)
26534 ndr_print_struct(ndr, name, "spoolss_ReplyOpenPrinter");
26536 if (flags & NDR_SET_VALUES) {
26537 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26539 if (flags & NDR_IN) {
26540 ndr_print_struct(ndr, "in", "spoolss_ReplyOpenPrinter");
26542 ndr_print_string(ndr, "server_name", r->in.server_name);
26543 ndr_print_uint32(ndr, "printer_local", r->in.printer_local);
26544 ndr_print_winreg_Type(ndr, "type", r->in.type);
26545 ndr_print_uint32(ndr, "bufsize", r->in.bufsize);
26546 ndr_print_ptr(ndr, "buffer", r->in.buffer);
26548 if (r->in.buffer) {
26549 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.bufsize);
26554 if (flags & NDR_OUT) {
26555 ndr_print_struct(ndr, "out", "spoolss_ReplyOpenPrinter");
26557 ndr_print_ptr(ndr, "handle", r->out.handle);
26559 ndr_print_policy_handle(ndr, "handle", r->out.handle);
26561 ndr_print_WERROR(ndr, "result", r->out.result);
26567 static enum ndr_err_code ndr_push_spoolss_RouterReplyPrinter(struct ndr_push *ndr, int flags, const struct spoolss_RouterReplyPrinter *r)
26569 if (flags & NDR_IN) {
26570 if (r->in.handle == NULL) {
26571 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26573 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26574 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
26575 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
26576 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
26577 if (r->in.buffer) {
26578 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.bufsize));
26579 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.bufsize));
26582 if (flags & NDR_OUT) {
26583 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26585 return NDR_ERR_SUCCESS;
26588 static enum ndr_err_code ndr_pull_spoolss_RouterReplyPrinter(struct ndr_pull *ndr, int flags, struct spoolss_RouterReplyPrinter *r)
26590 uint32_t _ptr_buffer;
26591 TALLOC_CTX *_mem_save_handle_0;
26592 TALLOC_CTX *_mem_save_buffer_0;
26593 if (flags & NDR_IN) {
26594 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26595 NDR_PULL_ALLOC(ndr, r->in.handle);
26597 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26598 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26599 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26600 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26601 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
26602 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.bufsize));
26603 if (r->in.bufsize > 512) {
26604 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
26606 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
26608 NDR_PULL_ALLOC(ndr, r->in.buffer);
26610 r->in.buffer = NULL;
26612 if (r->in.buffer) {
26613 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
26614 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
26615 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
26616 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
26617 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
26618 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
26620 if (r->in.buffer) {
26621 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.bufsize));
26624 if (flags & NDR_OUT) {
26625 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26627 return NDR_ERR_SUCCESS;
26630 _PUBLIC_ void ndr_print_spoolss_RouterReplyPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterReplyPrinter *r)
26632 ndr_print_struct(ndr, name, "spoolss_RouterReplyPrinter");
26634 if (flags & NDR_SET_VALUES) {
26635 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26637 if (flags & NDR_IN) {
26638 ndr_print_struct(ndr, "in", "spoolss_RouterReplyPrinter");
26640 ndr_print_ptr(ndr, "handle", r->in.handle);
26642 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26644 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
26645 ndr_print_uint32(ndr, "bufsize", r->in.bufsize);
26646 ndr_print_ptr(ndr, "buffer", r->in.buffer);
26648 if (r->in.buffer) {
26649 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.bufsize);
26654 if (flags & NDR_OUT) {
26655 ndr_print_struct(ndr, "out", "spoolss_RouterReplyPrinter");
26657 ndr_print_WERROR(ndr, "result", r->out.result);
26663 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ReplyClosePrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReplyClosePrinter *r)
26665 if (flags & NDR_IN) {
26666 if (r->in.handle == NULL) {
26667 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26669 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26671 if (flags & NDR_OUT) {
26672 if (r->out.handle == NULL) {
26673 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26675 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
26676 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26678 return NDR_ERR_SUCCESS;
26681 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ReplyClosePrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReplyClosePrinter *r)
26683 TALLOC_CTX *_mem_save_handle_0;
26684 if (flags & NDR_IN) {
26685 ZERO_STRUCT(r->out);
26687 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26688 NDR_PULL_ALLOC(ndr, r->in.handle);
26690 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26691 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26692 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26693 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26694 NDR_PULL_ALLOC(ndr, r->out.handle);
26695 *r->out.handle = *r->in.handle;
26697 if (flags & NDR_OUT) {
26698 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26699 NDR_PULL_ALLOC(ndr, r->out.handle);
26701 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26702 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
26703 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
26704 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26705 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26707 return NDR_ERR_SUCCESS;
26710 _PUBLIC_ void ndr_print_spoolss_ReplyClosePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReplyClosePrinter *r)
26712 ndr_print_struct(ndr, name, "spoolss_ReplyClosePrinter");
26714 if (flags & NDR_SET_VALUES) {
26715 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26717 if (flags & NDR_IN) {
26718 ndr_print_struct(ndr, "in", "spoolss_ReplyClosePrinter");
26720 ndr_print_ptr(ndr, "handle", r->in.handle);
26722 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26726 if (flags & NDR_OUT) {
26727 ndr_print_struct(ndr, "out", "spoolss_ReplyClosePrinter");
26729 ndr_print_ptr(ndr, "handle", r->out.handle);
26731 ndr_print_policy_handle(ndr, "handle", r->out.handle);
26733 ndr_print_WERROR(ndr, "result", r->out.result);
26739 static enum ndr_err_code ndr_push_spoolss_AddPortEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPortEx *r)
26741 if (flags & NDR_IN) {
26743 if (flags & NDR_OUT) {
26744 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26746 return NDR_ERR_SUCCESS;
26749 static enum ndr_err_code ndr_pull_spoolss_AddPortEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPortEx *r)
26751 if (flags & NDR_IN) {
26753 if (flags & NDR_OUT) {
26754 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26756 return NDR_ERR_SUCCESS;
26759 _PUBLIC_ void ndr_print_spoolss_AddPortEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPortEx *r)
26761 ndr_print_struct(ndr, name, "spoolss_AddPortEx");
26763 if (flags & NDR_SET_VALUES) {
26764 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26766 if (flags & NDR_IN) {
26767 ndr_print_struct(ndr, "in", "spoolss_AddPortEx");
26771 if (flags & NDR_OUT) {
26772 ndr_print_struct(ndr, "out", "spoolss_AddPortEx");
26774 ndr_print_WERROR(ndr, "result", r->out.result);
26780 static enum ndr_err_code ndr_push_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotification *r)
26782 if (flags & NDR_IN) {
26784 if (flags & NDR_OUT) {
26785 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26787 return NDR_ERR_SUCCESS;
26790 static enum ndr_err_code ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_RouterFindFirstPrinterChangeNotification *r)
26792 if (flags & NDR_IN) {
26794 if (flags & NDR_OUT) {
26795 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26797 return NDR_ERR_SUCCESS;
26800 _PUBLIC_ void ndr_print_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotification *r)
26802 ndr_print_struct(ndr, name, "spoolss_RouterFindFirstPrinterChangeNotification");
26804 if (flags & NDR_SET_VALUES) {
26805 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26807 if (flags & NDR_IN) {
26808 ndr_print_struct(ndr, "in", "spoolss_RouterFindFirstPrinterChangeNotification");
26812 if (flags & NDR_OUT) {
26813 ndr_print_struct(ndr, "out", "spoolss_RouterFindFirstPrinterChangeNotification");
26815 ndr_print_WERROR(ndr, "result", r->out.result);
26821 static enum ndr_err_code ndr_push_spoolss_SpoolerInit(struct ndr_push *ndr, int flags, const struct spoolss_SpoolerInit *r)
26823 if (flags & NDR_IN) {
26825 if (flags & NDR_OUT) {
26826 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26828 return NDR_ERR_SUCCESS;
26831 static enum ndr_err_code ndr_pull_spoolss_SpoolerInit(struct ndr_pull *ndr, int flags, struct spoolss_SpoolerInit *r)
26833 if (flags & NDR_IN) {
26835 if (flags & NDR_OUT) {
26836 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26838 return NDR_ERR_SUCCESS;
26841 _PUBLIC_ void ndr_print_spoolss_SpoolerInit(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SpoolerInit *r)
26843 ndr_print_struct(ndr, name, "spoolss_SpoolerInit");
26845 if (flags & NDR_SET_VALUES) {
26846 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26848 if (flags & NDR_IN) {
26849 ndr_print_struct(ndr, "in", "spoolss_SpoolerInit");
26853 if (flags & NDR_OUT) {
26854 ndr_print_struct(ndr, "out", "spoolss_SpoolerInit");
26856 ndr_print_WERROR(ndr, "result", r->out.result);
26862 static enum ndr_err_code ndr_push_spoolss_ResetPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_ResetPrinterEx *r)
26864 if (flags & NDR_IN) {
26866 if (flags & NDR_OUT) {
26867 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26869 return NDR_ERR_SUCCESS;
26872 static enum ndr_err_code ndr_pull_spoolss_ResetPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_ResetPrinterEx *r)
26874 if (flags & NDR_IN) {
26876 if (flags & NDR_OUT) {
26877 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26879 return NDR_ERR_SUCCESS;
26882 _PUBLIC_ void ndr_print_spoolss_ResetPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ResetPrinterEx *r)
26884 ndr_print_struct(ndr, name, "spoolss_ResetPrinterEx");
26886 if (flags & NDR_SET_VALUES) {
26887 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26889 if (flags & NDR_IN) {
26890 ndr_print_struct(ndr, "in", "spoolss_ResetPrinterEx");
26894 if (flags & NDR_OUT) {
26895 ndr_print_struct(ndr, "out", "spoolss_ResetPrinterEx");
26897 ndr_print_WERROR(ndr, "result", r->out.result);
26903 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_push *ndr, int flags, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
26905 if (flags & NDR_IN) {
26906 if (r->in.handle == NULL) {
26907 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26909 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26910 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
26911 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.options));
26912 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.local_machine));
26913 if (r->in.local_machine) {
26914 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.local_machine, CH_UTF16)));
26915 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
26916 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.local_machine, CH_UTF16)));
26917 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));
26919 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.printer_local));
26920 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.notify_options));
26921 if (r->in.notify_options) {
26922 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.notify_options));
26925 if (flags & NDR_OUT) {
26926 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26928 return NDR_ERR_SUCCESS;
26931 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_pull *ndr, int flags, struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
26933 uint32_t _ptr_local_machine;
26934 uint32_t _ptr_notify_options;
26935 TALLOC_CTX *_mem_save_handle_0;
26936 TALLOC_CTX *_mem_save_local_machine_0;
26937 TALLOC_CTX *_mem_save_notify_options_0;
26938 if (flags & NDR_IN) {
26939 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26940 NDR_PULL_ALLOC(ndr, r->in.handle);
26942 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26943 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26944 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26945 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26946 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
26947 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.options));
26948 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_local_machine));
26949 if (_ptr_local_machine) {
26950 NDR_PULL_ALLOC(ndr, r->in.local_machine);
26952 r->in.local_machine = NULL;
26954 if (r->in.local_machine) {
26955 _mem_save_local_machine_0 = NDR_PULL_GET_MEM_CTX(ndr);
26956 NDR_PULL_SET_MEM_CTX(ndr, r->in.local_machine, 0);
26957 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.local_machine));
26958 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.local_machine));
26959 if (ndr_get_array_length(ndr, &r->in.local_machine) > ndr_get_array_size(ndr, &r->in.local_machine)) {
26960 return 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));
26962 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.local_machine), sizeof(uint16_t)));
26963 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));
26964 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_local_machine_0, 0);
26966 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.printer_local));
26967 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_options));
26968 if (_ptr_notify_options) {
26969 NDR_PULL_ALLOC(ndr, r->in.notify_options);
26971 r->in.notify_options = NULL;
26973 if (r->in.notify_options) {
26974 _mem_save_notify_options_0 = NDR_PULL_GET_MEM_CTX(ndr);
26975 NDR_PULL_SET_MEM_CTX(ndr, r->in.notify_options, 0);
26976 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.notify_options));
26977 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_options_0, 0);
26980 if (flags & NDR_OUT) {
26981 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26983 return NDR_ERR_SUCCESS;
26986 _PUBLIC_ void ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
26988 ndr_print_struct(ndr, name, "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
26990 if (flags & NDR_SET_VALUES) {
26991 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26993 if (flags & NDR_IN) {
26994 ndr_print_struct(ndr, "in", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
26996 ndr_print_ptr(ndr, "handle", r->in.handle);
26998 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27000 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
27001 ndr_print_uint32(ndr, "options", r->in.options);
27002 ndr_print_ptr(ndr, "local_machine", r->in.local_machine);
27004 if (r->in.local_machine) {
27005 ndr_print_string(ndr, "local_machine", r->in.local_machine);
27008 ndr_print_uint32(ndr, "printer_local", r->in.printer_local);
27009 ndr_print_ptr(ndr, "notify_options", r->in.notify_options);
27011 if (r->in.notify_options) {
27012 ndr_print_spoolss_NotifyOption(ndr, "notify_options", r->in.notify_options);
27017 if (flags & NDR_OUT) {
27018 ndr_print_struct(ndr, "out", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
27020 ndr_print_WERROR(ndr, "result", r->out.result);
27026 static enum ndr_err_code ndr_push_spoolss_RouterReplyPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_RouterReplyPrinterEx *r)
27028 if (flags & NDR_IN) {
27029 if (r->in.handle == NULL) {
27030 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27032 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27033 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.color));
27034 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
27035 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.reply_type));
27036 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.reply_type));
27037 NDR_CHECK(ndr_push_spoolss_ReplyPrinterInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
27039 if (flags & NDR_OUT) {
27040 if (r->out.reply_result == NULL) {
27041 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27043 NDR_CHECK(ndr_push_spoolss_PrinterNotifyFlags(ndr, NDR_SCALARS, *r->out.reply_result));
27044 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27046 return NDR_ERR_SUCCESS;
27049 static enum ndr_err_code ndr_pull_spoolss_RouterReplyPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_RouterReplyPrinterEx *r)
27051 TALLOC_CTX *_mem_save_handle_0;
27052 TALLOC_CTX *_mem_save_reply_result_0;
27053 if (flags & NDR_IN) {
27054 ZERO_STRUCT(r->out);
27056 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27057 NDR_PULL_ALLOC(ndr, r->in.handle);
27059 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27060 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27061 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27062 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27063 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.color));
27064 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
27065 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.reply_type));
27066 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.reply_type));
27067 NDR_CHECK(ndr_pull_spoolss_ReplyPrinterInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
27068 NDR_PULL_ALLOC(ndr, r->out.reply_result);
27069 ZERO_STRUCTP(r->out.reply_result);
27071 if (flags & NDR_OUT) {
27072 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27073 NDR_PULL_ALLOC(ndr, r->out.reply_result);
27075 _mem_save_reply_result_0 = NDR_PULL_GET_MEM_CTX(ndr);
27076 NDR_PULL_SET_MEM_CTX(ndr, r->out.reply_result, LIBNDR_FLAG_REF_ALLOC);
27077 NDR_CHECK(ndr_pull_spoolss_PrinterNotifyFlags(ndr, NDR_SCALARS, r->out.reply_result));
27078 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_reply_result_0, LIBNDR_FLAG_REF_ALLOC);
27079 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27081 return NDR_ERR_SUCCESS;
27084 _PUBLIC_ void ndr_print_spoolss_RouterReplyPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterReplyPrinterEx *r)
27086 ndr_print_struct(ndr, name, "spoolss_RouterReplyPrinterEx");
27088 if (flags & NDR_SET_VALUES) {
27089 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27091 if (flags & NDR_IN) {
27092 ndr_print_struct(ndr, "in", "spoolss_RouterReplyPrinterEx");
27094 ndr_print_ptr(ndr, "handle", r->in.handle);
27096 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27098 ndr_print_uint32(ndr, "color", r->in.color);
27099 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
27100 ndr_print_uint32(ndr, "reply_type", r->in.reply_type);
27101 ndr_print_set_switch_value(ndr, &r->in.info, r->in.reply_type);
27102 ndr_print_spoolss_ReplyPrinterInfo(ndr, "info", &r->in.info);
27105 if (flags & NDR_OUT) {
27106 ndr_print_struct(ndr, "out", "spoolss_RouterReplyPrinterEx");
27108 ndr_print_ptr(ndr, "reply_result", r->out.reply_result);
27110 ndr_print_spoolss_PrinterNotifyFlags(ndr, "reply_result", *r->out.reply_result);
27112 ndr_print_WERROR(ndr, "result", r->out.result);
27118 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_push *ndr, int flags, const struct spoolss_RouterRefreshPrinterChangeNotify *r)
27120 if (flags & NDR_IN) {
27121 if (r->in.handle == NULL) {
27122 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27124 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27125 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.change_low));
27126 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.options));
27127 if (r->in.options) {
27128 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.options));
27131 if (flags & NDR_OUT) {
27132 if (r->out.info == NULL) {
27133 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27135 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
27136 if (*r->out.info) {
27137 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
27139 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27141 return NDR_ERR_SUCCESS;
27144 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_pull *ndr, int flags, struct spoolss_RouterRefreshPrinterChangeNotify *r)
27146 uint32_t _ptr_options;
27147 uint32_t _ptr_info;
27148 TALLOC_CTX *_mem_save_handle_0;
27149 TALLOC_CTX *_mem_save_options_0;
27150 TALLOC_CTX *_mem_save_info_0;
27151 TALLOC_CTX *_mem_save_info_1;
27152 if (flags & NDR_IN) {
27153 ZERO_STRUCT(r->out);
27155 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27156 NDR_PULL_ALLOC(ndr, r->in.handle);
27158 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27159 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27160 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27161 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27162 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.change_low));
27163 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_options));
27164 if (_ptr_options) {
27165 NDR_PULL_ALLOC(ndr, r->in.options);
27167 r->in.options = NULL;
27169 if (r->in.options) {
27170 _mem_save_options_0 = NDR_PULL_GET_MEM_CTX(ndr);
27171 NDR_PULL_SET_MEM_CTX(ndr, r->in.options, 0);
27172 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.options));
27173 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_options_0, 0);
27175 NDR_PULL_ALLOC(ndr, r->out.info);
27176 ZERO_STRUCTP(r->out.info);
27178 if (flags & NDR_OUT) {
27179 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27180 NDR_PULL_ALLOC(ndr, r->out.info);
27182 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
27183 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
27184 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
27186 NDR_PULL_ALLOC(ndr, *r->out.info);
27188 *r->out.info = NULL;
27190 if (*r->out.info) {
27191 _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
27192 NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
27193 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
27194 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
27196 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
27197 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27199 return NDR_ERR_SUCCESS;
27202 _PUBLIC_ void ndr_print_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterRefreshPrinterChangeNotify *r)
27204 ndr_print_struct(ndr, name, "spoolss_RouterRefreshPrinterChangeNotify");
27206 if (flags & NDR_SET_VALUES) {
27207 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27209 if (flags & NDR_IN) {
27210 ndr_print_struct(ndr, "in", "spoolss_RouterRefreshPrinterChangeNotify");
27212 ndr_print_ptr(ndr, "handle", r->in.handle);
27214 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27216 ndr_print_uint32(ndr, "change_low", r->in.change_low);
27217 ndr_print_ptr(ndr, "options", r->in.options);
27219 if (r->in.options) {
27220 ndr_print_spoolss_NotifyOption(ndr, "options", r->in.options);
27225 if (flags & NDR_OUT) {
27226 ndr_print_struct(ndr, "out", "spoolss_RouterRefreshPrinterChangeNotify");
27228 ndr_print_ptr(ndr, "info", r->out.info);
27230 ndr_print_ptr(ndr, "info", *r->out.info);
27232 if (*r->out.info) {
27233 ndr_print_spoolss_NotifyInfo(ndr, "info", *r->out.info);
27237 ndr_print_WERROR(ndr, "result", r->out.result);
27243 static enum ndr_err_code ndr_push_spoolss_44(struct ndr_push *ndr, int flags, const struct spoolss_44 *r)
27245 if (flags & NDR_IN) {
27247 if (flags & NDR_OUT) {
27248 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27250 return NDR_ERR_SUCCESS;
27253 static enum ndr_err_code ndr_pull_spoolss_44(struct ndr_pull *ndr, int flags, struct spoolss_44 *r)
27255 if (flags & NDR_IN) {
27257 if (flags & NDR_OUT) {
27258 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27260 return NDR_ERR_SUCCESS;
27263 _PUBLIC_ void ndr_print_spoolss_44(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_44 *r)
27265 ndr_print_struct(ndr, name, "spoolss_44");
27267 if (flags & NDR_SET_VALUES) {
27268 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27270 if (flags & NDR_IN) {
27271 ndr_print_struct(ndr, "in", "spoolss_44");
27275 if (flags & NDR_OUT) {
27276 ndr_print_struct(ndr, "out", "spoolss_44");
27278 ndr_print_WERROR(ndr, "result", r->out.result);
27284 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OpenPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_OpenPrinterEx *r)
27286 if (flags & NDR_IN) {
27287 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.printername));
27288 if (r->in.printername) {
27289 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
27290 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27291 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
27292 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
27294 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.datatype));
27295 if (r->in.datatype) {
27296 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
27297 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27298 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
27299 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.datatype, ndr_charset_length(r->in.datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
27301 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
27302 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr, NDR_SCALARS, r->in.access_mask));
27303 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
27304 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.userlevel, r->in.level));
27305 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.userlevel));
27307 if (flags & NDR_OUT) {
27308 if (r->out.handle == NULL) {
27309 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27311 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
27312 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27314 return NDR_ERR_SUCCESS;
27317 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OpenPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_OpenPrinterEx *r)
27319 uint32_t _ptr_printername;
27320 uint32_t _ptr_datatype;
27321 TALLOC_CTX *_mem_save_printername_0;
27322 TALLOC_CTX *_mem_save_datatype_0;
27323 TALLOC_CTX *_mem_save_handle_0;
27324 if (flags & NDR_IN) {
27325 ZERO_STRUCT(r->out);
27327 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
27328 if (_ptr_printername) {
27329 NDR_PULL_ALLOC(ndr, r->in.printername);
27331 r->in.printername = NULL;
27333 if (r->in.printername) {
27334 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
27335 NDR_PULL_SET_MEM_CTX(ndr, r->in.printername, 0);
27336 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
27337 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
27338 if (ndr_get_array_length(ndr, &r->in.printername) > ndr_get_array_size(ndr, &r->in.printername)) {
27339 return 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));
27341 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t)));
27342 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t), CH_UTF16));
27343 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
27345 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
27346 if (_ptr_datatype) {
27347 NDR_PULL_ALLOC(ndr, r->in.datatype);
27349 r->in.datatype = NULL;
27351 if (r->in.datatype) {
27352 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
27353 NDR_PULL_SET_MEM_CTX(ndr, r->in.datatype, 0);
27354 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.datatype));
27355 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.datatype));
27356 if (ndr_get_array_length(ndr, &r->in.datatype) > ndr_get_array_size(ndr, &r->in.datatype)) {
27357 return 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));
27359 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t)));
27360 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t), CH_UTF16));
27361 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
27363 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
27364 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr, NDR_SCALARS, &r->in.access_mask));
27365 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
27366 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.userlevel, r->in.level));
27367 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.userlevel));
27368 NDR_PULL_ALLOC(ndr, r->out.handle);
27369 ZERO_STRUCTP(r->out.handle);
27371 if (flags & NDR_OUT) {
27372 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27373 NDR_PULL_ALLOC(ndr, r->out.handle);
27375 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27376 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
27377 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
27378 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27379 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27381 return NDR_ERR_SUCCESS;
27384 _PUBLIC_ void ndr_print_spoolss_OpenPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_OpenPrinterEx *r)
27386 ndr_print_struct(ndr, name, "spoolss_OpenPrinterEx");
27388 if (flags & NDR_SET_VALUES) {
27389 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27391 if (flags & NDR_IN) {
27392 ndr_print_struct(ndr, "in", "spoolss_OpenPrinterEx");
27394 ndr_print_ptr(ndr, "printername", r->in.printername);
27396 if (r->in.printername) {
27397 ndr_print_string(ndr, "printername", r->in.printername);
27400 ndr_print_ptr(ndr, "datatype", r->in.datatype);
27402 if (r->in.datatype) {
27403 ndr_print_string(ndr, "datatype", r->in.datatype);
27406 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", &r->in.devmode_ctr);
27407 ndr_print_spoolss_AccessRights(ndr, "access_mask", r->in.access_mask);
27408 ndr_print_uint32(ndr, "level", r->in.level);
27409 ndr_print_set_switch_value(ndr, &r->in.userlevel, r->in.level);
27410 ndr_print_spoolss_UserLevel(ndr, "userlevel", &r->in.userlevel);
27413 if (flags & NDR_OUT) {
27414 ndr_print_struct(ndr, "out", "spoolss_OpenPrinterEx");
27416 ndr_print_ptr(ndr, "handle", r->out.handle);
27418 ndr_print_policy_handle(ndr, "handle", r->out.handle);
27420 ndr_print_WERROR(ndr, "result", r->out.result);
27426 static enum ndr_err_code ndr_push_spoolss_AddPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterEx *r)
27428 if (flags & NDR_IN) {
27429 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
27430 if (r->in.server) {
27431 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
27432 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27433 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
27434 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
27436 if (r->in.info_ctr == NULL) {
27437 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27439 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
27440 if (r->in.devmode_ctr == NULL) {
27441 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27443 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
27444 if (r->in.secdesc_ctr == NULL) {
27445 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27447 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
27448 if (r->in.userlevel_ctr == NULL) {
27449 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27451 NDR_CHECK(ndr_push_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.userlevel_ctr));
27453 if (flags & NDR_OUT) {
27454 if (r->out.handle == NULL) {
27455 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27457 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
27458 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27460 return NDR_ERR_SUCCESS;
27463 static enum ndr_err_code ndr_pull_spoolss_AddPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterEx *r)
27465 uint32_t _ptr_server;
27466 TALLOC_CTX *_mem_save_server_0;
27467 TALLOC_CTX *_mem_save_info_ctr_0;
27468 TALLOC_CTX *_mem_save_devmode_ctr_0;
27469 TALLOC_CTX *_mem_save_secdesc_ctr_0;
27470 TALLOC_CTX *_mem_save_userlevel_ctr_0;
27471 TALLOC_CTX *_mem_save_handle_0;
27472 if (flags & NDR_IN) {
27473 ZERO_STRUCT(r->out);
27475 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
27477 NDR_PULL_ALLOC(ndr, r->in.server);
27479 r->in.server = NULL;
27481 if (r->in.server) {
27482 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
27483 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
27484 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
27485 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
27486 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
27487 return 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));
27489 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
27490 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
27491 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
27493 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27494 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
27496 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
27497 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
27498 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
27499 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
27500 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27501 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
27503 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
27504 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
27505 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
27506 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
27507 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27508 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
27510 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
27511 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
27512 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
27513 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
27514 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27515 NDR_PULL_ALLOC(ndr, r->in.userlevel_ctr);
27517 _mem_save_userlevel_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
27518 NDR_PULL_SET_MEM_CTX(ndr, r->in.userlevel_ctr, LIBNDR_FLAG_REF_ALLOC);
27519 NDR_CHECK(ndr_pull_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.userlevel_ctr));
27520 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_userlevel_ctr_0, LIBNDR_FLAG_REF_ALLOC);
27521 NDR_PULL_ALLOC(ndr, r->out.handle);
27522 ZERO_STRUCTP(r->out.handle);
27524 if (flags & NDR_OUT) {
27525 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27526 NDR_PULL_ALLOC(ndr, r->out.handle);
27528 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27529 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
27530 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
27531 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27532 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27534 return NDR_ERR_SUCCESS;
27537 _PUBLIC_ void ndr_print_spoolss_AddPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterEx *r)
27539 ndr_print_struct(ndr, name, "spoolss_AddPrinterEx");
27541 if (flags & NDR_SET_VALUES) {
27542 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27544 if (flags & NDR_IN) {
27545 ndr_print_struct(ndr, "in", "spoolss_AddPrinterEx");
27547 ndr_print_ptr(ndr, "server", r->in.server);
27549 if (r->in.server) {
27550 ndr_print_string(ndr, "server", r->in.server);
27553 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
27555 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
27557 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
27559 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
27561 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
27563 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
27565 ndr_print_ptr(ndr, "userlevel_ctr", r->in.userlevel_ctr);
27567 ndr_print_spoolss_UserLevelCtr(ndr, "userlevel_ctr", r->in.userlevel_ctr);
27571 if (flags & NDR_OUT) {
27572 ndr_print_struct(ndr, "out", "spoolss_AddPrinterEx");
27574 ndr_print_ptr(ndr, "handle", r->out.handle);
27576 ndr_print_policy_handle(ndr, "handle", r->out.handle);
27578 ndr_print_WERROR(ndr, "result", r->out.result);
27584 static enum ndr_err_code ndr_push_spoolss_47(struct ndr_push *ndr, int flags, const struct spoolss_47 *r)
27586 if (flags & NDR_IN) {
27588 if (flags & NDR_OUT) {
27589 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27591 return NDR_ERR_SUCCESS;
27594 static enum ndr_err_code ndr_pull_spoolss_47(struct ndr_pull *ndr, int flags, struct spoolss_47 *r)
27596 if (flags & NDR_IN) {
27598 if (flags & NDR_OUT) {
27599 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27601 return NDR_ERR_SUCCESS;
27604 _PUBLIC_ void ndr_print_spoolss_47(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_47 *r)
27606 ndr_print_struct(ndr, name, "spoolss_47");
27608 if (flags & NDR_SET_VALUES) {
27609 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27611 if (flags & NDR_IN) {
27612 ndr_print_struct(ndr, "in", "spoolss_47");
27616 if (flags & NDR_OUT) {
27617 ndr_print_struct(ndr, "out", "spoolss_47");
27619 ndr_print_WERROR(ndr, "result", r->out.result);
27625 static enum ndr_err_code ndr_push_spoolss_EnumPrinterData(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterData *r)
27627 if (flags & NDR_IN) {
27628 if (r->in.handle == NULL) {
27629 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27631 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27632 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.enum_index));
27633 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.value_offered));
27634 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_offered));
27636 if (flags & NDR_OUT) {
27637 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.value_offered / 2));
27638 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->out.value_name, r->in.value_offered / 2, sizeof(uint16_t), CH_UTF16));
27639 if (r->out.value_needed == NULL) {
27640 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27642 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.value_needed));
27643 if (r->out.type == NULL) {
27644 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27646 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
27648 uint32_t _flags_save_uint8 = ndr->flags;
27649 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
27650 if (r->out.data == NULL) {
27651 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27653 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.data_offered));
27654 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->in.data_offered));
27655 ndr->flags = _flags_save_uint8;
27657 if (r->out.data_needed == NULL) {
27658 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27660 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.data_needed));
27661 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27663 return NDR_ERR_SUCCESS;
27666 static enum ndr_err_code ndr_pull_spoolss_EnumPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterData *r)
27668 TALLOC_CTX *_mem_save_handle_0;
27669 TALLOC_CTX *_mem_save_value_needed_0;
27670 TALLOC_CTX *_mem_save_type_0;
27671 TALLOC_CTX *_mem_save_data_needed_0;
27672 if (flags & NDR_IN) {
27673 ZERO_STRUCT(r->out);
27675 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27676 NDR_PULL_ALLOC(ndr, r->in.handle);
27678 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27679 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27680 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27681 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27682 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.enum_index));
27683 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.value_offered));
27684 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_offered));
27685 NDR_PULL_ALLOC(ndr, r->out.value_needed);
27686 ZERO_STRUCTP(r->out.value_needed);
27687 NDR_PULL_ALLOC(ndr, r->out.type);
27688 ZERO_STRUCTP(r->out.type);
27689 NDR_PULL_ALLOC_N(ndr, r->out.data, r->in.data_offered);
27690 memset(r->out.data, 0, (r->in.data_offered) * sizeof(*r->out.data));
27691 NDR_PULL_ALLOC(ndr, r->out.data_needed);
27692 ZERO_STRUCTP(r->out.data_needed);
27694 if (flags & NDR_OUT) {
27695 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.value_name));
27696 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));
27697 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27698 NDR_PULL_ALLOC(ndr, r->out.value_needed);
27700 _mem_save_value_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
27701 NDR_PULL_SET_MEM_CTX(ndr, r->out.value_needed, LIBNDR_FLAG_REF_ALLOC);
27702 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.value_needed));
27703 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_needed_0, LIBNDR_FLAG_REF_ALLOC);
27704 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27705 NDR_PULL_ALLOC(ndr, r->out.type);
27707 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
27708 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
27709 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
27710 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
27712 uint32_t _flags_save_uint8 = ndr->flags;
27713 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
27714 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
27715 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27716 NDR_PULL_ALLOC_N(ndr, r->out.data, ndr_get_array_size(ndr, &r->out.data));
27718 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, ndr_get_array_size(ndr, &r->out.data)));
27719 ndr->flags = _flags_save_uint8;
27721 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27722 NDR_PULL_ALLOC(ndr, r->out.data_needed);
27724 _mem_save_data_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
27725 NDR_PULL_SET_MEM_CTX(ndr, r->out.data_needed, LIBNDR_FLAG_REF_ALLOC);
27726 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.data_needed));
27727 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_needed_0, LIBNDR_FLAG_REF_ALLOC);
27728 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27729 if (r->out.value_name) {
27730 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.value_name, r->in.value_offered / 2));
27733 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, r->in.data_offered));
27736 return NDR_ERR_SUCCESS;
27739 _PUBLIC_ void ndr_print_spoolss_EnumPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterData *r)
27741 ndr_print_struct(ndr, name, "spoolss_EnumPrinterData");
27743 if (flags & NDR_SET_VALUES) {
27744 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27746 if (flags & NDR_IN) {
27747 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterData");
27749 ndr_print_ptr(ndr, "handle", r->in.handle);
27751 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27753 ndr_print_uint32(ndr, "enum_index", r->in.enum_index);
27754 ndr_print_uint32(ndr, "value_offered", r->in.value_offered);
27755 ndr_print_uint32(ndr, "data_offered", r->in.data_offered);
27758 if (flags & NDR_OUT) {
27759 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterData");
27761 ndr_print_string(ndr, "value_name", r->out.value_name);
27762 ndr_print_ptr(ndr, "value_needed", r->out.value_needed);
27764 ndr_print_uint32(ndr, "value_needed", *r->out.value_needed);
27766 ndr_print_ptr(ndr, "type", r->out.type);
27768 ndr_print_winreg_Type(ndr, "type", *r->out.type);
27770 ndr_print_ptr(ndr, "data", r->out.data);
27772 ndr_print_array_uint8(ndr, "data", r->out.data, r->in.data_offered);
27774 ndr_print_ptr(ndr, "data_needed", r->out.data_needed);
27776 ndr_print_uint32(ndr, "data_needed", *r->out.data_needed);
27778 ndr_print_WERROR(ndr, "result", r->out.result);
27784 static enum ndr_err_code ndr_push_spoolss_DeletePrinterData(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterData *r)
27786 if (flags & NDR_IN) {
27787 if (r->in.handle == NULL) {
27788 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27790 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27791 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
27792 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27793 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
27794 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));
27796 if (flags & NDR_OUT) {
27797 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27799 return NDR_ERR_SUCCESS;
27802 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterData(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterData *r)
27804 TALLOC_CTX *_mem_save_handle_0;
27805 if (flags & NDR_IN) {
27806 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27807 NDR_PULL_ALLOC(ndr, r->in.handle);
27809 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27810 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27811 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27812 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27813 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
27814 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
27815 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
27816 return 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));
27818 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
27819 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));
27821 if (flags & NDR_OUT) {
27822 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27824 return NDR_ERR_SUCCESS;
27827 _PUBLIC_ void ndr_print_spoolss_DeletePrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterData *r)
27829 ndr_print_struct(ndr, name, "spoolss_DeletePrinterData");
27831 if (flags & NDR_SET_VALUES) {
27832 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27834 if (flags & NDR_IN) {
27835 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterData");
27837 ndr_print_ptr(ndr, "handle", r->in.handle);
27839 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27841 ndr_print_string(ndr, "value_name", r->in.value_name);
27844 if (flags & NDR_OUT) {
27845 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterData");
27847 ndr_print_WERROR(ndr, "result", r->out.result);
27853 static enum ndr_err_code ndr_push_spoolss_4a(struct ndr_push *ndr, int flags, const struct spoolss_4a *r)
27855 if (flags & NDR_IN) {
27857 if (flags & NDR_OUT) {
27858 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27860 return NDR_ERR_SUCCESS;
27863 static enum ndr_err_code ndr_pull_spoolss_4a(struct ndr_pull *ndr, int flags, struct spoolss_4a *r)
27865 if (flags & NDR_IN) {
27867 if (flags & NDR_OUT) {
27868 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27870 return NDR_ERR_SUCCESS;
27873 _PUBLIC_ void ndr_print_spoolss_4a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4a *r)
27875 ndr_print_struct(ndr, name, "spoolss_4a");
27877 if (flags & NDR_SET_VALUES) {
27878 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27880 if (flags & NDR_IN) {
27881 ndr_print_struct(ndr, "in", "spoolss_4a");
27885 if (flags & NDR_OUT) {
27886 ndr_print_struct(ndr, "out", "spoolss_4a");
27888 ndr_print_WERROR(ndr, "result", r->out.result);
27894 static enum ndr_err_code ndr_push_spoolss_4b(struct ndr_push *ndr, int flags, const struct spoolss_4b *r)
27896 if (flags & NDR_IN) {
27898 if (flags & NDR_OUT) {
27899 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27901 return NDR_ERR_SUCCESS;
27904 static enum ndr_err_code ndr_pull_spoolss_4b(struct ndr_pull *ndr, int flags, struct spoolss_4b *r)
27906 if (flags & NDR_IN) {
27908 if (flags & NDR_OUT) {
27909 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27911 return NDR_ERR_SUCCESS;
27914 _PUBLIC_ void ndr_print_spoolss_4b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4b *r)
27916 ndr_print_struct(ndr, name, "spoolss_4b");
27918 if (flags & NDR_SET_VALUES) {
27919 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27921 if (flags & NDR_IN) {
27922 ndr_print_struct(ndr, "in", "spoolss_4b");
27926 if (flags & NDR_OUT) {
27927 ndr_print_struct(ndr, "out", "spoolss_4b");
27929 ndr_print_WERROR(ndr, "result", r->out.result);
27935 static enum ndr_err_code ndr_push_spoolss_4c(struct ndr_push *ndr, int flags, const struct spoolss_4c *r)
27937 if (flags & NDR_IN) {
27939 if (flags & NDR_OUT) {
27940 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27942 return NDR_ERR_SUCCESS;
27945 static enum ndr_err_code ndr_pull_spoolss_4c(struct ndr_pull *ndr, int flags, struct spoolss_4c *r)
27947 if (flags & NDR_IN) {
27949 if (flags & NDR_OUT) {
27950 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27952 return NDR_ERR_SUCCESS;
27955 _PUBLIC_ void ndr_print_spoolss_4c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4c *r)
27957 ndr_print_struct(ndr, name, "spoolss_4c");
27959 if (flags & NDR_SET_VALUES) {
27960 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27962 if (flags & NDR_IN) {
27963 ndr_print_struct(ndr, "in", "spoolss_4c");
27967 if (flags & NDR_OUT) {
27968 ndr_print_struct(ndr, "out", "spoolss_4c");
27970 ndr_print_WERROR(ndr, "result", r->out.result);
27976 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_SetPrinterDataEx(struct ndr_push *ndr, int flags, const struct _spoolss_SetPrinterDataEx *r)
27978 if (flags & NDR_IN) {
27979 if (r->in.handle == NULL) {
27980 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27982 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27983 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27984 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27985 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27986 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));
27987 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
27988 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27989 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
27990 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));
27991 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
27992 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
27993 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in._offered));
27995 if (flags & NDR_OUT) {
27996 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27998 return NDR_ERR_SUCCESS;
28001 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_SetPrinterDataEx(struct ndr_push *ndr, int flags, const struct __spoolss_SetPrinterDataEx *r)
28003 if (flags & NDR_IN) {
28004 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
28006 if (flags & NDR_OUT) {
28007 if (r->out.data == NULL) {
28008 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28010 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.data, r->in.type));
28011 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
28013 return NDR_ERR_SUCCESS;
28016 static enum ndr_err_code ndr_pull_spoolss_SetPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinterDataEx *r)
28018 TALLOC_CTX *_mem_save_handle_0;
28019 if (flags & NDR_IN) {
28020 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28021 NDR_PULL_ALLOC(ndr, r->in.handle);
28023 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28024 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
28025 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28026 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28027 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
28028 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
28029 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
28030 return 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));
28032 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
28033 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));
28034 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
28035 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
28036 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
28037 return 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));
28039 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
28040 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));
28041 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
28043 struct ndr_pull *_ndr_data;
28044 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_data, 4, -1));
28045 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data, &r->in.data, r->in.type));
28046 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
28047 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_data, 4, -1));
28049 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._offered));
28051 if (flags & NDR_OUT) {
28052 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28054 return NDR_ERR_SUCCESS;
28057 _PUBLIC_ void ndr_print_spoolss_SetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinterDataEx *r)
28059 ndr_print_struct(ndr, name, "spoolss_SetPrinterDataEx");
28061 if (flags & NDR_SET_VALUES) {
28062 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28064 if (flags & NDR_IN) {
28065 ndr_print_struct(ndr, "in", "spoolss_SetPrinterDataEx");
28067 ndr_print_ptr(ndr, "handle", r->in.handle);
28069 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28071 ndr_print_string(ndr, "key_name", r->in.key_name);
28072 ndr_print_string(ndr, "value_name", r->in.value_name);
28073 ndr_print_winreg_Type(ndr, "type", r->in.type);
28074 ndr_print_set_switch_value(ndr, &r->in.data, r->in.type);
28075 ndr_print_spoolss_PrinterData(ndr, "data", &r->in.data);
28076 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);
28079 if (flags & NDR_OUT) {
28080 ndr_print_struct(ndr, "out", "spoolss_SetPrinterDataEx");
28082 ndr_print_WERROR(ndr, "result", r->out.result);
28088 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_GetPrinterDataEx(struct ndr_push *ndr, int flags, const struct _spoolss_GetPrinterDataEx *r)
28090 if (flags & NDR_IN) {
28091 if (r->in.handle == NULL) {
28092 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28094 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28095 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28096 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28097 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28098 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));
28099 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
28100 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28101 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
28102 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));
28103 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
28105 if (flags & NDR_OUT) {
28106 if (r->out.type == NULL) {
28107 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28109 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
28110 if (r->out.data == NULL) {
28111 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28113 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.data));
28114 if (r->out.needed == NULL) {
28115 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28117 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
28118 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28120 return NDR_ERR_SUCCESS;
28123 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_GetPrinterDataEx(struct ndr_pull *ndr, int flags, struct _spoolss_GetPrinterDataEx *r)
28125 TALLOC_CTX *_mem_save_handle_0;
28126 TALLOC_CTX *_mem_save_type_0;
28127 TALLOC_CTX *_mem_save_data_0;
28128 TALLOC_CTX *_mem_save_needed_0;
28129 if (flags & NDR_IN) {
28130 ZERO_STRUCT(r->out);
28132 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28133 NDR_PULL_ALLOC(ndr, r->in.handle);
28135 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28136 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
28137 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28138 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28139 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
28140 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
28141 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
28142 return 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));
28144 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
28145 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));
28146 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
28147 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
28148 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
28149 return 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));
28151 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
28152 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));
28153 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
28154 NDR_PULL_ALLOC(ndr, r->out.type);
28155 ZERO_STRUCTP(r->out.type);
28156 NDR_PULL_ALLOC(ndr, r->out.data);
28157 ZERO_STRUCTP(r->out.data);
28158 NDR_PULL_ALLOC(ndr, r->out.needed);
28159 ZERO_STRUCTP(r->out.needed);
28161 if (flags & NDR_OUT) {
28162 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28163 NDR_PULL_ALLOC(ndr, r->out.type);
28165 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
28166 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
28167 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
28168 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
28169 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28170 NDR_PULL_ALLOC(ndr, r->out.data);
28172 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
28173 NDR_PULL_SET_MEM_CTX(ndr, r->out.data, LIBNDR_FLAG_REF_ALLOC);
28174 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.data));
28175 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
28176 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28177 NDR_PULL_ALLOC(ndr, r->out.needed);
28179 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
28180 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
28181 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
28182 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
28183 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28185 return NDR_ERR_SUCCESS;
28188 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_GetPrinterDataEx(struct ndr_push *ndr, int flags, const struct __spoolss_GetPrinterDataEx *r)
28190 if (flags & NDR_IN) {
28191 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
28193 if (flags & NDR_OUT) {
28194 if (r->out.data == NULL) {
28195 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28197 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.data, r->in.type));
28198 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
28200 return NDR_ERR_SUCCESS;
28203 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_GetPrinterDataEx(struct ndr_pull *ndr, int flags, struct __spoolss_GetPrinterDataEx *r)
28205 TALLOC_CTX *_mem_save_data_0;
28206 if (flags & NDR_IN) {
28207 ZERO_STRUCT(r->out);
28209 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
28210 NDR_PULL_ALLOC(ndr, r->out.data);
28211 ZERO_STRUCTP(r->out.data);
28213 if (flags & NDR_OUT) {
28214 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28215 NDR_PULL_ALLOC(ndr, r->out.data);
28217 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
28218 NDR_PULL_SET_MEM_CTX(ndr, r->out.data, LIBNDR_FLAG_REF_ALLOC);
28219 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.data, r->in.type));
28220 NDR_CHECK(ndr_pull_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
28221 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
28223 return NDR_ERR_SUCCESS;
28226 _PUBLIC_ void ndr_print_spoolss_GetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDataEx *r)
28228 ndr_print_struct(ndr, name, "spoolss_GetPrinterDataEx");
28230 if (flags & NDR_SET_VALUES) {
28231 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28233 if (flags & NDR_IN) {
28234 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDataEx");
28236 ndr_print_ptr(ndr, "handle", r->in.handle);
28238 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28240 ndr_print_string(ndr, "key_name", r->in.key_name);
28241 ndr_print_string(ndr, "value_name", r->in.value_name);
28242 ndr_print_uint32(ndr, "offered", r->in.offered);
28245 if (flags & NDR_OUT) {
28246 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDataEx");
28248 ndr_print_ptr(ndr, "type", r->out.type);
28250 ndr_print_winreg_Type(ndr, "type", *r->out.type);
28252 ndr_print_ptr(ndr, "data", r->out.data);
28254 ndr_print_set_switch_value(ndr, r->out.data, *r->out.type);
28255 ndr_print_spoolss_PrinterData(ndr, "data", r->out.data);
28257 ndr_print_ptr(ndr, "needed", r->out.needed);
28259 ndr_print_uint32(ndr, "needed", *r->out.needed);
28261 ndr_print_WERROR(ndr, "result", r->out.result);
28267 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinterDataEx(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinterDataEx *r)
28269 if (flags & NDR_IN) {
28270 if (r->in.handle == NULL) {
28271 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28273 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28274 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28275 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28276 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28277 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));
28278 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
28280 if (flags & NDR_OUT) {
28281 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
28282 if (r->out.needed == NULL) {
28283 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28285 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
28286 if (r->out.count == NULL) {
28287 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28289 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
28290 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28292 return NDR_ERR_SUCCESS;
28295 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinterDataEx(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinterDataEx *r)
28297 TALLOC_CTX *_mem_save_handle_0;
28298 TALLOC_CTX *_mem_save_needed_0;
28299 TALLOC_CTX *_mem_save_count_0;
28300 if (flags & NDR_IN) {
28301 ZERO_STRUCT(r->out);
28303 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28304 NDR_PULL_ALLOC(ndr, r->in.handle);
28306 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28307 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
28308 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28309 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28310 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
28311 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
28312 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
28313 return 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));
28315 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
28316 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));
28317 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
28318 NDR_PULL_ALLOC(ndr, r->out.needed);
28319 ZERO_STRUCTP(r->out.needed);
28320 NDR_PULL_ALLOC(ndr, r->out.count);
28321 ZERO_STRUCTP(r->out.count);
28323 if (flags & NDR_OUT) {
28324 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->out.info));
28325 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28326 NDR_PULL_ALLOC(ndr, r->out.needed);
28328 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
28329 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
28330 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
28331 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
28332 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28333 NDR_PULL_ALLOC(ndr, r->out.count);
28335 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
28336 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
28337 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
28338 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
28339 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28341 return NDR_ERR_SUCCESS;
28344 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinterDataEx(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinterDataEx *r)
28346 uint32_t cntr_info_0;
28347 if (flags & NDR_IN) {
28348 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
28350 if (flags & NDR_OUT) {
28351 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
28352 NDR_CHECK(ndr_push_spoolss_PrinterEnumValues(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
28354 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
28355 NDR_CHECK(ndr_push_spoolss_PrinterEnumValues(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
28358 return NDR_ERR_SUCCESS;
28361 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinterDataEx(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinterDataEx *r)
28363 uint32_t cntr_info_0;
28364 TALLOC_CTX *_mem_save_info_0;
28365 if (flags & NDR_IN) {
28366 ZERO_STRUCT(r->out);
28368 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
28370 if (flags & NDR_OUT) {
28371 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
28372 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
28373 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
28374 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
28375 NDR_CHECK(ndr_pull_spoolss_PrinterEnumValues(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
28377 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
28378 NDR_CHECK(ndr_pull_spoolss_PrinterEnumValues(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
28380 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
28382 return NDR_ERR_SUCCESS;
28385 _PUBLIC_ void ndr_print_spoolss_EnumPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterDataEx *r)
28387 uint32_t cntr_info_2;
28388 ndr_print_struct(ndr, name, "spoolss_EnumPrinterDataEx");
28390 if (flags & NDR_SET_VALUES) {
28391 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28393 if (flags & NDR_IN) {
28394 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterDataEx");
28396 ndr_print_ptr(ndr, "handle", r->in.handle);
28398 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28400 ndr_print_string(ndr, "key_name", r->in.key_name);
28401 ndr_print_uint32(ndr, "offered", r->in.offered);
28404 if (flags & NDR_OUT) {
28405 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterDataEx");
28407 ndr_print_ptr(ndr, "count", r->out.count);
28409 ndr_print_uint32(ndr, "count", *r->out.count);
28411 ndr_print_ptr(ndr, "info", r->out.info);
28413 ndr_print_ptr(ndr, "info", *r->out.info);
28415 if (*r->out.info) {
28416 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
28418 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
28420 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
28421 ndr_print_spoolss_PrinterEnumValues(ndr, "info", &(*r->out.info)[cntr_info_2]);
28429 ndr_print_ptr(ndr, "needed", r->out.needed);
28431 ndr_print_uint32(ndr, "needed", *r->out.needed);
28433 ndr_print_WERROR(ndr, "result", r->out.result);
28439 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterKey(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterKey *r)
28441 if (flags & NDR_IN) {
28442 if (r->in.handle == NULL) {
28443 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28445 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28446 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28447 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28448 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28449 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));
28450 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
28452 if (flags & NDR_OUT) {
28453 if (r->out._ndr_size == NULL) {
28454 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28456 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out._ndr_size));
28457 if (r->out.key_buffer == NULL) {
28458 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28461 struct ndr_push *_ndr_key_buffer;
28462 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_key_buffer, 0, *r->out._ndr_size * 2));
28463 NDR_CHECK(ndr_push_set_switch_value(_ndr_key_buffer, r->out.key_buffer, *r->out._ndr_size));
28464 NDR_CHECK(ndr_push_spoolss_KeyNames(_ndr_key_buffer, NDR_SCALARS|NDR_BUFFERS, r->out.key_buffer));
28465 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_key_buffer, 0, *r->out._ndr_size * 2));
28467 if (r->out.needed == NULL) {
28468 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28470 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
28471 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28473 return NDR_ERR_SUCCESS;
28476 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterKey(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterKey *r)
28478 TALLOC_CTX *_mem_save_handle_0;
28479 TALLOC_CTX *_mem_save__ndr_size_0;
28480 TALLOC_CTX *_mem_save_key_buffer_0;
28481 TALLOC_CTX *_mem_save_needed_0;
28482 if (flags & NDR_IN) {
28483 ZERO_STRUCT(r->out);
28485 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28486 NDR_PULL_ALLOC(ndr, r->in.handle);
28488 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28489 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
28490 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28491 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28492 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
28493 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
28494 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
28495 return 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));
28497 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
28498 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));
28499 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
28500 NDR_PULL_ALLOC(ndr, r->out._ndr_size);
28501 ZERO_STRUCTP(r->out._ndr_size);
28502 NDR_PULL_ALLOC(ndr, r->out.key_buffer);
28503 ZERO_STRUCTP(r->out.key_buffer);
28504 NDR_PULL_ALLOC(ndr, r->out.needed);
28505 ZERO_STRUCTP(r->out.needed);
28507 if (flags & NDR_OUT) {
28508 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28509 NDR_PULL_ALLOC(ndr, r->out._ndr_size);
28511 _mem_save__ndr_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
28512 NDR_PULL_SET_MEM_CTX(ndr, r->out._ndr_size, LIBNDR_FLAG_REF_ALLOC);
28513 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out._ndr_size));
28514 NDR_PULL_SET_MEM_CTX(ndr, _mem_save__ndr_size_0, LIBNDR_FLAG_REF_ALLOC);
28515 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28516 NDR_PULL_ALLOC(ndr, r->out.key_buffer);
28518 _mem_save_key_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
28519 NDR_PULL_SET_MEM_CTX(ndr, r->out.key_buffer, LIBNDR_FLAG_REF_ALLOC);
28521 struct ndr_pull *_ndr_key_buffer;
28522 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_key_buffer, 0, *r->out._ndr_size * 2));
28523 NDR_CHECK(ndr_pull_set_switch_value(_ndr_key_buffer, r->out.key_buffer, *r->out._ndr_size));
28524 NDR_CHECK(ndr_pull_spoolss_KeyNames(_ndr_key_buffer, NDR_SCALARS|NDR_BUFFERS, r->out.key_buffer));
28525 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_key_buffer, 0, *r->out._ndr_size * 2));
28527 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_key_buffer_0, LIBNDR_FLAG_REF_ALLOC);
28528 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28529 NDR_PULL_ALLOC(ndr, r->out.needed);
28531 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
28532 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
28533 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
28534 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
28535 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28537 return NDR_ERR_SUCCESS;
28540 _PUBLIC_ void ndr_print_spoolss_EnumPrinterKey(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterKey *r)
28542 ndr_print_struct(ndr, name, "spoolss_EnumPrinterKey");
28544 if (flags & NDR_SET_VALUES) {
28545 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28547 if (flags & NDR_IN) {
28548 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterKey");
28550 ndr_print_ptr(ndr, "handle", r->in.handle);
28552 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28554 ndr_print_string(ndr, "key_name", r->in.key_name);
28555 ndr_print_uint32(ndr, "offered", r->in.offered);
28558 if (flags & NDR_OUT) {
28559 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterKey");
28561 ndr_print_ptr(ndr, "_ndr_size", r->out._ndr_size);
28563 ndr_print_uint32(ndr, "_ndr_size", *r->out._ndr_size);
28565 ndr_print_ptr(ndr, "key_buffer", r->out.key_buffer);
28567 ndr_print_set_switch_value(ndr, r->out.key_buffer, *r->out._ndr_size);
28568 ndr_print_spoolss_KeyNames(ndr, "key_buffer", r->out.key_buffer);
28570 ndr_print_ptr(ndr, "needed", r->out.needed);
28572 ndr_print_uint32(ndr, "needed", *r->out.needed);
28574 ndr_print_WERROR(ndr, "result", r->out.result);
28580 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDataEx *r)
28582 if (flags & NDR_IN) {
28583 if (r->in.handle == NULL) {
28584 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28586 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28587 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28588 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28589 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28590 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));
28591 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
28592 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28593 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
28594 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));
28596 if (flags & NDR_OUT) {
28597 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28599 return NDR_ERR_SUCCESS;
28602 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDataEx *r)
28604 TALLOC_CTX *_mem_save_handle_0;
28605 if (flags & NDR_IN) {
28606 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28607 NDR_PULL_ALLOC(ndr, r->in.handle);
28609 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28610 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
28611 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28612 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28613 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
28614 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
28615 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
28616 return 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));
28618 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
28619 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));
28620 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
28621 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
28622 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
28623 return 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));
28625 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
28626 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));
28628 if (flags & NDR_OUT) {
28629 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28631 return NDR_ERR_SUCCESS;
28634 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDataEx *r)
28636 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDataEx");
28638 if (flags & NDR_SET_VALUES) {
28639 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28641 if (flags & NDR_IN) {
28642 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDataEx");
28644 ndr_print_ptr(ndr, "handle", r->in.handle);
28646 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28648 ndr_print_string(ndr, "key_name", r->in.key_name);
28649 ndr_print_string(ndr, "value_name", r->in.value_name);
28652 if (flags & NDR_OUT) {
28653 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDataEx");
28655 ndr_print_WERROR(ndr, "result", r->out.result);
28661 static enum ndr_err_code ndr_push_spoolss_DeletePrinterKey(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterKey *r)
28663 if (flags & NDR_IN) {
28664 if (r->in.handle == NULL) {
28665 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28667 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28668 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28669 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28670 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28671 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));
28673 if (flags & NDR_OUT) {
28674 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28676 return NDR_ERR_SUCCESS;
28679 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterKey(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterKey *r)
28681 TALLOC_CTX *_mem_save_handle_0;
28682 if (flags & NDR_IN) {
28683 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28684 NDR_PULL_ALLOC(ndr, r->in.handle);
28686 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28687 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
28688 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28689 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28690 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
28691 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
28692 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
28693 return 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));
28695 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
28696 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));
28698 if (flags & NDR_OUT) {
28699 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28701 return NDR_ERR_SUCCESS;
28704 _PUBLIC_ void ndr_print_spoolss_DeletePrinterKey(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterKey *r)
28706 ndr_print_struct(ndr, name, "spoolss_DeletePrinterKey");
28708 if (flags & NDR_SET_VALUES) {
28709 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28711 if (flags & NDR_IN) {
28712 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterKey");
28714 ndr_print_ptr(ndr, "handle", r->in.handle);
28716 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28718 ndr_print_string(ndr, "key_name", r->in.key_name);
28721 if (flags & NDR_OUT) {
28722 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterKey");
28724 ndr_print_WERROR(ndr, "result", r->out.result);
28730 static enum ndr_err_code ndr_push_spoolss_53(struct ndr_push *ndr, int flags, const struct spoolss_53 *r)
28732 if (flags & NDR_IN) {
28734 if (flags & NDR_OUT) {
28735 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28737 return NDR_ERR_SUCCESS;
28740 static enum ndr_err_code ndr_pull_spoolss_53(struct ndr_pull *ndr, int flags, struct spoolss_53 *r)
28742 if (flags & NDR_IN) {
28744 if (flags & NDR_OUT) {
28745 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28747 return NDR_ERR_SUCCESS;
28750 _PUBLIC_ void ndr_print_spoolss_53(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_53 *r)
28752 ndr_print_struct(ndr, name, "spoolss_53");
28754 if (flags & NDR_SET_VALUES) {
28755 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28757 if (flags & NDR_IN) {
28758 ndr_print_struct(ndr, "in", "spoolss_53");
28762 if (flags & NDR_OUT) {
28763 ndr_print_struct(ndr, "out", "spoolss_53");
28765 ndr_print_WERROR(ndr, "result", r->out.result);
28771 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDriverEx(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDriverEx *r)
28773 if (flags & NDR_IN) {
28774 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
28775 if (r->in.server) {
28776 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
28777 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28778 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
28779 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
28781 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
28782 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28783 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
28784 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
28785 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
28786 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28787 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
28788 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver, ndr_charset_length(r->in.driver, CH_UTF16), sizeof(uint16_t), CH_UTF16));
28789 NDR_CHECK(ndr_push_spoolss_DeleteDriverFlags(ndr, NDR_SCALARS, r->in.delete_flags));
28790 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.version));
28792 if (flags & NDR_OUT) {
28793 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28795 return NDR_ERR_SUCCESS;
28798 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDriverEx(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDriverEx *r)
28800 uint32_t _ptr_server;
28801 TALLOC_CTX *_mem_save_server_0;
28802 if (flags & NDR_IN) {
28803 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
28805 NDR_PULL_ALLOC(ndr, r->in.server);
28807 r->in.server = NULL;
28809 if (r->in.server) {
28810 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
28811 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
28812 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
28813 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
28814 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
28815 return 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));
28817 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
28818 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
28819 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
28821 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
28822 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
28823 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
28824 return 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));
28826 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
28827 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
28828 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver));
28829 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.driver));
28830 if (ndr_get_array_length(ndr, &r->in.driver) > ndr_get_array_size(ndr, &r->in.driver)) {
28831 return 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));
28833 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t)));
28834 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t), CH_UTF16));
28835 NDR_CHECK(ndr_pull_spoolss_DeleteDriverFlags(ndr, NDR_SCALARS, &r->in.delete_flags));
28836 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.version));
28838 if (flags & NDR_OUT) {
28839 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28841 return NDR_ERR_SUCCESS;
28844 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDriverEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDriverEx *r)
28846 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDriverEx");
28848 if (flags & NDR_SET_VALUES) {
28849 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28851 if (flags & NDR_IN) {
28852 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDriverEx");
28854 ndr_print_ptr(ndr, "server", r->in.server);
28856 if (r->in.server) {
28857 ndr_print_string(ndr, "server", r->in.server);
28860 ndr_print_string(ndr, "architecture", r->in.architecture);
28861 ndr_print_string(ndr, "driver", r->in.driver);
28862 ndr_print_spoolss_DeleteDriverFlags(ndr, "delete_flags", r->in.delete_flags);
28863 ndr_print_uint32(ndr, "version", r->in.version);
28866 if (flags & NDR_OUT) {
28867 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDriverEx");
28869 ndr_print_WERROR(ndr, "result", r->out.result);
28875 static enum ndr_err_code ndr_push_spoolss_55(struct ndr_push *ndr, int flags, const struct spoolss_55 *r)
28877 if (flags & NDR_IN) {
28879 if (flags & NDR_OUT) {
28880 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28882 return NDR_ERR_SUCCESS;
28885 static enum ndr_err_code ndr_pull_spoolss_55(struct ndr_pull *ndr, int flags, struct spoolss_55 *r)
28887 if (flags & NDR_IN) {
28889 if (flags & NDR_OUT) {
28890 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28892 return NDR_ERR_SUCCESS;
28895 _PUBLIC_ void ndr_print_spoolss_55(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_55 *r)
28897 ndr_print_struct(ndr, name, "spoolss_55");
28899 if (flags & NDR_SET_VALUES) {
28900 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28902 if (flags & NDR_IN) {
28903 ndr_print_struct(ndr, "in", "spoolss_55");
28907 if (flags & NDR_OUT) {
28908 ndr_print_struct(ndr, "out", "spoolss_55");
28910 ndr_print_WERROR(ndr, "result", r->out.result);
28916 static enum ndr_err_code ndr_push_spoolss_56(struct ndr_push *ndr, int flags, const struct spoolss_56 *r)
28918 if (flags & NDR_IN) {
28920 if (flags & NDR_OUT) {
28921 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28923 return NDR_ERR_SUCCESS;
28926 static enum ndr_err_code ndr_pull_spoolss_56(struct ndr_pull *ndr, int flags, struct spoolss_56 *r)
28928 if (flags & NDR_IN) {
28930 if (flags & NDR_OUT) {
28931 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28933 return NDR_ERR_SUCCESS;
28936 _PUBLIC_ void ndr_print_spoolss_56(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_56 *r)
28938 ndr_print_struct(ndr, name, "spoolss_56");
28940 if (flags & NDR_SET_VALUES) {
28941 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28943 if (flags & NDR_IN) {
28944 ndr_print_struct(ndr, "in", "spoolss_56");
28948 if (flags & NDR_OUT) {
28949 ndr_print_struct(ndr, "out", "spoolss_56");
28951 ndr_print_WERROR(ndr, "result", r->out.result);
28957 static enum ndr_err_code ndr_push_spoolss_57(struct ndr_push *ndr, int flags, const struct spoolss_57 *r)
28959 if (flags & NDR_IN) {
28961 if (flags & NDR_OUT) {
28962 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28964 return NDR_ERR_SUCCESS;
28967 static enum ndr_err_code ndr_pull_spoolss_57(struct ndr_pull *ndr, int flags, struct spoolss_57 *r)
28969 if (flags & NDR_IN) {
28971 if (flags & NDR_OUT) {
28972 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28974 return NDR_ERR_SUCCESS;
28977 _PUBLIC_ void ndr_print_spoolss_57(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_57 *r)
28979 ndr_print_struct(ndr, name, "spoolss_57");
28981 if (flags & NDR_SET_VALUES) {
28982 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28984 if (flags & NDR_IN) {
28985 ndr_print_struct(ndr, "in", "spoolss_57");
28989 if (flags & NDR_OUT) {
28990 ndr_print_struct(ndr, "out", "spoolss_57");
28992 ndr_print_WERROR(ndr, "result", r->out.result);
28998 static enum ndr_err_code ndr_push_spoolss_XcvData(struct ndr_push *ndr, int flags, const struct spoolss_XcvData *r)
29000 if (flags & NDR_IN) {
29001 if (r->in.handle == NULL) {
29002 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29004 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
29005 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.function_name, CH_UTF16)));
29006 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29007 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.function_name, CH_UTF16)));
29008 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));
29009 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.in_data));
29010 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.in_data.length));
29011 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.out_data_size));
29012 if (r->in.status_code == NULL) {
29013 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29015 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.status_code));
29017 if (flags & NDR_OUT) {
29018 if (r->out.out_data == NULL) {
29019 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29021 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.out_data_size));
29022 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.out_data, r->in.out_data_size));
29023 if (r->out.needed == NULL) {
29024 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29026 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
29027 if (r->out.status_code == NULL) {
29028 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29030 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.status_code));
29031 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29033 return NDR_ERR_SUCCESS;
29036 static enum ndr_err_code ndr_pull_spoolss_XcvData(struct ndr_pull *ndr, int flags, struct spoolss_XcvData *r)
29038 TALLOC_CTX *_mem_save_handle_0;
29039 TALLOC_CTX *_mem_save_needed_0;
29040 TALLOC_CTX *_mem_save_status_code_0;
29041 if (flags & NDR_IN) {
29042 ZERO_STRUCT(r->out);
29044 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29045 NDR_PULL_ALLOC(ndr, r->in.handle);
29047 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
29048 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
29049 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
29050 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
29051 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.function_name));
29052 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.function_name));
29053 if (ndr_get_array_length(ndr, &r->in.function_name) > ndr_get_array_size(ndr, &r->in.function_name)) {
29054 return 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));
29056 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.function_name), sizeof(uint16_t)));
29057 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));
29058 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->in.in_data));
29059 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._in_data_length));
29060 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.out_data_size));
29061 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29062 NDR_PULL_ALLOC(ndr, r->in.status_code);
29064 _mem_save_status_code_0 = NDR_PULL_GET_MEM_CTX(ndr);
29065 NDR_PULL_SET_MEM_CTX(ndr, r->in.status_code, LIBNDR_FLAG_REF_ALLOC);
29066 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.status_code));
29067 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_code_0, LIBNDR_FLAG_REF_ALLOC);
29068 NDR_PULL_ALLOC_N(ndr, r->out.out_data, r->in.out_data_size);
29069 memset(r->out.out_data, 0, (r->in.out_data_size) * sizeof(*r->out.out_data));
29070 NDR_PULL_ALLOC(ndr, r->out.needed);
29071 ZERO_STRUCTP(r->out.needed);
29072 NDR_PULL_ALLOC(ndr, r->out.status_code);
29073 *r->out.status_code = *r->in.status_code;
29075 if (flags & NDR_OUT) {
29076 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.out_data));
29077 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29078 NDR_PULL_ALLOC_N(ndr, r->out.out_data, ndr_get_array_size(ndr, &r->out.out_data));
29080 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.out_data, ndr_get_array_size(ndr, &r->out.out_data)));
29081 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29082 NDR_PULL_ALLOC(ndr, r->out.needed);
29084 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
29085 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
29086 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
29087 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
29088 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29089 NDR_PULL_ALLOC(ndr, r->out.status_code);
29091 _mem_save_status_code_0 = NDR_PULL_GET_MEM_CTX(ndr);
29092 NDR_PULL_SET_MEM_CTX(ndr, r->out.status_code, LIBNDR_FLAG_REF_ALLOC);
29093 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.status_code));
29094 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_code_0, LIBNDR_FLAG_REF_ALLOC);
29095 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29096 if (r->out.out_data) {
29097 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.out_data, r->in.out_data_size));
29100 return NDR_ERR_SUCCESS;
29103 _PUBLIC_ void ndr_print_spoolss_XcvData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_XcvData *r)
29105 ndr_print_struct(ndr, name, "spoolss_XcvData");
29107 if (flags & NDR_SET_VALUES) {
29108 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29110 if (flags & NDR_IN) {
29111 ndr_print_struct(ndr, "in", "spoolss_XcvData");
29113 ndr_print_ptr(ndr, "handle", r->in.handle);
29115 ndr_print_policy_handle(ndr, "handle", r->in.handle);
29117 ndr_print_string(ndr, "function_name", r->in.function_name);
29118 ndr_print_DATA_BLOB(ndr, "in_data", r->in.in_data);
29119 ndr_print_uint32(ndr, "_in_data_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->in.in_data.length:r->in._in_data_length);
29120 ndr_print_uint32(ndr, "out_data_size", r->in.out_data_size);
29121 ndr_print_ptr(ndr, "status_code", r->in.status_code);
29123 ndr_print_uint32(ndr, "status_code", *r->in.status_code);
29127 if (flags & NDR_OUT) {
29128 ndr_print_struct(ndr, "out", "spoolss_XcvData");
29130 ndr_print_ptr(ndr, "out_data", r->out.out_data);
29132 ndr_print_array_uint8(ndr, "out_data", r->out.out_data, r->in.out_data_size);
29134 ndr_print_ptr(ndr, "needed", r->out.needed);
29136 ndr_print_uint32(ndr, "needed", *r->out.needed);
29138 ndr_print_ptr(ndr, "status_code", r->out.status_code);
29140 ndr_print_uint32(ndr, "status_code", *r->out.status_code);
29142 ndr_print_WERROR(ndr, "result", r->out.result);
29148 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_AddPrinterDriverEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterDriverEx *r)
29150 if (flags & NDR_IN) {
29151 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
29152 if (r->in.servername) {
29153 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
29154 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29155 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
29156 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
29158 if (r->in.info_ctr == NULL) {
29159 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29161 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
29162 NDR_CHECK(ndr_push_spoolss_AddPrinterDriverExFlags(ndr, NDR_SCALARS, r->in.flags));
29164 if (flags & NDR_OUT) {
29165 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29167 return NDR_ERR_SUCCESS;
29170 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_AddPrinterDriverEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterDriverEx *r)
29172 uint32_t _ptr_servername;
29173 TALLOC_CTX *_mem_save_servername_0;
29174 TALLOC_CTX *_mem_save_info_ctr_0;
29175 if (flags & NDR_IN) {
29176 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
29177 if (_ptr_servername) {
29178 NDR_PULL_ALLOC(ndr, r->in.servername);
29180 r->in.servername = NULL;
29182 if (r->in.servername) {
29183 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
29184 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
29185 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
29186 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
29187 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
29188 return 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));
29190 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
29191 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
29192 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
29194 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29195 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
29197 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
29198 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
29199 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
29200 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
29201 NDR_CHECK(ndr_pull_spoolss_AddPrinterDriverExFlags(ndr, NDR_SCALARS, &r->in.flags));
29203 if (flags & NDR_OUT) {
29204 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29206 return NDR_ERR_SUCCESS;
29209 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriverEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterDriverEx *r)
29211 ndr_print_struct(ndr, name, "spoolss_AddPrinterDriverEx");
29213 if (flags & NDR_SET_VALUES) {
29214 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29216 if (flags & NDR_IN) {
29217 ndr_print_struct(ndr, "in", "spoolss_AddPrinterDriverEx");
29219 ndr_print_ptr(ndr, "servername", r->in.servername);
29221 if (r->in.servername) {
29222 ndr_print_string(ndr, "servername", r->in.servername);
29225 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
29227 ndr_print_spoolss_AddDriverInfoCtr(ndr, "info_ctr", r->in.info_ctr);
29229 ndr_print_spoolss_AddPrinterDriverExFlags(ndr, "flags", r->in.flags);
29232 if (flags & NDR_OUT) {
29233 ndr_print_struct(ndr, "out", "spoolss_AddPrinterDriverEx");
29235 ndr_print_WERROR(ndr, "result", r->out.result);
29241 static enum ndr_err_code ndr_push_spoolss_5a(struct ndr_push *ndr, int flags, const struct spoolss_5a *r)
29243 if (flags & NDR_IN) {
29245 if (flags & NDR_OUT) {
29246 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29248 return NDR_ERR_SUCCESS;
29251 static enum ndr_err_code ndr_pull_spoolss_5a(struct ndr_pull *ndr, int flags, struct spoolss_5a *r)
29253 if (flags & NDR_IN) {
29255 if (flags & NDR_OUT) {
29256 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29258 return NDR_ERR_SUCCESS;
29261 _PUBLIC_ void ndr_print_spoolss_5a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5a *r)
29263 ndr_print_struct(ndr, name, "spoolss_5a");
29265 if (flags & NDR_SET_VALUES) {
29266 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29268 if (flags & NDR_IN) {
29269 ndr_print_struct(ndr, "in", "spoolss_5a");
29273 if (flags & NDR_OUT) {
29274 ndr_print_struct(ndr, "out", "spoolss_5a");
29276 ndr_print_WERROR(ndr, "result", r->out.result);
29282 static enum ndr_err_code ndr_push_spoolss_5b(struct ndr_push *ndr, int flags, const struct spoolss_5b *r)
29284 if (flags & NDR_IN) {
29286 if (flags & NDR_OUT) {
29287 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29289 return NDR_ERR_SUCCESS;
29292 static enum ndr_err_code ndr_pull_spoolss_5b(struct ndr_pull *ndr, int flags, struct spoolss_5b *r)
29294 if (flags & NDR_IN) {
29296 if (flags & NDR_OUT) {
29297 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29299 return NDR_ERR_SUCCESS;
29302 _PUBLIC_ void ndr_print_spoolss_5b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5b *r)
29304 ndr_print_struct(ndr, name, "spoolss_5b");
29306 if (flags & NDR_SET_VALUES) {
29307 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29309 if (flags & NDR_IN) {
29310 ndr_print_struct(ndr, "in", "spoolss_5b");
29314 if (flags & NDR_OUT) {
29315 ndr_print_struct(ndr, "out", "spoolss_5b");
29317 ndr_print_WERROR(ndr, "result", r->out.result);
29323 static enum ndr_err_code ndr_push_spoolss_5c(struct ndr_push *ndr, int flags, const struct spoolss_5c *r)
29325 if (flags & NDR_IN) {
29327 if (flags & NDR_OUT) {
29328 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29330 return NDR_ERR_SUCCESS;
29333 static enum ndr_err_code ndr_pull_spoolss_5c(struct ndr_pull *ndr, int flags, struct spoolss_5c *r)
29335 if (flags & NDR_IN) {
29337 if (flags & NDR_OUT) {
29338 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29340 return NDR_ERR_SUCCESS;
29343 _PUBLIC_ void ndr_print_spoolss_5c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5c *r)
29345 ndr_print_struct(ndr, name, "spoolss_5c");
29347 if (flags & NDR_SET_VALUES) {
29348 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29350 if (flags & NDR_IN) {
29351 ndr_print_struct(ndr, "in", "spoolss_5c");
29355 if (flags & NDR_OUT) {
29356 ndr_print_struct(ndr, "out", "spoolss_5c");
29358 ndr_print_WERROR(ndr, "result", r->out.result);
29364 static enum ndr_err_code ndr_push_spoolss_5d(struct ndr_push *ndr, int flags, const struct spoolss_5d *r)
29366 if (flags & NDR_IN) {
29368 if (flags & NDR_OUT) {
29369 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29371 return NDR_ERR_SUCCESS;
29374 static enum ndr_err_code ndr_pull_spoolss_5d(struct ndr_pull *ndr, int flags, struct spoolss_5d *r)
29376 if (flags & NDR_IN) {
29378 if (flags & NDR_OUT) {
29379 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29381 return NDR_ERR_SUCCESS;
29384 _PUBLIC_ void ndr_print_spoolss_5d(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5d *r)
29386 ndr_print_struct(ndr, name, "spoolss_5d");
29388 if (flags & NDR_SET_VALUES) {
29389 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29391 if (flags & NDR_IN) {
29392 ndr_print_struct(ndr, "in", "spoolss_5d");
29396 if (flags & NDR_OUT) {
29397 ndr_print_struct(ndr, "out", "spoolss_5d");
29399 ndr_print_WERROR(ndr, "result", r->out.result);
29405 static enum ndr_err_code ndr_push_spoolss_5e(struct ndr_push *ndr, int flags, const struct spoolss_5e *r)
29407 if (flags & NDR_IN) {
29409 if (flags & NDR_OUT) {
29410 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29412 return NDR_ERR_SUCCESS;
29415 static enum ndr_err_code ndr_pull_spoolss_5e(struct ndr_pull *ndr, int flags, struct spoolss_5e *r)
29417 if (flags & NDR_IN) {
29419 if (flags & NDR_OUT) {
29420 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29422 return NDR_ERR_SUCCESS;
29425 _PUBLIC_ void ndr_print_spoolss_5e(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5e *r)
29427 ndr_print_struct(ndr, name, "spoolss_5e");
29429 if (flags & NDR_SET_VALUES) {
29430 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29432 if (flags & NDR_IN) {
29433 ndr_print_struct(ndr, "in", "spoolss_5e");
29437 if (flags & NDR_OUT) {
29438 ndr_print_struct(ndr, "out", "spoolss_5e");
29440 ndr_print_WERROR(ndr, "result", r->out.result);
29446 static enum ndr_err_code ndr_push_spoolss_5f(struct ndr_push *ndr, int flags, const struct spoolss_5f *r)
29448 if (flags & NDR_IN) {
29450 if (flags & NDR_OUT) {
29451 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29453 return NDR_ERR_SUCCESS;
29456 static enum ndr_err_code ndr_pull_spoolss_5f(struct ndr_pull *ndr, int flags, struct spoolss_5f *r)
29458 if (flags & NDR_IN) {
29460 if (flags & NDR_OUT) {
29461 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29463 return NDR_ERR_SUCCESS;
29466 _PUBLIC_ void ndr_print_spoolss_5f(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5f *r)
29468 ndr_print_struct(ndr, name, "spoolss_5f");
29470 if (flags & NDR_SET_VALUES) {
29471 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29473 if (flags & NDR_IN) {
29474 ndr_print_struct(ndr, "in", "spoolss_5f");
29478 if (flags & NDR_OUT) {
29479 ndr_print_struct(ndr, "out", "spoolss_5f");
29481 ndr_print_WERROR(ndr, "result", r->out.result);
29487 static enum ndr_err_code ndr_push_spoolss_60(struct ndr_push *ndr, int flags, const struct spoolss_60 *r)
29489 if (flags & NDR_IN) {
29491 if (flags & NDR_OUT) {
29492 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29494 return NDR_ERR_SUCCESS;
29497 static enum ndr_err_code ndr_pull_spoolss_60(struct ndr_pull *ndr, int flags, struct spoolss_60 *r)
29499 if (flags & NDR_IN) {
29501 if (flags & NDR_OUT) {
29502 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29504 return NDR_ERR_SUCCESS;
29507 _PUBLIC_ void ndr_print_spoolss_60(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_60 *r)
29509 ndr_print_struct(ndr, name, "spoolss_60");
29511 if (flags & NDR_SET_VALUES) {
29512 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29514 if (flags & NDR_IN) {
29515 ndr_print_struct(ndr, "in", "spoolss_60");
29519 if (flags & NDR_OUT) {
29520 ndr_print_struct(ndr, "out", "spoolss_60");
29522 ndr_print_WERROR(ndr, "result", r->out.result);
29528 static enum ndr_err_code ndr_push_spoolss_61(struct ndr_push *ndr, int flags, const struct spoolss_61 *r)
29530 if (flags & NDR_IN) {
29532 if (flags & NDR_OUT) {
29533 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29535 return NDR_ERR_SUCCESS;
29538 static enum ndr_err_code ndr_pull_spoolss_61(struct ndr_pull *ndr, int flags, struct spoolss_61 *r)
29540 if (flags & NDR_IN) {
29542 if (flags & NDR_OUT) {
29543 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29545 return NDR_ERR_SUCCESS;
29548 _PUBLIC_ void ndr_print_spoolss_61(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_61 *r)
29550 ndr_print_struct(ndr, name, "spoolss_61");
29552 if (flags & NDR_SET_VALUES) {
29553 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29555 if (flags & NDR_IN) {
29556 ndr_print_struct(ndr, "in", "spoolss_61");
29560 if (flags & NDR_OUT) {
29561 ndr_print_struct(ndr, "out", "spoolss_61");
29563 ndr_print_WERROR(ndr, "result", r->out.result);
29569 static enum ndr_err_code ndr_push_spoolss_62(struct ndr_push *ndr, int flags, const struct spoolss_62 *r)
29571 if (flags & NDR_IN) {
29573 if (flags & NDR_OUT) {
29574 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29576 return NDR_ERR_SUCCESS;
29579 static enum ndr_err_code ndr_pull_spoolss_62(struct ndr_pull *ndr, int flags, struct spoolss_62 *r)
29581 if (flags & NDR_IN) {
29583 if (flags & NDR_OUT) {
29584 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29586 return NDR_ERR_SUCCESS;
29589 _PUBLIC_ void ndr_print_spoolss_62(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_62 *r)
29591 ndr_print_struct(ndr, name, "spoolss_62");
29593 if (flags & NDR_SET_VALUES) {
29594 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29596 if (flags & NDR_IN) {
29597 ndr_print_struct(ndr, "in", "spoolss_62");
29601 if (flags & NDR_OUT) {
29602 ndr_print_struct(ndr, "out", "spoolss_62");
29604 ndr_print_WERROR(ndr, "result", r->out.result);
29610 static enum ndr_err_code ndr_push_spoolss_63(struct ndr_push *ndr, int flags, const struct spoolss_63 *r)
29612 if (flags & NDR_IN) {
29614 if (flags & NDR_OUT) {
29615 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29617 return NDR_ERR_SUCCESS;
29620 static enum ndr_err_code ndr_pull_spoolss_63(struct ndr_pull *ndr, int flags, struct spoolss_63 *r)
29622 if (flags & NDR_IN) {
29624 if (flags & NDR_OUT) {
29625 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29627 return NDR_ERR_SUCCESS;
29630 _PUBLIC_ void ndr_print_spoolss_63(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_63 *r)
29632 ndr_print_struct(ndr, name, "spoolss_63");
29634 if (flags & NDR_SET_VALUES) {
29635 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29637 if (flags & NDR_IN) {
29638 ndr_print_struct(ndr, "in", "spoolss_63");
29642 if (flags & NDR_OUT) {
29643 ndr_print_struct(ndr, "out", "spoolss_63");
29645 ndr_print_WERROR(ndr, "result", r->out.result);
29651 static enum ndr_err_code ndr_push_spoolss_64(struct ndr_push *ndr, int flags, const struct spoolss_64 *r)
29653 if (flags & NDR_IN) {
29655 if (flags & NDR_OUT) {
29656 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29658 return NDR_ERR_SUCCESS;
29661 static enum ndr_err_code ndr_pull_spoolss_64(struct ndr_pull *ndr, int flags, struct spoolss_64 *r)
29663 if (flags & NDR_IN) {
29665 if (flags & NDR_OUT) {
29666 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29668 return NDR_ERR_SUCCESS;
29671 _PUBLIC_ void ndr_print_spoolss_64(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_64 *r)
29673 ndr_print_struct(ndr, name, "spoolss_64");
29675 if (flags & NDR_SET_VALUES) {
29676 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29678 if (flags & NDR_IN) {
29679 ndr_print_struct(ndr, "in", "spoolss_64");
29683 if (flags & NDR_OUT) {
29684 ndr_print_struct(ndr, "out", "spoolss_64");
29686 ndr_print_WERROR(ndr, "result", r->out.result);
29692 static enum ndr_err_code ndr_push_spoolss_65(struct ndr_push *ndr, int flags, const struct spoolss_65 *r)
29694 if (flags & NDR_IN) {
29696 if (flags & NDR_OUT) {
29697 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29699 return NDR_ERR_SUCCESS;
29702 static enum ndr_err_code ndr_pull_spoolss_65(struct ndr_pull *ndr, int flags, struct spoolss_65 *r)
29704 if (flags & NDR_IN) {
29706 if (flags & NDR_OUT) {
29707 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29709 return NDR_ERR_SUCCESS;
29712 _PUBLIC_ void ndr_print_spoolss_65(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_65 *r)
29714 ndr_print_struct(ndr, name, "spoolss_65");
29716 if (flags & NDR_SET_VALUES) {
29717 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29719 if (flags & NDR_IN) {
29720 ndr_print_struct(ndr, "in", "spoolss_65");
29724 if (flags & NDR_OUT) {
29725 ndr_print_struct(ndr, "out", "spoolss_65");
29727 ndr_print_WERROR(ndr, "result", r->out.result);
29733 static enum ndr_err_code ndr_push_spoolss_GetCorePrinterDrivers(struct ndr_push *ndr, int flags, const struct spoolss_GetCorePrinterDrivers *r)
29735 uint32_t cntr_core_printer_drivers_1;
29736 if (flags & NDR_IN) {
29737 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
29738 if (r->in.servername) {
29739 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
29740 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29741 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
29742 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
29744 if (r->in.architecture == NULL) {
29745 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29747 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
29748 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29749 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
29750 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
29751 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.core_driver_size));
29752 if (r->in.core_driver_dependencies == NULL) {
29753 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29755 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.core_driver_size));
29756 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.core_driver_dependencies, r->in.core_driver_size, sizeof(uint16_t), CH_UTF16));
29757 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.core_printer_driver_count));
29759 if (flags & NDR_OUT) {
29760 if (r->out.core_printer_drivers == NULL) {
29761 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29763 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.core_printer_driver_count));
29764 for (cntr_core_printer_drivers_1 = 0; cntr_core_printer_drivers_1 < r->in.core_printer_driver_count; cntr_core_printer_drivers_1++) {
29765 NDR_CHECK(ndr_push_spoolss_CorePrinterDriver(ndr, NDR_SCALARS, &r->out.core_printer_drivers[cntr_core_printer_drivers_1]));
29767 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29769 return NDR_ERR_SUCCESS;
29772 static enum ndr_err_code ndr_pull_spoolss_GetCorePrinterDrivers(struct ndr_pull *ndr, int flags, struct spoolss_GetCorePrinterDrivers *r)
29774 uint32_t _ptr_servername;
29775 uint32_t cntr_core_printer_drivers_1;
29776 TALLOC_CTX *_mem_save_servername_0;
29777 TALLOC_CTX *_mem_save_core_printer_drivers_1;
29778 if (flags & NDR_IN) {
29779 ZERO_STRUCT(r->out);
29781 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
29782 if (_ptr_servername) {
29783 NDR_PULL_ALLOC(ndr, r->in.servername);
29785 r->in.servername = NULL;
29787 if (r->in.servername) {
29788 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
29789 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
29790 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
29791 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
29792 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
29793 return 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));
29795 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
29796 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
29797 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
29799 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
29800 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
29801 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
29802 return 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));
29804 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
29805 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
29806 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.core_driver_size));
29807 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.core_driver_dependencies));
29808 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));
29809 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.core_printer_driver_count));
29810 NDR_PULL_ALLOC_N(ndr, r->out.core_printer_drivers, r->in.core_printer_driver_count);
29811 memset(r->out.core_printer_drivers, 0, (r->in.core_printer_driver_count) * sizeof(*r->out.core_printer_drivers));
29812 if (r->in.core_driver_dependencies) {
29813 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.core_driver_dependencies, r->in.core_driver_size));
29816 if (flags & NDR_OUT) {
29817 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.core_printer_drivers));
29818 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29819 NDR_PULL_ALLOC_N(ndr, r->out.core_printer_drivers, ndr_get_array_size(ndr, &r->out.core_printer_drivers));
29821 _mem_save_core_printer_drivers_1 = NDR_PULL_GET_MEM_CTX(ndr);
29822 NDR_PULL_SET_MEM_CTX(ndr, r->out.core_printer_drivers, 0);
29823 for (cntr_core_printer_drivers_1 = 0; cntr_core_printer_drivers_1 < r->in.core_printer_driver_count; cntr_core_printer_drivers_1++) {
29824 NDR_CHECK(ndr_pull_spoolss_CorePrinterDriver(ndr, NDR_SCALARS, &r->out.core_printer_drivers[cntr_core_printer_drivers_1]));
29826 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_printer_drivers_1, 0);
29827 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29828 if (r->out.core_printer_drivers) {
29829 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.core_printer_drivers, r->in.core_printer_driver_count));
29832 return NDR_ERR_SUCCESS;
29835 _PUBLIC_ void ndr_print_spoolss_GetCorePrinterDrivers(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetCorePrinterDrivers *r)
29837 uint32_t cntr_core_printer_drivers_1;
29838 ndr_print_struct(ndr, name, "spoolss_GetCorePrinterDrivers");
29840 if (flags & NDR_SET_VALUES) {
29841 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29843 if (flags & NDR_IN) {
29844 ndr_print_struct(ndr, "in", "spoolss_GetCorePrinterDrivers");
29846 ndr_print_ptr(ndr, "servername", r->in.servername);
29848 if (r->in.servername) {
29849 ndr_print_string(ndr, "servername", r->in.servername);
29852 ndr_print_ptr(ndr, "architecture", r->in.architecture);
29854 ndr_print_string(ndr, "architecture", r->in.architecture);
29856 ndr_print_uint32(ndr, "core_driver_size", r->in.core_driver_size);
29857 ndr_print_ptr(ndr, "core_driver_dependencies", r->in.core_driver_dependencies);
29859 ndr_print_string(ndr, "core_driver_dependencies", r->in.core_driver_dependencies);
29861 ndr_print_uint32(ndr, "core_printer_driver_count", r->in.core_printer_driver_count);
29864 if (flags & NDR_OUT) {
29865 ndr_print_struct(ndr, "out", "spoolss_GetCorePrinterDrivers");
29867 ndr_print_ptr(ndr, "core_printer_drivers", r->out.core_printer_drivers);
29869 ndr->print(ndr, "%s: ARRAY(%d)", "core_printer_drivers", (int)r->in.core_printer_driver_count);
29871 for (cntr_core_printer_drivers_1=0;cntr_core_printer_drivers_1<r->in.core_printer_driver_count;cntr_core_printer_drivers_1++) {
29873 if (asprintf(&idx_1, "[%d]", cntr_core_printer_drivers_1) != -1) {
29874 ndr_print_spoolss_CorePrinterDriver(ndr, "core_printer_drivers", &r->out.core_printer_drivers[cntr_core_printer_drivers_1]);
29880 ndr_print_WERROR(ndr, "result", r->out.result);
29886 static enum ndr_err_code ndr_push_spoolss_67(struct ndr_push *ndr, int flags, const struct spoolss_67 *r)
29888 if (flags & NDR_IN) {
29890 if (flags & NDR_OUT) {
29891 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29893 return NDR_ERR_SUCCESS;
29896 static enum ndr_err_code ndr_pull_spoolss_67(struct ndr_pull *ndr, int flags, struct spoolss_67 *r)
29898 if (flags & NDR_IN) {
29900 if (flags & NDR_OUT) {
29901 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29903 return NDR_ERR_SUCCESS;
29906 _PUBLIC_ void ndr_print_spoolss_67(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_67 *r)
29908 ndr_print_struct(ndr, name, "spoolss_67");
29910 if (flags & NDR_SET_VALUES) {
29911 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29913 if (flags & NDR_IN) {
29914 ndr_print_struct(ndr, "in", "spoolss_67");
29918 if (flags & NDR_OUT) {
29919 ndr_print_struct(ndr, "out", "spoolss_67");
29921 ndr_print_WERROR(ndr, "result", r->out.result);
29927 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriverPackagePath(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriverPackagePath *r)
29929 if (flags & NDR_IN) {
29930 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
29931 if (r->in.servername) {
29932 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
29933 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29934 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
29935 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
29937 if (r->in.architecture == NULL) {
29938 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29940 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
29941 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29942 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
29943 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
29944 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.language));
29945 if (r->in.language) {
29946 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.language, CH_UTF16)));
29947 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29948 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.language, CH_UTF16)));
29949 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.language, ndr_charset_length(r->in.language, CH_UTF16), sizeof(uint16_t), CH_UTF16));
29951 if (r->in.package_id == NULL) {
29952 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29954 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.package_id, CH_UTF16)));
29955 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29956 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.package_id, CH_UTF16)));
29957 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));
29958 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.driver_package_cab));
29959 if (r->in.driver_package_cab) {
29960 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.driver_package_cab_size));
29961 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver_package_cab, r->in.driver_package_cab_size, sizeof(uint16_t), CH_UTF16));
29963 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.driver_package_cab_size));
29965 if (flags & NDR_OUT) {
29966 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.driver_package_cab));
29967 if (r->out.driver_package_cab) {
29968 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.driver_package_cab_size));
29969 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->out.driver_package_cab, r->in.driver_package_cab_size, sizeof(uint16_t), CH_UTF16));
29971 if (r->out.required == NULL) {
29972 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29974 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.required));
29975 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29977 return NDR_ERR_SUCCESS;
29980 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriverPackagePath(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriverPackagePath *r)
29982 uint32_t _ptr_servername;
29983 uint32_t _ptr_language;
29984 uint32_t _ptr_driver_package_cab;
29985 TALLOC_CTX *_mem_save_servername_0;
29986 TALLOC_CTX *_mem_save_language_0;
29987 TALLOC_CTX *_mem_save_driver_package_cab_0;
29988 TALLOC_CTX *_mem_save_required_0;
29989 if (flags & NDR_IN) {
29990 ZERO_STRUCT(r->out);
29992 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
29993 if (_ptr_servername) {
29994 NDR_PULL_ALLOC(ndr, r->in.servername);
29996 r->in.servername = NULL;
29998 if (r->in.servername) {
29999 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
30000 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
30001 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
30002 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
30003 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
30004 return 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));
30006 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
30007 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
30008 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
30010 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
30011 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
30012 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
30013 return 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));
30015 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
30016 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
30017 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_language));
30018 if (_ptr_language) {
30019 NDR_PULL_ALLOC(ndr, r->in.language);
30021 r->in.language = NULL;
30023 if (r->in.language) {
30024 _mem_save_language_0 = NDR_PULL_GET_MEM_CTX(ndr);
30025 NDR_PULL_SET_MEM_CTX(ndr, r->in.language, 0);
30026 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.language));
30027 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.language));
30028 if (ndr_get_array_length(ndr, &r->in.language) > ndr_get_array_size(ndr, &r->in.language)) {
30029 return 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));
30031 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.language), sizeof(uint16_t)));
30032 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.language, ndr_get_array_length(ndr, &r->in.language), sizeof(uint16_t), CH_UTF16));
30033 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_language_0, 0);
30035 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.package_id));
30036 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.package_id));
30037 if (ndr_get_array_length(ndr, &r->in.package_id) > ndr_get_array_size(ndr, &r->in.package_id)) {
30038 return 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));
30040 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.package_id), sizeof(uint16_t)));
30041 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));
30042 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_package_cab));
30043 if (_ptr_driver_package_cab) {
30044 NDR_PULL_ALLOC(ndr, r->in.driver_package_cab);
30046 r->in.driver_package_cab = NULL;
30048 if (r->in.driver_package_cab) {
30049 _mem_save_driver_package_cab_0 = NDR_PULL_GET_MEM_CTX(ndr);
30050 NDR_PULL_SET_MEM_CTX(ndr, r->in.driver_package_cab, 0);
30051 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver_package_cab));
30052 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));
30053 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_package_cab_0, 0);
30055 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.driver_package_cab_size));
30056 NDR_PULL_ALLOC(ndr, r->out.required);
30057 ZERO_STRUCTP(r->out.required);
30058 if (r->in.driver_package_cab) {
30059 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.driver_package_cab, r->in.driver_package_cab_size));
30062 if (flags & NDR_OUT) {
30063 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_package_cab));
30064 if (_ptr_driver_package_cab) {
30065 NDR_PULL_ALLOC(ndr, r->out.driver_package_cab);
30067 r->out.driver_package_cab = NULL;
30069 if (r->out.driver_package_cab) {
30070 _mem_save_driver_package_cab_0 = NDR_PULL_GET_MEM_CTX(ndr);
30071 NDR_PULL_SET_MEM_CTX(ndr, r->out.driver_package_cab, 0);
30072 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.driver_package_cab));
30073 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));
30074 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_package_cab_0, 0);
30076 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
30077 NDR_PULL_ALLOC(ndr, r->out.required);
30079 _mem_save_required_0 = NDR_PULL_GET_MEM_CTX(ndr);
30080 NDR_PULL_SET_MEM_CTX(ndr, r->out.required, LIBNDR_FLAG_REF_ALLOC);
30081 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.required));
30082 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_required_0, LIBNDR_FLAG_REF_ALLOC);
30083 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30084 if (r->out.driver_package_cab) {
30085 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.driver_package_cab, r->in.driver_package_cab_size));
30088 return NDR_ERR_SUCCESS;
30091 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriverPackagePath(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriverPackagePath *r)
30093 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriverPackagePath");
30095 if (flags & NDR_SET_VALUES) {
30096 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30098 if (flags & NDR_IN) {
30099 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriverPackagePath");
30101 ndr_print_ptr(ndr, "servername", r->in.servername);
30103 if (r->in.servername) {
30104 ndr_print_string(ndr, "servername", r->in.servername);
30107 ndr_print_ptr(ndr, "architecture", r->in.architecture);
30109 ndr_print_string(ndr, "architecture", r->in.architecture);
30111 ndr_print_ptr(ndr, "language", r->in.language);
30113 if (r->in.language) {
30114 ndr_print_string(ndr, "language", r->in.language);
30117 ndr_print_ptr(ndr, "package_id", r->in.package_id);
30119 ndr_print_string(ndr, "package_id", r->in.package_id);
30121 ndr_print_ptr(ndr, "driver_package_cab", r->in.driver_package_cab);
30123 if (r->in.driver_package_cab) {
30124 ndr_print_string(ndr, "driver_package_cab", r->in.driver_package_cab);
30127 ndr_print_uint32(ndr, "driver_package_cab_size", r->in.driver_package_cab_size);
30130 if (flags & NDR_OUT) {
30131 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriverPackagePath");
30133 ndr_print_ptr(ndr, "driver_package_cab", r->out.driver_package_cab);
30135 if (r->out.driver_package_cab) {
30136 ndr_print_string(ndr, "driver_package_cab", r->out.driver_package_cab);
30139 ndr_print_ptr(ndr, "required", r->out.required);
30141 ndr_print_uint32(ndr, "required", *r->out.required);
30143 ndr_print_WERROR(ndr, "result", r->out.result);
30149 static enum ndr_err_code ndr_push_spoolss_69(struct ndr_push *ndr, int flags, const struct spoolss_69 *r)
30151 if (flags & NDR_IN) {
30153 if (flags & NDR_OUT) {
30154 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30156 return NDR_ERR_SUCCESS;
30159 static enum ndr_err_code ndr_pull_spoolss_69(struct ndr_pull *ndr, int flags, struct spoolss_69 *r)
30161 if (flags & NDR_IN) {
30163 if (flags & NDR_OUT) {
30164 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30166 return NDR_ERR_SUCCESS;
30169 _PUBLIC_ void ndr_print_spoolss_69(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_69 *r)
30171 ndr_print_struct(ndr, name, "spoolss_69");
30173 if (flags & NDR_SET_VALUES) {
30174 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30176 if (flags & NDR_IN) {
30177 ndr_print_struct(ndr, "in", "spoolss_69");
30181 if (flags & NDR_OUT) {
30182 ndr_print_struct(ndr, "out", "spoolss_69");
30184 ndr_print_WERROR(ndr, "result", r->out.result);
30190 static enum ndr_err_code ndr_push_spoolss_6a(struct ndr_push *ndr, int flags, const struct spoolss_6a *r)
30192 if (flags & NDR_IN) {
30194 if (flags & NDR_OUT) {
30195 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30197 return NDR_ERR_SUCCESS;
30200 static enum ndr_err_code ndr_pull_spoolss_6a(struct ndr_pull *ndr, int flags, struct spoolss_6a *r)
30202 if (flags & NDR_IN) {
30204 if (flags & NDR_OUT) {
30205 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30207 return NDR_ERR_SUCCESS;
30210 _PUBLIC_ void ndr_print_spoolss_6a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_6a *r)
30212 ndr_print_struct(ndr, name, "spoolss_6a");
30214 if (flags & NDR_SET_VALUES) {
30215 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30217 if (flags & NDR_IN) {
30218 ndr_print_struct(ndr, "in", "spoolss_6a");
30222 if (flags & NDR_OUT) {
30223 ndr_print_struct(ndr, "out", "spoolss_6a");
30225 ndr_print_WERROR(ndr, "result", r->out.result);
30231 static enum ndr_err_code ndr_push_spoolss_6b(struct ndr_push *ndr, int flags, const struct spoolss_6b *r)
30233 if (flags & NDR_IN) {
30235 if (flags & NDR_OUT) {
30236 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30238 return NDR_ERR_SUCCESS;
30241 static enum ndr_err_code ndr_pull_spoolss_6b(struct ndr_pull *ndr, int flags, struct spoolss_6b *r)
30243 if (flags & NDR_IN) {
30245 if (flags & NDR_OUT) {
30246 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30248 return NDR_ERR_SUCCESS;
30251 _PUBLIC_ void ndr_print_spoolss_6b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_6b *r)
30253 ndr_print_struct(ndr, name, "spoolss_6b");
30255 if (flags & NDR_SET_VALUES) {
30256 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30258 if (flags & NDR_IN) {
30259 ndr_print_struct(ndr, "in", "spoolss_6b");
30263 if (flags & NDR_OUT) {
30264 ndr_print_struct(ndr, "out", "spoolss_6b");
30266 ndr_print_WERROR(ndr, "result", r->out.result);
30272 static enum ndr_err_code ndr_push_spoolss_6c(struct ndr_push *ndr, int flags, const struct spoolss_6c *r)
30274 if (flags & NDR_IN) {
30276 if (flags & NDR_OUT) {
30277 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30279 return NDR_ERR_SUCCESS;
30282 static enum ndr_err_code ndr_pull_spoolss_6c(struct ndr_pull *ndr, int flags, struct spoolss_6c *r)
30284 if (flags & NDR_IN) {
30286 if (flags & NDR_OUT) {
30287 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30289 return NDR_ERR_SUCCESS;
30292 _PUBLIC_ void ndr_print_spoolss_6c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_6c *r)
30294 ndr_print_struct(ndr, name, "spoolss_6c");
30296 if (flags & NDR_SET_VALUES) {
30297 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30299 if (flags & NDR_IN) {
30300 ndr_print_struct(ndr, "in", "spoolss_6c");
30304 if (flags & NDR_OUT) {
30305 ndr_print_struct(ndr, "out", "spoolss_6c");
30307 ndr_print_WERROR(ndr, "result", r->out.result);
30313 static enum ndr_err_code ndr_push_spoolss_6d(struct ndr_push *ndr, int flags, const struct spoolss_6d *r)
30315 if (flags & NDR_IN) {
30317 if (flags & NDR_OUT) {
30318 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30320 return NDR_ERR_SUCCESS;
30323 static enum ndr_err_code ndr_pull_spoolss_6d(struct ndr_pull *ndr, int flags, struct spoolss_6d *r)
30325 if (flags & NDR_IN) {
30327 if (flags & NDR_OUT) {
30328 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30330 return NDR_ERR_SUCCESS;
30333 _PUBLIC_ void ndr_print_spoolss_6d(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_6d *r)
30335 ndr_print_struct(ndr, name, "spoolss_6d");
30337 if (flags & NDR_SET_VALUES) {
30338 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30340 if (flags & NDR_IN) {
30341 ndr_print_struct(ndr, "in", "spoolss_6d");
30345 if (flags & NDR_OUT) {
30346 ndr_print_struct(ndr, "out", "spoolss_6d");
30348 ndr_print_WERROR(ndr, "result", r->out.result);
30354 static const struct ndr_interface_call spoolss_calls[] = {
30356 "spoolss_EnumPrinters",
30357 sizeof(struct spoolss_EnumPrinters),
30358 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinters,
30359 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinters,
30360 (ndr_print_function_t) ndr_print_spoolss_EnumPrinters,
30364 "spoolss_OpenPrinter",
30365 sizeof(struct spoolss_OpenPrinter),
30366 (ndr_push_flags_fn_t) ndr_push_spoolss_OpenPrinter,
30367 (ndr_pull_flags_fn_t) ndr_pull_spoolss_OpenPrinter,
30368 (ndr_print_function_t) ndr_print_spoolss_OpenPrinter,
30373 sizeof(struct spoolss_SetJob),
30374 (ndr_push_flags_fn_t) ndr_push_spoolss_SetJob,
30375 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetJob,
30376 (ndr_print_function_t) ndr_print_spoolss_SetJob,
30381 sizeof(struct spoolss_GetJob),
30382 (ndr_push_flags_fn_t) ndr_push_spoolss_GetJob,
30383 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetJob,
30384 (ndr_print_function_t) ndr_print_spoolss_GetJob,
30388 "spoolss_EnumJobs",
30389 sizeof(struct spoolss_EnumJobs),
30390 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumJobs,
30391 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumJobs,
30392 (ndr_print_function_t) ndr_print_spoolss_EnumJobs,
30396 "spoolss_AddPrinter",
30397 sizeof(struct spoolss_AddPrinter),
30398 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinter,
30399 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinter,
30400 (ndr_print_function_t) ndr_print_spoolss_AddPrinter,
30404 "spoolss_DeletePrinter",
30405 sizeof(struct spoolss_DeletePrinter),
30406 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinter,
30407 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinter,
30408 (ndr_print_function_t) ndr_print_spoolss_DeletePrinter,
30412 "spoolss_SetPrinter",
30413 sizeof(struct spoolss_SetPrinter),
30414 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinter,
30415 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinter,
30416 (ndr_print_function_t) ndr_print_spoolss_SetPrinter,
30420 "spoolss_GetPrinter",
30421 sizeof(struct spoolss_GetPrinter),
30422 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinter,
30423 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinter,
30424 (ndr_print_function_t) ndr_print_spoolss_GetPrinter,
30428 "spoolss_AddPrinterDriver",
30429 sizeof(struct spoolss_AddPrinterDriver),
30430 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterDriver,
30431 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterDriver,
30432 (ndr_print_function_t) ndr_print_spoolss_AddPrinterDriver,
30436 "spoolss_EnumPrinterDrivers",
30437 sizeof(struct spoolss_EnumPrinterDrivers),
30438 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterDrivers,
30439 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterDrivers,
30440 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterDrivers,
30444 "spoolss_GetPrinterDriver",
30445 sizeof(struct spoolss_GetPrinterDriver),
30446 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriver,
30447 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriver,
30448 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriver,
30452 "spoolss_GetPrinterDriverDirectory",
30453 sizeof(struct spoolss_GetPrinterDriverDirectory),
30454 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriverDirectory,
30455 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriverDirectory,
30456 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriverDirectory,
30460 "spoolss_DeletePrinterDriver",
30461 sizeof(struct spoolss_DeletePrinterDriver),
30462 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDriver,
30463 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDriver,
30464 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDriver,
30468 "spoolss_AddPrintProcessor",
30469 sizeof(struct spoolss_AddPrintProcessor),
30470 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrintProcessor,
30471 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrintProcessor,
30472 (ndr_print_function_t) ndr_print_spoolss_AddPrintProcessor,
30476 "spoolss_EnumPrintProcessors",
30477 sizeof(struct spoolss_EnumPrintProcessors),
30478 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrintProcessors,
30479 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrintProcessors,
30480 (ndr_print_function_t) ndr_print_spoolss_EnumPrintProcessors,
30484 "spoolss_GetPrintProcessorDirectory",
30485 sizeof(struct spoolss_GetPrintProcessorDirectory),
30486 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrintProcessorDirectory,
30487 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrintProcessorDirectory,
30488 (ndr_print_function_t) ndr_print_spoolss_GetPrintProcessorDirectory,
30492 "spoolss_StartDocPrinter",
30493 sizeof(struct spoolss_StartDocPrinter),
30494 (ndr_push_flags_fn_t) ndr_push_spoolss_StartDocPrinter,
30495 (ndr_pull_flags_fn_t) ndr_pull_spoolss_StartDocPrinter,
30496 (ndr_print_function_t) ndr_print_spoolss_StartDocPrinter,
30500 "spoolss_StartPagePrinter",
30501 sizeof(struct spoolss_StartPagePrinter),
30502 (ndr_push_flags_fn_t) ndr_push_spoolss_StartPagePrinter,
30503 (ndr_pull_flags_fn_t) ndr_pull_spoolss_StartPagePrinter,
30504 (ndr_print_function_t) ndr_print_spoolss_StartPagePrinter,
30508 "spoolss_WritePrinter",
30509 sizeof(struct spoolss_WritePrinter),
30510 (ndr_push_flags_fn_t) ndr_push_spoolss_WritePrinter,
30511 (ndr_pull_flags_fn_t) ndr_pull_spoolss_WritePrinter,
30512 (ndr_print_function_t) ndr_print_spoolss_WritePrinter,
30516 "spoolss_EndPagePrinter",
30517 sizeof(struct spoolss_EndPagePrinter),
30518 (ndr_push_flags_fn_t) ndr_push_spoolss_EndPagePrinter,
30519 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EndPagePrinter,
30520 (ndr_print_function_t) ndr_print_spoolss_EndPagePrinter,
30524 "spoolss_AbortPrinter",
30525 sizeof(struct spoolss_AbortPrinter),
30526 (ndr_push_flags_fn_t) ndr_push_spoolss_AbortPrinter,
30527 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AbortPrinter,
30528 (ndr_print_function_t) ndr_print_spoolss_AbortPrinter,
30532 "spoolss_ReadPrinter",
30533 sizeof(struct spoolss_ReadPrinter),
30534 (ndr_push_flags_fn_t) ndr_push_spoolss_ReadPrinter,
30535 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReadPrinter,
30536 (ndr_print_function_t) ndr_print_spoolss_ReadPrinter,
30540 "spoolss_EndDocPrinter",
30541 sizeof(struct spoolss_EndDocPrinter),
30542 (ndr_push_flags_fn_t) ndr_push_spoolss_EndDocPrinter,
30543 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EndDocPrinter,
30544 (ndr_print_function_t) ndr_print_spoolss_EndDocPrinter,
30549 sizeof(struct spoolss_AddJob),
30550 (ndr_push_flags_fn_t) ndr_push_spoolss_AddJob,
30551 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddJob,
30552 (ndr_print_function_t) ndr_print_spoolss_AddJob,
30556 "spoolss_ScheduleJob",
30557 sizeof(struct spoolss_ScheduleJob),
30558 (ndr_push_flags_fn_t) ndr_push_spoolss_ScheduleJob,
30559 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ScheduleJob,
30560 (ndr_print_function_t) ndr_print_spoolss_ScheduleJob,
30564 "spoolss_GetPrinterData",
30565 sizeof(struct spoolss_GetPrinterData),
30566 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterData,
30567 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterData,
30568 (ndr_print_function_t) ndr_print_spoolss_GetPrinterData,
30572 "spoolss_SetPrinterData",
30573 sizeof(struct spoolss_SetPrinterData),
30574 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinterData,
30575 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinterData,
30576 (ndr_print_function_t) ndr_print_spoolss_SetPrinterData,
30580 "spoolss_WaitForPrinterChange",
30581 sizeof(struct spoolss_WaitForPrinterChange),
30582 (ndr_push_flags_fn_t) ndr_push_spoolss_WaitForPrinterChange,
30583 (ndr_pull_flags_fn_t) ndr_pull_spoolss_WaitForPrinterChange,
30584 (ndr_print_function_t) ndr_print_spoolss_WaitForPrinterChange,
30588 "spoolss_ClosePrinter",
30589 sizeof(struct spoolss_ClosePrinter),
30590 (ndr_push_flags_fn_t) ndr_push_spoolss_ClosePrinter,
30591 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ClosePrinter,
30592 (ndr_print_function_t) ndr_print_spoolss_ClosePrinter,
30597 sizeof(struct spoolss_AddForm),
30598 (ndr_push_flags_fn_t) ndr_push_spoolss_AddForm,
30599 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddForm,
30600 (ndr_print_function_t) ndr_print_spoolss_AddForm,
30604 "spoolss_DeleteForm",
30605 sizeof(struct spoolss_DeleteForm),
30606 (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteForm,
30607 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteForm,
30608 (ndr_print_function_t) ndr_print_spoolss_DeleteForm,
30613 sizeof(struct spoolss_GetForm),
30614 (ndr_push_flags_fn_t) ndr_push_spoolss_GetForm,
30615 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetForm,
30616 (ndr_print_function_t) ndr_print_spoolss_GetForm,
30621 sizeof(struct spoolss_SetForm),
30622 (ndr_push_flags_fn_t) ndr_push_spoolss_SetForm,
30623 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetForm,
30624 (ndr_print_function_t) ndr_print_spoolss_SetForm,
30628 "spoolss_EnumForms",
30629 sizeof(struct spoolss_EnumForms),
30630 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumForms,
30631 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumForms,
30632 (ndr_print_function_t) ndr_print_spoolss_EnumForms,
30636 "spoolss_EnumPorts",
30637 sizeof(struct spoolss_EnumPorts),
30638 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPorts,
30639 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPorts,
30640 (ndr_print_function_t) ndr_print_spoolss_EnumPorts,
30644 "spoolss_EnumMonitors",
30645 sizeof(struct spoolss_EnumMonitors),
30646 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumMonitors,
30647 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumMonitors,
30648 (ndr_print_function_t) ndr_print_spoolss_EnumMonitors,
30653 sizeof(struct spoolss_AddPort),
30654 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPort,
30655 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPort,
30656 (ndr_print_function_t) ndr_print_spoolss_AddPort,
30660 "spoolss_ConfigurePort",
30661 sizeof(struct spoolss_ConfigurePort),
30662 (ndr_push_flags_fn_t) ndr_push_spoolss_ConfigurePort,
30663 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ConfigurePort,
30664 (ndr_print_function_t) ndr_print_spoolss_ConfigurePort,
30668 "spoolss_DeletePort",
30669 sizeof(struct spoolss_DeletePort),
30670 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePort,
30671 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePort,
30672 (ndr_print_function_t) ndr_print_spoolss_DeletePort,
30676 "spoolss_CreatePrinterIC",
30677 sizeof(struct spoolss_CreatePrinterIC),
30678 (ndr_push_flags_fn_t) ndr_push_spoolss_CreatePrinterIC,
30679 (ndr_pull_flags_fn_t) ndr_pull_spoolss_CreatePrinterIC,
30680 (ndr_print_function_t) ndr_print_spoolss_CreatePrinterIC,
30684 "spoolss_PlayGDIScriptOnPrinterIC",
30685 sizeof(struct spoolss_PlayGDIScriptOnPrinterIC),
30686 (ndr_push_flags_fn_t) ndr_push_spoolss_PlayGDIScriptOnPrinterIC,
30687 (ndr_pull_flags_fn_t) ndr_pull_spoolss_PlayGDIScriptOnPrinterIC,
30688 (ndr_print_function_t) ndr_print_spoolss_PlayGDIScriptOnPrinterIC,
30692 "spoolss_DeletePrinterIC",
30693 sizeof(struct spoolss_DeletePrinterIC),
30694 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterIC,
30695 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterIC,
30696 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterIC,
30700 "spoolss_AddPrinterConnection",
30701 sizeof(struct spoolss_AddPrinterConnection),
30702 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterConnection,
30703 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterConnection,
30704 (ndr_print_function_t) ndr_print_spoolss_AddPrinterConnection,
30708 "spoolss_DeletePrinterConnection",
30709 sizeof(struct spoolss_DeletePrinterConnection),
30710 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterConnection,
30711 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterConnection,
30712 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterConnection,
30716 "spoolss_PrinterMessageBox",
30717 sizeof(struct spoolss_PrinterMessageBox),
30718 (ndr_push_flags_fn_t) ndr_push_spoolss_PrinterMessageBox,
30719 (ndr_pull_flags_fn_t) ndr_pull_spoolss_PrinterMessageBox,
30720 (ndr_print_function_t) ndr_print_spoolss_PrinterMessageBox,
30724 "spoolss_AddMonitor",
30725 sizeof(struct spoolss_AddMonitor),
30726 (ndr_push_flags_fn_t) ndr_push_spoolss_AddMonitor,
30727 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddMonitor,
30728 (ndr_print_function_t) ndr_print_spoolss_AddMonitor,
30732 "spoolss_DeleteMonitor",
30733 sizeof(struct spoolss_DeleteMonitor),
30734 (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteMonitor,
30735 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteMonitor,
30736 (ndr_print_function_t) ndr_print_spoolss_DeleteMonitor,
30740 "spoolss_DeletePrintProcessor",
30741 sizeof(struct spoolss_DeletePrintProcessor),
30742 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrintProcessor,
30743 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrintProcessor,
30744 (ndr_print_function_t) ndr_print_spoolss_DeletePrintProcessor,
30748 "spoolss_AddPrintProvidor",
30749 sizeof(struct spoolss_AddPrintProvidor),
30750 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrintProvidor,
30751 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrintProvidor,
30752 (ndr_print_function_t) ndr_print_spoolss_AddPrintProvidor,
30756 "spoolss_DeletePrintProvidor",
30757 sizeof(struct spoolss_DeletePrintProvidor),
30758 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrintProvidor,
30759 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrintProvidor,
30760 (ndr_print_function_t) ndr_print_spoolss_DeletePrintProvidor,
30764 "spoolss_EnumPrintProcDataTypes",
30765 sizeof(struct spoolss_EnumPrintProcDataTypes),
30766 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrintProcDataTypes,
30767 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrintProcDataTypes,
30768 (ndr_print_function_t) ndr_print_spoolss_EnumPrintProcDataTypes,
30772 "spoolss_ResetPrinter",
30773 sizeof(struct spoolss_ResetPrinter),
30774 (ndr_push_flags_fn_t) ndr_push_spoolss_ResetPrinter,
30775 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ResetPrinter,
30776 (ndr_print_function_t) ndr_print_spoolss_ResetPrinter,
30780 "spoolss_GetPrinterDriver2",
30781 sizeof(struct spoolss_GetPrinterDriver2),
30782 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriver2,
30783 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriver2,
30784 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriver2,
30788 "spoolss_FindFirstPrinterChangeNotification",
30789 sizeof(struct spoolss_FindFirstPrinterChangeNotification),
30790 (ndr_push_flags_fn_t) ndr_push_spoolss_FindFirstPrinterChangeNotification,
30791 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindFirstPrinterChangeNotification,
30792 (ndr_print_function_t) ndr_print_spoolss_FindFirstPrinterChangeNotification,
30796 "spoolss_FindNextPrinterChangeNotification",
30797 sizeof(struct spoolss_FindNextPrinterChangeNotification),
30798 (ndr_push_flags_fn_t) ndr_push_spoolss_FindNextPrinterChangeNotification,
30799 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindNextPrinterChangeNotification,
30800 (ndr_print_function_t) ndr_print_spoolss_FindNextPrinterChangeNotification,
30804 "spoolss_FindClosePrinterNotify",
30805 sizeof(struct spoolss_FindClosePrinterNotify),
30806 (ndr_push_flags_fn_t) ndr_push_spoolss_FindClosePrinterNotify,
30807 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindClosePrinterNotify,
30808 (ndr_print_function_t) ndr_print_spoolss_FindClosePrinterNotify,
30812 "spoolss_RouterFindFirstPrinterChangeNotificationOld",
30813 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotificationOld),
30814 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld,
30815 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld,
30816 (ndr_print_function_t) ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld,
30820 "spoolss_ReplyOpenPrinter",
30821 sizeof(struct spoolss_ReplyOpenPrinter),
30822 (ndr_push_flags_fn_t) ndr_push_spoolss_ReplyOpenPrinter,
30823 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReplyOpenPrinter,
30824 (ndr_print_function_t) ndr_print_spoolss_ReplyOpenPrinter,
30828 "spoolss_RouterReplyPrinter",
30829 sizeof(struct spoolss_RouterReplyPrinter),
30830 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterReplyPrinter,
30831 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterReplyPrinter,
30832 (ndr_print_function_t) ndr_print_spoolss_RouterReplyPrinter,
30836 "spoolss_ReplyClosePrinter",
30837 sizeof(struct spoolss_ReplyClosePrinter),
30838 (ndr_push_flags_fn_t) ndr_push_spoolss_ReplyClosePrinter,
30839 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReplyClosePrinter,
30840 (ndr_print_function_t) ndr_print_spoolss_ReplyClosePrinter,
30844 "spoolss_AddPortEx",
30845 sizeof(struct spoolss_AddPortEx),
30846 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPortEx,
30847 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPortEx,
30848 (ndr_print_function_t) ndr_print_spoolss_AddPortEx,
30852 "spoolss_RouterFindFirstPrinterChangeNotification",
30853 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotification),
30854 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterFindFirstPrinterChangeNotification,
30855 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification,
30856 (ndr_print_function_t) ndr_print_spoolss_RouterFindFirstPrinterChangeNotification,
30860 "spoolss_SpoolerInit",
30861 sizeof(struct spoolss_SpoolerInit),
30862 (ndr_push_flags_fn_t) ndr_push_spoolss_SpoolerInit,
30863 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SpoolerInit,
30864 (ndr_print_function_t) ndr_print_spoolss_SpoolerInit,
30868 "spoolss_ResetPrinterEx",
30869 sizeof(struct spoolss_ResetPrinterEx),
30870 (ndr_push_flags_fn_t) ndr_push_spoolss_ResetPrinterEx,
30871 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ResetPrinterEx,
30872 (ndr_print_function_t) ndr_print_spoolss_ResetPrinterEx,
30876 "spoolss_RemoteFindFirstPrinterChangeNotifyEx",
30877 sizeof(struct spoolss_RemoteFindFirstPrinterChangeNotifyEx),
30878 (ndr_push_flags_fn_t) ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
30879 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
30880 (ndr_print_function_t) ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
30884 "spoolss_RouterReplyPrinterEx",
30885 sizeof(struct spoolss_RouterReplyPrinterEx),
30886 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterReplyPrinterEx,
30887 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterReplyPrinterEx,
30888 (ndr_print_function_t) ndr_print_spoolss_RouterReplyPrinterEx,
30892 "spoolss_RouterRefreshPrinterChangeNotify",
30893 sizeof(struct spoolss_RouterRefreshPrinterChangeNotify),
30894 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterRefreshPrinterChangeNotify,
30895 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterRefreshPrinterChangeNotify,
30896 (ndr_print_function_t) ndr_print_spoolss_RouterRefreshPrinterChangeNotify,
30901 sizeof(struct spoolss_44),
30902 (ndr_push_flags_fn_t) ndr_push_spoolss_44,
30903 (ndr_pull_flags_fn_t) ndr_pull_spoolss_44,
30904 (ndr_print_function_t) ndr_print_spoolss_44,
30908 "spoolss_OpenPrinterEx",
30909 sizeof(struct spoolss_OpenPrinterEx),
30910 (ndr_push_flags_fn_t) ndr_push_spoolss_OpenPrinterEx,
30911 (ndr_pull_flags_fn_t) ndr_pull_spoolss_OpenPrinterEx,
30912 (ndr_print_function_t) ndr_print_spoolss_OpenPrinterEx,
30916 "spoolss_AddPrinterEx",
30917 sizeof(struct spoolss_AddPrinterEx),
30918 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterEx,
30919 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterEx,
30920 (ndr_print_function_t) ndr_print_spoolss_AddPrinterEx,
30925 sizeof(struct spoolss_47),
30926 (ndr_push_flags_fn_t) ndr_push_spoolss_47,
30927 (ndr_pull_flags_fn_t) ndr_pull_spoolss_47,
30928 (ndr_print_function_t) ndr_print_spoolss_47,
30932 "spoolss_EnumPrinterData",
30933 sizeof(struct spoolss_EnumPrinterData),
30934 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterData,
30935 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterData,
30936 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterData,
30940 "spoolss_DeletePrinterData",
30941 sizeof(struct spoolss_DeletePrinterData),
30942 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterData,
30943 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterData,
30944 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterData,
30949 sizeof(struct spoolss_4a),
30950 (ndr_push_flags_fn_t) ndr_push_spoolss_4a,
30951 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4a,
30952 (ndr_print_function_t) ndr_print_spoolss_4a,
30957 sizeof(struct spoolss_4b),
30958 (ndr_push_flags_fn_t) ndr_push_spoolss_4b,
30959 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4b,
30960 (ndr_print_function_t) ndr_print_spoolss_4b,
30965 sizeof(struct spoolss_4c),
30966 (ndr_push_flags_fn_t) ndr_push_spoolss_4c,
30967 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4c,
30968 (ndr_print_function_t) ndr_print_spoolss_4c,
30972 "spoolss_SetPrinterDataEx",
30973 sizeof(struct spoolss_SetPrinterDataEx),
30974 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinterDataEx,
30975 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinterDataEx,
30976 (ndr_print_function_t) ndr_print_spoolss_SetPrinterDataEx,
30980 "spoolss_GetPrinterDataEx",
30981 sizeof(struct spoolss_GetPrinterDataEx),
30982 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDataEx,
30983 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDataEx,
30984 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDataEx,
30988 "spoolss_EnumPrinterDataEx",
30989 sizeof(struct spoolss_EnumPrinterDataEx),
30990 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterDataEx,
30991 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterDataEx,
30992 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterDataEx,
30996 "spoolss_EnumPrinterKey",
30997 sizeof(struct spoolss_EnumPrinterKey),
30998 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterKey,
30999 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterKey,
31000 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterKey,
31004 "spoolss_DeletePrinterDataEx",
31005 sizeof(struct spoolss_DeletePrinterDataEx),
31006 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDataEx,
31007 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDataEx,
31008 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDataEx,
31012 "spoolss_DeletePrinterKey",
31013 sizeof(struct spoolss_DeletePrinterKey),
31014 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterKey,
31015 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterKey,
31016 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterKey,
31021 sizeof(struct spoolss_53),
31022 (ndr_push_flags_fn_t) ndr_push_spoolss_53,
31023 (ndr_pull_flags_fn_t) ndr_pull_spoolss_53,
31024 (ndr_print_function_t) ndr_print_spoolss_53,
31028 "spoolss_DeletePrinterDriverEx",
31029 sizeof(struct spoolss_DeletePrinterDriverEx),
31030 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDriverEx,
31031 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDriverEx,
31032 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDriverEx,
31037 sizeof(struct spoolss_55),
31038 (ndr_push_flags_fn_t) ndr_push_spoolss_55,
31039 (ndr_pull_flags_fn_t) ndr_pull_spoolss_55,
31040 (ndr_print_function_t) ndr_print_spoolss_55,
31045 sizeof(struct spoolss_56),
31046 (ndr_push_flags_fn_t) ndr_push_spoolss_56,
31047 (ndr_pull_flags_fn_t) ndr_pull_spoolss_56,
31048 (ndr_print_function_t) ndr_print_spoolss_56,
31053 sizeof(struct spoolss_57),
31054 (ndr_push_flags_fn_t) ndr_push_spoolss_57,
31055 (ndr_pull_flags_fn_t) ndr_pull_spoolss_57,
31056 (ndr_print_function_t) ndr_print_spoolss_57,
31061 sizeof(struct spoolss_XcvData),
31062 (ndr_push_flags_fn_t) ndr_push_spoolss_XcvData,
31063 (ndr_pull_flags_fn_t) ndr_pull_spoolss_XcvData,
31064 (ndr_print_function_t) ndr_print_spoolss_XcvData,
31068 "spoolss_AddPrinterDriverEx",
31069 sizeof(struct spoolss_AddPrinterDriverEx),
31070 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterDriverEx,
31071 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterDriverEx,
31072 (ndr_print_function_t) ndr_print_spoolss_AddPrinterDriverEx,
31077 sizeof(struct spoolss_5a),
31078 (ndr_push_flags_fn_t) ndr_push_spoolss_5a,
31079 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5a,
31080 (ndr_print_function_t) ndr_print_spoolss_5a,
31085 sizeof(struct spoolss_5b),
31086 (ndr_push_flags_fn_t) ndr_push_spoolss_5b,
31087 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5b,
31088 (ndr_print_function_t) ndr_print_spoolss_5b,
31093 sizeof(struct spoolss_5c),
31094 (ndr_push_flags_fn_t) ndr_push_spoolss_5c,
31095 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5c,
31096 (ndr_print_function_t) ndr_print_spoolss_5c,
31101 sizeof(struct spoolss_5d),
31102 (ndr_push_flags_fn_t) ndr_push_spoolss_5d,
31103 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5d,
31104 (ndr_print_function_t) ndr_print_spoolss_5d,
31109 sizeof(struct spoolss_5e),
31110 (ndr_push_flags_fn_t) ndr_push_spoolss_5e,
31111 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5e,
31112 (ndr_print_function_t) ndr_print_spoolss_5e,
31117 sizeof(struct spoolss_5f),
31118 (ndr_push_flags_fn_t) ndr_push_spoolss_5f,
31119 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5f,
31120 (ndr_print_function_t) ndr_print_spoolss_5f,
31125 sizeof(struct spoolss_60),
31126 (ndr_push_flags_fn_t) ndr_push_spoolss_60,
31127 (ndr_pull_flags_fn_t) ndr_pull_spoolss_60,
31128 (ndr_print_function_t) ndr_print_spoolss_60,
31133 sizeof(struct spoolss_61),
31134 (ndr_push_flags_fn_t) ndr_push_spoolss_61,
31135 (ndr_pull_flags_fn_t) ndr_pull_spoolss_61,
31136 (ndr_print_function_t) ndr_print_spoolss_61,
31141 sizeof(struct spoolss_62),
31142 (ndr_push_flags_fn_t) ndr_push_spoolss_62,
31143 (ndr_pull_flags_fn_t) ndr_pull_spoolss_62,
31144 (ndr_print_function_t) ndr_print_spoolss_62,
31149 sizeof(struct spoolss_63),
31150 (ndr_push_flags_fn_t) ndr_push_spoolss_63,
31151 (ndr_pull_flags_fn_t) ndr_pull_spoolss_63,
31152 (ndr_print_function_t) ndr_print_spoolss_63,
31157 sizeof(struct spoolss_64),
31158 (ndr_push_flags_fn_t) ndr_push_spoolss_64,
31159 (ndr_pull_flags_fn_t) ndr_pull_spoolss_64,
31160 (ndr_print_function_t) ndr_print_spoolss_64,
31165 sizeof(struct spoolss_65),
31166 (ndr_push_flags_fn_t) ndr_push_spoolss_65,
31167 (ndr_pull_flags_fn_t) ndr_pull_spoolss_65,
31168 (ndr_print_function_t) ndr_print_spoolss_65,
31172 "spoolss_GetCorePrinterDrivers",
31173 sizeof(struct spoolss_GetCorePrinterDrivers),
31174 (ndr_push_flags_fn_t) ndr_push_spoolss_GetCorePrinterDrivers,
31175 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetCorePrinterDrivers,
31176 (ndr_print_function_t) ndr_print_spoolss_GetCorePrinterDrivers,
31181 sizeof(struct spoolss_67),
31182 (ndr_push_flags_fn_t) ndr_push_spoolss_67,
31183 (ndr_pull_flags_fn_t) ndr_pull_spoolss_67,
31184 (ndr_print_function_t) ndr_print_spoolss_67,
31188 "spoolss_GetPrinterDriverPackagePath",
31189 sizeof(struct spoolss_GetPrinterDriverPackagePath),
31190 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriverPackagePath,
31191 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriverPackagePath,
31192 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriverPackagePath,
31197 sizeof(struct spoolss_69),
31198 (ndr_push_flags_fn_t) ndr_push_spoolss_69,
31199 (ndr_pull_flags_fn_t) ndr_pull_spoolss_69,
31200 (ndr_print_function_t) ndr_print_spoolss_69,
31205 sizeof(struct spoolss_6a),
31206 (ndr_push_flags_fn_t) ndr_push_spoolss_6a,
31207 (ndr_pull_flags_fn_t) ndr_pull_spoolss_6a,
31208 (ndr_print_function_t) ndr_print_spoolss_6a,
31213 sizeof(struct spoolss_6b),
31214 (ndr_push_flags_fn_t) ndr_push_spoolss_6b,
31215 (ndr_pull_flags_fn_t) ndr_pull_spoolss_6b,
31216 (ndr_print_function_t) ndr_print_spoolss_6b,
31221 sizeof(struct spoolss_6c),
31222 (ndr_push_flags_fn_t) ndr_push_spoolss_6c,
31223 (ndr_pull_flags_fn_t) ndr_pull_spoolss_6c,
31224 (ndr_print_function_t) ndr_print_spoolss_6c,
31229 sizeof(struct spoolss_6d),
31230 (ndr_push_flags_fn_t) ndr_push_spoolss_6d,
31231 (ndr_pull_flags_fn_t) ndr_pull_spoolss_6d,
31232 (ndr_print_function_t) ndr_print_spoolss_6d,
31235 { NULL, 0, NULL, NULL, NULL, false }
31238 static const char * const spoolss_endpoint_strings[] = {
31239 "ncacn_np:[\\pipe\\spoolss]",
31242 static const struct ndr_interface_string_array spoolss_endpoints = {
31244 .names = spoolss_endpoint_strings
31247 static const char * const spoolss_authservice_strings[] = {
31251 static const struct ndr_interface_string_array spoolss_authservices = {
31253 .names = spoolss_authservice_strings
31257 const struct ndr_interface_table ndr_table_spoolss = {
31260 {0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0x89,0xab}},
31261 NDR_SPOOLSS_VERSION
31263 .helpstring = NDR_SPOOLSS_HELPSTRING,
31265 .calls = spoolss_calls,
31266 .endpoints = &spoolss_endpoints,
31267 .authservices = &spoolss_authservices